All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jan Beulich" <jbeulich@novell.com>
To: Jae-Wan Jang <jwjang@camars.kaist.ac.kr>, xen-devel@lists.xensource.com
Subject: Re: Xen bug or sky2 device driver bug?
Date: Fri, 18 Aug 2006 10:09:39 +0200	[thread overview]
Message-ID: <44E591E3.76E4.0078.0@novell.com> (raw)
In-Reply-To: <44E5713A.2050106@camars.kaist.ac.kr>

[-- Attachment #1: Type: text/plain, Size: 1317 bytes --]

We had determined this to be a problem in the bridge netfilter code, in that it can't
deal with skb-s that have no headroom set up (for alignment purposes), as the
sky2 driver appears to do.

I'm attaching the patch we use to address this in SLE10.

Jan

>>> Jae-Wan Jang <jwjang@camars.kaist.ac.kr> 18.08.06 09:50 >>>
Hello,

I'm using ASUS P5WD2-E Premium mother board.
It has two Marvell Yukon II gigabit Ethernet and sky2 device driver is
used for them.

When domU receives lots of lots of packets (about 10Kb each),
dom0 crashes.
Unfortunately, my machine doesn't have serial port, I can't capture all
the oops messages.
Following is backtrace of the oops messages.

When domU receives lots of packets from other physical machine, kernel
panic occurs.

Backtrace

br_handle_frame
br_nf_pre_routing_finish
br_nf_pre_routing
nf_iterate
nf_hook_slow
br_handle_frame
netif_receive_skb
sky2_poll
net_rx_action
__do_softirq
irq_exit
do_IRQ
evtchn_do_upcall
hypervisor_callback
xen_idle
cpu_idle
rest_init
start_kernel
0xc010006f

Is it bug of Xen or sky2 device?

Thanks in advance.

-- 

Jae-Wan Jang
jwjang@camars.kaist.ac.kr
+82-42-869-3559
http://camars.kaist.ac.kr/~jwjang


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

[-- Attachment #2: nf_bridge-header-size --]
[-- Type: application/octet-stream, Size: 1279 bytes --]

Subject: nf_bridge: ethernet header is 14 not 16 bytes
From: jbeulich@novell.com
Acked-by: kraxel@suse.de
References: 150410

The bridge netfilter code saves two more bytes that it should.
In most cases it doesn't hurt because many drivers use NET_IP_ALIGN
to make the IP header aligned, so there are two extra bytes head room
available.

Some drivers don't do that though (sky2 for example), so copying
accesses data outside the skbuff data allocation.  On xen kernels
this can kill the machine with a page fault due to the way how
skbuffs are allocated and the memory is managed.

Index: linux-2.6.16/include/linux/netfilter_bridge.h
===================================================================
--- linux-2.6.16.orig/include/linux/netfilter_bridge.h
+++ linux-2.6.16/include/linux/netfilter_bridge.h
@@ -73,14 +73,14 @@ void nf_bridge_maybe_copy_header(struct 
 			memcpy(skb->data - 18, skb->nf_bridge->data, 18);
 			skb_push(skb, 4);
 		} else
-			memcpy(skb->data - 16, skb->nf_bridge->data, 16);
+			memcpy(skb->data - 14, skb->nf_bridge->data, 14);
 	}
 }
 
 static inline
 void nf_bridge_save_header(struct sk_buff *skb)
 {
-        int header_size = 16;
+        int header_size = 14;
 
 	if (skb->protocol == __constant_htons(ETH_P_8021Q))
 		header_size = 18;

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

  reply	other threads:[~2006-08-18  8:09 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-18  7:50 Xen bug or sky2 device driver bug? Jae-Wan Jang
2006-08-18  8:09 ` Jan Beulich [this message]
2006-08-18  8:16 ` Gerd Hoffmann
2006-08-18 11:00   ` Jae-Wan Jang
2006-08-18 15:59   ` Jan De Landtsheer
2006-08-18 23:09     ` Stephen Hemminger
2006-08-18  8:22 ` Marco Gerards
2006-08-18 23:10 ` Stephen Hemminger
  -- strict thread matches above, loose matches on Subject: below --
2006-08-18  8:04 Ian Pratt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44E591E3.76E4.0078.0@novell.com \
    --to=jbeulich@novell.com \
    --cc=jwjang@camars.kaist.ac.kr \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.