summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorgraysky2023-01-01 06:47:08 -0500
committergraysky2023-01-01 06:47:08 -0500
commit81a383454bc197a7dfd5d46acb14ea488db90a9f (patch)
tree3ebd8dad363364bd2607e1c45ba93b15983fda76
parent20f235ed4c4be0ab0467be162669667e4b0faaf9 (diff)
downloadaur-81a383454bc197a7dfd5d46acb14ea488db90a9f.tar.gz
Update to 6.1.2-1
-rw-r--r--.SRCINFO16
-rw-r--r--0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch8
-rw-r--r--0002-drm-i915-improve-the-catch-all-evict-to-handle-lock-.patch4
-rw-r--r--0003-ALSA-hda-hdmi-Static-PCM-mapping-again-with-AMD-HDMI.patch115
-rw-r--r--0003-futex-Resend-potentially-swallowed-owner-death-notif.patch100
-rw-r--r--PKGBUILD12
6 files changed, 135 insertions, 120 deletions
diff --git a/.SRCINFO b/.SRCINFO
index a8ebe76416e4..b31573dda907 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,5 +1,5 @@
pkgbase = linux-ck
- pkgver = 6.1.1
+ pkgver = 6.1.2
pkgrel = 1
url = https://wiki.archlinux.org/index.php/Linux-ck
arch = x86_64
@@ -12,24 +12,24 @@ pkgbase = linux-ck
makedepends = tar
makedepends = xz
options = !strip
- source = https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.1.1.tar.xz
- source = https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.1.1.tar.sign
+ source = https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.1.2.tar.xz
+ source = https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.1.2.tar.sign
source = config
source = more-uarches-20221217.tar.gz::https://github.com/graysky2/kernel_compiler_patch/archive/20221217.tar.gz
source = ck-hrtimer-fdbdf7e0ec56cd59e11d024c473e766429271a5c.tar.gz::https://github.com/graysky2/linux-patches/archive/fdbdf7e0ec56cd59e11d024c473e766429271a5c.tar.gz
source = 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
source = 0002-drm-i915-improve-the-catch-all-evict-to-handle-lock-.patch
- source = 0003-futex-Resend-potentially-swallowed-owner-death-notif.patch
+ source = 0003-ALSA-hda-hdmi-Static-PCM-mapping-again-with-AMD-HDMI.patch
validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
- sha256sums = a3e61377cf4435a9e2966b409a37a1056f6aaa59e561add9125a88e3c0971dfb
+ sha256sums = ee41f3c4f599b2f46f08aae428c9243db403e7292eb2c9f04ee34909b038d1ae
sha256sums = SKIP
sha256sums = 0571ea17a2e38458096b679418197bbea8c414388f628d122517f3a1f3a31b3a
sha256sums = f1d586e111932890ad5e0df15d092fb9b3f87bae4ea17812aae9b0ec98fe2db0
sha256sums = 6d3b9cb4639c1c5eb4e2697aed0dbffa5b4a37d63a0861dec8315dd052723e0e
- sha256sums = 865fa8cc41186a42225e89c845d438aefae6332d1ef18b94ef3aae04deb5e784
- sha256sums = 9c6191b355fcaf41cfeb92105ea0d24bbc51c993877d3fb5325f139997ede058
- sha256sums = 748e40e3a4b889850e8f86aee7ff96a93d43476a6529316bd823e18e23fc82f8
+ sha256sums = 00c7b866ba5393639d5ca2349883909ad6b1bedf6091e857c83f208e0838479c
+ sha256sums = 0cde718acd7e96ce5f221db696459b145162196f6fb6b729e3f9231672c40df1
+ sha256sums = 6d808871fc1bc318c193f021ca2680e1f2cd28802248fb16a350cf9c5ca3af7b
pkgname = linux-ck
pkgdesc = The Linux kernel and modules with ck's hrtimer patches
diff --git a/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch b/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
index 7649aaeb5834..94b3e44a4640 100644
--- a/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
+++ b/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
@@ -1,4 +1,4 @@
-From c1992e54412eedc904c7a0997ead8ecf6ef50ea6 Mon Sep 17 00:00:00 2001
+From d93b3bdc50f2d4a69e1abc900a588d6cf3b4b75b 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
@@ -63,7 +63,7 @@ index 94125d3b6893..9f7139b536f6 100644
bool "PID Namespaces"
default y
diff --git a/kernel/fork.c b/kernel/fork.c
-index 08969f5aa38d..ff601cb7a1fa 100644
+index 844dfdc8c639..31d41db3f84d 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -98,6 +98,10 @@
@@ -77,7 +77,7 @@ index 08969f5aa38d..ff601cb7a1fa 100644
#include <asm/pgalloc.h>
#include <linux/uaccess.h>
#include <asm/mmu_context.h>
-@@ -2008,6 +2012,10 @@ static __latent_entropy struct task_struct *copy_process(
+@@ -2011,6 +2015,10 @@ static __latent_entropy struct task_struct *copy_process(
if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS))
return ERR_PTR(-EINVAL);
@@ -88,7 +88,7 @@ index 08969f5aa38d..ff601cb7a1fa 100644
/*
* Thread groups must share signals as well, and detached threads
* can only be started up within the thread group.
-@@ -3166,6 +3174,12 @@ int ksys_unshare(unsigned long unshare_flags)
+@@ -3171,6 +3179,12 @@ int ksys_unshare(unsigned long unshare_flags)
if (unshare_flags & CLONE_NEWNS)
unshare_flags |= CLONE_FS;
diff --git a/0002-drm-i915-improve-the-catch-all-evict-to-handle-lock-.patch b/0002-drm-i915-improve-the-catch-all-evict-to-handle-lock-.patch
index 79c0d9e02e16..f66fee63d0bd 100644
--- a/0002-drm-i915-improve-the-catch-all-evict-to-handle-lock-.patch
+++ b/0002-drm-i915-improve-the-catch-all-evict-to-handle-lock-.patch
@@ -1,4 +1,4 @@
-From c2337439f6d74e9f8e003e55c786839886bc4911 Mon Sep 17 00:00:00 2001
+From e3bf21dfa982692c41ec68c656f024863b0313d2 Mon Sep 17 00:00:00 2001
From: Matthew Auld <matthew.auld@intel.com>
Date: Tue, 6 Dec 2022 16:11:41 +0000
Subject: [PATCH 2/4] drm/i915: improve the catch-all evict to handle lock
@@ -92,7 +92,7 @@ index 845023c14eb3..094e92ed28db 100644
err = eb_reserve_vma(eb, ev, pin_flags);
if (err)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
-index 73d9eda1d6b7..c83d98e1dc5d 100644
+index e63329bc8065..354c1d6dab84 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
@@ -369,7 +369,7 @@ static vm_fault_t vm_fault_gtt(struct vm_fault *vmf)
diff --git a/0003-ALSA-hda-hdmi-Static-PCM-mapping-again-with-AMD-HDMI.patch b/0003-ALSA-hda-hdmi-Static-PCM-mapping-again-with-AMD-HDMI.patch
new file mode 100644
index 000000000000..eb417c58dfba
--- /dev/null
+++ b/0003-ALSA-hda-hdmi-Static-PCM-mapping-again-with-AMD-HDMI.patch
@@ -0,0 +1,115 @@
+From a0142b0ddd7b114b6aa707d0f2b97150190bfef6 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Wed, 28 Dec 2022 13:57:14 +0100
+Subject: [PATCH 3/4] ALSA: hda/hdmi: Static PCM mapping again with AMD HDMI
+ codecs
+
+The recent code refactoring for HD-audio HDMI codec driver caused a
+regression on AMD/ATI HDMI codecs; namely, PulseAudioand pipewire
+don't recognize HDMI outputs any longer while the direct output via
+ALSA raw access still works.
+
+The problem turned out that, after the code refactoring, the driver
+assumes only the dynamic PCM assignment, and when a PCM stream that
+still isn't assigned to any pin gets opened, the driver tries to
+assign any free converter to the PCM stream. This behavior is OK for
+Intel and other codecs, as they have arbitrary connections between
+pins and converters. OTOH, on AMD chips that have a 1:1 mapping
+between pins and converters, this may end up with blocking the open of
+the next PCM stream for the pin that is tied with the formerly taken
+converter.
+
+Also, with the code refactoring, more PCM streams are exposed than
+necessary as we assume all converters can be used, while this isn't
+true for AMD case. This may change the PCM stream assignment and
+confuse users as well.
+
+This patch fixes those problems by:
+
+- Introducing a flag spec->static_pcm_mapping, and if it's set, the
+ driver applies the static mapping between pins and converters at the
+ probe time
+- Limiting the number of PCM streams per pins, too; this avoids the
+ superfluous PCM streams
+
+Fixes: ef6f5494faf6 ("ALSA: hda/hdmi: Use only dynamic PCM device allocation")
+Cc: <stable@vger.kernel.org>
+Link: https://bugzilla.kernel.org/show_bug.cgi?id=216836
+Co-developed-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Link: https://lore.kernel.org/r/20221228125714.16329-1-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+---
+ sound/pci/hda/patch_hdmi.c | 27 +++++++++++++++++++--------
+ 1 file changed, 19 insertions(+), 8 deletions(-)
+
+diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
+index 8015e4471267..386dd9d9143f 100644
+--- a/sound/pci/hda/patch_hdmi.c
++++ b/sound/pci/hda/patch_hdmi.c
+@@ -167,6 +167,7 @@ struct hdmi_spec {
+ struct hdmi_ops ops;
+
+ bool dyn_pin_out;
++ bool static_pcm_mapping;
+ /* hdmi interrupt trigger control flag for Nvidia codec */
+ bool hdmi_intr_trig_ctrl;
+ bool nv_dp_workaround; /* workaround DP audio infoframe for Nvidia */
+@@ -1525,13 +1526,16 @@ static void update_eld(struct hda_codec *codec,
+ */
+ pcm_jack = pin_idx_to_pcm_jack(codec, per_pin);
+
+- if (eld->eld_valid) {
+- hdmi_attach_hda_pcm(spec, per_pin);
+- hdmi_pcm_setup_pin(spec, per_pin);
+- } else {
+- hdmi_pcm_reset_pin(spec, per_pin);
+- hdmi_detach_hda_pcm(spec, per_pin);
++ if (!spec->static_pcm_mapping) {
++ if (eld->eld_valid) {
++ hdmi_attach_hda_pcm(spec, per_pin);
++ hdmi_pcm_setup_pin(spec, per_pin);
++ } else {
++ hdmi_pcm_reset_pin(spec, per_pin);
++ hdmi_detach_hda_pcm(spec, per_pin);
++ }
+ }
++
+ /* if pcm_idx == -1, it means this is in monitor connection event
+ * we can get the correct pcm_idx now.
+ */
+@@ -2281,8 +2285,8 @@ static int generic_hdmi_build_pcms(struct hda_codec *codec)
+ struct hdmi_spec *spec = codec->spec;
+ int idx, pcm_num;
+
+- /* limit the PCM devices to the codec converters */
+- pcm_num = spec->num_cvts;
++ /* limit the PCM devices to the codec converters or available PINs */
++ pcm_num = min(spec->num_cvts, spec->num_pins);
+ codec_dbg(codec, "hdmi: pcm_num set to %d\n", pcm_num);
+
+ for (idx = 0; idx < pcm_num; idx++) {
+@@ -2379,6 +2383,11 @@ static int generic_hdmi_build_controls(struct hda_codec *codec)
+ struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx);
+ struct hdmi_eld *pin_eld = &per_pin->sink_eld;
+
++ if (spec->static_pcm_mapping) {
++ hdmi_attach_hda_pcm(spec, per_pin);
++ hdmi_pcm_setup_pin(spec, per_pin);
++ }
++
+ pin_eld->eld_valid = false;
+ hdmi_present_sense(per_pin, 0);
+ }
+@@ -4419,6 +4428,8 @@ static int patch_atihdmi(struct hda_codec *codec)
+
+ spec = codec->spec;
+
++ spec->static_pcm_mapping = true;
++
+ spec->ops.pin_get_eld = atihdmi_pin_get_eld;
+ spec->ops.pin_setup_infoframe = atihdmi_pin_setup_infoframe;
+ spec->ops.pin_hbr_setup = atihdmi_pin_hbr_setup;
+--
+2.39.0
+
diff --git a/0003-futex-Resend-potentially-swallowed-owner-death-notif.patch b/0003-futex-Resend-potentially-swallowed-owner-death-notif.patch
deleted file mode 100644
index 5ac537cb9140..000000000000
--- a/0003-futex-Resend-potentially-swallowed-owner-death-notif.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From 189603b802a2bb276b82a0a4f66528ad29156f46 Mon Sep 17 00:00:00 2001
-From: Alexey Izbyshev <izbyshev@ispras.ru>
-Date: Sat, 12 Nov 2022 00:54:39 +0300
-Subject: [PATCH 3/4] futex: Resend potentially swallowed owner death
- notification
-
-Commit ca16d5bee598 ("futex: Prevent robust futex exit race") addressed
-two cases when tasks waiting on a robust non-PI futex remained blocked
-despite the futex not being owned anymore:
-
-* if the owner died after writing zero to the futex word, but before
- waking up a waiter
-
-* if a task waiting on the futex was woken up, but died before updating
- the futex word (effectively swallowing the notification without acting
- on it)
-
-In the second case, the task could be woken up either by the previous
-owner (after the futex word was reset to zero) or by the kernel (after
-the OWNER_DIED bit was set and the TID part of the futex word was reset
-to zero) if the previous owner died without the resetting the futex.
-
-Because the referenced commit wakes up a potential waiter only if the
-whole futex word is zero, the latter subcase remains unaddressed.
-
-Fix this by looking only at the TID part of the futex when deciding
-whether a wake up is needed.
-
-Fixes: ca16d5bee598 ("futex: Prevent robust futex exit race")
-Signed-off-by: Alexey Izbyshev <izbyshev@ispras.ru>
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
-Link: https://lore.kernel.org/r/20221111215439.248185-1-izbyshev@ispras.ru
----
- kernel/futex/core.c | 26 +++++++++++++++++---------
- 1 file changed, 17 insertions(+), 9 deletions(-)
-
-diff --git a/kernel/futex/core.c b/kernel/futex/core.c
-index b22ef1efe751..514e4582b863 100644
---- a/kernel/futex/core.c
-+++ b/kernel/futex/core.c
-@@ -638,6 +638,7 @@ static int handle_futex_death(u32 __user *uaddr, struct task_struct *curr,
- bool pi, bool pending_op)
- {
- u32 uval, nval, mval;
-+ pid_t owner;
- int err;
-
- /* Futex address must be 32bit aligned */
-@@ -659,6 +660,10 @@ static int handle_futex_death(u32 __user *uaddr, struct task_struct *curr,
- * 2. A woken up waiter is killed before it can acquire the
- * futex in user space.
- *
-+ * In the second case, the wake up notification could be generated
-+ * by the unlock path in user space after setting the futex value
-+ * to zero or by the kernel after setting the OWNER_DIED bit below.
-+ *
- * In both cases the TID validation below prevents a wakeup of
- * potential waiters which can cause these waiters to block
- * forever.
-@@ -667,24 +672,27 @@ static int handle_futex_death(u32 __user *uaddr, struct task_struct *curr,
- *
- * 1) task->robust_list->list_op_pending != NULL
- * @pending_op == true
-- * 2) User space futex value == 0
-+ * 2) The owner part of user space futex value == 0
- * 3) Regular futex: @pi == false
- *
- * If these conditions are met, it is safe to attempt waking up a
- * potential waiter without touching the user space futex value and
-- * trying to set the OWNER_DIED bit. The user space futex value is
-- * uncontended and the rest of the user space mutex state is
-- * consistent, so a woken waiter will just take over the
-- * uncontended futex. Setting the OWNER_DIED bit would create
-- * inconsistent state and malfunction of the user space owner died
-- * handling.
-+ * trying to set the OWNER_DIED bit. If the futex value is zero,
-+ * the rest of the user space mutex state is consistent, so a woken
-+ * waiter will just take over the uncontended futex. Setting the
-+ * OWNER_DIED bit would create inconsistent state and malfunction
-+ * of the user space owner died handling. Otherwise, the OWNER_DIED
-+ * bit is already set, and the woken waiter is expected to deal with
-+ * this.
- */
-- if (pending_op && !pi && !uval) {
-+ owner = uval & FUTEX_TID_MASK;
-+
-+ if (pending_op && !pi && !owner) {
- futex_wake(uaddr, 1, 1, FUTEX_BITSET_MATCH_ANY);
- return 0;
- }
-
-- if ((uval & FUTEX_TID_MASK) != task_pid_vnr(curr))
-+ if (owner != task_pid_vnr(curr))
- return 0;
-
- /*
---
-2.39.0
-
diff --git a/PKGBUILD b/PKGBUILD
index 1c3cb282e710..943a3fc46777 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -68,7 +68,7 @@ _subarch=
### IMPORTANT: Do no edit below this line unless you know what you're doing
pkgbase=linux-ck
-pkgver=6.1.1
+pkgver=6.1.2
pkgrel=1
arch=(x86_64)
url="https://wiki.archlinux.org/index.php/Linux-ck"
@@ -92,20 +92,20 @@ source=(
"ck-hrtimer-$_commit.tar.gz::https://github.com/graysky2/linux-patches/archive/$_commit.tar.gz"
0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
0002-drm-i915-improve-the-catch-all-evict-to-handle-lock-.patch
- 0003-futex-Resend-potentially-swallowed-owner-death-notif.patch
+ 0003-ALSA-hda-hdmi-Static-PCM-mapping-again-with-AMD-HDMI.patch
)
validpgpkeys=(
'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
'647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
)
-sha256sums=('a3e61377cf4435a9e2966b409a37a1056f6aaa59e561add9125a88e3c0971dfb'
+sha256sums=('ee41f3c4f599b2f46f08aae428c9243db403e7292eb2c9f04ee34909b038d1ae'
'SKIP'
'0571ea17a2e38458096b679418197bbea8c414388f628d122517f3a1f3a31b3a'
'f1d586e111932890ad5e0df15d092fb9b3f87bae4ea17812aae9b0ec98fe2db0'
'6d3b9cb4639c1c5eb4e2697aed0dbffa5b4a37d63a0861dec8315dd052723e0e'
- '865fa8cc41186a42225e89c845d438aefae6332d1ef18b94ef3aae04deb5e784'
- '9c6191b355fcaf41cfeb92105ea0d24bbc51c993877d3fb5325f139997ede058'
- '748e40e3a4b889850e8f86aee7ff96a93d43476a6529316bd823e18e23fc82f8')
+ '00c7b866ba5393639d5ca2349883909ad6b1bedf6091e857c83f208e0838479c'
+ '0cde718acd7e96ce5f221db696459b145162196f6fb6b729e3f9231672c40df1'
+ '6d808871fc1bc318c193f021ca2680e1f2cd28802248fb16a350cf9c5ca3af7b')
prepare() {
cd linux-${pkgver}