Re: TG3 network data corruption regression 2.6.24/2.6.23.4

From: Tony Battersby
Date: Wed Apr 16 2008 - 17:00:57 EST


Matt Carlson wrote:
> On Wed, Apr 16, 2008 at 08:40:25AM -0700, Michael Chan wrote:
>
>> David Miller wrote:
>>
>>
>>> Matt, skb->mac_header is either a pointer or an integer offset
>>> depending upon whether we are building 32-bit or 64-bit.
>>>
>>> Testing skb->mac_header is therefore wrong, because it's an
>>> offset from a pointer in the 64-bit case and therefore it's
>>> alignment does not indicate correctly the actual final alignment
>>> of skb->head + skb->max_header.
>>>
>>> Therefore you should test skb_mac_header(skb) and cast it with
>>> (unsigned long).
>>>
>> Isn't it better to test for skb->data? That's where we tell
>> the hardware to start transmitting.
>>
>>
>>> Please respin this fix with that correction so I can apply it
>>> and get this bug fixed, thanks!
>>>
>>>
>>>
>> We think that this problem is unique in Tony's environment because
>> of the PCIE-to-PCI bridge that he is using. We therefore want to
>> test for that bridge and apply the workaround only when it's present.
>> We've never seen this problem in the last 6 or 7 years during the
>> lifetime of the 5701.
>>
>> We'll try to get this done ASAP.
>>
>> Thanks.
>>
>
> Tony,
>
> Below is a patch that attempts to limit the workaround to the bridge you
> have on your system. Can you test it and verify that the workaround is
> still enabled?
>
>
>

This new patch also passes the test. Thumbs up!

Tested-by: Tony Battersby <tonyb@xxxxxxxxxxxxxxx>

Tony

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