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

Commit 35e4ddfc 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:
  RDMA/cma: Increase the IB CM retry count in CMA
  IPoIB: Retry failed send-only multicast group joins
  IB/srp: Don't schedule reconnect from srp
parents 27bea327 d5bb7599
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@ MODULE_DESCRIPTION("Generic RDMA CM Agent");
MODULE_LICENSE("Dual BSD/GPL");

#define CMA_CM_RESPONSE_TIMEOUT 20
#define CMA_MAX_CM_RETRIES 3
#define CMA_MAX_CM_RETRIES 15

static void cma_add_one(struct ib_device *device);
static void cma_remove_one(struct ib_device *device);
+1 −0
Original line number Diff line number Diff line
@@ -326,6 +326,7 @@ ipoib_mcast_sendonly_join_complete(int status,

		/* Clear the busy flag so we try again */
		clear_bit(IPOIB_MCAST_FLAG_BUSY, &mcast->flags);
		mcast->query = NULL;
	}

	complete(&mcast->done);
+0 −14
Original line number Diff line number Diff line
@@ -799,13 +799,6 @@ static void srp_process_rsp(struct srp_target_port *target, struct srp_rsp *rsp)
	spin_unlock_irqrestore(target->scsi_host->host_lock, flags);
}

static void srp_reconnect_work(void *target_ptr)
{
	struct srp_target_port *target = target_ptr;

	srp_reconnect_target(target);
}

static void srp_handle_recv(struct srp_target_port *target, struct ib_wc *wc)
{
	struct srp_iu *iu;
@@ -858,7 +851,6 @@ static void srp_completion(struct ib_cq *cq, void *target_ptr)
{
	struct srp_target_port *target = target_ptr;
	struct ib_wc wc;
	unsigned long flags;

	ib_req_notify_cq(cq, IB_CQ_NEXT_COMP);
	while (ib_poll_cq(cq, 1, &wc) > 0) {
@@ -866,10 +858,6 @@ static void srp_completion(struct ib_cq *cq, void *target_ptr)
			printk(KERN_ERR PFX "failed %s status %d\n",
			       wc.wr_id & SRP_OP_RECV ? "receive" : "send",
			       wc.status);
			spin_lock_irqsave(target->scsi_host->host_lock, flags);
			if (target->state == SRP_TARGET_LIVE)
				schedule_work(&target->work);
			spin_unlock_irqrestore(target->scsi_host->host_lock, flags);
			break;
		}

@@ -1705,8 +1693,6 @@ static ssize_t srp_create_target(struct class_device *class_dev,
	target->scsi_host  = target_host;
	target->srp_host   = host;

	INIT_WORK(&target->work, srp_reconnect_work, target);

	INIT_LIST_HEAD(&target->free_reqs);
	INIT_LIST_HEAD(&target->req_queue);
	for (i = 0; i < SRP_SQ_SIZE; ++i) {