[IPV4]: severe locking bug in fib_semantics.c
authorAlexey Kuznetsov <kuznet@ms2.inr.ac.ru>
Thu, 17 Aug 2006 23:44:46 +0000 (16:44 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 17 Aug 2006 23:44:46 +0000 (16:44 -0700)
commit6e8fcbf64024f9056ba122abbb66554aa76bae5d
tree61fec2bd4815d30110dc2ba7da3b7578fb08a0d8
parentacd6e00b8e4db542cb6bc9ddfbb4e18bbe29ce4d
[IPV4]: severe locking bug in fib_semantics.c

Found in 2.4 by Yixin Pan <yxpan@hotmail.com>.

> When I read fib_semantics.c of Linux-2.4.32, write_lock(&fib_info_lock) =
> is used in fib_release_info() instead of write_lock_bh(&fib_info_lock).  =
> Is the following case possible: a BH interrupts fib_release_info() while =
> holding the write lock, and calls ip_check_fib_default() which calls =
> read_lock(&fib_info_lock), and spin forever.

Signed-off-by: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/fib_semantics.c