From: Andy Shevchenko Date: Thu, 20 May 2021 12:05:18 +0000 (+0300) Subject: regmap: mdio: Don't modify output if error happened X-Git-Tag: v5.14-rc1~189^2^2~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e56360d6a119f531506658ea87238e48ad4c95c2;p=thirdparty%2Flinux.git regmap: mdio: Don't modify output if error happened 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 Link: https://lore.kernel.org/r/20210520120518.30490-1-andriy.shevchenko@linux.intel.com Signed-off-by: Mark Brown --- diff --git a/drivers/base/regmap/regmap-mdio.c b/drivers/base/regmap/regmap-mdio.c index 5f18fe409f569..5ec208279913f 100644 --- a/drivers/base/regmap/regmap-mdio.c +++ b/drivers/base/regmap/regmap-mdio.c @@ -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)