mirror_ubuntu-kernels/drivers/net/ethernet
Bert Kenward 1c56c0994a 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: c2bebe37c6 ("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>
2018-07-12 14:52:04 -07:00
..
3com Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-05-21 16:01:54 -04:00
8390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-05-21 16:01:54 -04:00
adaptec
aeroflex
agere
alacritech
allwinner
alteon
altera
amazon treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
amd net: Remove depends on HAS_DMA in case of platform dependency 2018-06-23 10:44:30 +09:00
apm net: Remove depends on HAS_DMA in case of platform dependency 2018-06-23 10:44:30 +09:00
apple
aquantia net: aquantia: vlan unicast address list correct handling 2018-07-06 11:11:05 +09:00
arc net: Remove depends on HAS_DMA in case of platform dependency 2018-06-23 10:44:30 +09:00
atheros alx: take rtnl before calling __alx_open from resume 2018-06-30 21:14:47 +09:00
aurora
broadcom net: systemport: Fix CRC forwarding check for SYSTEMPORT Lite 2018-07-12 14:47:47 -07:00
brocade treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
cadence net: macb: Allocate valid memory for TX and RX BD prefetch 2018-07-07 20:54:25 +09:00
calxeda net: Remove depends on HAS_DMA in case of platform dependency 2018-06-23 10:44:30 +09:00
cavium liquidio: make timeout HZ independent and readable 2018-07-06 11:06:59 +09:00
chelsio cxgb4: assume flash part size to be 4MB, if it can't be determined 2018-07-07 19:57:33 +09:00
cirrus
cisco enic: do not overwrite error code 2018-06-20 08:10:13 +09:00
cortina treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
davicom
dec
dlink
emulex be2net: Fix error detection logic for BE3 2018-05-29 10:57:25 -04:00
ezchip
faraday net/ncsi: Silence debug messages 2018-06-20 07:26:58 +09:00
freescale dpaa_eth: DPAA SGT needs to be 256B 2018-06-30 18:51:06 +09:00
fujitsu
hisilicon net: Remove depends on HAS_DMA in case of platform dependency 2018-06-23 10:44:30 +09:00
hp
huawei hinic: reset irq affinity before freeing irq 2018-06-28 13:34:57 +09:00
i825xx
ibm treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
intel ixgbe: Off by one in ixgbe_ipsec_tx() 2018-07-12 08:03:09 -07:00
marvell net: Remove depends on HAS_DMA in case of platform dependency 2018-06-23 10:44:30 +09:00
mediatek net: mediatek: use of_device_get_match_data() 2018-04-16 13:43:07 -04:00
mellanox net/ipv6: Revert attempt to simplify route replace and append 2018-07-04 15:22:13 +09:00
micrel treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
microchip
moxa treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
mscc net: mscc: make sparse happy 2018-06-23 10:42:02 +09:00
myricom
natsemi net/sonic: Use dma_mapping_error() 2018-05-31 14:17:33 -04:00
neterion treewide: Use array_size() in vzalloc() 2018-06-12 16:19:22 -07:00
netronome Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf 2018-07-01 09:27:44 +09:00
ni treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
nuvoton
nvidia treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
nxp
oki-semi treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
packetengines
pasemi treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
qlogic qed: fix spelling mistake "successffuly" -> "successfully" 2018-07-12 00:02:05 -07:00
qualcomm net: qcom/emac: Add missing of_node_put() 2018-06-14 17:01:05 -07:00
rdc
realtek r8169: fix mac address change 2018-07-03 23:27:58 +09:00
renesas ravb: remove custom .set_link_ksettings from ethtool ops 2018-07-07 10:44:09 +09:00
rocker rocker: rocker_main: Ignore bridge VLAN events 2018-05-31 14:13:43 -04:00
samsung
seeq
sfc sfc: avoid hang from nested use of the filter_sem 2018-07-12 14:52:04 -07:00
sgi
silan
sis
smsc
socionext treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
stmicro net: stmmac: Set DMA buffer size in HW 2018-06-28 22:24:25 +09:00
sun net: sungem: fix rx checksum support 2018-06-20 14:30:06 +09:00
synopsys
tehuti
ti net: ethernet: ti: davinci_cpdma: make function cpdma_desc_pool_create static 2018-06-22 09:31:09 +09:00
toshiba treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
tundra
via
wiznet
xilinx net: emaclite: Remove xemaclite_mdio_setup return check 2018-06-14 17:08:03 -07:00
xircom
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
fealnx.c
jme.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
jme.h
Kconfig net: ethernet: Sort Kconfig sourcing alphabetically 2018-05-21 12:14:47 -04:00
korina.c
lantiq_etop.c
Makefile net: mscc: Add initial Ocelot switch support 2018-05-15 16:41:15 -04:00
netx-eth.c