<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/net/openvswitch, branch linux-4.5.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>openvswitch: use flow protocol when recalculating ipv6 checksums</title>
<updated>2016-05-19T01:35:02+00:00</updated>
<author>
<name>Simon Horman</name>
<email>simon.horman@netronome.com</email>
</author>
<published>2016-04-21T01:49:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=0c056cfb4195db32a96a82640dd3f0f6ac48131a'/>
<id>0c056cfb4195db32a96a82640dd3f0f6ac48131a</id>
<content type='text'>
[ Upstream commit b4f70527f052b0c00be4d7cac562baa75b212df5 ]

When using masked actions the ipv6_proto field of an action
to set IPv6 fields may be zero rather than the prevailing protocol
which will result in skipping checksum recalculation.

This patch resolves the problem by relying on the protocol
in the flow key rather than that in the set field action.

Fixes: 83d2b9ba1abc ("net: openvswitch: Support masked set actions.")
Cc: Jarno Rajahalme &lt;jrajahalme@nicira.com&gt;
Signed-off-by: Simon Horman &lt;simon.horman@netronome.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 b4f70527f052b0c00be4d7cac562baa75b212df5 ]

When using masked actions the ipv6_proto field of an action
to set IPv6 fields may be zero rather than the prevailing protocol
which will result in skipping checksum recalculation.

This patch resolves the problem by relying on the protocol
in the flow key rather than that in the set field action.

Fixes: 83d2b9ba1abc ("net: openvswitch: Support masked set actions.")
Cc: Jarno Rajahalme &lt;jrajahalme@nicira.com&gt;
Signed-off-by: Simon Horman &lt;simon.horman@netronome.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>openvswitch: Orphan skbs before IPv6 defrag</title>
<updated>2016-05-19T01:35:01+00:00</updated>
<author>
<name>Joe Stringer</name>
<email>joe@ovn.org</email>
</author>
<published>2016-04-18T21:51:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a8be898cdbd0094677c5c908d37447c51b113c37'/>
<id>a8be898cdbd0094677c5c908d37447c51b113c37</id>
<content type='text'>
[ Upstream commit 49e261a8a21e0960a3f7ff187a453ba1c1149053 ]

This is the IPv6 counterpart to commit 8282f27449bf ("inet: frag: Always
orphan skbs inside ip_defrag()").

Prior to commit 029f7f3b8701 ("netfilter: ipv6: nf_defrag: avoid/free
clone operations"), ipv6 fragments sent to nf_ct_frag6_gather() would be
cloned (implicitly orphaning) prior to queueing for reassembly. As such,
when the IPv6 message is eventually reassembled, the skb-&gt;sk for all
fragments would be NULL. After that commit was introduced, rather than
cloning, the original skbs were queued directly without orphaning. The
end result is that all frags except for the first and last may have a
socket attached.

This commit explicitly orphans such skbs during nf_ct_frag6_gather() to
prevent BUG_ON(skb-&gt;sk) during a later call to ip6_fragment().

kernel BUG at net/ipv6/ip6_output.c:631!
[...]
Call Trace:
 &lt;IRQ&gt;
 [&lt;ffffffff810be8f7&gt;] ? __lock_acquire+0x927/0x20a0
 [&lt;ffffffffa042c7c0&gt;] ? do_output.isra.28+0x1b0/0x1b0 [openvswitch]
 [&lt;ffffffff810bb8a2&gt;] ? __lock_is_held+0x52/0x70
 [&lt;ffffffffa042c587&gt;] ovs_fragment+0x1f7/0x280 [openvswitch]
 [&lt;ffffffff810bdab5&gt;] ? mark_held_locks+0x75/0xa0
 [&lt;ffffffff817be416&gt;] ? _raw_spin_unlock_irqrestore+0x36/0x50
 [&lt;ffffffff81697ea0&gt;] ? dst_discard_out+0x20/0x20
 [&lt;ffffffff81697e80&gt;] ? dst_ifdown+0x80/0x80
 [&lt;ffffffffa042c703&gt;] do_output.isra.28+0xf3/0x1b0 [openvswitch]
 [&lt;ffffffffa042d279&gt;] do_execute_actions+0x709/0x12c0 [openvswitch]
 [&lt;ffffffffa04340a4&gt;] ? ovs_flow_stats_update+0x74/0x1e0 [openvswitch]
 [&lt;ffffffffa04340d1&gt;] ? ovs_flow_stats_update+0xa1/0x1e0 [openvswitch]
 [&lt;ffffffff817be387&gt;] ? _raw_spin_unlock+0x27/0x40
 [&lt;ffffffffa042de75&gt;] ovs_execute_actions+0x45/0x120 [openvswitch]
 [&lt;ffffffffa0432d65&gt;] ovs_dp_process_packet+0x85/0x150 [openvswitch]
 [&lt;ffffffff817be387&gt;] ? _raw_spin_unlock+0x27/0x40
 [&lt;ffffffffa042def4&gt;] ovs_execute_actions+0xc4/0x120 [openvswitch]
 [&lt;ffffffffa0432d65&gt;] ovs_dp_process_packet+0x85/0x150 [openvswitch]
 [&lt;ffffffffa04337f2&gt;] ? key_extract+0x442/0xc10 [openvswitch]
 [&lt;ffffffffa043b26d&gt;] ovs_vport_receive+0x5d/0xb0 [openvswitch]
 [&lt;ffffffff810be8f7&gt;] ? __lock_acquire+0x927/0x20a0
 [&lt;ffffffff810be8f7&gt;] ? __lock_acquire+0x927/0x20a0
 [&lt;ffffffff810be8f7&gt;] ? __lock_acquire+0x927/0x20a0
 [&lt;ffffffff817be416&gt;] ? _raw_spin_unlock_irqrestore+0x36/0x50
 [&lt;ffffffffa043c11d&gt;] internal_dev_xmit+0x6d/0x150 [openvswitch]
 [&lt;ffffffffa043c0b5&gt;] ? internal_dev_xmit+0x5/0x150 [openvswitch]
 [&lt;ffffffff8168fb5f&gt;] dev_hard_start_xmit+0x2df/0x660
 [&lt;ffffffff8168f5ea&gt;] ? validate_xmit_skb.isra.105.part.106+0x1a/0x2b0
 [&lt;ffffffff81690925&gt;] __dev_queue_xmit+0x8f5/0x950
 [&lt;ffffffff81690080&gt;] ? __dev_queue_xmit+0x50/0x950
 [&lt;ffffffff810bdab5&gt;] ? mark_held_locks+0x75/0xa0
 [&lt;ffffffff81690990&gt;] dev_queue_xmit+0x10/0x20
 [&lt;ffffffff8169a418&gt;] neigh_resolve_output+0x178/0x220
 [&lt;ffffffff81752759&gt;] ? ip6_finish_output2+0x219/0x7b0
 [&lt;ffffffff81752759&gt;] ip6_finish_output2+0x219/0x7b0
 [&lt;ffffffff817525a5&gt;] ? ip6_finish_output2+0x65/0x7b0
 [&lt;ffffffff816cde2b&gt;] ? ip_idents_reserve+0x6b/0x80
 [&lt;ffffffff8175488f&gt;] ? ip6_fragment+0x93f/0xc50
 [&lt;ffffffff81754af1&gt;] ip6_fragment+0xba1/0xc50
 [&lt;ffffffff81752540&gt;] ? ip6_flush_pending_frames+0x40/0x40
 [&lt;ffffffff81754c6b&gt;] ip6_finish_output+0xcb/0x1d0
 [&lt;ffffffff81754dcf&gt;] ip6_output+0x5f/0x1a0
 [&lt;ffffffff81754ba0&gt;] ? ip6_fragment+0xc50/0xc50
 [&lt;ffffffff81797fbd&gt;] ip6_local_out+0x3d/0x80
 [&lt;ffffffff817554df&gt;] ip6_send_skb+0x2f/0xc0
 [&lt;ffffffff817555bd&gt;] ip6_push_pending_frames+0x4d/0x50
 [&lt;ffffffff817796cc&gt;] icmpv6_push_pending_frames+0xac/0xe0
 [&lt;ffffffff8177a4be&gt;] icmpv6_echo_reply+0x42e/0x500
 [&lt;ffffffff8177acbf&gt;] icmpv6_rcv+0x4cf/0x580
 [&lt;ffffffff81755ac7&gt;] ip6_input_finish+0x1a7/0x690
 [&lt;ffffffff81755925&gt;] ? ip6_input_finish+0x5/0x690
 [&lt;ffffffff817567a0&gt;] ip6_input+0x30/0xa0
 [&lt;ffffffff81755920&gt;] ? ip6_rcv_finish+0x1a0/0x1a0
 [&lt;ffffffff817557ce&gt;] ip6_rcv_finish+0x4e/0x1a0
 [&lt;ffffffff8175640f&gt;] ipv6_rcv+0x45f/0x7c0
 [&lt;ffffffff81755fe6&gt;] ? ipv6_rcv+0x36/0x7c0
 [&lt;ffffffff81755780&gt;] ? ip6_make_skb+0x1c0/0x1c0
 [&lt;ffffffff8168b649&gt;] __netif_receive_skb_core+0x229/0xb80
 [&lt;ffffffff810bdab5&gt;] ? mark_held_locks+0x75/0xa0
 [&lt;ffffffff8168c07f&gt;] ? process_backlog+0x6f/0x230
 [&lt;ffffffff8168bfb6&gt;] __netif_receive_skb+0x16/0x70
 [&lt;ffffffff8168c088&gt;] process_backlog+0x78/0x230
 [&lt;ffffffff8168c0ed&gt;] ? process_backlog+0xdd/0x230
 [&lt;ffffffff8168db43&gt;] net_rx_action+0x203/0x480
 [&lt;ffffffff810bdab5&gt;] ? mark_held_locks+0x75/0xa0
 [&lt;ffffffff817c156e&gt;] __do_softirq+0xde/0x49f
 [&lt;ffffffff81752768&gt;] ? ip6_finish_output2+0x228/0x7b0
 [&lt;ffffffff817c070c&gt;] do_softirq_own_stack+0x1c/0x30
 &lt;EOI&gt;
 [&lt;ffffffff8106f88b&gt;] do_softirq.part.18+0x3b/0x40
 [&lt;ffffffff8106f946&gt;] __local_bh_enable_ip+0xb6/0xc0
 [&lt;ffffffff81752791&gt;] ip6_finish_output2+0x251/0x7b0
 [&lt;ffffffff81754af1&gt;] ? ip6_fragment+0xba1/0xc50
 [&lt;ffffffff816cde2b&gt;] ? ip_idents_reserve+0x6b/0x80
 [&lt;ffffffff8175488f&gt;] ? ip6_fragment+0x93f/0xc50
 [&lt;ffffffff81754af1&gt;] ip6_fragment+0xba1/0xc50
 [&lt;ffffffff81752540&gt;] ? ip6_flush_pending_frames+0x40/0x40
 [&lt;ffffffff81754c6b&gt;] ip6_finish_output+0xcb/0x1d0
 [&lt;ffffffff81754dcf&gt;] ip6_output+0x5f/0x1a0
 [&lt;ffffffff81754ba0&gt;] ? ip6_fragment+0xc50/0xc50
 [&lt;ffffffff81797fbd&gt;] ip6_local_out+0x3d/0x80
 [&lt;ffffffff817554df&gt;] ip6_send_skb+0x2f/0xc0
 [&lt;ffffffff817555bd&gt;] ip6_push_pending_frames+0x4d/0x50
 [&lt;ffffffff81778558&gt;] rawv6_sendmsg+0xa28/0xe30
 [&lt;ffffffff81719097&gt;] ? inet_sendmsg+0xc7/0x1d0
 [&lt;ffffffff817190d6&gt;] inet_sendmsg+0x106/0x1d0
 [&lt;ffffffff81718fd5&gt;] ? inet_sendmsg+0x5/0x1d0
 [&lt;ffffffff8166d078&gt;] sock_sendmsg+0x38/0x50
 [&lt;ffffffff8166d4d6&gt;] SYSC_sendto+0xf6/0x170
 [&lt;ffffffff8100201b&gt;] ? trace_hardirqs_on_thunk+0x1b/0x1d
 [&lt;ffffffff8166e38e&gt;] SyS_sendto+0xe/0x10
 [&lt;ffffffff817bebe5&gt;] entry_SYSCALL_64_fastpath+0x18/0xa8
Code: 06 48 83 3f 00 75 26 48 8b 87 d8 00 00 00 2b 87 d0 00 00 00 48 39 d0 72 14 8b 87 e4 00 00 00 83 f8 01 75 09 48 83 7f 18 00 74 9a &lt;0f&gt; 0b 41 8b 86 cc 00 00 00 49 8#
RIP  [&lt;ffffffff8175468a&gt;] ip6_fragment+0x73a/0xc50
 RSP &lt;ffff880072803120&gt;

Fixes: 029f7f3b8701 ("netfilter: ipv6: nf_defrag: avoid/free clone
operations")
Reported-by: Daniele Di Proietto &lt;diproiettod@vmware.com&gt;
Signed-off-by: Joe Stringer &lt;joe@ovn.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 49e261a8a21e0960a3f7ff187a453ba1c1149053 ]

This is the IPv6 counterpart to commit 8282f27449bf ("inet: frag: Always
orphan skbs inside ip_defrag()").

Prior to commit 029f7f3b8701 ("netfilter: ipv6: nf_defrag: avoid/free
clone operations"), ipv6 fragments sent to nf_ct_frag6_gather() would be
cloned (implicitly orphaning) prior to queueing for reassembly. As such,
when the IPv6 message is eventually reassembled, the skb-&gt;sk for all
fragments would be NULL. After that commit was introduced, rather than
cloning, the original skbs were queued directly without orphaning. The
end result is that all frags except for the first and last may have a
socket attached.

This commit explicitly orphans such skbs during nf_ct_frag6_gather() to
prevent BUG_ON(skb-&gt;sk) during a later call to ip6_fragment().

kernel BUG at net/ipv6/ip6_output.c:631!
[...]
Call Trace:
 &lt;IRQ&gt;
 [&lt;ffffffff810be8f7&gt;] ? __lock_acquire+0x927/0x20a0
 [&lt;ffffffffa042c7c0&gt;] ? do_output.isra.28+0x1b0/0x1b0 [openvswitch]
 [&lt;ffffffff810bb8a2&gt;] ? __lock_is_held+0x52/0x70
 [&lt;ffffffffa042c587&gt;] ovs_fragment+0x1f7/0x280 [openvswitch]
 [&lt;ffffffff810bdab5&gt;] ? mark_held_locks+0x75/0xa0
 [&lt;ffffffff817be416&gt;] ? _raw_spin_unlock_irqrestore+0x36/0x50
 [&lt;ffffffff81697ea0&gt;] ? dst_discard_out+0x20/0x20
 [&lt;ffffffff81697e80&gt;] ? dst_ifdown+0x80/0x80
 [&lt;ffffffffa042c703&gt;] do_output.isra.28+0xf3/0x1b0 [openvswitch]
 [&lt;ffffffffa042d279&gt;] do_execute_actions+0x709/0x12c0 [openvswitch]
 [&lt;ffffffffa04340a4&gt;] ? ovs_flow_stats_update+0x74/0x1e0 [openvswitch]
 [&lt;ffffffffa04340d1&gt;] ? ovs_flow_stats_update+0xa1/0x1e0 [openvswitch]
 [&lt;ffffffff817be387&gt;] ? _raw_spin_unlock+0x27/0x40
 [&lt;ffffffffa042de75&gt;] ovs_execute_actions+0x45/0x120 [openvswitch]
 [&lt;ffffffffa0432d65&gt;] ovs_dp_process_packet+0x85/0x150 [openvswitch]
 [&lt;ffffffff817be387&gt;] ? _raw_spin_unlock+0x27/0x40
 [&lt;ffffffffa042def4&gt;] ovs_execute_actions+0xc4/0x120 [openvswitch]
 [&lt;ffffffffa0432d65&gt;] ovs_dp_process_packet+0x85/0x150 [openvswitch]
 [&lt;ffffffffa04337f2&gt;] ? key_extract+0x442/0xc10 [openvswitch]
 [&lt;ffffffffa043b26d&gt;] ovs_vport_receive+0x5d/0xb0 [openvswitch]
 [&lt;ffffffff810be8f7&gt;] ? __lock_acquire+0x927/0x20a0
 [&lt;ffffffff810be8f7&gt;] ? __lock_acquire+0x927/0x20a0
 [&lt;ffffffff810be8f7&gt;] ? __lock_acquire+0x927/0x20a0
 [&lt;ffffffff817be416&gt;] ? _raw_spin_unlock_irqrestore+0x36/0x50
 [&lt;ffffffffa043c11d&gt;] internal_dev_xmit+0x6d/0x150 [openvswitch]
 [&lt;ffffffffa043c0b5&gt;] ? internal_dev_xmit+0x5/0x150 [openvswitch]
 [&lt;ffffffff8168fb5f&gt;] dev_hard_start_xmit+0x2df/0x660
 [&lt;ffffffff8168f5ea&gt;] ? validate_xmit_skb.isra.105.part.106+0x1a/0x2b0
 [&lt;ffffffff81690925&gt;] __dev_queue_xmit+0x8f5/0x950
 [&lt;ffffffff81690080&gt;] ? __dev_queue_xmit+0x50/0x950
 [&lt;ffffffff810bdab5&gt;] ? mark_held_locks+0x75/0xa0
 [&lt;ffffffff81690990&gt;] dev_queue_xmit+0x10/0x20
 [&lt;ffffffff8169a418&gt;] neigh_resolve_output+0x178/0x220
 [&lt;ffffffff81752759&gt;] ? ip6_finish_output2+0x219/0x7b0
 [&lt;ffffffff81752759&gt;] ip6_finish_output2+0x219/0x7b0
 [&lt;ffffffff817525a5&gt;] ? ip6_finish_output2+0x65/0x7b0
 [&lt;ffffffff816cde2b&gt;] ? ip_idents_reserve+0x6b/0x80
 [&lt;ffffffff8175488f&gt;] ? ip6_fragment+0x93f/0xc50
 [&lt;ffffffff81754af1&gt;] ip6_fragment+0xba1/0xc50
 [&lt;ffffffff81752540&gt;] ? ip6_flush_pending_frames+0x40/0x40
 [&lt;ffffffff81754c6b&gt;] ip6_finish_output+0xcb/0x1d0
 [&lt;ffffffff81754dcf&gt;] ip6_output+0x5f/0x1a0
 [&lt;ffffffff81754ba0&gt;] ? ip6_fragment+0xc50/0xc50
 [&lt;ffffffff81797fbd&gt;] ip6_local_out+0x3d/0x80
 [&lt;ffffffff817554df&gt;] ip6_send_skb+0x2f/0xc0
 [&lt;ffffffff817555bd&gt;] ip6_push_pending_frames+0x4d/0x50
 [&lt;ffffffff817796cc&gt;] icmpv6_push_pending_frames+0xac/0xe0
 [&lt;ffffffff8177a4be&gt;] icmpv6_echo_reply+0x42e/0x500
 [&lt;ffffffff8177acbf&gt;] icmpv6_rcv+0x4cf/0x580
 [&lt;ffffffff81755ac7&gt;] ip6_input_finish+0x1a7/0x690
 [&lt;ffffffff81755925&gt;] ? ip6_input_finish+0x5/0x690
 [&lt;ffffffff817567a0&gt;] ip6_input+0x30/0xa0
 [&lt;ffffffff81755920&gt;] ? ip6_rcv_finish+0x1a0/0x1a0
 [&lt;ffffffff817557ce&gt;] ip6_rcv_finish+0x4e/0x1a0
 [&lt;ffffffff8175640f&gt;] ipv6_rcv+0x45f/0x7c0
 [&lt;ffffffff81755fe6&gt;] ? ipv6_rcv+0x36/0x7c0
 [&lt;ffffffff81755780&gt;] ? ip6_make_skb+0x1c0/0x1c0
 [&lt;ffffffff8168b649&gt;] __netif_receive_skb_core+0x229/0xb80
 [&lt;ffffffff810bdab5&gt;] ? mark_held_locks+0x75/0xa0
 [&lt;ffffffff8168c07f&gt;] ? process_backlog+0x6f/0x230
 [&lt;ffffffff8168bfb6&gt;] __netif_receive_skb+0x16/0x70
 [&lt;ffffffff8168c088&gt;] process_backlog+0x78/0x230
 [&lt;ffffffff8168c0ed&gt;] ? process_backlog+0xdd/0x230
 [&lt;ffffffff8168db43&gt;] net_rx_action+0x203/0x480
 [&lt;ffffffff810bdab5&gt;] ? mark_held_locks+0x75/0xa0
 [&lt;ffffffff817c156e&gt;] __do_softirq+0xde/0x49f
 [&lt;ffffffff81752768&gt;] ? ip6_finish_output2+0x228/0x7b0
 [&lt;ffffffff817c070c&gt;] do_softirq_own_stack+0x1c/0x30
 &lt;EOI&gt;
 [&lt;ffffffff8106f88b&gt;] do_softirq.part.18+0x3b/0x40
 [&lt;ffffffff8106f946&gt;] __local_bh_enable_ip+0xb6/0xc0
 [&lt;ffffffff81752791&gt;] ip6_finish_output2+0x251/0x7b0
 [&lt;ffffffff81754af1&gt;] ? ip6_fragment+0xba1/0xc50
 [&lt;ffffffff816cde2b&gt;] ? ip_idents_reserve+0x6b/0x80
 [&lt;ffffffff8175488f&gt;] ? ip6_fragment+0x93f/0xc50
 [&lt;ffffffff81754af1&gt;] ip6_fragment+0xba1/0xc50
 [&lt;ffffffff81752540&gt;] ? ip6_flush_pending_frames+0x40/0x40
 [&lt;ffffffff81754c6b&gt;] ip6_finish_output+0xcb/0x1d0
 [&lt;ffffffff81754dcf&gt;] ip6_output+0x5f/0x1a0
 [&lt;ffffffff81754ba0&gt;] ? ip6_fragment+0xc50/0xc50
 [&lt;ffffffff81797fbd&gt;] ip6_local_out+0x3d/0x80
 [&lt;ffffffff817554df&gt;] ip6_send_skb+0x2f/0xc0
 [&lt;ffffffff817555bd&gt;] ip6_push_pending_frames+0x4d/0x50
 [&lt;ffffffff81778558&gt;] rawv6_sendmsg+0xa28/0xe30
 [&lt;ffffffff81719097&gt;] ? inet_sendmsg+0xc7/0x1d0
 [&lt;ffffffff817190d6&gt;] inet_sendmsg+0x106/0x1d0
 [&lt;ffffffff81718fd5&gt;] ? inet_sendmsg+0x5/0x1d0
 [&lt;ffffffff8166d078&gt;] sock_sendmsg+0x38/0x50
 [&lt;ffffffff8166d4d6&gt;] SYSC_sendto+0xf6/0x170
 [&lt;ffffffff8100201b&gt;] ? trace_hardirqs_on_thunk+0x1b/0x1d
 [&lt;ffffffff8166e38e&gt;] SyS_sendto+0xe/0x10
 [&lt;ffffffff817bebe5&gt;] entry_SYSCALL_64_fastpath+0x18/0xa8
Code: 06 48 83 3f 00 75 26 48 8b 87 d8 00 00 00 2b 87 d0 00 00 00 48 39 d0 72 14 8b 87 e4 00 00 00 83 f8 01 75 09 48 83 7f 18 00 74 9a &lt;0f&gt; 0b 41 8b 86 cc 00 00 00 49 8#
RIP  [&lt;ffffffff8175468a&gt;] ip6_fragment+0x73a/0xc50
 RSP &lt;ffff880072803120&gt;

Fixes: 029f7f3b8701 ("netfilter: ipv6: nf_defrag: avoid/free clone
operations")
Reported-by: Daniele Di Proietto &lt;diproiettod@vmware.com&gt;
Signed-off-by: Joe Stringer &lt;joe@ovn.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>net: use skb_postpush_rcsum instead of own implementations</title>
<updated>2016-05-19T01:35:01+00:00</updated>
<author>
<name>Daniel Borkmann</name>
<email>daniel@iogearbox.net</email>
</author>
<published>2016-02-19T23:29:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=9a11c27b88032a88b882a2ff6b2265f975145197'/>
<id>9a11c27b88032a88b882a2ff6b2265f975145197</id>
<content type='text'>
[ Upstream commit 6b83d28a55a891a9d70fc61ccb1c138e47dcbe74 ]

Replace individual implementations with the recently introduced
skb_postpush_rcsum() helper.

Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;
Acked-by: Tom Herbert &lt;tom@herbertland.com&gt;
Acked-by: Alexei Starovoitov &lt;ast@kernel.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 6b83d28a55a891a9d70fc61ccb1c138e47dcbe74 ]

Replace individual implementations with the recently introduced
skb_postpush_rcsum() helper.

Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;
Acked-by: Tom Herbert &lt;tom@herbertland.com&gt;
Acked-by: Alexei Starovoitov &lt;ast@kernel.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>lwt: fix rx checksum setting for lwt devices tunneling over ipv6</title>
<updated>2016-02-19T20:39:30+00:00</updated>
<author>
<name>Paolo Abeni</name>
<email>pabeni@redhat.com</email>
</author>
<published>2016-02-17T18:30:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c868ee7063bdb53f3ef9eac7bcec84960980b471'/>
<id>c868ee7063bdb53f3ef9eac7bcec84960980b471</id>
<content type='text'>
the commit 35e2d1152b22 ("tunnels: Allow IPv6 UDP checksums to be
correctly controlled.") changed the default xmit checksum setting
for lwt vxlan/geneve ipv6 tunnels, so that now the checksum is not
set into external UDP header.
This commit changes the rx checksum setting for both lwt vxlan/geneve
devices created by openvswitch accordingly, so that lwt over ipv6
tunnel pairs are again able to communicate with default values.

Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;
Acked-by: Jiri Benc &lt;jbenc@redhat.com&gt;
Acked-by: Jesse Gross &lt;jesse@kernel.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 commit 35e2d1152b22 ("tunnels: Allow IPv6 UDP checksums to be
correctly controlled.") changed the default xmit checksum setting
for lwt vxlan/geneve ipv6 tunnels, so that now the checksum is not
set into external UDP header.
This commit changes the rx checksum setting for both lwt vxlan/geneve
devices created by openvswitch accordingly, so that lwt over ipv6
tunnel pairs are again able to communicate with default values.

Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;
Acked-by: Jiri Benc &lt;jbenc@redhat.com&gt;
Acked-by: Jesse Gross &lt;jesse@kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vxlan, gre, geneve: Set a large MTU on ovs-created tunnel devices</title>
<updated>2016-02-10T10:50:03+00:00</updated>
<author>
<name>David Wragg</name>
<email>david@weave.works</email>
</author>
<published>2016-02-10T00:05:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=7e059158d57b79159eaf1f504825d19866ef2c42'/>
<id>7e059158d57b79159eaf1f504825d19866ef2c42</id>
<content type='text'>
Prior to 4.3, openvswitch tunnel vports (vxlan, gre and geneve) could
transmit vxlan packets of any size, constrained only by the ability to
send out the resulting packets.  4.3 introduced netdevs corresponding
to tunnel vports.  These netdevs have an MTU, which limits the size of
a packet that can be successfully encapsulated.  The default MTU
values are low (1500 or less), which is awkwardly small in the context
of physical networks supporting jumbo frames, and leads to a
conspicuous change in behaviour for userspace.

Instead, set the MTU on openvswitch-created netdevs to be the relevant
maximum (i.e. the maximum IP packet size minus any relevant overhead),
effectively restoring the behaviour prior to 4.3.

Signed-off-by: David Wragg &lt;david@weave.works&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>
Prior to 4.3, openvswitch tunnel vports (vxlan, gre and geneve) could
transmit vxlan packets of any size, constrained only by the ability to
send out the resulting packets.  4.3 introduced netdevs corresponding
to tunnel vports.  These netdevs have an MTU, which limits the size of
a packet that can be successfully encapsulated.  The default MTU
values are low (1500 or less), which is awkwardly small in the context
of physical networks supporting jumbo frames, and leads to a
conspicuous change in behaviour for userspace.

Instead, set the MTU on openvswitch-created netdevs to be the relevant
maximum (i.e. the maximum IP packet size minus any relevant overhead),
effectively restoring the behaviour prior to 4.3.

Signed-off-by: David Wragg &lt;david@weave.works&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ovs: limit ovs recursions in ovs_execute_actions to not corrupt stack</title>
<updated>2016-01-18T17:09:45+00:00</updated>
<author>
<name>Hannes Frederic Sowa</name>
<email>hannes@stressinduktion.org</email>
</author>
<published>2016-01-18T17:03:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=b064d0d88ae5280c7e878f79d0c9a8e2876a4d14'/>
<id>b064d0d88ae5280c7e878f79d0c9a8e2876a4d14</id>
<content type='text'>
It was seen that defective configurations of openvswitch could overwrite
the STACK_END_MAGIC and cause a hard crash of the kernel because of too
many recursions within ovs.

This problem arises due to the high stack usage of openvswitch. The rest
of the kernel is fine with the current limit of 10 (RECURSION_LIMIT).

We use the already existing recursion counter in ovs_execute_actions to
implement an upper bound of 5 recursions.

Cc: Pravin Shelar &lt;pshelar@ovn.org&gt;
Cc: Simon Horman &lt;simon.horman@netronome.com&gt;
Cc: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Cc: Simon Horman &lt;simon.horman@netronome.com&gt;
Signed-off-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.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>
It was seen that defective configurations of openvswitch could overwrite
the STACK_END_MAGIC and cause a hard crash of the kernel because of too
many recursions within ovs.

This problem arises due to the high stack usage of openvswitch. The rest
of the kernel is fine with the current limit of 10 (RECURSION_LIMIT).

We use the already existing recursion counter in ovs_execute_actions to
implement an upper bound of 5 recursions.

Cc: Pravin Shelar &lt;pshelar@ovn.org&gt;
Cc: Simon Horman &lt;simon.horman@netronome.com&gt;
Cc: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Cc: Simon Horman &lt;simon.horman@netronome.com&gt;
Signed-off-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: preserve IP control block during GSO segmentation</title>
<updated>2016-01-15T19:35:24+00:00</updated>
<author>
<name>Konstantin Khlebnikov</name>
<email>koct9i@gmail.com</email>
</author>
<published>2016-01-08T12:21:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=9207f9d45b0ad071baa128e846d7e7ed85016df3'/>
<id>9207f9d45b0ad071baa128e846d7e7ed85016df3</id>
<content type='text'>
Skb_gso_segment() uses skb control block during segmentation.
This patch adds 32-bytes room for previous control block which
will be copied into all resulting segments.

This patch fixes kernel crash during fragmenting forwarded packets.
Fragmentation requires valid IP CB in skb for clearing ip options.
Also patch removes custom save/restore in ovs code, now it's redundant.

Signed-off-by: Konstantin Khlebnikov &lt;koct9i@gmail.com&gt;
Link: http://lkml.kernel.org/r/CALYGNiP-0MZ-FExV2HutTvE9U-QQtkKSoE--KN=JQE5STYsjAA@mail.gmail.com
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Skb_gso_segment() uses skb control block during segmentation.
This patch adds 32-bytes room for previous control block which
will be copied into all resulting segments.

This patch fixes kernel crash during fragmenting forwarded packets.
Fragmentation requires valid IP CB in skb for clearing ip options.
Also patch removes custom save/restore in ovs code, now it's redundant.

Signed-off-by: Konstantin Khlebnikov &lt;koct9i@gmail.com&gt;
Link: http://lkml.kernel.org/r/CALYGNiP-0MZ-FExV2HutTvE9U-QQtkKSoE--KN=JQE5STYsjAA@mail.gmail.com
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>openvswitch: update kernel doc for struct vport</title>
<updated>2016-01-11T04:49:21+00:00</updated>
<author>
<name>Jean Sacren</name>
<email>sakiwit@gmail.com</email>
</author>
<published>2016-01-09T23:07:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c5420eb12f8e26dd2951c5acc954ca4848f488cb'/>
<id>c5420eb12f8e26dd2951c5acc954ca4848f488cb</id>
<content type='text'>
commit be4ace6e6b1b ("openvswitch: Move dev pointer into vport itself")

The commit above added @dev and moved @rcu to the bottom of struct
vport, but the change was not reflected in the kernel doc. So let's
update the kernel doc as well.

Signed-off-by: Jean Sacren &lt;sakiwit@gmail.com&gt;
Cc: Thomas Graf &lt;tgraf@suug.ch&gt;
Acked-by: Thomas Graf &lt;tgraf@suug.ch&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>
commit be4ace6e6b1b ("openvswitch: Move dev pointer into vport itself")

The commit above added @dev and moved @rcu to the bottom of struct
vport, but the change was not reflected in the kernel doc. So let's
update the kernel doc as well.

Signed-off-by: Jean Sacren &lt;sakiwit@gmail.com&gt;
Cc: Thomas Graf &lt;tgraf@suug.ch&gt;
Acked-by: Thomas Graf &lt;tgraf@suug.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>openvswitch: fix struct geneve_port member name</title>
<updated>2016-01-11T04:49:21+00:00</updated>
<author>
<name>Jean Sacren</name>
<email>sakiwit@gmail.com</email>
</author>
<published>2016-01-09T23:07:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=2f7066ada15c865eeab5a3f6c69dcf58d196e349'/>
<id>2f7066ada15c865eeab5a3f6c69dcf58d196e349</id>
<content type='text'>
commit 6b001e682e90 ("openvswitch: Use Geneve device.")

The commit above introduced 'port_no' as the name for the member of
struct geneve_port. The correct name should be 'dst_port' as described
in the kernel doc. Let's fix that member name and all the pertinent
instances so that both doc and code would be consistent.

Signed-off-by: Jean Sacren &lt;sakiwit@gmail.com&gt;
Acked-by: Thomas Graf &lt;tgraf@suug.ch&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>
commit 6b001e682e90 ("openvswitch: Use Geneve device.")

The commit above introduced 'port_no' as the name for the member of
struct geneve_port. The correct name should be 'dst_port' as described
in the kernel doc. Let's fix that member name and all the pertinent
instances so that both doc and code would be consistent.

Signed-off-by: Jean Sacren &lt;sakiwit@gmail.com&gt;
Acked-by: Thomas Graf &lt;tgraf@suug.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>openvswitch: clean up unused function</title>
<updated>2016-01-11T04:49:21+00:00</updated>
<author>
<name>Jean Sacren</name>
<email>sakiwit@gmail.com</email>
</author>
<published>2016-01-09T23:07:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5ea030429fed07ea47e45152202d6ecb24133374'/>
<id>5ea030429fed07ea47e45152202d6ecb24133374</id>
<content type='text'>
commit 6b001e682e90 ("openvswitch: Use Geneve device.")

The commit above deleted the only call site of ovs_tunnel_route_lookup()
and now that function is not used any more. So let's delete the function
definition as well.

Signed-off-by: Jean Sacren &lt;sakiwit@gmail.com&gt;
Acked-by: Thomas Graf &lt;tgraf@suug.ch&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>
commit 6b001e682e90 ("openvswitch: Use Geneve device.")

The commit above deleted the only call site of ovs_tunnel_route_lookup()
and now that function is not used any more. So let's delete the function
definition as well.

Signed-off-by: Jean Sacren &lt;sakiwit@gmail.com&gt;
Acked-by: Thomas Graf &lt;tgraf@suug.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
