aboutsummaryrefslogtreecommitdiffstats
path: root/net/atm/lec.c
diff options
context:
space:
mode:
authorWang Chen <wangchen@cn.fujitsu.com>2008-11-13 02:39:10 -0500
committerDavid S. Miller <davem@davemloft.net>2008-11-13 02:39:10 -0500
commit524ad0a79126efabf58d0a49eace6155ab5b4549 (patch)
tree927e79d7d28d2c563c5beba74f06527df564e31c /net/atm/lec.c
parent8f15ea42b64941001a401cf855a0869e24f3a845 (diff)
netdevice: safe convert to netdev_priv() #part-4
We have some reasons to kill netdev->priv: 1. netdev->priv is equal to netdev_priv(). 2. netdev_priv() wraps the calculation of netdev->priv's offset, obviously netdev_priv() is more flexible than netdev->priv. But we cann't kill netdev->priv, because so many drivers reference to it directly. This patch is a safe convert for netdev->priv to netdev_priv(netdev). Since all of the netdev->priv is only for read. But it is too big to be sent in one mail. I split it to 4 parts and make every part smaller than 100,000 bytes, which is max size allowed by vger. Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/atm/lec.c')
-rw-r--r--net/atm/lec.c34
1 files changed, 18 insertions, 16 deletions
diff --git a/net/atm/lec.c b/net/atm/lec.c
index 1def62d17739..e5e301550e8a 100644
--- a/net/atm/lec.c
+++ b/net/atm/lec.c
@@ -152,7 +152,7 @@ static void lec_handle_bridge(struct sk_buff *skb, struct net_device *dev)
152 buff += 4; 152 buff += 4;
153 mesg->content.normal.flag = *buff & 0x01; /* 0x01 is topology change */ 153 mesg->content.normal.flag = *buff & 0x01; /* 0x01 is topology change */
154 154
155 priv = (struct lec_priv *)dev->priv; 155 priv = netdev_priv(dev);
156 atm_force_charge(priv->lecd, skb2->truesize); 156 atm_force_charge(priv->lecd, skb2->truesize);
157 sk = sk_atm(priv->lecd); 157 sk = sk_atm(priv->lecd);
158 skb_queue_tail(&sk->sk_receive_queue, skb2); 158 skb_queue_tail(&sk->sk_receive_queue, skb2);
@@ -218,7 +218,7 @@ static unsigned char *get_tr_dst(unsigned char *packet, unsigned char *rdesc)
218 218
219static int lec_open(struct net_device *dev) 219static int lec_open(struct net_device *dev)
220{ 220{
221 struct lec_priv *priv = (struct lec_priv *)dev->priv; 221 struct lec_priv *priv = netdev_priv(dev);
222 222
223 netif_start_queue(dev); 223 netif_start_queue(dev);
224 memset(&priv->stats, 0, sizeof(struct net_device_stats)); 224 memset(&priv->stats, 0, sizeof(struct net_device_stats));
@@ -252,7 +252,7 @@ static void lec_tx_timeout(struct net_device *dev)
252static int lec_start_xmit(struct sk_buff *skb, struct net_device *dev) 252static int lec_start_xmit(struct sk_buff *skb, struct net_device *dev)
253{ 253{
254 struct sk_buff *skb2; 254 struct sk_buff *skb2;
255 struct lec_priv *priv = (struct lec_priv *)dev->priv; 255 struct lec_priv *priv = netdev_priv(dev);
256 struct lecdatahdr_8023 *lec_h; 256 struct lecdatahdr_8023 *lec_h;
257 struct atm_vcc *vcc; 257 struct atm_vcc *vcc;
258 struct lec_arp_table *entry; 258 struct lec_arp_table *entry;
@@ -433,14 +433,14 @@ static int lec_close(struct net_device *dev)
433 */ 433 */
434static struct net_device_stats *lec_get_stats(struct net_device *dev) 434static struct net_device_stats *lec_get_stats(struct net_device *dev)
435{ 435{
436 return &((struct lec_priv *)dev->priv)->stats; 436 return &((struct lec_priv *)netdev_priv(dev))->stats;
437} 437}
438 438
439static int lec_atm_send(struct atm_vcc *vcc, struct sk_buff *skb) 439static int lec_atm_send(struct atm_vcc *vcc, struct sk_buff *skb)
440{ 440{
441 unsigned long flags; 441 unsigned long flags;
442 struct net_device *dev = (struct net_device *)vcc->proto_data; 442 struct net_device *dev = (struct net_device *)vcc->proto_data;
443 struct lec_priv *priv = (struct lec_priv *)dev->priv; 443 struct lec_priv *priv = netdev_priv(dev);
444 struct atmlec_msg *mesg; 444 struct atmlec_msg *mesg;
445 struct lec_arp_table *entry; 445 struct lec_arp_table *entry;
446 int i; 446 int i;
@@ -580,7 +580,7 @@ static void lec_atm_close(struct atm_vcc *vcc)
580{ 580{
581 struct sk_buff *skb; 581 struct sk_buff *skb;
582 struct net_device *dev = (struct net_device *)vcc->proto_data; 582 struct net_device *dev = (struct net_device *)vcc->proto_data;
583 struct lec_priv *priv = (struct lec_priv *)dev->priv; 583 struct lec_priv *priv = netdev_priv(dev);
584 584
585 priv->lecd = NULL; 585 priv->lecd = NULL;
586 /* Do something needful? */ 586 /* Do something needful? */
@@ -711,7 +711,7 @@ static void lec_push(struct atm_vcc *vcc, struct sk_buff *skb)
711{ 711{
712 unsigned long flags; 712 unsigned long flags;
713 struct net_device *dev = (struct net_device *)vcc->proto_data; 713 struct net_device *dev = (struct net_device *)vcc->proto_data;
714 struct lec_priv *priv = (struct lec_priv *)dev->priv; 714 struct lec_priv *priv = netdev_priv(dev);
715 715
716#if DUMP_PACKETS >0 716#if DUMP_PACKETS >0
717 int i = 0; 717 int i = 0;
@@ -858,7 +858,7 @@ static int lec_vcc_attach(struct atm_vcc *vcc, void __user *arg)
858 vpriv->old_pop = vcc->pop; 858 vpriv->old_pop = vcc->pop;
859 vcc->user_back = vpriv; 859 vcc->user_back = vpriv;
860 vcc->pop = lec_pop; 860 vcc->pop = lec_pop;
861 lec_vcc_added(dev_lec[ioc_data.dev_num]->priv, 861 lec_vcc_added(netdev_priv(dev_lec[ioc_data.dev_num]),
862 &ioc_data, vcc, vcc->push); 862 &ioc_data, vcc, vcc->push);
863 vcc->proto_data = dev_lec[ioc_data.dev_num]; 863 vcc->proto_data = dev_lec[ioc_data.dev_num];
864 vcc->push = lec_push; 864 vcc->push = lec_push;
@@ -870,7 +870,8 @@ static int lec_mcast_attach(struct atm_vcc *vcc, int arg)
870 if (arg < 0 || arg >= MAX_LEC_ITF || !dev_lec[arg]) 870 if (arg < 0 || arg >= MAX_LEC_ITF || !dev_lec[arg])
871 return -EINVAL; 871 return -EINVAL;
872 vcc->proto_data = dev_lec[arg]; 872 vcc->proto_data = dev_lec[arg];
873 return (lec_mcast_make((struct lec_priv *)dev_lec[arg]->priv, vcc)); 873 return lec_mcast_make((struct lec_priv *)netdev_priv(dev_lec[arg]),
874 vcc);
874} 875}
875 876
876/* Initialize device. */ 877/* Initialize device. */
@@ -912,11 +913,11 @@ static int lecd_attach(struct atm_vcc *vcc, int arg)
912 return -EINVAL; 913 return -EINVAL;
913 } 914 }
914 915
915 priv = dev_lec[i]->priv; 916 priv = netdev_priv(dev_lec[i]);
916 priv->is_trdev = is_trdev; 917 priv->is_trdev = is_trdev;
917 lec_init(dev_lec[i]); 918 lec_init(dev_lec[i]);
918 } else { 919 } else {
919 priv = dev_lec[i]->priv; 920 priv = netdev_priv(dev_lec[i]);
920 if (priv->lecd) 921 if (priv->lecd)
921 return -EADDRINUSE; 922 return -EADDRINUSE;
922 } 923 }
@@ -1077,7 +1078,8 @@ static void *lec_itf_walk(struct lec_state *state, loff_t *l)
1077 void *v; 1078 void *v;
1078 1079
1079 dev = state->dev ? state->dev : dev_lec[state->itf]; 1080 dev = state->dev ? state->dev : dev_lec[state->itf];
1080 v = (dev && dev->priv) ? lec_priv_walk(state, l, dev->priv) : NULL; 1081 v = (dev && netdev_priv(dev)) ?
1082 lec_priv_walk(state, l, netdev_priv(dev)) : NULL;
1081 if (!v && dev) { 1083 if (!v && dev) {
1082 dev_put(dev); 1084 dev_put(dev);
1083 /* Partial state reset for the next time we get called */ 1085 /* Partial state reset for the next time we get called */
@@ -1239,7 +1241,7 @@ static void __exit lane_module_cleanup(void)
1239 1241
1240 for (i = 0; i < MAX_LEC_ITF; i++) { 1242 for (i = 0; i < MAX_LEC_ITF; i++) {
1241 if (dev_lec[i] != NULL) { 1243 if (dev_lec[i] != NULL) {
1242 priv = (struct lec_priv *)dev_lec[i]->priv; 1244 priv = netdev_priv(dev_lec[i]);
1243 unregister_netdev(dev_lec[i]); 1245 unregister_netdev(dev_lec[i]);
1244 free_netdev(dev_lec[i]); 1246 free_netdev(dev_lec[i]);
1245 dev_lec[i] = NULL; 1247 dev_lec[i] = NULL;
@@ -1263,7 +1265,7 @@ static int lane2_resolve(struct net_device *dev, const u8 *dst_mac, int force,
1263 u8 **tlvs, u32 *sizeoftlvs) 1265 u8 **tlvs, u32 *sizeoftlvs)
1264{ 1266{
1265 unsigned long flags; 1267 unsigned long flags;
1266 struct lec_priv *priv = (struct lec_priv *)dev->priv; 1268 struct lec_priv *priv = netdev_priv(dev);
1267 struct lec_arp_table *table; 1269 struct lec_arp_table *table;
1268 struct sk_buff *skb; 1270 struct sk_buff *skb;
1269 int retval; 1271 int retval;
@@ -1310,7 +1312,7 @@ static int lane2_associate_req(struct net_device *dev, const u8 *lan_dst,
1310{ 1312{
1311 int retval; 1313 int retval;
1312 struct sk_buff *skb; 1314 struct sk_buff *skb;
1313 struct lec_priv *priv = (struct lec_priv *)dev->priv; 1315 struct lec_priv *priv = netdev_priv(dev);
1314 1316
1315 if (compare_ether_addr(lan_dst, dev->dev_addr)) 1317 if (compare_ether_addr(lan_dst, dev->dev_addr))
1316 return (0); /* not our mac address */ 1318 return (0); /* not our mac address */
@@ -1347,7 +1349,7 @@ static void lane2_associate_ind(struct net_device *dev, const u8 *mac_addr,
1347#if 0 1349#if 0
1348 int i = 0; 1350 int i = 0;
1349#endif 1351#endif
1350 struct lec_priv *priv = (struct lec_priv *)dev->priv; 1352 struct lec_priv *priv = netdev_priv(dev);
1351#if 0 /* 1353#if 0 /*
1352 * Why have the TLVs in LE_ARP entries 1354 * Why have the TLVs in LE_ARP entries
1353 * since we do not use them? When you 1355 * since we do not use them? When you