diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2011-05-17 13:56:59 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-06-03 10:33:57 +0900 |
commit | ad033b20a2cc45cf88e48646d21bab1afc7024c6 (patch) | |
tree | da54029427e974fd376dab667294d0f2ba397581 | |
parent | 2e14c286d94922cd9f4bf3a2cb110ae0f24f9d85 (diff) | |
download | lwn-ad033b20a2cc45cf88e48646d21bab1afc7024c6.tar.gz lwn-ad033b20a2cc45cf88e48646d21bab1afc7024c6.zip |
net: use hlist_del_rcu() in dev_change_name()
[ Upstream commit 372b2312010bece1e36f577d6c99a6193ec54cbd ]
Using plain hlist_del() in dev_change_name() is wrong since a
concurrent reader can crash trying to dereference LIST_POISON1.
Bug introduced in commit 72c9528bab94 (net: Introduce
dev_get_by_name_rcu())
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | net/core/dev.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index af0995df7114..2bb4aa68466e 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -1006,7 +1006,7 @@ rollback: } write_lock_bh(&dev_base_lock); - hlist_del(&dev->name_hlist); + hlist_del_rcu(&dev->name_hlist); write_unlock_bh(&dev_base_lock); synchronize_rcu(); |