]> git.baikalelectronics.ru Git - kernel.git/commit
net/mlx4_en: initialize cmd.context_lock spinlock earlier
authorEric Dumazet <edumazet@google.com>
Mon, 13 Jun 2016 14:50:25 +0000 (07:50 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 15 Jun 2016 19:16:30 +0000 (12:16 -0700)
commit8ae11c7072f8e62a17161fdb59dd734affb315a2
treea99bf1c6db2c7fdbd535102c8668070b45d01425
parentca24d351c6401f48b2f6c39c8246909f7e731c4f
net/mlx4_en: initialize cmd.context_lock spinlock earlier

Maciej Żenczykowski reported lockdep warning a spinlock
was not registered before being held in mlx4_cmd_wake_completions()

cmd.context_lock initialization is not at the right place.

1) mlx4_cmd_use_events() can be called multiple times.
   Calling spin_lock_init() on a live spinlock can lead
   to hangs.

2) mlx4_cmd_wake_completions() can be called while lock
   has not been initialized.
   Lockdep complains, and current logic is not race prone.

It seems better to move the initialization earlier in
mlx4_load_one()

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Maciej Żenczykowski <maze@google.com>
Cc: Eugenia Emantayev <eugenia@mellanox.com>
Cc: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/cmd.c
drivers/net/ethernet/mellanox/mlx4/main.c