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()).
This line looks suspicious to me: Unhandled fault: external abort on non-linefetch (0x1008) at 0x8882d003
0x8882d003 looks like not initialized pointer. The only not initialized value at devm_request_irq stage is i2c_imx->queue.