sfc: fix addr_list_lock spinlock use before init
authorEdward Cree <ecree@solarflare.com>
Tue, 16 Sep 2014 16:05:21 +0000 (17:05 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 16 Sep 2014 20:33:34 +0000 (16:33 -0400)
commitf650fb456f2079b762c131a11397c0a966e2bfe4
tree3e998d35f9b42155c24f268ad9aeb69ccf6854a2
parent929a031dfd62aae34bf8e728f712e6751e416d1f
sfc: fix addr_list_lock spinlock use before init

Reported by Nikolay Aleksandrov.  In efx_init_port() we call
 efx_mac_reconfigure() to work around a Falcon/A1 limitation, and this calls
 efx_{arch}_filter_sync_rx_mode(), which takes the addr_list_lock; but this
 lock is uninitialised, because we haven't called register_netdevice() yet.
So, in efx_farch_filter_sync_rx_mode(), check efx_dev_registered() before
 doing anything else.
The EF10 equivalent, efx_ef10_filter_sync_rx_mode(), already has the
 corresponding check.

Signed-off-by: Edward Cree <ecree@solarflare.com>
Tested-by: Nikolay Aleksandrov <nikolay@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sfc/farch.c