summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid P <megver83@parabola.nu>2021-04-05 18:26:55 -0400
committerDavid P <megver83@parabola.nu>2021-04-05 18:26:55 -0400
commit01e599e576dc07564dbeaf9fed773ba7550cdaa7 (patch)
tree08f783e941b8a638c12d3cf5809793becddd31aa
parentf0cbe8c5ad14bef07b8d2fb2585c5014c9f519e0 (diff)
updpkg: libre/linux-libre-pae 5.11.11-1
Signed-off-by: David P <megver83@parabola.nu>
-rw-r--r--libre/linux-libre-pae/0002-Revert-drm-amd-display-reuse-current-context-instead.patch181
-rw-r--r--libre/linux-libre-pae/0002-iommu-amd-Don-t-initialise-remapping-irqdomain-if-IO.patch71
-rw-r--r--libre/linux-libre-pae/0003-drm-amdgpu-fix-shutdown-with-s0ix.patch77
-rw-r--r--libre/linux-libre-pae/PKGBUILD12
-rw-r--r--libre/linux-libre-pae/config7
5 files changed, 78 insertions, 270 deletions
diff --git a/libre/linux-libre-pae/0002-Revert-drm-amd-display-reuse-current-context-instead.patch b/libre/linux-libre-pae/0002-Revert-drm-amd-display-reuse-current-context-instead.patch
deleted file mode 100644
index a1a37986a..000000000
--- a/libre/linux-libre-pae/0002-Revert-drm-amd-display-reuse-current-context-instead.patch
+++ /dev/null
@@ -1,181 +0,0 @@
-From 66128e7bf7011076ebe47fa5d4b18faad8244c5d Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher@amd.com>
-Date: Tue, 9 Feb 2021 17:21:58 -0500
-Subject: [PATCH 2/3] Revert "drm/amd/display: reuse current context instead of
- recreating one"
-
-This reverts commit 8866a67ab86cc0812e65c04f1ef02bcc41e24d68.
-
-This breaks hotplug of HDMI on some systems, resulting in
-a blank screen also causes failures for displays to light up
-on other systems.
-
-Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1487
-Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1492
-Bug: https://bugzilla.kernel.org/show_bug.cgi?id=211649
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
----
- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 23 +++++++++-------
- drivers/gpu/drm/amd/display/dc/core/dc.c | 27 ++++++-------------
- drivers/gpu/drm/amd/display/dc/dc_stream.h | 3 ++-
- 3 files changed, 23 insertions(+), 30 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 961abf1cf040..e438baa1adc1 100644
---- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-@@ -1934,7 +1934,7 @@ static void dm_gpureset_commit_state(struct dc_state *dc_state,
- dc_commit_updates_for_stream(
- dm->dc, bundle->surface_updates,
- dc_state->stream_status->plane_count,
-- dc_state->streams[k], &bundle->stream_update);
-+ dc_state->streams[k], &bundle->stream_update, dc_state);
- }
-
- cleanup:
-@@ -1965,7 +1965,8 @@ static void dm_set_dpms_off(struct dc_link *link)
-
- stream_update.stream = stream_state;
- dc_commit_updates_for_stream(stream_state->ctx->dc, NULL, 0,
-- stream_state, &stream_update);
-+ stream_state, &stream_update,
-+ stream_state->ctx->dc->current_state);
- mutex_unlock(&adev->dm.dc_lock);
- }
-
-@@ -7548,7 +7549,7 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
- struct drm_crtc *pcrtc,
- bool wait_for_vblank)
- {
-- int i;
-+ uint32_t i;
- uint64_t timestamp_ns;
- struct drm_plane *plane;
- struct drm_plane_state *old_plane_state, *new_plane_state;
-@@ -7589,7 +7590,7 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
- amdgpu_dm_commit_cursors(state);
-
- /* update planes when needed */
-- for_each_oldnew_plane_in_state_reverse(state, plane, old_plane_state, new_plane_state, i) {
-+ for_each_oldnew_plane_in_state(state, plane, old_plane_state, new_plane_state, i) {
- struct drm_crtc *crtc = new_plane_state->crtc;
- struct drm_crtc_state *new_crtc_state;
- struct drm_framebuffer *fb = new_plane_state->fb;
-@@ -7812,7 +7813,8 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
- bundle->surface_updates,
- planes_count,
- acrtc_state->stream,
-- &bundle->stream_update);
-+ &bundle->stream_update,
-+ dc_state);
-
- /**
- * Enable or disable the interrupts on the backend.
-@@ -8148,13 +8150,13 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
- struct dm_connector_state *dm_new_con_state = to_dm_connector_state(new_con_state);
- struct dm_connector_state *dm_old_con_state = to_dm_connector_state(old_con_state);
- struct amdgpu_crtc *acrtc = to_amdgpu_crtc(dm_new_con_state->base.crtc);
-- struct dc_surface_update surface_updates[MAX_SURFACES];
-+ struct dc_surface_update dummy_updates[MAX_SURFACES];
- struct dc_stream_update stream_update;
- struct dc_info_packet hdr_packet;
- struct dc_stream_status *status = NULL;
- bool abm_changed, hdr_changed, scaling_changed;
-
-- memset(&surface_updates, 0, sizeof(surface_updates));
-+ memset(&dummy_updates, 0, sizeof(dummy_updates));
- memset(&stream_update, 0, sizeof(stream_update));
-
- if (acrtc) {
-@@ -8211,15 +8213,16 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
- * To fix this, DC should permit updating only stream properties.
- */
- for (j = 0; j < status->plane_count; j++)
-- surface_updates[j].surface = status->plane_states[j];
-+ dummy_updates[j].surface = status->plane_states[0];
-
-
- mutex_lock(&dm->dc_lock);
- dc_commit_updates_for_stream(dm->dc,
-- surface_updates,
-+ dummy_updates,
- status->plane_count,
- dm_new_crtc_state->stream,
-- &stream_update);
-+ &stream_update,
-+ dc_state);
- mutex_unlock(&dm->dc_lock);
- }
-
-diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
-index 6cf1a5a2a5ec..58eb0d69873a 100644
---- a/drivers/gpu/drm/amd/display/dc/core/dc.c
-+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
-@@ -2679,7 +2679,8 @@ void dc_commit_updates_for_stream(struct dc *dc,
- struct dc_surface_update *srf_updates,
- int surface_count,
- struct dc_stream_state *stream,
-- struct dc_stream_update *stream_update)
-+ struct dc_stream_update *stream_update,
-+ struct dc_state *state)
- {
- const struct dc_stream_status *stream_status;
- enum surface_update_type update_type;
-@@ -2698,12 +2699,6 @@ void dc_commit_updates_for_stream(struct dc *dc,
-
-
- if (update_type >= UPDATE_TYPE_FULL) {
-- struct dc_plane_state *new_planes[MAX_SURFACES];
--
-- memset(new_planes, 0, sizeof(new_planes));
--
-- for (i = 0; i < surface_count; i++)
-- new_planes[i] = srf_updates[i].surface;
-
- /* initialize scratch memory for building context */
- context = dc_create_state(dc);
-@@ -2712,21 +2707,15 @@ void dc_commit_updates_for_stream(struct dc *dc,
- return;
- }
-
-- dc_resource_state_copy_construct(
-- dc->current_state, context);
-+ dc_resource_state_copy_construct(state, context);
-
-- /*remove old surfaces from context */
-- if (!dc_rem_all_planes_for_stream(dc, stream, context)) {
-- DC_ERROR("Failed to remove streams for new validate context!\n");
-- return;
-- }
-+ for (i = 0; i < dc->res_pool->pipe_count; i++) {
-+ struct pipe_ctx *new_pipe = &context->res_ctx.pipe_ctx[i];
-+ struct pipe_ctx *old_pipe = &dc->current_state->res_ctx.pipe_ctx[i];
-
-- /* add surface to context */
-- if (!dc_add_all_planes_for_stream(dc, stream, new_planes, surface_count, context)) {
-- DC_ERROR("Failed to add streams for new validate context!\n");
-- return;
-+ if (new_pipe->plane_state && new_pipe->plane_state != old_pipe->plane_state)
-+ new_pipe->plane_state->force_full_update = true;
- }
--
- }
-
-
-diff --git a/drivers/gpu/drm/amd/display/dc/dc_stream.h b/drivers/gpu/drm/amd/display/dc/dc_stream.h
-index e243c01b9672..b7910976b81a 100644
---- a/drivers/gpu/drm/amd/display/dc/dc_stream.h
-+++ b/drivers/gpu/drm/amd/display/dc/dc_stream.h
-@@ -283,7 +283,8 @@ void dc_commit_updates_for_stream(struct dc *dc,
- struct dc_surface_update *srf_updates,
- int surface_count,
- struct dc_stream_state *stream,
-- struct dc_stream_update *stream_update);
-+ struct dc_stream_update *stream_update,
-+ struct dc_state *state);
- /*
- * Log the current stream state.
- */
---
-2.30.1
-
diff --git a/libre/linux-libre-pae/0002-iommu-amd-Don-t-initialise-remapping-irqdomain-if-IO.patch b/libre/linux-libre-pae/0002-iommu-amd-Don-t-initialise-remapping-irqdomain-if-IO.patch
new file mode 100644
index 000000000..975223cc0
--- /dev/null
+++ b/libre/linux-libre-pae/0002-iommu-amd-Don-t-initialise-remapping-irqdomain-if-IO.patch
@@ -0,0 +1,71 @@
+From a4010c3d6f43dec4bf0010cab87cb3d29b4c7087 Mon Sep 17 00:00:00 2001
+From: David Woodhouse <dwmw@amazon.co.uk>
+Date: Mon, 15 Mar 2021 11:15:02 +0000
+Subject: [PATCH 2/2] iommu/amd: Don't initialise remapping irqdomain if IOMMU
+ is disabled
+
+When the IOMMU is disabled, the driver still enumerates and initialises
+the hardware in order to turn it off. Because IRQ remapping setup is
+done early, the irqdomain is set up opportunistically.
+
+In commit b34f10c2dc59 ("iommu/amd: Stop irq_remapping_select() matching
+when remapping is disabled") I already make the irq_remapping_select()
+function check the amd_iommu_irq_setup flag because that might get
+cleared only after the irqdomain setup is done, when the IVRS is parsed.
+
+However, in the case where 'amd_iommu=off' is passed on the command line,
+the IRQ remapping setup isn't done but the amd_iommu_irq_setup flag is
+still set by the early IRQ remap init code. Stop it doing that, by
+bailing out of amd_iommu_prepare() early when it's disabled.
+
+This avoids the crash in irq_remapping_select() as it dereferences the
+NULL amd_iommu_rlookup_table[]:
+
+[ 0.243659] Switched APIC routing to physical x2apic.
+[ 0.262206] BUG: kernel NULL pointer dereference, address: 0000000000000500
+[ 0.262927] #PF: supervisor read access in kernel mode
+[ 0.263390] #PF: error_code(0x0000) - not-present page
+[ 0.263844] PGD 0 P4D 0
+[ 0.264135] Oops: 0000 [#1] SMP PTI
+[ 0.264460] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.12.0-rc3 #831
+[ 0.265069] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-1.fc33 04/01/2014
+[ 0.265825] RIP: 0010:irq_remapping_select+0x57/0xb0
+[ 0.266327] Code: 4b 0c 48 3d 30 e0 a7 9e 75 0d eb 35 48 8b 00 48 3d 30 e0 a7 9e 74 2a 0f b6 50 10 39 d1 75 ed 0f b7 40 12 48 8b 15 69 e3 d2 01 <48> 8b 14 c2 48 85 d2 74 0e b8 01 00 00 00 48 3b aa 90 04 00 00 74
+[ 0.268412] RSP: 0000:ffffffff9e803db0 EFLAGS: 00010246
+[ 0.268919] RAX: 00000000000000a0 RBX: ffffffff9e803df8 RCX: 0000000000000000
+[ 0.269550] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff98120112fe79
+[ 0.270245] RBP: ffff9812011c8218 R08: 0000000000000001 R09: 000000000000000a
+[ 0.270922] R10: 000000000000000a R11: f000000000000000 R12: ffff9812011c8218
+[ 0.271549] R13: ffff98120181ed88 R14: 0000000000000000 R15: 0000000000000000
+[ 0.272221] FS: 0000000000000000(0000) GS:ffff98127dc00000(0000) knlGS:0000000000000000
+[ 0.272997] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
+[ 0.273508] CR2: 0000000000000500 CR3: 0000000030810000 CR4: 00000000000006b0
+[ 0.274178] Call Trace:
+[ 0.274416] irq_find_matching_fwspec+0x41/0xc0
+[ 0.274812] mp_irqdomain_create+0x65/0x150
+[ 0.275251] setup_IO_APIC+0x70/0x811
+
+Fixes: a1a785b57242 ("iommu/amd: Implement select() method on remapping irqdomain")
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=212017
+Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
+---
+ drivers/iommu/amd/init.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c
+index 78339b0bb8e5..398909dab640 100644
+--- a/drivers/iommu/amd/init.c
++++ b/drivers/iommu/amd/init.c
+@@ -2998,6 +2998,9 @@ int __init amd_iommu_prepare(void)
+ {
+ int ret;
+
++ if (amd_iommu_disabled)
++ return -ENODEV;
++
+ amd_iommu_irq_remap = true;
+
+ ret = iommu_go_to_state(IOMMU_ACPI_FINISHED);
+--
+2.31.1
+
diff --git a/libre/linux-libre-pae/0003-drm-amdgpu-fix-shutdown-with-s0ix.patch b/libre/linux-libre-pae/0003-drm-amdgpu-fix-shutdown-with-s0ix.patch
deleted file mode 100644
index ce37719ff..000000000
--- a/libre/linux-libre-pae/0003-drm-amdgpu-fix-shutdown-with-s0ix.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 04ec031772dd6faf64506c739ce7073b0f91310b Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher@amd.com>
-Date: Thu, 18 Feb 2021 12:05:53 -0500
-Subject: [PATCH 3/3] drm/amdgpu: fix shutdown with s0ix
-
-For shutdown needs to be handled differently and s0ix. Add
-a new flag to shutdown and use it to adjust behavior appropriately.
-
-Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1499
-Fixes: 628c36d7b238e2 ("drm/amdgpu: update amdgpu device suspend/resume sequence for s0i3 support")
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Cc: Prike Liang <Prike.Liang@amd.com>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 +
- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 6 ++++--
- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 ++
- 3 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-index 5993dd0fdd8e..4ae244048d53 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-@@ -1002,6 +1002,7 @@ struct amdgpu_device {
- /* s3/s4 mask */
- bool in_suspend;
- bool in_hibernate;
-+ bool in_shutdown;
-
- atomic_t in_gpu_reset;
- enum pp_mp1_state mp1_state;
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
-index cab1ebaf6d62..d07ff05ad042 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
-@@ -2666,7 +2666,8 @@ static int amdgpu_device_ip_suspend_phase1(struct amdgpu_device *adev)
- {
- int i, r;
-
-- if (!amdgpu_acpi_is_s0ix_supported(adev) || amdgpu_in_reset(adev)) {
-+ if (adev->in_shutdown ||
-+ !amdgpu_acpi_is_s0ix_supported(adev) || amdgpu_in_reset(adev)) {
- amdgpu_device_set_pg_state(adev, AMD_PG_STATE_UNGATE);
- amdgpu_device_set_cg_state(adev, AMD_CG_STATE_UNGATE);
- }
-@@ -3726,7 +3727,8 @@ int amdgpu_device_suspend(struct drm_device *dev, bool fbcon)
-
- amdgpu_fence_driver_suspend(adev);
-
-- if (!amdgpu_acpi_is_s0ix_supported(adev) || amdgpu_in_reset(adev))
-+ if (adev->in_shutdown ||
-+ !amdgpu_acpi_is_s0ix_supported(adev) || amdgpu_in_reset(adev))
- r = amdgpu_device_ip_suspend_phase2(adev);
- else
- amdgpu_gfx_state_change_set(adev, sGpuChangeState_D3Entry);
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
-index 7169fb5e3d9c..2aacb96cf320 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
-@@ -1259,6 +1259,7 @@ amdgpu_pci_shutdown(struct pci_dev *pdev)
- if (amdgpu_ras_intr_triggered())
- return;
-
-+ adev->in_shutdown = true;
- /* if we are running in a VM, make sure the device
- * torn down properly on reboot/shutdown.
- * unfortunately we can't detect certain
-@@ -1268,6 +1269,7 @@ amdgpu_pci_shutdown(struct pci_dev *pdev)
- adev->mp1_state = PP_MP1_STATE_UNLOAD;
- amdgpu_device_ip_suspend(adev);
- adev->mp1_state = PP_MP1_STATE_NONE;
-+ adev->in_shutdown = false;
- }
-
- static int amdgpu_pmops_suspend(struct device *dev)
---
-2.30.1
-
diff --git a/libre/linux-libre-pae/PKGBUILD b/libre/linux-libre-pae/PKGBUILD
index ecd0ea3e5..9b9f15c52 100644
--- a/libre/linux-libre-pae/PKGBUILD
+++ b/libre/linux-libre-pae/PKGBUILD
@@ -9,7 +9,7 @@ _replacesoldkernels=() # '%' gets replaced with kernel suffix
_replacesoldmodules=() # '%' gets replaced with kernel suffix
pkgbase=linux-libre-pae
-pkgver=5.11.2
+pkgver=5.11.11
pkgrel=1
pkgdesc='Linux-libre PAE (physical address extension)'
url='https://linux-libre.fsfla.org/'
@@ -36,8 +36,7 @@ source=(
0002-fix-Atmel-maXTouch-touchscreen-support.patch
# Arch Linux patches
0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
- 0002-Revert-drm-amd-display-reuse-current-context-instead.patch
- 0003-drm-amdgpu-fix-shutdown-with-s0ix.patch
+ 0002-iommu-amd-Don-t-initialise-remapping-irqdomain-if-IO.patch
)
validpgpkeys=(
'474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva
@@ -45,7 +44,7 @@ validpgpkeys=(
)
sha512sums=('3a34006add9ea318b0c2863388925ba34d57d342535b00c9ebc61fbfc69ef206b64af21c35b101466508c4308b5da310743c8add74dd703e259612953104ae43'
'SKIP'
- '64c5a9076b502d3da538e781f3819af24ddb90316c2d181037c0f77e5204ec555aa0464d58fbd0025ee6c4f1b28db33d38ddc8de0bc2a83be9190c900fdf6a2c'
+ 'b35fc1d243fa3fdfa2b50b8f01ccab297f958f497e58a104da18631fafe3923216f3f1e97b9c2bb9e719c8a7ae8cabe8198a1a82cb5e8e50488b64d7af4dc940'
'SKIP'
'13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3'
'SKIP'
@@ -53,12 +52,11 @@ sha512sums=('3a34006add9ea318b0c2863388925ba34d57d342535b00c9ebc61fbfc69ef206b64
'SKIP'
'267295aa0cea65684968420c68b32f1a66a22d018b9d2b2c1ef14267bcf4cb68aaf7099d073cbfefe6c25c8608bdcbbd45f7ac8893fdcecbf1e621abdfe9ecc1'
'SKIP'
- '67d9e52dba831c982bdb243c75594ecea8c23bc24ed58969d513f715af7cbc415d59e232ea36b15431a391337e821153a11922c16d5cb43c904ac98f2f2426c8'
+ 'ee91cdabc8c050ad74b619a19f1f1b6a96321b62fe3b4adcadd718e4c05cd97d0528ad48dda676f68e5d71c4c630ed117e668b6c63a267bf9c3aa2c68c7eebdf'
'02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af'
'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168'
'748d98aef69e93959eab6a7f20a7972aff50c577a079bba807b10fe9b3b98799b47215d76797360d336ba4c3c656d7eafe3e81f2a59a2b6888d1884071db6e95'
- '798b96e22ae79a62516e38194f4a377c8bed22c6fbf9f33fcdf205136bf1e5429c01a803c71f8eb412df2a5637eb6266fd4677618d64f64e9b53725371f574c6'
- '6e0cdf8ae337245cb4df53496649905d4900dc0401b5fa7ebea70a46ed88f2f5759a1bfe571207975e1d92c734babdb8b3505cd432731d0713ce1339b6df71d4')
+ 'da919328f8f7efd2c177a68ff864fdf1a76d777c142af4c90d3efc4a8419599e3479f8e0de0e8282599b9030c33a9e3b46548005d36c058ab08b51c03732bb45')
_replacesarchkernel=("${_replacesarchkernel[@]/\%/${pkgbase#linux-libre}}")
_replacesoldkernels=("${_replacesoldkernels[@]/\%/${pkgbase#linux-libre}}")
diff --git a/libre/linux-libre-pae/config b/libre/linux-libre-pae/config
index cbba0bcae..73906c952 100644
--- a/libre/linux-libre-pae/config
+++ b/libre/linux-libre-pae/config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.11.2-gnu Kernel Configuration
+# Linux/x86 5.11.11-gnu Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 10.2.0"
CONFIG_CC_IS_GCC=y
@@ -241,6 +241,7 @@ CONFIG_BPF_SYSCALL=y
# CONFIG_BPF_PRELOAD is not set
# CONFIG_USERFAULTFD is not set
CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
+CONFIG_KCMP=y
CONFIG_RSEQ=y
# CONFIG_DEBUG_RSEQ is not set
# CONFIG_EMBEDDED is not set
@@ -2057,7 +2058,6 @@ CONFIG_PCIEASPM_DEFAULT=y
CONFIG_PCIE_PME=y
CONFIG_PCIE_DPC=y
CONFIG_PCIE_PTM=y
-# CONFIG_PCIE_BW is not set
# CONFIG_PCIE_EDR is not set
CONFIG_PCI_MSI=y
CONFIG_PCI_MSI_IRQ_DOMAIN=y
@@ -8869,9 +8869,6 @@ CONFIG_INTEL_RST=m
CONFIG_INTEL_SMARTCONNECT=m
CONFIG_INTEL_CHTDC_TI_PWRBTN=m
CONFIG_INTEL_PMC_CORE=y
-# CONFIG_INTEL_PMT_CLASS is not set
-# CONFIG_INTEL_PMT_TELEMETRY is not set
-# CONFIG_INTEL_PMT_CRASHLOG is not set
CONFIG_INTEL_PUNIT_IPC=m
# CONFIG_INTEL_SCU_PCI is not set
# CONFIG_INTEL_SCU_PLATFORM is not set