From c9cb169d5e712ffb83986cb2dcaf1e51ffce8d75 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Thu, 21 Jun 2018 14:15:09 -0700 Subject: Fix for Xen MTU issue (rhbz 1584216) --- 1-2-xen-netfront-Fix-mismatched-rtnl_unlock.patch | 46 +++++++++++++++++ ...-Update-features-after-registering-netdev.patch | 58 ++++++++++++++++++++++ kernel.spec | 7 +++ 3 files changed, 111 insertions(+) create mode 100644 1-2-xen-netfront-Fix-mismatched-rtnl_unlock.patch create mode 100644 2-2-xen-netfront-Update-features-after-registering-netdev.patch diff --git a/1-2-xen-netfront-Fix-mismatched-rtnl_unlock.patch b/1-2-xen-netfront-Fix-mismatched-rtnl_unlock.patch new file mode 100644 index 000000000..ed73771aa --- /dev/null +++ b/1-2-xen-netfront-Fix-mismatched-rtnl_unlock.patch @@ -0,0 +1,46 @@ +From patchwork Thu Jun 21 13:00:20 2018 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [1/2] xen-netfront: Fix mismatched rtnl_unlock +X-Patchwork-Submitter: Ross Lagerwall +X-Patchwork-Id: 932721 +Message-Id: <20180621130021.27029-2-ross.lagerwall@citrix.com> +To: +Cc: Ross Lagerwall , + Boris Ostrovsky , + Juergen Gross , "David S. Miller" , + , +Date: Thu, 21 Jun 2018 14:00:20 +0100 +From: Ross Lagerwall +List-Id: + +Fixes: f599c64fdf7d ("xen-netfront: Fix race between device setup and open") +Reported-by: Ben Hutchings +Signed-off-by: Ross Lagerwall +Reviewed-by: Juergen Gross +--- + drivers/net/xen-netfront.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c +index 922ce0a..ee4cb6c 100644 +--- a/drivers/net/xen-netfront.c ++++ b/drivers/net/xen-netfront.c +@@ -1810,7 +1810,7 @@ static int talk_to_netback(struct xenbus_device *dev, + err = xen_net_read_mac(dev, info->netdev->dev_addr); + if (err) { + xenbus_dev_fatal(dev, err, "parsing %s/mac", dev->nodename); +- goto out; ++ goto out_unlocked; + } + + rtnl_lock(); +@@ -1925,6 +1925,7 @@ static int talk_to_netback(struct xenbus_device *dev, + xennet_destroy_queues(info); + out: + rtnl_unlock(); ++out_unlocked: + device_unregister(&dev->dev); + return err; + } diff --git a/2-2-xen-netfront-Update-features-after-registering-netdev.patch b/2-2-xen-netfront-Update-features-after-registering-netdev.patch new file mode 100644 index 000000000..b23d6bfaa --- /dev/null +++ b/2-2-xen-netfront-Update-features-after-registering-netdev.patch @@ -0,0 +1,58 @@ +From patchwork Thu Jun 21 13:00:21 2018 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [2/2] xen-netfront: Update features after registering netdev +X-Patchwork-Submitter: Ross Lagerwall +X-Patchwork-Id: 932720 +Message-Id: <20180621130021.27029-3-ross.lagerwall@citrix.com> +To: +Cc: Ross Lagerwall , + Boris Ostrovsky , + Juergen Gross , "David S. Miller" , + , , + Liam Shepherd +Date: Thu, 21 Jun 2018 14:00:21 +0100 +From: Ross Lagerwall +List-Id: + +Update the features after calling register_netdev() otherwise the +device features are not set up correctly and it not possible to change +the MTU of the device. After this change, the features reported by +ethtool match the device's features before the commit which introduced +the issue and it is possible to change the device's MTU. + +Fixes: f599c64fdf7d ("xen-netfront: Fix race between device setup and open") +Reported-by: Liam Shepherd +Signed-off-by: Ross Lagerwall +Reviewed-by: Juergen Gross +--- + drivers/net/xen-netfront.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c +index ee4cb6c..a57daec 100644 +--- a/drivers/net/xen-netfront.c ++++ b/drivers/net/xen-netfront.c +@@ -1951,10 +1951,6 @@ static int xennet_connect(struct net_device *dev) + /* talk_to_netback() sets the correct number of queues */ + num_queues = dev->real_num_tx_queues; + +- rtnl_lock(); +- netdev_update_features(dev); +- rtnl_unlock(); +- + if (dev->reg_state == NETREG_UNINITIALIZED) { + err = register_netdev(dev); + if (err) { +@@ -1964,6 +1960,10 @@ static int xennet_connect(struct net_device *dev) + } + } + ++ rtnl_lock(); ++ netdev_update_features(dev); ++ rtnl_unlock(); ++ + /* + * All public and private state should now be sane. Get + * ready to start sending and receiving packets and give the driver diff --git a/kernel.spec b/kernel.spec index 9b4066ccb..6a8152921 100644 --- a/kernel.spec +++ b/kernel.spec @@ -647,6 +647,10 @@ Patch508: ath10k-Update-the-phymode-along-with-bandwidth-change.patch # In 4.18 Patch509: rtc-nvmem-don-t-return-an-error-when-not-enabled.patch +# rhbz 1584216 +Patch510: 1-2-xen-netfront-Fix-mismatched-rtnl_unlock.patch +Patch511: 2-2-xen-netfront-Update-features-after-registering-netdev.patch + # END OF PATCH DEFINITIONS %endif @@ -1896,6 +1900,9 @@ fi # # %changelog +* Thu Jun 21 2018 Laura Abbott +- Fix for Xen MTU issue (rhbz 1584216) + * Thu Jun 21 2018 Peter Robinson - Add fix for 96boards DB410c -- cgit