projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e6300cb
)
IB/srp: Handle partial connection success correctly
author
Bart Van Assche
<
[email protected]
>
Fri, 31 Jul 2015 21:13:22 +0000
(14:13 -0700)
committer
Doug Ledford
<
[email protected]
>
Sun, 30 Aug 2015 22:12:24 +0000
(18:12 -0400)
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: Bart Van Assche <
[email protected]
>
Cc: Sagi Grimberg <
[email protected]
>
Cc: Sebastian Parschauer <
[email protected]
>
Cc: Christoph Hellwig <
[email protected]
>
Cc:
[email protected]
Signed-off-by: Doug Ledford <
[email protected]
>
drivers/infiniband/ulp/srp/ib_srp.c
patch
|
blob
|
history
diff --git
a/drivers/infiniband/ulp/srp/ib_srp.c
b/drivers/infiniband/ulp/srp/ib_srp.c
index a0b92a1ee4185fc2d6dbaf0f8ff839f9edd1ca82..ae13c96b48d3553ac83caf838c0ed47b8ec25c74 100644
(file)
--- a/
drivers/infiniband/ulp/srp/ib_srp.c
+++ b/
drivers/infiniband/ulp/srp/ib_srp.c
@@
-3263,7
+3263,7
@@
static ssize_t srp_create_target(struct device *dev,
srp_free_ch_ib(target, ch);
srp_free_req_data(target, ch);
target->ch_count = ch - target->ch;
-
break
;
+
goto connected
;
}
}
@@
-3273,6
+3273,7
@@
static ssize_t srp_create_target(struct device *dev,
node_idx++;
}
+connected:
target->scsi_host->nr_hw_queues = target->ch_count;
ret = srp_add_target(host, target);