Hi John, Sorry If I'm painting bike-sheds here, just one tiny tweak might be in order to standardise your mutex_unlock exit path:
> +static int xemaclite_mdio_read(struct mii_bus *bus, int phy_id, int reg) > +{ > + struct net_local *lp = bus->priv; > + u32 ctrl_reg; > + u32 rc; > + > + mutex_lock(&lp->mdio_mutex); > + > + if (xemaclite_mdio_wait(lp)) { > + mutex_unlock(&lp->mdio_mutex); > + return -ETIMEDOUT; > + } [snip] > + if (xemaclite_mdio_wait(lp)) { > + mutex_unlock(&lp->mdio_mutex); > + return -ETIMEDOUT; > + } [snip] > + dev_dbg(&lp->ndev->dev, > + "xemaclite_mdio_read(phy_id=%i, reg=%x) == %x\n", > + phy_id, reg, rc); > + > + return rc; Can this be better expressed like this: my_func() { mutex_lock() .. if(some error) { rc=-ETIMEDOUT; goto out_unlock; } ... /* success path */ rc=0; .. out_unlock: mutex_unlock() return rc; } Is this style still favoured in driver exit paths? Thanks, John -- John Williams, PhD, B.Eng, B.IT PetaLogix - Linux Solutions for a Reconfigurable World w: www.petalogix.com p: +61-7-30090663 f: +61-7-30090663 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev