netdev
[Top] [All Lists]

Re: [PATCH] (13/23) sk98: handle ring full correctly

To: Stephen Hemminger <shemminger@xxxxxxxx>
Subject: Re: [PATCH] (13/23) sk98: handle ring full correctly
From: Tommy Christensen <tommy.christensen@xxxxxxxxx>
Date: 12 Nov 2004 11:54:48 +0100
Cc: Jeff Garzik <jgarzik@xxxxxxxxx>, Michael Heyse <mhk@xxxxxxxxxxxxxxxxx>, Mirko Lindner <mlindner@xxxxxxxxxxxxx>, netdev@xxxxxxxxxxx
In-reply-to: <20041111160008.005fbca5@xxxxxxxxxxxxxxxxx>
Organization:
References: <4192C60A.1050205@xxxxxxxxxxxxxxxxx> <20041111154225.5cf85567@xxxxxxxxxxxxxxxxx> <20041111160008.005fbca5@xxxxxxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
On Fri, 2004-11-12 at 01:00, Stephen Hemminger wrote:
> This driver needs to manage it's transmit queue properly.
> The hard_start_xmit needs to return OK if send successfully
> and BUSY (1) if queue is full. In either case must free skb,
> existing code would leak if tx ring filled!

This isn't true. When returning NETDEV_TX_BUSY, the caller
will requeue or drop the skb. So

> +     /* Transmit failed, out of resources */
> +     if (rc < 0) {
> +             dev_kfree_skb(skb);
> +             return NETDEV_TX_BUSY;
> +     } else {
> +             dev->trans_start = jiffies;             
> +             return NETDEV_TX_OK;
> +     }

it shouldn't be freed here.

-Tommy


<Prev in Thread] Current Thread [Next in Thread>