From a1d7bc7b4509ca73eca722f07dcd58f8e15c784a Mon Sep 17 00:00:00 2001 From: Andrew Jeddeloh Date: Wed, 30 May 2018 18:00:37 -0700 Subject: [PATCH] sys-kernel/*: fix mtu regression on aws on 4.16.13 Upstream commit f599c64fdf7d9c108e8717fb04bc41c680120da4 introduced a regression preventing setting jumbo frames on aws. --- ...ebuild => coreos-kernel-4.16.13-r1.ebuild} | 2 +- ...build => coreos-modules-4.16.13-r1.ebuild} | 2 +- ...build => coreos-sources-4.16.13-r1.ebuild} | 1 + ...lative-path-for-KBUILD_SRC-from-CURD.patch | 4 +- .../z0002-Add-arm64-coreos-verity-hash.patch | 4 +- ...kefile-Don-t-fail-on-fallthrough-wit.patch | 4 +- ...e-a-different-mixing-algorithm-for-a.patch | 4 +- ...05-Revert-random-fix-crng_ready-test.patch | 4 +- ...ont-Fix-race-between-device-setup-an.patch | 157 ++++++++++++++++++ 9 files changed, 170 insertions(+), 12 deletions(-) rename sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-kernel/{coreos-kernel-4.16.13.ebuild => coreos-kernel-4.16.13-r1.ebuild} (99%) rename sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/{coreos-modules-4.16.13.ebuild => coreos-modules-4.16.13-r1.ebuild} (98%) rename sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/{coreos-sources-4.16.13.ebuild => coreos-sources-4.16.13-r1.ebuild} (94%) create mode 100644 sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0006-Revert-xen-netfront-Fix-race-between-device-setup-an.patch diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-kernel/coreos-kernel-4.16.13.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-kernel/coreos-kernel-4.16.13-r1.ebuild similarity index 99% rename from sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-kernel/coreos-kernel-4.16.13.ebuild rename to sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-kernel/coreos-kernel-4.16.13-r1.ebuild index 77eaa0bc62..b66d13b93c 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-kernel/coreos-kernel-4.16.13.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-kernel/coreos-kernel-4.16.13-r1.ebuild @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=5 -COREOS_SOURCE_REVISION="" +COREOS_SOURCE_REVISION="-r1" inherit coreos-kernel DESCRIPTION="CoreOS Linux kernel" diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/coreos-modules-4.16.13.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/coreos-modules-4.16.13-r1.ebuild similarity index 98% rename from sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/coreos-modules-4.16.13.ebuild rename to sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/coreos-modules-4.16.13-r1.ebuild index 685aa802e6..6c70281dca 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/coreos-modules-4.16.13.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/coreos-modules-4.16.13-r1.ebuild @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=5 -COREOS_SOURCE_REVISION="" +COREOS_SOURCE_REVISION="-r1" inherit coreos-kernel savedconfig DESCRIPTION="CoreOS Linux kernel modules" diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/coreos-sources-4.16.13.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/coreos-sources-4.16.13-r1.ebuild similarity index 94% rename from sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/coreos-sources-4.16.13.ebuild rename to sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/coreos-sources-4.16.13-r1.ebuild index 228579ce07..d093d750e9 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/coreos-sources-4.16.13.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/coreos-sources-4.16.13-r1.ebuild @@ -40,4 +40,5 @@ UNIPATCH_LIST=" ${PATCH_DIR}/z0003-tools-objtool-Makefile-Don-t-fail-on-fallthrough-wit.patch \ ${PATCH_DIR}/z0004-Revert-random-use-a-different-mixing-algorithm-for-a.patch \ ${PATCH_DIR}/z0005-Revert-random-fix-crng_ready-test.patch \ + ${PATCH_DIR}/z0006-Revert-xen-netfront-Fix-race-between-device-setup-an.patch \ " diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0001-kbuild-derive-relative-path-for-KBUILD_SRC-from-CURD.patch b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0001-kbuild-derive-relative-path-for-KBUILD_SRC-from-CURD.patch index 5b754a4373..5c060c83e8 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0001-kbuild-derive-relative-path-for-KBUILD_SRC-from-CURD.patch +++ b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0001-kbuild-derive-relative-path-for-KBUILD_SRC-from-CURD.patch @@ -1,7 +1,7 @@ From 406cf32cc9a42c02714c270d4158972525d0b283 Mon Sep 17 00:00:00 2001 From: Vito Caputo Date: Wed, 25 Nov 2015 02:59:45 -0800 -Subject: [PATCH 1/5] kbuild: derive relative path for KBUILD_SRC from CURDIR +Subject: [PATCH 1/6] kbuild: derive relative path for KBUILD_SRC from CURDIR This enables relocating source and build trees to different roots, provided they stay reachable relative to one another. Useful for @@ -26,5 +26,5 @@ index 146e527a5e06..10057078b233 100644 # Leave processing to above invocation of make -- -2.14.3 +2.14.1 diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0002-Add-arm64-coreos-verity-hash.patch b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0002-Add-arm64-coreos-verity-hash.patch index a4db340431..950af46ccc 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0002-Add-arm64-coreos-verity-hash.patch +++ b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0002-Add-arm64-coreos-verity-hash.patch @@ -1,7 +1,7 @@ From d25b1ad577bba0861ff76fcb244beac9f6c641b6 Mon Sep 17 00:00:00 2001 From: Geoff Levand Date: Fri, 11 Nov 2016 17:28:52 -0800 -Subject: [PATCH 2/5] Add arm64 coreos verity hash +Subject: [PATCH 2/6] Add arm64 coreos verity hash Signed-off-by: Geoff Levand --- @@ -25,5 +25,5 @@ index 613fc3000677..fdaf86c78332 100644 /* * The debug table is referenced via its Relative Virtual Address (RVA), -- -2.14.3 +2.14.1 diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0003-tools-objtool-Makefile-Don-t-fail-on-fallthrough-wit.patch b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0003-tools-objtool-Makefile-Don-t-fail-on-fallthrough-wit.patch index 653b24adfc..2916bccd85 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0003-tools-objtool-Makefile-Don-t-fail-on-fallthrough-wit.patch +++ b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0003-tools-objtool-Makefile-Don-t-fail-on-fallthrough-wit.patch @@ -1,7 +1,7 @@ From 647f63bb965113f925c1b2063c84c818bbb90e21 Mon Sep 17 00:00:00 2001 From: David Michael Date: Thu, 8 Feb 2018 21:23:12 -0500 -Subject: [PATCH 3/5] tools/objtool/Makefile: Don't fail on fallthrough with +Subject: [PATCH 3/6] tools/objtool/Makefile: Don't fail on fallthrough with new GCCs --- @@ -23,5 +23,5 @@ index 95563b8e1ad7..307652c42a7b 100644 CFLAGS += -I$(srctree)/tools/include/ -- -2.14.3 +2.14.1 diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0004-Revert-random-use-a-different-mixing-algorithm-for-a.patch b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0004-Revert-random-use-a-different-mixing-algorithm-for-a.patch index 3cae06ea98..7d7a63d35f 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0004-Revert-random-use-a-different-mixing-algorithm-for-a.patch +++ b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0004-Revert-random-use-a-different-mixing-algorithm-for-a.patch @@ -1,7 +1,7 @@ From b6be7c4e22349ffc406700c7a26619cac584cebb Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Wed, 2 May 2018 15:16:29 -0400 -Subject: [PATCH 4/5] Revert "random: use a different mixing algorithm for +Subject: [PATCH 4/6] Revert "random: use a different mixing algorithm for add_device_randomness()" This reverts commit 89b59f050347d376c2ace8b1ceb908a218cfdc2e. @@ -92,5 +92,5 @@ index 8f4e11842c60..aa5b04af86c6 100644 trace_add_device_randomness(size, _RET_IP_); spin_lock_irqsave(&input_pool.lock, flags); -- -2.14.3 +2.14.1 diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0005-Revert-random-fix-crng_ready-test.patch b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0005-Revert-random-fix-crng_ready-test.patch index 39f96d5ef0..a2e764764d 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0005-Revert-random-fix-crng_ready-test.patch +++ b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0005-Revert-random-fix-crng_ready-test.patch @@ -1,7 +1,7 @@ From 890071b67cafa1d9540aa55bc69ed6c0f75862e0 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Wed, 2 May 2018 15:18:03 -0400 -Subject: [PATCH 5/5] Revert "random: fix crng_ready() test" +Subject: [PATCH 5/6] Revert "random: fix crng_ready() test" This reverts commit cd8d7a5778a4abf76ee8fe8f1bfcf78976029f8d. @@ -60,5 +60,5 @@ index aa5b04af86c6..ef05cc685b74 100644 return; } -- -2.14.3 +2.14.1 diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0006-Revert-xen-netfront-Fix-race-between-device-setup-an.patch b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0006-Revert-xen-netfront-Fix-race-between-device-setup-an.patch new file mode 100644 index 0000000000..f514552bd5 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/4.16/z0006-Revert-xen-netfront-Fix-race-between-device-setup-an.patch @@ -0,0 +1,157 @@ +From 4d873796c4f77e0b9eb3881ed2524bba3402c361 Mon Sep 17 00:00:00 2001 +From: Andrew Jeddeloh +Date: Wed, 30 May 2018 17:50:37 -0700 +Subject: [PATCH 6/6] Revert "xen-netfront: Fix race between device setup and + open" + +This reverts commit f599c64fdf7d9c108e8717fb04bc41c680120da4. + +This causes failures to set mtu > 1500 on some aws instances. +--- + drivers/net/xen-netfront.c | 46 ++++++++++++++++++++++------------------------ + 1 file changed, 22 insertions(+), 24 deletions(-) + +diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c +index 3127bc8633ca..5a37ee2372a3 100644 +--- a/drivers/net/xen-netfront.c ++++ b/drivers/net/xen-netfront.c +@@ -351,9 +351,6 @@ static int xennet_open(struct net_device *dev) + unsigned int i = 0; + struct netfront_queue *queue = NULL; + +- if (!np->queues) +- return -ENODEV; +- + for (i = 0; i < num_queues; ++i) { + queue = &np->queues[i]; + napi_enable(&queue->napi); +@@ -1361,8 +1358,18 @@ static int netfront_probe(struct xenbus_device *dev, + #ifdef CONFIG_SYSFS + info->netdev->sysfs_groups[0] = &xennet_dev_group; + #endif ++ err = register_netdev(info->netdev); ++ if (err) { ++ pr_warn("%s: register_netdev err=%d\n", __func__, err); ++ goto fail; ++ } + + return 0; ++ ++ fail: ++ xennet_free_netdev(netdev); ++ dev_set_drvdata(&dev->dev, NULL); ++ return err; + } + + static void xennet_end_access(int ref, void *page) +@@ -1730,6 +1737,8 @@ static void xennet_destroy_queues(struct netfront_info *info) + { + unsigned int i; + ++ rtnl_lock(); ++ + for (i = 0; i < info->netdev->real_num_tx_queues; i++) { + struct netfront_queue *queue = &info->queues[i]; + +@@ -1738,6 +1747,8 @@ static void xennet_destroy_queues(struct netfront_info *info) + netif_napi_del(&queue->napi); + } + ++ rtnl_unlock(); ++ + kfree(info->queues); + info->queues = NULL; + } +@@ -1753,6 +1764,8 @@ static int xennet_create_queues(struct netfront_info *info, + if (!info->queues) + return -ENOMEM; + ++ rtnl_lock(); ++ + for (i = 0; i < *num_queues; i++) { + struct netfront_queue *queue = &info->queues[i]; + +@@ -1761,7 +1774,7 @@ static int xennet_create_queues(struct netfront_info *info, + + ret = xennet_init_queue(queue); + if (ret < 0) { +- dev_warn(&info->xbdev->dev, ++ dev_warn(&info->netdev->dev, + "only created %d queues\n", i); + *num_queues = i; + break; +@@ -1775,8 +1788,10 @@ static int xennet_create_queues(struct netfront_info *info, + + netif_set_real_num_tx_queues(info->netdev, *num_queues); + ++ rtnl_unlock(); ++ + if (*num_queues == 0) { +- dev_err(&info->xbdev->dev, "no queues\n"); ++ dev_err(&info->netdev->dev, "no queues\n"); + return -EINVAL; + } + return 0; +@@ -1813,7 +1828,6 @@ static int talk_to_netback(struct xenbus_device *dev, + goto out; + } + +- rtnl_lock(); + if (info->queues) + xennet_destroy_queues(info); + +@@ -1824,7 +1838,6 @@ static int talk_to_netback(struct xenbus_device *dev, + info->queues = NULL; + goto out; + } +- rtnl_unlock(); + + /* Create shared ring, alloc event channel -- for each queue */ + for (i = 0; i < num_queues; ++i) { +@@ -1921,10 +1934,8 @@ static int talk_to_netback(struct xenbus_device *dev, + xenbus_transaction_end(xbt, 1); + destroy_ring: + xennet_disconnect_backend(info); +- rtnl_lock(); + xennet_destroy_queues(info); + out: +- rtnl_unlock(); + device_unregister(&dev->dev); + return err; + } +@@ -1954,15 +1965,6 @@ static int xennet_connect(struct net_device *dev) + netdev_update_features(dev); + rtnl_unlock(); + +- if (dev->reg_state == NETREG_UNINITIALIZED) { +- err = register_netdev(dev); +- if (err) { +- pr_warn("%s: register_netdev err=%d\n", __func__, err); +- device_unregister(&np->xbdev->dev); +- return err; +- } +- } +- + /* + * All public and private state should now be sane. Get + * ready to start sending and receiving packets and give the driver +@@ -2153,14 +2155,10 @@ static int xennet_remove(struct xenbus_device *dev) + + xennet_disconnect_backend(info); + +- if (info->netdev->reg_state == NETREG_REGISTERED) +- unregister_netdev(info->netdev); ++ unregister_netdev(info->netdev); + +- if (info->queues) { +- rtnl_lock(); ++ if (info->queues) + xennet_destroy_queues(info); +- rtnl_unlock(); +- } + xennet_free_netdev(info->netdev); + + return 0; +-- +2.14.1 +