Message ID | 56ABF26F.4010509@sandisk.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
(added Nic to CC-list) On 01/29/16 15:14, Bart Van Assche wrote: > Only log an error message if neither the lookup with leading "0x" > nor the lookup without leading "0x" succeeds. > > Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> > Fixes: f246c941549c ("ib_srpt: Convert acl lookup to modern get_initiator_node_acl usage") > Cc: Christoph Hellwig <hch@lst.de> > Cc: Sagi Grimberg <sagig@mellanox.com> > Cc: Nicholas Bellinger <nab@linux-iscsi.org> > --- > drivers/infiniband/ulp/srpt/ib_srpt.c | 17 ++++++----------- > 1 file changed, 6 insertions(+), 11 deletions(-) > > diff --git a/drivers/infiniband/ulp/srpt/ib_srpt.c b/drivers/infiniband/ulp/srpt/ib_srpt.c > index b46e8d7..d892736 100644 > --- a/drivers/infiniband/ulp/srpt/ib_srpt.c > +++ b/drivers/infiniband/ulp/srpt/ib_srpt.c > @@ -2042,7 +2042,6 @@ static int srpt_cm_req_recv(struct ib_cm_id *cm_id, > struct se_node_acl *se_acl; > u32 it_iu_len; > int i, ret = 0; > - unsigned char *p; > > WARN_ON_ONCE(irqs_disabled()); > > @@ -2200,7 +2199,6 @@ static int srpt_cm_req_recv(struct ib_cm_id *cm_id, > be64_to_cpu(*(__be64 *)(ch->i_port_id + 8))); > > pr_debug("registering session %s\n", ch->sess_name); > - p = &ch->sess_name[0]; > > ch->sess = transport_init_session(TARGET_PROT_NORMAL); > if (IS_ERR(ch->sess)) { > @@ -2210,18 +2208,15 @@ static int srpt_cm_req_recv(struct ib_cm_id *cm_id, > goto destroy_ib; > } > > -try_again: > - se_acl = core_tpg_get_initiator_node_acl(&sport->port_tpg_1, p); > + se_acl = core_tpg_get_initiator_node_acl(&sport->port_tpg_1, > + &ch->sess_name[0]); > + /* If no match, retry without leading '0x'. */ > + if (!se_acl) > + se_acl = core_tpg_get_initiator_node_acl(&sport->port_tpg_1, > + &ch->sess_name[2]); > if (!se_acl) { > pr_info("Rejected login because no ACL has been" > " configured yet for initiator %s.\n", ch->sess_name); > - /* > - * XXX: Hack to retry of ch->i_port_id without leading '0x' > - */ > - if (p == &ch->sess_name[0]) { > - p += 2; > - goto try_again; > - } > rej->reason = cpu_to_be32( > SRP_LOGIN_REJ_CHANNEL_LIMIT_REACHED); > transport_free_session(ch->sess); > -- 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
On Fri, Jan 29, 2016 at 03:14:55PM -0800, Bart Van Assche wrote: > Only log an error message if neither the lookup with leading "0x" > nor the lookup without leading "0x" succeeds. Looks fine to me, but this is going to conflict with some work in Nic's tree. Maybe it's better to ?kip this one for now? -- 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
TG9va3MgZmluZSB0byBtZS4NCg0KUmV2aWV3ZWQtYnk6IEFsZXggRXN0cmluIDxhbGV4LmVzdHJp bkBpbnRlbC5jb20+DQoNCj4gT25seSBsb2cgYW4gZXJyb3IgbWVzc2FnZSBpZiBuZWl0aGVyIHRo ZSBsb29rdXAgd2l0aCBsZWFkaW5nICIweCINCj4gbm9yIHRoZSBsb29rdXAgd2l0aG91dCBsZWFk aW5nICIweCIgc3VjY2VlZHMuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBCYXJ0IFZhbiBBc3NjaGUg PGJhcnQudmFuYXNzY2hlQHNhbmRpc2suY29tPg0KPiBGaXhlczogZjI0NmM5NDE1NDljICgiaWJf c3JwdDogQ29udmVydCBhY2wgbG9va3VwIHRvIG1vZGVybiBnZXRfaW5pdGlhdG9yX25vZGVfYWNs DQo+IHVzYWdlIikNCj4gQ2M6IENocmlzdG9waCBIZWxsd2lnIDxoY2hAbHN0LmRlPg0KPiBDYzog U2FnaSBHcmltYmVyZyA8c2FnaWdAbWVsbGFub3guY29tPg0KPiBDYzogTmljaG9sYXMgQmVsbGlu Z2VyIDxuYWJAbGludXgtaXNjc2kub3JnPg0KPiAtLS0NCj4gIGRyaXZlcnMvaW5maW5pYmFuZC91 bHAvc3JwdC9pYl9zcnB0LmMgfCAxNyArKysrKystLS0tLS0tLS0tLQ0KPiAgMSBmaWxlIGNoYW5n ZWQsIDYgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9pbmZpbmliYW5kL3VscC9zcnB0L2liX3NycHQuYw0KPiBiL2RyaXZlcnMvaW5maW5p YmFuZC91bHAvc3JwdC9pYl9zcnB0LmMNCj4gaW5kZXggYjQ2ZThkNy4uZDg5MjczNiAxMDA2NDQN Cj4gLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9zcnB0L2liX3NycHQuYw0KPiArKysgYi9k cml2ZXJzL2luZmluaWJhbmQvdWxwL3NycHQvaWJfc3JwdC5jDQo+IEBAIC0yMDQyLDcgKzIwNDIs NiBAQCBzdGF0aWMgaW50IHNycHRfY21fcmVxX3JlY3Yoc3RydWN0IGliX2NtX2lkICpjbV9pZCwN Cj4gIAlzdHJ1Y3Qgc2Vfbm9kZV9hY2wgKnNlX2FjbDsNCj4gIAl1MzIgaXRfaXVfbGVuOw0KPiAg CWludCBpLCByZXQgPSAwOw0KPiAtCXVuc2lnbmVkIGNoYXIgKnA7DQo+IA0KPiAgCVdBUk5fT05f T05DRShpcnFzX2Rpc2FibGVkKCkpOw0KPiANCj4gQEAgLTIyMDAsNyArMjE5OSw2IEBAIHN0YXRp YyBpbnQgc3JwdF9jbV9yZXFfcmVjdihzdHJ1Y3QgaWJfY21faWQgKmNtX2lkLA0KPiAgCQkJYmU2 NF90b19jcHUoKihfX2JlNjQgKikoY2gtPmlfcG9ydF9pZCArIDgpKSk7DQo+IA0KPiAgCXByX2Rl YnVnKCJyZWdpc3RlcmluZyBzZXNzaW9uICVzXG4iLCBjaC0+c2Vzc19uYW1lKTsNCj4gLQlwID0g JmNoLT5zZXNzX25hbWVbMF07DQo+IA0KPiAgCWNoLT5zZXNzID0gdHJhbnNwb3J0X2luaXRfc2Vz c2lvbihUQVJHRVRfUFJPVF9OT1JNQUwpOw0KPiAgCWlmIChJU19FUlIoY2gtPnNlc3MpKSB7DQo+ IEBAIC0yMjEwLDE4ICsyMjA4LDE1IEBAIHN0YXRpYyBpbnQgc3JwdF9jbV9yZXFfcmVjdihzdHJ1 Y3QgaWJfY21faWQgKmNtX2lkLA0KPiAgCQlnb3RvIGRlc3Ryb3lfaWI7DQo+ICAJfQ0KPiANCj4g LXRyeV9hZ2FpbjoNCj4gLQlzZV9hY2wgPSBjb3JlX3RwZ19nZXRfaW5pdGlhdG9yX25vZGVfYWNs KCZzcG9ydC0+cG9ydF90cGdfMSwgcCk7DQo+ICsJc2VfYWNsID0gY29yZV90cGdfZ2V0X2luaXRp YXRvcl9ub2RlX2FjbCgmc3BvcnQtPnBvcnRfdHBnXzEsDQo+ICsJCQkJCQkgJmNoLT5zZXNzX25h bWVbMF0pOw0KPiArCS8qIElmIG5vIG1hdGNoLCByZXRyeSB3aXRob3V0IGxlYWRpbmcgJzB4Jy4g Ki8NCj4gKwlpZiAoIXNlX2FjbCkNCj4gKwkJc2VfYWNsID0gY29yZV90cGdfZ2V0X2luaXRpYXRv cl9ub2RlX2FjbCgmc3BvcnQtPnBvcnRfdHBnXzEsDQo+ICsJCQkJCQkJICZjaC0+c2Vzc19uYW1l WzJdKTsNCj4gIAlpZiAoIXNlX2FjbCkgew0KPiAgCQlwcl9pbmZvKCJSZWplY3RlZCBsb2dpbiBi ZWNhdXNlIG5vIEFDTCBoYXMgYmVlbiINCj4gIAkJCSIgY29uZmlndXJlZCB5ZXQgZm9yIGluaXRp YXRvciAlcy5cbiIsIGNoLT5zZXNzX25hbWUpOw0KPiAtCQkvKg0KPiAtCQkgKiBYWFg6IEhhY2sg dG8gcmV0cnkgb2YgY2gtPmlfcG9ydF9pZCB3aXRob3V0IGxlYWRpbmcgJzB4Jw0KPiAtCQkgKi8N Cj4gLQkJaWYgKHAgPT0gJmNoLT5zZXNzX25hbWVbMF0pIHsNCj4gLQkJCXAgKz0gMjsNCj4gLQkJ CWdvdG8gdHJ5X2FnYWluOw0KPiAtCQl9DQo+ICAJCXJlai0+cmVhc29uID0gY3B1X3RvX2JlMzIo DQo+ICAJCQkJU1JQX0xPR0lOX1JFSl9DSEFOTkVMX0xJTUlUX1JFQUNIRUQpOw0KPiAgCQl0cmFu c3BvcnRfZnJlZV9zZXNzaW9uKGNoLT5zZXNzKTsNCj4gLS0NCj4gMi43LjANCg0K -- 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 b46e8d7..d892736 100644 --- a/drivers/infiniband/ulp/srpt/ib_srpt.c +++ b/drivers/infiniband/ulp/srpt/ib_srpt.c @@ -2042,7 +2042,6 @@ static int srpt_cm_req_recv(struct ib_cm_id *cm_id, struct se_node_acl *se_acl; u32 it_iu_len; int i, ret = 0; - unsigned char *p; WARN_ON_ONCE(irqs_disabled()); @@ -2200,7 +2199,6 @@ static int srpt_cm_req_recv(struct ib_cm_id *cm_id, be64_to_cpu(*(__be64 *)(ch->i_port_id + 8))); pr_debug("registering session %s\n", ch->sess_name); - p = &ch->sess_name[0]; ch->sess = transport_init_session(TARGET_PROT_NORMAL); if (IS_ERR(ch->sess)) { @@ -2210,18 +2208,15 @@ static int srpt_cm_req_recv(struct ib_cm_id *cm_id, goto destroy_ib; } -try_again: - se_acl = core_tpg_get_initiator_node_acl(&sport->port_tpg_1, p); + se_acl = core_tpg_get_initiator_node_acl(&sport->port_tpg_1, + &ch->sess_name[0]); + /* If no match, retry without leading '0x'. */ + if (!se_acl) + se_acl = core_tpg_get_initiator_node_acl(&sport->port_tpg_1, + &ch->sess_name[2]); if (!se_acl) { pr_info("Rejected login because no ACL has been" " configured yet for initiator %s.\n", ch->sess_name); - /* - * XXX: Hack to retry of ch->i_port_id without leading '0x' - */ - if (p == &ch->sess_name[0]) { - p += 2; - goto try_again; - } rej->reason = cpu_to_be32( SRP_LOGIN_REJ_CHANNEL_LIMIT_REACHED); transport_free_session(ch->sess);
Only log an error message if neither the lookup with leading "0x" nor the lookup without leading "0x" succeeds. Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> Fixes: f246c941549c ("ib_srpt: Convert acl lookup to modern get_initiator_node_acl usage") Cc: Christoph Hellwig <hch@lst.de> Cc: Sagi Grimberg <sagig@mellanox.com> Cc: Nicholas Bellinger <nab@linux-iscsi.org> --- drivers/infiniband/ulp/srpt/ib_srpt.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-)