mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-19 13:11:14 +00:00
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
This commit is contained in:
commit
35e4ddfc86
3 changed files with 2 additions and 15 deletions
|
@ -49,7 +49,7 @@ MODULE_DESCRIPTION("Generic RDMA CM Agent");
|
||||||
MODULE_LICENSE("Dual BSD/GPL");
|
MODULE_LICENSE("Dual BSD/GPL");
|
||||||
|
|
||||||
#define CMA_CM_RESPONSE_TIMEOUT 20
|
#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_add_one(struct ib_device *device);
|
||||||
static void cma_remove_one(struct ib_device *device);
|
static void cma_remove_one(struct ib_device *device);
|
||||||
|
|
|
@ -326,6 +326,7 @@ ipoib_mcast_sendonly_join_complete(int status,
|
||||||
|
|
||||||
/* Clear the busy flag so we try again */
|
/* Clear the busy flag so we try again */
|
||||||
clear_bit(IPOIB_MCAST_FLAG_BUSY, &mcast->flags);
|
clear_bit(IPOIB_MCAST_FLAG_BUSY, &mcast->flags);
|
||||||
|
mcast->query = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
complete(&mcast->done);
|
complete(&mcast->done);
|
||||||
|
|
|
@ -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);
|
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)
|
static void srp_handle_recv(struct srp_target_port *target, struct ib_wc *wc)
|
||||||
{
|
{
|
||||||
struct srp_iu *iu;
|
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 srp_target_port *target = target_ptr;
|
||||||
struct ib_wc wc;
|
struct ib_wc wc;
|
||||||
unsigned long flags;
|
|
||||||
|
|
||||||
ib_req_notify_cq(cq, IB_CQ_NEXT_COMP);
|
ib_req_notify_cq(cq, IB_CQ_NEXT_COMP);
|
||||||
while (ib_poll_cq(cq, 1, &wc) > 0) {
|
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",
|
printk(KERN_ERR PFX "failed %s status %d\n",
|
||||||
wc.wr_id & SRP_OP_RECV ? "receive" : "send",
|
wc.wr_id & SRP_OP_RECV ? "receive" : "send",
|
||||||
wc.status);
|
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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1705,8 +1693,6 @@ static ssize_t srp_create_target(struct class_device *class_dev,
|
||||||
target->scsi_host = target_host;
|
target->scsi_host = target_host;
|
||||||
target->srp_host = host;
|
target->srp_host = host;
|
||||||
|
|
||||||
INIT_WORK(&target->work, srp_reconnect_work, target);
|
|
||||||
|
|
||||||
INIT_LIST_HEAD(&target->free_reqs);
|
INIT_LIST_HEAD(&target->free_reqs);
|
||||||
INIT_LIST_HEAD(&target->req_queue);
|
INIT_LIST_HEAD(&target->req_queue);
|
||||||
for (i = 0; i < SRP_SQ_SIZE; ++i) {
|
for (i = 0; i < SRP_SQ_SIZE; ++i) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue