regmap: mdio: Don't modify output if error happened
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 20 May 2021 12:05:18 +0000 (15:05 +0300)
committerMark Brown <broonie@kernel.org>
Thu, 20 May 2021 16:57:32 +0000 (17:57 +0100)
regmap_mdio_read() breaks the principle of "no touch output till it's known
that the operation succeeds". Refactor it accordingly.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20210520120518.30490-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/base/regmap/regmap-mdio.c

index 5f18fe4..5ec2082 100644 (file)
@@ -11,9 +11,11 @@ static int regmap_mdio_read(void *context, unsigned int reg, unsigned int *val)
        int ret;
 
        ret = mdiobus_read(mdio_dev->bus, mdio_dev->addr, reg);
-       *val = ret & 0xffff;
+       if (ret < 0)
+               return ret;
 
-       return ret < 0 ? ret : 0;
+       *val = ret & 0xffff;
+       return 0;
 }
 
 static int regmap_mdio_write(void *context, unsigned int reg, unsigned int val)