Received: by 2002:a19:f614:0:0:0:0:0 with SMTP id x20csp59693lfe; Fri, 15 Apr 2022 19:28:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz/Ec+Z7tPt40sT87gSnC2Fjdt3fWyVxqh44vbwL3AY78IjV0L/fRXyhE8WU+X3zHp48FvA X-Received: by 2002:a17:90b:1bc4:b0:1cd:35ce:a0e4 with SMTP id oa4-20020a17090b1bc400b001cd35cea0e4mr7127728pjb.31.1650076083076; Fri, 15 Apr 2022 19:28:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650076083; cv=none; d=google.com; s=arc-20160816; b=jJYEw2v2cb+lH6/h5BFUoYTIFU6mlvIpMVpC0Pyzjf0ajihaDAjsYAI0ZCV/HcqdEy CT9kuR4bg0eJ1/x0QvNP9hTzN/fhFstpj8QKW3p5zSg92/S6ywbiIUe93tZAkIcjyNzi IWJ9WLr/EuZedmYHK7MN2VVVWzYUa06TpYnO9W99wvCWXN744cdrUWyqF3MBF9eJ6+lc J7QLcv75xK8Ac4NxU65e8LUSicr4PssSUhHkDOFQ79eKA9Z0gSYI0Dah8tZZRXjWLdpM h43/xfJvNj8+YEshJMa/YgsAy4BlBU2toPeDgZ+IU/YpJRNitZG/7W5HpjC6dpt97zuj xrNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=vo2M6JQz/juSoQqEBDRazDXXgA3OVaioPYuUJMZJ2EE=; b=dzDLYLfIbgHfX7O2RhBLA/YUomG6ES3stiGeRdpmpAIZVef05vQXLg8Z8/SPbjeK8o LlFzV2qz6WqXrexcKZxAGL+vpWt/YzaoAnub0mzlP1ULyWRkMhenWPbUHktsKOtqefyt v3CoJPMkXmPeHOYbTGrU/LLqSdnElzQuzVhE7ILgVZhFoNmvTL0ZhGIKD7L8Q+N65BJh nR+IqFjREPgnrLvi72sIORleVul0UzQgAIEoEll+KBCL2+3FtWemBptELdEMHnlq6Rq3 0pYmBbwZTY+NePSo+JRxAJz/QztAtC6Clsh1i06vlckLji8iQ9lIubeFZyujs6x/5x9f uVYg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=SnxNYl7L; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id h1-20020a170902704100b0015696cc037dsi2725264plt.415.2022.04.15.19.28.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Apr 2022 19:28:03 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=SnxNYl7L; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 10F3DF8EC1; Fri, 15 Apr 2022 18:39:59 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236541AbiDNTOO (ORCPT + 99 others); Thu, 14 Apr 2022 15:14:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45100 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232417AbiDNTOM (ORCPT ); Thu, 14 Apr 2022 15:14:12 -0400 Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [46.235.227.227]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6CD8BE996B; Thu, 14 Apr 2022 12:11:46 -0700 (PDT) Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: shreeya) with ESMTPSA id A99041F47C76 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1649963504; bh=QzazdTkJUyPxoWMBQtS0j3+6PWTkOSNi4bctVgjyFy4=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=SnxNYl7LNmTWZVkOCTGlL6LmjkwXInzk0zIBF9kXMlaKKZ8bMWzDBl9BjJe0BVjKe 4Yud9mz9d8h9Ed6luJlZTVHyY2QuBGZ+EQKjZHaJzQY34tCqeRJ68MZuVebpKzH188 t9v7fC7/VFJQGn3jmAtrU6bFFFwQKeRZU+CxwDKL9VQY5u3iP2b/qDteB4k+wo6Q6U zI9ON8nPLrsMHmiXEcSF07pTqx9zWj7E0DAsuHm4Bo1GWzrUgFxGeun3PFfwJm/Nxm +iqsnGNFnXMRInUdaAGKhp0pHMP59zrA9uVbBt1Sfy0IvYDZEYNjMj79TjUC4tLcWT U0lPYUwffoP5w== Message-ID: <207d6171-173a-3d77-4b13-ea6f7476478d@collabora.com> Date: Fri, 15 Apr 2022 00:41:36 +0530 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [PATCH] gpio: Request interrupts after IRQ is initialized Content-Language: en-US To: Mario Limonciello Cc: Basavaraj.Natikar@amd.com, Richard.Gong@amd.com, stable@vger.kernel.org, open list , Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , "open list:GPIO SUBSYSTEM" , gabriel Krisman Bertazi , Collabora Kernel ML References: <20220414025705.598-1-mario.limonciello@amd.com> From: Shreeya Patel In-Reply-To: <20220414025705.598-1-mario.limonciello@amd.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-5.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,NICE_REPLY_A,RDNS_NONE,SPF_HELO_NONE, T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 14/04/22 08:27, Mario Limonciello wrote: > commit 5467801f1fcb ("gpio: Restrict usage of GPIO chip irq members before > initialization") attempted to fix a race condition that lead to a NULL > pointer, but in the process caused a regression for _AEI/_EVT declared > GPIOs. This manifests in messages showing deferred probing while trying > to allocate IRQs like so: > > [ 0.688318] amd_gpio AMDI0030:00: Failed to translate GPIO pin 0x0000 to IRQ, err -517 > [ 0.688337] amd_gpio AMDI0030:00: Failed to translate GPIO pin 0x002C to IRQ, err -517 > [ 0.688348] amd_gpio AMDI0030:00: Failed to translate GPIO pin 0x003D to IRQ, err -517 > [ 0.688359] amd_gpio AMDI0030:00: Failed to translate GPIO pin 0x003E to IRQ, err -517 > [ 0.688369] amd_gpio AMDI0030:00: Failed to translate GPIO pin 0x003A to IRQ, err -517 > [ 0.688379] amd_gpio AMDI0030:00: Failed to translate GPIO pin 0x003B to IRQ, err -517 > [ 0.688389] amd_gpio AMDI0030:00: Failed to translate GPIO pin 0x0002 to IRQ, err -517 > [ 0.688399] amd_gpio AMDI0030:00: Failed to translate GPIO pin 0x0011 to IRQ, err -517 > [ 0.688410] amd_gpio AMDI0030:00: Failed to translate GPIO pin 0x0012 to IRQ, err -517 > [ 0.688420] amd_gpio AMDI0030:00: Failed to translate GPIO pin 0x0007 to IRQ, err -517 > > The code for walking _AEI doesn't handle deferred probing and so this leads > to non-functional GPIO interrupts. > > Fix this issue by moving the call to `acpi_gpiochip_request_interrupts` to > occur after gc->irc.initialized is set. Thanks Mario for sending a fix for this issue, I didn't realize gpiod_to_irq() was also being called through acpi_gpiochip_request_interrupts(). Change looks good to me. Reviewed-by: Shreeya Patel > Cc: Shreeya Patel > Cc: stable@vger.kernel.org > Fixes: 5467801f1fcb ("gpio: Restrict usage of GPIO chip irq members before initialization") > Reported-by: Mario Limonciello > Link: https://lore.kernel.org/linux-gpio/BL1PR12MB51577A77F000A008AA694675E2EF9@BL1PR12MB5157.namprd12.prod.outlook.com/T/#u > Signed-off-by: Mario Limonciello > --- > drivers/gpio/gpiolib.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c > index 085348e08986..b7694171655c 100644 > --- a/drivers/gpio/gpiolib.c > +++ b/drivers/gpio/gpiolib.c > @@ -1601,8 +1601,6 @@ static int gpiochip_add_irqchip(struct gpio_chip *gc, > > gpiochip_set_irq_hooks(gc); > > - acpi_gpiochip_request_interrupts(gc); > - > /* > * Using barrier() here to prevent compiler from reordering > * gc->irq.initialized before initialization of above > @@ -1612,6 +1610,8 @@ static int gpiochip_add_irqchip(struct gpio_chip *gc, > > gc->irq.initialized = true; > > + acpi_gpiochip_request_interrupts(gc); > + > return 0; > } >