> --- a/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c > +++ b/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c > @@ -649,12 +649,7 @@ static void fs_adjust_link(struct net_device *dev) > unsigned long flags; > > spin_lock_irqsave(&fep->lock, flags); > - > - if (fep->ops->adjust_link) > - fep->ops->adjust_link(dev); > - else > - generic_adjust_link(dev); > - > + generic_adjust_link(dev); > spin_unlock_irqrestore(&fep->lock, flags);
Holding a spinlock is pretty unusual. We are in thread context, and the phydev mutex is held. Looking at generic_adjust_link, do any of the fep->foo variables actually need protecting, particularly from changes in interrupts context? Andrew