Thread (3 messages) 3 messages, 2 authors, 2022-09-27

Re: Problem with modprobe

From: Greg KH <gregkh@linuxfoundation.org>
Date: 2022-09-27 17:35:45
Also in: lkml

On Tue, Sep 27, 2022 at 12:11:24PM -0500, Larry Finger wrote:
Hi,

The driver for the Realtek RTL8821CE network card show some asymmetrical
behavior between loading and unloading.

Starting from scratch, a load command provides the expected results:

finger@localhost:~/rtw88>sudo modprobe -v rtw88_8821ce
insmod /lib/modules/6.1.0-rc3-wireless-next-00623-g2bc09edc7fa2-dirty/kernel/drivers/net/wireless/realtek/rtw88/rtw88_core.ko

insmod /lib/modules/6.1.0-rc3-wireless-next-00623-g2bc09edc7fa2-dirty/kernel/drivers/net/wireless/realtek/rtw88/rtw88_pci.ko

insmod /lib/modules/6.1.0-rc3-wireless-next-00623-g2bc09edc7fa2-dirty/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8821c.ko

insmod /lib/modules/6.1.0-rc3-wireless-next-00623-g2bc09edc7fa2-dirty/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8821ce.ko

Unloading produces a different result:

finger@localhost:~/rtw88>sudo modprobe -rv rtw88_8821ce
rmmod rtw88_8821ce
rmmod rtw88_pci
rmmod rtw88_8821c

Note that rtw88_core is still loaded and needs to be unloaded separately:

finger@localhost:~/rtw88>sudo modprobe -rv rtw88_core
rmmod rtw88_core

The appropriate lines from modules.dep reformatted for clarity are as follows:

kernel/drivers/net/wireless/realtek/rtw88/rtw88_core.ko:
   kernel/net/mac80211/mac80211.ko
   kernel/lib/crypto/libarc4.ko
   kernel/net/wireless/cfg80211.ko
kernel/drivers/net/wireless/realtek/rtw88/rtw88_8821c.ko:
   kernel/drivers/net/wireless/realtek/rtw88/rtw88_core.ko
   kernel/net/mac80211/mac80211.ko
   kernel/lib/crypto/libarc4.ko
   kernel/net/wireless/cfg80211.ko
kernel/drivers/net/wireless/realtek/rtw88/rtw88_8821ce.ko:
   kernel/drivers/net/wireless/realtek/rtw88/rtw88_8821c.ko
   kernel/drivers/net/wireless/realtek/rtw88/rtw88_pci.ko
   kernel/drivers/net/wireless/realtek/rtw88/rtw88_core.ko
   kernel/net/mac80211/mac80211.ko
   kernel/lib/crypto/libarc4.ko
   kernel/net/wireless/cfg80211.ko
kernel/drivers/net/wireless/realtek/rtw88/rtw88_pci.ko:
   kernel/drivers/net/wireless/realtek/rtw88/rtw88_core.ko
   kernel/net/mac80211/mac80211.ko
   kernel/lib/crypto/libarc4.ko
   kernel/net/wireless/cfg80211.ko

What is the explanation for the failure to auto-unload rtw88_core?
I don't think we ever auto-unload dependant modules as we don't know if
they are still in use or not (hint, module references is not a
representation if the module is in use or not.)

So this is working as intended, right?  And how it's always worked?

thanks,

greg k-h
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help