On 06/07/2012 05:49 AM, Roman Kagan wrote: > [Upstream commit 31c15a2f24ebdab14333d9bf5df49757842ae2ec with paths > adjusted to compensate for the drivers/net/ethernet/intel reorg in > dee1ad47f2ee75f5146d83ca757c1b7861c34c3b] > > Author: Dean Nelson > Date: Thu Aug 25 14:39:24 2011 +0000 > > e1000: save skb counts in TX to avoid cache misses > > 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 > 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 > Acked-by: Jeff Kirsher > Signed-off-by: David S. Miller > Signed-off-by: Roman Kagan > --- > drivers/net/e1000/e1000.h | 2 ++ > drivers/net/e1000/e1000_main.c | 18 +++++++++--------- > 2 files changed, 11 insertions(+), 9 deletions(-) Thanks! I have applied the patch to my queue