linux/drivers/net/ethernet
Arthur Kiyanovski 58a54b9c62 net: ena: fix crash during ena_remove()
In ena_remove() we have the following stack call:
ena_remove()
  unregister_netdev()
  ena_destroy_device()
    netif_carrier_off()

Calling netif_carrier_off() causes linkwatch to try to handle the
link change event on the already unregistered netdev, which leads
to a read from an unreadable memory address.

This patch switches the order of the two functions, so that
netif_carrier_off() is called on a regiestered netdev.

To accomplish this fix we also had to:
1. Remove the set bit ENA_FLAG_TRIGGER_RESET
2. Add a sanitiy check in ena_close()
both to prevent double device reset (when calling unregister_netdev()
ena_close is called, but the device was already deleted in
ena_destroy_device()).
3. Set the admin_queue running state to false to avoid using it after
device was reset (for example when calling ena_destroy_all_io_queues()
right after ena_com_dev_reset() in ena_down)

Fixes: 944b28aa29 ("net: ena: fix missing lock during device destruction")
Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-11-19 15:13:00 -08:00
..
3com
8390
adaptec
aeroflex
agere
alacritech
allwinner
alteon
altera
amazon net: ena: fix crash during ena_remove() 2018-11-19 15:13:00 -08:00
amd drivers: net: remove <net/busy_poll.h> inclusion when not needed 2018-10-25 16:20:02 -07:00
apm
apple
aquantia net: aquantia: allow rx checksum offload configuration 2018-11-09 15:38:10 -08:00
arc
atheros net: alx: make alx_drv_name static 2018-11-05 17:12:58 -08:00
aurora
broadcom bnxt_en: Fix filling time in bnxt_fill_coredump_record() 2018-11-15 09:37:15 -08:00
brocade
cadence net: ethernet: cadence: fix socket buffer corruption problem 2018-10-25 11:32:24 -07:00
calxeda
cavium
chelsio cxgb4: fix thermal zone build error 2018-11-15 09:49:07 -08:00
cirrus
cisco
cortina
davicom net: ethernet: davicom: dm9000: simplify getting .driver_data 2018-10-21 21:10:12 -07:00
dec
dlink
emulex pci-v4.20-changes 2018-10-25 06:50:48 -07:00
ezchip
faraday
freescale Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-10-19 11:03:06 -07:00
fujitsu
hisilicon net: hns3: bugfix for not checking return value 2018-11-08 16:23:49 -08:00
hp
huawei hinic: Fix l4_type parameter in hinic_task_set_tunnel_l4 2018-10-29 20:43:40 -07:00
i825xx
ibm ibmvnic: fix accelerated VLAN handling 2018-11-07 22:36:21 -08:00
intel i40e: enable NETIF_F_NTUPLE and NETIF_F_HW_TC at driver load 2018-11-07 10:32:15 -08:00
marvell net: mvneta: Don't advertise 2.5G modes 2018-11-16 19:23:45 -08:00
mediatek
mellanox net/mlx4: Fix UBSAN warning of signed integer overflow 2018-11-15 16:09:31 -08:00
micrel
microchip lan743x: Remove SPI dependency from Microchip group. 2018-10-25 16:20:48 -07:00
moxa
mscc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-10-19 11:03:06 -07:00
myricom drivers: net: remove <net/busy_poll.h> inclusion when not needed 2018-10-25 16:20:02 -07:00
natsemi
neterion
netronome Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2018-10-21 21:11:46 -07:00
ni
nuvoton
nvidia
nxp net: ethernet: lpc_eth: add device and device node local variables 2018-10-19 17:04:38 -07:00
oki-semi
packetengines
pasemi
qlogic drivers/net/ethernet/qlogic/qed/qed_rdma.h: fix typo 2018-11-15 16:21:00 -08:00
qualcomm net: qualcomm: rmnet: Fix incorrect assignment of real_dev 2018-11-09 19:45:48 -08:00
rdc
realtek r8169: fix broken Wake-on-LAN from S5 (poweroff) 2018-10-25 16:15:23 -07:00
renesas
rocker rocker: Drop pointless static qualifier 2018-10-19 10:42:19 -07:00
samsung
seeq
sfc pci-v4.20-changes 2018-10-25 06:50:48 -07:00
sgi
silan
sis
smsc net: ethernet: smsc: smc91x: simplify getting .driver_data 2018-10-21 21:10:12 -07:00
socionext net: socionext: Reset tx queue in ndo_stop 2018-10-23 10:55:35 -07:00
stmicro net: stmmac: Fix RX packet size > 8191 2018-11-08 19:47:44 -08:00
sun
synopsys
tehuti
ti net: ethernet: ti: cpsw: unsync mcast entries while switch promisc mode 2018-10-22 20:20:14 -07:00
toshiba
tundra
via
wiznet net: ethernet: wiznet: w5300: simplify getting .driver_data 2018-10-21 21:10:12 -07:00
xilinx
xircom
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c
fealnx.c
jme.c
jme.h
Kconfig
korina.c
lantiq_etop.c
lantiq_xrx200.c net: lantiq: Fix returned value in case of error in 'xrx200_probe()' 2018-11-16 19:46:49 -08:00
Makefile
netx-eth.c