All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] media: video-i2c: fix kthread error pointer left in kthread_vid_cap on failure
@ 2026-07-06 15:28 Uday Khare
  0 siblings, 0 replies; only message in thread
From: Uday Khare @ 2026-07-06 15:28 UTC (permalink / raw)
  To: Matt Ranostay
  Cc: Mauro Carvalho Chehab, linux-media, linux-kernel, Uday Khare

kthread_run() returns an ERR_PTR on failure, not NULL.
When start_streaming() fails, data->kthread_vid_cap is left holding
this error pointer instead of being cleared.

This causes two subsequent bugs:
1. A future call to start_streaming() sees a non-NULL kthread_vid_cap
   and returns 0 (success) immediately, without actually starting the
   capture thread.
2. A call to stop_streaming() checks 'kthread_vid_cap == NULL' which
   is false for an error pointer, and proceeds to call kthread_stop()
   on the error pointer, leading to a kernel crash.

Fix this by resetting kthread_vid_cap to NULL on failure before
jumping to the error path.

Fixes: 5cebaac60974 ("media: video-i2c: add video-i2c driver")
Signed-off-by: Uday Khare <udaykhare77@gmail.com>
---
v2: Fix Fixes: tag - use correct introducing commit hash (5cebaac60974)
    instead of the incorrect hash cited in v1.

 drivers/media/i2c/video-i2c.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/media/i2c/video-i2c.c b/drivers/media/i2c/video-i2c.c
index 6b50fb422a61..4811a0489524 100644
--- a/drivers/media/i2c/video-i2c.c
+++ b/drivers/media/i2c/video-i2c.c
@@ -522,8 +522,12 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count)
 	data->kthread_vid_cap = kthread_run(video_i2c_thread_vid_cap, data,
 					    "%s-vid-cap", data->v4l2_dev.name);
 	ret = PTR_ERR_OR_ZERO(data->kthread_vid_cap);
-	if (!ret)
-		return 0;
+	if (ret) {
+		data->kthread_vid_cap = NULL;
+		goto error_rpm_put;
+	}
+
+	return 0;
 
 error_rpm_put:
 	pm_runtime_put_autosuspend(dev);
-- 
2.55.0


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-07-06 15:30 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-06 15:28 [PATCH v2] media: video-i2c: fix kthread error pointer left in kthread_vid_cap on failure Uday Khare

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.