linux/drivers/media/i2c
Alexander Shiyan b59ab89bc8 media: i2c: tc358743: Fix crash in the probe error path when using polling
commit 869f38ae07 upstream.

If an error occurs in the probe() function, we should remove the polling
timer that was alarmed earlier, otherwise the timer is called with
arguments that are already freed, which results in a crash.

------------[ cut here ]------------
WARNING: CPU: 3 PID: 0 at kernel/time/timer.c:1830 __run_timers+0x244/0x268
Modules linked in:
CPU: 3 UID: 0 PID: 0 Comm: swapper/3 Not tainted 6.11.0 #226
Hardware name: Diasom DS-RK3568-SOM-EVB (DT)
pstate: 804000c9 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : __run_timers+0x244/0x268
lr : __run_timers+0x1d4/0x268
sp : ffffff80eff2baf0
x29: ffffff80eff2bb50 x28: 7fffffffffffffff x27: ffffff80eff2bb00
x26: ffffffc080f669c0 x25: ffffff80efef6bf0 x24: ffffff80eff2bb00
x23: 0000000000000000 x22: dead000000000122 x21: 0000000000000000
x20: ffffff80efef6b80 x19: ffffff80041c8bf8 x18: ffffffffffffffff
x17: ffffffc06f146000 x16: ffffff80eff27dc0 x15: 000000000000003e
x14: 0000000000000000 x13: 00000000000054da x12: 0000000000000000
x11: 00000000000639c0 x10: 000000000000000c x9 : 0000000000000009
x8 : ffffff80eff2cb40 x7 : ffffff80eff2cb40 x6 : ffffff8002bee480
x5 : ffffffc080cb2220 x4 : ffffffc080cb2150 x3 : 00000000000f4240
x2 : 0000000000000102 x1 : ffffff80eff2bb00 x0 : ffffff80041c8bf0
Call trace:
 __run_timers+0x244/0x268
 timer_expire_remote+0x50/0x68
 tmigr_handle_remote+0x388/0x39c
 run_timer_softirq+0x38/0x44
 handle_softirqs+0x138/0x298
 __do_softirq+0x14/0x20
 ____do_softirq+0x10/0x1c
 call_on_irq_stack+0x24/0x4c
 do_softirq_own_stack+0x1c/0x2c
 irq_exit_rcu+0x9c/0xcc
 el1_interrupt+0x48/0xc0
 el1h_64_irq_handler+0x18/0x24
 el1h_64_irq+0x7c/0x80
 default_idle_call+0x34/0x68
 do_idle+0x23c/0x294
 cpu_startup_entry+0x38/0x3c
 secondary_start_kernel+0x128/0x160
 __secondary_switched+0xb8/0xbc
---[ end trace 0000000000000000 ]---

Fixes: 4e66a52a2e ("[media] tc358743: Add support for platforms without IRQ line")
Signed-off-by: Alexander Shiyan <eagle.alexander923@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2024-12-09 10:33:02 +01:00
..
adv748x media: adv748x: Return to endpoint matching 2023-08-10 07:57:40 +02:00
ccs media: ccs: Correctly initialise try compose rectangle 2023-11-28 17:20:12 +00:00
cx25840 media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
et8ek8 media: i2c: et8ek8: Don't strip remove function when driver is builtin 2024-06-12 11:12:02 +02:00
s5c73m3 media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ad5820.c media: ad5820: Drop unsupported ad5823 from i2c_ and of_device_id tables 2023-07-14 13:07:18 +02:00
adp1653.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
adv7170.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
adv7175.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
adv7180.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
adv7183.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
adv7183_regs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
adv7343.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
adv7343_regs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
adv7393.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
adv7393_regs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
adv7511-v4l2.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
adv7604.c media: v4l2-core: v4l2-dv-timings: check cvt/gtf result 2024-12-09 10:32:51 +01:00
adv7842.c media: v4l2-core: v4l2-dv-timings: check cvt/gtf result 2024-12-09 10:32:51 +01:00
ak881x.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ak7375.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
aptina-pll.c media: i2c: aptina-pll: Remove a useless include 2022-11-25 08:35:48 +00:00
aptina-pll.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
ar0521.c media: ar0521: don't overflow when checking PLL values 2024-11-14 13:19:34 +01:00
bt819.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
bt856.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
bt866.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ccs-pll.c media: ccs-pll: Initialise best_div to avoid a compiler warning 2023-08-10 07:58:33 +02:00
ccs-pll.h media: ccs-pll: Switch from standard integer types to kernel ones 2021-01-12 17:55:28 +01:00
cs53l32a.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
cs3308.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
cs5345.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ds90ub913.c media: i2c: ds90ub913: Fix use of uninitialized variables 2023-08-14 20:27:58 +02:00
ds90ub953.c media: i2c: ds90ub953: Fix use of uninitialized variables 2023-08-14 20:27:58 +02:00
ds90ub960.c media: i2c: ds90ub960: Fix missing return check on ub960_rxport_read call 2024-12-09 10:31:53 +01:00
dw9714.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
dw9719.c media: i2c: Add driver for DW9719 VCM 2023-08-10 07:58:41 +02:00
dw9768.c media: i2c: dw9768: Fix pm_runtime_set_suspended() with runtime pm enabled 2024-12-09 10:33:02 +01:00
dw9807-vcm.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
hi556.c media: i2c: Remove Shawn's and Chiranjeevi's e-mail addresses 2023-07-14 13:04:34 +02:00
hi846.c media: hi846: fix usage of pm_runtime_get_if_in_use() 2023-05-25 16:21:23 +02:00
hi847.c media: i2c: Remove Shawn's and Chiranjeevi's e-mail addresses 2023-07-14 13:04:34 +02:00
imx208.c media: i2c: Remove Shawn's and Chiranjeevi's e-mail addresses 2023-07-14 13:04:34 +02:00
imx214.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
imx219.c media: i2c: imx219: fix msr access command sequence 2024-08-03 08:53:48 +02:00
imx258.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
imx274.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
imx290.c media: i2c: imx290: Fix IMX920 typo 2024-03-26 18:19:51 -04:00
imx296.c media: Explicitly include correct DT includes 2023-07-19 12:57:51 +02:00
imx319.c media: i2c: Remove Shawn's and Chiranjeevi's e-mail addresses 2023-07-14 13:04:34 +02:00
imx334.c media: i2c: imx334: update pixel, hblank and link frequency 2023-05-25 16:21:22 +02:00
imx335.c media: imx335: Fix reset-gpio handling 2024-10-10 11:58:04 +02:00
imx355.c media: imx355: Enable runtime PM before registering async sub-device 2024-01-31 16:18:50 -08:00
imx412.c media: i2c: Fix imx412 exposure control 2024-08-03 08:53:47 +02:00
imx415.c media: Explicitly include correct DT includes 2023-07-19 12:57:51 +02:00
ir-kbd-i2c.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
isl7998x.c media: i2c: isl7998x: drop of_match_ptr for ID table 2023-07-14 12:36:56 +02:00
Kconfig media: i2c: imx219: Convert to CCI register access helpers 2023-11-20 11:59:32 +01:00
ks0127.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ks0127.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
lm3560.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
lm3646.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
m52790.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
Makefile media: i2c: Add driver for DW9719 VCM 2023-08-10 07:58:41 +02:00
max2175.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
max2175.h media: i2c: Use the correct style for SPDX License Identifier 2019-11-10 17:47:14 +01:00
max9271.c media: i2c: max9271: Introduce wake_up() function 2021-06-17 11:30:21 +02:00
max9271.h media: i2c: max9271: Introduce wake_up() function 2021-06-17 11:30:21 +02:00
max9286.c media: i2c: max9286: Fix some redundant of_node_put() calls 2023-11-20 11:59:31 +01:00
ml86v7667.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
msp3400-driver.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
msp3400-driver.h media: msp3400: declare its own pads 2018-09-17 13:16:19 -04:00
msp3400-kthreads.c media: msp3400: use semicolons rather than commas to separate statements 2020-11-16 10:31:07 +01:00
mt9m001.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
mt9m111.c media: i2c: mt9m111: drop of_match_ptr for ID table 2023-07-14 12:36:57 +02:00
mt9p031.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
mt9t112.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
mt9v011.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
mt9v032.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
mt9v111.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
og01a1b.c media: i2c: Remove Shawn's and Chiranjeevi's e-mail addresses 2023-07-14 13:04:34 +02:00
ov01a10.c media: ov01a10: Enable runtime PM before registering async sub-device 2024-01-31 16:18:51 -08:00
ov02a10.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov08d10.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov08x40.c media: ov08x40: Fix hblank out of range issue 2023-07-14 13:05:05 +02:00
ov13b10.c media: ov13b10: Enable runtime PM before registering async sub-device 2024-01-31 16:18:51 -08:00
ov772x.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov2640.c media: i2c: ov2640: drop of_match_ptr for ID table 2023-07-14 12:36:58 +02:00
ov2659.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov2680.c media: ov2680: Do not fail if data-lanes property is absent 2024-06-12 11:12:38 +02:00
ov2685.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov2740.c media: i2c: Remove Shawn's and Chiranjeevi's e-mail addresses 2023-07-14 13:04:34 +02:00
ov4689.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov5640.c media: ov5640: Fix a memory leak when ov5640_probe fails 2023-11-20 11:59:32 +01:00
ov5645.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov5647.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov5648.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov5670.c media: i2c: Remove Shawn's and Chiranjeevi's e-mail addresses 2023-07-14 13:04:34 +02:00
ov5675.c media: ov5675: Fix power on/off delay timings 2024-10-10 11:57:53 +02:00
ov5693.c media: ov5693: Convert to new CCI register access helpers 2023-08-10 07:58:39 +02:00
ov5695.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov6650.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov7251.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov7640.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov7670.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov7740.c media: i2c: ov7740: drop of_match_ptr for ID table 2023-07-14 12:37:00 +02:00
ov8856.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov8858.c media: i2c: ov8858: Don't set fwnode in the driver 2023-10-11 15:26:16 +02:00
ov8865.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov9282.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov9640.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov9640.h media: ov9640: Use the generic clock framework 2021-02-06 09:38:05 +01:00
ov9650.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov9734.c media: ov9734: Enable runtime PM before registering async sub-device 2024-01-31 16:18:51 -08:00
ov13858.c media: i2c: Remove Shawn's and Chiranjeevi's e-mail addresses 2023-07-14 13:04:34 +02:00
rdacm20.c media: v4l: async: Simplify async sub-device fwnode matching 2023-07-28 10:43:08 +02:00
rdacm21.c media: i2c: rdacm21: Remove an incorrect fwnode_handle_put() call 2023-09-14 23:31:55 +02:00
rj54n1cb0c.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
s5k5baf.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
s5k6a3.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
saa711x_regs.h media: i2c: Use the correct style for SPDX License Identifier 2019-11-10 17:47:14 +01:00
saa717x.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
saa6588.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
saa6752hs.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
saa7110.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
saa7115.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
saa7127.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
saa7185.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
sony-btf-mpx.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
st-mipid02.c media: i2c: st-mipid02: correct format propagation 2024-01-31 16:18:55 -08:00
st-vgxy61.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tc358743.c media: i2c: tc358743: Fix crash in the probe error path when using polling 2024-12-09 10:33:02 +01:00
tc358743_regs.h media: i2c: add SPDX license info 2018-02-14 13:16:31 -05:00
tc358746.c media: v4l: async: Set v4l2_device and subdev in async notifier init 2023-08-10 07:58:32 +02:00
tda1997x.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tda1997x_regs.h media: TDA1997x: replace video detection routine 2021-10-19 08:08:38 +01:00
tda7432.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tda9840.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tea6415c.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tea6415c.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tea6420.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tea6420.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ths7303.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ths8200.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ths8200_regs.h [media] media: i2c: ths8200: driver for TI video encoder 2013-06-17 09:52:31 -03:00
tlv320aic23b.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tvaudio.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tvp514x.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tvp514x_regs.h media: media/i2c: fix kerneldoc issues for media i2c headers 2021-03-22 10:23:43 +01:00
tvp5150.c media: i2c: tvp5150: check return value of devm_kasprintf() 2023-07-14 13:08:14 +02:00
tvp5150_reg.h media: i2c: Use the correct style for SPDX License Identifier 2019-11-10 17:47:14 +01:00
tvp7002.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tvp7002_reg.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
tw2804.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tw9903.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tw9906.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tw9910.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
uda1342.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
upd64031a.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
upd64083.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
video-i2c.c media: Explicitly include correct DT includes 2023-07-19 12:57:51 +02:00
vp27smpx.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
vpx3220.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
wm8739.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
wm8775.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00