From 80f5bcca2eb6187effc9ed7fd7d2394373b3cdeb Mon Sep 17 00:00:00 2001 From: Jan Alexander Steffens Date: Sun, 15 Apr 2018 11:04:40 +0000 Subject: [PATCH] FS#58174 Backport a fix from 4.17 --- ...sallow-unprivileged-CLONE_NEWUSER-by.patch | 4 +- ...y-use-the-alternate-fixed-mode-if-it.patch | 8 +-- ...evert-swiotlb-remove-various-exports.patch | 8 +-- ...uest-on-guests-with-more-than-4G-RAM.patch | 8 +-- ...isplay-disable-CRTCs-with-NULL-FB-on.patch | 8 +-- ...egression-on-reset-with-1.x-firmware.patch | 72 +++++++++++++++++++ PKGBUILD | 15 ++-- 7 files changed, 100 insertions(+), 23 deletions(-) create mode 100644 0006-net-aquantia-Regression-on-reset-with-1.x-firmware.patch diff --git a/0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch b/0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch index 680dbf3..804c6cd 100644 --- a/0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch +++ b/0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch @@ -1,8 +1,8 @@ From 3a7745f6fdd71aa34dae33c3edc586363d9ece9e Mon Sep 17 00:00:00 2001 -Message-Id: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523715224.git.jan.steffens@gmail.com> +Message-Id: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523790169.git.jan.steffens@gmail.com> From: Serge Hallyn Date: Fri, 31 May 2013 19:12:12 +0100 -Subject: [PATCH 1/5] add sysctl to disallow unprivileged CLONE_NEWUSER by +Subject: [PATCH 1/6] add sysctl to disallow unprivileged CLONE_NEWUSER by default Signed-off-by: Serge Hallyn diff --git a/0002-drm-i915-edp-Only-use-the-alternate-fixed-mode-if-it.patch b/0002-drm-i915-edp-Only-use-the-alternate-fixed-mode-if-it.patch index b4f0c26..149d09f 100644 --- a/0002-drm-i915-edp-Only-use-the-alternate-fixed-mode-if-it.patch +++ b/0002-drm-i915-edp-Only-use-the-alternate-fixed-mode-if-it.patch @@ -1,10 +1,10 @@ From 1ab88f114ddb0f614118c330196af3024f88630c Mon Sep 17 00:00:00 2001 -Message-Id: <1ab88f114ddb0f614118c330196af3024f88630c.1523715224.git.jan.steffens@gmail.com> -In-Reply-To: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523715224.git.jan.steffens@gmail.com> -References: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523715224.git.jan.steffens@gmail.com> +Message-Id: <1ab88f114ddb0f614118c330196af3024f88630c.1523790169.git.jan.steffens@gmail.com> +In-Reply-To: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523790169.git.jan.steffens@gmail.com> +References: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523790169.git.jan.steffens@gmail.com> From: Jim Bride Date: Mon, 6 Nov 2017 13:38:57 -0800 -Subject: [PATCH 2/5] drm/i915/edp: Only use the alternate fixed mode if it's +Subject: [PATCH 2/6] drm/i915/edp: Only use the alternate fixed mode if it's asked for In commit dc911f5bd8aa ("drm/i915/edp: Allow alternate fixed mode for diff --git a/0003-Partially-revert-swiotlb-remove-various-exports.patch b/0003-Partially-revert-swiotlb-remove-various-exports.patch index 8eee6f5..aec2f3e 100644 --- a/0003-Partially-revert-swiotlb-remove-various-exports.patch +++ b/0003-Partially-revert-swiotlb-remove-various-exports.patch @@ -1,10 +1,10 @@ From d1bc4bfbbc01a62a8b70f4018273d49b502c1511 Mon Sep 17 00:00:00 2001 -Message-Id: -In-Reply-To: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523715224.git.jan.steffens@gmail.com> -References: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523715224.git.jan.steffens@gmail.com> +Message-Id: +In-Reply-To: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523790169.git.jan.steffens@gmail.com> +References: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523790169.git.jan.steffens@gmail.com> From: "Jan Alexander Steffens (heftig)" Date: Fri, 6 Apr 2018 16:19:38 +0200 -Subject: [PATCH 3/5] Partially revert "swiotlb: remove various exports" +Subject: [PATCH 3/6] Partially revert "swiotlb: remove various exports" This partially reverts commit 4bd89ed39b2ab8dc4ac4b6c59b07d420b0213bec. The proprietary NVIDIA driver needs one of the exports. diff --git a/0004-Fix-vboxguest-on-guests-with-more-than-4G-RAM.patch b/0004-Fix-vboxguest-on-guests-with-more-than-4G-RAM.patch index 9c359bc..bcf2274 100644 --- a/0004-Fix-vboxguest-on-guests-with-more-than-4G-RAM.patch +++ b/0004-Fix-vboxguest-on-guests-with-more-than-4G-RAM.patch @@ -1,10 +1,10 @@ From 437fda0d08ba6f5c644dd7c13a249a779ff41abd Mon Sep 17 00:00:00 2001 -Message-Id: <437fda0d08ba6f5c644dd7c13a249a779ff41abd.1523715224.git.jan.steffens@gmail.com> -In-Reply-To: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523715224.git.jan.steffens@gmail.com> -References: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523715224.git.jan.steffens@gmail.com> +Message-Id: <437fda0d08ba6f5c644dd7c13a249a779ff41abd.1523790169.git.jan.steffens@gmail.com> +In-Reply-To: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523790169.git.jan.steffens@gmail.com> +References: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523790169.git.jan.steffens@gmail.com> From: "Jan Alexander Steffens (heftig)" Date: Wed, 11 Apr 2018 21:27:44 +0200 -Subject: [PATCH 4/5] Fix vboxguest on guests with more than 4G RAM +Subject: [PATCH 4/6] Fix vboxguest on guests with more than 4G RAM Squashed commit of the following: diff --git a/0005-Revert-drm-amd-display-disable-CRTCs-with-NULL-FB-on.patch b/0005-Revert-drm-amd-display-disable-CRTCs-with-NULL-FB-on.patch index 4fe5e5a..80c0ae7 100644 --- a/0005-Revert-drm-amd-display-disable-CRTCs-with-NULL-FB-on.patch +++ b/0005-Revert-drm-amd-display-disable-CRTCs-with-NULL-FB-on.patch @@ -1,10 +1,10 @@ From f144015c59359c918d30fd309ed368045b783d47 Mon Sep 17 00:00:00 2001 -Message-Id: -In-Reply-To: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523715224.git.jan.steffens@gmail.com> -References: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523715224.git.jan.steffens@gmail.com> +Message-Id: +In-Reply-To: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523790169.git.jan.steffens@gmail.com> +References: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523790169.git.jan.steffens@gmail.com> From: Harry Wentland Date: Thu, 12 Apr 2018 10:51:52 -0400 -Subject: [PATCH 5/5] Revert "drm/amd/display: disable CRTCs with NULL FB on +Subject: [PATCH 5/6] Revert "drm/amd/display: disable CRTCs with NULL FB on their primary plane (V2)" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 diff --git a/0006-net-aquantia-Regression-on-reset-with-1.x-firmware.patch b/0006-net-aquantia-Regression-on-reset-with-1.x-firmware.patch new file mode 100644 index 0000000..863fb4d --- /dev/null +++ b/0006-net-aquantia-Regression-on-reset-with-1.x-firmware.patch @@ -0,0 +1,72 @@ +From 33feec41e6d35bbc679befe5ec0fb12acef18c95 Mon Sep 17 00:00:00 2001 +Message-Id: <33feec41e6d35bbc679befe5ec0fb12acef18c95.1523790169.git.jan.steffens@gmail.com> +In-Reply-To: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523790169.git.jan.steffens@gmail.com> +References: <3a7745f6fdd71aa34dae33c3edc586363d9ece9e.1523790169.git.jan.steffens@gmail.com> +From: Igor Russkikh +Date: Wed, 11 Apr 2018 15:23:24 +0300 +Subject: [PATCH 6/6] net: aquantia: Regression on reset with 1.x firmware + +On ASUS XG-C100C with 1.5.44 firmware a special mode called "dirty wake" +is active. With this mode when motherboard gets powered (but no poweron +happens yet), NIC automatically enables powersave link and watches +for WOL packet. +This normally allows to powerup the PC after AC power failures. + +Not all motherboards or bios settings gives power to PCI slots, +so this mode is not enabled on all the hardware. + +4.16 linux driver introduced full hardware reset sequence +This is required since before that we had no NIC hardware +reset implemented and there were side effects of "not clean start". + +But this full reset is incompatible with "dirty wake" WOL feature +it keeps the PHY link in a special mode forever. As a consequence, +driver sees no link and no traffic. + +To fix this we forcibly change FW state to idle state before doing +the full reset. This makes FW to restore link state. + +Fixes: c8c82eb net: aquantia: Introduce global AQC hardware reset sequence +Signed-off-by: Igor Russkikh +Signed-off-by: David S. Miller +--- + .../aquantia/atlantic/hw_atl/hw_atl_utils.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c +index d3b847ec7465..c58b2c227260 100644 +--- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c ++++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c +@@ -48,6 +48,8 @@ + #define FORCE_FLASHLESS 0 + + static int hw_atl_utils_ver_match(u32 ver_expected, u32 ver_actual); ++static int hw_atl_utils_mpi_set_state(struct aq_hw_s *self, ++ enum hal_atl_utils_fw_state_e state); + + int hw_atl_utils_initfw(struct aq_hw_s *self, const struct aq_fw_ops **fw_ops) + { +@@ -247,6 +249,20 @@ int hw_atl_utils_soft_reset(struct aq_hw_s *self) + + self->rbl_enabled = (boot_exit_code != 0); + ++ /* FW 1.x may bootup in an invalid POWER state (WOL feature). ++ * We should work around this by forcing its state back to DEINIT ++ */ ++ if (!hw_atl_utils_ver_match(HW_ATL_FW_VER_1X, ++ aq_hw_read_reg(self, ++ HW_ATL_MPI_FW_VERSION))) { ++ int err = 0; ++ ++ hw_atl_utils_mpi_set_state(self, MPI_DEINIT); ++ AQ_HW_WAIT_FOR((aq_hw_read_reg(self, HW_ATL_MPI_STATE_ADR) & ++ HW_ATL_MPI_STATE_MSK) == MPI_DEINIT, ++ 10, 1000U); ++ } ++ + if (self->rbl_enabled) + return hw_atl_utils_soft_reset_rbl(self); + else +-- +2.17.0 + diff --git a/PKGBUILD b/PKGBUILD index a7ee3a6..c3f37e7 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -23,6 +23,7 @@ source=( 0003-Partially-revert-swiotlb-remove-various-exports.patch 0004-Fix-vboxguest-on-guests-with-more-than-4G-RAM.patch 0005-Revert-drm-amd-display-disable-CRTCs-with-NULL-FB-on.patch + 0006-net-aquantia-Regression-on-reset-with-1.x-firmware.patch ) validpgpkeys=( 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds @@ -36,11 +37,12 @@ sha256sums=('63f6dc8e3c9f3a0273d5d6f4dca38a2413ca3a5f689329d05b750e4c87bb21b9' 'ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21' '75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919' 'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65' - '5537c95208da5951a456084ecae9c8efbed63566d5d49503598ff5660fb3320e' - '7222455040b21ad80ed237b667100b78345baed19cc14177002a47046913f00d' - 'b0d6f4f308a8d9fcd4af5cca22e65af7d5072a91c3554ddb2480a50f3544dcf2' - '84a3c167897b4a67b65a6b3d44cfee9a26535169d530de80637eed31ff946577' - 'bc899ff8017cf60170d459d77f064edaad1bb4047eef53f27583521786f68f54') + '4233d9dfa3704c2107c05cb9824fc7978bbdd05255c076ccafd7b81e0fbdbfc7' + '37841e7fdf9f83add5d4bdb3baa972de7318b2ebce29c42b81f13e12e09dbe6f' + 'db7c672e5356d65190169e53e244a91cdd45bd795efffe38668b41be01bf4ec7' + '34873d539c8c53520e907e6e1e1a24d17fb2819f07707cef061c10bd6b9c4b85' + '9c85109556ee122ed7710b18b2def6dd0daf402f540a59497049f61b9a693db2' + '76fe7d56b7e9e9dea548fe5a761cd346c20d78958a41907cd8ac6c6a9777e04d') _kernelname=${pkgbase#linux} : ${_kernelname:=-ARCH} @@ -69,6 +71,9 @@ prepare() { # https://bugs.archlinux.org/task/58158 patch -Np1 -i ../0005-Revert-drm-amd-display-disable-CRTCs-with-NULL-FB-on.patch + # https://bugs.archlinux.org/task/58174 + patch -Np1 -i ../0006-net-aquantia-Regression-on-reset-with-1.x-firmware.patch + cat ../config - >.config <