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: [2/4] libertas_tf: use irqsave() in USB's complete callback From: Kalle Valo Message-Id: <20180627161357.103F360791@smtp.codeaurora.org> Date: Wed, 27 Jun 2018 16:13:57 +0000 (UTC) To: Sebastian Andrzej Siewior Cc: netdev@vger.kernel.org, linux-usb@vger.kernel.org, tglx@linutronix.de, "David S. Miller" , linux-wireless@vger.kernel.org List-ID: U2ViYXN0aWFuIEFuZHJ6ZWogU2lld2lvciA8YmlnZWFzeUBsaW51dHJvbml4LmRlPiB3cm90ZToK Cj4gVGhlIFVTQiBjb21wbGV0aW9uIGNhbGxiYWNrIGRvZXMgbm90IGRpc2FibGUgaW50ZXJydXB0 cyB3aGlsZSBhY3F1aXJpbmcKPiB0aGUgbG9jay4gV2Ugd2FudCB0byByZW1vdmUgdGhlIGxvY2Fs X2lycV9kaXNhYmxlKCkgaW52b2NhdGlvbiBmcm9tCj4gX191c2JfaGNkX2dpdmViYWNrX3VyYigp IGFuZCB0aGVyZWZvcmUgaXQgaXMgcmVxdWlyZWQgZm9yIHRoZSBjYWxsYmFjawo+IGhhbmRsZXIg dG8gZGlzYWJsZSB0aGUgaW50ZXJydXB0cyB3aGlsZSBhY3F1aXJpbmcgdGhlIGxvY2suCj4gVGhl IGNhbGxiYWNrIG1heSBiZSBpbnZva2VkIGVpdGhlciBpbiBJUlEgb3IgQkggY29udGV4dCBkZXBl bmRpbmcgb24gdGhlCj4gVVNCIGhvc3QgY29udHJvbGxlci4KPiBVc2UgdGhlIF9pcnFzYXZlKCkg dmFyaWFudCBvZiB0aGUgbG9ja2luZyBwcmltaXRpdmVzLgo+IAo+IEkgYW0gcmVtb3ZpbmcgdGhl Cj4gCUJVR19PTighaW5faW50ZXJydXB0KCkpOwo+IAo+IGNoZWNrIGJlY2F1c2UgaXQgc2VydmVz IG5vIHB1cnBvc2UuIFJ1bm5pbmcgdGhlIGNvbXBsZXRpb24gY2FsbGJhY2sgaW4KPiBCSCBjb250 ZXh0IG1ha2VzIGluX2ludGVycnVwdCgpIHN0aWxsIHJldHVybiB0cnVlIGJ1dCB0aGUgaW50ZXJy dXB0cwo+IGNvdWxkIGJlIGVuYWJsZWQuIFRoZSBpbXBvcnRhbnQgcGFydCBpcyB0aGF0IC0+ZHJp dmVyX2xvY2sgaXMgYWNxdWlyZWQKPiB3aXRoIGRpc2FibGVkIGludGVycnVwdHMgd2hpY2ggaXMg dGhlIGNhc2Ugbm93Lgo+IAo+IENjOiBLYWxsZSBWYWxvIDxrdmFsb0Bjb2RlYXVyb3JhLm9yZz4K PiBDYzogIkRhdmlkIFMuIE1pbGxlciIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Cj4gQ2M6IGxpbnV4 LXdpcmVsZXNzQHZnZXIua2VybmVsLm9yZwo+IFNpZ25lZC1vZmYtYnk6IFNlYmFzdGlhbiBBbmRy emVqIFNpZXdpb3IgPGJpZ2Vhc3lAbGludXRyb25peC5kZT4KCjMgcGF0Y2hlcyBhcHBsaWVkIHRv IHdpcmVsZXNzLWRyaXZlcnMtbmV4dC5naXQsIHRoYW5rcy4KCmZjNzUxMjJmYWJiNSBsaWJlcnRh c190ZjogdXNlIGlycXNhdmUoKSBpbiBVU0IncyBjb21wbGV0ZSBjYWxsYmFjawphMzEyOGZlZWY2 ZDUgbGliZXJ0YXM6IHVzZSBpcnFzYXZlKCkgaW4gVVNCJ3MgY29tcGxldGUgY2FsbGJhY2sKODE0 NTRiODQwNWYyIHpkMTIxMXJ3OiB1c2UgaXJxc2F2ZSgpIGluIFVTQidzIGNvbXBsZXRlIGNhbGxi YWNrCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from smtp.codeaurora.org ([198.145.29.96]:57730 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965650AbeF0QN5 (ORCPT ); Wed, 27 Jun 2018 12:13:57 -0400 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Subject: Re: [2/4] libertas_tf: use irqsave() in USB's complete callback From: Kalle Valo In-Reply-To: <20180620193648.25136-3-bigeasy@linutronix.de> References: <20180620193648.25136-3-bigeasy@linutronix.de> To: Sebastian Andrzej Siewior Cc: netdev@vger.kernel.org, linux-usb@vger.kernel.org, tglx@linutronix.de, "David S. Miller" , linux-wireless@vger.kernel.org, Sebastian Andrzej Siewior Message-Id: <20180627161357.103F360791@smtp.codeaurora.org> (sfid-20180627_181413_404072_293079FA) Date: Wed, 27 Jun 2018 16:13:57 +0000 (UTC) Sender: linux-wireless-owner@vger.kernel.org List-ID: Sebastian Andrzej Siewior wrote: > The USB completion callback does not disable interrupts while acquiring > the lock. We want to remove the local_irq_disable() invocation from > __usb_hcd_giveback_urb() and therefore it is required for the callback > handler to disable the interrupts while acquiring the lock. > The callback may be invoked either in IRQ or BH context depending on the > USB host controller. > Use the _irqsave() variant of the locking primitives. > > I am removing the > BUG_ON(!in_interrupt()); > > check because it serves no purpose. Running the completion callback in > BH context makes in_interrupt() still return true but the interrupts > could be enabled. The important part is that ->driver_lock is acquired > with disabled interrupts which is the case now. > > Cc: Kalle Valo > Cc: "David S. Miller" > Cc: linux-wireless@vger.kernel.org > Signed-off-by: Sebastian Andrzej Siewior 3 patches applied to wireless-drivers-next.git, thanks. fc75122fabb5 libertas_tf: use irqsave() in USB's complete callback a3128feef6d5 libertas: use irqsave() in USB's complete callback 81454b8405f2 zd1211rw: use irqsave() in USB's complete callback -- https://patchwork.kernel.org/patch/10478609/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches