diff options
| author | Andi Shyti <andi.shyti@kernel.org> | 2026-08-28 15:59:50 +0200 |
|---|---|---|
| committer | Hans Verkuil <hverkuil+cisco@kernel.org> | 2026-09-08 09:38:53 +0200 |
| commit | 6e30287eaf3e41b86dfb86df3b811526693d74b4 (patch) | |
| tree | f2c7baf6f01570c50236e471fb0529c548f3ed99 /drivers/media/usb/hackrf | |
| parent | a691c54986412e1fa87f036d2577d5a78a75e658 (diff) | |
| download | linux-next-6e30287eaf3e41b86dfb86df3b811526693d74b4.tar.gz linux-next-6e30287eaf3e41b86dfb86df3b811526693d74b4.zip | |
media: cx231xx: Fix cleanup path on failure
If cx231xx_init_v4l2() fails the probe currently jumps to
err_init, which only unregisters the V4L2 device. The analog
devices and I2C resources are left registered while the driver
state can be released.
A subsequent driver bind attempts to create the same I2C mux
channel links and triggers a warning when the existing
"channel-0" link is encountered. The remaining devices may also
access released driver state. This produces the following warning
can't create symlink to channel 0
WARNING: drivers/i2c/i2c-mux.c:403 at i2c_mux_add_adapter+0xcd8/0xeb0
Call Trace:
i2c_mux_add_adapter+0xcdc/0xeb0
cx231xx_dev_init+0x2fb/0x1260
cx231xx_usb_probe+0xc48/0x2140
usb_probe_interface+0x657/0xc70
...
Jump to err_video_alt instead, which performs the full device
cleanup before unregistering the V4L2 device.
Reported-by: Farhad Alemi <farhad.alemi@berkeley.edu>
Closes: https://github.com/farhad-alemi/public_bug_reports/tree/main/185-warning-in-i2c-mux-add-adapter/
Fixes: 4d2a7d3509f5 ("[media] cx231xx: move analog init code to a separate function")
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Cc: <stable@vger.kernel.org> # v3.17+
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
Diffstat (limited to 'drivers/media/usb/hackrf')
0 files changed, 0 insertions, 0 deletions
