[PATCH 08/17] rtl8192e: Alloc and free ieee structs not net_devices

Mike McCormack mikem at ring3k.org
Mon Apr 18 23:58:28 UTC 2011


Signed-off-by: Mike McCormack <mikem at ring3k.org>
---
 drivers/staging/rtl8192e/ieee80211/ieee80211.h     |    9 +++++----
 .../staging/rtl8192e/ieee80211/ieee80211_module.c  |    8 ++++----
 drivers/staging/rtl8192e/r8192E_core.c             |   14 ++++++++------
 3 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/drivers/staging/rtl8192e/ieee80211/ieee80211.h b/drivers/staging/rtl8192e/ieee80211/ieee80211.h
index 9b0e438..6b11a97 100644
--- a/drivers/staging/rtl8192e/ieee80211/ieee80211.h
+++ b/drivers/staging/rtl8192e/ieee80211/ieee80211.h
@@ -299,8 +299,8 @@ enum	_ReasonCode{
 
 #define ieee80211_wep_null		ieee80211_wep_null_rsl
 
-#define free_ieee80211          	free_ieee80211_rsl
-#define alloc_ieee80211        		alloc_ieee80211_rsl
+#define ieee80211_free_hw		ieee80211_free_hw_rsl
+#define ieee80211_alloc_hw		ieee80211_alloc_hw_rsl
 
 #define ieee80211_rx 			ieee80211_rx_rsl
 #define ieee80211_rx_mgt		ieee80211_rx_mgt_rsl
@@ -2371,8 +2371,9 @@ static inline int ieee80211_is_cck_rate(u8 rate)
 
 
 /* ieee80211.c */
-void free_ieee80211(struct net_device *dev);
-struct net_device *alloc_ieee80211(int sizeof_priv, const struct ieee80211_ops *ops);
+struct ieee80211_device *ieee80211_alloc_hw(int sizeof_priv,
+					    const struct ieee80211_ops *ops);
+void ieee80211_free_hw(struct ieee80211_device *ieee);
 
 int ieee80211_set_encryption(struct ieee80211_device *ieee);
 
diff --git a/drivers/staging/rtl8192e/ieee80211/ieee80211_module.c b/drivers/staging/rtl8192e/ieee80211/ieee80211_module.c
index e182e27..c2c518d 100644
--- a/drivers/staging/rtl8192e/ieee80211/ieee80211_module.c
+++ b/drivers/staging/rtl8192e/ieee80211/ieee80211_module.c
@@ -95,7 +95,7 @@ static inline void ieee80211_networks_initialize(struct ieee80211_device *ieee)
 }
 
 
-struct net_device *alloc_ieee80211(int sizeof_priv, const struct ieee80211_ops *ops)
+struct ieee80211_device *ieee80211_alloc_hw(int sizeof_priv, const struct ieee80211_ops *ops)
 {
 	struct ieee80211_device *ieee;
 	struct net_device *dev;
@@ -186,7 +186,7 @@ struct net_device *alloc_ieee80211(int sizeof_priv, const struct ieee80211_ops *
 	ieee80211_wep_null();
 	ieee80211_ccmp_null();
 
-	return dev;
+	return ieee;
 
 failed:
 	if (dev) {
@@ -198,9 +198,9 @@ failed:
 }
 
 
-void free_ieee80211(struct net_device *dev)
+void ieee80211_free_hw(struct ieee80211_device *ieee)
 {
-	struct ieee80211_device *ieee = netdev_priv(dev);
+	struct net_device *dev = ieee->dev;
 	int i;
 	kfree(ieee->pHTInfo);
 	ieee->pHTInfo = NULL;
diff --git a/drivers/staging/rtl8192e/r8192E_core.c b/drivers/staging/rtl8192e/r8192E_core.c
index 28f4ffa..6956748 100644
--- a/drivers/staging/rtl8192e/r8192E_core.c
+++ b/drivers/staging/rtl8192e/r8192E_core.c
@@ -4541,6 +4541,7 @@ static const struct ieee80211_ops r8192e_ops = {
 static int __devinit rtl8192_pci_probe(struct pci_dev *pdev,
 			 const struct pci_device_id *id)
 {
+	struct ieee80211_device *ieee = NULL;
 	struct net_device *dev = NULL;
 	struct r8192_priv *priv= NULL;
 	u8 unit = 0;
@@ -4558,16 +4559,17 @@ static int __devinit rtl8192_pci_probe(struct pci_dev *pdev,
 	//pci_set_wmi(pdev);
 	pci_set_dma_mask(pdev, 0xffffff00ULL);
 	pci_set_consistent_dma_mask(pdev,0xffffff00ULL);
-	dev = alloc_ieee80211(sizeof *priv, &r8192e_ops);
-	if (!dev) {
+	ieee = ieee80211_alloc_hw(sizeof(*priv), &r8192e_ops);
+	if (!ieee) {
 		ret = -ENOMEM;
 		goto fail_free;
 	}
 
+	dev = ieee->dev;
 	pci_set_drvdata(pdev, dev);
 	SET_NETDEV_DEV(dev, &pdev->dev);
-	priv = ieee80211_priv(dev);
-	priv->ieee80211 = netdev_priv(dev);
+	priv = ieee->priv;
+	priv->ieee80211 = ieee;
 	priv->pdev=pdev;
 	if((pdev->subsystem_vendor == PCI_VENDOR_ID_DLINK)&&(pdev->subsystem_device == 0x3304)){
 		priv->ieee80211->bSupportRemoteWakeUp = 1;
@@ -4654,7 +4656,7 @@ fail:
 			free_irq(priv->irq, priv);
 			priv->irq = 0;
 		}
-		free_ieee80211(dev);
+		ieee80211_free_hw(ieee);
 	}
 
 fail_free:
@@ -4724,7 +4726,7 @@ static void __devexit rtl8192_pci_disconnect(struct pci_dev *pdev)
 					    pci_resource_len(pdev, 1) );
 		}
 
-		free_ieee80211(dev);
+		ieee80211_free_hw(priv->ieee80211);
 	}
 
 	pci_disable_device(pdev);
-- 
1.7.0.4





More information about the devel mailing list