[PATCH] fs_enet: Don't call phy_mii_ioctl() in atomic context.

Rune Torgersen runet at innovsys.com
Sat Feb 16 08:47:32 EST 2008


Scott Wood wrote:
> The lock acquisition in fs_ioctl() does not appear to actually be
> necessary, and thus is simply removed.
> 
> Signed-off-by: Scott Wood <scottwood at freescale.com> ---
> This fixes the following bug:
> http://ozlabs.org/pipermail/linuxppc-dev/2008-February/051564.html
> 
>  drivers/net/fs_enet/fs_enet-main.c |    7 +------
>  1 files changed, 1 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/net/fs_enet/fs_enet-main.c
> b/drivers/net/fs_enet/fs_enet-main.c
> index 42d94ed..af869cf 100644
> --- a/drivers/net/fs_enet/fs_enet-main.c
> +++ b/drivers/net/fs_enet/fs_enet-main.c
> @@ -946,16 +946,11 @@ static int fs_ioctl(struct net_device
> *dev, struct ifreq *rq, int cmd)
>  {
>  	struct fs_enet_private *fep = netdev_priv(dev);
>  	struct mii_ioctl_data *mii = (struct mii_ioctl_data
*)&rq->ifr_data;
> -	unsigned long flags;
> -	int rc;
> 
>  	if (!netif_running(dev))
>  		return -EINVAL;
> 
> -	spin_lock_irqsave(&fep->lock, flags);
> -	rc = phy_mii_ioctl(fep->phydev, mii, cmd);
> -	spin_unlock_irqrestore(&fep->lock, flags);
> -	return rc;
> +	return phy_mii_ioctl(fep->phydev, mii, cmd);
>  }
> 
>  extern int fs_mii_connect(struct net_device *dev);

Acked-by: Rune Torgersen <runet at innovsys.com>

Tested it and it does indeed take care of the bug.



More information about the Linuxppc-dev mailing list