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: net: lan78xx: fix "enabled interrupts" warninig From: Marc Zyngier Message-Id: Date: Wed, 10 Apr 2019 11:27:57 +0100 To: Jisheng Zhang , "RaghuramChary.Jallipalli@microchip.com" , Andrew Lunn , Florian Fainelli Cc: "Woojung.Huh@microchip.com" , "UNGLinuxDriver@microchip.com" , "davem@davemloft.net" , "netdev@vger.kernel.org" , "linux-usb@vger.kernel.org" , "linux-kernel@vger.kernel.org" List-ID: T24gMTAvMDQvMjAxOSAxMDo1MywgSmlzaGVuZyBaaGFuZyB3cm90ZToKPiAKPiBPbiBXZWQsIDEw IEFwciAyMDE5IDA5OjIwOjM4ICswMDAwIHdyb3RlOgo+IAo+Pgo+Pj4+Pgo+Pj4+PiBUaGUgd2Fy bmluZyBjb21lcyBmcm9tIGNhbGxpbmcgZ2VuZXJpY19oYW5kbGVfaXJxKCkgaW4gdXNiIHRhc2ts ZXQgIAo+Pj4gY29udGV4dC4gIAo+Pj4+PiBUaGlzIGlzIG5vdCBjb3JyZWN0Lgo+Pj4+Pgo+Pj4+ PiBQZXIgbXkgdW5kZXJzdGFuZGluZywgaWYgdGhlcmUncyBjaGFpbmVkIGlycSwgd2UgY291bGQg aW50cm9kdWNlCj4+Pj4+IGV4dHJhIGlycWRvbWFpbi4gRS5nCj4+Pj4+Cj4+Pj4+IEdJQyA8LS0+ IGFub3RoZXIgaXJxY2hpcCBjb250cm9sbGVyIDwtLT4gSFcgZGV2aWNlCj4+Pj4+ICAKPj4+PiBD b3JyZWN0LCBJUlEgZG9tYWluIGlzIGdlbmVyYWxseSB1c2VkIGluIGNoYWluZWQgaXJxIGNvbnRy b2xsZXJzLgo+Pj4+IFllcywgV2UgbmVlZCB0byBjaGVjayB3aHkgaXJxIGRvbWFpbiBpcyB1c2Vk IGluIHRoZSBjdXJyZW50IGRyaXZlci4KPj4+PiAgCj4+Pgo+Pj4gSXQncyBpbnRyb2R1Y2VkIGlu IHRoZSBjb21taXQgY2M4OWMzMjNhMzBlCj4+PiAgCj4+IEhpIEppc2hlbmcsCj4gCj4gSGksCj4g Cj4+IEkgaGFkIHNwZW50IHNvbWUgdGltZSB0byBsb29rIGludG8gdGhlIGhpc3Rvcnkgb2YgY29t bWl0LiBUaGUgcmVhc29uIGZvciBoYXZpbmcgaXJxIGRvbWFpbiBpbiBkcml2ZXIgaXMgYmVjYXVz ZSBvZiB0aGUgdW5hdmFpbGFiaWxpdHkgb2YgcmVhbCBoYXJkd2FyZSBpbnRlcnJ1cHQsIGhlcmUg d2UgaGF2ZSBVU0IgaW50ZXJydXB0IHBpcGUgd2hpY2ggaXMgbm90IGFjdHVhbCBpbnRlcnJ1cHQu Cj4+IFNvIGNoYW5nZXMgd2VyZSBwcm9wb3NlZCB0byBoYXZlIHBzZXVkbyBwaHkgaW50ZXJydXB0 IGFuZCBoYW5kbGVycyBpbiBwaHkgbGliLiBCdXQgbGF0ZXIgaXQgd2FzIHN1Z2dlc3RlZCB0byBp bXBsZW1lbnQgbGludXggaW50ZXJydXB0IGNvbnRyb2xsZXIgaW4gZHJpdmVyIGl0c2VsZi4KPiAK PiArIEFuZHJldywgRmxvcmlhbgo+IAo+IFVTQiBuZXQgaXMgZGlmZmVyZW50IHdpdGggQW5kcmV3 J3MgY2FzZS4KPiAKPiB0aGVyZSdzIG5vIGlycSBhdCBhbGwgaW4gdXNiIG5ldAo+IAo+IGJ1dCBp biBBbmRyZXcncyBjYXNlLCBpbnRlcnJ1cHQgaXMgY29ubmVjdGVkIHRvIGEgR1BJTyBsaW5lLiBB cyBpcyBrbm93bgo+IEdQSU8gY2FuIGJlaGF2ZSBhcyBpcnEgY2hpcC4KPiAKPj4gWW91IGNhbiBz ZWUgdGhlIGFyY2hpdmUgaGVyZSBodHRwczovL3BhdGNod29yay5vemxhYnMub3JnL3BhdGNoLzU2 NDUxMS8KPiAKPiBQZXIgbXkgdW5kZXJzdGFuZGluZywgdGhlIHB1cnBvc2UgaXMgdG8gYXZvaWQg cGh5X3N0YXRlX21hY2hpbmUoKSBwb2xsCj4gcGh5X3JlYWRfc3RhdHVzKCkgdG8gbW9uaXRvciBw aHkgbGluay4gQnV0IGFzIHBvaW50ZWQgb3V0IGJ5IEZsb3JpYW4sCj4gcGh5X21hY19pbnRlcnJ1 cHQoKSBpcyBpbnRlbmRlZCBmb3IgdGhhdCBwdXJwb3NlLiBBbmQgdGhlIHBvbGwgc2hvdWxkIGJl Cj4gZml4ZWQgaW4gcGh5LiBTaW5jZSB0aGUgZW1haWwgd2FzIHNlbnQgaW4gMjAxNiwgbWF5YmUg dGhlIGJ1ZyBoYXMgYmVlbiBmaXhlZC4KPiAKPj4gSSB3YW50IHRvIHVuZGVyc3RhbmQgaWYgdGhl cmUgaXMgYW55IGZ1bmN0aW9uYWxpdHkgaW1wYWN0IHdpdGggdGhpcyB3YXJuaW5nPyBCZWNhdXNl IEknbSBhZnJhaWQgaWYgdGhlIGN1cnJlbnQgY2hhbmdlcyBhcmUgcmVtb3ZlZCB3ZSBtaWdodCBo aXQgc29tZSBvdGhlciBpc3N1ZXMgKG9yIG9sZGVyIG9uZXMpLiBXZSBoYXZlIHRvIGdvIHRocm91 Z2ggcmlnb3JvdXMgdGVzdGluZyBiZWZvcmUgZ29pbmcgYWhlYWQuCj4gCj4gV2FybmluZyBpbmRp Y2F0ZXMgdGhlcmUncyBzb21ldGhpbmcgd3JvbmcgaW4gdGhlIGNvZGUuCgpNb3N0IGRlZmluaXRl bHkuIFRoaXMgY29kZSBpcyBjb21wbGV0ZWx5IGJ1c3RlZCAoaGFuZGxpbmcgcHNldWRvCmludGVy cnVwdHMgb3V0IG9mIGEgdGFza2xldCBpcyBhIEJVRyksIGFuZCB0aGluZ3Mgd2lsbCBjcmFzaCBv ciBkZWFkbG9jawp1bmRlciB0aGUgcmlnaHQgY29uZGl0aW9ucy4KCj4gCj4gSU1ITyBwaHlfbWFj X2ludGVycnVwdCgpIGFuZCBQSFlfSUdOT1JFX0lOVEVSUlVQVCBpcyB0aGUgY29ycmVjdAo+IHNv bHV0aW9uLiBJZiB0aGUgcGh5X21hY19pbnRlcnJ1cHQoKSBwb2xsIGlzIGZpeGVkLCBJIHRoaW5r IG1heWJlCj4gb2xkIGlzc3VlIHdoaWNoIGNvbW1pdCBjYzg5YzMyM2EzMGUgd2FudCB0byBmaXgg d29uJ3QgZXhpc3QuCgpQbGVhc2UgYWxzbyBzZWUgdGhpc1sxXSB0aHJlYWQsIHdoaWNoIGhhcyBh IHBvdGVudGlhbCBzb2x1dGlvbiBmb3IgdGhpcy4KClRoYW5rcywKCglNLgoKWzFdIGh0dHBzOi8v d3d3LnNwaW5pY3MubmV0L2xpc3RzL25ldGRldi9tc2c1NDIyOTAuaHRtbAo= 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=-0.9 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 C77B0C10F14 for ; Wed, 10 Apr 2019 10:28:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9486A20830 for ; Wed, 10 Apr 2019 10:28:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729321AbfDJK2C (ORCPT ); Wed, 10 Apr 2019 06:28:02 -0400 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:51404 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727943AbfDJK2B (ORCPT ); Wed, 10 Apr 2019 06:28:01 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id EC22915AB; Wed, 10 Apr 2019 03:28:00 -0700 (PDT) Received: from [10.1.196.92] (usa-sjc-imap-foss1.foss.arm.com [10.72.51.249]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 417393F59C; Wed, 10 Apr 2019 03:27:59 -0700 (PDT) Subject: Re: [PATCH] net: lan78xx: fix "enabled interrupts" warninig To: Jisheng Zhang , "RaghuramChary.Jallipalli@microchip.com" , Andrew Lunn , Florian Fainelli Cc: "Woojung.Huh@microchip.com" , "UNGLinuxDriver@microchip.com" , "davem@davemloft.net" , "netdev@vger.kernel.org" , "linux-usb@vger.kernel.org" , "linux-kernel@vger.kernel.org" References: <20190408140301.3dcbccdd@xhacker.debian> <20190408155947.3efcb1eb@xhacker.debian> <20190409092753.39961390@xhacker.debian> <20190410174538.5ebe1787@xhacker.debian> From: Marc Zyngier Openpgp: preference=signencrypt Autocrypt: addr=marc.zyngier@arm.com; prefer-encrypt=mutual; keydata= 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 Organization: ARM Ltd Message-ID: Date: Wed, 10 Apr 2019 11:27:57 +0100 User-Agent: Mozilla/5.0 (X11; Linux aarch64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <20190410174538.5ebe1787@xhacker.debian> Content-Type: text/plain; charset="UTF-8" Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Message-ID: <20190410102757.XmcDxerR90Cfvm-ngTEzGocCDuyj_pImdASJCAPGlsA@z> On 10/04/2019 10:53, Jisheng Zhang wrote: > > On Wed, 10 Apr 2019 09:20:38 +0000 wrote: > >> >>>>> >>>>> The warning comes from calling generic_handle_irq() in usb tasklet >>> context. >>>>> This is not correct. >>>>> >>>>> Per my understanding, if there's chained irq, we could introduce >>>>> extra irqdomain. E.g >>>>> >>>>> GIC <--> another irqchip controller <--> HW device >>>>> >>>> Correct, IRQ domain is generally used in chained irq controllers. >>>> Yes, We need to check why irq domain is used in the current driver. >>>> >>> >>> It's introduced in the commit cc89c323a30e >>> >> Hi Jisheng, > > Hi, > >> I had spent some time to look into the history of commit. The reason for having irq domain in driver is because of the unavailability of real hardware interrupt, here we have USB interrupt pipe which is not actual interrupt. >> So changes were proposed to have pseudo phy interrupt and handlers in phy lib. But later it was suggested to implement linux interrupt controller in driver itself. > > + Andrew, Florian > > USB net is different with Andrew's case. > > there's no irq at all in usb net > > but in Andrew's case, interrupt is connected to a GPIO line. As is known > GPIO can behave as irq chip. > >> You can see the archive here https://patchwork.ozlabs.org/patch/564511/ > > Per my understanding, the purpose is to avoid phy_state_machine() poll > phy_read_status() to monitor phy link. But as pointed out by Florian, > phy_mac_interrupt() is intended for that purpose. And the poll should be > fixed in phy. Since the email was sent in 2016, maybe the bug has been fixed. > >> I want to understand if there is any functionality impact with this warning? Because I'm afraid if the current changes are removed we might hit some other issues (or older ones). We have to go through rigorous testing before going ahead. > > Warning indicates there's something wrong in the code. Most definitely. This code is completely busted (handling pseudo interrupts out of a tasklet is a BUG), and things will crash or deadlock under the right conditions. > > IMHO phy_mac_interrupt() and PHY_IGNORE_INTERRUPT is the correct > solution. If the phy_mac_interrupt() poll is fixed, I think maybe > old issue which commit cc89c323a30e want to fix won't exist. Please also see this[1] thread, which has a potential solution for this. Thanks, M. [1] https://www.spinics.net/lists/netdev/msg542290.html -- Jazz is not dead. It just smells funny...