On Thu, Nov 19 2020 at 09:31, John Garry wrote: >> 1) Interrupt does not exist. Definitely a full fail >> >> 2) Interrupt is already started up. Not a good idea on init() and >> a clear fail. >> >> 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. Thanks, tglx