<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/net/vxlan.c, branch linux-3.13.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>net: vxlan: fix crash when interface is created with no group</title>
<updated>2014-04-14T13:47:22+00:00</updated>
<author>
<name>Mike Rapoport</name>
<email>mike.rapoport@ravellosystems.com</email>
</author>
<published>2014-04-01T06:23:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c95176f32b88f95a0d6592ded5387d4cf076d83b'/>
<id>c95176f32b88f95a0d6592ded5387d4cf076d83b</id>
<content type='text'>
[ Upstream commit 5933a7bbb5de66482ea8aa874a7ebaf8e67603c4 ]

If the vxlan interface is created without explicit group definition,
there are corner cases which may cause kernel panic.

For instance, in the following scenario:

node A:
$ ip link add dev vxlan42  address 2c:c2:60:00:10:20 type vxlan id 42
$ ip addr add dev vxlan42 10.0.0.1/24
$ ip link set up dev vxlan42
$ arp -i vxlan42 -s 10.0.0.2 2c:c2:60:00:01:02
$ bridge fdb add dev vxlan42 to 2c:c2:60:00:01:02 dst &lt;IPv4 address&gt;
$ ping 10.0.0.2

node B:
$ ip link add dev vxlan42 address 2c:c2:60:00:01:02 type vxlan id 42
$ ip addr add dev vxlan42 10.0.0.2/24
$ ip link set up dev vxlan42
$ arp -i vxlan42 -s 10.0.0.1 2c:c2:60:00:10:20

node B crashes:

 vxlan42: 2c:c2:60:00:10:20 migrated from 4011:eca4:c0a8:6466:c0a8:6415:8e09:2118 to (invalid address)
 vxlan42: 2c:c2:60:00:10:20 migrated from 4011:eca4:c0a8:6466:c0a8:6415:8e09:2118 to (invalid address)
 BUG: unable to handle kernel NULL pointer dereference at 0000000000000046
 IP: [&lt;ffffffff8143c459&gt;] ip6_route_output+0x58/0x82
 PGD 7bd89067 PUD 7bd4e067 PMD 0
 Oops: 0000 [#1] SMP
 Modules linked in:
 CPU: 1 PID: 0 Comm: swapper/1 Not tainted 3.14.0-rc8-hvx-xen-00019-g97a5221-dirty #154
 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
 task: ffff88007c774f50 ti: ffff88007c79c000 task.ti: ffff88007c79c000
 RIP: 0010:[&lt;ffffffff8143c459&gt;]  [&lt;ffffffff8143c459&gt;] ip6_route_output+0x58/0x82
 RSP: 0018:ffff88007fd03668  EFLAGS: 00010282
 RAX: 0000000000000000 RBX: ffffffff8186a000 RCX: 0000000000000040
 RDX: 0000000000000000 RSI: ffff88007b0e4a80 RDI: ffff88007fd03754
 RBP: ffff88007fd03688 R08: ffff88007b0e4a80 R09: 0000000000000000
 R10: 0200000a0100000a R11: 0001002200000000 R12: ffff88007fd03740
 R13: ffff88007b0e4a80 R14: ffff88007b0e4a80 R15: ffff88007bba0c50
 FS:  0000000000000000(0000) GS:ffff88007fd00000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
 CR2: 0000000000000046 CR3: 000000007bb60000 CR4: 00000000000006e0
 Stack:
  0000000000000000 ffff88007fd037a0 ffffffff8186a000 ffff88007fd03740
  ffff88007fd036c8 ffffffff814320bb 0000000000006e49 ffff88007b8b7360
  ffff88007bdbf200 ffff88007bcbc000 ffff88007b8b7000 ffff88007b8b7360
 Call Trace:
  &lt;IRQ&gt;
  [&lt;ffffffff814320bb&gt;] ip6_dst_lookup_tail+0x2d/0xa4
  [&lt;ffffffff814322a5&gt;] ip6_dst_lookup+0x10/0x12
  [&lt;ffffffff81323b4e&gt;] vxlan_xmit_one+0x32a/0x68c
  [&lt;ffffffff814a325a&gt;] ? _raw_spin_unlock_irqrestore+0x12/0x14
  [&lt;ffffffff8104c551&gt;] ? lock_timer_base.isra.23+0x26/0x4b
  [&lt;ffffffff8132451a&gt;] vxlan_xmit+0x66a/0x6a8
  [&lt;ffffffff8141a365&gt;] ? ipt_do_table+0x35f/0x37e
  [&lt;ffffffff81204ba2&gt;] ? selinux_ip_postroute+0x41/0x26e
  [&lt;ffffffff8139d0c1&gt;] dev_hard_start_xmit+0x2ce/0x3ce
  [&lt;ffffffff8139d491&gt;] __dev_queue_xmit+0x2d0/0x392
  [&lt;ffffffff813b380f&gt;] ? eth_header+0x28/0xb5
  [&lt;ffffffff8139d569&gt;] dev_queue_xmit+0xb/0xd
  [&lt;ffffffff813a5aa6&gt;] neigh_resolve_output+0x134/0x152
  [&lt;ffffffff813db741&gt;] ip_finish_output2+0x236/0x299
  [&lt;ffffffff813dc074&gt;] ip_finish_output+0x98/0x9d
  [&lt;ffffffff813dc749&gt;] ip_output+0x62/0x67
  [&lt;ffffffff813da9f2&gt;] dst_output+0xf/0x11
  [&lt;ffffffff813dc11c&gt;] ip_local_out+0x1b/0x1f
  [&lt;ffffffff813dcf1b&gt;] ip_send_skb+0x11/0x37
  [&lt;ffffffff813dcf70&gt;] ip_push_pending_frames+0x2f/0x33
  [&lt;ffffffff813ff732&gt;] icmp_push_reply+0x106/0x115
  [&lt;ffffffff813ff9e4&gt;] icmp_reply+0x142/0x164
  [&lt;ffffffff813ffb3b&gt;] icmp_echo.part.16+0x46/0x48
  [&lt;ffffffff813c1d30&gt;] ? nf_iterate+0x43/0x80
  [&lt;ffffffff813d8037&gt;] ? xfrm4_policy_check.constprop.11+0x52/0x52
  [&lt;ffffffff813ffb62&gt;] icmp_echo+0x25/0x27
  [&lt;ffffffff814005f7&gt;] icmp_rcv+0x1d2/0x20a
  [&lt;ffffffff813d8037&gt;] ? xfrm4_policy_check.constprop.11+0x52/0x52
  [&lt;ffffffff813d810d&gt;] ip_local_deliver_finish+0xd6/0x14f
  [&lt;ffffffff813d8037&gt;] ? xfrm4_policy_check.constprop.11+0x52/0x52
  [&lt;ffffffff813d7fde&gt;] NF_HOOK.constprop.10+0x4c/0x53
  [&lt;ffffffff813d82bf&gt;] ip_local_deliver+0x4a/0x4f
  [&lt;ffffffff813d7f7b&gt;] ip_rcv_finish+0x253/0x26a
  [&lt;ffffffff813d7d28&gt;] ? inet_add_protocol+0x3e/0x3e
  [&lt;ffffffff813d7fde&gt;] NF_HOOK.constprop.10+0x4c/0x53
  [&lt;ffffffff813d856a&gt;] ip_rcv+0x2a6/0x2ec
  [&lt;ffffffff8139a9a0&gt;] __netif_receive_skb_core+0x43e/0x478
  [&lt;ffffffff812a346f&gt;] ? virtqueue_poll+0x16/0x27
  [&lt;ffffffff8139aa2f&gt;] __netif_receive_skb+0x55/0x5a
  [&lt;ffffffff8139aaaa&gt;] process_backlog+0x76/0x12f
  [&lt;ffffffff8139add8&gt;] net_rx_action+0xa2/0x1ab
  [&lt;ffffffff81047847&gt;] __do_softirq+0xca/0x1d1
  [&lt;ffffffff81047ace&gt;] irq_exit+0x3e/0x85
  [&lt;ffffffff8100b98b&gt;] do_IRQ+0xa9/0xc4
  [&lt;ffffffff814a37ad&gt;] common_interrupt+0x6d/0x6d
  &lt;EOI&gt;
  [&lt;ffffffff810378db&gt;] ? native_safe_halt+0x6/0x8
  [&lt;ffffffff810110c7&gt;] default_idle+0x9/0xd
  [&lt;ffffffff81011694&gt;] arch_cpu_idle+0x13/0x1c
  [&lt;ffffffff8107480d&gt;] cpu_startup_entry+0xbc/0x137
  [&lt;ffffffff8102e741&gt;] start_secondary+0x1a0/0x1a5
 Code: 24 14 e8 f1 e5 01 00 31 d2 a8 32 0f 95 c2 49 8b 44 24 2c 49 0b 44 24 24 74 05 83 ca 04 eb 1c 4d 85 ed 74 17 49 8b 85 a8 02 00 00 &lt;66&gt; 8b 40 46 66 c1 e8 07 83 e0 07 c1 e0 03 09 c2 4c 89 e6 48 89
 RIP  [&lt;ffffffff8143c459&gt;] ip6_route_output+0x58/0x82
  RSP &lt;ffff88007fd03668&gt;
 CR2: 0000000000000046
 ---[ end trace 4612329caab37efd ]---

When vxlan interface is created without explicit group definition, the
default_dst protocol family is initialiazed to AF_UNSPEC and the driver
assumes IPv4 configuration. On the other side, the default_dst protocol
family is used to differentiate between IPv4 and IPv6 cases and, since,
AF_UNSPEC != AF_INET, the processing takes the IPv6 path.

Making the IPv4 assumption explicit by settting default_dst protocol
family to AF_INET4 and preventing mixing of IPv4 and IPv6 addresses in
snooped fdb entries fixes the corner case crashes.

Signed-off-by: Mike Rapoport &lt;mike.rapoport@ravellosystems.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 5933a7bbb5de66482ea8aa874a7ebaf8e67603c4 ]

If the vxlan interface is created without explicit group definition,
there are corner cases which may cause kernel panic.

For instance, in the following scenario:

node A:
$ ip link add dev vxlan42  address 2c:c2:60:00:10:20 type vxlan id 42
$ ip addr add dev vxlan42 10.0.0.1/24
$ ip link set up dev vxlan42
$ arp -i vxlan42 -s 10.0.0.2 2c:c2:60:00:01:02
$ bridge fdb add dev vxlan42 to 2c:c2:60:00:01:02 dst &lt;IPv4 address&gt;
$ ping 10.0.0.2

node B:
$ ip link add dev vxlan42 address 2c:c2:60:00:01:02 type vxlan id 42
$ ip addr add dev vxlan42 10.0.0.2/24
$ ip link set up dev vxlan42
$ arp -i vxlan42 -s 10.0.0.1 2c:c2:60:00:10:20

node B crashes:

 vxlan42: 2c:c2:60:00:10:20 migrated from 4011:eca4:c0a8:6466:c0a8:6415:8e09:2118 to (invalid address)
 vxlan42: 2c:c2:60:00:10:20 migrated from 4011:eca4:c0a8:6466:c0a8:6415:8e09:2118 to (invalid address)
 BUG: unable to handle kernel NULL pointer dereference at 0000000000000046
 IP: [&lt;ffffffff8143c459&gt;] ip6_route_output+0x58/0x82
 PGD 7bd89067 PUD 7bd4e067 PMD 0
 Oops: 0000 [#1] SMP
 Modules linked in:
 CPU: 1 PID: 0 Comm: swapper/1 Not tainted 3.14.0-rc8-hvx-xen-00019-g97a5221-dirty #154
 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
 task: ffff88007c774f50 ti: ffff88007c79c000 task.ti: ffff88007c79c000
 RIP: 0010:[&lt;ffffffff8143c459&gt;]  [&lt;ffffffff8143c459&gt;] ip6_route_output+0x58/0x82
 RSP: 0018:ffff88007fd03668  EFLAGS: 00010282
 RAX: 0000000000000000 RBX: ffffffff8186a000 RCX: 0000000000000040
 RDX: 0000000000000000 RSI: ffff88007b0e4a80 RDI: ffff88007fd03754
 RBP: ffff88007fd03688 R08: ffff88007b0e4a80 R09: 0000000000000000
 R10: 0200000a0100000a R11: 0001002200000000 R12: ffff88007fd03740
 R13: ffff88007b0e4a80 R14: ffff88007b0e4a80 R15: ffff88007bba0c50
 FS:  0000000000000000(0000) GS:ffff88007fd00000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
 CR2: 0000000000000046 CR3: 000000007bb60000 CR4: 00000000000006e0
 Stack:
  0000000000000000 ffff88007fd037a0 ffffffff8186a000 ffff88007fd03740
  ffff88007fd036c8 ffffffff814320bb 0000000000006e49 ffff88007b8b7360
  ffff88007bdbf200 ffff88007bcbc000 ffff88007b8b7000 ffff88007b8b7360
 Call Trace:
  &lt;IRQ&gt;
  [&lt;ffffffff814320bb&gt;] ip6_dst_lookup_tail+0x2d/0xa4
  [&lt;ffffffff814322a5&gt;] ip6_dst_lookup+0x10/0x12
  [&lt;ffffffff81323b4e&gt;] vxlan_xmit_one+0x32a/0x68c
  [&lt;ffffffff814a325a&gt;] ? _raw_spin_unlock_irqrestore+0x12/0x14
  [&lt;ffffffff8104c551&gt;] ? lock_timer_base.isra.23+0x26/0x4b
  [&lt;ffffffff8132451a&gt;] vxlan_xmit+0x66a/0x6a8
  [&lt;ffffffff8141a365&gt;] ? ipt_do_table+0x35f/0x37e
  [&lt;ffffffff81204ba2&gt;] ? selinux_ip_postroute+0x41/0x26e
  [&lt;ffffffff8139d0c1&gt;] dev_hard_start_xmit+0x2ce/0x3ce
  [&lt;ffffffff8139d491&gt;] __dev_queue_xmit+0x2d0/0x392
  [&lt;ffffffff813b380f&gt;] ? eth_header+0x28/0xb5
  [&lt;ffffffff8139d569&gt;] dev_queue_xmit+0xb/0xd
  [&lt;ffffffff813a5aa6&gt;] neigh_resolve_output+0x134/0x152
  [&lt;ffffffff813db741&gt;] ip_finish_output2+0x236/0x299
  [&lt;ffffffff813dc074&gt;] ip_finish_output+0x98/0x9d
  [&lt;ffffffff813dc749&gt;] ip_output+0x62/0x67
  [&lt;ffffffff813da9f2&gt;] dst_output+0xf/0x11
  [&lt;ffffffff813dc11c&gt;] ip_local_out+0x1b/0x1f
  [&lt;ffffffff813dcf1b&gt;] ip_send_skb+0x11/0x37
  [&lt;ffffffff813dcf70&gt;] ip_push_pending_frames+0x2f/0x33
  [&lt;ffffffff813ff732&gt;] icmp_push_reply+0x106/0x115
  [&lt;ffffffff813ff9e4&gt;] icmp_reply+0x142/0x164
  [&lt;ffffffff813ffb3b&gt;] icmp_echo.part.16+0x46/0x48
  [&lt;ffffffff813c1d30&gt;] ? nf_iterate+0x43/0x80
  [&lt;ffffffff813d8037&gt;] ? xfrm4_policy_check.constprop.11+0x52/0x52
  [&lt;ffffffff813ffb62&gt;] icmp_echo+0x25/0x27
  [&lt;ffffffff814005f7&gt;] icmp_rcv+0x1d2/0x20a
  [&lt;ffffffff813d8037&gt;] ? xfrm4_policy_check.constprop.11+0x52/0x52
  [&lt;ffffffff813d810d&gt;] ip_local_deliver_finish+0xd6/0x14f
  [&lt;ffffffff813d8037&gt;] ? xfrm4_policy_check.constprop.11+0x52/0x52
  [&lt;ffffffff813d7fde&gt;] NF_HOOK.constprop.10+0x4c/0x53
  [&lt;ffffffff813d82bf&gt;] ip_local_deliver+0x4a/0x4f
  [&lt;ffffffff813d7f7b&gt;] ip_rcv_finish+0x253/0x26a
  [&lt;ffffffff813d7d28&gt;] ? inet_add_protocol+0x3e/0x3e
  [&lt;ffffffff813d7fde&gt;] NF_HOOK.constprop.10+0x4c/0x53
  [&lt;ffffffff813d856a&gt;] ip_rcv+0x2a6/0x2ec
  [&lt;ffffffff8139a9a0&gt;] __netif_receive_skb_core+0x43e/0x478
  [&lt;ffffffff812a346f&gt;] ? virtqueue_poll+0x16/0x27
  [&lt;ffffffff8139aa2f&gt;] __netif_receive_skb+0x55/0x5a
  [&lt;ffffffff8139aaaa&gt;] process_backlog+0x76/0x12f
  [&lt;ffffffff8139add8&gt;] net_rx_action+0xa2/0x1ab
  [&lt;ffffffff81047847&gt;] __do_softirq+0xca/0x1d1
  [&lt;ffffffff81047ace&gt;] irq_exit+0x3e/0x85
  [&lt;ffffffff8100b98b&gt;] do_IRQ+0xa9/0xc4
  [&lt;ffffffff814a37ad&gt;] common_interrupt+0x6d/0x6d
  &lt;EOI&gt;
  [&lt;ffffffff810378db&gt;] ? native_safe_halt+0x6/0x8
  [&lt;ffffffff810110c7&gt;] default_idle+0x9/0xd
  [&lt;ffffffff81011694&gt;] arch_cpu_idle+0x13/0x1c
  [&lt;ffffffff8107480d&gt;] cpu_startup_entry+0xbc/0x137
  [&lt;ffffffff8102e741&gt;] start_secondary+0x1a0/0x1a5
 Code: 24 14 e8 f1 e5 01 00 31 d2 a8 32 0f 95 c2 49 8b 44 24 2c 49 0b 44 24 24 74 05 83 ca 04 eb 1c 4d 85 ed 74 17 49 8b 85 a8 02 00 00 &lt;66&gt; 8b 40 46 66 c1 e8 07 83 e0 07 c1 e0 03 09 c2 4c 89 e6 48 89
 RIP  [&lt;ffffffff8143c459&gt;] ip6_route_output+0x58/0x82
  RSP &lt;ffff88007fd03668&gt;
 CR2: 0000000000000046
 ---[ end trace 4612329caab37efd ]---

When vxlan interface is created without explicit group definition, the
default_dst protocol family is initialiazed to AF_UNSPEC and the driver
assumes IPv4 configuration. On the other side, the default_dst protocol
family is used to differentiate between IPv4 and IPv6 cases and, since,
AF_UNSPEC != AF_INET, the processing takes the IPv6 path.

Making the IPv4 assumption explicit by settting default_dst protocol
family to AF_INET4 and preventing mixing of IPv4 and IPv6 addresses in
snooped fdb entries fixes the corner case crashes.

Signed-off-by: Mike Rapoport &lt;mike.rapoport@ravellosystems.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>vxlan: fix nonfunctional neigh_reduce()</title>
<updated>2014-04-14T13:47:20+00:00</updated>
<author>
<name>David Stevens</name>
<email>dlstevens@us.ibm.com</email>
</author>
<published>2014-03-24T14:39:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=3927dace523706cc00f808520eaf2125dd7c07b5'/>
<id>3927dace523706cc00f808520eaf2125dd7c07b5</id>
<content type='text'>
[ Upstream commit 4b29dba9c085a4fb79058fb1c45a2f6257ca3dfa ]

The VXLAN neigh_reduce() code is completely non-functional since
check-in. Specific errors:

1) The original code drops all packets with a multicast destination address,
	even though neighbor solicitations are sent to the solicited-node
	address, a multicast address. The code after this check was never run.
2) The neighbor table lookup used the IPv6 header destination, which is the
	solicited node address, rather than the target address from the
	neighbor solicitation. So neighbor lookups would always fail if it
	got this far. Also for L3MISSes.
3) The code calls ndisc_send_na(), which does a send on the tunnel device.
	The context for neigh_reduce() is the transmit path, vxlan_xmit(),
	where the host or a bridge-attached neighbor is trying to transmit
	a neighbor solicitation. To respond to it, the tunnel endpoint needs
	to do a *receive* of the appropriate neighbor advertisement. Doing a
	send, would only try to send the advertisement, encapsulated, to the
	remote destinations in the fdb -- hosts that definitely did not do the
	corresponding solicitation.
4) The code uses the tunnel endpoint IPv6 forwarding flag to determine the
	isrouter flag in the advertisement. This has nothing to do with whether
	or not the target is a router, and generally won't be set since the
	tunnel endpoint is bridging, not routing, traffic.

	The patch below creates a proxy neighbor advertisement to respond to
neighbor solicitions as intended, providing proper IPv6 support for neighbor
reduction.

Signed-off-by: David L Stevens &lt;dlstevens@us.ibm.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 4b29dba9c085a4fb79058fb1c45a2f6257ca3dfa ]

The VXLAN neigh_reduce() code is completely non-functional since
check-in. Specific errors:

1) The original code drops all packets with a multicast destination address,
	even though neighbor solicitations are sent to the solicited-node
	address, a multicast address. The code after this check was never run.
2) The neighbor table lookup used the IPv6 header destination, which is the
	solicited node address, rather than the target address from the
	neighbor solicitation. So neighbor lookups would always fail if it
	got this far. Also for L3MISSes.
3) The code calls ndisc_send_na(), which does a send on the tunnel device.
	The context for neigh_reduce() is the transmit path, vxlan_xmit(),
	where the host or a bridge-attached neighbor is trying to transmit
	a neighbor solicitation. To respond to it, the tunnel endpoint needs
	to do a *receive* of the appropriate neighbor advertisement. Doing a
	send, would only try to send the advertisement, encapsulated, to the
	remote destinations in the fdb -- hosts that definitely did not do the
	corresponding solicitation.
4) The code uses the tunnel endpoint IPv6 forwarding flag to determine the
	isrouter flag in the advertisement. This has nothing to do with whether
	or not the target is a router, and generally won't be set since the
	tunnel endpoint is bridging, not routing, traffic.

	The patch below creates a proxy neighbor advertisement to respond to
neighbor solicitions as intended, providing proper IPv6 support for neighbor
reduction.

Signed-off-by: David L Stevens &lt;dlstevens@us.ibm.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>vxlan: fix potential NULL dereference in arp_reduce()</title>
<updated>2014-04-14T13:47:20+00:00</updated>
<author>
<name>David Stevens</name>
<email>dlstevens@us.ibm.com</email>
</author>
<published>2014-03-18T16:32:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e1ef50212d122b0e775fb234b4c1523d52859acb'/>
<id>e1ef50212d122b0e775fb234b4c1523d52859acb</id>
<content type='text'>
[ Upstream commit 7346135dcd3f9b57f30a5512094848c678d7143e ]

This patch fixes a NULL pointer dereference in the event of an
skb allocation failure in arp_reduce().

Signed-Off-By: David L Stevens &lt;dlstevens@us.ibm.com&gt;
Acked-by: Cong Wang &lt;cwang@twopensource.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 7346135dcd3f9b57f30a5512094848c678d7143e ]

This patch fixes a NULL pointer dereference in the event of an
skb allocation failure in arp_reduce().

Signed-Off-By: David L Stevens &lt;dlstevens@us.ibm.com&gt;
Acked-by: Cong Wang &lt;cwang@twopensource.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>net/vxlan: Share RX skb de-marking and checksum checks with ovs</title>
<updated>2014-02-06T19:34:07+00:00</updated>
<author>
<name>Or Gerlitz</name>
<email>ogerlitz@mellanox.com</email>
</author>
<published>2014-01-23T09:28:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=93199ca47ddf8047144d5569f19564fdbaf7ec40'/>
<id>93199ca47ddf8047144d5569f19564fdbaf7ec40</id>
<content type='text'>
[ Upstream commit d0bc65557ad09a57b4db176e9e3ccddb26971453 ]

Make sure the practice set by commit 0afb166 "vxlan: Add capability
of Rx checksum offload for inner packet" is applied when the skb
goes through the portion of the RX code which is shared between
vxlan netdevices and ovs vxlan port instances.

Cc: Joseph Gasparakis &lt;joseph.gasparakis@intel.com&gt;
Cc: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Signed-off-by: Or Gerlitz &lt;ogerlitz@mellanox.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 d0bc65557ad09a57b4db176e9e3ccddb26971453 ]

Make sure the practice set by commit 0afb166 "vxlan: Add capability
of Rx checksum offload for inner packet" is applied when the skb
goes through the portion of the RX code which is shared between
vxlan netdevices and ovs vxlan port instances.

Cc: Joseph Gasparakis &lt;joseph.gasparakis@intel.com&gt;
Cc: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Signed-off-by: Or Gerlitz &lt;ogerlitz@mellanox.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>{vxlan, inet6} Mark vxlan_dev flags with VXLAN_F_IPV6 properly</title>
<updated>2014-01-04T01:36:00+00:00</updated>
<author>
<name>fan.du</name>
<email>fan.du@windriver.com</email>
</author>
<published>2014-01-03T02:18:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=7bda701e012373ca53c9d837b7b25131852e0238'/>
<id>7bda701e012373ca53c9d837b7b25131852e0238</id>
<content type='text'>
Even if user doesn't supply the physical netdev to attach vxlan dev
to, and at the same time user want to vxlan sit top of IPv6, mark
vxlan_dev flags with VXLAN_F_IPV6 to create IPv6 based socket.
Otherwise kernel crashes safely every time spitting below messages,

Steps to reproduce:
ip link add vxlan0 type vxlan id 42 group ff0e::110
ip link set vxlan0 up

[   62.656266] BUG: unable to handle kernel NULL pointer dereference[   62.656320] ip (3008) used greatest stack depth: 3912 bytes left
 at 0000000000000046
[   62.656423] IP: [&lt;ffffffff816d822d&gt;] ip6_route_output+0xbd/0xe0
[   62.656525] PGD 2c966067 PUD 2c9a2067 PMD 0
[   62.656674] Oops: 0000 [#1] SMP
[   62.656781] Modules linked in: vxlan netconsole deflate zlib_deflate af_key
[   62.657083] CPU: 1 PID: 2128 Comm: whoopsie Not tainted 3.12.0+ #182
[   62.657083] Hardware name: innotek GmbH VirtualBox, BIOS VirtualBox 12/01/2006
[   62.657083] task: ffff88002e2335d0 ti: ffff88002c94c000 task.ti: ffff88002c94c000
[   62.657083] RIP: 0010:[&lt;ffffffff816d822d&gt;]  [&lt;ffffffff816d822d&gt;] ip6_route_output+0xbd/0xe0
[   62.657083] RSP: 0000:ffff88002fd038f8  EFLAGS: 00210296
[   62.657083] RAX: 0000000000000000 RBX: ffff88002fd039e0 RCX: 0000000000000000
[   62.657083] RDX: ffff88002fd0eb68 RSI: ffff88002fd0d278 RDI: ffff88002fd0d278
[   62.657083] RBP: ffff88002fd03918 R08: 0000000002000000 R09: 0000000000000000
[   62.657083] R10: 00000000000001ff R11: 0000000000000000 R12: 0000000000000001
[   62.657083] R13: ffff88002d96b480 R14: ffffffff81c8e2c0 R15: 0000000000000001
[   62.657083] FS:  0000000000000000(0000) GS:ffff88002fd00000(0063) knlGS:00000000f693b740
[   62.657083] CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
[   62.657083] CR2: 0000000000000046 CR3: 000000002c9d2000 CR4: 00000000000006e0
[   62.657083] Stack:
[   62.657083]  ffff88002fd03a40 ffffffff81c8e2c0 ffff88002fd039e0 ffff88002d96b480
[   62.657083]  ffff88002fd03958 ffffffff816cac8b ffff880019277cc0 ffff8800192b5d00
[   62.657083]  ffff88002d5bc000 ffff880019277cc0 0000000000001821 0000000000000001
[   62.657083] Call Trace:
[   62.657083]  &lt;IRQ&gt;
[   62.657083]  [&lt;ffffffff816cac8b&gt;] ip6_dst_lookup_tail+0xdb/0xf0
[   62.657083]  [&lt;ffffffff816caea0&gt;] ip6_dst_lookup+0x10/0x20
[   62.657083]  [&lt;ffffffffa0020c13&gt;] vxlan_xmit_one+0x193/0x9c0 [vxlan]
[   62.657083]  [&lt;ffffffff8137b3b7&gt;] ? account+0xc7/0x1f0
[   62.657083]  [&lt;ffffffffa0021513&gt;] vxlan_xmit+0xd3/0x400 [vxlan]
[   62.657083]  [&lt;ffffffff8161390d&gt;] dev_hard_start_xmit+0x49d/0x5e0
[   62.657083]  [&lt;ffffffff81613d29&gt;] dev_queue_xmit+0x2d9/0x480
[   62.657083]  [&lt;ffffffff817cb854&gt;] ? _raw_write_unlock_bh+0x14/0x20
[   62.657083]  [&lt;ffffffff81630565&gt;] ? eth_header+0x35/0xe0
[   62.657083]  [&lt;ffffffff8161bc5e&gt;] neigh_resolve_output+0x11e/0x1e0
[   62.657083]  [&lt;ffffffff816ce0e0&gt;] ? ip6_fragment+0xad0/0xad0
[   62.657083]  [&lt;ffffffff816cb465&gt;] ip6_finish_output2+0x2f5/0x470
[   62.657083]  [&lt;ffffffff816ce166&gt;] ip6_finish_output+0x86/0xc0
[   62.657083]  [&lt;ffffffff816ce218&gt;] ip6_output+0x78/0xb0
[   62.657083]  [&lt;ffffffff816eadd6&gt;] mld_sendpack+0x256/0x2a0
[   62.657083]  [&lt;ffffffff816ebd8c&gt;] mld_ifc_timer_expire+0x17c/0x290
[   62.657083]  [&lt;ffffffff816ebc10&gt;] ? igmp6_timer_handler+0x80/0x80
[   62.657083]  [&lt;ffffffff816ebc10&gt;] ? igmp6_timer_handler+0x80/0x80
[   62.657083]  [&lt;ffffffff81051065&gt;] call_timer_fn+0x45/0x150
[   62.657083]  [&lt;ffffffff816ebc10&gt;] ? igmp6_timer_handler+0x80/0x80
[   62.657083]  [&lt;ffffffff81052353&gt;] run_timer_softirq+0x1f3/0x2a0
[   62.657083]  [&lt;ffffffff8102dfd8&gt;] ? lapic_next_event+0x18/0x20
[   62.657083]  [&lt;ffffffff8109e36f&gt;] ? clockevents_program_event+0x6f/0x110
[   62.657083]  [&lt;ffffffff8104a2f6&gt;] __do_softirq+0xd6/0x2b0
[   62.657083]  [&lt;ffffffff8104a75e&gt;] irq_exit+0x7e/0xa0
[   62.657083]  [&lt;ffffffff8102ea15&gt;] smp_apic_timer_interrupt+0x45/0x60
[   62.657083]  [&lt;ffffffff817d3eca&gt;] apic_timer_interrupt+0x6a/0x70
[   62.657083]  &lt;EOI&gt;
[   62.657083]  [&lt;ffffffff817d4a35&gt;] ? sysenter_dispatch+0x7/0x1a
[   62.657083] Code: 4d 8b 85 a8 02 00 00 4c 89 e9 ba 03 04 00 00 48 c7 c6 c0 be 8d 81 48 c7 c7 48 35 a3 81 31 c0 e8 db 68 0e 00 49 8b 85 a8 02 00 00 &lt;0f&gt; b6 40 46 c0 e8 05 0f b6 c0 c1 e0 03 41 09 c4 e9 77 ff ff ff
[   62.657083] RIP  [&lt;ffffffff816d822d&gt;] ip6_route_output+0xbd/0xe0
[   62.657083]  RSP &lt;ffff88002fd038f8&gt;
[   62.657083] CR2: 0000000000000046
[   62.657083] ---[ end trace ba8a9583d7cd1934 ]---
[   62.657083] Kernel panic - not syncing: Fatal exception in interrupt

Signed-off-by: Fan Du &lt;fan.du@windriver.com&gt;
Reported-by: Ryan Whelan &lt;rcwhelan@gmail.com&gt;
Acked-by: Cong Wang &lt;xiyou.wangcong@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>
Even if user doesn't supply the physical netdev to attach vxlan dev
to, and at the same time user want to vxlan sit top of IPv6, mark
vxlan_dev flags with VXLAN_F_IPV6 to create IPv6 based socket.
Otherwise kernel crashes safely every time spitting below messages,

Steps to reproduce:
ip link add vxlan0 type vxlan id 42 group ff0e::110
ip link set vxlan0 up

[   62.656266] BUG: unable to handle kernel NULL pointer dereference[   62.656320] ip (3008) used greatest stack depth: 3912 bytes left
 at 0000000000000046
[   62.656423] IP: [&lt;ffffffff816d822d&gt;] ip6_route_output+0xbd/0xe0
[   62.656525] PGD 2c966067 PUD 2c9a2067 PMD 0
[   62.656674] Oops: 0000 [#1] SMP
[   62.656781] Modules linked in: vxlan netconsole deflate zlib_deflate af_key
[   62.657083] CPU: 1 PID: 2128 Comm: whoopsie Not tainted 3.12.0+ #182
[   62.657083] Hardware name: innotek GmbH VirtualBox, BIOS VirtualBox 12/01/2006
[   62.657083] task: ffff88002e2335d0 ti: ffff88002c94c000 task.ti: ffff88002c94c000
[   62.657083] RIP: 0010:[&lt;ffffffff816d822d&gt;]  [&lt;ffffffff816d822d&gt;] ip6_route_output+0xbd/0xe0
[   62.657083] RSP: 0000:ffff88002fd038f8  EFLAGS: 00210296
[   62.657083] RAX: 0000000000000000 RBX: ffff88002fd039e0 RCX: 0000000000000000
[   62.657083] RDX: ffff88002fd0eb68 RSI: ffff88002fd0d278 RDI: ffff88002fd0d278
[   62.657083] RBP: ffff88002fd03918 R08: 0000000002000000 R09: 0000000000000000
[   62.657083] R10: 00000000000001ff R11: 0000000000000000 R12: 0000000000000001
[   62.657083] R13: ffff88002d96b480 R14: ffffffff81c8e2c0 R15: 0000000000000001
[   62.657083] FS:  0000000000000000(0000) GS:ffff88002fd00000(0063) knlGS:00000000f693b740
[   62.657083] CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
[   62.657083] CR2: 0000000000000046 CR3: 000000002c9d2000 CR4: 00000000000006e0
[   62.657083] Stack:
[   62.657083]  ffff88002fd03a40 ffffffff81c8e2c0 ffff88002fd039e0 ffff88002d96b480
[   62.657083]  ffff88002fd03958 ffffffff816cac8b ffff880019277cc0 ffff8800192b5d00
[   62.657083]  ffff88002d5bc000 ffff880019277cc0 0000000000001821 0000000000000001
[   62.657083] Call Trace:
[   62.657083]  &lt;IRQ&gt;
[   62.657083]  [&lt;ffffffff816cac8b&gt;] ip6_dst_lookup_tail+0xdb/0xf0
[   62.657083]  [&lt;ffffffff816caea0&gt;] ip6_dst_lookup+0x10/0x20
[   62.657083]  [&lt;ffffffffa0020c13&gt;] vxlan_xmit_one+0x193/0x9c0 [vxlan]
[   62.657083]  [&lt;ffffffff8137b3b7&gt;] ? account+0xc7/0x1f0
[   62.657083]  [&lt;ffffffffa0021513&gt;] vxlan_xmit+0xd3/0x400 [vxlan]
[   62.657083]  [&lt;ffffffff8161390d&gt;] dev_hard_start_xmit+0x49d/0x5e0
[   62.657083]  [&lt;ffffffff81613d29&gt;] dev_queue_xmit+0x2d9/0x480
[   62.657083]  [&lt;ffffffff817cb854&gt;] ? _raw_write_unlock_bh+0x14/0x20
[   62.657083]  [&lt;ffffffff81630565&gt;] ? eth_header+0x35/0xe0
[   62.657083]  [&lt;ffffffff8161bc5e&gt;] neigh_resolve_output+0x11e/0x1e0
[   62.657083]  [&lt;ffffffff816ce0e0&gt;] ? ip6_fragment+0xad0/0xad0
[   62.657083]  [&lt;ffffffff816cb465&gt;] ip6_finish_output2+0x2f5/0x470
[   62.657083]  [&lt;ffffffff816ce166&gt;] ip6_finish_output+0x86/0xc0
[   62.657083]  [&lt;ffffffff816ce218&gt;] ip6_output+0x78/0xb0
[   62.657083]  [&lt;ffffffff816eadd6&gt;] mld_sendpack+0x256/0x2a0
[   62.657083]  [&lt;ffffffff816ebd8c&gt;] mld_ifc_timer_expire+0x17c/0x290
[   62.657083]  [&lt;ffffffff816ebc10&gt;] ? igmp6_timer_handler+0x80/0x80
[   62.657083]  [&lt;ffffffff816ebc10&gt;] ? igmp6_timer_handler+0x80/0x80
[   62.657083]  [&lt;ffffffff81051065&gt;] call_timer_fn+0x45/0x150
[   62.657083]  [&lt;ffffffff816ebc10&gt;] ? igmp6_timer_handler+0x80/0x80
[   62.657083]  [&lt;ffffffff81052353&gt;] run_timer_softirq+0x1f3/0x2a0
[   62.657083]  [&lt;ffffffff8102dfd8&gt;] ? lapic_next_event+0x18/0x20
[   62.657083]  [&lt;ffffffff8109e36f&gt;] ? clockevents_program_event+0x6f/0x110
[   62.657083]  [&lt;ffffffff8104a2f6&gt;] __do_softirq+0xd6/0x2b0
[   62.657083]  [&lt;ffffffff8104a75e&gt;] irq_exit+0x7e/0xa0
[   62.657083]  [&lt;ffffffff8102ea15&gt;] smp_apic_timer_interrupt+0x45/0x60
[   62.657083]  [&lt;ffffffff817d3eca&gt;] apic_timer_interrupt+0x6a/0x70
[   62.657083]  &lt;EOI&gt;
[   62.657083]  [&lt;ffffffff817d4a35&gt;] ? sysenter_dispatch+0x7/0x1a
[   62.657083] Code: 4d 8b 85 a8 02 00 00 4c 89 e9 ba 03 04 00 00 48 c7 c6 c0 be 8d 81 48 c7 c7 48 35 a3 81 31 c0 e8 db 68 0e 00 49 8b 85 a8 02 00 00 &lt;0f&gt; b6 40 46 c0 e8 05 0f b6 c0 c1 e0 03 41 09 c4 e9 77 ff ff ff
[   62.657083] RIP  [&lt;ffffffff816d822d&gt;] ip6_route_output+0xbd/0xe0
[   62.657083]  RSP &lt;ffff88002fd038f8&gt;
[   62.657083] CR2: 0000000000000046
[   62.657083] ---[ end trace ba8a9583d7cd1934 ]---
[   62.657083] Kernel panic - not syncing: Fatal exception in interrupt

Signed-off-by: Fan Du &lt;fan.du@windriver.com&gt;
Reported-by: Ryan Whelan &lt;rcwhelan@gmail.com&gt;
Acked-by: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vxlan: release rt when found circular route</title>
<updated>2013-12-11T03:01:54+00:00</updated>
<author>
<name>Fan Du</name>
<email>fan.du@windriver.com</email>
</author>
<published>2013-12-09T02:33:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=fffc15a5012e9052d3b236efc56840841a125416'/>
<id>fffc15a5012e9052d3b236efc56840841a125416</id>
<content type='text'>
Otherwise causing dst memory leakage.
Have Checked all other type tunnel device transmit implementation,
no such things happens anymore.

Signed-off-by: Fan Du &lt;fan.du@windriver.com&gt;
Acked-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>
Otherwise causing dst memory leakage.
Have Checked all other type tunnel device transmit implementation,
no such things happens anymore.

Signed-off-by: Fan Du &lt;fan.du@windriver.com&gt;
Acked-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip</title>
<updated>2013-11-14T07:30:30+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-11-14T07:30:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5e30025a319910695f5010dc0fb53a23299da14d'/>
<id>5e30025a319910695f5010dc0fb53a23299da14d</id>
<content type='text'>
Pull core locking changes from Ingo Molnar:
 "The biggest changes:

   - add lockdep support for seqcount/seqlocks structures, this
     unearthed both bugs and required extra annotation.

   - move the various kernel locking primitives to the new
     kernel/locking/ directory"

* 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
  block: Use u64_stats_init() to initialize seqcounts
  locking/lockdep: Mark __lockdep_count_forward_deps() as static
  lockdep/proc: Fix lock-time avg computation
  locking/doc: Update references to kernel/mutex.c
  ipv6: Fix possible ipv6 seqlock deadlock
  cpuset: Fix potential deadlock w/ set_mems_allowed
  seqcount: Add lockdep functionality to seqcount/seqlock structures
  net: Explicitly initialize u64_stats_sync structures for lockdep
  locking: Move the percpu-rwsem code to kernel/locking/
  locking: Move the lglocks code to kernel/locking/
  locking: Move the rwsem code to kernel/locking/
  locking: Move the rtmutex code to kernel/locking/
  locking: Move the semaphore core to kernel/locking/
  locking: Move the spinlock code to kernel/locking/
  locking: Move the lockdep code to kernel/locking/
  locking: Move the mutex code to kernel/locking/
  hung_task debugging: Add tracepoint to report the hang
  x86/locking/kconfig: Update paravirt spinlock Kconfig description
  lockstat: Report avg wait and hold times
  lockdep, x86/alternatives: Drop ancient lockdep fixup message
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull core locking changes from Ingo Molnar:
 "The biggest changes:

   - add lockdep support for seqcount/seqlocks structures, this
     unearthed both bugs and required extra annotation.

   - move the various kernel locking primitives to the new
     kernel/locking/ directory"

* 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
  block: Use u64_stats_init() to initialize seqcounts
  locking/lockdep: Mark __lockdep_count_forward_deps() as static
  lockdep/proc: Fix lock-time avg computation
  locking/doc: Update references to kernel/mutex.c
  ipv6: Fix possible ipv6 seqlock deadlock
  cpuset: Fix potential deadlock w/ set_mems_allowed
  seqcount: Add lockdep functionality to seqcount/seqlock structures
  net: Explicitly initialize u64_stats_sync structures for lockdep
  locking: Move the percpu-rwsem code to kernel/locking/
  locking: Move the lglocks code to kernel/locking/
  locking: Move the rwsem code to kernel/locking/
  locking: Move the rtmutex code to kernel/locking/
  locking: Move the semaphore core to kernel/locking/
  locking: Move the spinlock code to kernel/locking/
  locking: Move the lockdep code to kernel/locking/
  locking: Move the mutex code to kernel/locking/
  hung_task debugging: Add tracepoint to report the hang
  x86/locking/kconfig: Update paravirt spinlock Kconfig description
  lockstat: Report avg wait and hold times
  lockdep, x86/alternatives: Drop ancient lockdep fixup message
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>net: Explicitly initialize u64_stats_sync structures for lockdep</title>
<updated>2013-11-06T11:40:25+00:00</updated>
<author>
<name>John Stultz</name>
<email>john.stultz@linaro.org</email>
</author>
<published>2013-10-07T22:51:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=827da44c61419f29ae3be198c342e2147f1a10cb'/>
<id>827da44c61419f29ae3be198c342e2147f1a10cb</id>
<content type='text'>
In order to enable lockdep on seqcount/seqlock structures, we
must explicitly initialize any locks.

The u64_stats_sync structure, uses a seqcount, and thus we need
to introduce a u64_stats_init() function and use it to initialize
the structure.

This unfortunately adds a lot of fairly trivial initialization code
to a number of drivers. But the benefit of ensuring correctness makes
this worth while.

Because these changes are required for lockdep to be enabled, and the
changes are quite trivial, I've not yet split this patch out into 30-some
separate patches, as I figured it would be better to get the various
maintainers thoughts on how to best merge this change along with
the seqcount lockdep enablement.

Feedback would be appreciated!

Signed-off-by: John Stultz &lt;john.stultz@linaro.org&gt;
Acked-by: Julian Anastasov &lt;ja@ssi.bg&gt;
Signed-off-by: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Alexey Kuznetsov &lt;kuznet@ms2.inr.ac.ru&gt;
Cc: "David S. Miller" &lt;davem@davemloft.net&gt;
Cc: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Cc: Hideaki YOSHIFUJI &lt;yoshfuji@linux-ipv6.org&gt;
Cc: James Morris &lt;jmorris@namei.org&gt;
Cc: Jesse Gross &lt;jesse@nicira.com&gt;
Cc: Mathieu Desnoyers &lt;mathieu.desnoyers@efficios.com&gt;
Cc: "Michael S. Tsirkin" &lt;mst@redhat.com&gt;
Cc: Mirko Lindner &lt;mlindner@marvell.com&gt;
Cc: Patrick McHardy &lt;kaber@trash.net&gt;
Cc: Roger Luethi &lt;rl@hellgate.ch&gt;
Cc: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Cc: Simon Horman &lt;horms@verge.net.au&gt;
Cc: Stephen Hemminger &lt;stephen@networkplumber.org&gt;
Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
Cc: Wensong Zhang &lt;wensong@linux-vs.org&gt;
Cc: netdev@vger.kernel.org
Link: http://lkml.kernel.org/r/1381186321-4906-2-git-send-email-john.stultz@linaro.org
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In order to enable lockdep on seqcount/seqlock structures, we
must explicitly initialize any locks.

The u64_stats_sync structure, uses a seqcount, and thus we need
to introduce a u64_stats_init() function and use it to initialize
the structure.

This unfortunately adds a lot of fairly trivial initialization code
to a number of drivers. But the benefit of ensuring correctness makes
this worth while.

Because these changes are required for lockdep to be enabled, and the
changes are quite trivial, I've not yet split this patch out into 30-some
separate patches, as I figured it would be better to get the various
maintainers thoughts on how to best merge this change along with
the seqcount lockdep enablement.

Feedback would be appreciated!

Signed-off-by: John Stultz &lt;john.stultz@linaro.org&gt;
Acked-by: Julian Anastasov &lt;ja@ssi.bg&gt;
Signed-off-by: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Alexey Kuznetsov &lt;kuznet@ms2.inr.ac.ru&gt;
Cc: "David S. Miller" &lt;davem@davemloft.net&gt;
Cc: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Cc: Hideaki YOSHIFUJI &lt;yoshfuji@linux-ipv6.org&gt;
Cc: James Morris &lt;jmorris@namei.org&gt;
Cc: Jesse Gross &lt;jesse@nicira.com&gt;
Cc: Mathieu Desnoyers &lt;mathieu.desnoyers@efficios.com&gt;
Cc: "Michael S. Tsirkin" &lt;mst@redhat.com&gt;
Cc: Mirko Lindner &lt;mlindner@marvell.com&gt;
Cc: Patrick McHardy &lt;kaber@trash.net&gt;
Cc: Roger Luethi &lt;rl@hellgate.ch&gt;
Cc: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Cc: Simon Horman &lt;horms@verge.net.au&gt;
Cc: Stephen Hemminger &lt;stephen@networkplumber.org&gt;
Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
Cc: Wensong Zhang &lt;wensong@linux-vs.org&gt;
Cc: netdev@vger.kernel.org
Link: http://lkml.kernel.org/r/1381186321-4906-2-git-send-email-john.stultz@linaro.org
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vxlan: Use ERR_CAST inlined function instead of ERR_PTR(PTR_ERR(...))</title>
<updated>2013-11-05T01:02:33+00:00</updated>
<author>
<name>Duan Jiong</name>
<email>duanj.fnst@cn.fujitsu.com</email>
</author>
<published>2013-11-01T05:09:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e50fddc8b0c0698cba446221be3654aa0a642372'/>
<id>e50fddc8b0c0698cba446221be3654aa0a642372</id>
<content type='text'>
trivial patch converting ERR_PTR(PTR_ERR()) into ERR_CAST().
No functional changes.

Signed-off-by: Duan Jiong &lt;duanj.fnst@cn.fujitsu.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>
trivial patch converting ERR_PTR(PTR_ERR()) into ERR_CAST().
No functional changes.

Signed-off-by: Duan Jiong &lt;duanj.fnst@cn.fujitsu.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vxlan: Have the NIC drivers do less work for offloads</title>
<updated>2013-10-29T09:39:13+00:00</updated>
<author>
<name>Joseph Gasparakis</name>
<email>joseph.gasparakis@intel.com</email>
</author>
<published>2013-10-24T06:27:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e6cd988c27bb5918630db67b3526c9e78e786818'/>
<id>e6cd988c27bb5918630db67b3526c9e78e786818</id>
<content type='text'>
This patch removes the burden from the NIC drivers to check if the
vxlan driver is enabled in the kernel and also makes available
the vxlan headrooms to them.

Signed-off-by: Joseph Gasparakis &lt;joseph.gasparakis@intel.com&gt;
Tested-by: Kavindya Deegala &lt;kavindya.s.deegala@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch removes the burden from the NIC drivers to check if the
vxlan driver is enabled in the kernel and also makes available
the vxlan headrooms to them.

Signed-off-by: Joseph Gasparakis &lt;joseph.gasparakis@intel.com&gt;
Tested-by: Kavindya Deegala &lt;kavindya.s.deegala@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
