Hide Forgot
This bug has been copied from bug #697021 and has been proposed to be backported to 5.7 z-stream (EUS).
in kernel-2.6.18-274.5.1.el5 linux-2.6-virt-xen-allow-arbitrary-mtu-size-until-frontend-connected.patch
This causes a regression with Windows guests, bug 746225.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHSA-2011-1386.html
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: Prior to this update, MTU was constrained to 1500 unless Scatter/Gather I/O (SG) was supported by the NIC; in the case of netback, this would mean unless SG was supported by the front-end. Because the hotplugging scripts ran before features have been negotiated with the front-end, at that point SG would still be disabled, breaking anything using larger MTUs, (for example, cluster communication using that NIC). This update inverts the behavior and assumes SG to be present until negotiations prove otherwise (in such a case, MTU is automatically reduced).
Can you please share the detail of 746225? I am seeing following patch in kernel-2.6.18-274.12.1 and it fixes one of Windows guests issue we were facing. We want to confirm whether the problem we were facing is same as the problem described in 746225. Also, without this patch, what else could be affected? diff -Naurp linux-2.6.18.4/drivers/xen/netback/interface.c linux-2.6.18-redhat/drivers/xen/netback/interface.c --- linux-2.6.18.4/drivers/xen/netback/interface.c 2012-02-20 19:22:37.000000000 -0700 +++ linux-2.6.18-redhat/drivers/xen/netback/interface.c 2012-02-20 19:22:59.000000000 -0700 @@ -93,8 +93,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)