Re: [PATCH] fec: fix tx bounce handling

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

Le lundi 06 février 2012 à 17:09 +0100, Tim Sander a écrit :
> Hi
> 
> I forward ported the patch i have for 3.0-rt (which was working on a quick test) 
> to the net-dev  branch with the patch from Eric mixed in. 
> 
> But a quick test revealed that dmesg is full of:
> eth0: tx queue full!.
> Not good! Any suggestions on this?
> 

Please dont mix things.

My patch has nothing to do with the TX ring handling.

> Tim
> 
> Heres my patch for 3.3:
> 
> diff --git a/drivers/net/ethernet/freescale/fec.c b/drivers/net/ethernet/freescale/fec.c
> index 336edd7..74d5865 100644
> --- a/drivers/net/ethernet/freescale/fec.c
> +++ b/drivers/net/ethernet/freescale/fec.c
> @@ -284,11 +284,6 @@ fec_enet_start_xmit(struct sk_buff *skb, struct net_device *ndev)
>         unsigned short  status;
>         unsigned long flags;
>  
> -       if (!fep->link) {



We first must fix the driver before removing this work around.


> -               /* Link is down or autonegotiation is in progress. */
> -               return NETDEV_TX_BUSY;
> -       }
> -

In fact, returning NETDEV_TX_BUSY here is proof driver is buggy.

We should not enter fec_enet_start_xmit() is device is not ready to send
frames.

There are missing netif_stop_queue(dev) in this driver.



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


[Linux Kernel Discussion]     [Ethernet Bridging]     [Linux Wireless Networking]     [Linux Bluetooth Networking]     [Linux Networking Users]     [VLAN]     [Git]     [IETF Annouce]     [Linux Assembly]     [Security]     [Bugtraq]     [Photo]     [Singles Social Networking]     [Yosemite Information]     [MIPS Linux]     [ARM Linux Kernel]     [ARM Linux]     [Linux Virtualization]     [Linux Security]     [Linux IDE]     [Linux RAID]     [Linux SCSI]     [Free Dating]

Add to Google Powered by Linux