Archive-only list for patches
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Takashi Iwai <tiwai@suse.de>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.12 187/215] ALSA: aoa: Use guard() for mutex locks
Date: Mon,  4 May 2026 15:53:26 +0200	[thread overview]
Message-ID: <20260504135137.105403341@linuxfoundation.org> (raw)
In-Reply-To: <20260504135130.169210693@linuxfoundation.org>

6.12-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Takashi Iwai <tiwai@suse.de>

[ Upstream commit 1cb6ecbb372002ef9e531c5377e5f60122411e40 ]

Replace the manual mutex lock/unlock pairs with guard() for code
simplification.

Only code refactoring, and no behavior change.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20250829151335.7342-14-tiwai@suse.de
Stable-dep-of: 5ed060d54915 ("ALSA: aoa: i2sbus: clear stale prepared state")
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 sound/aoa/codecs/onyx.c         |  104 +++++++++++-------------------------
 sound/aoa/codecs/tas.c          |  113 +++++++++++++---------------------------
 sound/aoa/core/gpio-feature.c   |   20 ++-----
 sound/aoa/core/gpio-pmf.c       |   26 +++------
 sound/aoa/soundbus/i2sbus/pcm.c |   76 ++++++++------------------
 5 files changed, 112 insertions(+), 227 deletions(-)

--- a/sound/aoa/codecs/onyx.c
+++ b/sound/aoa/codecs/onyx.c
@@ -122,10 +122,9 @@ static int onyx_snd_vol_get(struct snd_k
 	struct onyx *onyx = snd_kcontrol_chip(kcontrol);
 	s8 l, r;
 
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 	onyx_read_register(onyx, ONYX_REG_DAC_ATTEN_LEFT, &l);
 	onyx_read_register(onyx, ONYX_REG_DAC_ATTEN_RIGHT, &r);
-	mutex_unlock(&onyx->mutex);
 
 	ucontrol->value.integer.value[0] = l + VOLUME_RANGE_SHIFT;
 	ucontrol->value.integer.value[1] = r + VOLUME_RANGE_SHIFT;
@@ -146,15 +145,13 @@ static int onyx_snd_vol_put(struct snd_k
 	    ucontrol->value.integer.value[1] > -1 + VOLUME_RANGE_SHIFT)
 		return -EINVAL;
 
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 	onyx_read_register(onyx, ONYX_REG_DAC_ATTEN_LEFT, &l);
 	onyx_read_register(onyx, ONYX_REG_DAC_ATTEN_RIGHT, &r);
 
 	if (l + VOLUME_RANGE_SHIFT == ucontrol->value.integer.value[0] &&
-	    r + VOLUME_RANGE_SHIFT == ucontrol->value.integer.value[1]) {
-		mutex_unlock(&onyx->mutex);
+	    r + VOLUME_RANGE_SHIFT == ucontrol->value.integer.value[1])
 		return 0;
-	}
 
 	onyx_write_register(onyx, ONYX_REG_DAC_ATTEN_LEFT,
 			    ucontrol->value.integer.value[0]
@@ -162,7 +159,6 @@ static int onyx_snd_vol_put(struct snd_k
 	onyx_write_register(onyx, ONYX_REG_DAC_ATTEN_RIGHT,
 			    ucontrol->value.integer.value[1]
 			     - VOLUME_RANGE_SHIFT);
-	mutex_unlock(&onyx->mutex);
 
 	return 1;
 }
@@ -198,9 +194,8 @@ static int onyx_snd_inputgain_get(struct
 	struct onyx *onyx = snd_kcontrol_chip(kcontrol);
 	u8 ig;
 
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 	onyx_read_register(onyx, ONYX_REG_ADC_CONTROL, &ig);
-	mutex_unlock(&onyx->mutex);
 
 	ucontrol->value.integer.value[0] =
 		(ig & ONYX_ADC_PGA_GAIN_MASK) + INPUTGAIN_RANGE_SHIFT;
@@ -217,14 +212,13 @@ static int onyx_snd_inputgain_put(struct
 	if (ucontrol->value.integer.value[0] < 3 + INPUTGAIN_RANGE_SHIFT ||
 	    ucontrol->value.integer.value[0] > 28 + INPUTGAIN_RANGE_SHIFT)
 		return -EINVAL;
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 	onyx_read_register(onyx, ONYX_REG_ADC_CONTROL, &v);
 	n = v;
 	n &= ~ONYX_ADC_PGA_GAIN_MASK;
 	n |= (ucontrol->value.integer.value[0] - INPUTGAIN_RANGE_SHIFT)
 		& ONYX_ADC_PGA_GAIN_MASK;
 	onyx_write_register(onyx, ONYX_REG_ADC_CONTROL, n);
-	mutex_unlock(&onyx->mutex);
 
 	return n != v;
 }
@@ -252,9 +246,8 @@ static int onyx_snd_capture_source_get(s
 	struct onyx *onyx = snd_kcontrol_chip(kcontrol);
 	s8 v;
 
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 	onyx_read_register(onyx, ONYX_REG_ADC_CONTROL, &v);
-	mutex_unlock(&onyx->mutex);
 
 	ucontrol->value.enumerated.item[0] = !!(v&ONYX_ADC_INPUT_MIC);
 
@@ -265,13 +258,12 @@ static void onyx_set_capture_source(stru
 {
 	s8 v;
 
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 	onyx_read_register(onyx, ONYX_REG_ADC_CONTROL, &v);
 	v &= ~ONYX_ADC_INPUT_MIC;
 	if (mic)
 		v |= ONYX_ADC_INPUT_MIC;
 	onyx_write_register(onyx, ONYX_REG_ADC_CONTROL, v);
-	mutex_unlock(&onyx->mutex);
 }
 
 static int onyx_snd_capture_source_put(struct snd_kcontrol *kcontrol,
@@ -312,9 +304,8 @@ static int onyx_snd_mute_get(struct snd_
 	struct onyx *onyx = snd_kcontrol_chip(kcontrol);
 	u8 c;
 
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 	onyx_read_register(onyx, ONYX_REG_DAC_CONTROL, &c);
-	mutex_unlock(&onyx->mutex);
 
 	ucontrol->value.integer.value[0] = !(c & ONYX_MUTE_LEFT);
 	ucontrol->value.integer.value[1] = !(c & ONYX_MUTE_RIGHT);
@@ -329,9 +320,9 @@ static int onyx_snd_mute_put(struct snd_
 	u8 v = 0, c = 0;
 	int err = -EBUSY;
 
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 	if (onyx->analog_locked)
-		goto out_unlock;
+		return -EBUSY;
 
 	onyx_read_register(onyx, ONYX_REG_DAC_CONTROL, &v);
 	c = v;
@@ -342,9 +333,6 @@ static int onyx_snd_mute_put(struct snd_
 		c |= ONYX_MUTE_RIGHT;
 	err = onyx_write_register(onyx, ONYX_REG_DAC_CONTROL, c);
 
- out_unlock:
-	mutex_unlock(&onyx->mutex);
-
 	return !err ? (v != c) : err;
 }
 
@@ -373,9 +361,8 @@ static int onyx_snd_single_bit_get(struc
 	u8 address = (pv >> 8) & 0xff;
 	u8 mask = pv & 0xff;
 
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 	onyx_read_register(onyx, address, &c);
-	mutex_unlock(&onyx->mutex);
 
 	ucontrol->value.integer.value[0] = !!(c & mask) ^ polarity;
 
@@ -394,11 +381,10 @@ static int onyx_snd_single_bit_put(struc
 	u8 address = (pv >> 8) & 0xff;
 	u8 mask = pv & 0xff;
 
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 	if (spdiflock && onyx->spdif_locked) {
 		/* even if alsamixer doesn't care.. */
-		err = -EBUSY;
-		goto out_unlock;
+		return -EBUSY;
 	}
 	onyx_read_register(onyx, address, &v);
 	c = v;
@@ -407,9 +393,6 @@ static int onyx_snd_single_bit_put(struc
 		c |= mask;
 	err = onyx_write_register(onyx, address, c);
 
- out_unlock:
-	mutex_unlock(&onyx->mutex);
-
 	return !err ? (v != c) : err;
 }
 
@@ -490,7 +473,7 @@ static int onyx_spdif_get(struct snd_kco
 	struct onyx *onyx = snd_kcontrol_chip(kcontrol);
 	u8 v;
 
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 	onyx_read_register(onyx, ONYX_REG_DIG_INFO1, &v);
 	ucontrol->value.iec958.status[0] = v & 0x3e;
 
@@ -502,7 +485,6 @@ static int onyx_spdif_get(struct snd_kco
 
 	onyx_read_register(onyx, ONYX_REG_DIG_INFO4, &v);
 	ucontrol->value.iec958.status[4] = v & 0x0f;
-	mutex_unlock(&onyx->mutex);
 
 	return 0;
 }
@@ -513,7 +495,7 @@ static int onyx_spdif_put(struct snd_kco
 	struct onyx *onyx = snd_kcontrol_chip(kcontrol);
 	u8 v;
 
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 	onyx_read_register(onyx, ONYX_REG_DIG_INFO1, &v);
 	v = (v & ~0x3e) | (ucontrol->value.iec958.status[0] & 0x3e);
 	onyx_write_register(onyx, ONYX_REG_DIG_INFO1, v);
@@ -528,7 +510,6 @@ static int onyx_spdif_put(struct snd_kco
 	onyx_read_register(onyx, ONYX_REG_DIG_INFO4, &v);
 	v = (v & ~0x0f) | (ucontrol->value.iec958.status[4] & 0x0f);
 	onyx_write_register(onyx, ONYX_REG_DIG_INFO4, v);
-	mutex_unlock(&onyx->mutex);
 
 	return 1;
 }
@@ -673,14 +654,13 @@ static int onyx_usable(struct codec_info
 	struct onyx *onyx = cii->codec_data;
 	int spdif_enabled, analog_enabled;
 
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 	onyx_read_register(onyx, ONYX_REG_DIG_INFO4, &v);
 	spdif_enabled = !!(v & ONYX_SPDIF_ENABLE);
 	onyx_read_register(onyx, ONYX_REG_DAC_CONTROL, &v);
 	analog_enabled =
 		(v & (ONYX_MUTE_RIGHT|ONYX_MUTE_LEFT))
 		 != (ONYX_MUTE_RIGHT|ONYX_MUTE_LEFT);
-	mutex_unlock(&onyx->mutex);
 
 	switch (ti->tag) {
 	case 0: return 1;
@@ -696,9 +676,8 @@ static int onyx_prepare(struct codec_inf
 {
 	u8 v;
 	struct onyx *onyx = cii->codec_data;
-	int err = -EBUSY;
 
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 
 #ifdef SNDRV_PCM_FMTBIT_COMPRESSED_16BE
 	if (substream->runtime->format == SNDRV_PCM_FMTBIT_COMPRESSED_16BE) {
@@ -707,10 +686,9 @@ static int onyx_prepare(struct codec_inf
 		if (onyx_write_register(onyx,
 					ONYX_REG_DAC_CONTROL,
 					v | ONYX_MUTE_RIGHT | ONYX_MUTE_LEFT))
-			goto out_unlock;
+			return -EBUSY;
 		onyx->analog_locked = 1;
-		err = 0;
-		goto out_unlock;
+		return 0;
 	}
 #endif
 	switch (substream->runtime->rate) {
@@ -720,8 +698,7 @@ static int onyx_prepare(struct codec_inf
 		/* these rates are ok for all outputs */
 		/* FIXME: program spdif channel control bits here so that
 		 *	  userspace doesn't have to if it only plays pcm! */
-		err = 0;
-		goto out_unlock;
+		return 0;
 	default:
 		/* got some rate that the digital output can't do,
 		 * so disable and lock it */
@@ -729,16 +706,12 @@ static int onyx_prepare(struct codec_inf
 		if (onyx_write_register(onyx,
 					ONYX_REG_DIG_INFO4,
 					v & ~ONYX_SPDIF_ENABLE))
-			goto out_unlock;
+			return -EBUSY;
 		onyx->spdif_locked = 1;
-		err = 0;
-		goto out_unlock;
+		return 0;
 	}
 
- out_unlock:
-	mutex_unlock(&onyx->mutex);
-
-	return err;
+	return -EBUSY;
 }
 
 static int onyx_open(struct codec_info_item *cii,
@@ -746,9 +719,8 @@ static int onyx_open(struct codec_info_i
 {
 	struct onyx *onyx = cii->codec_data;
 
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 	onyx->open_count++;
-	mutex_unlock(&onyx->mutex);
 
 	return 0;
 }
@@ -758,11 +730,10 @@ static int onyx_close(struct codec_info_
 {
 	struct onyx *onyx = cii->codec_data;
 
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 	onyx->open_count--;
 	if (!onyx->open_count)
 		onyx->spdif_locked = onyx->analog_locked = 0;
-	mutex_unlock(&onyx->mutex);
 
 	return 0;
 }
@@ -772,7 +743,7 @@ static int onyx_switch_clock(struct code
 {
 	struct onyx *onyx = cii->codec_data;
 
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 	/* this *MUST* be more elaborate later... */
 	switch (what) {
 	case CLOCK_SWITCH_PREPARE_SLAVE:
@@ -784,7 +755,6 @@ static int onyx_switch_clock(struct code
 	default: /* silence warning */
 		break;
 	}
-	mutex_unlock(&onyx->mutex);
 
 	return 0;
 }
@@ -795,27 +765,21 @@ static int onyx_suspend(struct codec_inf
 {
 	struct onyx *onyx = cii->codec_data;
 	u8 v;
-	int err = -ENXIO;
 
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 	if (onyx_read_register(onyx, ONYX_REG_CONTROL, &v))
-		goto out_unlock;
+		return -ENXIO;
 	onyx_write_register(onyx, ONYX_REG_CONTROL, v | ONYX_ADPSV | ONYX_DAPSV);
 	/* Apple does a sleep here but the datasheet says to do it on resume */
-	err = 0;
- out_unlock:
-	mutex_unlock(&onyx->mutex);
-
-	return err;
+	return 0;
 }
 
 static int onyx_resume(struct codec_info_item *cii)
 {
 	struct onyx *onyx = cii->codec_data;
 	u8 v;
-	int err = -ENXIO;
 
-	mutex_lock(&onyx->mutex);
+	guard(mutex)(&onyx->mutex);
 
 	/* reset codec */
 	onyx->codec.gpio->methods->set_hw_reset(onyx->codec.gpio, 0);
@@ -827,17 +791,13 @@ static int onyx_resume(struct codec_info
 
 	/* take codec out of suspend (if it still is after reset) */
 	if (onyx_read_register(onyx, ONYX_REG_CONTROL, &v))
-		goto out_unlock;
+		return -ENXIO;
 	onyx_write_register(onyx, ONYX_REG_CONTROL, v & ~(ONYX_ADPSV | ONYX_DAPSV));
 	/* FIXME: should divide by sample rate, but 8k is the lowest we go */
 	msleep(2205000/8000);
 	/* reset all values */
 	onyx_register_init(onyx);
-	err = 0;
- out_unlock:
-	mutex_unlock(&onyx->mutex);
-
-	return err;
+	return 0;
 }
 
 #endif /* CONFIG_PM */
--- a/sound/aoa/codecs/tas.c
+++ b/sound/aoa/codecs/tas.c
@@ -235,10 +235,9 @@ static int tas_snd_vol_get(struct snd_kc
 {
 	struct tas *tas = snd_kcontrol_chip(kcontrol);
 
-	mutex_lock(&tas->mtx);
+	guard(mutex)(&tas->mtx);
 	ucontrol->value.integer.value[0] = tas->cached_volume_l;
 	ucontrol->value.integer.value[1] = tas->cached_volume_r;
-	mutex_unlock(&tas->mtx);
 	return 0;
 }
 
@@ -254,18 +253,15 @@ static int tas_snd_vol_put(struct snd_kc
 	    ucontrol->value.integer.value[1] > 177)
 		return -EINVAL;
 
-	mutex_lock(&tas->mtx);
+	guard(mutex)(&tas->mtx);
 	if (tas->cached_volume_l == ucontrol->value.integer.value[0]
-	 && tas->cached_volume_r == ucontrol->value.integer.value[1]) {
-		mutex_unlock(&tas->mtx);
+	 && tas->cached_volume_r == ucontrol->value.integer.value[1])
 		return 0;
-	}
 
 	tas->cached_volume_l = ucontrol->value.integer.value[0];
 	tas->cached_volume_r = ucontrol->value.integer.value[1];
 	if (tas->hw_enabled)
 		tas_set_volume(tas);
-	mutex_unlock(&tas->mtx);
 	return 1;
 }
 
@@ -285,10 +281,9 @@ static int tas_snd_mute_get(struct snd_k
 {
 	struct tas *tas = snd_kcontrol_chip(kcontrol);
 
-	mutex_lock(&tas->mtx);
+	guard(mutex)(&tas->mtx);
 	ucontrol->value.integer.value[0] = !tas->mute_l;
 	ucontrol->value.integer.value[1] = !tas->mute_r;
-	mutex_unlock(&tas->mtx);
 	return 0;
 }
 
@@ -297,18 +292,15 @@ static int tas_snd_mute_put(struct snd_k
 {
 	struct tas *tas = snd_kcontrol_chip(kcontrol);
 
-	mutex_lock(&tas->mtx);
+	guard(mutex)(&tas->mtx);
 	if (tas->mute_l == !ucontrol->value.integer.value[0]
-	 && tas->mute_r == !ucontrol->value.integer.value[1]) {
-		mutex_unlock(&tas->mtx);
+	 && tas->mute_r == !ucontrol->value.integer.value[1])
 		return 0;
-	}
 
 	tas->mute_l = !ucontrol->value.integer.value[0];
 	tas->mute_r = !ucontrol->value.integer.value[1];
 	if (tas->hw_enabled)
 		tas_set_volume(tas);
-	mutex_unlock(&tas->mtx);
 	return 1;
 }
 
@@ -337,10 +329,9 @@ static int tas_snd_mixer_get(struct snd_
 	struct tas *tas = snd_kcontrol_chip(kcontrol);
 	int idx = kcontrol->private_value;
 
-	mutex_lock(&tas->mtx);
+	guard(mutex)(&tas->mtx);
 	ucontrol->value.integer.value[0] = tas->mixer_l[idx];
 	ucontrol->value.integer.value[1] = tas->mixer_r[idx];
-	mutex_unlock(&tas->mtx);
 
 	return 0;
 }
@@ -351,19 +342,16 @@ static int tas_snd_mixer_put(struct snd_
 	struct tas *tas = snd_kcontrol_chip(kcontrol);
 	int idx = kcontrol->private_value;
 
-	mutex_lock(&tas->mtx);
+	guard(mutex)(&tas->mtx);
 	if (tas->mixer_l[idx] == ucontrol->value.integer.value[0]
-	 && tas->mixer_r[idx] == ucontrol->value.integer.value[1]) {
-		mutex_unlock(&tas->mtx);
+	 && tas->mixer_r[idx] == ucontrol->value.integer.value[1])
 		return 0;
-	}
 
 	tas->mixer_l[idx] = ucontrol->value.integer.value[0];
 	tas->mixer_r[idx] = ucontrol->value.integer.value[1];
 
 	if (tas->hw_enabled)
 		tas_set_mixer(tas);
-	mutex_unlock(&tas->mtx);
 	return 1;
 }
 
@@ -396,9 +384,8 @@ static int tas_snd_drc_range_get(struct
 {
 	struct tas *tas = snd_kcontrol_chip(kcontrol);
 
-	mutex_lock(&tas->mtx);
+	guard(mutex)(&tas->mtx);
 	ucontrol->value.integer.value[0] = tas->drc_range;
-	mutex_unlock(&tas->mtx);
 	return 0;
 }
 
@@ -411,16 +398,13 @@ static int tas_snd_drc_range_put(struct
 	    ucontrol->value.integer.value[0] > TAS3004_DRC_MAX)
 		return -EINVAL;
 
-	mutex_lock(&tas->mtx);
-	if (tas->drc_range == ucontrol->value.integer.value[0]) {
-		mutex_unlock(&tas->mtx);
+	guard(mutex)(&tas->mtx);
+	if (tas->drc_range == ucontrol->value.integer.value[0])
 		return 0;
-	}
 
 	tas->drc_range = ucontrol->value.integer.value[0];
 	if (tas->hw_enabled)
 		tas3004_set_drc(tas);
-	mutex_unlock(&tas->mtx);
 	return 1;
 }
 
@@ -440,9 +424,8 @@ static int tas_snd_drc_switch_get(struct
 {
 	struct tas *tas = snd_kcontrol_chip(kcontrol);
 
-	mutex_lock(&tas->mtx);
+	guard(mutex)(&tas->mtx);
 	ucontrol->value.integer.value[0] = tas->drc_enabled;
-	mutex_unlock(&tas->mtx);
 	return 0;
 }
 
@@ -451,16 +434,13 @@ static int tas_snd_drc_switch_put(struct
 {
 	struct tas *tas = snd_kcontrol_chip(kcontrol);
 
-	mutex_lock(&tas->mtx);
-	if (tas->drc_enabled == ucontrol->value.integer.value[0]) {
-		mutex_unlock(&tas->mtx);
+	guard(mutex)(&tas->mtx);
+	if (tas->drc_enabled == ucontrol->value.integer.value[0])
 		return 0;
-	}
 
 	tas->drc_enabled = !!ucontrol->value.integer.value[0];
 	if (tas->hw_enabled)
 		tas3004_set_drc(tas);
-	mutex_unlock(&tas->mtx);
 	return 1;
 }
 
@@ -486,9 +466,8 @@ static int tas_snd_capture_source_get(st
 {
 	struct tas *tas = snd_kcontrol_chip(kcontrol);
 
-	mutex_lock(&tas->mtx);
+	guard(mutex)(&tas->mtx);
 	ucontrol->value.enumerated.item[0] = !!(tas->acr & TAS_ACR_INPUT_B);
-	mutex_unlock(&tas->mtx);
 	return 0;
 }
 
@@ -500,7 +479,7 @@ static int tas_snd_capture_source_put(st
 
 	if (ucontrol->value.enumerated.item[0] > 1)
 		return -EINVAL;
-	mutex_lock(&tas->mtx);
+	guard(mutex)(&tas->mtx);
 	oldacr = tas->acr;
 
 	/*
@@ -512,13 +491,10 @@ static int tas_snd_capture_source_put(st
 	if (ucontrol->value.enumerated.item[0])
 		tas->acr |= TAS_ACR_INPUT_B | TAS_ACR_B_MONAUREAL |
 		      TAS_ACR_B_MON_SEL_RIGHT;
-	if (oldacr == tas->acr) {
-		mutex_unlock(&tas->mtx);
+	if (oldacr == tas->acr)
 		return 0;
-	}
 	if (tas->hw_enabled)
 		tas_write_reg(tas, TAS_REG_ACR, 1, &tas->acr);
-	mutex_unlock(&tas->mtx);
 	return 1;
 }
 
@@ -557,9 +533,8 @@ static int tas_snd_treble_get(struct snd
 {
 	struct tas *tas = snd_kcontrol_chip(kcontrol);
 
-	mutex_lock(&tas->mtx);
+	guard(mutex)(&tas->mtx);
 	ucontrol->value.integer.value[0] = tas->treble;
-	mutex_unlock(&tas->mtx);
 	return 0;
 }
 
@@ -571,16 +546,13 @@ static int tas_snd_treble_put(struct snd
 	if (ucontrol->value.integer.value[0] < TAS3004_TREBLE_MIN ||
 	    ucontrol->value.integer.value[0] > TAS3004_TREBLE_MAX)
 		return -EINVAL;
-	mutex_lock(&tas->mtx);
-	if (tas->treble == ucontrol->value.integer.value[0]) {
-		mutex_unlock(&tas->mtx);
+	guard(mutex)(&tas->mtx);
+	if (tas->treble == ucontrol->value.integer.value[0])
 		return 0;
-	}
 
 	tas->treble = ucontrol->value.integer.value[0];
 	if (tas->hw_enabled)
 		tas_set_treble(tas);
-	mutex_unlock(&tas->mtx);
 	return 1;
 }
 
@@ -608,9 +580,8 @@ static int tas_snd_bass_get(struct snd_k
 {
 	struct tas *tas = snd_kcontrol_chip(kcontrol);
 
-	mutex_lock(&tas->mtx);
+	guard(mutex)(&tas->mtx);
 	ucontrol->value.integer.value[0] = tas->bass;
-	mutex_unlock(&tas->mtx);
 	return 0;
 }
 
@@ -622,16 +593,13 @@ static int tas_snd_bass_put(struct snd_k
 	if (ucontrol->value.integer.value[0] < TAS3004_BASS_MIN ||
 	    ucontrol->value.integer.value[0] > TAS3004_BASS_MAX)
 		return -EINVAL;
-	mutex_lock(&tas->mtx);
-	if (tas->bass == ucontrol->value.integer.value[0]) {
-		mutex_unlock(&tas->mtx);
+	guard(mutex)(&tas->mtx);
+	if (tas->bass == ucontrol->value.integer.value[0])
 		return 0;
-	}
 
 	tas->bass = ucontrol->value.integer.value[0];
 	if (tas->hw_enabled)
 		tas_set_bass(tas);
-	mutex_unlock(&tas->mtx);
 	return 1;
 }
 
@@ -722,13 +690,13 @@ static int tas_switch_clock(struct codec
 		break;
 	case CLOCK_SWITCH_SLAVE:
 		/* Clocks are back, re-init the codec */
-		mutex_lock(&tas->mtx);
-		tas_reset_init(tas);
-		tas_set_volume(tas);
-		tas_set_mixer(tas);
-		tas->hw_enabled = 1;
-		tas->codec.gpio->methods->all_amps_restore(tas->codec.gpio);
-		mutex_unlock(&tas->mtx);
+		scoped_guard(mutex, &tas->mtx) {
+			tas_reset_init(tas);
+			tas_set_volume(tas);
+			tas_set_mixer(tas);
+			tas->hw_enabled = 1;
+			tas->codec.gpio->methods->all_amps_restore(tas->codec.gpio);
+		}
 		break;
 	default:
 		/* doesn't happen as of now */
@@ -743,23 +711,21 @@ static int tas_switch_clock(struct codec
  * our i2c device is suspended, and then take note of that! */
 static int tas_suspend(struct tas *tas)
 {
-	mutex_lock(&tas->mtx);
+	guard(mutex)(&tas->mtx);
 	tas->hw_enabled = 0;
 	tas->acr |= TAS_ACR_ANALOG_PDOWN;
 	tas_write_reg(tas, TAS_REG_ACR, 1, &tas->acr);
-	mutex_unlock(&tas->mtx);
 	return 0;
 }
 
 static int tas_resume(struct tas *tas)
 {
 	/* reset codec */
-	mutex_lock(&tas->mtx);
+	guard(mutex)(&tas->mtx);
 	tas_reset_init(tas);
 	tas_set_volume(tas);
 	tas_set_mixer(tas);
 	tas->hw_enabled = 1;
-	mutex_unlock(&tas->mtx);
 	return 0;
 }
 
@@ -802,14 +768,13 @@ static int tas_init_codec(struct aoa_cod
 		return -EINVAL;
 	}
 
-	mutex_lock(&tas->mtx);
-	if (tas_reset_init(tas)) {
-		printk(KERN_ERR PFX "tas failed to initialise\n");
-		mutex_unlock(&tas->mtx);
-		return -ENXIO;
+	scoped_guard(mutex, &tas->mtx) {
+		if (tas_reset_init(tas)) {
+			printk(KERN_ERR PFX "tas failed to initialise\n");
+			return -ENXIO;
+		}
+		tas->hw_enabled = 1;
 	}
-	tas->hw_enabled = 1;
-	mutex_unlock(&tas->mtx);
 
 	if (tas->codec.soundbus_dev->attach_codec(tas->codec.soundbus_dev,
 						   aoa_get_card(),
--- a/sound/aoa/core/gpio-feature.c
+++ b/sound/aoa/core/gpio-feature.c
@@ -212,10 +212,9 @@ static void ftr_handle_notify(struct wor
 	struct gpio_notification *notif =
 		container_of(work, struct gpio_notification, work.work);
 
-	mutex_lock(&notif->mutex);
+	guard(mutex)(&notif->mutex);
 	if (notif->notify)
 		notif->notify(notif->data);
-	mutex_unlock(&notif->mutex);
 }
 
 static void gpio_enable_dual_edge(int gpio)
@@ -341,19 +340,17 @@ static int ftr_set_notify(struct gpio_ru
 	if (!irq)
 		return -ENODEV;
 
-	mutex_lock(&notif->mutex);
+	guard(mutex)(&notif->mutex);
 
 	old = notif->notify;
 
-	if (!old && !notify) {
-		err = 0;
-		goto out_unlock;
-	}
+	if (!old && !notify)
+		return 0;
 
 	if (old && notify) {
 		if (old == notify && notif->data == data)
 			err = 0;
-		goto out_unlock;
+		return err;
 	}
 
 	if (old && !notify)
@@ -362,16 +359,13 @@ static int ftr_set_notify(struct gpio_ru
 	if (!old && notify) {
 		err = request_irq(irq, ftr_handle_notify_irq, 0, name, notif);
 		if (err)
-			goto out_unlock;
+			return err;
 	}
 
 	notif->notify = notify;
 	notif->data = data;
 
-	err = 0;
- out_unlock:
-	mutex_unlock(&notif->mutex);
-	return err;
+	return 0;
 }
 
 static int ftr_get_detect(struct gpio_runtime *rt,
--- a/sound/aoa/core/gpio-pmf.c
+++ b/sound/aoa/core/gpio-pmf.c
@@ -74,10 +74,9 @@ static void pmf_handle_notify(struct wor
 	struct gpio_notification *notif =
 		container_of(work, struct gpio_notification, work.work);
 
-	mutex_lock(&notif->mutex);
+	guard(mutex)(&notif->mutex);
 	if (notif->notify)
 		notif->notify(notif->data);
-	mutex_unlock(&notif->mutex);
 }
 
 static void pmf_gpio_init(struct gpio_runtime *rt)
@@ -154,19 +153,17 @@ static int pmf_set_notify(struct gpio_ru
 		return -EINVAL;
 	}
 
-	mutex_lock(&notif->mutex);
+	guard(mutex)(&notif->mutex);
 
 	old = notif->notify;
 
-	if (!old && !notify) {
-		err = 0;
-		goto out_unlock;
-	}
+	if (!old && !notify)
+		return 0;
 
 	if (old && notify) {
 		if (old == notify && notif->data == data)
 			err = 0;
-		goto out_unlock;
+		return err;
 	}
 
 	if (old && !notify) {
@@ -178,10 +175,8 @@ static int pmf_set_notify(struct gpio_ru
 	if (!old && notify) {
 		irq_client = kzalloc(sizeof(struct pmf_irq_client),
 				     GFP_KERNEL);
-		if (!irq_client) {
-			err = -ENOMEM;
-			goto out_unlock;
-		}
+		if (!irq_client)
+			return -ENOMEM;
 		irq_client->data = notif;
 		irq_client->handler = pmf_handle_notify_irq;
 		irq_client->owner = THIS_MODULE;
@@ -192,17 +187,14 @@ static int pmf_set_notify(struct gpio_ru
 			printk(KERN_ERR "snd-aoa: gpio layer failed to"
 					" register %s irq (%d)\n", name, err);
 			kfree(irq_client);
-			goto out_unlock;
+			return err;
 		}
 		notif->gpio_private = irq_client;
 	}
 	notif->notify = notify;
 	notif->data = data;
 
-	err = 0;
- out_unlock:
-	mutex_unlock(&notif->mutex);
-	return err;
+	return 0;
 }
 
 static int pmf_get_detect(struct gpio_runtime *rt,
--- a/sound/aoa/soundbus/i2sbus/pcm.c
+++ b/sound/aoa/soundbus/i2sbus/pcm.c
@@ -79,11 +79,10 @@ static int i2sbus_pcm_open(struct i2sbus
 	u64 formats = 0;
 	unsigned int rates = 0;
 	struct transfer_info v;
-	int result = 0;
 	int bus_factor = 0, sysclock_factor = 0;
 	int found_this;
 
-	mutex_lock(&i2sdev->lock);
+	guard(mutex)(&i2sdev->lock);
 
 	get_pcm_info(i2sdev, in, &pi, &other);
 
@@ -92,8 +91,7 @@ static int i2sbus_pcm_open(struct i2sbus
 
 	if (pi->active) {
 		/* alsa messed up */
-		result = -EBUSY;
-		goto out_unlock;
+		return -EBUSY;
 	}
 
 	/* we now need to assign the hw */
@@ -117,10 +115,8 @@ static int i2sbus_pcm_open(struct i2sbus
 			ti++;
 		}
 	}
-	if (!masks_inited || !bus_factor || !sysclock_factor) {
-		result = -ENODEV;
-		goto out_unlock;
-	}
+	if (!masks_inited || !bus_factor || !sysclock_factor)
+		return -ENODEV;
 	/* bus dependent stuff */
 	hw->info = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID |
 		   SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_RESUME |
@@ -194,15 +190,12 @@ static int i2sbus_pcm_open(struct i2sbus
 	hw->periods_max = MAX_DBDMA_COMMANDS;
 	err = snd_pcm_hw_constraint_integer(pi->substream->runtime,
 					    SNDRV_PCM_HW_PARAM_PERIODS);
-	if (err < 0) {
-		result = err;
-		goto out_unlock;
-	}
+	if (err < 0)
+		return err;
 	list_for_each_entry(cii, &sdev->codec_list, list) {
 		if (cii->codec->open) {
 			err = cii->codec->open(cii, pi->substream);
 			if (err) {
-				result = err;
 				/* unwind */
 				found_this = 0;
 				list_for_each_entry_reverse(rev,
@@ -214,14 +207,12 @@ static int i2sbus_pcm_open(struct i2sbus
 					if (rev == cii)
 						found_this = 1;
 				}
-				goto out_unlock;
+				return err;
 			}
 		}
 	}
 
- out_unlock:
-	mutex_unlock(&i2sdev->lock);
-	return result;
+	return 0;
 }
 
 #undef CHECK_RATE
@@ -232,7 +223,7 @@ static int i2sbus_pcm_close(struct i2sbu
 	struct pcm_info *pi;
 	int err = 0, tmp;
 
-	mutex_lock(&i2sdev->lock);
+	guard(mutex)(&i2sdev->lock);
 
 	get_pcm_info(i2sdev, in, &pi, NULL);
 
@@ -246,7 +237,6 @@ static int i2sbus_pcm_close(struct i2sbu
 
 	pi->substream = NULL;
 	pi->active = 0;
-	mutex_unlock(&i2sdev->lock);
 	return err;
 }
 
@@ -330,33 +320,26 @@ static int i2sbus_pcm_prepare(struct i2s
 	int input_16bit;
 	struct pcm_info *pi, *other;
 	int cnt;
-	int result = 0;
 	unsigned int cmd, stopaddr;
 
-	mutex_lock(&i2sdev->lock);
+	guard(mutex)(&i2sdev->lock);
 
 	get_pcm_info(i2sdev, in, &pi, &other);
 
-	if (pi->dbdma_ring.running) {
-		result = -EBUSY;
-		goto out_unlock;
-	}
+	if (pi->dbdma_ring.running)
+		return -EBUSY;
 	if (pi->dbdma_ring.stopping)
 		i2sbus_wait_for_stop(i2sdev, pi);
 
-	if (!pi->substream || !pi->substream->runtime) {
-		result = -EINVAL;
-		goto out_unlock;
-	}
+	if (!pi->substream || !pi->substream->runtime)
+		return -EINVAL;
 
 	runtime = pi->substream->runtime;
 	pi->active = 1;
 	if (other->active &&
 	    ((i2sdev->format != runtime->format)
-	     || (i2sdev->rate != runtime->rate))) {
-		result = -EINVAL;
-		goto out_unlock;
-	}
+	     || (i2sdev->rate != runtime->rate)))
+		return -EINVAL;
 
 	i2sdev->format = runtime->format;
 	i2sdev->rate = runtime->rate;
@@ -412,10 +395,8 @@ static int i2sbus_pcm_prepare(struct i2s
 			bi.bus_factor = cii->codec->bus_factor;
 			break;
 		}
-		if (!bi.bus_factor) {
-			result = -ENODEV;
-			goto out_unlock;
-		}
+		if (!bi.bus_factor)
+			return -ENODEV;
 		input_16bit = 1;
 		break;
 	case SNDRV_PCM_FORMAT_S32_BE:
@@ -426,8 +407,7 @@ static int i2sbus_pcm_prepare(struct i2s
 		input_16bit = 0;
 		break;
 	default:
-		result = -EINVAL;
-		goto out_unlock;
+		return -EINVAL;
 	}
 	/* we assume all sysclocks are the same! */
 	list_for_each_entry(cii, &i2sdev->sound.codec_list, list) {
@@ -438,10 +418,8 @@ static int i2sbus_pcm_prepare(struct i2s
 	if (clock_and_divisors(bi.sysclock_factor,
 			       bi.bus_factor,
 			       runtime->rate,
-			       &sfr) < 0) {
-		result = -EINVAL;
-		goto out_unlock;
-	}
+			       &sfr) < 0)
+		return -EINVAL;
 	switch (bi.bus_factor) {
 	case 32:
 		sfr |= I2S_SF_SERIAL_FORMAT_I2S_32X;
@@ -457,10 +435,8 @@ static int i2sbus_pcm_prepare(struct i2s
 		int err = 0;
 		if (cii->codec->prepare)
 			err = cii->codec->prepare(cii, &bi, pi->substream);
-		if (err) {
-			result = err;
-			goto out_unlock;
-		}
+		if (err)
+			return err;
 	}
 	/* codecs are fine with it, so set our clocks */
 	if (input_16bit)
@@ -476,7 +452,7 @@ static int i2sbus_pcm_prepare(struct i2s
 	/* not locking these is fine since we touch them only in this function */
 	if (in_le32(&i2sdev->intfregs->serial_format) == sfr
 	 && in_le32(&i2sdev->intfregs->data_word_sizes) == dws)
-		goto out_unlock;
+		return 0;
 
 	/* let's notify the codecs about clocks going away.
 	 * For now we only do mastering on the i2s cell... */
@@ -514,9 +490,7 @@ static int i2sbus_pcm_prepare(struct i2s
 		if (cii->codec->switch_clock)
 			cii->codec->switch_clock(cii, CLOCK_SWITCH_SLAVE);
 
- out_unlock:
-	mutex_unlock(&i2sdev->lock);
-	return result;
+	return 0;
 }
 
 #ifdef CONFIG_PM



  parent reply	other threads:[~2026-05-04 14:26 UTC|newest]

Thread overview: 226+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-04 13:50 [PATCH 6.12 000/215] 6.12.86-rc1 review Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 001/215] ALSA: usb-audio: stop parsing UAC2 rates at MAX_NR_RATES Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 002/215] ALSA: usb-audio: Avoid false E-MU sample-rate notifications Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 003/215] ALSA: usb-audio: Fix Audio Advantage Micro II SPDIF switch Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 004/215] usb: xhci: Make usb_host_endpoint.hcpriv survive endpoint_disable() Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 005/215] usb: chipidea: otg: not wait vbus drop if use role_switch Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 006/215] usb: chipidea: core: allow ci_irq_handler() handle both ID and VBUS change Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 007/215] ALSA: usb-audio: Evaluate packsize caps at the right place Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 008/215] LoongArch: Add spectre boundry for syscall dispatch table Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 009/215] drm/nouveau: fix u32 overflow in pushbuf reloc bounds check Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 010/215] leds: qcom-lpg: Check for array overflow when selecting the high resolution Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 011/215] greybus: gb-beagleplay: bound bootloader receive buffering Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 012/215] greybus: gb-beagleplay: fix sleep in atomic context in hdlc_tx_frames() Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 013/215] misc: ibmasm: fix OOB MMIO read in ibmasm_handle_mouse_interrupt() Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 014/215] ibmasm: fix OOB reads in command_file_write due to missing size checks Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 015/215] ibmasm: fix heap over-read in ibmasm_send_i2o_message() Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 016/215] driver core: Dont let a device probe until its ready Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 017/215] drm/nouveau: fix nvkm_device leak on aperture removal failure Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 018/215] kbuild: rust: allow `clippy::uninlined_format_args` Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 019/215] firmware: google: framebuffer: Do not mark framebuffer as busy Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 020/215] arm64/mm: Enable batched TLB flush in unmap_hotplug_range() Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 021/215] padata: Fix pd UAF once and for all Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 022/215] padata: Remove comment for reorder_work Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 023/215] rust: init: fix `clippy::undocumented_unsafe_blocks` warnings Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 024/215] drm/amdgpu: Use vmemdup_array_user in amdgpu_bo_create_list_entry_array Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 025/215] drm/amdgpu: Limit BO list entry count to prevent resource exhaustion Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 026/215] device property: Make modifications of fwnode "flags" thread safe Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 027/215] ocfs2: split transactions in dio completion to avoid credit exhaustion Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 028/215] zram: do not forget to endio for partial discard requests Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 029/215] wifi: rtw88: check for PCI upstream bridge existence Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 030/215] vfio/cdx: Serialize VFIO_DEVICE_SET_IRQS with a per-device mutex Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 031/215] vfio/cdx: Fix NULL pointer dereference in interrupt trigger path Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 032/215] um: drivers: call kernel_strrchr() explicitly in cow_user.c Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 033/215] spi: imx: fix use-after-free on unbind Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 034/215] spi: ch341: fix memory leaks on probe failures Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 035/215] mm/memory_hotplug: fix hwpoisoned large folio handling in do_migrate_range() Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 036/215] crypto: pcrypt - Fix handling of MAY_BACKLOG requests Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 037/215] of: unittest: fix use-after-free in of_unittest_changeset() Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 038/215] of: unittest: fix use-after-free in testdrv_probe() Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 039/215] hwmon: (powerz) Fix missing usb_kill_urb() on signal interrupt Greg Kroah-Hartman
2026-05-04 13:50 ` [PATCH 6.12 040/215] media: amphion: Fix race between m2m job_abort and device_run Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 041/215] ALSA: control: Validate buf_len before strnlen() in snd_ctl_elem_init_enum_names() Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 042/215] net: caif: clear client service pointer on teardown Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 043/215] net: strparser: fix skb_head leak in strp_abort_strp() Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 044/215] media: mtk-jpeg: fix use-after-free in release path due to uncancelled work Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 045/215] crypto: atmel-sha204a - Fix OTP sysfs read and error handling Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 046/215] PCI: endpoint: pci-epf-ntb: Remove duplicate resource teardown Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 047/215] Revert "ALSA: usb: Increase volume range that triggers a warning" Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 048/215] PCI: epf-mhi: Return 0, not remaining timeout, when eDMA ops complete Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 049/215] lib/ts_kmp: fix integer overflow in pattern length calculation Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 050/215] media: i2c: imx219: Check return value of devm_gpiod_get_optional() in imx219_probe() Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 051/215] net: qrtr: ns: Fix use-after-free in driver remove() Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 052/215] ext2: reject inodes with zero i_nlink and valid mode in ext2_iget() Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 053/215] ALSA: aoa: i2sbus: fix OF node lifetime handling Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 054/215] ALSA: ctxfi: Add fallback to default RSR for S/PDIF Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 055/215] ALSA: seq_oss: return full count for successful SEQ_FULLSIZE writes Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 056/215] erofs: fix the out-of-bounds nameoff handling for trailing dirents Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 057/215] jbd2: fix deadlock in jbd2_journal_cancel_revoke() Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 058/215] md/raid10: fix deadlock with check operation and nowait requests Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 059/215] mfd: stpmic1: Attempt system shutdown twice in case PMIC is confused Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 060/215] mtd: docg3: fix use-after-free in docg3_release() Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 061/215] nvme-pci: add NVME_QUIRK_DISABLE_WRITE_ZEROES for Kingston OM3SGP4 Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 062/215] nvme: respect NVME_QUIRK_DISABLE_WRITE_ZEROES when wzsl is set Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 063/215] parisc: _llseek syscall is only available for 32-bit userspace Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 064/215] remoteproc: xlnx: Only access buffer information if IPI is buffered Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 065/215] sched: Use u64 for bandwidth ratio calculations Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 066/215] selftests/mqueue: Fix incorrectly named file Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 067/215] selftests/landlock: Fix format warning for __u64 in net_test Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 068/215] rbd: fix null-ptr-deref when device_add_disk() fails Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 069/215] block: fix zone write plugs refcount handling in disk_zone_wplug_schedule_bio_work() Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 070/215] io_uring/timeout: check unused sqe fields Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 071/215] iio: adc: ti-ads7950: use iio_push_to_buffers_with_ts_unaligned() Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 072/215] io_uring/poll: fix signed comparison in io_poll_get_ownership() Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 073/215] io_uring/poll: ensure EPOLL_ONESHOT is propagated for EPOLL_URING_WAKE Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 074/215] ALSA: core: Fix potential data race at fasync handling Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 075/215] ALSA: caiaq: Fix control_put() result and cache rollback Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 076/215] ALSA: caiaq: Handle probe errors properly Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 077/215] ALSA: 6fire: Fix input volume change detection Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 078/215] ALSA: pcmtest: fix reference leak on failed device registration Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 079/215] ALSA: pcmtest: Fix resource leaks in module init error paths Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 080/215] iio: adc: ad7768-1: fix one-shot mode data acquisition Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 081/215] rxrpc: Fix memory leaks in rxkad_verify_response() Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 082/215] rxrpc: Fix rxkad crypto unalignment handling Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 083/215] rxrpc: Fix re-decryption of RESPONSE packets Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 084/215] tools/accounting: handle truncated taskstats netlink messages Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 085/215] arm64: dts: marvell: uDPU: add ethernet aliases Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 086/215] net: qrtr: ns: Free the node during ctrl_cmd_bye() Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 087/215] net: rds: fix MR cleanup on copy error Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 088/215] net: txgbe: fix firmware version check Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 089/215] net/smc: avoid early lgr access in smc_clc_wait_msg Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 090/215] net: ks8851: Reinstate disabling of BHs around IRQ handler Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 091/215] netconsole: avoid out-of-bounds access on empty string in trim_newline() Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 092/215] net: ks8851: Avoid excess softirq scheduling Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 093/215] drm/arcpgu: fix device node leak Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 094/215] RDMA/rxe: Validate pad and ICRC before payload_size() in rxe_rcv Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 095/215] ipv4: icmp: validate reply type before using icmp_pointers Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 096/215] libceph: Prevent potential null-ptr-deref in ceph_handle_auth_reply() Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 097/215] extract-cert: Wrap key_pass with #ifdef USE_PKCS11_ENGINE Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 098/215] tpm: avoid -Wunused-but-set-variable Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 099/215] LoongArch: Show CPU vulnerabilites correctly Greg Kroah-Hartman
2026-05-04 13:51 ` [PATCH 6.12 100/215] power: supply: axp288_charger: Do not cancel work before initializing it Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 101/215] hwmon: (pt5161l) Fix bugs in pt5161l_read_block_data() Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 102/215] randomize_kstack: Maintain kstack_offset per task Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 103/215] mmc: block: use single block write in retry Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 104/215] mmc: sdhci-of-dwcmshc: Disable clock before DLL configuration Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 105/215] arm64: dts: ti: am62-verdin: Enable pullup for eMMC data pins Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 106/215] xfs: fix a resource leak in xfs_alloc_buftarg() Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 107/215] firmware: google: framebuffer: Do not unregister platform device Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 108/215] crypto: talitos - fix SEC1 32k ahash request limitation Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 109/215] crypto: talitos - rename first/last to first_desc/last_desc Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 110/215] pwm: imx-tpm: Count the number of enabled channels in probe Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 111/215] tpm: Fix auth session leak in tpm2_get_random() error path Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 112/215] tpm: Use kfree_sensitive() to free auth session in tpm_dev_release() Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 113/215] tpm: tpm_tis: add error logging for data transfer Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 114/215] tpm: tpm_tis: stop transmit if retries are exhausted Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 115/215] rtc: ntxec: fix OF node reference imbalance Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 116/215] mm/damon/core: use time_in_range_open() for damos quota window start Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 117/215] userfaultfd: allow registration of ranges below mmap_min_addr Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 118/215] KVM: x86: Defer non-architectural deliver of exception payload to userspace read Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 119/215] KVM: nSVM: Mark all of vmcb02 dirty when restoring nested state Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 120/215] KVM: nSVM: Sync NextRIP to cached vmcb12 after VMRUN of L2 Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 121/215] KVM: nSVM: Sync interrupt shadow " Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 122/215] KVM: SVM: Inject #UD for INVLPGA if EFER.SVME=0 Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 123/215] KVM: SVM: Explicitly mark vmcb01 dirty after modifying VMCB intercepts Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 124/215] KVM: nSVM: Ensure AVIC is inhibited when restoring a vCPU to guest mode Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 125/215] KVM: nSVM: Use vcpu->arch.cr2 when updating vmcb12 on nested #VMEXIT Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 126/215] KVM: nSVM: Always inject a #GP if mapping VMCB12 fails on nested VMRUN Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 127/215] KVM: nSVM: Clear GIF on nested #VMEXIT(INVALID) Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 128/215] KVM: nSVM: Clear EVENTINJ fields in vmcb12 on nested #VMEXIT Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 129/215] KVM: nSVM: Clear tracking of L1->L2 NMI and soft IRQ " Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 130/215] KVM: nSVM: Add missing consistency check for EFER, CR0, CR4, and CS Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 131/215] KVM: nSVM: Add missing consistency check for nCR3 validity Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 132/215] KVM: nSVM: Raise #UD if unhandled VMMCALL isnt intercepted by L1 Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 133/215] KVM: nSVM: Always intercept VMMCALL when L2 is active Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 134/215] io_uring/poll: fix multishot recv missing EOF on wakeup race Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 135/215] perf annotate: Use jump__delete when freeing LoongArch jumps Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 136/215] ext4: fix bounds check in check_xattrs() to prevent out-of-bounds access Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 137/215] ext4: fix missing brelse() in ext4_xattr_inode_dec_ref_all() Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 138/215] mtd: spi-nor: sst: Fix write enable before AAI sequence Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 139/215] amdgpu/jpeg: fix deepsleep register for jpeg 5_0_0 and 5_0_2 Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 140/215] md/raid5: fix soft lockup in retry_aligned_read() Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 141/215] md/raid5: validate payload size before accessing journal metadata Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 142/215] check-uapi: link into shared objects Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 143/215] HID: apple: ensure the keyboard backlight is off if suspending Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 144/215] inotify: fix watch count leak when fsnotify_add_inode_mark_locked() fails Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 145/215] x86/cpu: Disable FRED when PTI is forced on Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 146/215] wifi: rtl8xxxu: fix potential use of uninitialized value Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 147/215] tcp: call sk_data_ready() after listener migration Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 148/215] taskstats: set version in TGID exit notifications Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 149/215] mfd: core: Preserve OF node when ACPI handle is present Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 150/215] apparmor: use target tasks context in apparmor_getprocattr() Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 151/215] Bluetooth: hci_event: fix potential UAF in SSP passkey handlers Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 152/215] bus: mhi: host: pci_generic: Switch to async power up to avoid boot delays Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 153/215] can: ucan: fix devres lifetime Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 154/215] crypto: arm64/aes - Fix 32-bit aes_mac_update() arg treated as 64-bit Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 155/215] crypto: atmel-aes - Fix 3-page memory leak in atmel_aes_buff_cleanup Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 156/215] crypto: atmel-ecc - Release client on allocation failure Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 157/215] crypto: hisilicon - Fix dma_unmap_single() direction Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 158/215] crypto: ccree - fix a memory leak in cc_mac_digest() Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 159/215] crypto: atmel-tdes - fix DMA sync direction Greg Kroah-Hartman
2026-05-04 13:52 ` [PATCH 6.12 160/215] crypto: atmel-sha204a - Fix error codes in OTP reads Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 161/215] crypto: atmel-sha204a - Fix potential UAF and memory leak in remove path Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 162/215] crypto: atmel-sha204a - Fix uninitialized data access on OTP read error Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 163/215] crypto: nx - Fix packed layout in struct nx842_crypto_header Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 164/215] dm mirror: fix integer overflow in create_dirty_log() Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 165/215] ceph: only d_add() negative dentries when they are unhashed Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 166/215] IB/core: Fix zero dmac race in neighbor resolution Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 167/215] ktest: Fix the month in the name of the failure directory Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 168/215] ntfs3: add buffer boundary checks to run_unpack() Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 169/215] ntfs3: fix integer overflow in run_unpack() volume boundary check Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 170/215] rtmutex: Use waiter::task instead of current in remove_waiter() Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 171/215] scsi: sd: fix missing put_disk() when device_add(&disk_dev) fails Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 172/215] seg6: fix seg6 lwtunnel output redirect for L2 reduced encap mode Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 173/215] smb: client: validate the whole DACL before rewriting it in cifsacl Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 174/215] f2fs: fix UAF caused by decrementing sbi->nr_pages[] in f2fs_write_end_io() Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 175/215] lib: test_hmm: evict device pages on file close to avoid use-after-free Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 176/215] f2fs: fix to do sanity check on dcc->discard_cmd_cnt conditionally Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 177/215] ksmbd: use msleep instaed of schedule_timeout_interruptible() Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 178/215] ksmbd: replace connection list with hash table Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 179/215] ksmbd: reset rcount per connection in ksmbd_conn_wait_idle_sess_id() Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 180/215] thermal: core: Fix thermal zone governor cleanup issues Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 181/215] wifi: mt76: mt792x: describe USB WFSYS reset with a descriptor Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 182/215] wifi: mt76: mt792x: fix mt7925u USB WFSYS reset handling Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 183/215] wifi: mwifiex: fix use-after-free in mwifiex_adapter_cleanup() Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 184/215] mm/migrate: factor out movable_ops page handling into migrate_movable_ops_page() Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 185/215] mm/migrate: move movable_ops page handling out of move_to_new_folio() Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 186/215] mm: migrate: requeue destination folio on deferred split queue Greg Kroah-Hartman
2026-05-04 13:53 ` Greg Kroah-Hartman [this message]
2026-05-04 13:53 ` [PATCH 6.12 188/215] ALSA: aoa: i2sbus: clear stale prepared state Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 189/215] mm/zsmalloc: copy KMSAN metadata in zs_page_migrate() Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 190/215] media: rc: ttusbir: respect DMA coherency rules Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 191/215] ALSA: aoa: Skip devices with no codecs in i2sbus_resume() Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 192/215] media: rc: igorplugusb: heed coherency rules Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 193/215] RDMA/mana_ib: Disable RX steering on RSS QP destroy Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 194/215] block: relax pgmap check in bio_add_page for compatible zone device pages Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 195/215] iio: frequency: admv1013: add dev variable Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 196/215] iio: frequency: admv1013: fix NULL pointer dereference on str Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 197/215] rxrpc: Fix potential UAF after skb_unshare() failure Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 198/215] net: qrtr: ns: Limit the maximum server registration per node Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 199/215] net: qrtr: ns: Limit the maximum number of lookups Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 200/215] net: bridge: use a stable FDB dst snapshot in RCU readers Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 201/215] net: mctp: fix dont require received header reserved bits to be zero Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 202/215] net: qrtr: ns: Limit the total number of nodes Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 203/215] spi: fix resource leaks on device setup failure Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 204/215] mm: prevent droppable mappings from being locked Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 205/215] crypto: authencesn - reject short ahash digests during instance creation Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 206/215] net: bonding: fix use-after-free in bond_xmit_broadcast() Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 207/215] driver core: Add kernel-doc for DEV_FLAG_COUNT enum value Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 208/215] ALSA: caiaq: Fix potentially leftover ep1_in_urb at error path Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 209/215] ALSA: caiaq: Dont abort when no input device is available Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 210/215] rxrpc: Fix rxrpc_input_call_event() to only unshare DATA packets Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 211/215] ipv6: rpl: reserve mac_len headroom when recompressed SRH grows Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 212/215] drm/amdgpu: fix zero-size GDS range init on RDNA4 Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 213/215] ALSA: caiaq: fix usb_dev refcount leak on probe failure Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 214/215] net: ipv6: fix NOREF dst use in seg6 and rpl lwtunnels Greg Kroah-Hartman
2026-05-04 13:53 ` [PATCH 6.12 215/215] netfilter: reject zero shift in nft_bitwise Greg Kroah-Hartman
2026-05-04 15:16 ` [PATCH 6.12 000/215] 6.12.86-rc1 review Brett A C Sheffield
2026-05-04 16:17 ` Peter Schneider
2026-05-04 18:02 ` Florian Fainelli
2026-05-05  4:55 ` Francesco Dolcini
2026-05-05  8:11 ` Ron Economos
2026-05-05  9:31 ` Miguel Ojeda
2026-05-05 12:33 ` Mark Brown
2026-05-05 15:55 ` Shuah Khan
2026-05-06  1:57 ` Barry K. Nathan
2026-05-07 12:04 ` Harshit Mogalapalli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260504135137.105403341@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=patches@lists.linux.dev \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox