From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oliver Neukum Subject: Re: [PATCH] usb: uas: fix usb subsystem hang after power off hub port Date: Tue, 12 Mar 2019 16:37:27 +0100 Message-ID: <1552405047.21557.7.camel@suse.com> References: <1552063928.29776.2.camel@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org To: Kento.A.Kobayashi@sony.com, gregkh@linuxfoundation.org, stern@rowland.harvard.edu Cc: usb-storage@lists.one-eyed-alien.net, Jacky.Cao@sony.com, Kan.Iibuchi@sony.com, No.Tanaka@sony.com, linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org, linux-usb@vger.kernel.org List-Id: linux-scsi@vger.kernel.org On Mo, 2019-03-11 at 08:36 +0000, Kento.A.Kobayashi@sony.com wrote: > Hi, > > > no I am sorry, that is an assumption you just cannot make. > > Anything can trigger a reset. That being SCSI is the common case certainly, but not the only case. And in those cases we cannot depend on upper layers doing the right thing, if we just ignore an error. > > While we investigate this issue, we debugged and found usb_reset_and_verify_device will return -NODEV before enter post_reset operation. Yes, this can happen. > And the return value(-ENODEV) will be returned to error handler. > uas_eh_device_reset_handler->usb_reset_device -> usb_reset_and_verify_device (return -ENODEV) Then I wrote that commit message that we think even if we ignore "ENODEV" in post reset to avoid hang issue but the error will also be reported to error handler. > #If ignore an error and the error will not be reported then it is not good. Well, what do we do now? Are you saying that the state model SCSI is using is wrong? > Additional information about usb-storage driver(usb/storage/usb.c) in usb_stor_post_reset() function, it always return 0 that means rebind will not be execute and this issue doesn't happen. I am afraid this is only partially correct. The device descriptors can still fail to match. Regards Oliver From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: usb: uas: fix usb subsystem hang after power off hub port From: Oliver Neukum Message-Id: <1552405047.21557.7.camel@suse.com> Date: Tue, 12 Mar 2019 16:37:27 +0100 To: Kento.A.Kobayashi@sony.com, gregkh@linuxfoundation.org, stern@rowland.harvard.edu Cc: usb-storage@lists.one-eyed-alien.net, Jacky.Cao@sony.com, Kan.Iibuchi@sony.com, No.Tanaka@sony.com, linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org, linux-usb@vger.kernel.org List-ID: T24gTW8sIDIwMTktMDMtMTEgYXQgMDg6MzYgKzAwMDAsIEtlbnRvLkEuS29iYXlhc2hpQHNvbnku Y29tIHdyb3RlOgo+IEhpLAo+IAo+ID4gbm8gSSBhbSBzb3JyeSwgdGhhdCBpcyBhbiBhc3N1bXB0 aW9uIHlvdSBqdXN0IGNhbm5vdCBtYWtlLgo+ID4gQW55dGhpbmcgY2FuIHRyaWdnZXIgYSByZXNl dC4gVGhhdCBiZWluZyBTQ1NJIGlzIHRoZSBjb21tb24gY2FzZSBjZXJ0YWlubHksIGJ1dCBub3Qg dGhlIG9ubHkgY2FzZS4gQW5kIGluIHRob3NlIGNhc2VzIHdlIGNhbm5vdCBkZXBlbmQgb24gdXBw ZXIgbGF5ZXJzIGRvaW5nIHRoZSByaWdodCB0aGluZywgaWYgd2UganVzdCBpZ25vcmUgYW4gZXJy b3IuCj4gCj4gV2hpbGUgd2UgaW52ZXN0aWdhdGUgdGhpcyBpc3N1ZSwgd2UgZGVidWdnZWQgYW5k IGZvdW5kIHVzYl9yZXNldF9hbmRfdmVyaWZ5X2RldmljZSB3aWxsIHJldHVybiAtTk9ERVYgYmVm b3JlIGVudGVyIHBvc3RfcmVzZXQgb3BlcmF0aW9uLgoKWWVzLCB0aGlzIGNhbiBoYXBwZW4uCgo+ IEFuZCB0aGUgcmV0dXJuIHZhbHVlKC1FTk9ERVYpIHdpbGwgYmUgcmV0dXJuZWQgdG8gZXJyb3Ig aGFuZGxlci4KPiB1YXNfZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXItPnVzYl9yZXNldF9kZXZpY2Ug LT4gdXNiX3Jlc2V0X2FuZF92ZXJpZnlfZGV2aWNlIChyZXR1cm4gLUVOT0RFVikgVGhlbiBJIHdy b3RlIHRoYXQgY29tbWl0IG1lc3NhZ2UgdGhhdCB3ZSB0aGluayBldmVuIGlmIHdlIGlnbm9yZSAi RU5PREVWIiBpbiBwb3N0IHJlc2V0IHRvIGF2b2lkIGhhbmcgaXNzdWUgYnV0IHRoZSBlcnJvciB3 aWxsIGFsc28gYmUgcmVwb3J0ZWQgdG8gZXJyb3IgaGFuZGxlci4KPiAjSWYgaWdub3JlIGFuIGVy cm9yIGFuZCB0aGUgZXJyb3Igd2lsbCBub3QgYmUgcmVwb3J0ZWQgdGhlbiBpdCBpcyBub3QgZ29v ZC4KCldlbGwsIHdoYXQgZG8gd2UgZG8gbm93PyBBcmUgeW91IHNheWluZyB0aGF0IHRoZSBzdGF0 ZSBtb2RlbCBTQ1NJIGlzCnVzaW5nIGlzIHdyb25nPwoKPiBBZGRpdGlvbmFsIGluZm9ybWF0aW9u IGFib3V0IHVzYi1zdG9yYWdlIGRyaXZlcih1c2Ivc3RvcmFnZS91c2IuYykgaW4gdXNiX3N0b3Jf cG9zdF9yZXNldCgpIGZ1bmN0aW9uLCBpdCBhbHdheXMgcmV0dXJuIDAgdGhhdCBtZWFucyByZWJp bmQgd2lsbCBub3QgYmUgZXhlY3V0ZSBhbmQgdGhpcyBpc3N1ZSBkb2Vzbid0IGhhcHBlbi4KCkkg YW0gYWZyYWlkIHRoaXMgaXMgb25seSBwYXJ0aWFsbHkgY29ycmVjdC4gVGhlIGRldmljZSBkZXNj cmlwdG9ycyBjYW4Kc3RpbGwgZmFpbCB0byBtYXRjaC4KCglSZWdhcmRzCgkJT2xpdmVyCg==