linux-xiaomi-chiron/drivers/net/ethernet/broadcom/bnxt
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
..
bnxt.c net: remove napi_hash_del() from driver-facing API 2020-09-10 13:08:46 -07:00
bnxt.h bnxt_en: Add support for 'ethtool -d' 2020-07-27 11:47:33 -07:00
bnxt_coredump.h bnxt_en: Add support for ethtool get dump. 2018-08-05 17:08:26 -07:00
bnxt_dcb.c bnxt_en: Refactor statistics code and structures. 2020-07-27 11:47:33 -07:00
bnxt_dcb.h bnxt_en: Do not use the CNP CoS queue for networking traffic. 2018-08-05 17:08:26 -07:00
bnxt_debugfs.c bnxt: no need to check return value of debugfs_create functions 2019-08-10 15:25:47 -07:00
bnxt_debugfs.h bnxt_en: add debugfs support for DIM 2018-04-27 14:47:30 -04:00
bnxt_devlink.c devlink: Replace devlink_port_attrs_set parameters with a struct 2020-07-09 13:15:29 -07:00
bnxt_devlink.h bnxt_en: Reduce BNXT_MSIX_VEC_MAX value to supported CQs per PF. 2020-04-27 11:44:05 -07:00
bnxt_dim.c linux/dim: Move implementation to .c files 2019-06-25 13:46:39 -07:00
bnxt_ethtool.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-03 18:50:48 -07:00
bnxt_ethtool.h bnxt_en: Add support for 'ethtool -d' 2020-07-27 11:47:33 -07:00
bnxt_fw_hdr.h bnxt_en: Added support for Secure Firmware Update 2016-09-19 21:32:24 -04:00
bnxt_hsi.h bnxt_en: Update firmware interface to 1.10.1.54. 2020-07-27 11:47:33 -07:00
bnxt_nvm_defs.h bnxt_en: Fix memory fault in bnxt_ethtool_init() 2018-04-19 16:35:09 -04:00
bnxt_sriov.c bnxt_en: Update firmware interface to 1.10.1.54. 2020-07-27 11:47:33 -07:00
bnxt_sriov.h bnxt_en: Retain user settings on a VF after RESET_NOTIFY event. 2019-08-30 14:02:19 -07:00
bnxt_tc.c net: bnxt: don't complain if TC flower can't be supported 2020-07-17 18:26:20 -07:00
bnxt_tc.h bnxt_en: Fix array overrun in bnxt_fill_l2_rewrite_fields(). 2019-11-13 14:28:30 -08:00
bnxt_ulp.c bnxt_en: Add doorbell information to bnxt_en_dev struct. 2020-05-04 10:44:11 -07:00
bnxt_ulp.h bnxt_en: Add doorbell information to bnxt_en_dev struct. 2020-05-04 10:44:11 -07:00
bnxt_vfr.c net/broadcom: Clean broadcom code from driver versions 2020-03-03 17:54:53 -08:00
bnxt_vfr.h devlink: Add extack for eswitch operations 2018-10-03 16:17:58 -07:00
bnxt_xdp.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
bnxt_xdp.h bnxt_en: optimized XDP_REDIRECT support 2019-07-08 15:15:24 -07:00
Makefile treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00