[SRU][J:linux-bluefield][PULL] Fix devlink deadlock issue

Bodong Wang bodong at nvidia.com
Fri Sep 8 03:03:42 UTC 2023


This pull request is addressing the devlink deadlock issue. System gets stuck if try to switch to switchdev mode while toggling ns over BF kernel.

BugLink: https://bugs.launchpad.net/bugs/2032378

----------------------------------------------------------------

The following changes since commit e0359e9ebd0d9c01b12185b803eb30783c42937a:

  UBUNTU: Ubuntu-bluefield-5.15.0-1023.25 (2023-08-22 18:15:20 +0200)

are available in the Git repository at:

  https://git.launchpad.net/~bodong-wang/ubuntu/+source/linux-bluefield/+git/jammy master-next

for you to fetch changes up to 521cbe592aa5eae81ca3833ba6b15ef9f5641ece:

  net: devlink: convert reload command to take implicit devlink->lock (2023-09-07 12:13:13 -0500)

----------------------------------------------------------------
Ammar Faizi (1):
      net: devlink: Fix missing mutex_unlock() call

Eric Dumazet (1):
      devlink: adopt u64_stats_t

Guo Zhengkui (1):
      devlink: fix flexible_array.cocci warning

Jacob Keller (1):
      devlink: report maximum number of snapshots with regions

Jakub Kicinski (12):
      devlink: make all symbols GPL-only
      devlink: expose get/put functions
      ethtool: push the rtnl_lock into dev_ethtool()
      ethtool: handle info/flash data copying outside rtnl_lock
      ethtool: don't drop the rtnl_lock half way thru the ioctl
      net: Don't include filter.h from net/sock.h
      devlink: expose instance locking and add locked port registering
      devlink: hold the instance lock in port_split / port_unsplit callbacks
      devlink: pass devlink_port to port_split / port_unsplit callbacks
      devlink: add explicitly locked flavor of the rate node APIs
      devlink: hold the instance lock during eswitch_mode callbacks
      devlink: hold region lock when flushing snapshots

Jiri Pirko (12):
      devlink: add support to create line card and expose to user
      devlink: implement line card provisioning
      devlink: implement line card active state
      devlink: add port to line card relationship set
      devlink: introduce line card devices support
      devlink: introduce line card info get message
      devlink: introduce line card device info infrastructure
      net: devlink: fix unlocked vs locked functions descriptions
      net: devlink: use helpers to work with devlink->lock mutex
      net: devlink: remove region snapshot ID tracking dependency on devlink->lock
     net: devlink: remove region snapshots list dependency on devlink->lock
      net: devlink: convert reload command to take implicit devlink->lock

Leon Romanovsky (18):
      devlink: Delete not-used single parameter notification APIs
      devlink: Delete not-used devlink APIs
      devlink: Make devlink_register to be void
      devlink: Delete not used port parameters APIs
      devlink: Remove single line function obfuscations
      devlink: Notify users when objects are accessible
      devlink: Add missed notifications iterators
      devlink: Reduce struct devlink exposure
      devlink: Move netdev_to_devlink helpers to devlink.c
      devlink: Annotate devlink API calls
      devlink: Allow control devlink ops behavior through feature mask
      devlink: Delete reload enable/disable interface
      devlink: Remove extra device_lock assert checks
      devlink: Delete obsolete parameters publish API
      devlink: Clean not-executed param notifications
      devlink: Simplify internal devlink params implementation
      devlink: Don't throw an error if flash notification sent before devlink visible
      devlink: Simplify devlink resources unregister call

Moshe Shemesh (4):
      devlink: Remove unused function devlink_rate_nodes_destroy
      devlink: Remove unused functions devlink_rate_leaf_create/destroy
      devlink: Hold the instance lock in port_new / port_del callbacks
      devlink: Hold the instance lock in health callbacks

Shay Drory (2):
      devlink: Add new "io_eq_size" generic device param
      devlink: Add new "event_eq_size" generic device param

Shiraz Saleem (1):
      devlink: Add 'enable_iwarp' generic device param

William Tu (1):
      UBUNTU: [Config] bluefield: disable MLX5, and vendor drivers.

Documentation/networking/devlink/devlink-linecard.rst        |  126 ++++
Documentation/networking/devlink/devlink-params.rst          |    9 +
Documentation/networking/devlink/devlink-region.rst          |    4 +-
Documentation/networking/devlink/ice.rst                     |    4 +
Documentation/networking/devlink/index.rst                   |   17 +
debian.bluefield/abi/arm64/bluefield.modules                 |  869 ----------------------
debian.bluefield/abi/arm64/bluefield.modules.builtin         |   10 -
debian.bluefield/config/annotations                          | 1141 ++++++++++++++++++++++++++++-
drivers/bluetooth/btqca.c                                    |    1 +
drivers/infiniband/core/cache.c                              |    1 +
drivers/infiniband/hw/irdma/ctrl.c                           |    2 +
drivers/infiniband/hw/irdma/uda.c                            |    2 +
drivers/infiniband/hw/mlx5/doorbell.c                        |    1 +
drivers/infiniband/hw/mlx5/qp.c                              |    1 +
drivers/net/amt.c                                            | 3298 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/net/appletalk/ipddp.c                                |    1 +
drivers/net/bonding/bond_main.c                              |    1 +
drivers/net/can/usb/peak_usb/pcan_usb.c                      |    1 +
drivers/net/dsa/microchip/ksz8795.c                          |    1 +
drivers/net/dsa/xrs700x/xrs700x.c                            |    1 +
drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c            |   12 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c                |   18 +-
drivers/net/ethernet/cavium/liquidio/lio_main.c              |    8 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-devlink.c     |   13 +-
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_devlink.c   |   18 +-
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_devlink.c |   18 +-
drivers/net/ethernet/huawei/hinic/hinic_devlink.c            |    4 +-
drivers/net/ethernet/huawei/hinic/hinic_devlink.h            |    2 +-
drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c             |    8 +-
drivers/net/ethernet/huawei/hinic/hinic_tx.c                 |    1 +
drivers/net/ethernet/intel/ice/ice_devlink.c                 |   14 +-
drivers/net/ethernet/intel/ice/ice_devlink.h                 |    2 +-
drivers/net/ethernet/intel/ice/ice_main.c                    |    6 +-
drivers/net/ethernet/intel/ice/ice_txrx_lib.c                |    2 +
drivers/net/ethernet/intel/igc/igc_xdp.c                     |    1 +
drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c      |    8 +-
drivers/net/ethernet/marvell/octeontx2/nic/otx2_devlink.c    |    8 +-
drivers/net/ethernet/marvell/prestera/prestera_devlink.c     |    6 +-
drivers/net/ethernet/mellanox/mlx4/en_netdev.c               |    1 +
drivers/net/ethernet/mellanox/mlx4/main.c                    |    5 +-
drivers/net/ethernet/mellanox/mlx5/core/devlink.c            |    5 +-
drivers/net/ethernet/mellanox/mlx5/core/en/qos.c             |    1 +
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c   |   54 +-
drivers/net/ethernet/mellanox/mlx5/core/sf/dev/driver.c      |    2 +-
drivers/net/ethernet/mellanox/mlxfw/mlxfw.h                  |    2 +-
drivers/net/ethernet/mellanox/mlxsw/core.c                   |   49 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum.c               |    4 +-
drivers/net/ethernet/mscc/ocelot_vsc7514.c                   |    6 +-
drivers/net/ethernet/netronome/nfp/nfp_devlink.c             |   32 +-
drivers/net/ethernet/netronome/nfp/nfp_net_main.c            |    6 +-
drivers/net/ethernet/netronome/nfp/nfp_port.h                |    2 -
drivers/net/ethernet/pensando/ionic/ionic_devlink.c          |    7 +-
drivers/net/ethernet/qlogic/qed/qed_devlink.c                |    7 +-
drivers/net/ethernet/sfc/efx.c                               |    1 +
drivers/net/ethernet/sfc/efx_channels.c                      |    1 +
drivers/net/ethernet/sfc/efx_common.c                        |    1 +
drivers/net/ethernet/ti/am65-cpsw-nuss.c                     |    9 +-
drivers/net/ethernet/ti/cpsw_new.c                           |    8 +-
drivers/net/hamradio/hdlcdrv.c                               |    1 +
drivers/net/hamradio/scc.c                                   |    1 +
drivers/net/loopback.c                                       |    1 +
drivers/net/netdevsim/dev.c                                  |   29 +-
drivers/net/netdevsim/health.c                               |   32 -
drivers/net/vrf.c                                            |    1 +
drivers/net/wireless/ath/ath11k/debugfs.c                    |    2 +
drivers/net/wireless/realtek/rtw89/debug.c                   |    2 +
drivers/net/wwan/iosm/iosm_ipc_devlink.c                     |  357 +++++++++
drivers/ptp/ptp_ocp.c                                        |    7 +-
drivers/staging/qlge/qlge_main.c                             |    6 +-
fs/nfs/dir.c                                                 |    1 +
fs/nfs/fs_context.c                                          |    1 +
fs/select.c                                                  |    1 +
include/linux/bpf_local_storage.h                            |    1 +
include/linux/dsa/loop.h                                     |    1 +
include/net/devlink.h                                        |  252 +++----
include/net/ipv6.h                                           |    2 +
include/net/route.h                                          |    1 +
include/net/sock.h                                           |    2 +-
include/net/xdp_sock.h                                       |    1 +
include/trace/events/devlink.h                               |   72 +-
include/uapi/linux/devlink.h                                 |   30 +
kernel/sysctl.c                                              |    1 +
net/bluetooth/bnep/sock.c                                    |    1 +
net/bluetooth/eir.h                                          |   74 ++
net/bluetooth/hidp/sock.c                                    |    1 +
net/bluetooth/l2cap_sock.c                                   |    1 +
net/bridge/br_ioctl.c                                        |    1 +
net/caif/caif_socket.c                                       |    1 +
net/core/dev_ioctl.c                                         |    2 -
net/core/devlink.c                                           | 2733 ++++++++++++++++++++++++++++++++++++++++++++------------------------
net/core/flow_dissector.c                                    |    1 +
net/core/lwt_bpf.c                                           |    1 +
net/core/sock_diag.c                                         |    1 +
net/core/sysctl_net_core.c                                   |    1 +
net/decnet/dn_nsp_in.c                                       |    1 +
net/dsa/dsa.c                                                |    2 +-
net/dsa/dsa2.c                                               |    7 +-
net/dsa/dsa_priv.h                                           |    1 +
net/ethtool/ioctl.c                                          |  149 +++-
net/ipv4/nexthop.c                                           |    1 +
net/ipv6/ip6_fib.c                                           |    1 +
net/ipv6/seg6_local.c                                        |    1 +
net/iucv/af_iucv.c                                           |    1 +
net/kcm/kcmsock.c                                            |    1 +
net/netfilter/nfnetlink_hook.c                               |    1 +
net/netfilter/nft_reject_netdev.c                            |    1 +
net/netlink/af_netlink.c                                     |    2 +
net/packet/af_packet.c                                       |    1 +
net/rose/rose_in.c                                           |    1 +
net/sched/sch_frag.c                                         |    1 +
net/smc/smc_ib.c                                             |    2 +
net/smc/smc_ism.c                                            |    1 +
net/unix/af_unix.c                                           |    1 +
net/vmw_vsock/af_vsock.c                                     |    1 +
net/xdp/xskmap.c                                             |    1 +
net/xfrm/xfrm_state.c                                        |    1 +
net/xfrm/xfrm_user.c                                         |    1 +
117 files changed, 7304 insertions(+), 2342 deletions(-)
create mode 100644 Documentation/networking/devlink/devlink-linecard.rst
create mode 100644 drivers/net/amt.c
create mode 100644 drivers/net/wwan/iosm/iosm_ipc_devlink.c
create mode 100644 net/bluetooth/eir.h
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20230908/e34f3d72/attachment-0001.html>


More information about the kernel-team mailing list