Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp370662ybg; Fri, 12 Jun 2020 03:53:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy3tFwrUcozedbfeTNNLASoaQ98F+lpF2dxNlk39cq6bHCMmaBhiPxVjRiwdDrl6BiVEo3w X-Received: by 2002:a17:906:3a0d:: with SMTP id z13mr12324992eje.122.1591959215929; Fri, 12 Jun 2020 03:53:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591959215; cv=none; d=google.com; s=arc-20160816; b=H4voNCrcP7iWFRNsVWKN7dSpvem/NEEjQuJEr5+z1SVbKhhnSRQDW+/B7szZpwnifP fVb0t1DFGwHNhPgxyXxd0ayEaiu6d1pX9fKag3MHARU0HeAkR/3gBpDS3PE4BnkDyFbr JEYlhOU1BLNS+Oz5ZGwbXmW9GSPPQyehPrGXkw8cBS3/FFU4XkM9ixcLh4592Nw3sHDl xNy3I9/2RbbjKPR0lqwfNe8NUnVW1I2uNT7WbPZxYWego76y3wf+/b7zFFErT76CaC2n 4hdZ7TX7oNuiuHThLdnybsF+GYtDbwmu1bbaV8pMZGBJzAgGQZq9k94nsS2WwSiPYE2h Caog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:autocrypt:from:references:cc:to:subject; bh=J6TcOoMh2Z2t+tLerFWB5SyXzWvDAKZ5s/+N/WXvw7I=; b=0tw+d2DoBUSttMmGhGOfHQGf9ULbkJBiugQolFgMWHe/vxIhQWuTd40nPe5Z8HiJaS Xk3nVomUFUiXlmzDp0cEJ9RnuDSZ6ueiZFv93RRq1sJt4YsDyUobwkBahq258YUW5A+3 /OQIgfOoZjRi0ZPhQXa9J+jsIa1hr1TM6/KeILTmKlbPhRyWBkkR64h1kDldC16Puqad zwHDtmu+MH0K7w68C+/zDjvi+Y7zx3g1sq5GTDdYdnOQe3ZR4qN+XRnvvXH8qjSdYbEB gXe+/pfaK5hyLozrr/13TDeqeMLo952Re0nkELEZC9jp6aoR2FuqM+tEosMV/s+gknhp Y6kg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dn18si4087350ejc.321.2020.06.12.03.53.11; Fri, 12 Jun 2020 03:53:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726367AbgFLKvI (ORCPT + 99 others); Fri, 12 Jun 2020 06:51:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50424 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726362AbgFLKvH (ORCPT ); Fri, 12 Jun 2020 06:51:07 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 250DEC08C5C1 for ; Fri, 12 Jun 2020 03:51:07 -0700 (PDT) Received: from gallifrey.ext.pengutronix.de ([2001:67c:670:201:5054:ff:fe8d:eefb] helo=bjornoya.blackshift.org) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jjhH1-0001TH-TH; Fri, 12 Jun 2020 12:50:59 +0200 Received: from [IPv6:2a03:f580:87bc:d400:b44d:6713:e0e9:e23c] (unknown [IPv6:2a03:f580:87bc:d400:b44d:6713:e0e9:e23c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits)) (Client CN "mkl@blackshift.org", Issuer "StartCom Class 1 Client CA" (not verified)) (Authenticated sender: mkl@blackshift.org) by smtp.blackshift.org (Postfix) with ESMTPSA id EBE8C5150C1; Fri, 12 Jun 2020 10:50:57 +0000 (UTC) Subject: Re: [PATCH] i2c: imx: Fix external abort on early interrupt To: Krzysztof Kozlowski Cc: Shawn Guo , Sascha Hauer , linux-kernel@vger.kernel.org, stable@vger.kernel.org, Oleksij Rempel , Wolfram Sang , Oleksij Rempel , NXP Linux Team , Pengutronix Kernel Team , Fabio Estevam , linux-arm-kernel@lists.infradead.org, linux-i2c@vger.kernel.org References: <1591796802-23504-1-git-send-email-krzk@kernel.org> <20200612090517.GA3030@ninjato> <20200612092941.GA25990@pi3> <20200612095604.GA17763@ninjato> <20200612102113.GA26056@pi3> <20200612103149.2onoflu5qgwaooli@pengutronix.de> <2bc70a44-8b98-0da5-9408-15d6fa0c20fe@pengutronix.de> <20200612104413.GC26056@pi3> From: Marc Kleine-Budde Autocrypt: addr=mkl@pengutronix.de; prefer-encrypt=mutual; keydata= mQINBFFVq30BEACtnSvtXHoeHJxG6nRULcvlkW6RuNwHKmrqoksispp43X8+nwqIFYgb8UaX zu8T6kZP2wEIpM9RjEL3jdBjZNCsjSS6x1qzpc2+2ivjdiJsqeaagIgvy2JWy7vUa4/PyGfx QyUeXOxdj59DvLwAx8I6hOgeHx2X/ntKAMUxwawYfPZpP3gwTNKc27dJWSomOLgp+gbmOmgc 6U5KwhAxPTEb3CsT5RicsC+uQQFumdl5I6XS+pbeXZndXwnj5t84M+HEj7RN6bUfV2WZO/AB Xt5+qFkC/AVUcj/dcHvZwQJlGeZxoi4veCoOT2MYqfR0ax1MmN+LVRvKm29oSyD4Ts/97cbs XsZDRxnEG3z/7Winiv0ZanclA7v7CQwrzsbpCv+oj+zokGuKasofzKdpywkjAfSE1zTyF+8K nxBAmzwEqeQ3iKqBc3AcCseqSPX53mPqmwvNVS2GqBpnOfY7Mxr1AEmxdEcRYbhG6Xdn+ACq Dq0Db3A++3PhMSaOu125uIAIwMXRJIzCXYSqXo8NIeo9tobk0C/9w3fUfMTrBDtSviLHqlp8 eQEP8+TDSmRP/CwmFHv36jd+XGmBHzW5I7qw0OORRwNFYBeEuiOIgxAfjjbLGHh9SRwEqXAL kw+WVTwh0MN1k7I9/CDVlGvc3yIKS0sA+wudYiselXzgLuP5cQARAQABtCZNYXJjIEtsZWlu ZS1CdWRkZSA8bWtsQHBlbmd1dHJvbml4LmRlPokCVAQTAQoAPgIbAwIeAQIXgAULCQgHAwUV CgkICwUWAgMBABYhBMFAC6CzmJ5vvH1bXCte4hHFiupUBQJcUsSbBQkM366zAAoJECte4hHF iupUgkAP/2RdxKPZ3GMqag33jKwKAbn/fRqAFWqUH9TCsRH3h6+/uEPnZdzhkL4a9p/6OeJn Z6NXqgsyRAOTZsSFcwlfxLNHVxBWm8pMwrBecdt4lzrjSt/3ws2GqxPsmza1Gs61lEdYvLST Ix2vPbB4FAfE0kizKAjRZzlwOyuHOr2ilujDsKTpFtd8lV1nBNNn6HBIBR5ShvJnwyUdzuby tOsSt7qJEvF1x3y49bHCy3uy+MmYuoEyG6zo9udUzhVsKe3hHYC2kfB16ZOBjFC3lH2U5An+ yQYIIPZrSWXUeKjeMaKGvbg6W9Oi4XEtrwpzUGhbewxCZZCIrzAH2hz0dUhacxB201Y/faY6 BdTS75SPs+zjTYo8yE9Y9eG7x/lB60nQjJiZVNvZ88QDfVuLl/heuIq+fyNajBbqbtBT5CWf mOP4Dh4xjm3Vwlz8imWW/drEVJZJrPYqv0HdPbY8jVMpqoe5jDloyVn3prfLdXSbKPexlJaW 5tnPd4lj8rqOFShRnLFCibpeHWIumqrIqIkiRA9kFW3XMgtU6JkIrQzhJb6Tc6mZg2wuYW0d Wo2qvdziMgPkMFiWJpsxM9xPk9BBVwR+uojNq5LzdCsXQ2seG0dhaOTaaIDWVS8U/V8Nqjrl 6bGG2quo5YzJuXKjtKjZ4R6k762pHJ3tnzI/jnlc1sXz Message-ID: <651c9a33-71e6-c042-58e2-6ad501e984cd@pengutronix.de> Date: Fri, 12 Jun 2020 12:50:56 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.1 MIME-Version: 1.0 In-Reply-To: <20200612104413.GC26056@pi3> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 2001:67c:670:201:5054:ff:fe8d:eefb X-SA-Exim-Mail-From: mkl@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 6/12/20 12:44 PM, Krzysztof Kozlowski wrote: > On Fri, Jun 12, 2020 at 12:34:47PM +0200, Marc Kleine-Budde wrote: >> On 6/12/20 12:31 PM, Oleksij Rempel wrote: >>> On Fri, Jun 12, 2020 at 12:21:13PM +0200, Krzysztof Kozlowski wrote: >>>> On Fri, Jun 12, 2020 at 11:56:04AM +0200, Wolfram Sang wrote: >>>>> On Fri, Jun 12, 2020 at 11:29:41AM +0200, Krzysztof Kozlowski wrote: >>>>>> On Fri, Jun 12, 2020 at 11:05:17AM +0200, Wolfram Sang wrote: >>>>>>> On Wed, Jun 10, 2020 at 03:46:42PM +0200, Krzysztof Kozlowski wrote: >>>>>>>> If interrupt comes early (could be triggered with CONFIG_DEBUG_SHIRQ), >>>>>>> >>>>>>> That code is disabled since 2011 (6d83f94db95c ("genirq: Disable the >>>>>>> SHIRQ_DEBUG call in request_threaded_irq for now"))? So, you had this >>>>>>> without fake injection, I assume? >>>>>> >>>>>> No, I observed it only after enabling DEBUG_SHIRQ (to a kernel with >>>>>> some debugging options already). >>>>> >>>>> Interesting. Maybe probe was deferred and you got the extra irq when >>>>> deregistering? >>>> >>>> Yes, good catch. The abort happens right after deferred probe exit. It >>>> could be then different reason than I thought - the interrupt is freed >>>> through devm infrastructure quite late. At this time, the clock might >>>> be indeed disabled (error path of probe()). >> >> From my point of view, the clocks are disabled as Oleksij pointed out, due to >> RUNTIME_PM at the end of probe(): >> >>> pm_runtime_mark_last_busy(&pdev->dev); >>> pm_runtime_put_autosuspend(&pdev->dev); > > These lines come from regular successful probe path, not deferred error path. > > The clock is indeed disabled but not because of runtime PM, but: > clk_disable: > clk_disable_unprepare(i2c_imx->clk); ACK. I think your analysis is correct: devm for shared IRQs does not work for IP cores that need enabled clocks for register access. And from Oleksij's comment we can conclude that runtime_pm and shared IRQ handlers are also tricky for these IP cores :( Marc -- Pengutronix e.K. | Marc Kleine-Budde | Embedded Linux | https://www.pengutronix.de | Vertretung West/Dortmund | Phone: +49-231-2826-924 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |