From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: (no subject) Date: Mon, 17 Oct 2011 09:40:49 +0200 Message-ID: <1318837249-19483-1-git-send-email-pbonzini@redhat.com> Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Writing [PATCH] netback: disable features not supported by netfront ... ntent-Transfer-Encoding: 7bit Subject: [PATCH] netback: disable features not supported by netfront X-Mercurial-Node: eb896361fc70b60b9a257d0c82e19633a11b9d41 Message-Id: User-Agent: Mercurial-patchbomb/1.9.1 Date: Mon, 17 Oct 2011 09:37:42 +0200 From: pbonzini@redhat.com To: pbonzini@redhat.com # HG changeset patch # User Paolo Bonzini # Date 1318837036 -7200 # Node ID eb896361fc70b60b9a257d0c82e19633a11b9d41 # Parent 3c900d6a5f6a51ff1547f21fef30ab8b92feccc9 netback: disable features not supported by netfront Netback works by first setting all possible features, and then resetting some after connection, if the front-end didn't negotiate them. Except that in the old 2.6.18 tree the "resetting" part was missing. In the pvops tree, this should work correctly through the fix_features mechanism. Signed-off-by: Paolo Bonzini diff --git a/drivers/xen/netback/interface.c b/drivers/xen/netback/interface.c --- a/drivers/xen/netback/interface.c +++ b/drivers/xen/netback/interface.c @@ -98,8 +98,9 @@ static int netbk_change_mtu(struct net_d void netif_set_features(netif_t *netif) { struct net_device *dev = netif->dev; - int features = dev->features; + int features; + features = dev->features & ~(NETIF_F_SG|NETIF_F_TSO|NETIF_F_IP_CSUM); if (netif->can_sg) features |= NETIF_F_SG; if (netif->gso)