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: [REPOST] mfd: dln2: use irqsave() in USB's complete callback From: Johan Hovold Message-Id: <20180702062442.GD9802@localhost> Date: Mon, 2 Jul 2018 08:24:42 +0200 To: Octavian Purdila Cc: Sebastian Andrzej Siewior , lkml , linux-usb@vger.kernel.org, tglx@linutronix.de, Lee Jones List-ID: T24gTW9uLCBKdWwgMDIsIDIwMTggYXQgMTI6MDc6MjJBTSArMDIwMCwgT2N0YXZpYW4gUHVyZGls YSB3cm90ZToKPiBPbiBTdW4sIEp1bCAxLCAyMDE4IGF0IDU6NDEgUE0sIFNlYmFzdGlhbiBBbmRy emVqIFNpZXdpb3IKPiA8YmlnZWFzeUBsaW51dHJvbml4LmRlPiB3cm90ZToKPiA+IFRoZSBVU0Ig Y29tcGxldGlvbiBjYWxsYmFjayBkb2VzIG5vdCBkaXNhYmxlIGludGVycnVwdHMgd2hpbGUgYWNx dWlyaW5nCj4gPiB0aGUgbG9jay4gV2Ugd2FudCB0byByZW1vdmUgdGhlIGxvY2FsX2lycV9kaXNh YmxlKCkgaW52b2NhdGlvbiBmcm9tCj4gPiBfX3VzYl9oY2RfZ2l2ZWJhY2tfdXJiKCkgYW5kIHRo ZXJlZm9yZSBpdCBpcyByZXF1aXJlZCBmb3IgdGhlIGNhbGxiYWNrCj4gPiBoYW5kbGVyIHRvIGRp c2FibGUgdGhlIGludGVycnVwdHMgd2hpbGUgYWNxdWlyaW5nIHRoZSBsb2NrLgo+ID4gVGhlIGNh bGxiYWNrIG1heSBiZSBpbnZva2VkIGVpdGhlciBpbiBJUlEgb3IgQkggY29udGV4dCBkZXBlbmRp bmcgb24gdGhlCj4gPiBVU0IgaG9zdCBjb250cm9sbGVyLgo+ID4gVXNlIHRoZSBfaXJxc2F2ZSgp IHZhcmlhbnQgb2YgdGhlIGxvY2tpbmcgcHJpbWl0aXZlcy4KPiA+Cj4gPiBDYzogTGVlIEpvbmVz IDxsZWUuam9uZXNAbGluYXJvLm9yZz4KPiA+IENjOiBPY3RhdmlhbiBQdXJkaWxhIDxvY3Rhdmlh bi5wdXJkaWxhQGludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IFNlYmFzdGlhbiBBbmRyemVq IFNpZXdpb3IgPGJpZ2Vhc3lAbGludXRyb25peC5kZT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvbWZk L2RsbjIuYyB8IDUgKysrLS0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9kbG4yLmMgYi9k cml2ZXJzL21mZC9kbG4yLmMKPiA+IGluZGV4IDcwNGUxODljYTE2Mi4uMWVmM2M5MmYzMmUwIDEw MDY0NAo+ID4gLS0tIGEvZHJpdmVycy9tZmQvZGxuMi5jCj4gPiArKysgYi9kcml2ZXJzL21mZC9k bG4yLmMKPiA+IEBAIC0xOTQsNiArMTk0LDcgQEAgc3RhdGljIGJvb2wgZGxuMl90cmFuc2Zlcl9j b21wbGV0ZShzdHJ1Y3QgZGxuMl9kZXYgKmRsbjIsIHN0cnVjdCB1cmIgKnVyYiwKPiA+ICAgICAg ICAgc3RydWN0IGRldmljZSAqZGV2ID0gJmRsbjItPmludGVyZmFjZS0+ZGV2Owo+ID4gICAgICAg ICBzdHJ1Y3QgZGxuMl9tb2Rfcnhfc2xvdHMgKnJ4cyA9ICZkbG4yLT5tb2Rfcnhfc2xvdHNbaGFu ZGxlXTsKPiA+ICAgICAgICAgc3RydWN0IGRsbjJfcnhfY29udGV4dCAqcnhjOwo+ID4gKyAgICAg ICB1bnNpZ25lZCBsb25nIGZsYWdzOwo+ID4gICAgICAgICBib29sIHZhbGlkX3Nsb3QgPSBmYWxz ZTsKPiA+Cj4gPiAgICAgICAgIGlmIChyeF9zbG90ID49IERMTjJfTUFYX1JYX1NMT1RTKQo+ID4g QEAgLTIwNiwxMyArMjA3LDEzIEBAIHN0YXRpYyBib29sIGRsbjJfdHJhbnNmZXJfY29tcGxldGUo c3RydWN0IGRsbjJfZGV2ICpkbG4yLCBzdHJ1Y3QgdXJiICp1cmIsCj4gPiAgICAgICAgICAqIGNv bnRleHQgZWxzZXdoZXJlIGluIHRoaXMgZHJpdmVyLiBUaGlzIGZ1bmN0aW9uIChvciBpdHMgY2Fs bGVycykgYXJlCj4gPiAgICAgICAgICAqIGFsc28gbm90IGV4cG9ydGVkIHRvIG90aGVyIG1vZHVs ZXMuCj4gPiAgICAgICAgICAqLwo+ID4gLSAgICAgICBzcGluX2xvY2soJnJ4cy0+bG9jayk7Cj4g PiArICAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZyeHMtPmxvY2ssIGZsYWdzKTsKPiAKPiAKPiBJ IGRvbid0IHRoaW5rIGRpc2FibGluZyB0aGUgSVJRIGlzIG5lY2Vzc2FyeSwgcGxlYXNlIHNlZSB0 aGUgY29tbWVudAo+IGFib3ZlIGFuZCBhbHNvIHRoaXMgZGlzY3Vzc2lvbjoKPiAKPiBodHRwczov L3d3dy5zcGluaWNzLm5ldC9saXN0cy9saW51eC11c2IvbXNnMTE1MjE0Lmh0bWwKCkl0IGhhc24n dCBiZWVuIG5lY2Vzc2FyeSBzbyBmYXIsIGJ1dCB3ZSB3YW50IHRvIGdldCByaWQgb2YgdGhlIGRp c2FibGluZwpvZiBpbnRlcnJ1cHRzIGJlZm9yZSBjYWxsaW5nIHRoZSBjb21wbGV0aW9uIGhhbmRs ZXIgc28gdGhpcyBwYXRjaCBpcwpjb3JyZWN0LgoKVGhlIGNvbW1lbnQgYWJvdmUgdGhlIGxvY2sg aXMgbm90IGNvcnJlY3QgYXMgaXQgc3RhbmRzLCBhbmQgZGVmaW5pdGVseQppcyBub3QgYWZ0ZXIg dGhlIGNvbnZlcnNpb24sIHNvIFNlYmFzdGlhbiwgY291bGQgeW91IHBsZWFzZSBkcm9wIGl0IGFz CnBhcnQgb2YgdGhpcyBjaGFuZ2U/CgpXaXRoIHRoYXQgeW91IGNhbiBhZGQgbXk6CgpSZXZpZXdl ZC1ieTogSm9oYW4gSG92b2xkIDxqb2hhbkBrZXJuZWwub3JnPgoKVGhhbmtzLApKb2hhbgotLS0K VG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJl IGxpbnV4LXVzYiIgaW4KdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtl cm5lbC5vcmcKTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9t YWpvcmRvbW8taW5mby5odG1sCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.4 required=3.0 tests=DKIM_SIGNED, MAILING_LIST_MULTI,SPF_PASS,T_DKIM_INVALID,URIBL_BLOCKED,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C3964C3279B for ; Mon, 2 Jul 2018 06:24:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7425724481 for ; Mon, 2 Jul 2018 06:24:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="lmAVf3uo" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7425724481 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753407AbeGBGYz (ORCPT ); Mon, 2 Jul 2018 02:24:55 -0400 Received: from mail-lf0-f67.google.com ([209.85.215.67]:38405 "EHLO mail-lf0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753287AbeGBGYw (ORCPT ); Mon, 2 Jul 2018 02:24:52 -0400 Received: by mail-lf0-f67.google.com with SMTP id a4-v6so11072467lff.5; Sun, 01 Jul 2018 23:24:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=NyfTUz7M+qPVVizTRv2zgOP2JJfuIM9sWRwslerlrtM=; b=lmAVf3uotadq/8R97ikwHSseQAgXBhWSA7HYQiaAe56ExSGkQDvUEa2gt9M4Uphoou uJHAVQROw+rYgFrbeaBF2vgN9rbg909BImcx63IdIobJ2aiHp4gkCoabM21OXNoFmcj2 Fwqj3dhDNQqxLDXipYQ/PwEoHH9hGtKDTUBhp2a5jHGC2aKAmLqR/pGMRG3DKqEvTucX do8xFPZMLIuj9kgSAH04MaGz3Lu5AWJkub/FN/RJyJYhm2GwQWioanAK6qce+DsI/VBl e7n2bzMOpAFfFD8VRocqeKmE5VxL0T+nDuKoxZgT8MW34stR9zuZTQszhcNZFEJTOp9v acNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=NyfTUz7M+qPVVizTRv2zgOP2JJfuIM9sWRwslerlrtM=; b=hUXIACo5Vc2glbfcTtOTn5mb9/qLPfqL5mOpcOSVam6pjYNbLAd+HnthlTHhrqXdD0 Oa2nU+Vm4WiGWZ2OexZA52obt/YjID4lcOmOh0p8fsc6L2CjtBxWUYurLw7wlE2xTWMV OR4FNdLP4bvHOgnvmoWlcslM4T38Fzfik2yibhj1GjhgOXNI6C22wLNciIhHADwhErgI LnR4din1ae7fThMDHqn1xMYDT/qPw/n1OFkt838UsAh87ZAjEuWBhVpwaMoTBFWn9dTm tJM/lNcEynEFXxK8XfH9KxqzcPGc8uXm/ItMPsgGYDdGQv/2R0jlBaadimKJzi+3ApP0 YIOA== X-Gm-Message-State: APt69E3KfQqQpbCgkJFQ6idHuV38xkrlVNLLb4qzz8AAcQ2LFbDWdtXt b+uB+H0Sxv8H6DppPABnl9c= X-Google-Smtp-Source: AAOMgpcUqWejqYBL07yqEpjXiGXxBPxYJ2Vv3h0xPt221AW2Xi/fBYzhxYYqQjAcnoUsikBmribi1Q== X-Received: by 2002:a19:d60a:: with SMTP id n10-v6mr16395700lfg.27.1530512691247; Sun, 01 Jul 2018 23:24:51 -0700 (PDT) Received: from xi.terra (c-8bb2e655.07-184-6d6c6d4.bbcust.telenor.se. [85.230.178.139]) by smtp.gmail.com with ESMTPSA id 26-v6sm2480742lje.26.2018.07.01.23.24.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 01 Jul 2018 23:24:50 -0700 (PDT) Received: from johan by xi.terra with local (Exim 4.91) (envelope-from ) id 1fZsGQ-00008Z-7O; Mon, 02 Jul 2018 08:24:42 +0200 Date: Mon, 2 Jul 2018 08:24:42 +0200 From: Johan Hovold To: Octavian Purdila Cc: Sebastian Andrzej Siewior , lkml , linux-usb@vger.kernel.org, tglx@linutronix.de, Lee Jones Subject: Re: [PATCH REPOST] mfd: dln2: use irqsave() in USB's complete callback Message-ID: <20180702062442.GD9802@localhost> References: <20180701154108.13233-1-bigeasy@linutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.0 (2018-05-17) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jul 02, 2018 at 12:07:22AM +0200, Octavian Purdila wrote: > On Sun, Jul 1, 2018 at 5:41 PM, 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. > > > > Cc: Lee Jones > > Cc: Octavian Purdila > > Signed-off-by: Sebastian Andrzej Siewior > > --- > > drivers/mfd/dln2.c | 5 +++-- > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/mfd/dln2.c b/drivers/mfd/dln2.c > > index 704e189ca162..1ef3c92f32e0 100644 > > --- a/drivers/mfd/dln2.c > > +++ b/drivers/mfd/dln2.c > > @@ -194,6 +194,7 @@ static bool dln2_transfer_complete(struct dln2_dev *dln2, struct urb *urb, > > struct device *dev = &dln2->interface->dev; > > struct dln2_mod_rx_slots *rxs = &dln2->mod_rx_slots[handle]; > > struct dln2_rx_context *rxc; > > + unsigned long flags; > > bool valid_slot = false; > > > > if (rx_slot >= DLN2_MAX_RX_SLOTS) > > @@ -206,13 +207,13 @@ static bool dln2_transfer_complete(struct dln2_dev *dln2, struct urb *urb, > > * context elsewhere in this driver. This function (or its callers) are > > * also not exported to other modules. > > */ > > - spin_lock(&rxs->lock); > > + spin_lock_irqsave(&rxs->lock, flags); > > > I don't think disabling the IRQ is necessary, please see the comment > above and also this discussion: > > https://www.spinics.net/lists/linux-usb/msg115214.html It hasn't been necessary so far, but we want to get rid of the disabling of interrupts before calling the completion handler so this patch is correct. The comment above the lock is not correct as it stands, and definitely is not after the conversion, so Sebastian, could you please drop it as part of this change? With that you can add my: Reviewed-by: Johan Hovold Thanks, Johan