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