sfq: deadlock in error path
authorstephen hemminger <shemminger@vyatta.com>
Wed, 2 Feb 2011 15:19:51 +0000 (15:19 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Feb 2011 04:51:20 +0000 (20:51 -0800)
commit119b3d386985fcd477b3131190c041516a73f83a
tree5a21a8c6d46efbbc604d5a1d53aa67c19076d4ab
parentb299e4f001cfa16205f9121f4630970049652268
sfq: deadlock in error path

The change to allow divisor to be a parameter (in 2.6.38-rc1)
 commit 817fb15dfd988d8dda916ee04fa506f0c466b9d6
introduced a possible deadlock caught by sparse.

The scheduler tree lock was left locked in the case of an incorrect
divisor value. Simplest fix is to move test outside of lock
which also solves problem of partial update.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_sfq.c