e1000e msix interrupts broken in linux-image-4.15.0-15-generic
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
Medium
|
Joseph Salisbury | ||
Bionic |
Fix Released
|
Medium
|
Joseph Salisbury |
Bug Description
== SRU Justification ==
Linux kernel 4.15 has introduced a bug in e1000e msix interrupt drivers,
which violates the e1000e specification. Specifically, the driver
configures auto-clearing of the "OTHER" interrupt types, and the "OTHER" interrupt
handler expects to see an uncleared interrupt source for the "OTHER" types;
consequently, the link state change interrupts are not identified by the driver,
and thus the virtual E1000e device doesn't function correctly inside VMware VMs.
This patch Fixes: 4aea7a5c5e94 ("e1000e: Avoid receiver overrun interrupt bursts")
== Fix ==
745d0bd3af99 ("e1000e: Remove Other from EIAC")
== Regression Potential ==
Low. Fixes an existing regression and limited to e1000e driver.
== Test Case ==
A test kernel was built with this patch and tested by the original bug reporter.
The bug reporter states the test kernel resolved the bug.
== Original Bug Description ==
Hi Ubuntu folks,
Linux kernel 4.15 has introduced a bug in e1000e msix interrupt drivers, which violates the e1000e specification. Specifically, the driver configures auto-clearing of the "OTHER" interrupt types, and the "OTHER" interrupt handler expects to see an uncleared interrupt source for the "OTHER" types; consequently, the link state change interrupts are not identified by the driver, and thus the virtual E1000e device doesn't function correctly inside VMware VMs.
I have verified that Linux kernel 4.16.2 has fixed the issues and our on-perm QE has verified 4.16-RC functions correctly inside VMware VMs.
Could you please crossport the fix from linux-4.16 into Ubuntu 18.04 that would be frozen in 2 days? Here are the change history:
https:/
Benjamin Poirier (7):
e1000e: Remove Other from EIAC
Partial revert "e1000e: Avoid receiver overrun interrupt bursts"
e1000e: Fix queue interrupt re-raising in Other interrupt
e1000e: Avoid missed interrupts following ICR read
e1000e: Fix check_for_link return value with autoneg off
Revert "e1000e: Separate signaling for link check/link up"
e1000e: Fix link check race condition
Thanks,
-zheng
Changed in linux (Ubuntu): | |
status: | Incomplete → Confirmed |
Changed in linux (Ubuntu): | |
importance: | Undecided → Medium |
Changed in linux (Ubuntu Bionic): | |
status: | Confirmed → Triaged |
tags: | added: bionic kernel-da-key |
Changed in linux (Ubuntu Bionic): | |
status: | Triaged → In Progress |
assignee: | nobody → Joseph Salisbury (jsalisbury) |
Changed in linux (Ubuntu Bionic): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu): | |
status: | In Progress → Fix Released |
This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:
apport-collect 1764892
and then change the status of the bug to 'Confirmed'.
If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.
This change has been made by an automated script, maintained by the Ubuntu Kernel Team.