Subject: linux-next: semantic conflict between the tip and sound-asoc trees

From: Stephen Rothwell <[email-masked]>
Date: Tue, 22 Jul 2025 13:01:40 +1000

Hi all,

After merging the tip tree, today's linux-next build (x86_64 allmodconfig)
failed like this:

In file included from include/linux/kernfs.h:11,
                 from include/linux/sysfs.h:16,
                 from include/linux/kobject.h:20,
                 from include/linux/energy_model.h:7,
                 from include/linux/device.h:16,
                 from sound/soc/sdca/sdca_interrupts.c:13:
sound/soc/sdca/sdca_interrupts.c: In function 'sdca_irq_allocate':
include/linux/mutex.h:153:9: error: ignoring return value of '__devm_mutex_init' declared with attribute 'warn_unused_result' [-Werror=unused-result]
  153 |         __devm_mutex_init(dev, __mutex_init_ret(mutex))
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/sdca/sdca_interrupts.c:422:9: note: in expansion of macro 'devm_mutex_init'
  422 |         devm_mutex_init(dev, &info->irq_lock);
      |         ^~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

Caused by commit

  daec29dcc873 ("locking/mutex: Mark devm_mutex_init() as __must_check")

interacting with commit

  b126394d9ec6 ("ASoC: SDCA: Generic interrupt support")

from the sound-asoc tree.

I have applied the following merge fix patch (just a hack, something
better needs to be done).

From: Stephen Rothwell <[email-masked]>
Date: Tue, 22 Jul 2025 12:26:10 +1000
Subject: [PATCH] fix up for "ASoC: SDCA: Generic interrupt support"

interacting with "locking/mutex: Mark devm_mutex_init() as
__must_check".

Signed-off-by: Stephen Rothwell <[email-masked]>
---
 sound/soc/sdca/sdca_interrupts.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/sound/soc/sdca/sdca_interrupts.c b/sound/soc/sdca/sdca_interrupts.c
index b76512732af8..b393471e9760 100644
--- a/sound/soc/sdca/sdca_interrupts.c
+++ b/sound/soc/sdca/sdca_interrupts.c
@@ -419,7 +419,11 @@ struct sdca_interrupt_info *sdca_irq_allocate(struct device *dev,
 
 	info->irq_chip = sdca_irq_chip;
 
-	devm_mutex_init(dev, &info->irq_lock);
+	ret = devm_mutex_init(dev, &info->irq_lock);
+	if (ret) {
+		/* do some error recovery */
+		return ERR_PTR(ret);
+	}
 
 	ret = devm_regmap_add_irq_chip(dev, regmap, irq, IRQF_ONESHOT, 0,
 				       &info->irq_chip, &info->irq_data);
-- 
2.50.1

-- 
Cheers,
Stephen Rothwell