Merge branches 'i40iw', 'sriov' and 'hfi1' into k.o/for-4.6
authorDoug Ledford <dledford@redhat.com>
Mon, 21 Mar 2016 21:32:23 +0000 (17:32 -0400)
committerDoug Ledford <dledford@redhat.com>
Mon, 21 Mar 2016 21:32:23 +0000 (17:32 -0400)
1  2  3 
MAINTAINERS
drivers/infiniband/Kconfig
include/rdma/ib_verbs.h
include/uapi/rdma/rdma_netlink.h

diff --combined MAINTAINERS
@@@@ -5684,16 -5684,6 -5684,6 +5684,16 @@@@ F:  Documentation/networking/i40evf.tx
   F:   drivers/net/ethernet/intel/
   F:   drivers/net/ethernet/intel/*/
   
 ++INTEL RDMA RNIC DRIVER
 ++M:     Faisal Latif <faisal.latif@intel.com>
 ++R:     Chien Tin Tung <chien.tin.tung@intel.com>
 ++R:     Mustafa Ismail <mustafa.ismail@intel.com>
 ++R:     Shiraz Saleem <shiraz.saleem@intel.com>
 ++R:     Tatyana Nikolova <tatyana.e.nikolova@intel.com>
 ++L:     linux-rdma@vger.kernel.org
 ++S:     Supported
 ++F:     drivers/infiniband/hw/i40iw/
 ++
   INTEL-MID GPIO DRIVER
   M:   David Cohen <david.a.cohen@linux.intel.com>
   L:   linux-gpio@vger.kernel.org
@@@@ -9085,6 -9075,6 -9075,12 +9085,12 @@@@ L:  rds-devel@oss.oracle.com (moderated 
   S:   Supported
   F:   net/rds/
   
++ RDMAVT - RDMA verbs software
++ M:   Dennis Dalessandro <dennis.dalessandro@intel.com>
++ L:   linux-rdma@vger.kernel.org
++ S:   Supported
++ F:   drivers/infiniband/sw/rdmavt
++ 
   READ-COPY UPDATE (RCU)
   M:   "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
   M:   Josh Triplett <josh@joshtriplett.org>
@@@@ -68,7 -68,6 -68,6 +68,7 @@@@ source "drivers/infiniband/hw/mthca/Kco
   source "drivers/infiniband/hw/qib/Kconfig"
   source "drivers/infiniband/hw/cxgb3/Kconfig"
   source "drivers/infiniband/hw/cxgb4/Kconfig"
 ++source "drivers/infiniband/hw/i40iw/Kconfig"
   source "drivers/infiniband/hw/mlx4/Kconfig"
   source "drivers/infiniband/hw/mlx5/Kconfig"
   source "drivers/infiniband/hw/nes/Kconfig"
@@@@ -83,4 -82,4 -82,6 +83,6 @@@@ source "drivers/infiniband/ulp/srpt/Kco
   source "drivers/infiniband/ulp/iser/Kconfig"
   source "drivers/infiniband/ulp/isert/Kconfig"
   
++ source "drivers/infiniband/sw/rdmavt/Kconfig"
++ 
   endif # INFINIBAND
diff --combined include/rdma/ib_verbs.h
   #include <linux/string.h>
   #include <linux/slab.h>
   
+ +#include <linux/if_link.h>
   #include <linux/atomic.h>
   #include <linux/mmu_notifier.h>
   #include <asm/uaccess.h>
@@@@ -97,6 -98,11 -97,6 +98,11 @@@@ enum rdma_node_type 
        RDMA_NODE_USNIC_UDP,
   };
   
+ +enum {
+ +     /* set the local administered indication */
+ +     IB_SA_WELL_KNOWN_GUID   = BIT_ULL(57) | 2,
+ +};
+ +
   enum rdma_transport_type {
        RDMA_TRANSPORT_IB,
        RDMA_TRANSPORT_IWARP,
@@@@ -212,6 -218,8 -212,6 +218,8 @@@@ enum ib_device_cap_flags 
        IB_DEVICE_MANAGED_FLOW_STEERING         = (1 << 29),
        IB_DEVICE_SIGNATURE_HANDOVER            = (1 << 30),
        IB_DEVICE_ON_DEMAND_PAGING              = (1 << 31),
+ +     IB_DEVICE_SG_GAPS_REG                   = (1ULL << 32),
+ +     IB_DEVICE_VIRTUAL_FUNCTION              = ((u64)1 << 33),
   };
   
   enum ib_signature_prot_cap {
@@@@ -273,7 -281,7 -273,7 +281,7 @@@@ struct ib_device_attr 
        u32                     hw_ver;
        int                     max_qp;
        int                     max_qp_wr;
- -     int                     device_cap_flags;
+ +     u64                     device_cap_flags;
        int                     max_sge;
        int                     max_sge_rd;
        int                     max_cq;
@@@@ -489,6 -497,7 -489,6 +497,7 @@@@ union rdma_protocol_stats 
                                        | RDMA_CORE_CAP_OPA_MAD)
   
   struct ib_port_attr {
+ +     u64                     subnet_prefix;
        enum ib_port_state      state;
        enum ib_mtu             max_mtu;
        enum ib_mtu             active_mtu;
        u8                      active_width;
        u8                      active_speed;
        u8                      phys_state;
+ +     bool                    grh_required;
   };
   
   enum ib_device_modify_flags {
@@@@ -613,6 -623,6 -613,7 +623,7 @@@@ enum 
   };
   
   #define IB_LID_PERMISSIVE    cpu_to_be16(0xFFFF)
++ #define IB_MULTICAST_LID_BASE        cpu_to_be16(0xC000)
   
   enum ib_ah_flags {
        IB_AH_GRH       = 1
@@@@ -662,10 -672,15 -663,10 +673,15 @@@@ __attribute_const__ int ib_rate_to_mbps
    * @IB_MR_TYPE_SIGNATURE:     memory region that is used for
    *                            signature operations (data-integrity
    *                            capable regions)
+ + * @IB_MR_TYPE_SG_GAPS:       memory region that is capable to
+ + *                            register any arbitrary sg lists (without
+ + *                            the normal mr constraints - see
+ + *                            ib_map_mr_sg)
    */
   enum ib_mr_type {
        IB_MR_TYPE_MEM_REG,
        IB_MR_TYPE_SIGNATURE,
+ +     IB_MR_TYPE_SG_GAPS,
   };
   
   /**
@@@@ -1487,6 -1502,11 -1488,6 +1503,11 @@@@ enum ib_flow_domain 
        IB_FLOW_DOMAIN_NUM /* Must be last */
   };
   
+ +enum ib_flow_flags {
+ +     IB_FLOW_ATTR_FLAGS_DONT_TRAP = 1UL << 1, /* Continue match, no steal */
+ +     IB_FLOW_ATTR_FLAGS_RESERVED  = 1UL << 2  /* Must be last */
+ +};
+ +
   struct ib_flow_eth_filter {
        u8      dst_mac[6];
        u8      src_mac[6];
@@@@ -1808,7 -1828,8 -1809,7 +1829,8 @@@@ struct ib_device 
                                                struct scatterlist *sg,
                                                int sg_nents);
        struct ib_mw *             (*alloc_mw)(struct ib_pd *pd,
- -                                            enum ib_mw_type type);
+ +                                            enum ib_mw_type type,
+ +                                            struct ib_udata *udata);
        int                        (*dealloc_mw)(struct ib_mw *mw);
        struct ib_fmr *            (*alloc_fmr)(struct ib_pd *pd,
                                                int mr_access_flags,
        int                        (*check_mr_status)(struct ib_mr *mr, u32 check_mask,
                                                      struct ib_mr_status *mr_status);
        void                       (*disassociate_ucontext)(struct ib_ucontext *ibcontext);
+ +     void                       (*drain_rq)(struct ib_qp *qp);
+ +     void                       (*drain_sq)(struct ib_qp *qp);
+ +     int                        (*set_vf_link_state)(struct ib_device *device, int vf, u8 port,
+ +                                                     int state);
+ +     int                        (*get_vf_config)(struct ib_device *device, int vf, u8 port,
+ +                                                struct ifla_vf_info *ivf);
+ +     int                        (*get_vf_stats)(struct ib_device *device, int vf, u8 port,
+ +                                                struct ifla_vf_stats *stats);
+ +     int                        (*set_vf_guid)(struct ib_device *device, int vf, u8 port, u64 guid,
+ +                                               int type);
   
        struct ib_dma_mapping_ops   *dma_ops;
   
@@@@ -2289,6 -2320,15 -2290,6 +2321,15 @@@@ int ib_query_gid(struct ib_device *devi
                 u8 port_num, int index, union ib_gid *gid,
                 struct ib_gid_attr *attr);
   
+ +int ib_set_vf_link_state(struct ib_device *device, int vf, u8 port,
+ +                      int state);
+ +int ib_get_vf_config(struct ib_device *device, int vf, u8 port,
+ +                  struct ifla_vf_info *info);
+ +int ib_get_vf_stats(struct ib_device *device, int vf, u8 port,
+ +                 struct ifla_vf_stats *stats);
+ +int ib_set_vf_guid(struct ib_device *device, int vf, u8 port, u64 guid,
+ +                int type);
+ +
   int ib_query_pkey(struct ib_device *device,
                  u8 port_num, u16 index, u16 *pkey);
   
@@@@ -3094,4 -3134,7 -3095,4 +3135,7 @@@@ int ib_sg_to_pages(struct ib_mr *mr
                   int sg_nents,
                   int (*set_page)(struct ib_mr *, u64));
   
+ +void ib_drain_rq(struct ib_qp *qp);
+ +void ib_drain_sq(struct ib_qp *qp);
+ +void ib_drain_qp(struct ib_qp *qp);
   #endif /* IB_VERBS_H */
@@@@ -5,10 -5,9 -5,9 +5,10 @@@@
   
   enum {
        RDMA_NL_RDMA_CM = 1,
- -     RDMA_NL_NES,
- -     RDMA_NL_C4IW,
+ +     RDMA_NL_IWCM,
+ +     RDMA_NL_RSVD,
        RDMA_NL_LS,     /* RDMA Local Services */
 ++     RDMA_NL_I40IW,
        RDMA_NL_NUM_CLIENTS
   };