E1000 driver enables TSOv6 for hardware that doesn't support it

Bug #236924 reported by Bhavesh Davda on 2008-06-02
4
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Undecided
Unassigned

Bug Description

Binary package hint: linux-image

The linux-2.6.24-X kernels shipped with Ubuntu 8.04 include the e1000-7.3.20-k2-NAPI driver for E1000 NICs.

lsb_release -rd
Description: Ubuntu 8.04
Release: 8.04

I'm copy-pasting text from a similar bug report I filed at https://bugzilla.redhat.com/show_bug.cgi?id=449175

How reproducible: 100%

Steps to Reproduce:
1. Boot Ubuntu-8.04 in a VMware VM, with an e1000 virtual NIC that emulates an 82545EM, which doesn't support TSO over IPv6.
2. ethtool -K ethX tso on
3. Transmit any TCP over IPv6 packet.

Actual results:

Hits an ASSERT in the VMware hypervisor which triggers if TSO6 is attempted to
be used on the 82545EM emulated vNIC.

Expected results:

TSO6 should not be used for NICs that don't support it.

Additional info:

The Intel version of the driver (http://e1000.sourceforge.net), at least
versions 7.6.12 and later that I looked at, conditionally advertise NETIF_F_TSO6
in e1000_set_tso, based on whether e1000_probe detected a mac type >= 82547_rev_2.

We could patch our emulation to not assert that TSO6 is being used for transmit,
but that would only be a workaround for an issue with the driver, which could
cause undefined behaviour with real E1000 hardware as well.

[This is an automated message. Apologies if it has reached you inappropriately.]

This bug was reported against the linux-meta package when it likely should have been reported against the linux package instead. We are automatically transitioning this to the linux kernel package so that the appropriate teams are notified and made aware of this issue. Thanks.

affects: linux-meta (Ubuntu) → linux (Ubuntu)
kernel-janitor (kernel-janitor) wrote :

Hi bhavesh,

Please be sure to confirm this issue exists with the latest development release of Ubuntu. ISO CD images are available from http://cdimage.ubuntu.com/releases/ . Please then run following command from a Terminal (Applications->Accessories->Terminal). It will automatically gather and attach updated debug information to this report.

apport-collect -p linux-image-`uname -r` 236924

Also, if you could test the latest upstream kernel available that would be great. It will allow additional upstream developers to examine the issue. Refer to https://wiki.ubuntu.com/KernelMainlineBuilds . Once you've tested the upstream kernel, please remove the 'needs-upstream-testing' tag. This can be done by clicking on the yellow pencil icon next to the tag located at the bottom of the bug description and deleting the 'needs-upstream-testing' text. Please let us know your results.

Thanks in advance.

[This is an automated message. Apologies if it has reached you inappropriately; please just reply to this message indicating so.]

tags: added: needs-kernel-logs
tags: added: needs-upstream-testing
tags: added: kj-triage
Changed in linux (Ubuntu):
status: New → Incomplete
Bhavesh Davda (bhavesh) wrote :

Hi!

I looked at Linus' git tree, and noticed that this is already fixed in it. I searched the commit history and found that the following commit fixed it in the upstream kernel:

Author: Andy Gospodarek <email address hidden> 2008-06-19 14:19:02
Committer: Jeff Garzik <email address hidden> 2008-06-26 22:31:08
Follows: v2.6.26-rc6
Precedes: v2.6.26-rc9

    e1000: only enable TSO6 via ethtool when using correct hardware

    When enabling TSO via ethool on e1000, it is possible to set
    NETIF_F_TSO6 on hardware that does not support it. Setting TSO via
    ethtool now matches the settings used when the hardware is probed.

    Signed-off-by: Andy Gospodarek <email address hidden>
    Signed-off-by: Jeff Garzik <email address hidden>

Thanks for the note. Looks like this is already in the Karmic kernel as well. Marking this Fix Released. Thanks.

ogasawara@yoji:~/ubuntu-karmic$ git show 581abbc26a7adb693fb8b913f1be18d1c349c1ab
commit 581abbc26a7adb693fb8b913f1be18d1c349c1ab
Author: Andy Gospodarek <email address hidden>
Date: Thu Jun 19 17:19:02 2008 -0400

    e1000: only enable TSO6 via ethtool when using correct hardware

    When enabling TSO via ethool on e1000, it is possible to set
    NETIF_F_TSO6 on hardware that does not support it. Setting TSO via
    ethtool now matches the settings used when the hardware is probed.

    Signed-off-by: Andy Gospodarek <email address hidden>
    Signed-off-by: Jeff Garzik <email address hidden>

Changed in linux (Ubuntu):
status: Incomplete → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers