diff options
-rw-r--r-- | drivers/net/dsa/mv88e6xxx/chip.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c index 8c9a30d1b06f..27ca0fcb1040 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -724,8 +724,12 @@ static void mv88e6xxx_get_strings(struct dsa_switch *ds, int port, { struct mv88e6xxx_chip *chip = ds->priv; + mutex_lock(&chip->reg_lock); + if (chip->info->ops->stats_get_strings) chip->info->ops->stats_get_strings(chip, data); + + mutex_unlock(&chip->reg_lock); } static int mv88e6xxx_stats_get_sset_count(struct mv88e6xxx_chip *chip, @@ -757,11 +761,14 @@ static int mv88e6320_stats_get_sset_count(struct mv88e6xxx_chip *chip) static int mv88e6xxx_get_sset_count(struct dsa_switch *ds, int port) { struct mv88e6xxx_chip *chip = ds->priv; + int ret = 0; + mutex_lock(&chip->reg_lock); if (chip->info->ops->stats_get_sset_count) - return chip->info->ops->stats_get_sset_count(chip); + ret = chip->info->ops->stats_get_sset_count(chip); + mutex_unlock(&chip->reg_lock); - return 0; + return ret; } static void mv88e6xxx_stats_get_stats(struct mv88e6xxx_chip *chip, int port, |