All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Dongliang Mu <mudongliangabcd@gmail.com>,
	syzkaller <syzkaller@googlegroups.com>,
	Hans Verkuil <hverkuil-cisco@xs4all.nl>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Sasha Levin <sashal@kernel.org>,
	hverkuil@xs4all.nl, linux-media@vger.kernel.org
Subject: [PATCH AUTOSEL 5.10 32/37] media: hdpvr: initialize dev->worker at hdpvr_register_videodev
Date: Wed, 30 Mar 2022 07:51:17 -0400	[thread overview]
Message-ID: <20220330115122.1671763-32-sashal@kernel.org> (raw)
In-Reply-To: <20220330115122.1671763-1-sashal@kernel.org>

From: Dongliang Mu <mudongliangabcd@gmail.com>

[ Upstream commit 07922937e9a580825f9965c46fd15e23ba5754b6 ]

hdpvr_register_videodev is responsible to initialize a worker in
hdpvr_device. However, the worker is only initialized at
hdpvr_start_streaming other than hdpvr_register_videodev.
When hdpvr_probe does not initialize its worker, the hdpvr_disconnect
will encounter one WARN in flush_work.The stack trace is as follows:

 hdpvr_disconnect+0xb8/0xf2 drivers/media/usb/hdpvr/hdpvr-core.c:425
 usb_unbind_interface+0xbf/0x3a0 drivers/usb/core/driver.c:458
 __device_release_driver drivers/base/dd.c:1206 [inline]
 device_release_driver_internal+0x22a/0x230 drivers/base/dd.c:1237
 bus_remove_device+0x108/0x160 drivers/base/bus.c:529
 device_del+0x1fe/0x510 drivers/base/core.c:3592
 usb_disable_device+0xd1/0x1d0 drivers/usb/core/message.c:1419
 usb_disconnect+0x109/0x330 drivers/usb/core/hub.c:2228

Fix this by moving the initialization of dev->worker to the starting of
hdpvr_register_videodev

Reported-by: syzkaller <syzkaller@googlegroups.com>
Signed-off-by: Dongliang Mu <mudongliangabcd@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/media/usb/hdpvr/hdpvr-video.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/media/usb/hdpvr/hdpvr-video.c b/drivers/media/usb/hdpvr/hdpvr-video.c
index 563128d11731..60e57e0f1927 100644
--- a/drivers/media/usb/hdpvr/hdpvr-video.c
+++ b/drivers/media/usb/hdpvr/hdpvr-video.c
@@ -308,7 +308,6 @@ static int hdpvr_start_streaming(struct hdpvr_device *dev)
 
 	dev->status = STATUS_STREAMING;
 
-	INIT_WORK(&dev->worker, hdpvr_transmit_buffers);
 	schedule_work(&dev->worker);
 
 	v4l2_dbg(MSG_BUFFER, hdpvr_debug, &dev->v4l2_dev,
@@ -1165,6 +1164,9 @@ int hdpvr_register_videodev(struct hdpvr_device *dev, struct device *parent,
 	bool ac3 = dev->flags & HDPVR_FLAG_AC3_CAP;
 	int res;
 
+	// initialize dev->worker
+	INIT_WORK(&dev->worker, hdpvr_transmit_buffers);
+
 	dev->cur_std = V4L2_STD_525_60;
 	dev->width = 720;
 	dev->height = 480;
-- 
2.34.1


  parent reply	other threads:[~2022-03-30 12:14 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-30 11:50 [PATCH AUTOSEL 5.10 01/37] media: staging: media: zoran: move videodev alloc Sasha Levin
2022-03-30 11:50 ` [PATCH AUTOSEL 5.10 02/37] media: staging: media: zoran: calculate the right buffer number for zoran_reap_stat_com Sasha Levin
2022-03-30 11:50 ` [PATCH AUTOSEL 5.10 03/37] media: staging: media: zoran: fix various V4L2 compliance errors Sasha Levin
2022-03-30 11:50 ` [PATCH AUTOSEL 5.10 04/37] media: ir_toy: free before error exiting Sasha Levin
2022-03-30 11:50 ` [PATCH AUTOSEL 5.10 05/37] ASoC: SOF: Intel: hda: Remove link assignment limitation Sasha Levin
2022-03-30 11:50   ` Sasha Levin
2022-03-30 11:50 ` [PATCH AUTOSEL 5.10 06/37] video: fbdev: nvidiafb: Use strscpy() to prevent buffer overflow Sasha Levin
2022-03-30 11:50   ` Sasha Levin
2022-03-30 11:50 ` [PATCH AUTOSEL 5.10 07/37] video: fbdev: w100fb: Reset global state Sasha Levin
2022-03-30 11:50 ` [PATCH AUTOSEL 5.10 08/37] video: fbdev: cirrusfb: check pixclock to avoid divide by zero Sasha Levin
2022-03-30 11:50 ` [PATCH AUTOSEL 5.10 09/37] video: fbdev: omapfb: acx565akm: replace snprintf with sysfs_emit Sasha Levin
2022-03-30 11:50 ` [PATCH AUTOSEL 5.10 10/37] ARM: dts: qcom: fix gic_irq_domain_translate warnings for msm8960 Sasha Levin
2022-03-30 11:50   ` Sasha Levin
2022-03-30 11:50 ` [PATCH AUTOSEL 5.10 11/37] ARM: dts: bcm2837: Add the missing L1/L2 cache information Sasha Levin
2022-03-30 11:50   ` Sasha Levin
2022-03-30 11:50 ` [PATCH AUTOSEL 5.10 12/37] ASoC: madera: Add dependencies on MFD Sasha Levin
2022-03-30 11:50   ` Sasha Levin
2022-03-30 11:50 ` [PATCH AUTOSEL 5.10 13/37] media: atomisp_gmin_platform: Add DMI quirk to not turn AXP ELDO2 regulator off on some boards Sasha Levin
2022-03-30 11:50 ` [PATCH AUTOSEL 5.10 14/37] media: atomisp: fix dummy_ptr check to avoid duplicate active_bo Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 15/37] ARM: ftrace: avoid redundant loads or clobbering IP Sasha Levin
2022-03-30 11:51   ` Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 16/37] ARM: dts: imx7: Use audio_mclk_post_div instead audio_mclk_root_clk Sasha Levin
2022-03-30 11:51   ` Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 17/37] arm64: defconfig: build imx-sdma as a module Sasha Levin
2022-03-30 11:51   ` Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 18/37] video: fbdev: omapfb: panel-dsi-cm: Use sysfs_emit() instead of snprintf() Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 19/37] video: fbdev: omapfb: panel-tpo-td043mtea1: " Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 20/37] video: fbdev: udlfb: replace snprintf in show functions with sysfs_emit Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 21/37] ARM: dts: bcm2711: Add the missing L1/L2 cache information Sasha Levin
2022-03-30 11:51   ` Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 22/37] printk: Add panic_in_progress helper Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 23/37] ASoC: soc-core: skip zero num_dai component in searching dai name Sasha Levin
2022-03-30 11:51   ` Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 24/37] printk: use atomic updates for klogd work Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 25/37] media: cx88-mpeg: clear interrupt status register before streaming video Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 26/37] uaccess: fix type mismatch warnings from access_ok() Sasha Levin
2022-03-30 11:51   ` Sasha Levin
2022-03-30 11:51   ` Sasha Levin
2022-03-30 11:51   ` Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 27/37] lib/test_lockup: fix kernel pointer check for separate address spaces Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 28/37] ARM: tegra: tamonten: Fix I2C3 pad setting Sasha Levin
2022-03-30 11:51   ` Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 29/37] ARM: mmp: Fix failure to remove sram device Sasha Levin
2022-03-30 11:51   ` Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 30/37] video: fbdev: sm712fb: Fix crash in smtcfb_write() Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 31/37] media: Revert "media: em28xx: add missing em28xx_close_extension" Sasha Levin
2022-03-30 11:51 ` Sasha Levin [this message]
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 33/37] tracing: Have TRACE_DEFINE_ENUM affect trace event types as well Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 34/37] mmc: host: Return an error when ->enable_sdio_irq() ops is missing Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 35/37] ASoC: ak4642: Use of_device_get_match_data() Sasha Levin
2022-03-30 11:51   ` Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 36/37] media: atomisp: fix bad usage at error handling logic Sasha Levin
2022-03-30 11:51 ` [PATCH AUTOSEL 5.10 37/37] ALSA: hda/realtek: Add alc256-samsung-headphone fixup Sasha Levin
2022-03-30 11:51   ` Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220330115122.1671763-32-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=hverkuil@xs4all.nl \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=mudongliangabcd@gmail.com \
    --cc=stable@vger.kernel.org \
    --cc=syzkaller@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.