Linux I2C development
 help / color / mirror / Atom feed
* [BUG] WARNING in i2c_mux_add_adapter
@ 2026-08-28  5:49 Farhad Alemi
  2026-08-30  4:13 ` [PATCH] i2c: mux: avoid WARN on benign symlink creation failures Peter Rosin
  0 siblings, 1 reply; 4+ messages in thread
From: Farhad Alemi @ 2026-08-28  5:49 UTC (permalink / raw)
  To: Peter Rosin, Andi Shyti; +Cc: falemi, linux-i2c, linux-kernel

Hello,

As part of the kernel research at ASU's SEFCOM
lab, we hit the crash below. Crash reports can be found here:

  https://github.com/farhad-alemi/public_bug_reports/tree/main/185-warning-in-i2c-mux-add-adapter/

  can't create symlink to channel 0
  WARNING: drivers/i2c/i2c-mux.c:403 at
i2c_mux_add_adapter+0xcd8/0xeb0 drivers/i2c/i2c-mux.c:401, CPU#0:
syz.1.250/13052
  RIP: 0010:i2c_mux_add_adapter+0xcdc/0xeb0 drivers/i2c/i2c-mux.c:401
  Call Trace:
   i2c_mux_add_adapter+0xcdc/0xeb0 drivers/i2c/i2c-mux.c:401
   cx231xx_dev_init+0x2fb/0x1260 drivers/media/usb/cx231xx/cx231xx-core.c:1334
   cx231xx_init_dev drivers/media/usb/cx231xx/cx231xx-cards.c:1450 [inline]
   cx231xx_usb_probe+0xc48/0x2140 drivers/media/usb/cx231xx/cx231xx-cards.c:1819
   usb_probe_interface+0x657/0xc70 drivers/usb/core/driver.c:396
   really_probe+0x267/0xaf0 drivers/base/dd.c:709
   device_driver_attach+0xdc/0x1d0 drivers/base/dd.c:1206
   bind_store+0x1d0/0x220 drivers/base/bus.c:267
   kernfs_fop_write_iter+0x2fa/0x480 fs/kernfs/file.c:352

Our reproducer.c is available upon request.

Happy to test a patch if that would help.

Regards,

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH] i2c: mux: avoid WARN on benign symlink creation failures
  2026-08-28  5:49 [BUG] WARNING in i2c_mux_add_adapter Farhad Alemi
@ 2026-08-30  4:13 ` Peter Rosin
  2026-08-30 19:13   ` Andi Shyti
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Rosin @ 2026-08-30  4:13 UTC (permalink / raw)
  To: Farhad Alemi; +Cc: falemi, linux-i2c, linux-kernel, Peter Rosin

WARN() is a bit harsh and causes a crash for panic-on-warn users. Degrade
the error reporting to ordinary dev_err() calls.

Reported-by: Farhad Alemi <farhad.alemi@berkeley.edu>
Link: https://lore.kernel.org/all/CA+0ovCij3QDLRzt8CwpjBy-BbJ5Zf5SV9w9QZXz8uD3Agws31g@mail.gmail.com/
Signed-off-by: Peter Rosin <peda@lysator.liu.se>
---

Hi Farhad,

I assume this patch helps?

Cheers,
Peter

 drivers/i2c/i2c-mux.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/drivers/i2c/i2c-mux.c b/drivers/i2c/i2c-mux.c
index 681a201c239b..52cd8cdf2307 100644
--- a/drivers/i2c/i2c-mux.c
+++ b/drivers/i2c/i2c-mux.c
@@ -393,14 +393,18 @@ int i2c_mux_add_adapter(struct i2c_mux_core *muxc,
 		}
 	}
 
-	WARN(sysfs_create_link(&priv->adap.dev.kobj, &muxc->dev->kobj,
-			       "mux_device"),
-	     "can't create symlink to mux device\n");
+	ret = sysfs_create_link(&priv->adap.dev.kobj, &muxc->dev->kobj,
+				"mux_device");
+	if (ret)
+		dev_err(muxc->dev, "can't create symlink to mux device\n");
 
 	snprintf(symlink_name, sizeof(symlink_name), "channel-%u", chan_id);
-	WARN(sysfs_create_link(&muxc->dev->kobj, &priv->adap.dev.kobj,
-			       symlink_name),
-	     "can't create symlink to channel %u\n", chan_id);
+	ret = sysfs_create_link(&muxc->dev->kobj, &priv->adap.dev.kobj,
+				symlink_name);
+	if (ret)
+		dev_err(muxc->dev,
+			"can't create symlink to channel %u\n", chan_id);
+
 	dev_info(&parent->dev, "Added multiplexed i2c bus %d\n",
 		 i2c_adapter_id(&priv->adap));
 
-- 
2.55.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] i2c: mux: avoid WARN on benign symlink creation failures
  2026-08-30  4:13 ` [PATCH] i2c: mux: avoid WARN on benign symlink creation failures Peter Rosin
@ 2026-08-30 19:13   ` Andi Shyti
  2026-08-30 21:14     ` Peter Rosin
  0 siblings, 1 reply; 4+ messages in thread
From: Andi Shyti @ 2026-08-30 19:13 UTC (permalink / raw)
  To: Peter Rosin; +Cc: Farhad Alemi, falemi, linux-i2c, linux-kernel

Hi Peter,

On Sun, Aug 30, 2026 at 06:13:03AM +0200, Peter Rosin wrote:
> WARN() is a bit harsh and causes a crash for panic-on-warn users. Degrade
> the error reporting to ordinary dev_err() calls.
> 
> Reported-by: Farhad Alemi <farhad.alemi@berkeley.edu>
> Link: https://lore.kernel.org/all/CA+0ovCij3QDLRzt8CwpjBy-BbJ5Zf5SV9w9QZXz8uD3Agws31g@mail.gmail.com/
> Signed-off-by: Peter Rosin <peda@lysator.liu.se>
> ---
> 
> Hi Farhad,
> 
> I assume this patch helps?

I sent this patch for a quick test:

https://lore.kernel.org/all/20260828135950.454799-1-andi.shyti@kernel.org/

Maybe they can be taken together, as I agree not to fire a WARN()
there.

Andi

> 
> Cheers,
> Peter
> 
>  drivers/i2c/i2c-mux.c | 16 ++++++++++------
>  1 file changed, 10 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/i2c/i2c-mux.c b/drivers/i2c/i2c-mux.c
> index 681a201c239b..52cd8cdf2307 100644
> --- a/drivers/i2c/i2c-mux.c
> +++ b/drivers/i2c/i2c-mux.c
> @@ -393,14 +393,18 @@ int i2c_mux_add_adapter(struct i2c_mux_core *muxc,
>  		}
>  	}
>  
> -	WARN(sysfs_create_link(&priv->adap.dev.kobj, &muxc->dev->kobj,
> -			       "mux_device"),
> -	     "can't create symlink to mux device\n");
> +	ret = sysfs_create_link(&priv->adap.dev.kobj, &muxc->dev->kobj,
> +				"mux_device");
> +	if (ret)
> +		dev_err(muxc->dev, "can't create symlink to mux device\n");
>  
>  	snprintf(symlink_name, sizeof(symlink_name), "channel-%u", chan_id);
> -	WARN(sysfs_create_link(&muxc->dev->kobj, &priv->adap.dev.kobj,
> -			       symlink_name),
> -	     "can't create symlink to channel %u\n", chan_id);
> +	ret = sysfs_create_link(&muxc->dev->kobj, &priv->adap.dev.kobj,
> +				symlink_name);
> +	if (ret)
> +		dev_err(muxc->dev,
> +			"can't create symlink to channel %u\n", chan_id);
> +
>  	dev_info(&parent->dev, "Added multiplexed i2c bus %d\n",
>  		 i2c_adapter_id(&priv->adap));
>  
> -- 
> 2.55.0
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] i2c: mux: avoid WARN on benign symlink creation failures
  2026-08-30 19:13   ` Andi Shyti
@ 2026-08-30 21:14     ` Peter Rosin
  0 siblings, 0 replies; 4+ messages in thread
From: Peter Rosin @ 2026-08-30 21:14 UTC (permalink / raw)
  To: Andi Shyti; +Cc: Farhad Alemi, falemi, linux-i2c, linux-kernel

Den Sun, Aug 30, 2026 at 09:13:24PM +0200, skrev Andi Shyti:
> Hi Peter,
> 
> On Sun, Aug 30, 2026 at 06:13:03AM +0200, Peter Rosin wrote:
> > WARN() is a bit harsh and causes a crash for panic-on-warn users. Degrade
> > the error reporting to ordinary dev_err() calls.
> > 
> > Reported-by: Farhad Alemi <farhad.alemi@berkeley.edu>
> > Link: https://lore.kernel.org/all/CA+0ovCij3QDLRzt8CwpjBy-BbJ5Zf5SV9w9QZXz8uD3Agws31g@mail.gmail.com/
> > Signed-off-by: Peter Rosin <peda@lysator.liu.se>
> > ---
> > 
> > Hi Farhad,
> > 
> > I assume this patch helps?
> 
> I sent this patch for a quick test:
> 
> https://lore.kernel.org/all/20260828135950.454799-1-andi.shyti@kernel.org/
> 
> Maybe they can be taken together, as I agree not to fire a WARN()
> there.

Hi Andi,

[sorry for droping you from cc, that was unintentional]

Yes, sure! And fixing the root cause is of course always nice, good one!

Cheers,
Peter

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-08-30 21:14 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-28  5:49 [BUG] WARNING in i2c_mux_add_adapter Farhad Alemi
2026-08-30  4:13 ` [PATCH] i2c: mux: avoid WARN on benign symlink creation failures Peter Rosin
2026-08-30 19:13   ` Andi Shyti
2026-08-30 21:14     ` Peter Rosin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox