EM7455 driver kernel hang when qcserial is unloaded on RedHat/CentOS 8.5

Upgraded from CentOS 8.4 to 8.5 and the qcserial driver hangs in usbcore while being unloaded.

Tried also the driver from MBPL_Drivers_USB_R24_ENG3-src.tar.gz with same result.

Seems the ttyUSB3 is not fully disconnecting from the USB bus during rmmod.

[ note: ttyUSB0 is the serial console for this system. ttyUSB1,2,3 are the EM ports ]

The problem did not occur with CentOS 8.4, it only started after upgrade to CentOS 8.5

Has Sierra tested on RedHat/CentOS/OracleLinux 8.5 and seen any similar issue?

Issue is reproducible on multiple EM7455 systems.

Here’s the relevant dmesg showing the lockup:

[51429.577440] usb 2-1: USB disconnect, device number 2
[51429.582622] qcserial ttyUSB1: Qualcomm USB modem converter now disconnected from ttyUSB1
[51429.590993] qcserial 2-1:1.0: device disconnected
[51429.596012] qcserial ttyUSB2: Qualcomm USB modem converter now disconnected from ttyUSB2
[51429.604258] qcserial 2-1:1.2: device disconnected
[51609.662278] INFO: task kworker/0:3:15238 blocked for more than 120 seconds.
[51609.669264] Tainted: G IOE --------- - - 4.18.0-348.20.1.el8_5.x86_64 #1
[51609.677622] “echo 0 > /proc/sys/kernel/hung_task_timeout_secs” disables this message.
[51609.685461] task:kworker/0:3 state:D stack: 0 pid:15238 ppid: 2 flags:0x80004080
[51609.693828] Workqueue: usb_hub_wq hub_event
[51609.698026] Call Trace:
[51609.700485] __schedule+0x2bd/0x760
[51609.703982] schedule+0x37/0xa0
[51609.707145] usb_kill_urb+0x86/0xc0
[51609.710647] ? finish_wait+0x80/0x80
[51609.714234] usb_hcd_flush_endpoint+0x160/0x170
[51609.718791] usb_disable_endpoint+0xa6/0xc0
[51609.722978] usb_disable_interface+0x3c/0x50
[51609.727267] usb_unbind_interface+0x15c/0x260
[51609.731630] ? kernfs_find_ns+0x35/0xc0
[51609.735478] device_release_driver_internal+0x103/0x1f0
[51609.740728] bus_remove_device+0xf7/0x170
[51609.744742] device_del+0x181/0x410
[51609.748250] usb_disable_device+0x8c/0x1a0
[51609.752359] usb_disconnect+0xbc/0x250
[51609.756121] hub_port_connect+0x87/0xa50
[51609.760054] port_event+0x57a/0x880
[51609.763556] hub_event+0x14f/0x3c0
[51609.766962] process_one_work+0x1a7/0x360
[51609.770990] ? create_worker+0x1a0/0x1a0
[51609.774915] worker_thread+0x30/0x390
[51609.778583] ? create_worker+0x1a0/0x1a0
[51609.782524] kthread+0x116/0x130
[51609.785760] ? kthread_flush_work_fn+0x10/0x10
[51609.790206] ret_from_fork+0x35/0x40

Dear @iainb ,
Welcome to our community!
Please refer to section 2.1.5 and 2.1.6 in Software_Integration_and_Development_Guide_for_Linux_USB_Platforms_R24.pdf to disable ModemManager and blacklist Gobi drivers then recheck whether the problem is resolved

Thanks