From fb01af35d48a30ab273a82e9a7a9a8a2751e5692 Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Sun, 24 Oct 2010 21:31:58 +0000 Subject: [PATCH] --- yaml --- r: 218413 b: refs/heads/master c: b616b09afabf6d569aa31176aa86f05d2586de3e h: refs/heads/master i: 218411: d1fd261d85e47faeb079abb83068afd878cc2412 v: v3 --- [refs] | 2 +- trunk/include/linux/netdevice.h | 2 +- trunk/net/8021q/vlan.c | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 20ec25212f49..7aaaa42a1c8c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5202e173d7bc5ff832a4f36e66f26e00feb343c6 +refs/heads/master: b616b09afabf6d569aa31176aa86f05d2586de3e diff --git a/trunk/include/linux/netdevice.h b/trunk/include/linux/netdevice.h index fcd3dda86322..ceefb441c236 100644 --- a/trunk/include/linux/netdevice.h +++ b/trunk/include/linux/netdevice.h @@ -944,7 +944,7 @@ struct net_device { /* Protocol specific pointers */ #if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE) - struct vlan_group *vlgrp; /* VLAN group */ + struct vlan_group __rcu *vlgrp; /* VLAN group */ #endif #ifdef CONFIG_NET_DSA void *dsa_ptr; /* dsa specific data */ diff --git a/trunk/net/8021q/vlan.c b/trunk/net/8021q/vlan.c index 05b867e43757..52077ca22072 100644 --- a/trunk/net/8021q/vlan.c +++ b/trunk/net/8021q/vlan.c @@ -112,7 +112,7 @@ void unregister_vlan_dev(struct net_device *dev, struct list_head *head) ASSERT_RTNL(); - grp = real_dev->vlgrp; + grp = rtnl_dereference(real_dev->vlgrp); BUG_ON(!grp); /* Take it out of our own structures, but be sure to interlock with @@ -177,7 +177,7 @@ int register_vlan_dev(struct net_device *dev) struct vlan_group *grp, *ngrp = NULL; int err; - grp = real_dev->vlgrp; + grp = rtnl_dereference(real_dev->vlgrp); if (!grp) { ngrp = grp = vlan_group_alloc(real_dev); if (!grp) @@ -385,7 +385,7 @@ static int vlan_device_event(struct notifier_block *unused, unsigned long event, dev->netdev_ops->ndo_vlan_rx_add_vid(dev, 0); } - grp = dev->vlgrp; + grp = rtnl_dereference(dev->vlgrp); if (!grp) goto out;