Subject: Re: [PATCH][TG3]Some cleanups

From: jamal <[email-masked]>
Date: Tue, 02 Oct 2007 08:37:07 -0400

On Mon, 2007-01-10 at 17:21 -0700, Michael Chan wrote:

> Jamal, in tg3_enqueue_buggy(), we may have to call tg3_tso_bug() which
> will recursively call tg3_start_xmit_dma_bug() after segmenting the TSO
> packet into normal packets.  We need to restore the VLAN tag so that the
> GSO code will create the chain of segmented SKBs with the proper VLAN
> tag.

Excellent eye Michael.
The simplest solution seems to me to modify the definition of TG3_SKB_CB
as i did for e1000 from:
(struct tg3_tx_cbdata *)&((__skb)->cb[0])
to:
(struct tg3_tx_cbdata *)&((__skb)->cb[8])

that way the vlan tags are always present and no need to recreate them.
What do you think?

cheers,
jamal