Message ID | 56ABF296.7040009@sandisk.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Looks good,
Reviewed-by: Christoph Hellwig <hch@lst.de>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
TG9va3MgZ29vZC4NCg0KUmV2aWV3ZWQtYnk6IEFsZXggRXN0cmluIDxhbGV4LmVzdHJpbkBpbnRl bC5jb20+DQoNCj4gVGhlIHRhcmdldCBjb3JlIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlIGNhbGxl ZCBpZiB0YXJnZXRfc3VibWl0X2NtZCgpDQo+IGZhaWxzIGlzIHRhcmdldF9wdXRfc2Vzc19jbWQo KS4gQWRkaXRpb25hbGx5LCBjaGFuZ2UgdGhlIHJldHVybiB0eXBlDQo+IG9mIHNycHRfaGFuZGxl X2NtZCgpIGZyb20gaW50IGludG8gdm9pZC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEJhcnQgVmFu IEFzc2NoZSA8YmFydC52YW5hc3NjaGVAc2FuZGlzay5jb20+DQo+IENjOiBDaHJpc3RvcGggSGVs bHdpZyA8aGNoQGxzdC5kZT4NCj4gQ2M6IFNhZ2kgR3JpbWJlcmcgPHNhZ2lnQG1lbGxhbm94LmNv bT4NCj4gLS0tDQo+ICBkcml2ZXJzL2luZmluaWJhbmQvdWxwL3NycHQvaWJfc3JwdC5jIHwgMjQg KysrKysrKysrKysrLS0tLS0tLS0tLS0tDQo+ICAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9u cygrKSwgMTIgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmli YW5kL3VscC9zcnB0L2liX3NycHQuYw0KPiBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvc3JwdC9p Yl9zcnB0LmMNCj4gaW5kZXggZWI2ZjgxMi4uOGFiNDMxZiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVy cy9pbmZpbmliYW5kL3VscC9zcnB0L2liX3NycHQuYw0KPiArKysgYi9kcml2ZXJzL2luZmluaWJh bmQvdWxwL3NycHQvaWJfc3JwdC5jDQo+IEBAIC05MSw2ICs5MSw3IEBAIE1PRFVMRV9QQVJNX0RF U0Moc3JwdF9zZXJ2aWNlX2d1aWQsDQo+ICAJCSAiIGluc3RlYWQgb2YgdXNpbmcgdGhlIG5vZGVf Z3VpZCBvZiB0aGUgZmlyc3QgSENBLiIpOw0KPiANCj4gIHN0YXRpYyBzdHJ1Y3QgaWJfY2xpZW50 IHNycHRfY2xpZW50Ow0KPiArc3RhdGljIHZvaWQgc3JwdF9yZWxlYXNlX2NtZChzdHJ1Y3Qgc2Vf Y21kICpzZV9jbWQpOw0KPiAgc3RhdGljIHZvaWQgc3JwdF9yZWxlYXNlX2NoYW5uZWwoc3RydWN0 IHNycHRfcmRtYV9jaCAqY2gpOw0KPiAgc3RhdGljIGludCBzcnB0X3F1ZXVlX3N0YXR1cyhzdHJ1 Y3Qgc2VfY21kICpjbWQpOw0KPiAgc3RhdGljIHZvaWQgc3JwdF9yZWN2X2RvbmUoc3RydWN0IGli X2NxICpjcSwgc3RydWN0IGliX3djICp3Yyk7DQo+IEBAIC0xNDkyLDE1ICsxNDkzLDE0IEBAIHN0 YXRpYyBpbnQgc3JwdF9jaGVja19zdG9wX2ZyZWUoc3RydWN0IHNlX2NtZCAqY21kKQ0KPiAgLyoq DQo+ICAgKiBzcnB0X2hhbmRsZV9jbWQoKSAtIFByb2Nlc3MgU1JQX0NNRC4NCj4gICAqLw0KPiAt c3RhdGljIGludCBzcnB0X2hhbmRsZV9jbWQoc3RydWN0IHNycHRfcmRtYV9jaCAqY2gsDQo+IC0J CQkgICBzdHJ1Y3Qgc3JwdF9yZWN2X2lvY3R4ICpyZWN2X2lvY3R4LA0KPiAtCQkJICAgc3RydWN0 IHNycHRfc2VuZF9pb2N0eCAqc2VuZF9pb2N0eCkNCj4gK3N0YXRpYyB2b2lkIHNycHRfaGFuZGxl X2NtZChzdHJ1Y3Qgc3JwdF9yZG1hX2NoICpjaCwNCj4gKwkJCSAgICBzdHJ1Y3Qgc3JwdF9yZWN2 X2lvY3R4ICpyZWN2X2lvY3R4LA0KPiArCQkJICAgIHN0cnVjdCBzcnB0X3NlbmRfaW9jdHggKnNl bmRfaW9jdHgpDQo+ICB7DQo+ICAJc3RydWN0IHNlX2NtZCAqY21kOw0KPiAgCXN0cnVjdCBzcnBf Y21kICpzcnBfY21kOw0KPiAgCXU2NCBkYXRhX2xlbjsNCj4gIAllbnVtIGRtYV9kYXRhX2RpcmVj dGlvbiBkaXI7DQo+IC0Jc2Vuc2VfcmVhc29uX3QgcmV0Ow0KPiAgCWludCByYzsNCj4gDQo+ICAJ QlVHX09OKCFzZW5kX2lvY3R4KTsNCj4gQEAgLTE1MjgsOCArMTUyOCw3IEBAIHN0YXRpYyBpbnQg c3JwdF9oYW5kbGVfY21kKHN0cnVjdCBzcnB0X3JkbWFfY2ggKmNoLA0KPiAgCWlmIChzcnB0X2dl dF9kZXNjX3RibChzZW5kX2lvY3R4LCBzcnBfY21kLCAmZGlyLCAmZGF0YV9sZW4pKSB7DQo+ICAJ CXByX2VycigiMHglbGx4OiBwYXJzaW5nIFNSUCBkZXNjcmlwdG9yIHRhYmxlIGZhaWxlZC5cbiIs DQo+ICAJCSAgICAgICBzcnBfY21kLT50YWcpOw0KPiAtCQlyZXQgPSBUQ01fSU5WQUxJRF9DREJf RklFTEQ7DQo+IC0JCWdvdG8gc2VuZF9zZW5zZTsNCj4gKwkJZ290byByZWxlYXNlX2lvY3R4Ow0K PiAgCX0NCj4gDQo+ICAJcmMgPSB0YXJnZXRfc3VibWl0X2NtZChjbWQsIGNoLT5zZXNzLCBzcnBf Y21kLT5jZGIsDQo+IEBAIC0xNTM3LDE0ICsxNTM2LDE1IEBAIHN0YXRpYyBpbnQgc3JwdF9oYW5k bGVfY21kKHN0cnVjdCBzcnB0X3JkbWFfY2ggKmNoLA0KPiAgCQkJICAgICAgIHNjc2lsdW5fdG9f aW50KCZzcnBfY21kLT5sdW4pLCBkYXRhX2xlbiwNCj4gIAkJCSAgICAgICBUQ01fU0lNUExFX1RB RywgZGlyLCBUQVJHRVRfU0NGX0FDS19LUkVGKTsNCj4gIAlpZiAocmMgIT0gMCkgew0KPiAtCQly ZXQgPSBUQ01fTE9HSUNBTF9VTklUX0NPTU1VTklDQVRJT05fRkFJTFVSRTsNCj4gLQkJZ290byBz ZW5kX3NlbnNlOw0KPiArCQlwcl9kZWJ1ZygidGFyZ2V0X3N1Ym1pdF9jbWQoKSByZXR1cm5lZCAl ZCBmb3IgdGFnICUjbGx4XG4iLCByYywNCj4gKwkJCSBzcnBfY21kLT50YWcpOw0KPiArCQlnb3Rv IHJlbGVhc2VfaW9jdHg7DQo+ICAJfQ0KPiAtCXJldHVybiAwOw0KPiArCXJldHVybjsNCj4gDQo+ IC1zZW5kX3NlbnNlOg0KPiAtCXRyYW5zcG9ydF9zZW5kX2NoZWNrX2NvbmRpdGlvbl9hbmRfc2Vu c2UoY21kLCByZXQsIDApOw0KPiAtCXJldHVybiAtMTsNCj4gK3JlbGVhc2VfaW9jdHg6DQo+ICsJ c2VuZF9pb2N0eC0+c3RhdGUgPSBTUlBUX1NUQVRFX0RPTkU7DQo+ICsJc3JwdF9yZWxlYXNlX2Nt ZChjbWQpOw0KPiAgfQ0KPiANCj4gIHN0YXRpYyBpbnQgc3JwX3Rtcl90b190Y20oaW50IGZuKQ0K PiAtLQ0KPiAyLjcuMA0KPiANCj4gLS0NCj4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6 IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4LXJkbWEiIGluDQo+IHRoZSBib2R5IG9m IGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnDQo+IE1vcmUgbWFqb3Jkb21v IGluZm8gYXQgIGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbA0K -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/infiniband/ulp/srpt/ib_srpt.c b/drivers/infiniband/ulp/srpt/ib_srpt.c index eb6f812..8ab431f 100644 --- a/drivers/infiniband/ulp/srpt/ib_srpt.c +++ b/drivers/infiniband/ulp/srpt/ib_srpt.c @@ -91,6 +91,7 @@ MODULE_PARM_DESC(srpt_service_guid, " instead of using the node_guid of the first HCA."); static struct ib_client srpt_client; +static void srpt_release_cmd(struct se_cmd *se_cmd); static void srpt_release_channel(struct srpt_rdma_ch *ch); static int srpt_queue_status(struct se_cmd *cmd); static void srpt_recv_done(struct ib_cq *cq, struct ib_wc *wc); @@ -1492,15 +1493,14 @@ static int srpt_check_stop_free(struct se_cmd *cmd) /** * srpt_handle_cmd() - Process SRP_CMD. */ -static int srpt_handle_cmd(struct srpt_rdma_ch *ch, - struct srpt_recv_ioctx *recv_ioctx, - struct srpt_send_ioctx *send_ioctx) +static void srpt_handle_cmd(struct srpt_rdma_ch *ch, + struct srpt_recv_ioctx *recv_ioctx, + struct srpt_send_ioctx *send_ioctx) { struct se_cmd *cmd; struct srp_cmd *srp_cmd; u64 data_len; enum dma_data_direction dir; - sense_reason_t ret; int rc; BUG_ON(!send_ioctx); @@ -1528,8 +1528,7 @@ static int srpt_handle_cmd(struct srpt_rdma_ch *ch, if (srpt_get_desc_tbl(send_ioctx, srp_cmd, &dir, &data_len)) { pr_err("0x%llx: parsing SRP descriptor table failed.\n", srp_cmd->tag); - ret = TCM_INVALID_CDB_FIELD; - goto send_sense; + goto release_ioctx; } rc = target_submit_cmd(cmd, ch->sess, srp_cmd->cdb, @@ -1537,14 +1536,15 @@ static int srpt_handle_cmd(struct srpt_rdma_ch *ch, scsilun_to_int(&srp_cmd->lun), data_len, TCM_SIMPLE_TAG, dir, TARGET_SCF_ACK_KREF); if (rc != 0) { - ret = TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE; - goto send_sense; + pr_debug("target_submit_cmd() returned %d for tag %#llx\n", rc, + srp_cmd->tag); + goto release_ioctx; } - return 0; + return; -send_sense: - transport_send_check_condition_and_sense(cmd, ret, 0); - return -1; +release_ioctx: + send_ioctx->state = SRPT_STATE_DONE; + srpt_release_cmd(cmd); } static int srp_tmr_to_tcm(int fn)
The target core function that should be called if target_submit_cmd() fails is target_put_sess_cmd(). Additionally, change the return type of srpt_handle_cmd() from int into void. Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Sagi Grimberg <sagig@mellanox.com> --- drivers/infiniband/ulp/srpt/ib_srpt.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-)