On Thu, 2011-08-25 at 17:39 -0700, Dean Nelson wrote:
Virtual Machines with emulated e1000 network adapter running on
Parallels'
server were seeing kernel panics due to the e1000 driver dereferencing
an
unexpected NULL pointer retrieved from buffer_info->skb.
The problem has been addressed for the e1000e driver, but not for the
e1000.
Since the two drivers share similar code in the affected area, a port
of the
following e1000e driver commit solves the issue for the e1000 driver:
commit 9ed318d546a29d7a591dbe648fd1a2efe3be1180
Author: Tom Herbert [off-list ref]
Date: Wed May 5 14:02:27 2010 +0000
e1000e: save skb counts in TX to avoid cache misses
In e1000_tx_map, precompute number of segements and bytecounts
which
are derived from fields in skb; these are stored in buffer_info.
When
cleaning tx in e1000_clean_tx_irq use the values in the associated
buffer_info for statistics counting, this eliminates cache misses
on skb fields.
Signed-off-by: Dean Nelson <redacted>
Acked-by: Jeff Kirsher <redacted>
Looks fine.