Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3af73d39 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (29 commits)
  RDMA/nes: Fix slab corruption
  IB/mlx4: Set RLKEY bit for kernel QPs
  RDMA/nes: Correct error_module bit mask
  RDMA/nes: Fix routed RDMA connections
  RDMA/nes: Enhanced PFT management scheme
  RDMA/nes: Handle AE bounds violation
  RDMA/nes: Limit critical error interrupts
  RDMA/nes: Stop spurious MAC interrupts
  RDMA/nes: Correct tso_wqe_length
  RDMA/nes: Fill in firmware version for ethtool
  RDMA/nes: Use ethtool timer value
  RDMA/nes: Correct MAX TSO frags value
  RDMA/nes: Enable MC/UC after changing MTU
  RDMA/nes: Free NIC TX buffers when destroying NIC QP
  RDMA/nes: Fix MDC setting
  RDMA/nes: Add wqm_quanta module option
  RDMA/nes: Module parameter permissions
  RDMA/cxgb3: Set active_mtu in ib_port_attr
  RDMA/nes: Add support for 4-port 1G HP blade card
  RDMA/nes: Make mini_cm_connect() static
  ...
parents 13dd7f87 eedd5d0a
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -3748,6 +3748,7 @@ static void cm_add_one(struct ib_device *ib_device)
		cm_remove_port_fs(port);
		cm_remove_port_fs(port);
	}
	}
	device_unregister(cm_dev->device);
	device_unregister(cm_dev->device);
	kfree(cm_dev);
}
}


static void cm_remove_one(struct ib_device *ib_device)
static void cm_remove_one(struct ib_device *ib_device)
@@ -3776,6 +3777,7 @@ static void cm_remove_one(struct ib_device *ib_device)
		cm_remove_port_fs(port);
		cm_remove_port_fs(port);
	}
	}
	device_unregister(cm_dev->device);
	device_unregister(cm_dev->device);
	kfree(cm_dev);
}
}


static int __init ib_cm_init(void)
static int __init ib_cm_init(void)
+2 −3
Original line number Original line Diff line number Diff line
@@ -1697,9 +1697,8 @@ static inline int rcv_has_same_gid(struct ib_mad_agent_private *mad_agent_priv,
	u8 port_num = mad_agent_priv->agent.port_num;
	u8 port_num = mad_agent_priv->agent.port_num;
	u8 lmc;
	u8 lmc;


	send_resp = ((struct ib_mad *)(wr->send_buf.mad))->
	send_resp = ib_response_mad((struct ib_mad *)wr->send_buf.mad);
		     mad_hdr.method & IB_MGMT_METHOD_RESP;
	rcv_resp = ib_response_mad(rwc->recv_buf.mad);
	rcv_resp = rwc->recv_buf.mad->mad_hdr.method & IB_MGMT_METHOD_RESP;


	if (send_resp == rcv_resp)
	if (send_resp == rcv_resp)
		/* both requests, or both responses. GIDs different */
		/* both requests, or both responses. GIDs different */
+0 −1
Original line number Original line Diff line number Diff line
@@ -272,7 +272,6 @@ static struct ib_qp *c2_create_qp(struct ib_pd *pd,
		pr_debug("%s: Invalid QP type: %d\n", __func__,
		pr_debug("%s: Invalid QP type: %d\n", __func__,
			init_attr->qp_type);
			init_attr->qp_type);
		return ERR_PTR(-EINVAL);
		return ERR_PTR(-EINVAL);
		break;
	}
	}


	if (err) {
	if (err) {
+3 −6
Original line number Original line Diff line number Diff line
@@ -1155,13 +1155,11 @@ static int iwch_query_port(struct ib_device *ibdev,
			   u8 port, struct ib_port_attr *props)
			   u8 port, struct ib_port_attr *props)
{
{
	PDBG("%s ibdev %p\n", __func__, ibdev);
	PDBG("%s ibdev %p\n", __func__, ibdev);

	memset(props, 0, sizeof(struct ib_port_attr));
	props->max_mtu = IB_MTU_4096;
	props->max_mtu = IB_MTU_4096;
	props->lid = 0;
	props->active_mtu = IB_MTU_2048;
	props->lmc = 0;
	props->sm_lid = 0;
	props->sm_sl = 0;
	props->state = IB_PORT_ACTIVE;
	props->state = IB_PORT_ACTIVE;
	props->phys_state = 0;
	props->port_cap_flags =
	props->port_cap_flags =
	    IB_PORT_CM_SUP |
	    IB_PORT_CM_SUP |
	    IB_PORT_SNMP_TUNNEL_SUP |
	    IB_PORT_SNMP_TUNNEL_SUP |
@@ -1170,7 +1168,6 @@ static int iwch_query_port(struct ib_device *ibdev,
	    IB_PORT_VENDOR_CLASS_SUP | IB_PORT_BOOT_MGMT_SUP;
	    IB_PORT_VENDOR_CLASS_SUP | IB_PORT_BOOT_MGMT_SUP;
	props->gid_tbl_len = 1;
	props->gid_tbl_len = 1;
	props->pkey_tbl_len = 1;
	props->pkey_tbl_len = 1;
	props->qkey_viol_cntr = 0;
	props->active_width = 2;
	props->active_width = 2;
	props->active_speed = 2;
	props->active_speed = 2;
	props->max_msg_sz = -1;
	props->max_msg_sz = -1;
+13 −1
Original line number Original line Diff line number Diff line
@@ -164,6 +164,13 @@ struct ehca_qmap_entry {
	u16 reported;
	u16 reported;
};
};


struct ehca_queue_map {
	struct ehca_qmap_entry *map;
	unsigned int entries;
	unsigned int tail;
	unsigned int left_to_poll;
};

struct ehca_qp {
struct ehca_qp {
	union {
	union {
		struct ib_qp ib_qp;
		struct ib_qp ib_qp;
@@ -173,8 +180,9 @@ struct ehca_qp {
	enum ehca_ext_qp_type ext_type;
	enum ehca_ext_qp_type ext_type;
	enum ib_qp_state state;
	enum ib_qp_state state;
	struct ipz_queue ipz_squeue;
	struct ipz_queue ipz_squeue;
	struct ehca_qmap_entry *sq_map;
	struct ehca_queue_map sq_map;
	struct ipz_queue ipz_rqueue;
	struct ipz_queue ipz_rqueue;
	struct ehca_queue_map rq_map;
	struct h_galpas galpas;
	struct h_galpas galpas;
	u32 qkey;
	u32 qkey;
	u32 real_qp_num;
	u32 real_qp_num;
@@ -204,6 +212,8 @@ struct ehca_qp {
	atomic_t nr_events; /* events seen */
	atomic_t nr_events; /* events seen */
	wait_queue_head_t wait_completion;
	wait_queue_head_t wait_completion;
	int mig_armed;
	int mig_armed;
	struct list_head sq_err_node;
	struct list_head rq_err_node;
};
};


#define IS_SRQ(qp) (qp->ext_type == EQPT_SRQ)
#define IS_SRQ(qp) (qp->ext_type == EQPT_SRQ)
@@ -233,6 +243,8 @@ struct ehca_cq {
	/* mmap counter for resources mapped into user space */
	/* mmap counter for resources mapped into user space */
	u32 mm_count_queue;
	u32 mm_count_queue;
	u32 mm_count_galpa;
	u32 mm_count_galpa;
	struct list_head sqp_err_list;
	struct list_head rqp_err_list;
};
};


enum ehca_mr_flag {
enum ehca_mr_flag {
Loading