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