From bzolnier@gmail.com Thu Jul 16 16:24:50 2009 From: Bartlomiej Zolnierkiewicz Date: Mon, 13 Jul 2009 20:13:49 +0200 Subject: Staging: rtl8192su: make private ieee80211 stack really private To: "Greg Kroah-Hartman" Cc: Bartlomiej Zolnierkiewicz , linux-kernel@vger.kernel.org Message-ID: <20090713181349.16765.47234.sendpatchset@localhost.localdomain> From: Bartlomiej Zolnierkiewicz * rename ieee80211_{init,exit}() to ieee80211_debug_{init,exit}() * make private ieee80211 stack really private * cleanup Makefile * remove superfluous ieee80211_* defines * remove superfluous EXPORT_SYMBOLs Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192su/Makefile | 15 -- drivers/staging/rtl8192su/TODO | 2 drivers/staging/rtl8192su/ieee80211/dot11d.c | 9 - drivers/staging/rtl8192su/ieee80211/ieee80211.h | 72 ------------- drivers/staging/rtl8192su/ieee80211/ieee80211_crypt.c | 17 --- drivers/staging/rtl8192su/ieee80211/ieee80211_crypt_ccmp.c | 11 - drivers/staging/rtl8192su/ieee80211/ieee80211_crypt_tkip.c | 10 - drivers/staging/rtl8192su/ieee80211/ieee80211_crypt_wep.c | 10 - drivers/staging/rtl8192su/ieee80211/ieee80211_module.c | 11 - drivers/staging/rtl8192su/ieee80211/ieee80211_rx.c | 3 drivers/staging/rtl8192su/ieee80211/ieee80211_softmac.c | 22 --- drivers/staging/rtl8192su/ieee80211/ieee80211_softmac_wx.c | 19 --- drivers/staging/rtl8192su/ieee80211/ieee80211_tx.c | 3 drivers/staging/rtl8192su/ieee80211/ieee80211_wx.c | 9 - drivers/staging/rtl8192su/ieee80211/rtl819x_HTProc.c | 2 drivers/staging/rtl8192su/ieee80211/rtl819x_TSProc.c | 2 drivers/staging/rtl8192su/r8192U_core.c | 55 +++++++++ 17 files changed, 70 insertions(+), 202 deletions(-) --- a/drivers/staging/rtl8192su/ieee80211/dot11d.c +++ b/drivers/staging/rtl8192su/ieee80211/dot11d.c @@ -214,12 +214,3 @@ int ToLegalChannel( return default_chn; } - -EXPORT_SYMBOL(Dot11d_Init); -EXPORT_SYMBOL(Dot11d_Reset); -EXPORT_SYMBOL(Dot11d_UpdateCountryIe); -EXPORT_SYMBOL(DOT11D_GetMaxTxPwrInDbm); -EXPORT_SYMBOL(DOT11D_ScanComplete); -EXPORT_SYMBOL(IsLegalChannel); -EXPORT_SYMBOL(ToLegalChannel); - --- a/drivers/staging/rtl8192su/ieee80211/ieee80211_crypt.c +++ b/drivers/staging/rtl8192su/ieee80211/ieee80211_crypt.c @@ -204,8 +204,7 @@ static struct ieee80211_crypto_ops ieee8 .owner = THIS_MODULE, }; - -static int __init ieee80211_crypto_init(void) +int __init ieee80211_crypto_init(void) { int ret = -ENOMEM; @@ -226,8 +225,7 @@ out: return ret; } - -static void __exit ieee80211_crypto_deinit(void) +void __exit ieee80211_crypto_deinit(void) { struct list_head *ptr, *n; @@ -246,14 +244,3 @@ static void __exit ieee80211_crypto_dein kfree(hcrypt); } - -EXPORT_SYMBOL(ieee80211_crypt_deinit_entries); -EXPORT_SYMBOL(ieee80211_crypt_deinit_handler); -EXPORT_SYMBOL(ieee80211_crypt_delayed_deinit); - -EXPORT_SYMBOL(ieee80211_register_crypto_ops); -EXPORT_SYMBOL(ieee80211_unregister_crypto_ops); -EXPORT_SYMBOL(ieee80211_get_crypto_ops); - -module_init(ieee80211_crypto_init); -module_exit(ieee80211_crypto_deinit); --- a/drivers/staging/rtl8192su/ieee80211/ieee80211_crypt_ccmp.c +++ b/drivers/staging/rtl8192su/ieee80211/ieee80211_crypt_ccmp.c @@ -473,19 +473,12 @@ static struct ieee80211_crypto_ops ieee8 .owner = THIS_MODULE, }; - -static int __init ieee80211_crypto_ccmp_init(void) +int __init ieee80211_crypto_ccmp_init(void) { return ieee80211_register_crypto_ops(&ieee80211_crypt_ccmp); } - -static void __exit ieee80211_crypto_ccmp_exit(void) +void __exit ieee80211_crypto_ccmp_exit(void) { ieee80211_unregister_crypto_ops(&ieee80211_crypt_ccmp); } - -EXPORT_SYMBOL(ieee80211_ccmp_null); - -module_init(ieee80211_crypto_ccmp_init); -module_exit(ieee80211_crypto_ccmp_exit); --- a/drivers/staging/rtl8192su/ieee80211/ieee80211_crypt_tkip.c +++ b/drivers/staging/rtl8192su/ieee80211/ieee80211_crypt_tkip.c @@ -779,14 +779,12 @@ static struct ieee80211_crypto_ops ieee8 .owner = THIS_MODULE, }; - -static int __init ieee80211_crypto_tkip_init(void) +int __init ieee80211_crypto_tkip_init(void) { return ieee80211_register_crypto_ops(&ieee80211_crypt_tkip); } - -static void __exit ieee80211_crypto_tkip_exit(void) +void __exit ieee80211_crypto_tkip_exit(void) { ieee80211_unregister_crypto_ops(&ieee80211_crypt_tkip); } @@ -796,7 +794,3 @@ void ieee80211_tkip_null(void) // printk("============>%s()\n", __FUNCTION__); return; } -EXPORT_SYMBOL(ieee80211_tkip_null); - -module_init(ieee80211_crypto_tkip_init); -module_exit(ieee80211_crypto_tkip_exit); --- a/drivers/staging/rtl8192su/ieee80211/ieee80211_crypt_wep.c +++ b/drivers/staging/rtl8192su/ieee80211/ieee80211_crypt_wep.c @@ -283,14 +283,12 @@ static struct ieee80211_crypto_ops ieee8 .owner = THIS_MODULE, }; - -static int __init ieee80211_crypto_wep_init(void) +int __init ieee80211_crypto_wep_init(void) { return ieee80211_register_crypto_ops(&ieee80211_crypt_wep); } - -static void __exit ieee80211_crypto_wep_exit(void) +void __exit ieee80211_crypto_wep_exit(void) { ieee80211_unregister_crypto_ops(&ieee80211_crypt_wep); } @@ -300,7 +298,3 @@ void ieee80211_wep_null(void) // printk("============>%s()\n", __FUNCTION__); return; } -EXPORT_SYMBOL(ieee80211_wep_null); - -module_init(ieee80211_crypto_wep_init); -module_exit(ieee80211_crypto_wep_exit); --- a/drivers/staging/rtl8192su/ieee80211/ieee80211.h +++ b/drivers/staging/rtl8192su/ieee80211/ieee80211.h @@ -265,78 +265,6 @@ typedef struct cb_desc { #define MAX_IE_LEN 0xff -// added for kernel conflict -#define ieee80211_crypt_deinit_entries ieee80211_crypt_deinit_entries_rsl -#define ieee80211_crypt_deinit_handler ieee80211_crypt_deinit_handler_rsl -#define ieee80211_crypt_delayed_deinit ieee80211_crypt_delayed_deinit_rsl -#define ieee80211_register_crypto_ops ieee80211_register_crypto_ops_rsl -#define ieee80211_unregister_crypto_ops ieee80211_unregister_crypto_ops_rsl -#define ieee80211_get_crypto_ops ieee80211_get_crypto_ops_rsl - -#define ieee80211_ccmp_null ieee80211_ccmp_null_rsl - -#define ieee80211_tkip_null ieee80211_tkip_null_rsl - -#define ieee80211_wep_null ieee80211_wep_null_rsl - -#define free_ieee80211 free_ieee80211_rsl -#define alloc_ieee80211 alloc_ieee80211_rsl - -#define ieee80211_rx ieee80211_rx_rsl -#define ieee80211_rx_mgt ieee80211_rx_mgt_rsl - -#define ieee80211_get_beacon ieee80211_get_beacon_rsl -#define ieee80211_wake_queue ieee80211_wake_queue_rsl -#define ieee80211_stop_queue ieee80211_stop_queue_rsl -#define ieee80211_reset_queue ieee80211_reset_queue_rsl -#define ieee80211_softmac_stop_protocol ieee80211_softmac_stop_protocol_rsl -#define ieee80211_softmac_start_protocol ieee80211_softmac_start_protocol_rsl -#define ieee80211_is_shortslot ieee80211_is_shortslot_rsl -#define ieee80211_is_54g ieee80211_is_54g_rsl -#define ieee80211_wpa_supplicant_ioctl ieee80211_wpa_supplicant_ioctl_rsl -#define ieee80211_ps_tx_ack ieee80211_ps_tx_ack_rsl -#define ieee80211_softmac_xmit ieee80211_softmac_xmit_rsl -#define ieee80211_stop_send_beacons ieee80211_stop_send_beacons_rsl -#define notify_wx_assoc_event notify_wx_assoc_event_rsl -#define SendDisassociation SendDisassociation_rsl -#define ieee80211_disassociate ieee80211_disassociate_rsl -#define ieee80211_start_send_beacons ieee80211_start_send_beacons_rsl -#define ieee80211_stop_scan ieee80211_stop_scan_rsl -#define ieee80211_send_probe_requests ieee80211_send_probe_requests_rsl -#define ieee80211_softmac_scan_syncro ieee80211_softmac_scan_syncro_rsl -#define ieee80211_start_scan_syncro ieee80211_start_scan_syncro_rsl - -#define ieee80211_wx_get_essid ieee80211_wx_get_essid_rsl -#define ieee80211_wx_set_essid ieee80211_wx_set_essid_rsl -#define ieee80211_wx_set_rate ieee80211_wx_set_rate_rsl -#define ieee80211_wx_get_rate ieee80211_wx_get_rate_rsl -#define ieee80211_wx_set_wap ieee80211_wx_set_wap_rsl -#define ieee80211_wx_get_wap ieee80211_wx_get_wap_rsl -#define ieee80211_wx_set_mode ieee80211_wx_set_mode_rsl -#define ieee80211_wx_get_mode ieee80211_wx_get_mode_rsl -#define ieee80211_wx_set_scan ieee80211_wx_set_scan_rsl -#define ieee80211_wx_get_freq ieee80211_wx_get_freq_rsl -#define ieee80211_wx_set_freq ieee80211_wx_set_freq_rsl -#define ieee80211_wx_set_rawtx ieee80211_wx_set_rawtx_rsl -#define ieee80211_wx_get_name ieee80211_wx_get_name_rsl -#define ieee80211_wx_set_power ieee80211_wx_set_power_rsl -#define ieee80211_wx_get_power ieee80211_wx_get_power_rsl -#define ieee80211_wlan_frequencies ieee80211_wlan_frequencies_rsl -#define ieee80211_wx_set_rts ieee80211_wx_set_rts_rsl -#define ieee80211_wx_get_rts ieee80211_wx_get_rts_rsl - -#define ieee80211_txb_free ieee80211_txb_free_rsl - -#define ieee80211_wx_set_gen_ie ieee80211_wx_set_gen_ie_rsl -#define ieee80211_wx_get_scan ieee80211_wx_get_scan_rsl -#define ieee80211_wx_set_encode ieee80211_wx_set_encode_rsl -#define ieee80211_wx_get_encode ieee80211_wx_get_encode_rsl - -#define ieee80211_wx_set_mlme ieee80211_wx_set_mlme_rsl -#define ieee80211_wx_set_auth ieee80211_wx_set_auth_rsl -#define ieee80211_wx_set_encode_ext ieee80211_wx_set_encode_ext_rsl -#define ieee80211_wx_get_encode_ext ieee80211_wx_get_encode_ext_rsl - typedef struct ieee_param { u32 cmd; u8 sta_addr[ETH_ALEN]; --- a/drivers/staging/rtl8192su/ieee80211/ieee80211_module.c +++ b/drivers/staging/rtl8192su/ieee80211/ieee80211_module.c @@ -287,7 +287,7 @@ static int store_debug_level(struct file return strnlen(buf, count); } -static int __init ieee80211_init(void) +int __init ieee80211_debug_init(void) { struct proc_dir_entry *e; @@ -313,7 +313,7 @@ static int __init ieee80211_init(void) return 0; } -static void __exit ieee80211_exit(void) +void __exit ieee80211_debug_exit(void) { if (ieee80211_proc) { remove_proc_entry("debug_level", ieee80211_proc); @@ -325,11 +325,4 @@ static void __exit ieee80211_exit(void) #include module_param(debug, int, 0444); MODULE_PARM_DESC(debug, "debug output mask"); - - -module_exit(ieee80211_exit); -module_init(ieee80211_init); #endif - -EXPORT_SYMBOL(alloc_ieee80211); -EXPORT_SYMBOL(free_ieee80211); --- a/drivers/staging/rtl8192su/ieee80211/ieee80211_rx.c +++ b/drivers/staging/rtl8192su/ieee80211/ieee80211_rx.c @@ -2703,6 +2703,3 @@ void ieee80211_rx_mgt(struct ieee80211_d } } - -EXPORT_SYMBOL(ieee80211_rx_mgt); -EXPORT_SYMBOL(ieee80211_rx); --- a/drivers/staging/rtl8192su/ieee80211/ieee80211_softmac.c +++ b/drivers/staging/rtl8192su/ieee80211/ieee80211_softmac.c @@ -3240,25 +3240,3 @@ void notify_wx_assoc_event(struct ieee80 memset(wrqu.ap_addr.sa_data, 0, ETH_ALEN); wireless_send_event(ieee->dev, SIOCGIWAP, &wrqu, NULL); } - -EXPORT_SYMBOL(ieee80211_get_beacon); -EXPORT_SYMBOL(ieee80211_wake_queue); -EXPORT_SYMBOL(ieee80211_stop_queue); -EXPORT_SYMBOL(ieee80211_reset_queue); -EXPORT_SYMBOL(ieee80211_softmac_stop_protocol); -EXPORT_SYMBOL(ieee80211_softmac_start_protocol); -EXPORT_SYMBOL(ieee80211_is_shortslot); -EXPORT_SYMBOL(ieee80211_is_54g); -EXPORT_SYMBOL(ieee80211_wpa_supplicant_ioctl); -EXPORT_SYMBOL(ieee80211_ps_tx_ack); -EXPORT_SYMBOL(ieee80211_softmac_xmit); -EXPORT_SYMBOL(ieee80211_stop_send_beacons); -EXPORT_SYMBOL(notify_wx_assoc_event); -EXPORT_SYMBOL(SendDisassociation); -EXPORT_SYMBOL(ieee80211_disassociate); -EXPORT_SYMBOL(ieee80211_start_send_beacons); -EXPORT_SYMBOL(ieee80211_stop_scan); -EXPORT_SYMBOL(ieee80211_send_probe_requests); -EXPORT_SYMBOL(ieee80211_softmac_scan_syncro); -EXPORT_SYMBOL(ieee80211_start_scan_syncro); -//EXPORT_SYMBOL(ieee80211_sta_ps_send_null_frame); --- a/drivers/staging/rtl8192su/ieee80211/ieee80211_softmac_wx.c +++ b/drivers/staging/rtl8192su/ieee80211/ieee80211_softmac_wx.c @@ -623,22 +623,3 @@ exit: return ret; } - -EXPORT_SYMBOL(ieee80211_wx_get_essid); -EXPORT_SYMBOL(ieee80211_wx_set_essid); -EXPORT_SYMBOL(ieee80211_wx_set_rate); -EXPORT_SYMBOL(ieee80211_wx_get_rate); -EXPORT_SYMBOL(ieee80211_wx_set_wap); -EXPORT_SYMBOL(ieee80211_wx_get_wap); -EXPORT_SYMBOL(ieee80211_wx_set_mode); -EXPORT_SYMBOL(ieee80211_wx_get_mode); -EXPORT_SYMBOL(ieee80211_wx_set_scan); -EXPORT_SYMBOL(ieee80211_wx_get_freq); -EXPORT_SYMBOL(ieee80211_wx_set_freq); -EXPORT_SYMBOL(ieee80211_wx_set_rawtx); -EXPORT_SYMBOL(ieee80211_wx_get_name); -EXPORT_SYMBOL(ieee80211_wx_set_power); -EXPORT_SYMBOL(ieee80211_wx_get_power); -EXPORT_SYMBOL(ieee80211_wlan_frequencies); -EXPORT_SYMBOL(ieee80211_wx_set_rts); -EXPORT_SYMBOL(ieee80211_wx_get_rts); --- a/drivers/staging/rtl8192su/ieee80211/ieee80211_tx.c +++ b/drivers/staging/rtl8192su/ieee80211/ieee80211_tx.c @@ -927,6 +927,3 @@ int rtl8192_ieee80211_xmit(struct sk_buf return 1; } -EXPORT_SYMBOL(rtl8192_ieee80211_xmit); - -EXPORT_SYMBOL(ieee80211_txb_free); --- a/drivers/staging/rtl8192su/ieee80211/ieee80211_wx.c +++ b/drivers/staging/rtl8192su/ieee80211/ieee80211_wx.c @@ -851,12 +851,3 @@ int ieee80211_wx_set_gen_ie(struct ieee8 } #endif - -EXPORT_SYMBOL(ieee80211_wx_set_gen_ie); -EXPORT_SYMBOL(ieee80211_wx_set_mlme); -EXPORT_SYMBOL(ieee80211_wx_set_auth); -EXPORT_SYMBOL(ieee80211_wx_set_encode_ext); -EXPORT_SYMBOL(ieee80211_wx_get_encode_ext); -EXPORT_SYMBOL(ieee80211_wx_get_scan); -EXPORT_SYMBOL(ieee80211_wx_set_encode); -EXPORT_SYMBOL(ieee80211_wx_get_encode); --- a/drivers/staging/rtl8192su/ieee80211/rtl819x_HTProc.c +++ b/drivers/staging/rtl8192su/ieee80211/rtl819x_HTProc.c @@ -1760,5 +1760,3 @@ void HTSetConnectBwModeCallback(struct i pHTInfo->bSwBwInProgress = false; } - -EXPORT_SYMBOL(HTUpdateSelfAndPeerSetting); --- a/drivers/staging/rtl8192su/ieee80211/rtl819x_TSProc.c +++ b/drivers/staging/rtl8192su/ieee80211/rtl819x_TSProc.c @@ -633,5 +633,3 @@ void TsStartAddBaProcess(struct ieee8021 else IEEE80211_DEBUG(IEEE80211_DL_ERR, "%s()==>BA timer is already added\n", __FUNCTION__); } - -EXPORT_SYMBOL(RemovePeerTS); --- a/drivers/staging/rtl8192su/Makefile +++ b/drivers/staging/rtl8192su/Makefile @@ -21,9 +21,11 @@ r8192s_usb-objs := \ r8192S_firmware.o \ r8192S_Efuse.o \ r8192U_core.o \ - r8192U_pm.o - -ieee80211-rsl-objs := \ + r8192U_pm.o \ + ieee80211/ieee80211_crypt.o \ + ieee80211/ieee80211_crypt_tkip.o \ + ieee80211/ieee80211_crypt_ccmp.o \ + ieee80211/ieee80211_crypt_wep.o \ ieee80211/ieee80211_rx.o \ ieee80211/ieee80211_softmac.o \ ieee80211/ieee80211_tx.o \ @@ -36,10 +38,3 @@ ieee80211-rsl-objs := \ ieee80211/dot11d.o obj-$(CONFIG_RTL8192SU) += r8192s_usb.o -obj-$(CONFIG_RTL8192SU) += ieee80211-rsl.o -obj-$(CONFIG_RTL8192SU) += ieee80211/ieee80211_crypt.o -obj-$(CONFIG_RTL8192SU) += ieee80211/ieee80211_crypt_tkip.o -obj-$(CONFIG_RTL8192SU) += ieee80211/ieee80211_crypt_ccmp.o -obj-$(CONFIG_RTL8192SU) += ieee80211/ieee80211_crypt_wep.o - - --- a/drivers/staging/rtl8192su/r8192U_core.c +++ b/drivers/staging/rtl8192su/r8192U_core.c @@ -7547,8 +7547,55 @@ static void __devexit rtl8192_usb_discon RT_TRACE(COMP_DOWN, "wlan driver removed\n"); } +/* fun with the built-in ieee80211 stack... */ +extern int ieee80211_debug_init(void); +extern void ieee80211_debug_exit(void); +extern int ieee80211_crypto_init(void); +extern void ieee80211_crypto_deinit(void); +extern int ieee80211_crypto_tkip_init(void); +extern void ieee80211_crypto_tkip_exit(void); +extern int ieee80211_crypto_ccmp_init(void); +extern void ieee80211_crypto_ccmp_exit(void); +extern int ieee80211_crypto_wep_init(void); +extern void ieee80211_crypto_wep_exit(void); + static int __init rtl8192_usb_module_init(void) { + int ret; + +#ifdef CONFIG_IEEE80211_DEBUG + ret = ieee80211_debug_init(); + if (ret) { + printk(KERN_ERR "ieee80211_debug_init() failed %d\n", ret); + return ret; + } +#endif + ret = ieee80211_crypto_init(); + if (ret) { + printk(KERN_ERR "ieee80211_crypto_init() failed %d\n", ret); + return ret; + } + + ret = ieee80211_crypto_tkip_init(); + if (ret) { + printk(KERN_ERR "ieee80211_crypto_tkip_init() failed %d\n", + ret); + return ret; + } + + ret = ieee80211_crypto_ccmp_init(); + if (ret) { + printk(KERN_ERR "ieee80211_crypto_ccmp_init() failed %d\n", + ret); + return ret; + } + + ret = ieee80211_crypto_wep_init(); + if (ret) { + printk(KERN_ERR "ieee80211_crypto_wep_init() failed %d\n", ret); + return ret; + } + printk(KERN_INFO "\nLinux kernel driver for RTL8192 based WLAN cards\n"); printk(KERN_INFO "Copyright (c) 2007-2008, Realsil Wlan\n"); RT_TRACE(COMP_INIT, "Initializing module"); @@ -7564,6 +7611,14 @@ static void __exit rtl8192_usb_module_ex RT_TRACE(COMP_DOWN, "Exiting"); rtl8192_proc_module_remove(); + + ieee80211_crypto_tkip_exit(); + ieee80211_crypto_ccmp_exit(); + ieee80211_crypto_wep_exit(); + ieee80211_crypto_deinit(); +#ifdef CONFIG_IEEE80211_DEBUG + ieee80211_debug_exit(); +#endif } --- a/drivers/staging/rtl8192su/TODO +++ b/drivers/staging/rtl8192su/TODO @@ -1,10 +1,8 @@ TODO: -- make ieee80211 stack private (may conflict with libipw currently) - prepare private ieee80211 stack for merge with rtl8187se's version: - remove JOHN_DUMP[_DESC] ifdefs - remove [IN]_OPENSUSE_SLED definitions - remove superflous container_of definition from ieee80211.h - - remove superfluous ieee80211_* definitions from ieee80211.h - remove rtl8192su's specific dead code - cleanup ieee80211.h - move rtl8192su's specific code out from ieee80211.h