[3.11.y.z extended stable] Patch "Revert "macvlan : fix checksums error when we are in bridge mode"" has been added to staging queue
Luis Henriques
luis.henriques at canonical.com
Tue Jun 3 10:27:32 UTC 2014
This is a note to let you know that I have just added a patch titled
Revert "macvlan : fix checksums error when we are in bridge mode"
to the linux-3.11.y-queue branch of the 3.11.y.z extended stable tree
which can be found at:
http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.11.y-queue
If you, or anyone else, feels it should not be added to this tree, please
reply to this email.
For more information about the 3.11.y.z tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable
Thanks.
-Luis
------
>From bbdac00b578d032743b847bcf532eb4140826e99 Mon Sep 17 00:00:00 2001
From: Vlad Yasevich <vyasevic at redhat.com>
Date: Tue, 29 Apr 2014 10:09:51 -0400
Subject: Revert "macvlan : fix checksums error when we are in bridge mode"
commit f114890cdf84d753f6b41cd0cc44ba51d16313da upstream.
This reverts commit 12a2856b604476c27d85a5f9a57ae1661fc46019.
The commit above doesn't appear to be necessary any more as the
checksums appear to be correctly computed/validated.
Additionally the above commit breaks kvm configurations where
one VM is using a device that support checksum offload (virtio) and
the other VM does not.
In this case, packets leaving virtio device will have CHECKSUM_PARTIAL
set. The packets is forwarded to a macvtap that has offload features
turned off. Since we use CHECKSUM_UNNECESSARY, the host does does not
update the checksum and thus a bad checksum is passed up to
the guest.
CC: Daniel Lezcano <daniel.lezcano at free.fr>
CC: Patrick McHardy <kaber at trash.net>
CC: Andrian Nord <nightnord at gmail.com>
CC: Eric Dumazet <eric.dumazet at gmail.com>
CC: Michael S. Tsirkin <mst at redhat.com>
CC: Jason Wang <jasowang at redhat.com>
Signed-off-by: Vlad Yasevich <vyasevic at redhat.com>
Acked-by: Michael S. Tsirkin <mst at redhat.com>
Acked-by: Jason Wang <jasowang at redhat.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
Signed-off-by: Luis Henriques <luis.henriques at canonical.com>
---
drivers/net/macvlan.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
index 16b43bf544b7..9f7dd0ce4c70 100644
--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -261,11 +261,9 @@ static int macvlan_queue_xmit(struct sk_buff *skb, struct net_device *dev)
const struct macvlan_dev *vlan = netdev_priv(dev);
const struct macvlan_port *port = vlan->port;
const struct macvlan_dev *dest;
- __u8 ip_summed = skb->ip_summed;
if (vlan->mode == MACVLAN_MODE_BRIDGE) {
const struct ethhdr *eth = (void *)skb->data;
- skb->ip_summed = CHECKSUM_UNNECESSARY;
/* send to other bridge ports directly */
if (is_multicast_ether_addr(eth->h_dest)) {
@@ -283,7 +281,6 @@ static int macvlan_queue_xmit(struct sk_buff *skb, struct net_device *dev)
}
xmit_world:
- skb->ip_summed = ip_summed;
skb->dev = vlan->lowerdev;
return dev_queue_xmit(skb);
}
--
1.9.1
More information about the kernel-team
mailing list