<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/net/ipv6, branch v3.7.9</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>ipv6: Add an error handler for icmp6</title>
<updated>2013-02-14T18:48:31+00:00</updated>
<author>
<name>Steffen Klassert</name>
<email>steffen.klassert@secunet.com</email>
</author>
<published>2013-01-16T22:09:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c88be877a5955ba10e7bd35c8be9dddeef84b116'/>
<id>c88be877a5955ba10e7bd35c8be9dddeef84b116</id>
<content type='text'>
[ Upstream commit 6f809da27c94425e07be4a64d5093e1df95188e9 ]

pmtu and redirect events are now handled in the protocols error handler,
so add an error handler for icmp6 to do this. It is needed in the case
when we have no socket context. Based on a patch by Duan Jiong.

Reported-by: Duan Jiong &lt;djduanjiong@gmail.com&gt;
Signed-off-by: Steffen Klassert &lt;steffen.klassert@secunet.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 6f809da27c94425e07be4a64d5093e1df95188e9 ]

pmtu and redirect events are now handled in the protocols error handler,
so add an error handler for icmp6 to do this. It is needed in the case
when we have no socket context. Based on a patch by Duan Jiong.

Reported-by: Duan Jiong &lt;djduanjiong@gmail.com&gt;
Signed-off-by: Steffen Klassert &lt;steffen.klassert@secunet.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv6/ip6_gre: fix error case handling in ip6gre_tunnel_xmit()</title>
<updated>2013-02-14T18:48:19+00:00</updated>
<author>
<name>Tommi Rantala</name>
<email>tt.rantala@gmail.com</email>
</author>
<published>2013-02-06T03:24:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ea6a9fca541b3dfdc8085f1493f4794f9baddfe9'/>
<id>ea6a9fca541b3dfdc8085f1493f4794f9baddfe9</id>
<content type='text'>
[ Upstream commit 41ab3e31bd50b42c85ac0aa0469642866aee2a9a ]

ip6gre_tunnel_xmit() is leaking the skb when we hit this error branch,
and the -1 return value from this function is bogus. Use the error
handling we already have in place in ip6gre_tunnel_xmit() for this error
case to fix this.

Signed-off-by: Tommi Rantala &lt;tt.rantala@gmail.com&gt;
Acked-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 41ab3e31bd50b42c85ac0aa0469642866aee2a9a ]

ip6gre_tunnel_xmit() is leaking the skb when we hit this error branch,
and the -1 return value from this function is bogus. Use the error
handling we already have in place in ip6gre_tunnel_xmit() for this error
case to fix this.

Signed-off-by: Tommi Rantala &lt;tt.rantala@gmail.com&gt;
Acked-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv6: do not create neighbor entries for local delivery</title>
<updated>2013-02-14T18:48:18+00:00</updated>
<author>
<name>Marcelo Ricardo Leitner</name>
<email>mleitner@redhat.com</email>
</author>
<published>2013-01-29T22:26:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=854b033a4cd8c405731f7ddb26d3ab8d39225cf1'/>
<id>854b033a4cd8c405731f7ddb26d3ab8d39225cf1</id>
<content type='text'>
[ Upstream commit bd30e947207e2ea0ff2c08f5b4a03025ddce48d3 ]

They will be created at output, if ever needed. This avoids creating
empty neighbor entries when TPROXYing/Forwarding packets for addresses
that are not even directly reachable.

Note that IPv4 already handles it this way. No neighbor entries are
created for local input.

Tested by myself and customer.

Signed-off-by: Jiri Pirko &lt;jiri@resnulli.us&gt;
Signed-off-by: Marcelo Ricardo Leitner &lt;mleitner@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit bd30e947207e2ea0ff2c08f5b4a03025ddce48d3 ]

They will be created at output, if ever needed. This avoids creating
empty neighbor entries when TPROXYing/Forwarding packets for addresses
that are not even directly reachable.

Note that IPv4 already handles it this way. No neighbor entries are
created for local input.

Tested by myself and customer.

Signed-off-by: Jiri Pirko &lt;jiri@resnulli.us&gt;
Signed-off-by: Marcelo Ricardo Leitner &lt;mleitner@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv6: fix header length calculation in ip6_append_data()</title>
<updated>2013-02-14T18:48:04+00:00</updated>
<author>
<name>Romain KUNTZ</name>
<email>r.kuntz@ipflavors.com</email>
</author>
<published>2013-01-16T12:47:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c716ba51a90f43e58aeda9cc7afb937977592ffc'/>
<id>c716ba51a90f43e58aeda9cc7afb937977592ffc</id>
<content type='text'>
[ Upstream commit 7efdba5bd9a2f3e2059beeb45c9fa55eefe1bced ]

Commit 299b0767 (ipv6: Fix IPsec slowpath fragmentation problem)
has introduced a error in the header length calculation that
provokes corrupted packets when non-fragmentable extensions
headers (Destination Option or Routing Header Type 2) are used.

rt-&gt;rt6i_nfheader_len is the length of the non-fragmentable
extension header, and it should be substracted to
rt-&gt;dst.header_len, and not to exthdrlen, as it was done before
commit 299b0767.

This patch reverts to the original and correct behavior. It has
been successfully tested with and without IPsec on packets
that include non-fragmentable extensions headers.

Signed-off-by: Romain Kuntz &lt;r.kuntz@ipflavors.com&gt;
Acked-by: Steffen Klassert &lt;steffen.klassert@secunet.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 7efdba5bd9a2f3e2059beeb45c9fa55eefe1bced ]

Commit 299b0767 (ipv6: Fix IPsec slowpath fragmentation problem)
has introduced a error in the header length calculation that
provokes corrupted packets when non-fragmentable extensions
headers (Destination Option or Routing Header Type 2) are used.

rt-&gt;rt6i_nfheader_len is the length of the non-fragmentable
extension header, and it should be substracted to
rt-&gt;dst.header_len, and not to exthdrlen, as it was done before
commit 299b0767.

This patch reverts to the original and correct behavior. It has
been successfully tested with and without IPsec on packets
that include non-fragmentable extensions headers.

Signed-off-by: Romain Kuntz &lt;r.kuntz@ipflavors.com&gt;
Acked-by: Steffen Klassert &lt;steffen.klassert@secunet.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv6: fix the noflags test in addrconf_get_prefix_route</title>
<updated>2013-02-14T18:48:02+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.toradex.cn/cgit/linux-toradex.git/commit/?id=0e352e0658b3093553aabc80ef8caf6d0024c968'/>
<id>0e352e0658b3093553aabc80ef8caf6d0024c968</id>
<content type='text'>
[ Upstream commit 85da53bf1c336bb07ac038fb951403ab0478d2c5 ]

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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 85da53bf1c336bb07ac038fb951403ab0478d2c5 ]

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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>netfilter: nf_ct_reasm: fix conntrack reassembly expire code</title>
<updated>2013-02-04T00:27:06+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.toradex.cn/cgit/linux-toradex.git/commit/?id=950d73bf1b0da05186948457cdc4b957d5dbdc7c'/>
<id>950d73bf1b0da05186948457cdc4b957d5dbdc7c</id>
<content type='text'>
commit 97cf00e93cc24898493e7a058105e3215257ee04 upstream.

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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 97cf00e93cc24898493e7a058105e3215257ee04 upstream.

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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>netfilter: ip[6]t_REJECT: fix wrong transport header pointer in TCP reset</title>
<updated>2013-02-04T00:27:06+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.toradex.cn/cgit/linux-toradex.git/commit/?id=93beec7f7bba67a025f4038ebfadaa8d14c9042e'/>
<id>93beec7f7bba67a025f4038ebfadaa8d14c9042e</id>
<content type='text'>
commit c6f408996c625cb950cad024f90e50519f94713c upstream.

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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit c6f408996c625cb950cad024f90e50519f94713c upstream.

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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>ipv6: Change skb-&gt;data before using icmpv6_notify() to propagate redirect</title>
<updated>2013-01-11T17:18:52+00:00</updated>
<author>
<name>Duan Jiong</name>
<email>djduanjiong@gmail.com</email>
</author>
<published>2012-12-14T02:59:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=29a21388c86ffa0d18018a7ddf49aa129588a339'/>
<id>29a21388c86ffa0d18018a7ddf49aa129588a339</id>
<content type='text'>
[ Upstream commit 093d04d42fa094f6740bb188f0ad0c215ff61e2c ]

In function ndisc_redirect_rcv(), the skb-&gt;data points to the transport
header, but function icmpv6_notify() need the skb-&gt;data points to the
inner IP packet. So before using icmpv6_notify() to propagate redirect,
change skb-&gt;data to point the inner IP packet that triggered the sending
of the Redirect, and introduce struct rd_msg to make it easy.

Signed-off-by: Duan Jiong &lt;djduanjiong@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 093d04d42fa094f6740bb188f0ad0c215ff61e2c ]

In function ndisc_redirect_rcv(), the skb-&gt;data points to the transport
header, but function icmpv6_notify() need the skb-&gt;data points to the
inner IP packet. So before using icmpv6_notify() to propagate redirect,
change skb-&gt;data to point the inner IP packet that triggered the sending
of the Redirect, and introduce struct rd_msg to make it easy.

Signed-off-by: Duan Jiong &lt;djduanjiong@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>inet: Fix kmemleak in tcp_v4/6_syn_recv_sock and dccp_v4/6_request_recv_sock</title>
<updated>2013-01-11T17:18:52+00:00</updated>
<author>
<name>Christoph Paasch</name>
<email>christoph.paasch@uclouvain.be</email>
</author>
<published>2012-12-14T04:07:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9ce4b845ed059b9104f3bb204db6306e52b25d1b'/>
<id>9ce4b845ed059b9104f3bb204db6306e52b25d1b</id>
<content type='text'>
[ Upstream commit e337e24d6624e74a558aa69071e112a65f7b5758 ]

If in either of the above functions inet_csk_route_child_sock() or
__inet_inherit_port() fails, the newsk will not be freed:

unreferenced object 0xffff88022e8a92c0 (size 1592):
  comm "softirq", pid 0, jiffies 4294946244 (age 726.160s)
  hex dump (first 32 bytes):
    0a 01 01 01 0a 01 01 02 00 00 00 00 a7 cc 16 00  ................
    02 00 03 01 00 00 00 00 00 00 00 00 00 00 00 00  ................
  backtrace:
    [&lt;ffffffff8153d190&gt;] kmemleak_alloc+0x21/0x3e
    [&lt;ffffffff810ab3e7&gt;] kmem_cache_alloc+0xb5/0xc5
    [&lt;ffffffff8149b65b&gt;] sk_prot_alloc.isra.53+0x2b/0xcd
    [&lt;ffffffff8149b784&gt;] sk_clone_lock+0x16/0x21e
    [&lt;ffffffff814d711a&gt;] inet_csk_clone_lock+0x10/0x7b
    [&lt;ffffffff814ebbc3&gt;] tcp_create_openreq_child+0x21/0x481
    [&lt;ffffffff814e8fa5&gt;] tcp_v4_syn_recv_sock+0x3a/0x23b
    [&lt;ffffffff814ec5ba&gt;] tcp_check_req+0x29f/0x416
    [&lt;ffffffff814e8e10&gt;] tcp_v4_do_rcv+0x161/0x2bc
    [&lt;ffffffff814eb917&gt;] tcp_v4_rcv+0x6c9/0x701
    [&lt;ffffffff814cea9f&gt;] ip_local_deliver_finish+0x70/0xc4
    [&lt;ffffffff814cec20&gt;] ip_local_deliver+0x4e/0x7f
    [&lt;ffffffff814ce9f8&gt;] ip_rcv_finish+0x1fc/0x233
    [&lt;ffffffff814cee68&gt;] ip_rcv+0x217/0x267
    [&lt;ffffffff814a7bbe&gt;] __netif_receive_skb+0x49e/0x553
    [&lt;ffffffff814a7cc3&gt;] netif_receive_skb+0x50/0x82

This happens, because sk_clone_lock initializes sk_refcnt to 2, and thus
a single sock_put() is not enough to free the memory. Additionally, things
like xfrm, memcg, cookie_values,... may have been initialized.
We have to free them properly.

This is fixed by forcing a call to tcp_done(), ending up in
inet_csk_destroy_sock, doing the final sock_put(). tcp_done() is necessary,
because it ends up doing all the cleanup on xfrm, memcg, cookie_values,
xfrm,...

Before calling tcp_done, we have to set the socket to SOCK_DEAD, to
force it entering inet_csk_destroy_sock. To avoid the warning in
inet_csk_destroy_sock, inet_num has to be set to 0.
As inet_csk_destroy_sock does a dec on orphan_count, we first have to
increase it.

Calling tcp_done() allows us to remove the calls to
tcp_clear_xmit_timer() and tcp_cleanup_congestion_control().

A similar approach is taken for dccp by calling dccp_done().

This is in the kernel since 093d282321 (tproxy: fix hash locking issue
when using port redirection in __inet_inherit_port()), thus since
version &gt;= 2.6.37.

Signed-off-by: Christoph Paasch &lt;christoph.paasch@uclouvain.be&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit e337e24d6624e74a558aa69071e112a65f7b5758 ]

If in either of the above functions inet_csk_route_child_sock() or
__inet_inherit_port() fails, the newsk will not be freed:

unreferenced object 0xffff88022e8a92c0 (size 1592):
  comm "softirq", pid 0, jiffies 4294946244 (age 726.160s)
  hex dump (first 32 bytes):
    0a 01 01 01 0a 01 01 02 00 00 00 00 a7 cc 16 00  ................
    02 00 03 01 00 00 00 00 00 00 00 00 00 00 00 00  ................
  backtrace:
    [&lt;ffffffff8153d190&gt;] kmemleak_alloc+0x21/0x3e
    [&lt;ffffffff810ab3e7&gt;] kmem_cache_alloc+0xb5/0xc5
    [&lt;ffffffff8149b65b&gt;] sk_prot_alloc.isra.53+0x2b/0xcd
    [&lt;ffffffff8149b784&gt;] sk_clone_lock+0x16/0x21e
    [&lt;ffffffff814d711a&gt;] inet_csk_clone_lock+0x10/0x7b
    [&lt;ffffffff814ebbc3&gt;] tcp_create_openreq_child+0x21/0x481
    [&lt;ffffffff814e8fa5&gt;] tcp_v4_syn_recv_sock+0x3a/0x23b
    [&lt;ffffffff814ec5ba&gt;] tcp_check_req+0x29f/0x416
    [&lt;ffffffff814e8e10&gt;] tcp_v4_do_rcv+0x161/0x2bc
    [&lt;ffffffff814eb917&gt;] tcp_v4_rcv+0x6c9/0x701
    [&lt;ffffffff814cea9f&gt;] ip_local_deliver_finish+0x70/0xc4
    [&lt;ffffffff814cec20&gt;] ip_local_deliver+0x4e/0x7f
    [&lt;ffffffff814ce9f8&gt;] ip_rcv_finish+0x1fc/0x233
    [&lt;ffffffff814cee68&gt;] ip_rcv+0x217/0x267
    [&lt;ffffffff814a7bbe&gt;] __netif_receive_skb+0x49e/0x553
    [&lt;ffffffff814a7cc3&gt;] netif_receive_skb+0x50/0x82

This happens, because sk_clone_lock initializes sk_refcnt to 2, and thus
a single sock_put() is not enough to free the memory. Additionally, things
like xfrm, memcg, cookie_values,... may have been initialized.
We have to free them properly.

This is fixed by forcing a call to tcp_done(), ending up in
inet_csk_destroy_sock, doing the final sock_put(). tcp_done() is necessary,
because it ends up doing all the cleanup on xfrm, memcg, cookie_values,
xfrm,...

Before calling tcp_done, we have to set the socket to SOCK_DEAD, to
force it entering inet_csk_destroy_sock. To avoid the warning in
inet_csk_destroy_sock, inet_num has to be set to 0.
As inet_csk_destroy_sock does a dec on orphan_count, we first have to
increase it.

Calling tcp_done() allows us to remove the calls to
tcp_clear_xmit_timer() and tcp_cleanup_congestion_control().

A similar approach is taken for dccp by calling dccp_done().

This is in the kernel since 093d282321 (tproxy: fix hash locking issue
when using port redirection in __inet_inherit_port()), thus since
version &gt;= 2.6.37.

Signed-off-by: Christoph Paasch &lt;christoph.paasch@uclouvain.be&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv6: fix inet6_csk_update_pmtu() return value</title>
<updated>2012-11-20T20:16:15+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2012-11-20T20:14:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b4dd006760d671337b62532277b0296bcee8dfd4'/>
<id>b4dd006760d671337b62532277b0296bcee8dfd4</id>
<content type='text'>
In case of error, inet6_csk_update_pmtu() should consistently
return NULL.

Bug added in commit 35ad9b9cf7d8a
(ipv6: Add helper inet6_csk_update_pmtu().)

Reported-by: Lluís Batlle i Rossell &lt;viric@viric.name&gt;
Signed-off-by: Eric Dumazet &lt;edumazet@google.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>
In case of error, inet6_csk_update_pmtu() should consistently
return NULL.

Bug added in commit 35ad9b9cf7d8a
(ipv6: Add helper inet6_csk_update_pmtu().)

Reported-by: Lluís Batlle i Rossell &lt;viric@viric.name&gt;
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
