Problem with modprobe

From: Larry Finger
Date: Tue Sep 27 2022 - 13:11:33 EST


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?

Thanks,

Larry