Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 23 Feb 2017 19:27:49 +0000 (11:27 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 23 Feb 2017 19:27:49 +0000 (11:27 -0800)
Pull Mellanox rdma updates from Doug Ledford:
 "Mellanox specific updates for 4.11 merge window

  Because the Mellanox code required being based on a net-next tree, I
  keept it separate from the remainder of the RDMA stack submission that
  is based on 4.10-rc3.

  This branch contains:

   - Various mlx4 and mlx5 fixes and minor changes

   - Support for adding a tag match rule to flow specs

   - Support for cvlan offload operation for raw ethernet QPs

   - A change to the core IB code to recognize raw eth capabilities and
     enumerate them (touches non-Mellanox code)

   - Implicit On-Demand Paging memory registration support"

* tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (40 commits)
  IB/mlx5: Fix configuration of port capabilities
  IB/mlx4: Take source GID by index from HW GID table
  IB/mlx5: Fix blue flame buffer size calculation
  IB/mlx4: Remove unused variable from function declaration
  IB: Query ports via the core instead of direct into the driver
  IB: Add protocol for USNIC
  IB/mlx4: Support raw packet protocol
  IB/mlx5: Support raw packet protocol
  IB/core: Add raw packet protocol
  IB/mlx5: Add implicit MR support
  IB/mlx5: Expose MR cache for mlx5_ib
  IB/mlx5: Add null_mkey access
  IB/umem: Indicate that process is being terminated
  IB/umem: Update on demand page (ODP) support
  IB/core: Add implicit MR flag
  IB/mlx5: Support creation of a WQ with scatter FCS offload
  IB/mlx5: Enable QP creation with cvlan offload
  IB/mlx5: Enable WQ creation and modification with cvlan offload
  IB/mlx5: Expose vlan offloads capabilities
  IB/uverbs: Enable QP creation with cvlan offload
  ...

22 files changed:
1  2 
drivers/infiniband/core/umem.c
drivers/infiniband/hw/cxgb3/iwch_provider.c
drivers/infiniband/hw/cxgb4/provider.c
drivers/infiniband/hw/hfi1/verbs.c
drivers/infiniband/hw/hns/hns_roce_main.c
drivers/infiniband/hw/i40iw/i40iw_verbs.c
drivers/infiniband/hw/mlx4/qp.c
drivers/infiniband/hw/mlx5/main.c
drivers/infiniband/hw/mlx5/qp.c
drivers/infiniband/hw/nes/nes_verbs.c
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
drivers/infiniband/hw/qedr/verbs.c
drivers/infiniband/hw/qib/qib_verbs.c
drivers/infiniband/hw/usnic/usnic_ib_verbs.c
drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c
drivers/infiniband/sw/rxe/rxe_verbs.c
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c
include/linux/mlx5/driver.h
include/linux/mlx5/mlx5_ifc.h
include/rdma/ib_verbs.h
include/uapi/rdma/ib_user_verbs.h

Simple merge
index 6262dc035f3cea4c9613d96f67ec13e76a18643e,9e39252a570a3c0380a0491b7c395bc2fd28a45b..48649f93258a41e8ecf8b4214d4d518a28a07318
@@@ -1133,9 -1133,18 +1133,9 @@@ static int iwch_query_port(struct ib_de
        dev = to_iwch_dev(ibdev);
        netdev = dev->rdev.port_info.lldevs[port-1];
  
-       memset(props, 0, sizeof(struct ib_port_attr));
+       /* props being zeroed by the caller, avoid zeroing it here */
        props->max_mtu = IB_MTU_4096;
 -      if (netdev->mtu >= 4096)
 -              props->active_mtu = IB_MTU_4096;
 -      else if (netdev->mtu >= 2048)
 -              props->active_mtu = IB_MTU_2048;
 -      else if (netdev->mtu >= 1024)
 -              props->active_mtu = IB_MTU_1024;
 -      else if (netdev->mtu >= 512)
 -              props->active_mtu = IB_MTU_512;
 -      else
 -              props->active_mtu = IB_MTU_256;
 +      props->active_mtu = ib_mtu_int_to_enum(netdev->mtu);
  
        if (!netif_carrier_ok(netdev))
                props->state = IB_PORT_DOWN;
index 3345e1c312f771cfaa8e31858624ca9892267467,5b00b50a484fa57cfbbc546954a2c63caed5e35f..bdf7de571d838d824dd5fc57d8e357a35ddfe84a
@@@ -370,10 -358,18 +370,9 @@@ static int c4iw_query_port(struct ib_de
  
        dev = to_c4iw_dev(ibdev);
        netdev = dev->rdev.lldi.ports[port-1];
-       memset(props, 0, sizeof(struct ib_port_attr));
+       /* props being zeroed by the caller, avoid zeroing it here */
        props->max_mtu = IB_MTU_4096;
 -      if (netdev->mtu >= 4096)
 -              props->active_mtu = IB_MTU_4096;
 -      else if (netdev->mtu >= 2048)
 -              props->active_mtu = IB_MTU_2048;
 -      else if (netdev->mtu >= 1024)
 -              props->active_mtu = IB_MTU_1024;
 -      else if (netdev->mtu >= 512)
 -              props->active_mtu = IB_MTU_512;
 -      else
 -              props->active_mtu = IB_MTU_256;
 +      props->active_mtu = ib_mtu_int_to_enum(netdev->mtu);
  
        if (!netif_carrier_ok(netdev))
                props->state = IB_PORT_DOWN;
Simple merge
index 4c000d60d5c6f865ae17aa28654497e3dbbb913c,3e830486417b02b515b3a36fb014d89c62b25db2..5f695bf232a8f0d7bf332f65441db6a195d9092e
@@@ -97,10 -97,18 +97,9 @@@ static int i40iw_query_port(struct ib_d
        struct i40iw_device *iwdev = to_iwdev(ibdev);
        struct net_device *netdev = iwdev->netdev;
  
-       memset(props, 0, sizeof(*props));
+       /* props being zeroed by the caller, avoid zeroing it here */
        props->max_mtu = IB_MTU_4096;
 -      if (netdev->mtu >= 4096)
 -              props->active_mtu = IB_MTU_4096;
 -      else if (netdev->mtu >= 2048)
 -              props->active_mtu = IB_MTU_2048;
 -      else if (netdev->mtu >= 1024)
 -              props->active_mtu = IB_MTU_1024;
 -      else if (netdev->mtu >= 512)
 -              props->active_mtu = IB_MTU_512;
 -      else
 -              props->active_mtu = IB_MTU_256;
 +      props->active_mtu = ib_mtu_int_to_enum(netdev->mtu);
  
        props->lid = 1;
        if (netif_carrier_ok(iwdev->netdev))
Simple merge
Simple merge
Simple merge
index 5a31f3c6a4211d507cc4634c49df53021bba505b,b7179f4ac3a6312d9436503122cc8202495db70f..d3eae2f3e9f504957305e4bda59f837327bc69f7
@@@ -475,10 -475,20 +475,10 @@@ static int nes_query_port(struct ib_dev
        struct nes_vnic *nesvnic = to_nesvnic(ibdev);
        struct net_device *netdev = nesvnic->netdev;
  
-       memset(props, 0, sizeof(*props));
+       /* props being zeroed by the caller, avoid zeroing it here */
  
        props->max_mtu = IB_MTU_4096;
 -
 -      if (netdev->mtu  >= 4096)
 -              props->active_mtu = IB_MTU_4096;
 -      else if (netdev->mtu  >= 2048)
 -              props->active_mtu = IB_MTU_2048;
 -      else if (netdev->mtu  >= 1024)
 -              props->active_mtu = IB_MTU_1024;
 -      else if (netdev->mtu  >= 512)
 -              props->active_mtu = IB_MTU_512;
 -      else
 -              props->active_mtu = IB_MTU_256;
 +      props->active_mtu = ib_mtu_int_to_enum(netdev->mtu);
  
        props->lid = 1;
        props->lmc = 0;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge