summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaura Abbott <labbott@redhat.com>2018-06-21 14:15:09 -0700
committerLaura Abbott <labbott@redhat.com>2018-06-21 14:15:09 -0700
commitc9cb169d5e712ffb83986cb2dcaf1e51ffce8d75 (patch)
tree1a77b4962528714360ca1cc59fa2211b6912a017
parenta94d1056ee29ed03567c049648ec7e4b7375e8b4 (diff)
downloadkernel-c9cb169d5e712ffb83986cb2dcaf1e51ffce8d75.tar.gz
kernel-c9cb169d5e712ffb83986cb2dcaf1e51ffce8d75.tar.xz
kernel-c9cb169d5e712ffb83986cb2dcaf1e51ffce8d75.zip
Fix for Xen MTU issue (rhbz 1584216)
-rw-r--r--1-2-xen-netfront-Fix-mismatched-rtnl_unlock.patch46
-rw-r--r--2-2-xen-netfront-Update-features-after-registering-netdev.patch58
-rw-r--r--kernel.spec7
3 files changed, 111 insertions, 0 deletions
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 <ross.lagerwall@citrix.com>
+X-Patchwork-Id: 932721
+Message-Id: <20180621130021.27029-2-ross.lagerwall@citrix.com>
+To: <netdev@vger.kernel.org>
+Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
+ Boris Ostrovsky <boris.ostrovsky@oracle.com>,
+ Juergen Gross <jgross@suse.com>, "David S. Miller" <davem@davemloft.net>,
+ <xen-devel@lists.xenproject.org>, <linux-kernel@vger.kernel.org>
+Date: Thu, 21 Jun 2018 14:00:20 +0100
+From: Ross Lagerwall <ross.lagerwall@citrix.com>
+List-Id: <netdev.vger.kernel.org>
+
+Fixes: f599c64fdf7d ("xen-netfront: Fix race between device setup and open")
+Reported-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
+Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
+Reviewed-by: Juergen Gross <jgross@suse.com>
+---
+ 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 <ross.lagerwall@citrix.com>
+X-Patchwork-Id: 932720
+Message-Id: <20180621130021.27029-3-ross.lagerwall@citrix.com>
+To: <netdev@vger.kernel.org>
+Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
+ Boris Ostrovsky <boris.ostrovsky@oracle.com>,
+ Juergen Gross <jgross@suse.com>, "David S. Miller" <davem@davemloft.net>,
+ <xen-devel@lists.xenproject.org>, <linux-kernel@vger.kernel.org>,
+ Liam Shepherd <liam@dancer.es>
+Date: Thu, 21 Jun 2018 14:00:21 +0100
+From: Ross Lagerwall <ross.lagerwall@citrix.com>
+List-Id: <netdev.vger.kernel.org>
+
+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 <liam@dancer.es>
+Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
+Reviewed-by: Juergen Gross <jgross@suse.com>
+---
+ 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 <labbott@fedoraproject.org>
+- Fix for Xen MTU issue (rhbz 1584216)
+
* Thu Jun 21 2018 Peter Robinson <pbrobinson@fedoraproject.org>
- Add fix for 96boards DB410c