summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libre/linux-libre/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch4
-rw-r--r--libre/linux-libre/0002-PCI-EDR-Log-only-ACPI_NOTIFY_DISCONNECT_RECOVER-even.patch4
-rw-r--r--libre/linux-libre/0003-iwlwifi-Make-some-Killer-Wireless-AC-1550-cards-work.patch31
-rw-r--r--libre/linux-libre/0003-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch (renamed from libre/linux-libre/0004-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch)6
-rw-r--r--libre/linux-libre/0004-drm-amd-display-Clear-dm_state-for-fast-updates.patch97
-rw-r--r--libre/linux-libre/PKGBUILD24
-rw-r--r--libre/linux-libre/config.i68610
-rw-r--r--libre/linux-libre/config.x86_647
8 files changed, 128 insertions, 55 deletions
diff --git a/libre/linux-libre/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch b/libre/linux-libre/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
index ad7aa543a..2914aaac0 100644
--- a/libre/linux-libre/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
+++ b/libre/linux-libre/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
@@ -1,4 +1,4 @@
-From c701fa45808d40c6ce027c31c3e318bb678cb5b3 Mon Sep 17 00:00:00 2001
+From b4e7e8c02782234ce9409719dd781e9b320970ec Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Mon, 16 Sep 2019 04:53:20 +0200
Subject: [PATCH 1/4] ZEN: Add sysctl and CONFIG to disallow unprivileged
@@ -128,5 +128,5 @@ index 8eadadc478f9..c36ecd19562c 100644
static DEFINE_MUTEX(userns_state_mutex);
--
-2.27.0
+2.28.0
diff --git a/libre/linux-libre/0002-PCI-EDR-Log-only-ACPI_NOTIFY_DISCONNECT_RECOVER-even.patch b/libre/linux-libre/0002-PCI-EDR-Log-only-ACPI_NOTIFY_DISCONNECT_RECOVER-even.patch
index 5ef5f3e0a..d343be527 100644
--- a/libre/linux-libre/0002-PCI-EDR-Log-only-ACPI_NOTIFY_DISCONNECT_RECOVER-even.patch
+++ b/libre/linux-libre/0002-PCI-EDR-Log-only-ACPI_NOTIFY_DISCONNECT_RECOVER-even.patch
@@ -1,4 +1,4 @@
-From 18693ce191f146cea8dd6299f40e3db3a9367e82 Mon Sep 17 00:00:00 2001
+From e836eb0489cbf33c2abed9d9681a7945034b5cbd Mon Sep 17 00:00:00 2001
From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Date: Wed, 15 Apr 2020 17:38:32 -0700
Subject: [PATCH 2/4] PCI/EDR: Log only ACPI_NOTIFY_DISCONNECT_RECOVER events
@@ -34,5 +34,5 @@ index 594622a6cb16..a6b9b479b97a 100644
edev = acpi_dpc_port_get(pdev);
if (!edev) {
--
-2.27.0
+2.28.0
diff --git a/libre/linux-libre/0003-iwlwifi-Make-some-Killer-Wireless-AC-1550-cards-work.patch b/libre/linux-libre/0003-iwlwifi-Make-some-Killer-Wireless-AC-1550-cards-work.patch
deleted file mode 100644
index 0ee5e3a20..000000000
--- a/libre/linux-libre/0003-iwlwifi-Make-some-Killer-Wireless-AC-1550-cards-work.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 3639fafc8d7ebd9bdb0365c54fdb57745c47f264 Mon Sep 17 00:00:00 2001
-From: Alessio Bonfiglio <alessio.bonfiglio@mail.polimi.it>
-Date: Thu, 2 Jul 2020 17:05:52 +0200
-Subject: [PATCH 3/4] iwlwifi: Make some Killer Wireless-AC 1550 cards working
- again
-
-Fix the regression introduced by commit c8685937d07f ("iwlwifi: move pu devices to new table") by add the ids and the configurations of two missing Killer 1550 cards in order to make these cards being configured and working correctly again (following the new table convention).
-Resolve bug 208141 ("Wireless ac 9560 not working kernel 5.7.2", https://bugzilla.kernel.org/show_bug.cgi?id=208141).
-
-Fixes: c8685937d07f ("iwlwifi: move pu devices to new table")
-Signed-off-by: Alessio Bonfiglio <alessio.bonfiglio@mail.polimi.it>
----
- drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
-index 29971c25dba4..9ea3e5634672 100644
---- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
-+++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
-@@ -577,6 +577,8 @@ static const struct iwl_dev_info iwl_dev_info_table[] = {
- IWL_DEV_INFO(0x30DC, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name),
- IWL_DEV_INFO(0x31DC, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name),
- IWL_DEV_INFO(0x31DC, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name),
-+ IWL_DEV_INFO(0xA370, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name),
-+ IWL_DEV_INFO(0xA370, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name),
-
- IWL_DEV_INFO(0x271C, 0x0214, iwl9260_2ac_cfg, iwl9260_1_name),
-
---
-2.27.0
-
diff --git a/libre/linux-libre/0004-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch b/libre/linux-libre/0003-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch
index f9048b55d..9f2db911d 100644
--- a/libre/linux-libre/0004-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch
+++ b/libre/linux-libre/0003-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch
@@ -1,7 +1,7 @@
-From d14a96d0a5e05d99c5fe083c49d33197c215dbe1 Mon Sep 17 00:00:00 2001
+From 2b000a2e9f06878a1a46f4822637046b0aa5876c Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
Date: Wed, 15 Jul 2020 22:42:07 +0200
-Subject: [PATCH 4/4] virt: vbox: Add support for the new
+Subject: [PATCH 3/4] virt: vbox: Add support for the new
VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl
https://lore.kernel.org/patchwork/cover/1270301/
@@ -641,5 +641,5 @@ index f79d7abe27db..15125f6ec60d 100644
struct vbg_ioctl_set_guest_caps {
/** The header. */
--
-2.27.0
+2.28.0
diff --git a/libre/linux-libre/0004-drm-amd-display-Clear-dm_state-for-fast-updates.patch b/libre/linux-libre/0004-drm-amd-display-Clear-dm_state-for-fast-updates.patch
new file mode 100644
index 000000000..d92de97be
--- /dev/null
+++ b/libre/linux-libre/0004-drm-amd-display-Clear-dm_state-for-fast-updates.patch
@@ -0,0 +1,97 @@
+From 38116337d16e34b0282c047b3fb644adbb908bca Mon Sep 17 00:00:00 2001
+From: Mazin Rezk <mnrzk@protonmail.com>
+Date: Mon, 27 Jul 2020 05:40:46 +0000
+Subject: [PATCH 4/4] drm/amd/display: Clear dm_state for fast updates
+
+This patch fixes a race condition that causes a use-after-free during
+amdgpu_dm_atomic_commit_tail. This can occur when 2 non-blocking commits
+are requested and the second one finishes before the first. Essentially,
+this bug occurs when the following sequence of events happens:
+
+1. Non-blocking commit #1 is requested w/ a new dm_state #1 and is
+deferred to the workqueue.
+
+2. Non-blocking commit #2 is requested w/ a new dm_state #2 and is
+deferred to the workqueue.
+
+3. Commit #2 starts before commit #1, dm_state #1 is used in the
+commit_tail and commit #2 completes, freeing dm_state #1.
+
+4. Commit #1 starts after commit #2 completes, uses the freed dm_state
+1 and dereferences a freelist pointer while setting the context.
+
+Since this bug has only been spotted with fast commits, this patch fixes
+the bug by clearing the dm_state instead of using the old dc_state for
+fast updates. In addition, since dm_state is only used for its dc_state
+and amdgpu_dm_atomic_commit_tail will retain the dc_state if none is found,
+removing the dm_state should not have any consequences in fast updates.
+
+This use-after-free bug has existed for a while now, but only caused a
+noticeable issue starting from 5.7-rc1 due to 3202fa62f ("slub: relocate
+freelist pointer to middle of object") moving the freelist pointer from
+dm_state->base (which was unused) to dm_state->context (which is
+dereferenced).
+
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=207383
+Fixes: bd200d190f45 ("drm/amd/display: Don't replace the dc_state for fast updates")
+Reported-by: Duncan <1i5t5.duncan@cox.net>
+Signed-off-by: Mazin Rezk <mnrzk@protonmail.com>
+---
+ .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 36 ++++++++++++++-----
+ 1 file changed, 27 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+index 837a286469ec..d50751ae73f1 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+@@ -8489,20 +8489,38 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev,
+ * the same resource. If we have a new DC context as part of
+ * the DM atomic state from validation we need to free it and
+ * retain the existing one instead.
++ *
++ * Furthermore, since the DM atomic state only contains the DC
++ * context and can safely be annulled, we can free the state
++ * and clear the associated private object now to free
++ * some memory and avoid a possible use-after-free later.
+ */
+- struct dm_atomic_state *new_dm_state, *old_dm_state;
+
+- new_dm_state = dm_atomic_get_new_state(state);
+- old_dm_state = dm_atomic_get_old_state(state);
++ for (i = 0; i < state->num_private_objs; i++) {
++ struct drm_private_obj *obj = state->private_objs[i].ptr;
+
+- if (new_dm_state && old_dm_state) {
+- if (new_dm_state->context)
+- dc_release_state(new_dm_state->context);
++ if (obj->funcs == adev->dm.atomic_obj.funcs) {
++ int j = state->num_private_objs-1;
+
+- new_dm_state->context = old_dm_state->context;
++ dm_atomic_destroy_state(obj,
++ state->private_objs[i].state);
++
++ /* If i is not at the end of the array then the
++ * last element needs to be moved to where i was
++ * before the array can safely be truncated.
++ */
++ if (i != j)
++ state->private_objs[i] =
++ state->private_objs[j];
+
+- if (old_dm_state->context)
+- dc_retain_state(old_dm_state->context);
++ state->private_objs[j].ptr = NULL;
++ state->private_objs[j].state = NULL;
++ state->private_objs[j].old_state = NULL;
++ state->private_objs[j].new_state = NULL;
++
++ state->num_private_objs = j;
++ break;
++ }
+ }
+ }
+
+--
+2.28.0
+
diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD
index 24b6d068d..8a1a6e375 100644
--- a/libre/linux-libre/PKGBUILD
+++ b/libre/linux-libre/PKGBUILD
@@ -14,11 +14,11 @@ _replacesoldkernels=() # '%' gets replaced with kernel suffix
_replacesoldmodules=() # '%' gets replaced with kernel suffix
pkgbase=linux-libre
-pkgver=5.7.10
+pkgver=5.7.12
pkgrel=1
pkgdesc='Linux-libre'
-rcnver=5.7.10
-rcnrel=armv7-x15
+rcnver=5.7.12
+rcnrel=armv7-x16
url='https://linux-libre.fsfla.org/'
arch=(i686 x86_64 armv7h)
license=(GPL2)
@@ -47,8 +47,8 @@ source=(
# extracted patches from Arch Linux kernel sources
0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
0002-PCI-EDR-Log-only-ACPI_NOTIFY_DISCONNECT_RECOVER-even.patch
- 0003-iwlwifi-Make-some-Killer-Wireless-AC-1550-cards-work.patch
- 0004-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch
+ 0003-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch
+ 0004-drm-amd-display-Clear-dm_state-for-fast-updates.patch
sphinx-workaround.patch
)
source_armv7h=(
@@ -73,7 +73,7 @@ validpgpkeys=(
)
sha512sums=('4805b2956f628c6581e86d67b1996b5b404e7f4b5d29ecfe708ddca45344571d75018364d8f0049835d4286ca1ba591307be263536d1bed0ea006696a8b8ac73'
'SKIP'
- 'b32a67ed26755f0ed4ad8d8bd2613fba4a4efddffaaf16bb4e91be186ef287639d6ca888a46fb1d695a4850d7e11c157d864055cf83c65fb1c3a01d3d0e6f1e5'
+ 'fae2a519caf733f29b4c14be14297a575d53bd29fdc8715e6ae83dd7d6b21e0d443e245e3e364116fac5e45ed4aafe76545594b9078b33bfa2fd2e9a5594b706'
'SKIP'
'13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3'
'SKIP'
@@ -81,8 +81,8 @@ sha512sums=('4805b2956f628c6581e86d67b1996b5b404e7f4b5d29ecfe708ddca45344571d750
'SKIP'
'267295aa0cea65684968420c68b32f1a66a22d018b9d2b2c1ef14267bcf4cb68aaf7099d073cbfefe6c25c8608bdcbbd45f7ac8893fdcecbf1e621abdfe9ecc1'
'SKIP'
- 'b6bbd7d5fede041a56e19250842c3d1366a6b494450b70c42dcec8e62d2d4f69ded0903e6a733750dfba9426dfd468f316e59ac5644ccaf48822090fa9f69402'
- 'fa3f7465ef5896e3ad390cbb3c94eb52e84ee94ae3cb578cab29191a1f5f5055bd3bb63eaf2347d801ac953f7ef73354789f827162de88f6d6cfe08dd5f8dcd7'
+ '592e11a46b8355d990ab4326a3e19b9a9232ac45dd750dcbab88cc047ad4f866fa45dbd1b3a02b796aefa379ff8f276420ef8e597d3ae80a8b85645213b62740'
+ 'dcbe9d511fd3bb2e41698fe661f814e3fb22c1d6f717dc8c8fcfc69e1d1cdf87b0b325d56cfda18f6e6f129ec51cb6edc5d0402de70f3b9f140a81ef15e4b9a8'
'f7e47966b8732fa66fa939d174e7bbc677e70bd5f52322f9adbd163ac9532769f6eb65391a9321fbe826cd5533b80bade664c2301bad27955563bddf2b097595'
'53103bf55b957b657039510527df0df01279dec59cda115a4d6454e4135025d4546167fa30bdc99107f232561c1e096d8328609ab5a876cf7017176f92ad3e0b'
'167bc73c6c1c63931806238905dc44c7d87c5a5c0f6293159f2133dfe717fb44081018d810675716d1605ec7dff5e8333b87b19e09e2de21d0448e447437873b'
@@ -90,10 +90,10 @@ sha512sums=('4805b2956f628c6581e86d67b1996b5b404e7f4b5d29ecfe708ddca45344571d750
'143dea30c6da00e504c99984a98a0eb2411f558fcdd9dfa7f607d6c14e9e7dffff9cb00121d9317044b07e3e210808286598c785ee854084b993ec9cb14d8232'
'02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af'
'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168'
- '54cf7ca8dd90fea27017931909a49fb95c40f603307b41359672fba8d0a4184a88659cad1707d5d9108c8e29bd37053c995e986cddfc810405c604ef41ff8973'
- '597f0f4aa1fdf303db3de5da48289b4e494085ea5e6af9e1eb1cf8dc27b32b0e6997e862c5606cbe791760b07a6b4089bc6b02a8ee07de260d6bda96b0f7695b'
- 'c91edbae0562d543920d58fffec3c2a4e1f945bff661c3b8ea997ec18bc96b6a2f570fbe21db2d30ab170a52935d0dc329fd801053076f5fae5e05a2060277e7'
- 'bf4d11e51094a95b84c4e43567f5cf76e8db9cf917dcb390ac7161bb861091e82a06dc1aed134b6abf0da5c6f266bedbbdeb7b03592619da0669c232d020fa1e'
+ 'b736b5eae48c115679549a3bb237a5f6938390985ca1f0e108ebfbcac28a93401d3dc45c1ed4cd3bae2c593043f0dd01763a53f5db78d023ed019a27fa07f7b0'
+ 'b392e9db750b738fc5fc0be15f652cff84f49d5bec49e33d410ba8e3365239f2ce7e2848c6d123d68551180f67b7a6e86a112d08dc0188244b715c582d27f0ab'
+ '5681e31d3b9323a035c2cbee96ceb64a15171ad55e9dfa83706771cf4ade2e5548246cbe130d8d439c0ffee75671610ed0ad74c7aa50a26178da222b17fde54e'
+ '71d60da9531af450f65bc31561ef9f888b5f1b7f6ebaca60b1397923b5556d8e60419ed0511b5514b5aa6ce3121f3a5112d8adf7bc098c29948db13f1618f665'
'98e97155f86bbe837d43f27ec1018b5b6fdc6c372d6f7f2a0fe29da117d53979d9f9c262f886850d92002898682781029b80d4ee923633fc068f979e6c8254be')
sha512sums_armv7h=('6e6778675d5acd18cc8082e56ce85eaab97e9f21225b34e0a2d0e9ec892f9dfed397c6cd9d82a9cfa1ea05a13209fa52f94ee1a1d646d23d5a3ccaec894f7b52'
'SKIP'
diff --git a/libre/linux-libre/config.i686 b/libre/linux-libre/config.i686
index f484c9909..3a7ce73c7 100644
--- a/libre/linux-libre/config.i686
+++ b/libre/linux-libre/config.i686
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.7.8-gnu Kernel Configuration
+# Linux/x86 5.7.12-gnu Kernel Configuration
#
#
@@ -1578,7 +1578,12 @@ CONFIG_VLAN_8021Q_MVRP=y
# CONFIG_DECNET is not set
CONFIG_LLC=m
CONFIG_LLC2=m
-# CONFIG_ATALK is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+# CONFIG_LTPC is not set
+# CONFIG_COPS is not set
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
CONFIG_PHONET=m
@@ -8792,7 +8797,6 @@ CONFIG_IOMMU_SUPPORT=y
CONFIG_OF_IOMMU=y
CONFIG_DMAR_TABLE=y
CONFIG_INTEL_IOMMU=y
-CONFIG_INTEL_IOMMU_SVM=y
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
diff --git a/libre/linux-libre/config.x86_64 b/libre/linux-libre/config.x86_64
index cc5215200..96cec50c2 100644
--- a/libre/linux-libre/config.x86_64
+++ b/libre/linux-libre/config.x86_64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.7.8-gnu Kernel Configuration
+# Linux/x86 5.7.12-gnu Kernel Configuration
#
#
@@ -1619,7 +1619,10 @@ CONFIG_VLAN_8021Q_MVRP=y
# CONFIG_DECNET is not set
CONFIG_LLC=m
CONFIG_LLC2=m
-# CONFIG_ATALK is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
CONFIG_PHONET=m