12.08.2015 19:50, Bart Van Assche пишет:
On 08/11/2015 10:15 PM, Konstantin Krotov wrote:
11.08.2015 23:28, Bart Van Assche пишет:
Are you using a kernel from Greg KH's stable repository or another kernel ? And to which values were the
yes, sources from upstream, 3.19.1
Hello Konstantin,
Can you test the patch below ? That patch not only applies to the v4.2-rc6
kernel but also to the ib_srp-backport driver.
Thanks,
Bart.
Subject: [PATCH] IB/srp: Stop the scsi_eh_<n> and scsi_tmf_<n> threads if login fails
scsi_host_alloc() not only allocates memory for a SCSI host but also
creates the scsi_eh_<n> kernel thread and the scsi_tmf_<n> workqueue.
Stop these threads if login fails by calling scsi_host_put().
Reported-by: Konstantin Krotov <kkv@xxxxxxxx>
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Cc: stable <stable@xxxxxxxxxxxxxxx>
---
drivers/infiniband/ulp/srp/ib_srp.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index f962267..b5f9456 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -2765,6 +2765,13 @@ static int srp_sdev_count(struct Scsi_Host *host)
return c;
}
+/*
+ * Return values:
+ * < 0 upon failure. Caller is responsible for SRP target port cleanup.
+ * 0 and target->state == SRP_TARGET_REMOVED if the target port will be removed
+ * asynchronously.
+ * 0 and target->state != SRP_TARGET_REMOVED upon success.
+ */
static int srp_add_target(struct srp_host *host, struct srp_target_port *target)
{
struct srp_rport_identifiers ids;
@@ -3316,6 +3323,7 @@ err_disconnect:
}
kfree(target->ch);
+ scsi_host_put(target->scsi_host);
goto out;
}
Hello Bart
I tested the patch, the problem is not reproduced.
Thanks.
--
WBR
Konstantin V. Krotov
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html