aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/sfc/efx.c
diff options
context:
space:
mode:
authorBert Kenward <bkenward@solarflare.com>2018-07-11 11:44:25 +0100
committerDavid S. Miller <davem@davemloft.net>2018-07-12 14:52:04 -0700
commit1c56c0994a533ce564843a0d17af7a3e6e68f269 (patch)
treebfcb18dd2cb125fbf0b624df967a40256b3b8b38 /drivers/net/ethernet/sfc/efx.c
parentnet: systemport: Fix CRC forwarding check for SYSTEMPORT Lite (diff)
downloadlinux-dev-1c56c0994a533ce564843a0d17af7a3e6e68f269.tar.xz
linux-dev-1c56c0994a533ce564843a0d17af7a3e6e68f269.zip
sfc: avoid hang from nested use of the filter_sem
In some situations we may end up calling down_read while already holding the semaphore for write, thus hanging. This has been seen when setting the MAC address for the interface. The hung task log in this situation includes this stack: down_read efx_ef10_filter_insert efx_ef10_filter_insert_addr_list efx_ef10_filter_vlan_sync_rx_mode efx_ef10_filter_add_vlan efx_ef10_filter_table_probe efx_ef10_set_mac_address efx_set_mac_address dev_set_mac_address In addition, lockdep rightly points out that nested calling of down_read is incorrect. Fixes: c2bebe37c6b6 ("sfc: give ef10 its own rwsem in the filter table instead of filter_lock") Tested-by: Jarod Wilson <jarod@redhat.com> Signed-off-by: Bert Kenward <bkenward@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/sfc/efx.c')
0 files changed, 0 insertions, 0 deletions