Quoting Subbaraman Narayanamurthy (2021-02-08 11:33:04) > Currently, when handling the SPMI summary interrupt, the hw_irq > number is calculated based on SID, Peripheral ID, IRQ index and > APID. This is then passed to irq_find_mapping() to see if a > mapping exists for this hw_irq and if available, invoke the > interrupt handler. Since the IRQ index uses an "int" type, hw_irq > which is of unsigned long data type can take a large value when > SID has its MSB set to 1 and the type conversion happens. Because > of this, irq_find_mapping() returns 0 as there is no mapping > for this hw_irq. This ends up invoking cleanup_irq() as if > the interrupt is spurious whereas it is actually a valid > interrupt. Fix this by using the proper data type (u32) for id. > > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Subbaraman Narayanamurthy <subbaram@xxxxxxxxxxxxxx> > --- Applied to spmi-next