Commit bff7d8e5 authored by Bart Van Assche's avatar Bart Van Assche Committed by Greg Kroah-Hartman

IB/srp: Handle partial connection success correctly

commit c257ea6f upstream.

Avoid that the following kernel warning is reported if the SRP
target system accepts fewer channels per connection than what
was requested by the initiator system:

WARNING: at drivers/infiniband/ulp/srp/ib_srp.c:617 srp_destroy_qp+0xb1/0x120 [ib_srp]()
Call Trace:
[<ffffffff8105d67f>] warn_slowpath_common+0x7f/0xc0
[<ffffffff8105d6da>] warn_slowpath_null+0x1a/0x20
[<ffffffffa05419e1>] srp_destroy_qp+0xb1/0x120 [ib_srp]
[<ffffffffa05445fb>] srp_create_ch_ib+0x19b/0x420 [ib_srp]
[<ffffffffa0545257>] srp_create_target+0x7d7/0xa94 [ib_srp]
[<ffffffff8138dac0>] dev_attr_store+0x20/0x30
[<ffffffff812079ef>] sysfs_write_file+0xef/0x170
[<ffffffff81191fc4>] vfs_write+0xb4/0x130
[<ffffffff8119276f>] sys_write+0x5f/0xa0
[<ffffffff815a0a59>] system_call_fastpath+0x16/0x1b
Signed-off-by: default avatarBart Van Assche <bart.vanassche@sandisk.com>
Cc: Sagi Grimberg <sagig@mellanox.com>
Cc: Sebastian Parschauer <sebastian.riemer@profitbricks.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0796f55b
...@@ -3266,7 +3266,7 @@ static ssize_t srp_create_target(struct device *dev, ...@@ -3266,7 +3266,7 @@ static ssize_t srp_create_target(struct device *dev,
srp_free_ch_ib(target, ch); srp_free_ch_ib(target, ch);
srp_free_req_data(target, ch); srp_free_req_data(target, ch);
target->ch_count = ch - target->ch; target->ch_count = ch - target->ch;
break; goto connected;
} }
} }
...@@ -3276,6 +3276,7 @@ static ssize_t srp_create_target(struct device *dev, ...@@ -3276,6 +3276,7 @@ static ssize_t srp_create_target(struct device *dev,
node_idx++; node_idx++;
} }
connected:
target->scsi_host->nr_hw_queues = target->ch_count; target->scsi_host->nr_hw_queues = target->ch_count;
ret = srp_add_target(host, target); ret = srp_add_target(host, target);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment