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; } -- 2.1.4 -- 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