netlabel: Fix several rcu_dereference() calls used without RCU read locks
authorPaul Moore <paul.moore@hp.com>
Thu, 1 Apr 2010 10:43:57 +0000 (10:43 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 2 Apr 2010 01:32:08 +0000 (18:32 -0700)
commitb914f3a2a35812545f773645f340d7c075e5b64d
tree813a4aeedd6594700a35f2fbf18754dae96edd55
parent9e2e61fbf8ad016d24e4af0afff13505f3dd2a2a
netlabel: Fix several rcu_dereference() calls used without RCU read locks

The recent changes to add RCU lock verification to rcu_dereference() calls
caught out a problem with netlbl_unlhsh_hash(), see below.

 ===================================================
 [ INFO: suspicious rcu_dereference_check() usage. ]
 ---------------------------------------------------
 net/netlabel/netlabel_unlabeled.c:246 invoked rcu_dereference_check()
 without protection!

This patch fixes this problem as well as others like it in the NetLabel
code.  Also included in this patch is the identification of future work
to eliminate the RCU read lock in netlbl_domhsh_add(), but in the interest
of getting this patch out quickly that work will happen in another patch
to be finished later.

Thanks to Eric Dumazet and Paul McKenney for their help in understanding
the recent RCU changes.

Signed-off-by: Paul Moore <paul.moore@hp.com>
Reported-by: David Howells <dhowells@redhat.com>
CC: Eric Dumazet <eric.dumazet@gmail.com>
CC: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/netlabel/netlabel_domainhash.c
net/netlabel/netlabel_unlabeled.c