net: macb: reduce scope of rx_fs_lock-protected regions
authorJulia Cartwright <julia@ni.com>
Wed, 6 Dec 2017 00:02:49 +0000 (18:02 -0600)
committerDavid S. Miller <davem@davemloft.net>
Wed, 6 Dec 2017 01:08:03 +0000 (20:08 -0500)
commit7038cdb7d6d0e0b9294171ec7a6417aa48914165
tree2180c28b38dbc0945a194ebb597b86ebd079b19b
parenta3da8adcb54adf027661c704220ead5116b4ed8a
net: macb: reduce scope of rx_fs_lock-protected regions

Commit ae8223de3df5 ("net: macb: Added support for RX filtering")
introduces a lock, rx_fs_lock which is intended to protect the list of
rx_flow items and synchronize access to the hardware rx filtering
registers.

However, the region protected by this lock is overscoped, unnecessarily
including things like slab allocation.  Reduce this lock scope to only
include operations which must be performed atomically: list traversal,
addition, and removal, and hitting the macb filtering registers.

This fixes the use of kmalloc w/ GFP_KERNEL in atomic context.

Fixes: ae8223de3df5 ("net: macb: Added support for RX filtering")
Cc: Rafal Ozieblo <rafalo@cadence.com>
Cc: Julia Lawall <julia.lawall@lip6.fr>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Signed-off-by: Julia Cartwright <julia@ni.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cadence/macb_main.c