summaryrefslogtreecommitdiffstats
path: root/net/ipv6/reassembly.c
diff options
context:
space:
mode:
authorArnd Bergmann2010-02-11 06:55:39 +0100
committerDavid S. Miller2010-02-16 06:49:49 +0100
commit564517e804c9c6d4e29c270bfc1517404d27107b (patch)
treef1912327050508a1d2902dbba7cbfcf7d054cd0f /net/ipv6/reassembly.c
parentcxgb3: fix link flap (diff)
downloadkernel-qcow2-linux-564517e804c9c6d4e29c270bfc1517404d27107b.tar.gz
kernel-qcow2-linux-564517e804c9c6d4e29c270bfc1517404d27107b.tar.xz
kernel-qcow2-linux-564517e804c9c6d4e29c270bfc1517404d27107b.zip
net/macvtap: fix reference counting
The RCU usage in the original code was broken because there are cases where we possibly sleep with rcu_read_lock held. As a fix, change the macvtap_file_get_queue to get a reference on the socket and the netdev instead of taking the full rcu_read_lock. Also, change macvtap_file_get_queue failure case to not require a subsequent macvtap_file_put_queue, as pointed out by Ed Swierk. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: Ed Swierk <eswierk@aristanetworks.com> Cc: Sridhar Samudrala <sri@us.ibm.com> Acked-by: Sridhar Samudrala <sri@us.ibm.com> Acked-by: Ed Swierk <eswierk@aristanetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/reassembly.c')
0 files changed, 0 insertions, 0 deletions