From f0880fc508a24502700f270fdf2b17b68a32f324 Mon Sep 17 00:00:00 2001 From: "Eric W. Biederman" Date: Thu, 20 Oct 2011 04:26:39 +0000 Subject: [PATCH] --- yaml --- r: 266907 b: refs/heads/master c: 047af9cfedfa357e1497e327eaa893253ca51971 h: refs/heads/master i: 266905: 3701ea36c2ae93faf944fb10ab73c6fc553b6ad4 266903: 38b4ddb06666ca6825646ee43045e38c208ce1de v: v3 --- [refs] | 2 +- trunk/drivers/net/macvtap.c | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index ea0663eb01d1..51e0af68be0a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 99f34b38cdc8f75a4b9adb5a617b118253b3efe1 +refs/heads/master: 047af9cfedfa357e1497e327eaa893253ca51971 diff --git a/trunk/drivers/net/macvtap.c b/trunk/drivers/net/macvtap.c index 70aa628834f0..1d9c9c209672 100644 --- a/trunk/drivers/net/macvtap.c +++ b/trunk/drivers/net/macvtap.c @@ -343,7 +343,6 @@ static int macvtap_open(struct inode *inode, struct file *file) { struct net *net = current->nsproxy->net_ns; struct net_device *dev = dev_get_by_index(net, iminor(inode)); - struct macvlan_dev *vlan = netdev_priv(dev); struct macvtap_queue *q; int err; @@ -376,12 +375,12 @@ static int macvtap_open(struct inode *inode, struct file *file) /* * so far only KVM virtio_net uses macvtap, enable zero copy between * guest kernel and host kernel when lower device supports zerocopy + * + * The macvlan supports zerocopy iff the lower device supports zero + * copy so we don't have to look at the lower device directly. */ - if (vlan) { - if ((vlan->lowerdev->features & NETIF_F_HIGHDMA) && - (vlan->lowerdev->features & NETIF_F_SG)) - sock_set_flag(&q->sk, SOCK_ZEROCOPY); - } + if ((dev->features & NETIF_F_HIGHDMA) && (dev->features & NETIF_F_SG)) + sock_set_flag(&q->sk, SOCK_ZEROCOPY); err = macvtap_set_queue(dev, file, q); if (err)