Re: [PATCH v2 1/3] genirq/affinity: Add irq_update_affinity_desc()

From: John Garry
Date: Thu Nov 19 2020 - 14:56:50 EST


Hi Thomas,

3) Interrupt has already been switched to managed. Double init is not
really a good sign either.
I just tested that and case 3) would be a problem. I don't see us
clearing the managed flag when free'ing the interrupt. So with
CONFIG_DEBUG_TEST_DRIVER_REMOVE=y, we attempt this affinity update
twice, and error from the irqd_affinity_is_managed() check.
That means the interrupt is not deallocated and reallocated, which does
not make sense to me.


Just mentioning a couple of things here, which could be a clue to what is going on:
- the device is behind mbigen secondary irq controller
- the flow in the LLDD is to allocate all 128 interrupts during probe, but we only register handlers for a subset with device managed API

Thanks,
John