The spinlock used by the hwbm functions must be initialized by the
network driver. This commit fixes this lack and the following erros when
lockdep is enabled:
INFO: trying to register non-static key.
the code is fine but needs lockdep annotation.
turning off the locking correctness validator.
[<
c010ff80>] (unwind_backtrace) from [<
c010bd08>] (show_stack+0x10/0x14)
[<
c010bd08>] (show_stack) from [<
c032913c>] (dump_stack+0xb4/0xe0)
[<
c032913c>] (dump_stack) from [<
c01670e4>] (__lock_acquire+0x1f58/0x2060)
[<
c01670e4>] (__lock_acquire) from [<
c0167dec>] (lock_acquire+0xa4/0xd0)
[<
c0167dec>] (lock_acquire) from [<
c06f6650>] (_raw_spin_lock_irqsave+0x54/0x68)
[<
c06f6650>] (_raw_spin_lock_irqsave) from [<
c058e830>] (hwbm_pool_add+0x1c/0xdc)
[<
c058e830>] (hwbm_pool_add) from [<
c043f4e8>] (mvneta_bm_pool_use+0x338/0x490)
[<
c043f4e8>] (mvneta_bm_pool_use) from [<
c0443198>] (mvneta_probe+0x654/0x1284)
[<
c0443198>] (mvneta_probe) from [<
c03b894c>] (platform_drv_probe+0x4c/0xb0)
[<
c03b894c>] (platform_drv_probe) from [<
c03b7158>] (driver_probe_device+0x214/0x2c0)
[<
c03b7158>] (driver_probe_device) from [<
c03b72c4>] (__driver_attach+0xc0/0xc4)
[<
c03b72c4>] (__driver_attach) from [<
c03b5440>] (bus_for_each_dev+0x68/0x9c)
[<
c03b5440>] (bus_for_each_dev) from [<
c03b65b8>] (bus_add_driver+0x1a0/0x218)
[<
c03b65b8>] (bus_add_driver) from [<
c03b79cc>] (driver_register+0x78/0xf8)
[<
c03b79cc>] (driver_register) from [<
c01018f4>] (do_one_initcall+0x90/0x1dc)
[<
c01018f4>] (do_one_initcall) from [<
c0900de4>] (kernel_init_freeable+0x15c/0x1fc)
[<
c0900de4>] (kernel_init_freeable) from [<
c06eed90>] (kernel_init+0x8/0x114)
[<
c06eed90>] (kernel_init) from [<
c0107910>] (ret_from_fork+0x14/0x24)
Fixes:
baa11ebc0c76 ("net: mvneta: Use the new hwbm framework")
Reported-by: Russell King <rmk+kernel@armlinux.org.uk>
Cc: <stable@vger.kernel.org>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: David S. Miller <davem@davemloft.net>