<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/net/bonding, branch v3.16.7</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>bonding: fix div by zero while enslaving and transmitting</title>
<updated>2014-10-15T10:05:28+00:00</updated>
<author>
<name>Nikolay Aleksandrov</name>
<email>nikolay@redhat.com</email>
</author>
<published>2014-09-12T15:38:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e39b8b0e9c277722801db9eeab00aa7a0f18dc60'/>
<id>e39b8b0e9c277722801db9eeab00aa7a0f18dc60</id>
<content type='text'>
[ Upstream commit 9a72c2da690d78e93cff24b9f616412508678dd5 ]

The problem is that the slave is first linked and slave_cnt is
incremented afterwards leading to a div by zero in the modes that use it
as a modulus. What happens is that in bond_start_xmit()
bond_has_slaves() is used to evaluate further transmission and it becomes
true after the slave is linked in, but when slave_cnt is used in the xmit
path it is still 0, so fetch it once and transmit based on that. Since
it is used only in round-robin and XOR modes, the fix is only for them.
Thanks to Eric Dumazet for pointing out the fault in my first try to fix
this.

Call trace (took it out of net-next kernel, but it's the same with net):
[46934.330038] divide error: 0000 [#1] SMP
[46934.330041] Modules linked in: bonding(O) 9p fscache
snd_hda_codec_generic crct10dif_pclmul
[46934.330041] bond0: Enslaving eth1 as an active interface with an up
link
[46934.330051]  ppdev joydev crc32_pclmul crc32c_intel 9pnet_virtio
ghash_clmulni_intel snd_hda_intel 9pnet snd_hda_controller parport_pc
serio_raw pcspkr snd_hda_codec parport virtio_balloon virtio_console
snd_hwdep snd_pcm pvpanic i2c_piix4 snd_timer i2ccore snd soundcore
virtio_blk virtio_net virtio_pci virtio_ring virtio ata_generic
pata_acpi floppy [last unloaded: bonding]
[46934.330053] CPU: 1 PID: 3382 Comm: ping Tainted: G           O
3.17.0-rc4+ #27
[46934.330053] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[46934.330054] task: ffff88005aebf2c0 ti: ffff88005b728000 task.ti:
ffff88005b728000
[46934.330059] RIP: 0010:[&lt;ffffffffa0198c33&gt;]  [&lt;ffffffffa0198c33&gt;]
bond_start_xmit+0x1c3/0x450 [bonding]
[46934.330060] RSP: 0018:ffff88005b72b7f8  EFLAGS: 00010246
[46934.330060] RAX: 0000000000000679 RBX: ffff88004b077000 RCX:
000000000000002a
[46934.330061] RDX: 0000000000000000 RSI: ffff88004b3f0500 RDI:
ffff88004b077940
[46934.330061] RBP: ffff88005b72b830 R08: 00000000000000c0 R09:
ffff88004a83e000
[46934.330062] R10: 000000000000ffff R11: ffff88004b1f12c0 R12:
ffff88004b3f0500
[46934.330062] R13: ffff88004b3f0500 R14: 000000000000002a R15:
ffff88004b077940
[46934.330063] FS:  00007fbd91a4c740(0000) GS:ffff88005f080000(0000)
knlGS:0000000000000000
[46934.330064] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[46934.330064] CR2: 00007f803a8bb000 CR3: 000000004b2c9000 CR4:
00000000000406e0
[46934.330069] Stack:
[46934.330071]  ffffffff811e6169 00000000e772fa05 ffff88004b077000
ffff88004b3f0500
[46934.330072]  ffffffff81d17d18 000000000000002a 0000000000000000
ffff88005b72b8a0
[46934.330073]  ffffffff81620108 ffffffff8161fe0e ffff88005b72b8c4
ffff88005b302000
[46934.330073] Call Trace:
[46934.330077]  [&lt;ffffffff811e6169&gt;] ?
__kmalloc_node_track_caller+0x119/0x300
[46934.330084]  [&lt;ffffffff81620108&gt;] dev_hard_start_xmit+0x188/0x410
[46934.330086]  [&lt;ffffffff8161fe0e&gt;] ? harmonize_features+0x2e/0x90
[46934.330088]  [&lt;ffffffff81620b06&gt;] __dev_queue_xmit+0x456/0x590
[46934.330089]  [&lt;ffffffff81620c50&gt;] dev_queue_xmit+0x10/0x20
[46934.330090]  [&lt;ffffffff8168f022&gt;] arp_xmit+0x22/0x60
[46934.330091]  [&lt;ffffffff8168f090&gt;] arp_send.part.16+0x30/0x40
[46934.330092]  [&lt;ffffffff8168f1e5&gt;] arp_solicit+0x115/0x2b0
[46934.330094]  [&lt;ffffffff8160b5d7&gt;] ? copy_skb_header+0x17/0xa0
[46934.330096]  [&lt;ffffffff8162875a&gt;] neigh_probe+0x4a/0x70
[46934.330097]  [&lt;ffffffff8162979c&gt;] __neigh_event_send+0xac/0x230
[46934.330098]  [&lt;ffffffff8162a00b&gt;] neigh_resolve_output+0x13b/0x220
[46934.330100]  [&lt;ffffffff8165f120&gt;] ? ip_forward_options+0x1c0/0x1c0
[46934.330101]  [&lt;ffffffff81660478&gt;] ip_finish_output+0x1f8/0x860
[46934.330102]  [&lt;ffffffff81661f08&gt;] ip_output+0x58/0x90
[46934.330103]  [&lt;ffffffff81661602&gt;] ? __ip_local_out+0xa2/0xb0
[46934.330104]  [&lt;ffffffff81661640&gt;] ip_local_out_sk+0x30/0x40
[46934.330105]  [&lt;ffffffff81662a66&gt;] ip_send_skb+0x16/0x50
[46934.330106]  [&lt;ffffffff81662ad3&gt;] ip_push_pending_frames+0x33/0x40
[46934.330107]  [&lt;ffffffff8168854c&gt;] raw_sendmsg+0x88c/0xa30
[46934.330110]  [&lt;ffffffff81612b31&gt;] ? skb_recv_datagram+0x41/0x60
[46934.330111]  [&lt;ffffffff816875a9&gt;] ? raw_recvmsg+0xa9/0x1f0
[46934.330113]  [&lt;ffffffff816978d4&gt;] inet_sendmsg+0x74/0xc0
[46934.330114]  [&lt;ffffffff81697a9b&gt;] ? inet_recvmsg+0x8b/0xb0
[46934.330115] bond0: Adding slave eth2
[46934.330116]  [&lt;ffffffff8160357c&gt;] sock_sendmsg+0x9c/0xe0
[46934.330118]  [&lt;ffffffff81603248&gt;] ?
move_addr_to_kernel.part.20+0x28/0x80
[46934.330121]  [&lt;ffffffff811b4477&gt;] ? might_fault+0x47/0x50
[46934.330122]  [&lt;ffffffff816039b9&gt;] ___sys_sendmsg+0x3a9/0x3c0
[46934.330125]  [&lt;ffffffff8144a14a&gt;] ? n_tty_write+0x3aa/0x530
[46934.330127]  [&lt;ffffffff810d1ae4&gt;] ? __wake_up+0x44/0x50
[46934.330129]  [&lt;ffffffff81242b38&gt;] ? fsnotify+0x238/0x310
[46934.330130]  [&lt;ffffffff816048a1&gt;] __sys_sendmsg+0x51/0x90
[46934.330131]  [&lt;ffffffff816048f2&gt;] SyS_sendmsg+0x12/0x20
[46934.330134]  [&lt;ffffffff81738b29&gt;] system_call_fastpath+0x16/0x1b
[46934.330144] Code: 48 8b 10 4c 89 ee 4c 89 ff e8 aa bc ff ff 31 c0 e9
1a ff ff ff 0f 1f 00 4c 89 ee 4c 89 ff e8 65 fb ff ff 31 d2 4c 89 ee 4c
89 ff &lt;f7&gt; b3 64 09 00 00 e8 02 bd ff ff 31 c0 e9 f2 fe ff ff 0f 1f 00
[46934.330146] RIP  [&lt;ffffffffa0198c33&gt;] bond_start_xmit+0x1c3/0x450
[bonding]
[46934.330146]  RSP &lt;ffff88005b72b7f8&gt;

CC: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
CC: Andy Gospodarek &lt;andy@greyhouse.net&gt;
CC: Jay Vosburgh &lt;j.vosburgh@gmail.com&gt;
CC: Veaceslav Falico &lt;vfalico@gmail.com&gt;
Fixes: 278b208375 ("bonding: initial RCU conversion")
Signed-off-by: Nikolay Aleksandrov &lt;nikolay@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 9a72c2da690d78e93cff24b9f616412508678dd5 ]

The problem is that the slave is first linked and slave_cnt is
incremented afterwards leading to a div by zero in the modes that use it
as a modulus. What happens is that in bond_start_xmit()
bond_has_slaves() is used to evaluate further transmission and it becomes
true after the slave is linked in, but when slave_cnt is used in the xmit
path it is still 0, so fetch it once and transmit based on that. Since
it is used only in round-robin and XOR modes, the fix is only for them.
Thanks to Eric Dumazet for pointing out the fault in my first try to fix
this.

Call trace (took it out of net-next kernel, but it's the same with net):
[46934.330038] divide error: 0000 [#1] SMP
[46934.330041] Modules linked in: bonding(O) 9p fscache
snd_hda_codec_generic crct10dif_pclmul
[46934.330041] bond0: Enslaving eth1 as an active interface with an up
link
[46934.330051]  ppdev joydev crc32_pclmul crc32c_intel 9pnet_virtio
ghash_clmulni_intel snd_hda_intel 9pnet snd_hda_controller parport_pc
serio_raw pcspkr snd_hda_codec parport virtio_balloon virtio_console
snd_hwdep snd_pcm pvpanic i2c_piix4 snd_timer i2ccore snd soundcore
virtio_blk virtio_net virtio_pci virtio_ring virtio ata_generic
pata_acpi floppy [last unloaded: bonding]
[46934.330053] CPU: 1 PID: 3382 Comm: ping Tainted: G           O
3.17.0-rc4+ #27
[46934.330053] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[46934.330054] task: ffff88005aebf2c0 ti: ffff88005b728000 task.ti:
ffff88005b728000
[46934.330059] RIP: 0010:[&lt;ffffffffa0198c33&gt;]  [&lt;ffffffffa0198c33&gt;]
bond_start_xmit+0x1c3/0x450 [bonding]
[46934.330060] RSP: 0018:ffff88005b72b7f8  EFLAGS: 00010246
[46934.330060] RAX: 0000000000000679 RBX: ffff88004b077000 RCX:
000000000000002a
[46934.330061] RDX: 0000000000000000 RSI: ffff88004b3f0500 RDI:
ffff88004b077940
[46934.330061] RBP: ffff88005b72b830 R08: 00000000000000c0 R09:
ffff88004a83e000
[46934.330062] R10: 000000000000ffff R11: ffff88004b1f12c0 R12:
ffff88004b3f0500
[46934.330062] R13: ffff88004b3f0500 R14: 000000000000002a R15:
ffff88004b077940
[46934.330063] FS:  00007fbd91a4c740(0000) GS:ffff88005f080000(0000)
knlGS:0000000000000000
[46934.330064] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[46934.330064] CR2: 00007f803a8bb000 CR3: 000000004b2c9000 CR4:
00000000000406e0
[46934.330069] Stack:
[46934.330071]  ffffffff811e6169 00000000e772fa05 ffff88004b077000
ffff88004b3f0500
[46934.330072]  ffffffff81d17d18 000000000000002a 0000000000000000
ffff88005b72b8a0
[46934.330073]  ffffffff81620108 ffffffff8161fe0e ffff88005b72b8c4
ffff88005b302000
[46934.330073] Call Trace:
[46934.330077]  [&lt;ffffffff811e6169&gt;] ?
__kmalloc_node_track_caller+0x119/0x300
[46934.330084]  [&lt;ffffffff81620108&gt;] dev_hard_start_xmit+0x188/0x410
[46934.330086]  [&lt;ffffffff8161fe0e&gt;] ? harmonize_features+0x2e/0x90
[46934.330088]  [&lt;ffffffff81620b06&gt;] __dev_queue_xmit+0x456/0x590
[46934.330089]  [&lt;ffffffff81620c50&gt;] dev_queue_xmit+0x10/0x20
[46934.330090]  [&lt;ffffffff8168f022&gt;] arp_xmit+0x22/0x60
[46934.330091]  [&lt;ffffffff8168f090&gt;] arp_send.part.16+0x30/0x40
[46934.330092]  [&lt;ffffffff8168f1e5&gt;] arp_solicit+0x115/0x2b0
[46934.330094]  [&lt;ffffffff8160b5d7&gt;] ? copy_skb_header+0x17/0xa0
[46934.330096]  [&lt;ffffffff8162875a&gt;] neigh_probe+0x4a/0x70
[46934.330097]  [&lt;ffffffff8162979c&gt;] __neigh_event_send+0xac/0x230
[46934.330098]  [&lt;ffffffff8162a00b&gt;] neigh_resolve_output+0x13b/0x220
[46934.330100]  [&lt;ffffffff8165f120&gt;] ? ip_forward_options+0x1c0/0x1c0
[46934.330101]  [&lt;ffffffff81660478&gt;] ip_finish_output+0x1f8/0x860
[46934.330102]  [&lt;ffffffff81661f08&gt;] ip_output+0x58/0x90
[46934.330103]  [&lt;ffffffff81661602&gt;] ? __ip_local_out+0xa2/0xb0
[46934.330104]  [&lt;ffffffff81661640&gt;] ip_local_out_sk+0x30/0x40
[46934.330105]  [&lt;ffffffff81662a66&gt;] ip_send_skb+0x16/0x50
[46934.330106]  [&lt;ffffffff81662ad3&gt;] ip_push_pending_frames+0x33/0x40
[46934.330107]  [&lt;ffffffff8168854c&gt;] raw_sendmsg+0x88c/0xa30
[46934.330110]  [&lt;ffffffff81612b31&gt;] ? skb_recv_datagram+0x41/0x60
[46934.330111]  [&lt;ffffffff816875a9&gt;] ? raw_recvmsg+0xa9/0x1f0
[46934.330113]  [&lt;ffffffff816978d4&gt;] inet_sendmsg+0x74/0xc0
[46934.330114]  [&lt;ffffffff81697a9b&gt;] ? inet_recvmsg+0x8b/0xb0
[46934.330115] bond0: Adding slave eth2
[46934.330116]  [&lt;ffffffff8160357c&gt;] sock_sendmsg+0x9c/0xe0
[46934.330118]  [&lt;ffffffff81603248&gt;] ?
move_addr_to_kernel.part.20+0x28/0x80
[46934.330121]  [&lt;ffffffff811b4477&gt;] ? might_fault+0x47/0x50
[46934.330122]  [&lt;ffffffff816039b9&gt;] ___sys_sendmsg+0x3a9/0x3c0
[46934.330125]  [&lt;ffffffff8144a14a&gt;] ? n_tty_write+0x3aa/0x530
[46934.330127]  [&lt;ffffffff810d1ae4&gt;] ? __wake_up+0x44/0x50
[46934.330129]  [&lt;ffffffff81242b38&gt;] ? fsnotify+0x238/0x310
[46934.330130]  [&lt;ffffffff816048a1&gt;] __sys_sendmsg+0x51/0x90
[46934.330131]  [&lt;ffffffff816048f2&gt;] SyS_sendmsg+0x12/0x20
[46934.330134]  [&lt;ffffffff81738b29&gt;] system_call_fastpath+0x16/0x1b
[46934.330144] Code: 48 8b 10 4c 89 ee 4c 89 ff e8 aa bc ff ff 31 c0 e9
1a ff ff ff 0f 1f 00 4c 89 ee 4c 89 ff e8 65 fb ff ff 31 d2 4c 89 ee 4c
89 ff &lt;f7&gt; b3 64 09 00 00 e8 02 bd ff ff 31 c0 e9 f2 fe ff ff 0f 1f 00
[46934.330146] RIP  [&lt;ffffffffa0198c33&gt;] bond_start_xmit+0x1c3/0x450
[bonding]
[46934.330146]  RSP &lt;ffff88005b72b7f8&gt;

CC: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
CC: Andy Gospodarek &lt;andy@greyhouse.net&gt;
CC: Jay Vosburgh &lt;j.vosburgh@gmail.com&gt;
CC: Veaceslav Falico &lt;vfalico@gmail.com&gt;
Fixes: 278b208375 ("bonding: initial RCU conversion")
Signed-off-by: Nikolay Aleksandrov &lt;nikolay@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>bonding: fix ad_select module param check</title>
<updated>2014-07-14T21:36:58+00:00</updated>
<author>
<name>Nikolay Aleksandrov</name>
<email>nikolay@redhat.com</email>
</author>
<published>2014-07-13T07:47:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=548d28bd0eac840d122b691279ce9f4ce6ecbfb6'/>
<id>548d28bd0eac840d122b691279ce9f4ce6ecbfb6</id>
<content type='text'>
Obvious copy/paste error when I converted the ad_select to the new
option API. "lacp_rate" there should be "ad_select" so we can get the
proper value.

CC: Jay Vosburgh &lt;j.vosburgh@gmail.com&gt;
CC: Veaceslav Falico &lt;vfalico@gmail.com&gt;
CC: Andy Gospodarek &lt;andy@greyhouse.net&gt;
CC: David S. Miller &lt;davem@davemloft.net&gt;

Fixes: 9e5f5eebe765 ("bonding: convert ad_select to use the new option
API")
Reported-by: Karim Scheik &lt;karim.scheik@prisma-solutions.at&gt;
Signed-off-by: Nikolay Aleksandrov &lt;nikolay@redhat.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>
Obvious copy/paste error when I converted the ad_select to the new
option API. "lacp_rate" there should be "ad_select" so we can get the
proper value.

CC: Jay Vosburgh &lt;j.vosburgh@gmail.com&gt;
CC: Veaceslav Falico &lt;vfalico@gmail.com&gt;
CC: Andy Gospodarek &lt;andy@greyhouse.net&gt;
CC: David S. Miller &lt;davem@davemloft.net&gt;

Fixes: 9e5f5eebe765 ("bonding: convert ad_select to use the new option
API")
Reported-by: Karim Scheik &lt;karim.scheik@prisma-solutions.at&gt;
Signed-off-by: Nikolay Aleksandrov &lt;nikolay@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bonding: Advertize vxlan offload features when supported</title>
<updated>2014-06-18T23:49:51+00:00</updated>
<author>
<name>Or Gerlitz</name>
<email>ogerlitz@mellanox.com</email>
</author>
<published>2014-06-17T13:11:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5a7baa78851b8e915480aa596de4bd2f13f31ffb'/>
<id>5a7baa78851b8e915480aa596de4bd2f13f31ffb</id>
<content type='text'>
When the underlying device supports TCP offloads for VXLAN/UDP
encapulated traffic, we need to reflect that through the hw_enc_features
field of the bonding net-device. This will cause the xmit path
in the core networking stack to provide bonding with encapsulated
GSO frames to offload into the HW etc.

Signed-off-by: Or Gerlitz &lt;ogerlitz@mellanox.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>
When the underlying device supports TCP offloads for VXLAN/UDP
encapulated traffic, we need to reflect that through the hw_enc_features
field of the bonding net-device. This will cause the xmit path
in the core networking stack to provide bonding with encapsulated
GSO frames to offload into the HW etc.

Signed-off-by: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bonding: Support macvlans on top of tlb/rlb mode bonds</title>
<updated>2014-06-04T22:13:54+00:00</updated>
<author>
<name>Vlad Yasevich</name>
<email>vyasevic@redhat.com</email>
</author>
<published>2014-06-04T20:23:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=14af9963ba1e5e8400c9de9267bdcab895109f6a'/>
<id>14af9963ba1e5e8400c9de9267bdcab895109f6a</id>
<content type='text'>
To make TLB mode work, the patch allows learning packets
to be sent using mac addresses assigned to macvlan devices,
also taking into an account vlans that may be between the
bond and macvlan device.

To make RLB work, all we have to do is accept ARP packets
for addresses added to the bond dev-&gt;uc list.  Since RLB
mode will take care to update the peers directly with
correct mac addresses, learning packets for these addresses
do not have be send to switch.

Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.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>
To make TLB mode work, the patch allows learning packets
to be sent using mac addresses assigned to macvlan devices,
also taking into an account vlans that may be between the
bond and macvlan device.

To make RLB work, all we have to do is accept ARP packets
for addresses added to the bond dev-&gt;uc list.  Since RLB
mode will take care to update the peers directly with
correct mac addresses, learning packets for these addresses
do not have be send to switch.

Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bonding: Turn on IFF_UNICAST_FLT on bond devices</title>
<updated>2014-06-04T22:13:54+00:00</updated>
<author>
<name>Vlad Yasevich</name>
<email>vyasevic@redhat.com</email>
</author>
<published>2014-06-04T20:23:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c565b488c6a86fdff24f6d716defc3d07a474b44'/>
<id>c565b488c6a86fdff24f6d716defc3d07a474b44</id>
<content type='text'>
Bonding devices manage the unicast filters of the underlying
interfaces, but do not turn on IFF_UNICAST_FLT flag.  Thus
anytime a unicast address is added to the bond, the bond is
places in promiscuous mode.

Turn on IFF_UNICAST_FLT on the bond device so that the bond does
not go into promiscuous mode needlesly.  If an underlying device
does not support unicast filtering, that device will automaticall
enter promiscuous mode already.

Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.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>
Bonding devices manage the unicast filters of the underlying
interfaces, but do not turn on IFF_UNICAST_FLT flag.  Thus
anytime a unicast address is added to the bond, the bond is
places in promiscuous mode.

Turn on IFF_UNICAST_FLT on the bond device so that the bond does
not go into promiscuous mode needlesly.  If an underlying device
does not support unicast filtering, that device will automaticall
enter promiscuous mode already.

Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net</title>
<updated>2014-05-24T04:32:30+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2014-05-24T04:32:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=54e5c4def0614ab540fbdf68e45342a4af141702'/>
<id>54e5c4def0614ab540fbdf68e45342a4af141702</id>
<content type='text'>
Conflicts:
	drivers/net/bonding/bond_alb.c
	drivers/net/ethernet/altera/altera_msgdma.c
	drivers/net/ethernet/altera/altera_sgdma.c
	net/ipv6/xfrm6_output.c

Several cases of overlapping changes.

The xfrm6_output.c has a bug fix which overlaps the renaming
of skb-&gt;local_df to skb-&gt;ignore_df.

In the Altera TSE driver cases, the register access cleanups
in net-next overlapped with bug fixes done in net.

Similarly a bug fix to send ALB packets in the bonding driver using
the right source address overlaps with cleanups in net-next.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	drivers/net/bonding/bond_alb.c
	drivers/net/ethernet/altera/altera_msgdma.c
	drivers/net/ethernet/altera/altera_sgdma.c
	net/ipv6/xfrm6_output.c

Several cases of overlapping changes.

The xfrm6_output.c has a bug fix which overlaps the renaming
of skb-&gt;local_df to skb-&gt;ignore_df.

In the Altera TSE driver cases, the register access cleanups
in net-next overlapped with bug fixes done in net.

Similarly a bug fix to send ALB packets in the bonding driver using
the right source address overlaps with cleanups in net-next.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bonding: Send ALB learning packets using the right source</title>
<updated>2014-05-22T19:47:58+00:00</updated>
<author>
<name>Vlad Yasevich</name>
<email>vyasevic@redhat.com</email>
</author>
<published>2014-05-21T17:19:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d0c21d43a5a12aaebb1e42e10cf78e6491fc9e5a'/>
<id>d0c21d43a5a12aaebb1e42e10cf78e6491fc9e5a</id>
<content type='text'>
ALB learning packets are currentlyalways sent using the slave mac
address for all vlans configured on top of bond.   This is not always
correct, as vlans may change their mac address.
This patch introduced a concept of strict matching where the
source of learning packets can either strictly match the address
passed in, or it can determine a more correct address to use.

There are 3 casese to consider:
  1) Switchover.  In this case, we have a new active slave and we need
     tell the switch about all addresses available on the slave.
  2) Monitor.  We'll periodically refresh learning info for all slaves.
     In this case, we refresh all addresses for current active, and just
     the slave address for other slaves.
  3) Teaching of disabled adddress.  This happens as part of the
     failover and in this case, we alwyas to use just the address
     provided.

CC: Jay Vosburgh &lt;j.vosburgh@gmail.com&gt;
CC: Veaceslav Falico &lt;vfalico@gmail.com&gt;
CC: Andy Gospodarek &lt;andy@greyhouse.net&gt;
Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.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>
ALB learning packets are currentlyalways sent using the slave mac
address for all vlans configured on top of bond.   This is not always
correct, as vlans may change their mac address.
This patch introduced a concept of strict matching where the
source of learning packets can either strictly match the address
passed in, or it can determine a more correct address to use.

There are 3 casese to consider:
  1) Switchover.  In this case, we have a new active slave and we need
     tell the switch about all addresses available on the slave.
  2) Monitor.  We'll periodically refresh learning info for all slaves.
     In this case, we refresh all addresses for current active, and just
     the slave address for other slaves.
  3) Teaching of disabled adddress.  This happens as part of the
     failover and in this case, we alwyas to use just the address
     provided.

CC: Jay Vosburgh &lt;j.vosburgh@gmail.com&gt;
CC: Veaceslav Falico &lt;vfalico@gmail.com&gt;
CC: Andy Gospodarek &lt;andy@greyhouse.net&gt;
Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bonding: remove NULL verification from bond_get_bond_by_slave()</title>
<updated>2014-05-22T19:46:34+00:00</updated>
<author>
<name>Veaceslav Falico</name>
<email>vfalico@gmail.com</email>
</author>
<published>2014-05-21T15:42:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f6dcf561e653fb3a5048b40cb96c10f6d4d25c86'/>
<id>f6dcf561e653fb3a5048b40cb96c10f6d4d25c86</id>
<content type='text'>
Every caller relies on the result being the actual bond, so this
verification just masks the real problem.

CC: Jay Vosburgh &lt;j.vosburgh@gmail.com&gt;
CC: Andy Gospodarek &lt;andy@greyhouse.net&gt;
Signed-off-by: Veaceslav Falico &lt;vfalico@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>
Every caller relies on the result being the actual bond, so this
verification just masks the real problem.

CC: Jay Vosburgh &lt;j.vosburgh@gmail.com&gt;
CC: Andy Gospodarek &lt;andy@greyhouse.net&gt;
Signed-off-by: Veaceslav Falico &lt;vfalico@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bonding: populate essential new_slave-&gt;bond/dev early</title>
<updated>2014-05-22T19:46:34+00:00</updated>
<author>
<name>Veaceslav Falico</name>
<email>vfalico@gmail.com</email>
</author>
<published>2014-05-21T15:42:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=dc73c41f4e0bdc3e43b6247d2b35e927739f1d9f'/>
<id>dc73c41f4e0bdc3e43b6247d2b35e927739f1d9f</id>
<content type='text'>
The new bond_free_slave() needs new_slave-&gt;bond to verify if additional
structures were allocated, so populate it early so that, in case of failure
in bond_enslave(), we would be able to get it.

Also populate the new_slave-&gt;dev field, as it's too one of the most needed
things to assign early.

CC: Jay Vosburgh &lt;j.vosburgh@gmail.com&gt;
CC: Andy Gospodarek &lt;andy@greyhouse.net&gt;
Signed-off-by: Veaceslav Falico &lt;vfalico@gmail.com&gt;
Acked-by: Ding Tianhong &lt;dingtianhong@huawei.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The new bond_free_slave() needs new_slave-&gt;bond to verify if additional
structures were allocated, so populate it early so that, in case of failure
in bond_enslave(), we would be able to get it.

Also populate the new_slave-&gt;dev field, as it's too one of the most needed
things to assign early.

CC: Jay Vosburgh &lt;j.vosburgh@gmail.com&gt;
CC: Andy Gospodarek &lt;andy@greyhouse.net&gt;
Signed-off-by: Veaceslav Falico &lt;vfalico@gmail.com&gt;
Acked-by: Ding Tianhong &lt;dingtianhong@huawei.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bonding: Don't assume 802.1Q when sending alb learning packets.</title>
<updated>2014-05-22T19:44:58+00:00</updated>
<author>
<name>Vlad Yasevich</name>
<email>vyasevic@redhat.com</email>
</author>
<published>2014-05-21T15:24:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d6b694c0b3f20c3ee54d29d4109fa1978d11a033'/>
<id>d6b694c0b3f20c3ee54d29d4109fa1978d11a033</id>
<content type='text'>
TLB/ALB learning packets always assume 802.1Q vlan protocol, but
that is no longer the case since we now have support for Q-in-Q
on top of bonding.  Pass the vlan protocol to alb_send_lp_vid()
so that the packets are properly tagged.

CC: Jay Vosburgh &lt;j.vosburgh@gmail.com&gt;
CC: Veaceslav Falico &lt;vfalico@gmail.com&gt;
CC: Andy Gospodarek &lt;andy@greyhouse.net&gt;
Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.com&gt;
Acked-by: Veaceslav Falico &lt;vfalico@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>
TLB/ALB learning packets always assume 802.1Q vlan protocol, but
that is no longer the case since we now have support for Q-in-Q
on top of bonding.  Pass the vlan protocol to alb_send_lp_vid()
so that the packets are properly tagged.

CC: Jay Vosburgh &lt;j.vosburgh@gmail.com&gt;
CC: Veaceslav Falico &lt;vfalico@gmail.com&gt;
CC: Andy Gospodarek &lt;andy@greyhouse.net&gt;
Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.com&gt;
Acked-by: Veaceslav Falico &lt;vfalico@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
