Can't remove g_multi

Beaglebone white

Linux beaglebone 4.0.1-bone1 #1 Wed Apr 29 21:13:22 UTC 2015 armv7l GNU/Linux

“sudo modprobe -r g_multi” hangs forever.

Running lsmod after (note the -1):

Module Size Used by
usb_f_acm 6906 1
u_serial 9898 3 usb_f_acm
usb_f_ecm 9489 1
g_multi 5497 -1
usb_f_mass_storage 41986 1 g_multi
usb_f_rndis 22439 2 g_multi
u_ether 11002 3 usb_f_ecm,usb_f_rndis,g_multi
libcomposite 43035 5 usb_f_acm,usb_f_ecm,usb_f_rndis,g_multi,usb_f_mass_storage
omap_aes 12947 0
omap_sham 19034 0
omap_rng 4334 0
rng_core 6186 1 omap_rng
uio_pdrv_genirq 3309 0
uio 8318 1 uio_pdrv_genirq

And journalctl:

May 05 13:58:07 beaglebone kernel: INFO: task modprobe:419 blocked for more than 120 seconds.
May 05 13:58:07 beaglebone kernel: Not tainted 4.0.1-bone1 #1
May 05 13:58:07 beaglebone kernel: “echo 0 > /proc/sys/kernel/hung_task_timeout_secs” disables this message.
May 05 13:58:07 beaglebone kernel: modprobe D c05f1c79 0 419 418 0x00000001
May 05 13:58:07 beaglebone kernel: [] (__schedule) from [] (schedule+0x2f/0x64)
May 05 13:58:07 beaglebone kernel: [] (schedule) from [] (gserial_free_port+0x3e/0x94 [u_serial])
May 05 13:58:07 beaglebone kernel: [] (gserial_free_port [u_serial]) from [] (gserial_free_line+0x3c/0x64 [u_serial])
May 05 13:58:07 beaglebone kernel: [] (gserial_free_line [u_serial]) from [] (acm_free_instance+0x12/0x1c [usb_f_acm])
May 05 13:58:07 beaglebone kernel: [] (acm_free_instance [usb_f_acm]) from [] (usb_put_function_instance+0x12/0x1c [libcomposite])
May 05 13:58:07 beaglebone kernel: [] (usb_put_function_instance [libcomposite]) from [] (multi_unbind+0x2e/0x4c [g_multi])
May 05 13:58:07 beaglebone kernel: [] (multi_unbind [g_multi]) from [] (__composite_unbind+0x3e/0x68 [libcomposite])
May 05 13:58:07 beaglebone kernel: [] (__composite_unbind [libcomposite]) from [] (composite_unbind+0xe/0x10 [libcomposite])
May 05 13:58:07 beaglebone kernel: [] (composite_unbind [libcomposite]) from [] (usb_gadget_remove_driver+0x3f/0x6c)
May 05 13:58:07 beaglebone kernel: [] (usb_gadget_remove_driver) from [] (usb_gadget_unregister_driver+0x49/0x7c)
May 05 13:58:07 beaglebone kernel: [] (usb_gadget_unregister_driver) from [] (usb_composite_unregister+0xe/0x10 [libcomposite])
May 05 13:58:07 beaglebone kernel: [] (usb_composite_unregister [libcomposite]) from [] (multi_driver_exit+0xe/0x10 [g_multi])
May 05 13:58:07 beaglebone kernel: [] (multi_driver_exit [g_multi]) from [] (SyS_delete_module+0xdf/0x178)
May 05 13:58:07 beaglebone kernel: [] (SyS_delete_module) from [] (ret_fast_syscall+0x1/0x44)

systemd has getty running on u_serial (which gets loaded by
g_multi).... So just remove the 'modprobe g_multi" from:

/opt/scripts/boot/am335_evm.sh

Regards,