diff options
author | Andrew Lunn <andrew@lunn.ch> | 2016-11-20 20:14:19 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-11-20 21:16:13 -0500 |
commit | 61f7c3f8032c840da4fb6b8a8714cb31e0b8ace8 (patch) | |
tree | e7ebf535c6dbecc76ff7cf175ec49947047936db /drivers/net/dsa | |
parent | 8e757eba074fff8460dc91717695e009b5f93f76 (diff) |
net: dsa: mv88e6xxx: Hold the mutex while freeing g1 interrupts
Freeing interrupts requires switch register access to mask the
interrupts. Hence we must hold the register mutex.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/dsa')
-rw-r--r-- | drivers/net/dsa/mv88e6xxx/chip.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c index 614b2f68d401..e30d0eaf2b5f 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -3916,8 +3916,11 @@ out_g2_irq: if (mv88e6xxx_has(chip, MV88E6XXX_FLAG_G2_INT) && chip->irq > 0) mv88e6xxx_g2_irq_free(chip); out_g1_irq: - if (chip->irq > 0) + if (chip->irq > 0) { + mutex_lock(&chip->reg_lock); mv88e6xxx_g1_irq_free(chip); + mutex_unlock(&chip->reg_lock); + } out: return err; } |