On Thu, Feb 13, 2020 at 05:18:54PM +0100, Wolfram Sang wrote: > On Thu, Feb 13, 2020 at 05:15:03PM +0200, Jarkko Nikula wrote: > > Function i2c_dw_pci_remove() -> pci_free_irq_vectors() -> > > pci_disable_msi() -> free_msi_irqs() will throw a BUG_ON() for MSI > > enabled device since the driver has not released the requested IRQ before > > calling the pci_free_irq_vectors(). > > > > Here driver requests an IRQ using devm_request_irq() but automatic > > release happens only after remove callback. Fix this by explicitly > > freeing the IRQ before calling pci_free_irq_vectors(). > > Does it make sense to keep devm for irq handling, then? Only for sake of better error handling in error path in the ->probe(). -- With Best Regards, Andy Shevchenko