linux/drivers/net/ethernet
Jakub Kicinski 5198d545db net: remove napi_hash_del() from driver-facing API
We allow drivers to call napi_hash_del() before calling
netif_napi_del() to batch RCU grace periods. This makes
the API asymmetric and leaks internal implementation details.
Soon we will want the grace period to protect more than just
the NAPI hash table.

Restructure the API and have drivers call a new function -
__netif_napi_del() if they want to take care of RCU waits.

Note that only core was checking the return status from
napi_hash_del() so the new helper does not report if the
NAPI was actually deleted.

Some notes on driver oddness:
 - veth observed the grace period before calling netif_napi_del()
   but that should not matter
 - myri10ge observed normal RCU flavor
 - bnx2x and enic did not actually observe the grace period
   (unless they did so implicitly)
 - virtio_net and enic only unhashed Rx NAPIs

The last two points seem to indicate that the calls to
napi_hash_del() were a left over rather than an optimization.
Regardless, it's easy enough to correct them.

This patch may introduce extra synchronize_net() calls for
interfaces which set NAPI_STATE_NO_BUSY_POLL and depend on
free_netdev() to call netif_napi_del(). This seems inevitable
since we want to use RCU for netpoll dev->napi_list traversal,
and almost no drivers set IFF_DISABLE_NETPOLL.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-09-10 13:08:46 -07:00
..
3com Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-04 21:28:59 -07:00
8390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-04 21:28:59 -07:00
adaptec starfire: switch from 'pci_' to 'dma_' API 2020-08-24 17:33:11 -07:00
aeroflex Replace HTTP links with HTTPS ones: GRETH 10/100/1G Ethernet MAC device driver 2020-07-07 15:44:27 -07:00
agere net: ethernet: et131x: Remove redundant register read 2020-07-17 18:48:15 -07:00
alacritech treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
allwinner
alteon treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
altera
amazon net: ena: Make missed_tx stat incremental 2020-08-19 15:32:58 -07:00
amd Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-03 18:50:48 -07:00
apm net: xgene: Move shared header file into include/linux 2020-08-27 06:55:50 -07:00
apple
aquantia net: atlantic: Use readx_poll_timeout() for large timeout 2020-08-19 16:25:29 -07:00
arc net: arc_emac: Fix memleak in arc_mdio_probe 2020-08-24 17:59:44 -07:00
atheros net: atheros: switch from 'pci_' to 'dma_' API 2020-08-24 17:33:11 -07:00
aurora net: nb8800: fix nb8800_xmit()'s return type 2020-06-28 20:52:53 -07:00
broadcom net: remove napi_hash_del() from driver-facing API 2020-09-10 13:08:46 -07:00
brocade treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
cadence treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
calxeda
cavium net: cavium: Fix a bunch of kerneldoc parameter issues 2020-09-09 14:11:58 -07:00
chelsio cxgb4/ch_ipsec: Registering xfrmdev_ops with cxgb4 2020-09-09 11:30:14 -07:00
cirrus ethernet: cirrus: Remove unused macros 2020-08-18 12:54:47 -07:00
cisco net: remove napi_hash_del() from driver-facing API 2020-09-10 13:08:46 -07:00
cortina net: gemini: Clean up phy registration 2020-09-06 12:27:00 -07:00
davicom treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
dec treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
dlink net: dl2k: Remove unused macro DRV_NAME 2020-08-31 12:41:06 -07:00
emulex treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
ezchip
faraday
freescale net: ethernet: fec: remove redundant null check before clk_disable_unprepare() 2020-09-07 13:34:42 -07:00
fujitsu
google
hisilicon net: hns3: remove some unused function hns3_update_promisc_mode() 2020-09-08 19:51:41 -07:00
huawei hinic: add support to query function table 2020-08-31 12:21:27 -07:00
i825xx
ibm Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-04 21:28:59 -07:00
intel net: remove napi_hash_del() from driver-facing API 2020-09-10 13:08:46 -07:00
marvell net: mvneta: rely on MVNETA_MAX_RX_BUF_SIZE for pkt split in mvneta_swbm_rx_frame() 2020-09-10 12:40:19 -07:00
mediatek treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
mellanox mlx4: make sure to always set the port type 2020-09-10 12:49:00 -07:00
micrel ksz884x: switch from 'pci_' to 'dma_' API 2020-07-14 15:10:29 -07:00
microchip treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
moxa
mscc treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
myricom net: remove napi_hash_del() from driver-facing API 2020-09-10 13:08:46 -07:00
natsemi treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
neterion net: ethernet/neterion/vxge: fix spelling of "functionality" 2020-09-08 20:26:13 -07:00
netronome Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-04 21:28:59 -07:00
ni net: nixge: fix potential memory leak in nixge_probe() 2020-07-30 16:55:39 -07:00
nvidia
nxp
oki-semi treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
packetengines treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
pasemi
pensando Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-04 21:28:59 -07:00
qlogic Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-04 21:28:59 -07:00
qualcomm net: ethernet: qualcomm: constify qca_serdev_ops 2020-08-26 16:21:17 -07:00
rdc r6040: switch from 'pci_' to 'dma_' API 2020-07-20 17:49:50 -07:00
realtek Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-04 21:28:59 -07:00
renesas Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-04 21:28:59 -07:00
rocker treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
samsung treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
seeq
sfc sfc: coding style cleanups in mcdi_port_common.c 2020-09-08 20:14:33 -07:00
sgi net: sgi: ioc3-eth: Fix the size used in some 'dma_free_coherent()' calls 2020-08-03 16:00:26 -07:00
silan sc92031: use generic power management 2020-07-30 17:43:01 -07:00
sis treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
smsc net: smsc911x: Remove unused variables 2020-09-08 19:52:45 -07:00
socionext treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
stmicro net: stmmac: dwmac-intel-plat: remove redundant null check before clk_disable_unprepare() 2020-09-09 14:17:02 -07:00
sun Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-04 21:28:59 -07:00
synopsys net: dwc-xlgmac: fix xlgmac_xmit()'s return type 2020-06-28 20:52:53 -07:00
tehuti
ti Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-04 21:28:59 -07:00
toshiba net: tc35815: switch from 'pci_' to 'dma_' API 2020-09-08 20:16:19 -07:00
tundra
via via-velocity: Use more typical logging styles 2020-08-04 12:54:49 -07:00
wiznet
xilinx net: xilinx: remove redundant null check before clk_disable_unprepare() 2020-09-07 13:34:14 -07:00
xircom treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
xscale
dnet.c net: ethernet: dnet: Remove set but unused variable 'len' 2020-09-07 13:56:24 -07:00
dnet.h
ec_bhf.c
ethoc.c
fealnx.c net/fealnx: switch from 'pci_' to 'dma_' API 2020-07-20 18:32:49 -07:00
jme.c net: jme: Replace HTTP links with HTTPS ones 2020-07-13 17:45:04 -07:00
jme.h net: jme: Replace HTTP links with HTTPS ones 2020-07-13 17:45:04 -07:00
Kconfig
korina.c
lantiq_etop.c
lantiq_xrx200.c
Makefile