From e56360d6a119f531506658ea87238e48ad4c95c2 Mon Sep 17 00:00:00 2001 From: Andy Shevchenko Date: Thu, 20 May 2021 15:05:18 +0300 Subject: 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 --- drivers/base/regmap/regmap-mdio.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'drivers/base') diff --git a/drivers/base/regmap/regmap-mdio.c b/drivers/base/regmap/regmap-mdio.c index 5f18fe409f56..5ec208279913 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) -- cgit v1.2.3