Subject: linux-next: manual merge of the target-updates tree with the nfsd tree

From: Stephen Rothwell <[email-masked]>
Date: Thu, 31 Dec 2015 19:28:06 +1100

Hi Nicholas,

Today's linux-next merge of the target-updates tree got conflicts in:

  drivers/infiniband/ulp/iser/iser_memory.c
  drivers/infiniband/ulp/isert/ib_isert.c

between commit:

  6c7b6d2d442c ("IB: merge struct ib_device_attr into struct ib_device")

from the nfsd tree and commits:

  6d2cb3ad4bc2 ("iser-target: Support the remote invalidation exception")
  9a4a71456262 ("IB/iser: Support the remote invalidation exception")

from the target-updates tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    [email-masked]

diff --cc drivers/infiniband/ulp/iser/iser_memory.c
index 81ad5e998fc2,8a57d4eadda6..000000000000
--- a/drivers/infiniband/ulp/iser/iser_memory.c
+++ b/drivers/infiniband/ulp/iser/iser_memory.c
@@@ -69,16 -69,17 +69,17 @@@ static struct iser_reg_ops fmr_ops = 
  
  int iser_assign_reg_ops(struct iser_device *device)
  {
 -	struct ib_device_attr *dev_attr = &device->dev_attr;
 +	struct ib_device *ib_dev = device->ib_device;
  
  	/* Assign function handles  - based on FMR support */
 -	if (device->ib_device->alloc_fmr && device->ib_device->dealloc_fmr &&
 -	    device->ib_device->map_phys_fmr && device->ib_device->unmap_fmr) {
 +	if (ib_dev->alloc_fmr && ib_dev->dealloc_fmr &&
 +	    ib_dev->map_phys_fmr && ib_dev->unmap_fmr) {
  		iser_info("FMR supported, using FMR for registration\n");
  		device->reg_ops = &fmr_ops;
 -	} else if (dev_attr->device_cap_flags & IB_DEVICE_MEM_MGT_EXTENSIONS) {
 +	} else if (ib_dev->device_cap_flags & IB_DEVICE_MEM_MGT_EXTENSIONS) {
  		iser_info("FastReg supported, using FastReg for registration\n");
  		device->reg_ops = &fastreg_ops;
+ 		device->remote_inv_sup = iser_always_reg;
  	} else {
  		iser_err("IB device does not support FMRs nor FastRegs, can't register memory\n");
  		return -1;
diff --cc drivers/infiniband/ulp/isert/ib_isert.c
index 77f894970aeb,91eb22c4fdba..000000000000
--- a/drivers/infiniband/ulp/isert/ib_isert.c
+++ b/drivers/infiniband/ulp/isert/ib_isert.c
@@@ -654,6 -679,32 +653,32 @@@ out_login_buf
  	return ret;
  }
  
+ static void
+ isert_set_nego_params(struct isert_conn *isert_conn,
+ 		      struct rdma_conn_param *param)
+ {
+ 	struct isert_device *device = isert_conn->device;
+ 
+ 	/* Set max inflight RDMA READ requests */
+ 	isert_conn->initiator_depth = min_t(u8, param->initiator_depth,
 -				device->dev_attr.max_qp_init_rd_atom);
++				device->ib_device->max_qp_init_rd_atom);
+ 	isert_dbg("Using initiator_depth: %u\n", isert_conn->initiator_depth);
+ 
+ 	if (param->private_data) {
+ 		u8 flags = *(u8 *)param->private_data;
+ 
+ 		/*
+ 		 * use remote invalidation if the both initiator
+ 		 * and the HCA support it
+ 		 */
+ 		isert_conn->snd_w_inv = !(flags & ISER_SEND_W_INV_NOT_SUP) &&
 -					  (device->dev_attr.device_cap_flags &
++					  (device->ib_device->device_cap_flags &
+ 					   IB_DEVICE_MEM_MGT_EXTENSIONS);
+ 		if (isert_conn->snd_w_inv)
+ 			isert_info("Using remote invalidation\n");
+ 	}
+ }
+ 
  static int
  isert_connect_request(struct rdma_cm_id *cma_id, struct rdma_cm_event *event)
  {