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 | |
| 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')
| -rw-r--r-- | net/atm/br2684.c | 2 | ||||
| -rw-r--r-- | net/atm/lec.c | 34 | ||||
| -rw-r--r-- | net/atm/mpc.c | 10 |
3 files changed, 24 insertions, 22 deletions
diff --git a/net/atm/br2684.c b/net/atm/br2684.c index 29ef8dc6921b..ea9438fc6855 100644 --- a/net/atm/br2684.c +++ b/net/atm/br2684.c | |||
| @@ -101,7 +101,7 @@ static LIST_HEAD(br2684_devs); | |||
| 101 | 101 | ||
| 102 | static inline struct br2684_dev *BRPRIV(const struct net_device *net_dev) | 102 | static inline struct br2684_dev *BRPRIV(const struct net_device *net_dev) |
| 103 | { | 103 | { |
| 104 | return (struct br2684_dev *)net_dev->priv; | 104 | return (struct br2684_dev *)netdev_priv(net_dev); |
| 105 | } | 105 | } |
| 106 | 106 | ||
| 107 | static inline struct net_device *list_entry_brdev(const struct list_head *le) | 107 | static inline struct net_device *list_entry_brdev(const struct list_head *le) |
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 |
diff --git a/net/atm/mpc.c b/net/atm/mpc.c index 010b1d2a5a8f..12e9ea371db1 100644 --- a/net/atm/mpc.c +++ b/net/atm/mpc.c | |||
| @@ -785,7 +785,7 @@ static int atm_mpoa_mpoad_attach (struct atm_vcc *vcc, int arg) | |||
| 785 | } | 785 | } |
| 786 | 786 | ||
| 787 | if (mpc->dev) { /* check if the lec is LANE2 capable */ | 787 | if (mpc->dev) { /* check if the lec is LANE2 capable */ |
| 788 | priv = (struct lec_priv *)mpc->dev->priv; | 788 | priv = netdev_priv(mpc->dev); |
| 789 | if (priv->lane_version < 2) { | 789 | if (priv->lane_version < 2) { |
| 790 | dev_put(mpc->dev); | 790 | dev_put(mpc->dev); |
| 791 | mpc->dev = NULL; | 791 | mpc->dev = NULL; |
| @@ -845,7 +845,7 @@ static void mpoad_close(struct atm_vcc *vcc) | |||
| 845 | 845 | ||
| 846 | mpc->mpoad_vcc = NULL; | 846 | mpc->mpoad_vcc = NULL; |
| 847 | if (mpc->dev) { | 847 | if (mpc->dev) { |
| 848 | struct lec_priv *priv = (struct lec_priv *)mpc->dev->priv; | 848 | struct lec_priv *priv = netdev_priv(mpc->dev); |
| 849 | priv->lane2_ops->associate_indicator = NULL; | 849 | priv->lane2_ops->associate_indicator = NULL; |
| 850 | stop_mpc(mpc); | 850 | stop_mpc(mpc); |
| 851 | dev_put(mpc->dev); | 851 | dev_put(mpc->dev); |
| @@ -976,7 +976,7 @@ static int mpoa_event_listener(struct notifier_block *mpoa_notifier, unsigned lo | |||
| 976 | 976 | ||
| 977 | switch (event) { | 977 | switch (event) { |
| 978 | case NETDEV_REGISTER: /* a new lec device was allocated */ | 978 | case NETDEV_REGISTER: /* a new lec device was allocated */ |
| 979 | priv = (struct lec_priv *)dev->priv; | 979 | priv = netdev_priv(dev); |
| 980 | if (priv->lane_version < 2) | 980 | if (priv->lane_version < 2) |
| 981 | break; | 981 | break; |
| 982 | priv->lane2_ops->associate_indicator = lane2_assoc_ind; | 982 | priv->lane2_ops->associate_indicator = lane2_assoc_ind; |
| @@ -1324,7 +1324,7 @@ static void set_mpc_ctrl_addr_rcvd(struct k_message *mesg, struct mpoa_client *m | |||
| 1324 | dprintk("\n"); | 1324 | dprintk("\n"); |
| 1325 | 1325 | ||
| 1326 | if (mpc->dev) { | 1326 | if (mpc->dev) { |
| 1327 | priv = (struct lec_priv *)mpc->dev->priv; | 1327 | priv = netdev_priv(mpc->dev); |
| 1328 | retval = priv->lane2_ops->associate_req(mpc->dev, mpc->dev->dev_addr, tlv, sizeof(tlv)); | 1328 | retval = priv->lane2_ops->associate_req(mpc->dev, mpc->dev->dev_addr, tlv, sizeof(tlv)); |
| 1329 | if (retval == 0) | 1329 | if (retval == 0) |
| 1330 | printk("mpoa: (%s) MPOA device type TLV association failed\n", mpc->dev->name); | 1330 | printk("mpoa: (%s) MPOA device type TLV association failed\n", mpc->dev->name); |
| @@ -1474,7 +1474,7 @@ static void __exit atm_mpoa_cleanup(void) | |||
| 1474 | tmp = mpc->next; | 1474 | tmp = mpc->next; |
| 1475 | if (mpc->dev != NULL) { | 1475 | if (mpc->dev != NULL) { |
| 1476 | stop_mpc(mpc); | 1476 | stop_mpc(mpc); |
| 1477 | priv = (struct lec_priv *)mpc->dev->priv; | 1477 | priv = netdev_priv(mpc->dev); |
| 1478 | if (priv->lane2_ops != NULL) | 1478 | if (priv->lane2_ops != NULL) |
| 1479 | priv->lane2_ops->associate_indicator = NULL; | 1479 | priv->lane2_ops->associate_indicator = NULL; |
| 1480 | } | 1480 | } |
