The interrupt code was never tested with a board who's probing resulted in an -EPROBE_DEFFERED. So the clean up paths never got tested. I now do have -EPROBE_DEFFERED, and things break badly during cleanup. These are the fixes.
This is fixing code in net-next. v2: Fix typo pointed out by David Miller Andrew Lunn (6): net: dsa: mv88e6xxx: Fix typos when removing g1 interrupts net: dsa: mv88e6xxx: Fix unconditional irq freeing net: dsa: mv88e6xxx: Mask g1 interrupts and free interrupt net: dsa: mv88e6xxx: Fix cleanup on error for g1 interrupt setup net: dsa: mv88e6xxx: Fix releasing for the global2 interrupts net: dsa: mv88e6xxx: Hold the mutex while freeing g1 interrupts drivers/net/dsa/mv88e6xxx/chip.c | 58 ++++++++++++++++++++++++----------- drivers/net/dsa/mv88e6xxx/global2.c | 28 +++++++++++------ drivers/net/dsa/mv88e6xxx/mv88e6xxx.h | 1 + 3 files changed, 59 insertions(+), 28 deletions(-) -- 2.10.2