diff options
author | Wang Chen <wangchen@cn.fujitsu.com> | 2008-11-13 02:39:10 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-11-13 02:39:10 -0500 |
commit | 524ad0a79126efabf58d0a49eace6155ab5b4549 (patch) | |
tree | 927e79d7d28d2c563c5beba74f06527df564e31c /net/atm/lec.c | |
parent | 8f15ea42b64941001a401cf855a0869e24f3a845 (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.c | 34 |
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 | ||
219 | static int lec_open(struct net_device *dev) | 219 | static 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) | |||
252 | static int lec_start_xmit(struct sk_buff *skb, struct net_device *dev) | 252 | static 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 | */ |
434 | static struct net_device_stats *lec_get_stats(struct net_device *dev) | 434 | static 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 | ||
439 | static int lec_atm_send(struct atm_vcc *vcc, struct sk_buff *skb) | 439 | static 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 |