bond: service netpoll arp queue on master device

Neil pointed out that we can't send ARP reply on behalf of slaves,
we need to move the arp queue to their bond device.

Signed-off-by: WANG Cong <amwang@redhat.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Amerigo Wang 2011-02-17 23:43:34 +00:00 коммит произвёл David S. Miller
Родитель 080e4130b1
Коммит 5a698af53f
1 изменённых файлов: 11 добавлений и 0 удалений

Просмотреть файл

@ -193,6 +193,17 @@ void netpoll_poll_dev(struct net_device *dev)
poll_napi(dev); poll_napi(dev);
if (dev->priv_flags & IFF_SLAVE) {
if (dev->npinfo) {
struct net_device *bond_dev = dev->master;
struct sk_buff *skb;
while ((skb = skb_dequeue(&dev->npinfo->arp_tx))) {
skb->dev = bond_dev;
skb_queue_tail(&bond_dev->npinfo->arp_tx, skb);
}
}
}
service_arp_queue(dev->npinfo); service_arp_queue(dev->npinfo);
zap_completion_queue(); zap_completion_queue();