From: Leigh Brown Date: Tue, 29 Oct 2013 09:33:33 +0000 (+0000) Subject: net: mvmdio: slight optimisation of orion_mdio_write X-Git-Tag: next-20131105~63^2~37 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=526edcf56759142c1c250d2d4c55db9f25be644b;p=karo-tx-linux.git net: mvmdio: slight optimisation of orion_mdio_write Make only a single call to mutex_unlock in orion_mdio_write. Signed-off-by: Leigh Brown Signed-off-by: David S. Miller --- diff --git a/drivers/net/ethernet/marvell/mvmdio.c b/drivers/net/ethernet/marvell/mvmdio.c index e3898b3c91ad..0cfa0c860bc3 100644 --- a/drivers/net/ethernet/marvell/mvmdio.c +++ b/drivers/net/ethernet/marvell/mvmdio.c @@ -150,10 +150,8 @@ static int orion_mdio_write(struct mii_bus *bus, int mii_id, mutex_lock(&dev->lock); ret = orion_mdio_wait_ready(bus); - if (ret < 0) { - mutex_unlock(&dev->lock); - return ret; - } + if (ret < 0) + goto out; writel(((mii_id << MVMDIO_SMI_PHY_ADDR_SHIFT) | (regnum << MVMDIO_SMI_PHY_REG_SHIFT) | @@ -161,9 +159,9 @@ static int orion_mdio_write(struct mii_bus *bus, int mii_id, (value << MVMDIO_SMI_DATA_SHIFT)), dev->regs); +out: mutex_unlock(&dev->lock); - - return 0; + return ret; } static int orion_mdio_reset(struct mii_bus *bus)