From patchwork Fri Oct 18 12:57:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wen-chien Jesse Sung X-Patchwork-Id: 1179355 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 46vmK205F1z9sPW; Fri, 18 Oct 2019 23:57:26 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1iLRol-0007y2-Cg; Fri, 18 Oct 2019 12:57:19 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1iLRoh-0007xp-Tq for kernel-team@lists.ubuntu.com; Fri, 18 Oct 2019 12:57:15 +0000 Received: from mail-lj1-f177.google.com ([209.85.208.177]) by youngberry.canonical.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1iLRoh-0004gS-Lp for kernel-team@lists.ubuntu.com; Fri, 18 Oct 2019 12:57:15 +0000 Received: by mail-lj1-f177.google.com with SMTP id n14so6103571ljj.10 for ; Fri, 18 Oct 2019 05:57:15 -0700 (PDT) X-Gm-Message-State: APjAAAX1GpwD+d2qta1UceOBjuXTd0/lyfeaNjeO15A/afenFQsiE/0W T3giKQsN3/RIV0bEyQqxPxatxkbRfRdNMTJgvuY= X-Google-Smtp-Source: APXvYqxMN4pVAjpOOBnx79x7wQ002B0ljprZ19aVtMN1A/WbqBpGbqeIGfXz3trQ3JB8oaMpgv4GSHnggAQBJTQDS2w= X-Received: by 2002:a2e:a211:: with SMTP id h17mr6067453ljm.251.1571403434498; Fri, 18 Oct 2019 05:57:14 -0700 (PDT) MIME-Version: 1.0 From: Jesse Sung Date: Fri, 18 Oct 2019 20:57:02 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: [SRU][bionic:linux-bluefield][PULL] Integrate Fixes from Mellanox 2019-10-16 To: kernel-team@lists.ubuntu.com X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" Buglink: https://launchpad.net/bugs/1848324 SRU Justification * Impact: Some issues found while Mellanox verifying linux-bluefield. These are the patches they sent to address those issues. * Risk of Regression: Low. Patches are from Mellanox and will be only apply to linux-bluefield. ---------------------------------------------------------------- The following changes since commit e73b251209f5e1de8daf75941af6ac1f7cbf230f: UBUNTU: Ubuntu-bluefield-5.0.0-1003.12 (2019-10-03 11:06:04 -0700) are available in the Git repository at: git://git.launchpad.net/~wenchien/+git/ubuntu-kernel bluefield-20191016 for you to fetch changes up to c42e649a6e6cca5d06207682e1f009ec7dfa24bc: UBUNTU: [Config] updates for linux-bluefield (2019-10-18 20:38:45 +0800) ---------------------------------------------------------------- Ariel Levkovich (8): net/mlx5: Expose SW ICM related device memory capabilities net/mlx5: Expose TIR ICM address in command outbox net/mlx5: Introduce new TIR creation core API IB/mlx5: Expose TIR ICM address to user space IB/mlx5: Support device memory type attribute IB/mlx5: Warn on allocated MEMIC buffers during cleanup IB/mlx5: Add steering SW ICM device memory type IB/mlx5: Device resource control for privileged DEVX user Aya Levin (15): devlink: Add Documentation/networking/devlink-health.txt net/mlx5: Refactor queries to speed fields in Port Type and Speed register net/mlx5: Add new fields to Port Type and Speed register net/mlx5: Add support to ext_* fields introduced in Port Type and Speed register IB/mlx5: Add support for 50Gbps per lane link modes net/mlx5: ethtool, Add ethtool support for 50Gbps per lane link modes devlink: Rename devlink health attributes devlink: Modify reply of DEVLINK_CMD_HEALTH_REPORTER_GET IB/mlx5: Fix mapping of link-mode to IB width and speed net/mlx5: ethtool, Fix type analysis of advertised link-mode net/mlx5: ethtool, Allow legacy link-modes configuration via non-extended ptys net/mlx5: Expose MPEIN (Management PCIE INfo) register layout net/mlx5: Handle event of power detection in the PCIE slot IB/mlx5: Restrict 'DELAY_DROP_TIMEOUT' subtype to Ethernet interfaces net/mlx5: Enable general events on all interfaces Bodong Wang (4): UBUNTU: SAUCE: IB/mlx5: Check both CONFIG_ARM and CONFIG_ARM64 net/mlx5: Fix peer pf disable hca command UBUNTU: SAUCE: net/mlx5: Check eswitch manager for all relevant FS command UBUNTU: SAUCE: net/mlx5: E-Switch, Have vport placeholder for ECPF eswich manager Eli Britstein (1): flow_offload: Fix flow action infrastructure Eran Ben Elisha (10): devlink: Add health buffer support devlink: Add health reporter create/destroy functionality devlink: Add health report functionality devlink: Add health get command devlink: Add health set command devlink: Add health recover command devlink: Add health diagnose command devlink: Add health dump {get,clear} commands net/mlx5e: Add TX reporter support net/mlx5e: Add TX timeout support for mlx5e TX reporter Gal Pressman (1): RDMA: Add indication for in kernel API support to IB device Greg Kroah-Hartman (1): infiniband: mlx5: no need to check return value of debugfs_create functions Huy Nguyen (1): net/mlx5: Support ndo bridge_setlink and getlink Jakub Kicinski (4): ethtool: add compat for devlink info devlink: fix condition for compat device info devlink: don't allocate attrs on the stack devlink: add device information API Jason Gunthorpe (29): IB/{core,hw}: Have ib_umem_get extract the ib_ucontext from ib_udata RDMA/device: Use __ib_device_get_by_name() in ib_device_rename() coding-style: Clarify the expectations around bool net/mlx5: Make mlx5_cmd_exec_cb() a safe API RDMA/device: Check that the rename is nop under the lock RDMA/device: Ensure that security memory is always freed RDMA/device: Call ib_cache_release_one() only from ib_device_release() RDMA/device: Get rid of reg_state RDMA/device: Use an ida instead of a free page in alloc_name RDMA/devices: Use xarray to store the clients RDMA/devices: Use xarray to store the client_data RDMA/devices: Re-organize device.c locking lib/scatterlist: Provide a DMA page iterator RDMA/uverbs: Fix an error flow in ib_uverbs_poll_cq RDMA: Add and use rdma_for_each_port RDMA/device: Consolidate ib_device per_port data into one place RDMA/cache: Move the cache per-port data into the main ib_port_data RDMA/device: Add ib_device_set_netdev() as an alternative to get_netdev RDMA/device: Add ib_device_get_by_netdev() RDMA/rxe: Use ib_device_get_by_netdev() instead of open coding RDMA/device: Provide APIs from the core code to help unregistration RDMA/rxe: Use driver_unregister and new unregistration API RDMA/rxe: Add ib_device_get_by_name() and use it in rxe RDMA/rxe: Close a race after ib_register_device IB/mlx5: Remove references to uboject->context IB: When attrs.udata/ufile is available use that instead of uobject RDMA/drivers: Convert easy drivers to use ib_device_set_netdev() RDMA: Remove rdma_user_mmap_page RDMA/core: Clear out the udata before error unwind Jianbo Liu (1): UBUNTU: SAUCE: RDMA/mlx5: Add vport metadata matching for IB representors Leon Romanovsky (49): RDMA: Clean structures from CONFIG_INFINIBAND_ON_DEMAND_PAGING RDMA/core: Don't depend device ODP capabilities on kconfig option RDMA/mlx5: Introduce and reuse helper to identify ODP MR RDMA/mlx5: Embed into the code flow the ODP config option RDMA/mlx5: Delete declaration of already removed function RDMA: Clear PD objects during their allocation RDMA: Clear CQ objects during their allocation RDMA: Clear CTX objects during their allocation RDMA/mad: Reduce MAD scope to mlx5_ib only RDMA: Provide safe ib_alloc_device() function RDMA/nldev: Dynamically generate restrack dumpit callbacks RDMA/nldev: Factor out the PID namespace check RDMA/nldev: Prepare CAP_NET_ADMIN checks for .doit callbacks RDMA/core: Simplify restrack interface RDMA/restrack: Refactor user/kernel restrack additions RDMA/core: Use the ops infrastructure to keep all callbacks in one place RDMA/cma: Remove CM_ID statistics provided by rdma-cm module RDMA/core: Share driver structure size with core RDMA: Handle PD allocations by IB/core net/mlx5: Align ODP capability function with netdev coding style RDMA/restrack: Convert internal DB from hash to XArray RDMA/restrack: Translate from ID to restrack object RDMA/nldev: Add resource tracker doit callback RDMA/restrack: Reduce scope of synchronization lock while updating DB RDMA/restrack: Hide restrack DB from IB/core net/mlx5: Factor out HCA capabilities functions RDMA/restrack: Prepare restrack_root to addition of extra fields per-type RDMA/nldev: Share with user-space object IDs RDMA/nldev: Provide parent IDs for PD, MR and QP objects RDMA/nldev: Connect QP number to .doit callback RDMA/nldev: Don't expose number of not-visible entries net/mlx5e: Add missing static function annotation net/mlx5: Delete unused FPGA QPN variable RDMA/iwcm: Fix string truncation error RDMA: Handle ucontext allocations by IB/core RDMA/uverbs: Don't do double free of allocated PD RDMA/netlink: Remove unused data structure RDMA/core: Don't compare specific bit after boolean AND RDMA/cma: Set proper port number as index RDMA/mlx5: Cleanup WQE page fault handler RDMA/cm: Remove useless zeroing of static global variable RDMA/cm: Move debug counters to be under relevant IB device RDMA/nldev: Return device protocol RDMA/core: Support object allocation in atomic context RDMA: Handle AH allocations by IB/core RDMA: Handle SRQ allocations by IB/core RDMA/rdmavt: Catch use-after-free access of AH structures RDMA/mlx5: Remove MAYEXEC flag RDMA/device: Don't fire uevent before device is fully initialized Maor Gottlieb (3): IB/mlx5: Don't override existing ip_protocol RDMA/mlx5: Add query e-switch vport context to devx white list UBUNTU: SAUCE: RDMA/mlx5: Consider eswitch encap mode Mark Bloch (18): RDMA/mlx5: Fix memory leak in case we fail to add an IB device net/mlx5: E-Switch, add a new prio to be used by the RDMA side RDMA/mlx5: Move netdev info into the port struct RDMA/mlx5: Free IB device on remove RDMA/mlx5: Move ports allocation to outside of INIT stage RDMA/mlx5: Use correct size for device resources RDMA/mlx5: Move rep into port struct RDMA/mlx5: Move default representors SQ steering to rule to modify QP RDMA/mlx5: Refactor netdev affinity code RDMA/mlx5: Move SMI caps logic RDMA/mlx5: Move to single device multiport ports in switchdev mode RDMA/mlx5: Remove VF representor profile RDMA/mlx5: Access the prio bypass inside the FDB flow table namespace RDMA/mlx5: Create flow table with max size supported RDMA/mlx5: Allow inserting a steering rule to the FDB RDMA/mlx5: Allow DEVX and raw creation flow on reps RDMA/mlx5: Initialize roce port info before multiport master init RDMA/mlx5: Don't create IB representors when in multiport RoCE mode Mark Zhang (2): UBUNTU: SAUCE: net/mlx5: Add rts2rts_qp_counters_set_id field in hca cap UBUNTU: SAUCE: IB/core: udp_sport support for sa_path and rdma_ah Moni Shoua (17): net/mlx5: Add XRC transport to ODP device capabilities layout net/mlx5: Set ODP SRQ support in firmware IB/mlx5: Fix the locking of SRQ objects in ODP events IB/core: Allocate a bit for SRQ ODP support IB/uverbs: Expose XRC ODP device capabilities IB/mlx5: Remove useless check in ODP handler IB/mlx5: Clean mlx5_ib_mr_responder_pfault_handler() signature IB/mlx5: Add XRC initiator ODP support IB/mlx5: Let read user wqe also from SRQ buffer IB/mlx5: Add ODP SRQ support IB/mlx5: Advertise SRQ ODP support for supported transports IB/mlx5: Advertise XRC ODP support IB/mlx5: Protect against prefetch of invalid MR IB/mlx5: Validate correct PD before prefetch MR IB/core: Abort page fault handler silently during owning process exit IB/mlx5: Set correct write permissions for implicit ODP MR net/mlx5: ODP support for XRC transport is not enabled by default in FW Parav Pandit (40): RDMA: Rename port_callback to init_port RDMA: Introduce and use rdma_device_to_ibdev() IB/core: Simplify rdma cgroup registration IB/umad: Avoid additional device reference during open()/close() IB/umad: Do not check status of nonseekable_open() IB/mlx5: Consider vlan of lower netdev for macvlan GID entries devlink: Add WARN_ON to catch errors of not cleaning devlink objects devlink: Return right error code in case of errors for region read devlink: Fix list access without lock while reading region RDMA/core: Use simpler device_del() instead of device_unregister() RDMA/core: Introduce and use ib_setup_port_attrs() RDMA/core: Move device addition deletion to device.c net/mlx5: Simplify sriov enable/disable flow net/mlx5: Simplify mlx5_sriov_is_enabled() by using pci core API RDMA/core: Introduce ib_core_device to hold device RDMA/core: Restrict sysfs entries view to init_net RDMA/core: Implement compat device/sysfs tree in net namespace RDMA/core: Support core port attributes in non init_net RDMA/core: Add module param to disable device sharing among net ns RDMA: Check net namespace access for uverbs, umad, cma and nldev RDMA/core: Extend ib_device_get_by_index for net namespace RDMA/core: Add interface to read device namespace sharing mode RDMA/core: Add command to set ib_core device net namspace sharing mode RDMA/core: Avoid freeing netdevs in disable_device() RDMA/core: Introduce a helper function to change net namespace of rdma device RDMA/core: Add a netlink command to change net namespace of rdma device IB/core: Allow vlan link local address based RoCE GIDs UBUNTU: SAUCE: net/mlx5_core: Add debugfs for flow steering UBUNTU: SAUCE: net/mlx5: Add per-namespace flow table default miss action support UBUNTU: SAUCE: net/mlx5: Create bypass and loopback flow steering namespaces for RDMA RX UBUNTU: SAUCE: RDMA/mlx5: RDMA_RX flow type support for user applications RDMA/core: Do not invoke init_port on compat devices RDMA/rxe: Consider skb reserve space based on netdev of GID IB/cm: Reduce dependency on gid attribute ndev check RDMA: Introduce and use GID attr helper to read RoCE L2 fields RDMA/cma: Use rdma_read_gid_attr_ndev_rcu to access netdev RDMA/core: Allow detaching gid attribute netdevice for RoCE RDMA/core: Change system parameters callback from dumpit to doit {IB, net}/mlx5: No need to typecast from void* to mlx5_ib_dev* {IB,net}/mlx5: Constify rep ops functions pointers Saeed Mahameed (2): net/mlx5: Fix compilation warning in eq.c net/mlx5: Fix broken hca cap offset Shamir Rabinovitch (10): IB/{core,uverbs}: Move ib_umem_xxx functions from ib_core to ib_uverbs IB/uverbs: Add ib_ucontext to uverbs_attr_bundle sent from ioctl and cmd flows IB/verbs: Add helper function rdma_udata_to_drv_context IB/{hw,sw}: Remove 'uobject->context' dependency in object creation APIs IB: ucontext should be set properly for all cmd & ioctl paths IB: Pass uverbs_attr_bundle down uobject destroy path IB: Pass uverbs_attr_bundle down ib_x destroy path IB: Remove 'uobject->context' dependency in object destroy APIs IB: Pass only ib_udata in function prototypes RDMA/uverbs: Initialize uverbs_attr_bundle ucontext in ib_uverbs_get_context Steve Wise (1): RDMA/core: Add RDMA_NLDEV_CMD_NEWLINK/DELLINK support Vu Pham (2): UBUNTU: SAUCE: RDMA/mlx5: Set port state to NOP for invalid port_num UBUNTU: SAUCE: net/mlx5: Support modifying max_sfs Wen-chien Jesse Sung (1): UBUNTU: [Config] updates for linux-bluefield Yevgeny Kliteynik (2): net/mlx5: Geneve, Add basic Geneve encap/decap flow table capabilities net/mlx5: Geneve, Add flow table capabilities for Geneve decap with TLV options Yishai Hadas (12): IB/mlx5: DEVX handling for indirection MKEY IB/mlx5: Manage indirection mkey upon DEVX flow for ODP IB/mlx5: Add support for ODP for DEVX indirection mkey IB/mlx5: Introduce MLX5_IB_OBJECT_DEVX_ASYNC_CMD_FD IB/mlx5: Introduce async DEVX obj query API IB/mlx5: Implement the file ops of DEVX async command FD IB/mlx5: Implement DEVX hot unplug for async command FD IB/mlx5: Fix bad flow upon DEVX mkey creation IB/mlx5: Use mlx5 core to create/destroy a DEVX DCT IB/mlx5: Verify DEVX general object type correctly net/mlx5: Set completion EQs as shared resources net/mlx5: Fix mlx5_core_destroy_cq() error flow root (1): UBUNTU: SAUCE: net/mlx5: Expose eswitch encap mode .clang-format | 2 + Documentation/networking/devlink-health.txt | 86 + Documentation/process/coding-style.rst | 38 +- .../abi/5.0.0-1002.11/arm64/bluefield.modules | 13 +- debian.bluefield/config/annotations | 11 + debian.bluefield/config/config.common.ubuntu | 30 +- drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 8 +- drivers/infiniband/Kconfig | 15 +- drivers/infiniband/core/Makefile | 4 +- drivers/infiniband/core/addr.c | 1 + drivers/infiniband/core/cache.c | 242 ++- drivers/infiniband/core/cgroup.c | 5 +- drivers/infiniband/core/cm.c | 52 +- drivers/infiniband/core/cma.c | 107 +- drivers/infiniband/core/core_priv.h | 47 +- drivers/infiniband/core/cq.c | 21 +- drivers/infiniband/core/device.c | 1933 +++++++++++++++----- drivers/infiniband/core/iwcm.c | 6 +- drivers/infiniband/core/mad.c | 4 +- drivers/infiniband/core/netlink.c | 4 +- drivers/infiniband/core/nldev.c | 605 ++++-- drivers/infiniband/core/rdma_core.c | 102 +- drivers/infiniband/core/rdma_core.h | 13 +- drivers/infiniband/core/restrack.c | 210 ++- drivers/infiniband/core/restrack.h | 28 + drivers/infiniband/core/security.c | 39 +- drivers/infiniband/core/sysfs.c | 163 +- drivers/infiniband/core/umem.c | 13 +- drivers/infiniband/core/umem_odp.c | 2 +- drivers/infiniband/core/user_mad.c | 62 +- drivers/infiniband/core/uverbs.h | 3 +- drivers/infiniband/core/uverbs_cmd.c | 156 +- drivers/infiniband/core/uverbs_ioctl.c | 26 +- drivers/infiniband/core/uverbs_main.c | 69 +- drivers/infiniband/core/uverbs_std_types.c | 52 +- .../infiniband/core/uverbs_std_types_counters.c | 5 +- drivers/infiniband/core/uverbs_std_types_cq.c | 12 +- drivers/infiniband/core/uverbs_std_types_dm.c | 9 +- .../infiniband/core/uverbs_std_types_flow_action.c | 5 +- drivers/infiniband/core/uverbs_std_types_mr.c | 9 +- drivers/infiniband/core/uverbs_uapi.c | 15 +- drivers/infiniband/core/verbs.c | 224 +-- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 235 +-- drivers/infiniband/hw/bnxt_re/ib_verbs.h | 46 +- drivers/infiniband/hw/bnxt_re/main.c | 20 +- drivers/infiniband/hw/bnxt_re/qplib_fp.c | 12 +- drivers/infiniband/hw/bnxt_re/qplib_fp.h | 4 +- drivers/infiniband/hw/bnxt_re/qplib_sp.c | 12 +- drivers/infiniband/hw/bnxt_re/qplib_sp.h | 4 +- drivers/infiniband/hw/cxgb3/iwch.c | 2 +- drivers/infiniband/hw/cxgb3/iwch_provider.c | 105 +- drivers/infiniband/hw/cxgb4/cq.c | 17 +- drivers/infiniband/hw/cxgb4/device.c | 2 +- drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 19 +- drivers/infiniband/hw/cxgb4/mem.c | 9 +- drivers/infiniband/hw/cxgb4/provider.c | 70 +- drivers/infiniband/hw/cxgb4/qp.c | 47 +- drivers/infiniband/hw/hfi1/sysfs.c | 16 +- drivers/infiniband/hw/hfi1/verbs.c | 2 +- drivers/infiniband/hw/hns/Kconfig | 1 - drivers/infiniband/hw/hns/hns_roce_ah.c | 36 +- drivers/infiniband/hw/hns/hns_roce_cq.c | 42 +- drivers/infiniband/hw/hns/hns_roce_db.c | 6 +- drivers/infiniband/hw/hns/hns_roce_device.h | 39 +- drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 45 +- drivers/infiniband/hw/hns/hns_roce_hw_v1.h | 2 +- drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 34 +- drivers/infiniband/hw/hns/hns_roce_main.c | 63 +- drivers/infiniband/hw/hns/hns_roce_mr.c | 13 +- drivers/infiniband/hw/hns/hns_roce_pd.c | 26 +- drivers/infiniband/hw/hns/hns_roce_qp.c | 26 +- drivers/infiniband/hw/hns/hns_roce_srq.c | 59 +- drivers/infiniband/hw/i40iw/i40iw_cm.c | 3 +- drivers/infiniband/hw/i40iw/i40iw_utils.c | 1 - drivers/infiniband/hw/i40iw/i40iw_verbs.c | 143 +- drivers/infiniband/hw/mlx4/Kconfig | 1 - drivers/infiniband/hw/mlx4/ah.c | 103 +- drivers/infiniband/hw/mlx4/cq.c | 55 +- drivers/infiniband/hw/mlx4/doorbell.c | 8 +- drivers/infiniband/hw/mlx4/mad.c | 33 +- drivers/infiniband/hw/mlx4/main.c | 82 +- drivers/infiniband/hw/mlx4/mlx4_ib.h | 35 +- drivers/infiniband/hw/mlx4/mr.c | 20 +- drivers/infiniband/hw/mlx4/qp.c | 128 +- drivers/infiniband/hw/mlx4/srq.c | 67 +- drivers/infiniband/hw/mlx5/Kconfig | 1 - drivers/infiniband/hw/mlx5/ah.c | 33 +- drivers/infiniband/hw/mlx5/cmd.c | 192 +- drivers/infiniband/hw/mlx5/cmd.h | 10 +- drivers/infiniband/hw/mlx5/cong.c | 15 +- drivers/infiniband/hw/mlx5/cq.c | 60 +- drivers/infiniband/hw/mlx5/devx.c | 532 +++++- drivers/infiniband/hw/mlx5/doorbell.c | 6 +- drivers/infiniband/hw/mlx5/flow.c | 108 +- drivers/infiniband/hw/mlx5/ib_rep.c | 135 +- drivers/infiniband/hw/mlx5/ib_rep.h | 31 +- drivers/infiniband/hw/mlx5/mad.c | 11 +- drivers/infiniband/hw/mlx5/main.c | 979 ++++++---- drivers/infiniband/hw/mlx5/mem.c | 5 +- drivers/infiniband/hw/mlx5/mlx5_ib.h | 165 +- drivers/infiniband/hw/mlx5/mr.c | 217 +-- drivers/infiniband/hw/mlx5/odp.c | 361 +++- drivers/infiniband/hw/mlx5/qp.c | 425 +++-- drivers/infiniband/hw/mlx5/srq.c | 87 +- drivers/infiniband/hw/mlx5/srq.h | 4 +- drivers/infiniband/hw/mlx5/srq_cmd.c | 24 +- drivers/infiniband/hw/mthca/mthca_main.c | 2 +- drivers/infiniband/hw/mthca/mthca_provider.c | 274 ++- drivers/infiniband/hw/mthca/mthca_qp.c | 13 +- drivers/infiniband/hw/mthca/mthca_srq.c | 21 +- drivers/infiniband/hw/nes/Kconfig | 2 +- drivers/infiniband/hw/nes/nes_cm.c | 3 +- drivers/infiniband/hw/nes/nes_verbs.c | 153 +- drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 32 +- drivers/infiniband/hw/ocrdma/ocrdma_ah.h | 6 +- drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 18 +- drivers/infiniband/hw/ocrdma/ocrdma_hw.h | 6 +- drivers/infiniband/hw/ocrdma/ocrdma_main.c | 24 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 254 ++- drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 29 +- drivers/infiniband/hw/qedr/main.c | 31 +- drivers/infiniband/hw/qedr/qedr_roce_cm.c | 11 +- drivers/infiniband/hw/qedr/verbs.c | 188 +- drivers/infiniband/hw/qedr/verbs.h | 31 +- drivers/infiniband/hw/qib/qib_sysfs.c | 18 +- drivers/infiniband/hw/qib/qib_verbs.c | 2 +- drivers/infiniband/hw/usnic/usnic_ib_main.c | 6 +- drivers/infiniband/hw/usnic/usnic_ib_sysfs.c | 26 +- drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 57 +- drivers/infiniband/hw/usnic/usnic_ib_verbs.h | 18 +- drivers/infiniband/hw/usnic/usnic_uiom.c | 3 +- drivers/infiniband/hw/usnic/usnic_uiom.h | 3 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_cq.c | 19 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c | 34 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c | 7 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c | 9 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_srq.c | 47 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c | 140 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h | 33 +- drivers/infiniband/sw/rdmavt/ah.c | 38 +- drivers/infiniband/sw/rdmavt/ah.h | 8 +- drivers/infiniband/sw/rdmavt/cq.c | 7 +- drivers/infiniband/sw/rdmavt/cq.h | 3 +- drivers/infiniband/sw/rdmavt/mmap.c | 16 +- drivers/infiniband/sw/rdmavt/mmap.h | 6 +- drivers/infiniband/sw/rdmavt/mr.c | 10 +- drivers/infiniband/sw/rdmavt/mr.h | 7 +- drivers/infiniband/sw/rdmavt/pd.c | 30 +- drivers/infiniband/sw/rdmavt/pd.h | 6 +- drivers/infiniband/sw/rdmavt/qp.c | 6 +- drivers/infiniband/sw/rdmavt/qp.h | 2 +- drivers/infiniband/sw/rdmavt/srq.c | 48 +- drivers/infiniband/sw/rdmavt/srq.h | 7 +- drivers/infiniband/sw/rdmavt/vt.c | 37 +- drivers/infiniband/sw/rxe/rxe.c | 41 +- drivers/infiniband/sw/rxe/rxe.h | 14 +- drivers/infiniband/sw/rxe/rxe_cq.c | 10 +- drivers/infiniband/sw/rxe/rxe_loc.h | 18 +- drivers/infiniband/sw/rxe/rxe_mmap.c | 14 +- drivers/infiniband/sw/rxe/rxe_mr.c | 2 +- drivers/infiniband/sw/rxe/rxe_net.c | 89 +- drivers/infiniband/sw/rxe/rxe_net.h | 2 +- drivers/infiniband/sw/rxe/rxe_pool.c | 81 +- drivers/infiniband/sw/rxe/rxe_pool.h | 4 + drivers/infiniband/sw/rxe/rxe_qp.c | 15 +- drivers/infiniband/sw/rxe/rxe_queue.c | 22 +- drivers/infiniband/sw/rxe/rxe_queue.h | 15 +- drivers/infiniband/sw/rxe/rxe_srq.c | 14 +- drivers/infiniband/sw/rxe/rxe_sysfs.c | 36 +- drivers/infiniband/sw/rxe/rxe_verbs.c | 173 +- drivers/infiniband/sw/rxe/rxe_verbs.h | 11 +- drivers/infiniband/ulp/ipoib/ipoib_main.c | 4 +- drivers/infiniband/ulp/srp/ib_srp.c | 5 +- drivers/media/pci/intel/ipu3/ipu3-cio2.c | 4 +- drivers/net/ethernet/mellanox/mlx5/core/Makefile | 6 +- drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 55 +- drivers/net/ethernet/mellanox/mlx5/core/cq.c | 9 +- drivers/net/ethernet/mellanox/mlx5/core/ecpf.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en.h | 18 +- .../ethernet/mellanox/mlx5/core/en/monitor_stats.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en/port.c | 139 +- drivers/net/ethernet/mellanox/mlx5/core/en/port.h | 16 +- .../net/ethernet/mellanox/mlx5/core/en/reporter.h | 15 + .../ethernet/mellanox/mlx5/core/en/reporter_tx.c | 356 ++++ .../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 281 ++- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 245 +-- drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 15 +- drivers/net/ethernet/mellanox/mlx5/core/en_rep.h | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/eq.c | 28 +- drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 11 + drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 7 +- .../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 38 +- drivers/net/ethernet/mellanox/mlx5/core/events.c | 75 + .../net/ethernet/mellanox/mlx5/core/fpga/core.c | 2 - drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 14 +- drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 271 ++- drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 18 +- .../net/ethernet/mellanox/mlx5/core/fs_debugfs.c | 1324 ++++++++++++++ .../net/ethernet/mellanox/mlx5/core/fs_debugfs.h | 109 ++ drivers/net/ethernet/mellanox/mlx5/core/lib/eq.h | 2 +- drivers/net/ethernet/mellanox/mlx5/core/mad.c | 75 - drivers/net/ethernet/mellanox/mlx5/core/main.c | 89 +- .../net/ethernet/mellanox/mlx5/core/meddev/mdev.c | 26 +- .../net/ethernet/mellanox/mlx5/core/meddev/sf.c | 153 +- .../net/ethernet/mellanox/mlx5/core/meddev/sf.h | 6 +- .../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 6 +- drivers/net/ethernet/mellanox/mlx5/core/mr.c | 11 +- drivers/net/ethernet/mellanox/mlx5/core/port.c | 106 -- drivers/net/ethernet/mellanox/mlx5/core/qp.c | 6 +- drivers/net/ethernet/mellanox/mlx5/core/rdma.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/sriov.c | 51 +- drivers/net/ethernet/mellanox/mlx5/core/transobj.c | 18 +- include/linux/cgroup_rdma.h | 2 +- include/linux/mlx5/device.h | 5 + include/linux/mlx5/driver.h | 40 +- include/linux/mlx5/eswitch.h | 32 +- include/linux/mlx5/fs.h | 2 + include/linux/mlx5/mlx5_ifc.h | 213 ++- include/linux/mlx5/port.h | 30 +- include/linux/mlx5/qp.h | 3 +- include/linux/mlx5/transobj.h | 3 + include/linux/mlx5/vport.h | 3 +- include/linux/scatterlist.h | 49 +- include/net/devlink.h | 175 +- include/net/flow_offload.h | 2 +- include/rdma/ib_cache.h | 4 + include/rdma/ib_sa.h | 13 + include/rdma/ib_umem.h | 8 +- include/rdma/ib_umem_odp.h | 26 +- include/rdma/ib_verbs.h | 544 ++++-- include/rdma/rdma_netlink.h | 11 + include/rdma/rdma_vt.h | 8 +- include/rdma/restrack.h | 58 +- include/rdma/uverbs_ioctl.h | 18 + include/rdma/uverbs_std_types.h | 28 +- include/rdma/uverbs_types.h | 19 +- include/trace/events/devlink.h | 62 + include/uapi/linux/devlink.h | 35 + include/uapi/rdma/ib_user_verbs.h | 2 + include/uapi/rdma/mlx5-abi.h | 2 + include/uapi/rdma/mlx5_user_ioctl_cmds.h | 20 + include/uapi/rdma/mlx5_user_ioctl_verbs.h | 13 + include/uapi/rdma/rdma_netlink.h | 70 +- kernel/cgroup/rdma.c | 5 +- lib/scatterlist.c | 26 + net/core/devlink.c | 1593 ++++++++++++++-- net/core/ethtool.c | 7 + scripts/checkpatch.pl | 13 - 249 files changed, 12785 insertions(+), 5840 deletions(-) create mode 100644 Documentation/networking/devlink-health.txt create mode 100644 drivers/infiniband/core/restrack.h create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/reporter.h create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/fs_debugfs.c create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/fs_debugfs.h delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/mad.c Acked-by: Stefan Bader Acked-by: Khalid Elmously