aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2012-10-18 03:21:55 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-11-17 13:14:23 -0800
commitfdc00abab6858f9da6a40e03c831c252b4f419bd (patch)
tree9dcf20ae9c599eeb60b979c1450339db332b8baa /net/ipv4
parentb23270416da409bd4e637a5acbe31a1126235fb6 (diff)
downloadkernel_samsung_espresso10-fdc00abab6858f9da6a40e03c831c252b4f419bd.zip
kernel_samsung_espresso10-fdc00abab6858f9da6a40e03c831c252b4f419bd.tar.gz
kernel_samsung_espresso10-fdc00abab6858f9da6a40e03c831c252b4f419bd.tar.bz2
netlink: use kfree_rcu() in netlink_release()
[ Upstream commit 6d772ac5578f711d1ce7b03535d1c95bffb21dff ] On some suspend/resume operations involving wimax device, we have noticed some intermittent memory corruptions in netlink code. Stéphane Marchesin tracked this corruption in netlink_update_listeners() and suggested a patch. It appears netlink_release() should use kfree_rcu() instead of kfree() for the listeners structure as it may be used by other cpus using RCU protection. netlink_release() must set to NULL the listeners pointer when it is about to be freed. Also have to protect netlink_update_listeners() and netlink_has_listeners() if listeners is NULL. Add a nl_deref_protected() lockdep helper to properly document which locks protects us. Reported-by: Jonathan Kliegman <kliegs@google.com> Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Stéphane Marchesin <marcheu@google.com> Cc: Sam Leffler <sleffler@google.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/ipv4')
0 files changed, 0 insertions, 0 deletions