[PATCH] media: radio-isa: Unregister v4l2 device on probe failure
From: Wentao Liang
Date: Tue Nov 03 2026 - 04:50:13 EST
radio_isa_common_probe() registers the v4l2 device with
v4l2_device_register(), which takes a reference on the parent device. If
creating the controls, calling the driver's init callback, setting up the
controls or registering the video device fails, the error path frees the
control handler, releases the I/O region and frees the card, but never
calls v4l2_device_unregister(). The reference on the parent device is
leaked, and radio_isa_common_remove() does not run after a failed probe
to release it later.
Unregister the v4l2 device in the error path before releasing the I/O
region.
Fixes: 137c579c12bb ("[media] radio-isa: add framework for ISA radio drivers")
Cc: stable@xxxxxxxxxxxxxxx
Assisted-by: DeepSeek-V4.1-Flash and OpenAI Codex
Signed-off-by: Wentao Liang <vulab@xxxxxxxxxxx>
---
drivers/media/radio/radio-isa.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/media/radio/radio-isa.c b/drivers/media/radio/radio-isa.c
index 1a144536ffa7..dc905c57e3e7 100644
--- a/drivers/media/radio/radio-isa.c
+++ b/drivers/media/radio/radio-isa.c
@@ -267,6 +267,7 @@ static int radio_isa_common_probe(struct radio_isa_card *isa,
err_hdl:
v4l2_ctrl_handler_free(&isa->hdl);
+ v4l2_device_unregister(v4l2_dev);
err_dev_reg:
release_region(isa->io, region_size);
kfree(isa);
--
2.34.1