mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-17 01:04:19 +08:00
ipv6: fix a RCU warning in net/ipv6/ip6_flowlabel.c
This patch fixes the following RCU warning: [ 51.680236] =============================== [ 51.681914] [ INFO: suspicious RCU usage. ] [ 51.683610] 3.8.0-rc6-next-20130206-sasha-00028-g83214f7-dirty #276 Tainted: G W [ 51.686703] ------------------------------- [ 51.688281] net/ipv6/ip6_flowlabel.c:671 suspicious rcu_dereference_check() usage! we should use rcu_dereference_bh() when we hold rcu_read_lock_bh(). Reported-by: Sasha Levin <sasha.levin@oracle.com> Cc: David S. Miller <davem@davemloft.net> Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: Cong Wang <amwang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
14f8dc4953
commit
6a98dcf032
@ -65,13 +65,13 @@ static DEFINE_SPINLOCK(ip6_fl_lock);
|
|||||||
static DEFINE_SPINLOCK(ip6_sk_fl_lock);
|
static DEFINE_SPINLOCK(ip6_sk_fl_lock);
|
||||||
|
|
||||||
#define for_each_fl_rcu(hash, fl) \
|
#define for_each_fl_rcu(hash, fl) \
|
||||||
for (fl = rcu_dereference(fl_ht[(hash)]); \
|
for (fl = rcu_dereference_bh(fl_ht[(hash)]); \
|
||||||
fl != NULL; \
|
fl != NULL; \
|
||||||
fl = rcu_dereference(fl->next))
|
fl = rcu_dereference_bh(fl->next))
|
||||||
#define for_each_fl_continue_rcu(fl) \
|
#define for_each_fl_continue_rcu(fl) \
|
||||||
for (fl = rcu_dereference(fl->next); \
|
for (fl = rcu_dereference_bh(fl->next); \
|
||||||
fl != NULL; \
|
fl != NULL; \
|
||||||
fl = rcu_dereference(fl->next))
|
fl = rcu_dereference_bh(fl->next))
|
||||||
|
|
||||||
#define for_each_sk_fl_rcu(np, sfl) \
|
#define for_each_sk_fl_rcu(np, sfl) \
|
||||||
for (sfl = rcu_dereference_bh(np->ipv6_fl_list); \
|
for (sfl = rcu_dereference_bh(np->ipv6_fl_list); \
|
||||||
|
Loading…
Reference in New Issue
Block a user