From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from iolanthe.rowland.org ([192.131.102.54]:57442 "HELO iolanthe.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1728187AbeIJTFy (ORCPT ); Mon, 10 Sep 2018 15:05:54 -0400 Date: Mon, 10 Sep 2018 10:11:36 -0400 (EDT) From: Alan Stern To: Sebastian Andrzej Siewior cc: linux-media@vger.kernel.org, , Mauro Carvalho Chehab , Greg Kroah-Hartman , Subject: Re: [PATCH 3/3] usb: core: remove local_irq_save() around ->complete() handler In-Reply-To: <20180910092000.14693-4-bigeasy@linutronix.de> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-media-owner@vger.kernel.org List-ID: On Mon, 10 Sep 2018, Sebastian Andrzej Siewior wrote: > The core disabled interrupts before invocation the ->complete handler > because the handler might have expected that interrupts are disabled. > > All handlers were audited and use proper locking now. With it, the core > code no longer needs to disable interrupts before invoking the > ->complete handler. > Remove local_irq_save() statement before invoking the ->complete > handler. > > Cc: Alan Stern > Signed-off-by: Sebastian Andrzej Siewior > --- > drivers/usb/core/hcd.c | 13 ------------- > 1 file changed, 13 deletions(-) > > diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c > index 1c21955fe7c00..f985d2303095c 100644 > --- a/drivers/usb/core/hcd.c > +++ b/drivers/usb/core/hcd.c > @@ -1755,20 +1755,7 @@ static void __usb_hcd_giveback_urb(struct urb *urb) > > /* pass ownership to the completion handler */ > urb->status = status; > - > - /* > - * We disable local IRQs here avoid possible deadlock because > - * drivers may call spin_lock() to hold lock which might be > - * acquired in one hard interrupt handler. > - * > - * The local_irq_save()/local_irq_restore() around complete() > - * will be removed if current USB drivers have been cleaned up > - * and no one may trigger the above deadlock situation when > - * running complete() in tasklet. > - */ > - local_irq_save(flags); > urb->complete(urb); > - local_irq_restore(flags); > > usb_anchor_resume_wakeups(anchor); > atomic_dec(&urb->use_count); Acked-by: Alan Stern 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: [3/3] usb: core: remove local_irq_save() around ->complete() handler From: Alan Stern Message-Id: Date: Mon, 10 Sep 2018 10:11:36 -0400 (EDT) To: Sebastian Andrzej Siewior Cc: linux-media@vger.kernel.org, linux-usb@vger.kernel.org, Mauro Carvalho Chehab , Greg Kroah-Hartman , tglx@linutronix.de List-ID: T24gTW9uLCAxMCBTZXAgMjAxOCwgU2ViYXN0aWFuIEFuZHJ6ZWogU2lld2lvciB3cm90ZToKCj4g VGhlIGNvcmUgZGlzYWJsZWQgaW50ZXJydXB0cyBiZWZvcmUgaW52b2NhdGlvbiB0aGUgLT5jb21w bGV0ZSBoYW5kbGVyCj4gYmVjYXVzZSB0aGUgaGFuZGxlciBtaWdodCBoYXZlIGV4cGVjdGVkIHRo YXQgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQuCj4gCj4gQWxsIGhhbmRsZXJzIHdlcmUgYXVkaXRl ZCBhbmQgdXNlIHByb3BlciBsb2NraW5nIG5vdy4gV2l0aCBpdCwgdGhlIGNvcmUKPiBjb2RlIG5v IGxvbmdlciBuZWVkcyB0byBkaXNhYmxlIGludGVycnVwdHMgYmVmb3JlIGludm9raW5nIHRoZQo+ IC0+Y29tcGxldGUgaGFuZGxlci4KPiBSZW1vdmUgbG9jYWxfaXJxX3NhdmUoKSBzdGF0ZW1lbnQg YmVmb3JlIGludm9raW5nIHRoZSAtPmNvbXBsZXRlCj4gaGFuZGxlci4KPiAKPiBDYzogQWxhbiBT dGVybiA8c3Rlcm5Acm93bGFuZC5oYXJ2YXJkLmVkdT4KPiBTaWduZWQtb2ZmLWJ5OiBTZWJhc3Rp YW4gQW5kcnplaiBTaWV3aW9yIDxiaWdlYXN5QGxpbnV0cm9uaXguZGU+Cj4gLS0tCj4gIGRyaXZl cnMvdXNiL2NvcmUvaGNkLmMgfCAxMyAtLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAx MyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29yZS9oY2QuYyBi L2RyaXZlcnMvdXNiL2NvcmUvaGNkLmMKPiBpbmRleCAxYzIxOTU1ZmU3YzAwLi5mOTg1ZDIzMDMw OTVjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvaGNkLmMKPiArKysgYi9kcml2ZXJz L3VzYi9jb3JlL2hjZC5jCj4gQEAgLTE3NTUsMjAgKzE3NTUsNyBAQCBzdGF0aWMgdm9pZCBfX3Vz Yl9oY2RfZ2l2ZWJhY2tfdXJiKHN0cnVjdCB1cmIgKnVyYikKPiAgCj4gIAkvKiBwYXNzIG93bmVy c2hpcCB0byB0aGUgY29tcGxldGlvbiBoYW5kbGVyICovCj4gIAl1cmItPnN0YXR1cyA9IHN0YXR1 czsKPiAtCj4gLQkvKgo+IC0JICogV2UgZGlzYWJsZSBsb2NhbCBJUlFzIGhlcmUgYXZvaWQgcG9z c2libGUgZGVhZGxvY2sgYmVjYXVzZQo+IC0JICogZHJpdmVycyBtYXkgY2FsbCBzcGluX2xvY2so KSB0byBob2xkIGxvY2sgd2hpY2ggbWlnaHQgYmUKPiAtCSAqIGFjcXVpcmVkIGluIG9uZSBoYXJk IGludGVycnVwdCBoYW5kbGVyLgo+IC0JICoKPiAtCSAqIFRoZSBsb2NhbF9pcnFfc2F2ZSgpL2xv Y2FsX2lycV9yZXN0b3JlKCkgYXJvdW5kIGNvbXBsZXRlKCkKPiAtCSAqIHdpbGwgYmUgcmVtb3Zl ZCBpZiBjdXJyZW50IFVTQiBkcml2ZXJzIGhhdmUgYmVlbiBjbGVhbmVkIHVwCj4gLQkgKiBhbmQg bm8gb25lIG1heSB0cmlnZ2VyIHRoZSBhYm92ZSBkZWFkbG9jayBzaXR1YXRpb24gd2hlbgo+IC0J ICogcnVubmluZyBjb21wbGV0ZSgpIGluIHRhc2tsZXQuCj4gLQkgKi8KPiAtCWxvY2FsX2lycV9z YXZlKGZsYWdzKTsKPiAgCXVyYi0+Y29tcGxldGUodXJiKTsKPiAtCWxvY2FsX2lycV9yZXN0b3Jl KGZsYWdzKTsKPiAgCj4gIAl1c2JfYW5jaG9yX3Jlc3VtZV93YWtldXBzKGFuY2hvcik7Cj4gIAlh dG9taWNfZGVjKCZ1cmItPnVzZV9jb3VudCk7CgpBY2tlZC1ieTogQWxhbiBTdGVybiA8c3Rlcm5A cm93bGFuZC5oYXJ2YXJkLmVkdT4K