Re: Fix g_ether ethtool link reporting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wednesday 04 March 2009, Jonathan McDowell wrote:
> The g_ether USB gadget driver currently decides whether or not there's a
> link to report back for eth_get_link based on if the USB link speed is
> set. The USB gadget speed is however often set even before the device is
> enumerated. It seems more sensible to only report a "link" if we're
> actually connected to a host that wants to talk to us. The patch below
> does this for me - tested with the PXA27x UDC driver.
> 
> Signed-Off-By: Jonathan McDowell <noodles@xxxxxxxx>

Wouldn't it make more sense to use ethtool_op_get_link()
instead of this private function?  That utility looks
new, else it surely would have been used a long time ago.


> -----
> diff --git a/drivers/usb/gadget/u_ether.c b/drivers/usb/gadget/u_ether.c
> index 96d65ca..2f723dd 100644
> --- a/drivers/usb/gadget/u_ether.c
> +++ b/drivers/usb/gadget/u_ether.c
> @@ -178,7 +178,14 @@ static void eth_get_drvinfo(struct net_device *net, struct ethtool_drvinfo *p)
>  static u32 eth_get_link(struct net_device *net)
>  {
>  	struct eth_dev	*dev = netdev_priv(net);
> -	return dev->gadget->speed != USB_SPEED_UNKNOWN;
> +	unsigned long	flags;
> +	int		status = 0;
> +
> +	spin_lock_irqsave(&dev->lock, flags);
> +	status = (dev->port_usb != NULL);
> +	spin_unlock_irqrestore(&dev->lock, flags);
> +
> +	return status;
>  }
>  
>  /* REVISIT can also support:





--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux