On 01/15/2018 02:45 PM, Andrew Lunn wrote: > We only register the ATU and VTU irq when we have a chip level IRQ. > In the error path, we should only attempt to remove the ATU and VTU > irq if we also have a chip level IRQ. > > Signed-off-by: Andrew Lunn <and...@lunn.ch> > --- > drivers/net/dsa/mv88e6xxx/chip.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/dsa/mv88e6xxx/chip.c > b/drivers/net/dsa/mv88e6xxx/chip.c > index 54cb00a27408..eb328bade225 100644 > --- a/drivers/net/dsa/mv88e6xxx/chip.c > +++ b/drivers/net/dsa/mv88e6xxx/chip.c > @@ -3999,9 +3999,11 @@ static int mv88e6xxx_probe(struct mdio_device *mdiodev) > out_mdio: > mv88e6xxx_mdios_unregister(chip); > out_g1_vtu_prob_irq: > - mv88e6xxx_g1_vtu_prob_irq_free(chip); > + if (chip->irq > 0) > + mv88e6xxx_g1_vtu_prob_irq_free(chip);
Why not move this check to mv88e6xxx_g1_vtu_prob_irq_free() and make it a no-op if chip->irq <= 0? -- Florian