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

Commit d796e641 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband

* 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband: (29 commits)
  IB/mthca: Simplify use of size0 in work request posting
  IB/mthca: Factor out setting WQE UD segment entries
  IB/mthca: Factor out setting WQE remote address and atomic segment entries
  IB/mlx4: Factor out setting other WQE segments
  IB/mlx4: Factor out setting WQE data segment entries
  IB/mthca: Factor out setting WQE data segment entries
  IB/mlx4: Return receive queue sizes for userspace QPs from query QP
  IB/mlx4: Increase max outstanding RDMA reads as target
  RDMA/cma: Remove local write permission from QP access flags
  IB/mthca: Use uninitialized_var() for f0
  IB/cm: Make internal function cm_get_ack_delay() static
  IB/ipath: Remove ipath_get_user_pages_nocopy()
  IB/ipath: Make a few functions static
  mlx4_core: Reset device when internal error is detected
  IB/iser: Make a couple of functions static
  IB/mthca: Fix printk format used for firmware version in warning
  IB/mthca: Schedule MSI support for removal
  IB/ehca: Fix warnings issued by checkpatch.pl
  IB/ehca: Restructure ehca_set_pagebuf()
  IB/ehca: MR/MW structure refactoring
  ...
parents 412edf65 43509d1f
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -310,3 +310,13 @@ Why: The arch/powerpc tree is the merged architecture for ppc32 and ppc64
Who:  linuxppc-dev@ozlabs.org
Who:  linuxppc-dev@ozlabs.org


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

What:	mthca driver's MSI support
When:	January 2008
Files:	drivers/infiniband/hw/mthca/*.[ch]
Why:	All mthca hardware also supports MSI-X, which provides
	strictly more functionality than MSI.  So there is no point in
	having both MSI-X and MSI support in the driver.
Who:	Roland Dreier <rolandd@cisco.com>

---------------------------
+1 −1
Original line number Original line Diff line number Diff line
@@ -3374,7 +3374,7 @@ int ib_cm_init_qp_attr(struct ib_cm_id *cm_id,
}
}
EXPORT_SYMBOL(ib_cm_init_qp_attr);
EXPORT_SYMBOL(ib_cm_init_qp_attr);


void cm_get_ack_delay(struct cm_device *cm_dev)
static void cm_get_ack_delay(struct cm_device *cm_dev)
{
{
	struct ib_device_attr attr;
	struct ib_device_attr attr;


+1 −1
Original line number Original line Diff line number Diff line
@@ -573,7 +573,7 @@ int rdma_init_qp_attr(struct rdma_cm_id *id, struct ib_qp_attr *qp_attr,
		break;
		break;
	case RDMA_TRANSPORT_IWARP:
	case RDMA_TRANSPORT_IWARP:
		if (!id_priv->cm_id.iw) {
		if (!id_priv->cm_id.iw) {
			qp_attr->qp_access_flags = IB_ACCESS_LOCAL_WRITE;
			qp_attr->qp_access_flags = 0;
			*qp_attr_mask = IB_QP_STATE | IB_QP_ACCESS_FLAGS;
			*qp_attr_mask = IB_QP_STATE | IB_QP_ACCESS_FLAGS;
		} else
		} else
			ret = iw_cm_init_qp_attr(id_priv->cm_id.iw, qp_attr,
			ret = iw_cm_init_qp_attr(id_priv->cm_id.iw, qp_attr,
+1 −0
Original line number Original line Diff line number Diff line
@@ -1914,6 +1914,7 @@ int iwch_create_listen(struct iw_cm_id *cm_id, int backlog)
fail3:
fail3:
	cxgb3_free_stid(ep->com.tdev, ep->stid);
	cxgb3_free_stid(ep->com.tdev, ep->stid);
fail2:
fail2:
	cm_id->rem_ref(cm_id);
	put_ep(&ep->com);
	put_ep(&ep->com);
fail1:
fail1:
out:
out:
+27 −27
Original line number Original line Diff line number Diff line
@@ -204,8 +204,8 @@ struct ehca_mr {
	spinlock_t mrlock;
	spinlock_t mrlock;


	enum ehca_mr_flag flags;
	enum ehca_mr_flag flags;
	u32 num_pages;		/* number of MR pages */
	u32 num_kpages;		/* number of kernel pages */
	u32 num_4k;		/* number of 4k "page" portions to form MR */
	u32 num_hwpages;	/* number of hw pages to form MR */
	int acl;		/* ACL (stored here for usage in reregister) */
	int acl;		/* ACL (stored here for usage in reregister) */
	u64 *start;		/* virtual start address (stored here for */
	u64 *start;		/* virtual start address (stored here for */
				/* usage in reregister) */
				/* usage in reregister) */
@@ -217,9 +217,6 @@ struct ehca_mr {
	/* fw specific data */
	/* fw specific data */
	struct ipz_mrmw_handle ipz_mr_handle;	/* MR handle for h-calls */
	struct ipz_mrmw_handle ipz_mr_handle;	/* MR handle for h-calls */
	struct h_galpas galpas;
	struct h_galpas galpas;
	/* data for userspace bridge */
	u32 nr_of_pages;
	void *pagearray;
};
};


struct ehca_mw {
struct ehca_mw {
@@ -241,26 +238,29 @@ enum ehca_mr_pgi_type {


struct ehca_mr_pginfo {
struct ehca_mr_pginfo {
	enum ehca_mr_pgi_type type;
	enum ehca_mr_pgi_type type;
	u64 num_pages;
	u64 num_kpages;
	u64 page_cnt;
	u64 kpage_cnt;
	u64 num_4k;       /* number of 4k "page" portions */
	u64 num_hwpages;     /* number of hw pages */
	u64 page_4k_cnt;  /* counter for 4k "page" portions */
	u64 hwpage_cnt;      /* counter for hw pages */
	u64 next_4k;      /* next 4k "page" portion in buffer/chunk/listelem */
	u64 next_hwpage;     /* next hw page in buffer/chunk/listelem */


	/* type EHCA_MR_PGI_PHYS section */
	union {
		struct { /* type EHCA_MR_PGI_PHYS section */
			int num_phys_buf;
			int num_phys_buf;
			struct ib_phys_buf *phys_buf_array;
			struct ib_phys_buf *phys_buf_array;
			u64 next_buf;
			u64 next_buf;

		} phy;
	/* type EHCA_MR_PGI_USER section */
		struct { /* type EHCA_MR_PGI_USER section */
			struct ib_umem *region;
			struct ib_umem *region;
			struct ib_umem_chunk *next_chunk;
			struct ib_umem_chunk *next_chunk;
			u64 next_nmap;
			u64 next_nmap;

		} usr;
	/* type EHCA_MR_PGI_FMR section */
		struct { /* type EHCA_MR_PGI_FMR section */
			u64 fmr_pgsize;
			u64 *page_list;
			u64 *page_list;
			u64 next_listelem;
			u64 next_listelem;
	/* next_4k also used within EHCA_MR_PGI_FMR */
		} fmr;
	} u;
};
};


/* output parameters for MR/FMR hipz calls */
/* output parameters for MR/FMR hipz calls */
Loading