<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/net/ipv6, branch v3.8-rc5</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>ipv6: use addrconf_get_prefix_route for prefix route lookup [v2]</title>
<updated>2013-01-10T22:22:54+00:00</updated>
<author>
<name>Romain Kuntz</name>
<email>r.kuntz@ipflavors.com</email>
</author>
<published>2013-01-09T21:06:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=21caa6622b36190a32b19dfa734822c2eb93e1fd'/>
<id>21caa6622b36190a32b19dfa734822c2eb93e1fd</id>
<content type='text'>
Replace ip6_route_lookup() with addrconf_get_prefix_route() when
looking up for a prefix route. This ensures that the connected prefix
is looked up in the main table, and avoids the selection of other
matching routes located in different tables as well as blackhole
or prohibited entries.

In addition, this fixes an Opps introduced by commit 64c6d08e (ipv6:
del unreachable route when an addr is deleted on lo), that would occur
when a blackhole or prohibited entry is selected by ip6_route_lookup().
Such entries have a NULL rt6i_table argument, which is accessed by
__ip6_del_rt() when trying to lock rt6i_table-&gt;tb6_lock.

The function addrconf_is_prefix_route() is not used anymore and is
removed.

[v2] Minor indentation cleanup and log updates.

Signed-off-by: Romain Kuntz &lt;r.kuntz@ipflavors.com&gt;
Acked-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Acked-by: YOSHIFUJI Hideaki &lt;yoshfuji@linux-ipv6.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace ip6_route_lookup() with addrconf_get_prefix_route() when
looking up for a prefix route. This ensures that the connected prefix
is looked up in the main table, and avoids the selection of other
matching routes located in different tables as well as blackhole
or prohibited entries.

In addition, this fixes an Opps introduced by commit 64c6d08e (ipv6:
del unreachable route when an addr is deleted on lo), that would occur
when a blackhole or prohibited entry is selected by ip6_route_lookup().
Such entries have a NULL rt6i_table argument, which is accessed by
__ip6_del_rt() when trying to lock rt6i_table-&gt;tb6_lock.

The function addrconf_is_prefix_route() is not used anymore and is
removed.

[v2] Minor indentation cleanup and log updates.

Signed-off-by: Romain Kuntz &lt;r.kuntz@ipflavors.com&gt;
Acked-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Acked-by: YOSHIFUJI Hideaki &lt;yoshfuji@linux-ipv6.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv6: fix the noflags test in addrconf_get_prefix_route</title>
<updated>2013-01-10T22:13:33+00:00</updated>
<author>
<name>Romain Kuntz</name>
<email>r.kuntz@ipflavors.com</email>
</author>
<published>2013-01-09T14:02:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=85da53bf1c336bb07ac038fb951403ab0478d2c5'/>
<id>85da53bf1c336bb07ac038fb951403ab0478d2c5</id>
<content type='text'>
The tests on the flags in addrconf_get_prefix_route() does no make
much sense: the 'noflags' parameter contains the set of flags that
must not match with the route flags, so the test must be done
against 'noflags', and not against 'flags'.

Signed-off-by: Romain Kuntz &lt;r.kuntz@ipflavors.com&gt;
Acked-by: YOSHIFUJI Hideaki &lt;yoshfuji@linux-ipv6.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The tests on the flags in addrconf_get_prefix_route() does no make
much sense: the 'noflags' parameter contains the set of flags that
must not match with the route flags, so the test must be done
against 'noflags', and not against 'flags'.

Signed-off-by: Romain Kuntz &lt;r.kuntz@ipflavors.com&gt;
Acked-by: YOSHIFUJI Hideaki &lt;yoshfuji@linux-ipv6.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>netfilter: ip6t_NPT: fix IPv6 NTP checksum calculation</title>
<updated>2013-01-04T19:03:02+00:00</updated>
<author>
<name>Ulrich Weber</name>
<email>ulrich.weber@sophos.com</email>
</author>
<published>2013-01-02T05:24:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=429da4c0b1e59837ec946cdf0f04eb1899586923'/>
<id>429da4c0b1e59837ec946cdf0f04eb1899586923</id>
<content type='text'>
csum16_add() has a broken carry detection, should be:
sum += sum &lt; (__force u16)b;

Instead of fixing csum16_add, remove the custom checksum
functions and use the generic csum_add/csum_sub ones.

Signed-off-by: Ulrich Weber &lt;ulrich.weber@sophos.com&gt;
Acked-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
csum16_add() has a broken carry detection, should be:
sum += sum &lt; (__force u16)b;

Instead of fixing csum16_add, remove the custom checksum
functions and use the generic csum_add/csum_sub ones.

Signed-off-by: Ulrich Weber &lt;ulrich.weber@sophos.com&gt;
Acked-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://1984.lsi.us.es/nf</title>
<updated>2012-12-28T22:28:17+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2012-12-28T22:24:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ac196f8c92948deb0fc9ae617f3a453c6d71fa69'/>
<id>ac196f8c92948deb0fc9ae617f3a453c6d71fa69</id>
<content type='text'>
Pablo Neira Ayuso says:

====================
The following batch contains Netfilter fixes for 3.8-rc1. They are
a mixture of old bugs that have passed unnoticed (I'll pass these to
stable) and more fresh ones from the previous merge window, they are:

* Fix for MAC address in 6in4 tunnels via NFLOG that results in ulogd
  showing up wrong address, from Bob Hockney.

* Fix a comment in nf_conntrack_ipv6, from Florent Fourcot.

* Fix a leak an error path in ctnetlink while creating an expectation,
  from Jesper Juhl.

* Fix missing ICMP time exceeded in the IPv6 defragmentation code, from
  Haibo Xi.

* Fix inconsistent handling of routing changes in MASQUERADE for the
  new connections case, from Andrew Collins.

* Fix a missing skb_reset_transport in ip[6]t_REJECT that leads to
  crashes in the ixgbe driver (since it seems to access the transport
  header with TSO enabled), from Mukund Jampala.

* Recover obsoleted NOTRACK target by including it into the CT and spot
  a warning via printk about being obsoleted. Many people don't check the
  scheduled to be removal file under Documentation, so we follow some
  less agressive approach to kill this in a year or so. Spotted by Florian
  Westphal, patch from myself.

* Fix race condition in xt_hashlimit that allows to create two or more
  entries, from myself.

* Fix crash if the CT is used due to the recently added facilities to
  consult the dying and unconfirmed conntrack lists, from myself.
====================

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pablo Neira Ayuso says:

====================
The following batch contains Netfilter fixes for 3.8-rc1. They are
a mixture of old bugs that have passed unnoticed (I'll pass these to
stable) and more fresh ones from the previous merge window, they are:

* Fix for MAC address in 6in4 tunnels via NFLOG that results in ulogd
  showing up wrong address, from Bob Hockney.

* Fix a comment in nf_conntrack_ipv6, from Florent Fourcot.

* Fix a leak an error path in ctnetlink while creating an expectation,
  from Jesper Juhl.

* Fix missing ICMP time exceeded in the IPv6 defragmentation code, from
  Haibo Xi.

* Fix inconsistent handling of routing changes in MASQUERADE for the
  new connections case, from Andrew Collins.

* Fix a missing skb_reset_transport in ip[6]t_REJECT that leads to
  crashes in the ixgbe driver (since it seems to access the transport
  header with TSO enabled), from Mukund Jampala.

* Recover obsoleted NOTRACK target by including it into the CT and spot
  a warning via printk about being obsoleted. Many people don't check the
  scheduled to be removal file under Documentation, so we follow some
  less agressive approach to kill this in a year or so. Spotted by Florian
  Westphal, patch from myself.

* Fix race condition in xt_hashlimit that allows to create two or more
  entries, from myself.

* Fix crash if the CT is used due to the recently added facilities to
  consult the dying and unconfirmed conntrack lists, from myself.
====================

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv6/ip6_gre: set transport header correctly</title>
<updated>2012-12-26T23:19:56+00:00</updated>
<author>
<name>Isaku Yamahata</name>
<email>yamahata@valinux.co.jp</email>
</author>
<published>2012-12-24T16:51:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ae782bb16c35ce27512beeda9be6024c88f85b08'/>
<id>ae782bb16c35ce27512beeda9be6024c88f85b08</id>
<content type='text'>
ip6gre_xmit2() incorrectly sets transport header to inner payload
instead of GRE header. It seems copy-and-pasted from ipip.c.
Set transport header to gre header.
(In ipip case the transport header is the inner ip header, so that's
correct.)

Found by inspection. In practice the incorrect transport header
doesn't matter because the skb usually is sent to another net_device
or socket, so the transport header isn't referenced.

Signed-off-by: Isaku Yamahata &lt;yamahata@valinux.co.jp&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ip6gre_xmit2() incorrectly sets transport header to inner payload
instead of GRE header. It seems copy-and-pasted from ipip.c.
Set transport header to gre header.
(In ipip case the transport header is the inner ip header, so that's
correct.)

Found by inspection. In practice the incorrect transport header
doesn't matter because the skb usually is sent to another net_device
or socket, so the transport header isn't referenced.

Signed-off-by: Isaku Yamahata &lt;yamahata@valinux.co.jp&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv6: addrconf.c: remove unnecessary "if"</title>
<updated>2012-12-19T20:50:06+00:00</updated>
<author>
<name>Cong Ding</name>
<email>dinggnu@gmail.com</email>
</author>
<published>2012-12-18T12:08:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=bd7790286b4acd52ecbd8123b1ce052cf1b931b1'/>
<id>bd7790286b4acd52ecbd8123b1ce052cf1b931b1</id>
<content type='text'>
the value of err is always negative if it goes to errout, so we don't need to
check the value of err.

Signed-off-by: Cong Ding &lt;dinggnu@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the value of err is always negative if it goes to errout, so we don't need to
check the value of err.

Signed-off-by: Cong Ding &lt;dinggnu@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>netfilter: nf_ct_reasm: fix conntrack reassembly expire code</title>
<updated>2012-12-16T22:41:25+00:00</updated>
<author>
<name>Haibo Xi</name>
<email>haibbo@gmail.com</email>
</author>
<published>2012-12-06T23:42:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=97cf00e93cc24898493e7a058105e3215257ee04'/>
<id>97cf00e93cc24898493e7a058105e3215257ee04</id>
<content type='text'>
Commit b836c99fd6c9 (ipv6: unify conntrack reassembly expire
code with standard one) use the standard IPv6 reassembly
code(ip6_expire_frag_queue) to handle conntrack reassembly expire.

In ip6_expire_frag_queue, it invoke dev_get_by_index_rcu to get
which device received this expired packet.so we must save ifindex
when NF_conntrack get this packet.

With this patch applied, I can see ICMP Time Exceeded sent
from the receiver when the sender sent out 1/2 fragmented
IPv6 packet.

Signed-off-by: Haibo Xi &lt;haibbo@gmail.com&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit b836c99fd6c9 (ipv6: unify conntrack reassembly expire
code with standard one) use the standard IPv6 reassembly
code(ip6_expire_frag_queue) to handle conntrack reassembly expire.

In ip6_expire_frag_queue, it invoke dev_get_by_index_rcu to get
which device received this expired packet.so we must save ifindex
when NF_conntrack get this packet.

With this patch applied, I can see ICMP Time Exceeded sent
from the receiver when the sender sent out 1/2 fragmented
IPv6 packet.

Signed-off-by: Haibo Xi &lt;haibbo@gmail.com&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>netfilter: nf_conntrack_ipv6: fix comment for packets without data</title>
<updated>2012-12-16T22:28:31+00:00</updated>
<author>
<name>Florent Fourcot</name>
<email>florent.fourcot@enst-bretagne.fr</email>
</author>
<published>2012-12-14T00:53:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=d7a769ff0e8f908ae8113fe523e7806b6d0b5fc7'/>
<id>d7a769ff0e8f908ae8113fe523e7806b6d0b5fc7</id>
<content type='text'>
Remove ambiguity of double negation.

Signed-off-by: Florent Fourcot &lt;florent.fourcot@enst-bretagne.fr&gt;
Acked-by: Rick Jones &lt;rick.jones2@hp.com&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove ambiguity of double negation.

Signed-off-by: Florent Fourcot &lt;florent.fourcot@enst-bretagne.fr&gt;
Acked-by: Rick Jones &lt;rick.jones2@hp.com&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>netfilter: nf_nat: Also handle non-ESTABLISHED routing changes in MASQUERADE</title>
<updated>2012-12-16T22:28:30+00:00</updated>
<author>
<name>Andrew Collins</name>
<email>bsderandrew@gmail.com</email>
</author>
<published>2012-12-12T14:23:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=c65ef8dc7b1c16379b9fc29e925716a10804af43'/>
<id>c65ef8dc7b1c16379b9fc29e925716a10804af43</id>
<content type='text'>
Since (a0ecb85 netfilter: nf_nat: Handle routing changes in MASQUERADE
target), the MASQUERADE target handles routing changes which affect
the output interface of a connection, but only for ESTABLISHED
connections.  It is also possible for NEW connections which
already have a conntrack entry to be affected by routing changes.

This adds a check to drop entries in the NEW+conntrack state
when the oif has changed.

Signed-off-by: Andrew Collins &lt;bsderandrew@gmail.com&gt;
Acked-by: Jozsef Kadlecsik &lt;kadlec@blackhole.kfki.hu&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since (a0ecb85 netfilter: nf_nat: Handle routing changes in MASQUERADE
target), the MASQUERADE target handles routing changes which affect
the output interface of a connection, but only for ESTABLISHED
connections.  It is also possible for NEW connections which
already have a conntrack entry to be affected by routing changes.

This adds a check to drop entries in the NEW+conntrack state
when the oif has changed.

Signed-off-by: Andrew Collins &lt;bsderandrew@gmail.com&gt;
Acked-by: Jozsef Kadlecsik &lt;kadlec@blackhole.kfki.hu&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>netfilter: ip[6]t_REJECT: fix wrong transport header pointer in TCP reset</title>
<updated>2012-12-16T22:27:35+00:00</updated>
<author>
<name>Mukund Jampala</name>
<email>jbmukund@gmail.com</email>
</author>
<published>2012-12-16T18:25:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=c6f408996c625cb950cad024f90e50519f94713c'/>
<id>c6f408996c625cb950cad024f90e50519f94713c</id>
<content type='text'>
The problem occurs when iptables constructs the tcp reset packet.
It doesn't initialize the pointer to the tcp header within the skb.
When the skb is passed to the ixgbe driver for transmit, the ixgbe
driver attempts to access the tcp header and crashes.
Currently, other drivers (such as our 1G e1000e or igb drivers) don't
access the tcp header on transmit unless the TSO option is turned on.

&lt;1&gt;BUG: unable to handle kernel NULL pointer dereference at 0000000d
&lt;1&gt;IP: [&lt;d081621c&gt;] ixgbe_xmit_frame_ring+0x8cc/0x2260 [ixgbe]
&lt;4&gt;*pdpt = 0000000085e5d001 *pde = 0000000000000000
&lt;0&gt;Oops: 0000 [#1] SMP
[...]
&lt;4&gt;Pid: 0, comm: swapper Tainted: P            2.6.35.12 #1 Greencity/Thurley
&lt;4&gt;EIP: 0060:[&lt;d081621c&gt;] EFLAGS: 00010246 CPU: 16
&lt;4&gt;EIP is at ixgbe_xmit_frame_ring+0x8cc/0x2260 [ixgbe]
&lt;4&gt;EAX: c7628820 EBX: 00000007 ECX: 00000000 EDX: 00000000
&lt;4&gt;ESI: 00000008 EDI: c6882180 EBP: dfc6b000 ESP: ced95c48
&lt;4&gt; DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
&lt;0&gt;Process swapper (pid: 0, ti=ced94000 task=ced73bd0 task.ti=ced94000)
&lt;0&gt;Stack:
&lt;4&gt; cbec7418 c779e0d8 c77cc888 c77cc8a8 0903010a 00000000 c77c0008 00000002
&lt;4&gt;&lt;0&gt; cd4997c0 00000010 dfc6b000 00000000 d0d176c9 c77cc8d8 c6882180 cbec7318
&lt;4&gt;&lt;0&gt; 00000004 00000004 cbec7230 cbec7110 00000000 cbec70c0 c779e000 00000002
&lt;0&gt;Call Trace:
&lt;4&gt; [&lt;d0d176c9&gt;] ? 0xd0d176c9
&lt;4&gt; [&lt;d0d18a4d&gt;] ? 0xd0d18a4d
&lt;4&gt; [&lt;411e243e&gt;] ? dev_hard_start_xmit+0x218/0x2d7
&lt;4&gt; [&lt;411f03d7&gt;] ? sch_direct_xmit+0x4b/0x114
&lt;4&gt; [&lt;411f056a&gt;] ? __qdisc_run+0xca/0xe0
&lt;4&gt; [&lt;411e28b0&gt;] ? dev_queue_xmit+0x2d1/0x3d0
&lt;4&gt; [&lt;411e8120&gt;] ? neigh_resolve_output+0x1c5/0x20f
&lt;4&gt; [&lt;411e94a1&gt;] ? neigh_update+0x29c/0x330
&lt;4&gt; [&lt;4121cf29&gt;] ? arp_process+0x49c/0x4cd
&lt;4&gt; [&lt;411f80c9&gt;] ? nf_hook_slow+0x3f/0xac
&lt;4&gt; [&lt;4121ca8d&gt;] ? arp_process+0x0/0x4cd
&lt;4&gt; [&lt;4121ca8d&gt;] ? arp_process+0x0/0x4cd
&lt;4&gt; [&lt;4121c6d5&gt;] ? T.901+0x38/0x3b
&lt;4&gt; [&lt;4121c918&gt;] ? arp_rcv+0xa3/0xb4
&lt;4&gt; [&lt;4121ca8d&gt;] ? arp_process+0x0/0x4cd
&lt;4&gt; [&lt;411e1173&gt;] ? __netif_receive_skb+0x32b/0x346
&lt;4&gt; [&lt;411e19e1&gt;] ? netif_receive_skb+0x5a/0x5f
&lt;4&gt; [&lt;411e1ea9&gt;] ? napi_skb_finish+0x1b/0x30
&lt;4&gt; [&lt;d0816eb4&gt;] ? ixgbe_xmit_frame_ring+0x1564/0x2260 [ixgbe]
&lt;4&gt; [&lt;41013468&gt;] ? lapic_next_event+0x13/0x16
&lt;4&gt; [&lt;410429b2&gt;] ? clockevents_program_event+0xd2/0xe4
&lt;4&gt; [&lt;411e1b03&gt;] ? net_rx_action+0x55/0x127
&lt;4&gt; [&lt;4102da1a&gt;] ? __do_softirq+0x77/0xeb
&lt;4&gt; [&lt;4102dab1&gt;] ? do_softirq+0x23/0x27
&lt;4&gt; [&lt;41003a67&gt;] ? do_IRQ+0x7d/0x8e
&lt;4&gt; [&lt;41002a69&gt;] ? common_interrupt+0x29/0x30
&lt;4&gt; [&lt;41007bcf&gt;] ? mwait_idle+0x48/0x4d
&lt;4&gt; [&lt;4100193b&gt;] ? cpu_idle+0x37/0x4c
&lt;0&gt;Code: df 09 d7 0f 94 c2 0f b6 d2 e9 e7 fb ff ff 31 db 31 c0 e9 38
ff ff ff 80 78 06 06 0f 85 3e fb ff ff 8b 7c 24 38 8b 8f b8 00 00 00
&lt;0f&gt; b6 51 0d f6 c2 01 0f 85 27 fb ff ff 80 e2 02 75 0d 8b 6c 24
&lt;0&gt;EIP: [&lt;d081621c&gt;] ixgbe_xmit_frame_ring+0x8cc/0x2260 [ixgbe] SS:ESP

Signed-off-by: Mukund Jampala &lt;jbmukund@gmail.com&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The problem occurs when iptables constructs the tcp reset packet.
It doesn't initialize the pointer to the tcp header within the skb.
When the skb is passed to the ixgbe driver for transmit, the ixgbe
driver attempts to access the tcp header and crashes.
Currently, other drivers (such as our 1G e1000e or igb drivers) don't
access the tcp header on transmit unless the TSO option is turned on.

&lt;1&gt;BUG: unable to handle kernel NULL pointer dereference at 0000000d
&lt;1&gt;IP: [&lt;d081621c&gt;] ixgbe_xmit_frame_ring+0x8cc/0x2260 [ixgbe]
&lt;4&gt;*pdpt = 0000000085e5d001 *pde = 0000000000000000
&lt;0&gt;Oops: 0000 [#1] SMP
[...]
&lt;4&gt;Pid: 0, comm: swapper Tainted: P            2.6.35.12 #1 Greencity/Thurley
&lt;4&gt;EIP: 0060:[&lt;d081621c&gt;] EFLAGS: 00010246 CPU: 16
&lt;4&gt;EIP is at ixgbe_xmit_frame_ring+0x8cc/0x2260 [ixgbe]
&lt;4&gt;EAX: c7628820 EBX: 00000007 ECX: 00000000 EDX: 00000000
&lt;4&gt;ESI: 00000008 EDI: c6882180 EBP: dfc6b000 ESP: ced95c48
&lt;4&gt; DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
&lt;0&gt;Process swapper (pid: 0, ti=ced94000 task=ced73bd0 task.ti=ced94000)
&lt;0&gt;Stack:
&lt;4&gt; cbec7418 c779e0d8 c77cc888 c77cc8a8 0903010a 00000000 c77c0008 00000002
&lt;4&gt;&lt;0&gt; cd4997c0 00000010 dfc6b000 00000000 d0d176c9 c77cc8d8 c6882180 cbec7318
&lt;4&gt;&lt;0&gt; 00000004 00000004 cbec7230 cbec7110 00000000 cbec70c0 c779e000 00000002
&lt;0&gt;Call Trace:
&lt;4&gt; [&lt;d0d176c9&gt;] ? 0xd0d176c9
&lt;4&gt; [&lt;d0d18a4d&gt;] ? 0xd0d18a4d
&lt;4&gt; [&lt;411e243e&gt;] ? dev_hard_start_xmit+0x218/0x2d7
&lt;4&gt; [&lt;411f03d7&gt;] ? sch_direct_xmit+0x4b/0x114
&lt;4&gt; [&lt;411f056a&gt;] ? __qdisc_run+0xca/0xe0
&lt;4&gt; [&lt;411e28b0&gt;] ? dev_queue_xmit+0x2d1/0x3d0
&lt;4&gt; [&lt;411e8120&gt;] ? neigh_resolve_output+0x1c5/0x20f
&lt;4&gt; [&lt;411e94a1&gt;] ? neigh_update+0x29c/0x330
&lt;4&gt; [&lt;4121cf29&gt;] ? arp_process+0x49c/0x4cd
&lt;4&gt; [&lt;411f80c9&gt;] ? nf_hook_slow+0x3f/0xac
&lt;4&gt; [&lt;4121ca8d&gt;] ? arp_process+0x0/0x4cd
&lt;4&gt; [&lt;4121ca8d&gt;] ? arp_process+0x0/0x4cd
&lt;4&gt; [&lt;4121c6d5&gt;] ? T.901+0x38/0x3b
&lt;4&gt; [&lt;4121c918&gt;] ? arp_rcv+0xa3/0xb4
&lt;4&gt; [&lt;4121ca8d&gt;] ? arp_process+0x0/0x4cd
&lt;4&gt; [&lt;411e1173&gt;] ? __netif_receive_skb+0x32b/0x346
&lt;4&gt; [&lt;411e19e1&gt;] ? netif_receive_skb+0x5a/0x5f
&lt;4&gt; [&lt;411e1ea9&gt;] ? napi_skb_finish+0x1b/0x30
&lt;4&gt; [&lt;d0816eb4&gt;] ? ixgbe_xmit_frame_ring+0x1564/0x2260 [ixgbe]
&lt;4&gt; [&lt;41013468&gt;] ? lapic_next_event+0x13/0x16
&lt;4&gt; [&lt;410429b2&gt;] ? clockevents_program_event+0xd2/0xe4
&lt;4&gt; [&lt;411e1b03&gt;] ? net_rx_action+0x55/0x127
&lt;4&gt; [&lt;4102da1a&gt;] ? __do_softirq+0x77/0xeb
&lt;4&gt; [&lt;4102dab1&gt;] ? do_softirq+0x23/0x27
&lt;4&gt; [&lt;41003a67&gt;] ? do_IRQ+0x7d/0x8e
&lt;4&gt; [&lt;41002a69&gt;] ? common_interrupt+0x29/0x30
&lt;4&gt; [&lt;41007bcf&gt;] ? mwait_idle+0x48/0x4d
&lt;4&gt; [&lt;4100193b&gt;] ? cpu_idle+0x37/0x4c
&lt;0&gt;Code: df 09 d7 0f 94 c2 0f b6 d2 e9 e7 fb ff ff 31 db 31 c0 e9 38
ff ff ff 80 78 06 06 0f 85 3e fb ff ff 8b 7c 24 38 8b 8f b8 00 00 00
&lt;0f&gt; b6 51 0d f6 c2 01 0f 85 27 fb ff ff 80 e2 02 75 0d 8b 6c 24
&lt;0&gt;EIP: [&lt;d081621c&gt;] ixgbe_xmit_frame_ring+0x8cc/0x2260 [ixgbe] SS:ESP

Signed-off-by: Mukund Jampala &lt;jbmukund@gmail.com&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
