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>
This commit is contained in:

committed by
David S. Miller

parent
8f15ea42b6
commit
524ad0a791
@@ -101,7 +101,7 @@ static LIST_HEAD(br2684_devs);
|
||||
|
||||
static inline struct br2684_dev *BRPRIV(const struct net_device *net_dev)
|
||||
{
|
||||
return (struct br2684_dev *)net_dev->priv;
|
||||
return (struct br2684_dev *)netdev_priv(net_dev);
|
||||
}
|
||||
|
||||
static inline struct net_device *list_entry_brdev(const struct list_head *le)
|
||||
|
@@ -152,7 +152,7 @@ static void lec_handle_bridge(struct sk_buff *skb, struct net_device *dev)
|
||||
buff += 4;
|
||||
mesg->content.normal.flag = *buff & 0x01; /* 0x01 is topology change */
|
||||
|
||||
priv = (struct lec_priv *)dev->priv;
|
||||
priv = netdev_priv(dev);
|
||||
atm_force_charge(priv->lecd, skb2->truesize);
|
||||
sk = sk_atm(priv->lecd);
|
||||
skb_queue_tail(&sk->sk_receive_queue, skb2);
|
||||
@@ -218,7 +218,7 @@ static unsigned char *get_tr_dst(unsigned char *packet, unsigned char *rdesc)
|
||||
|
||||
static int lec_open(struct net_device *dev)
|
||||
{
|
||||
struct lec_priv *priv = (struct lec_priv *)dev->priv;
|
||||
struct lec_priv *priv = netdev_priv(dev);
|
||||
|
||||
netif_start_queue(dev);
|
||||
memset(&priv->stats, 0, sizeof(struct net_device_stats));
|
||||
@@ -252,7 +252,7 @@ static void lec_tx_timeout(struct net_device *dev)
|
||||
static int lec_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
{
|
||||
struct sk_buff *skb2;
|
||||
struct lec_priv *priv = (struct lec_priv *)dev->priv;
|
||||
struct lec_priv *priv = netdev_priv(dev);
|
||||
struct lecdatahdr_8023 *lec_h;
|
||||
struct atm_vcc *vcc;
|
||||
struct lec_arp_table *entry;
|
||||
@@ -433,14 +433,14 @@ static int lec_close(struct net_device *dev)
|
||||
*/
|
||||
static struct net_device_stats *lec_get_stats(struct net_device *dev)
|
||||
{
|
||||
return &((struct lec_priv *)dev->priv)->stats;
|
||||
return &((struct lec_priv *)netdev_priv(dev))->stats;
|
||||
}
|
||||
|
||||
static int lec_atm_send(struct atm_vcc *vcc, struct sk_buff *skb)
|
||||
{
|
||||
unsigned long flags;
|
||||
struct net_device *dev = (struct net_device *)vcc->proto_data;
|
||||
struct lec_priv *priv = (struct lec_priv *)dev->priv;
|
||||
struct lec_priv *priv = netdev_priv(dev);
|
||||
struct atmlec_msg *mesg;
|
||||
struct lec_arp_table *entry;
|
||||
int i;
|
||||
@@ -580,7 +580,7 @@ static void lec_atm_close(struct atm_vcc *vcc)
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
struct net_device *dev = (struct net_device *)vcc->proto_data;
|
||||
struct lec_priv *priv = (struct lec_priv *)dev->priv;
|
||||
struct lec_priv *priv = netdev_priv(dev);
|
||||
|
||||
priv->lecd = NULL;
|
||||
/* Do something needful? */
|
||||
@@ -711,7 +711,7 @@ static void lec_push(struct atm_vcc *vcc, struct sk_buff *skb)
|
||||
{
|
||||
unsigned long flags;
|
||||
struct net_device *dev = (struct net_device *)vcc->proto_data;
|
||||
struct lec_priv *priv = (struct lec_priv *)dev->priv;
|
||||
struct lec_priv *priv = netdev_priv(dev);
|
||||
|
||||
#if DUMP_PACKETS >0
|
||||
int i = 0;
|
||||
@@ -858,7 +858,7 @@ static int lec_vcc_attach(struct atm_vcc *vcc, void __user *arg)
|
||||
vpriv->old_pop = vcc->pop;
|
||||
vcc->user_back = vpriv;
|
||||
vcc->pop = lec_pop;
|
||||
lec_vcc_added(dev_lec[ioc_data.dev_num]->priv,
|
||||
lec_vcc_added(netdev_priv(dev_lec[ioc_data.dev_num]),
|
||||
&ioc_data, vcc, vcc->push);
|
||||
vcc->proto_data = dev_lec[ioc_data.dev_num];
|
||||
vcc->push = lec_push;
|
||||
@@ -870,7 +870,8 @@ static int lec_mcast_attach(struct atm_vcc *vcc, int arg)
|
||||
if (arg < 0 || arg >= MAX_LEC_ITF || !dev_lec[arg])
|
||||
return -EINVAL;
|
||||
vcc->proto_data = dev_lec[arg];
|
||||
return (lec_mcast_make((struct lec_priv *)dev_lec[arg]->priv, vcc));
|
||||
return lec_mcast_make((struct lec_priv *)netdev_priv(dev_lec[arg]),
|
||||
vcc);
|
||||
}
|
||||
|
||||
/* Initialize device. */
|
||||
@@ -912,11 +913,11 @@ static int lecd_attach(struct atm_vcc *vcc, int arg)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
priv = dev_lec[i]->priv;
|
||||
priv = netdev_priv(dev_lec[i]);
|
||||
priv->is_trdev = is_trdev;
|
||||
lec_init(dev_lec[i]);
|
||||
} else {
|
||||
priv = dev_lec[i]->priv;
|
||||
priv = netdev_priv(dev_lec[i]);
|
||||
if (priv->lecd)
|
||||
return -EADDRINUSE;
|
||||
}
|
||||
@@ -1077,7 +1078,8 @@ static void *lec_itf_walk(struct lec_state *state, loff_t *l)
|
||||
void *v;
|
||||
|
||||
dev = state->dev ? state->dev : dev_lec[state->itf];
|
||||
v = (dev && dev->priv) ? lec_priv_walk(state, l, dev->priv) : NULL;
|
||||
v = (dev && netdev_priv(dev)) ?
|
||||
lec_priv_walk(state, l, netdev_priv(dev)) : NULL;
|
||||
if (!v && dev) {
|
||||
dev_put(dev);
|
||||
/* Partial state reset for the next time we get called */
|
||||
@@ -1239,7 +1241,7 @@ static void __exit lane_module_cleanup(void)
|
||||
|
||||
for (i = 0; i < MAX_LEC_ITF; i++) {
|
||||
if (dev_lec[i] != NULL) {
|
||||
priv = (struct lec_priv *)dev_lec[i]->priv;
|
||||
priv = netdev_priv(dev_lec[i]);
|
||||
unregister_netdev(dev_lec[i]);
|
||||
free_netdev(dev_lec[i]);
|
||||
dev_lec[i] = NULL;
|
||||
@@ -1263,7 +1265,7 @@ static int lane2_resolve(struct net_device *dev, const u8 *dst_mac, int force,
|
||||
u8 **tlvs, u32 *sizeoftlvs)
|
||||
{
|
||||
unsigned long flags;
|
||||
struct lec_priv *priv = (struct lec_priv *)dev->priv;
|
||||
struct lec_priv *priv = netdev_priv(dev);
|
||||
struct lec_arp_table *table;
|
||||
struct sk_buff *skb;
|
||||
int retval;
|
||||
@@ -1310,7 +1312,7 @@ static int lane2_associate_req(struct net_device *dev, const u8 *lan_dst,
|
||||
{
|
||||
int retval;
|
||||
struct sk_buff *skb;
|
||||
struct lec_priv *priv = (struct lec_priv *)dev->priv;
|
||||
struct lec_priv *priv = netdev_priv(dev);
|
||||
|
||||
if (compare_ether_addr(lan_dst, dev->dev_addr))
|
||||
return (0); /* not our mac address */
|
||||
@@ -1347,7 +1349,7 @@ static void lane2_associate_ind(struct net_device *dev, const u8 *mac_addr,
|
||||
#if 0
|
||||
int i = 0;
|
||||
#endif
|
||||
struct lec_priv *priv = (struct lec_priv *)dev->priv;
|
||||
struct lec_priv *priv = netdev_priv(dev);
|
||||
#if 0 /*
|
||||
* Why have the TLVs in LE_ARP entries
|
||||
* since we do not use them? When you
|
||||
|
@@ -785,7 +785,7 @@ static int atm_mpoa_mpoad_attach (struct atm_vcc *vcc, int arg)
|
||||
}
|
||||
|
||||
if (mpc->dev) { /* check if the lec is LANE2 capable */
|
||||
priv = (struct lec_priv *)mpc->dev->priv;
|
||||
priv = netdev_priv(mpc->dev);
|
||||
if (priv->lane_version < 2) {
|
||||
dev_put(mpc->dev);
|
||||
mpc->dev = NULL;
|
||||
@@ -845,7 +845,7 @@ static void mpoad_close(struct atm_vcc *vcc)
|
||||
|
||||
mpc->mpoad_vcc = NULL;
|
||||
if (mpc->dev) {
|
||||
struct lec_priv *priv = (struct lec_priv *)mpc->dev->priv;
|
||||
struct lec_priv *priv = netdev_priv(mpc->dev);
|
||||
priv->lane2_ops->associate_indicator = NULL;
|
||||
stop_mpc(mpc);
|
||||
dev_put(mpc->dev);
|
||||
@@ -976,7 +976,7 @@ static int mpoa_event_listener(struct notifier_block *mpoa_notifier, unsigned lo
|
||||
|
||||
switch (event) {
|
||||
case NETDEV_REGISTER: /* a new lec device was allocated */
|
||||
priv = (struct lec_priv *)dev->priv;
|
||||
priv = netdev_priv(dev);
|
||||
if (priv->lane_version < 2)
|
||||
break;
|
||||
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
|
||||
dprintk("\n");
|
||||
|
||||
if (mpc->dev) {
|
||||
priv = (struct lec_priv *)mpc->dev->priv;
|
||||
priv = netdev_priv(mpc->dev);
|
||||
retval = priv->lane2_ops->associate_req(mpc->dev, mpc->dev->dev_addr, tlv, sizeof(tlv));
|
||||
if (retval == 0)
|
||||
printk("mpoa: (%s) MPOA device type TLV association failed\n", mpc->dev->name);
|
||||
@@ -1474,7 +1474,7 @@ static void __exit atm_mpoa_cleanup(void)
|
||||
tmp = mpc->next;
|
||||
if (mpc->dev != NULL) {
|
||||
stop_mpc(mpc);
|
||||
priv = (struct lec_priv *)mpc->dev->priv;
|
||||
priv = netdev_priv(mpc->dev);
|
||||
if (priv->lane2_ops != NULL)
|
||||
priv->lane2_ops->associate_indicator = NULL;
|
||||
}
|
||||
|
Reference in New Issue
Block a user