Thadeu Lima de Souza Cascardo
092de5ac8c
i2c: cros-ec-tunnel: defer probe if parent EC is not present
commit 424eafe65647a8d6c690284536e711977153195a upstream.
When i2c-cros-ec-tunnel and the EC driver are built-in, the EC parent
device will not be found, leading to NULL pointer dereference.
That can also be reproduced by unbinding the controller driver and then
loading i2c-cros-ec-tunnel module (or binding the device).
[ 271.991245] BUG: kernel NULL pointer dereference, address: 0000000000000058
[ 271.998215] #PF: supervisor read access in kernel mode
[ 272.003351] #PF: error_code(0x0000) - not-present page
[ 272.008485] PGD 0 P4D 0
[ 272.011022] Oops: Oops: 0000 [#1] SMP NOPTI
[ 272.015207] CPU: 0 UID: 0 PID: 3859 Comm: insmod Tainted: G S 6.15.0-rc1-00004-g44722359ed83 #30 PREEMPT(full) 3c7fb39a552e7d949de2ad921a7d6588d3a4fdc5
[ 272.030312] Tainted: [S]=CPU_OUT_OF_SPEC
[ 272.034233] Hardware name: HP Berknip/Berknip, BIOS Google_Berknip.13434.356.0 05/17/2021
[ 272.042400] RIP: 0010:ec_i2c_probe+0x2b/0x1c0 [i2c_cros_ec_tunnel]
[ 272.048577] Code: 1f 44 00 00 41 57 41 56 41 55 41 54 53 48 83 ec 10 65 48 8b 05 06 a0 6c e7 48 89 44 24 08 4c 8d 7f 10 48 8b 47 50 4c 8b 60 78 <49> 83 7c 24 58 00 0f 84 2f 01 00 00 48 89 fb be 30 06 00 00 4c 9
[ 272.067317] RSP: 0018:ffffa32082a03940 EFLAGS: 00010282
[ 272.072541] RAX: ffff969580b6a810 RBX: ffff969580b68c10 RCX: 0000000000000000
[ 272.079672] RDX: 0000000000000000 RSI: 0000000000000282 RDI: ffff969580b68c00
[ 272.086804] RBP: 00000000fffffdfb R08: 0000000000000000 R09: 0000000000000000
[ 272.093936] R10: 0000000000000000 R11: ffffffffc0600000 R12: 0000000000000000
[ 272.101067] R13: ffffffffa666fbb8 R14: ffffffffc05b5528 R15: ffff969580b68c10
[ 272.108198] FS: 00007b930906fc40(0000) GS:ffff969603149000(0000) knlGS:0000000000000000
[ 272.116282] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 272.122024] CR2: 0000000000000058 CR3: 000000012631c000 CR4: 00000000003506f0
[ 272.129155] Call Trace:
[ 272.131606] <TASK>
[ 272.133709] ? acpi_dev_pm_attach+0xdd/0x110
[ 272.137985] platform_probe+0x69/0xa0
[ 272.141652] really_probe+0x152/0x310
[ 272.145318] __driver_probe_device+0x77/0x110
[ 272.149678] driver_probe_device+0x1e/0x190
[ 272.153864] __driver_attach+0x10b/0x1e0
[ 272.157790] ? driver_attach+0x20/0x20
[ 272.161542] bus_for_each_dev+0x107/0x150
[ 272.165553] bus_add_driver+0x15d/0x270
[ 272.169392] driver_register+0x65/0x110
[ 272.173232] ? cleanup_module+0xa80/0xa80 [i2c_cros_ec_tunnel 3a00532f3f4af4a9eade753f86b0f8dd4e4e5698]
[ 272.182617] do_one_initcall+0x110/0x350
[ 272.186543] ? security_kernfs_init_security+0x49/0xd0
[ 272.191682] ? __kernfs_new_node+0x1b9/0x240
[ 272.195954] ? security_kernfs_init_security+0x49/0xd0
[ 272.201093] ? __kernfs_new_node+0x1b9/0x240
[ 272.205365] ? kernfs_link_sibling+0x105/0x130
[ 272.209810] ? kernfs_next_descendant_post+0x1c/0xa0
[ 272.214773] ? kernfs_activate+0x57/0x70
[ 272.218699] ? kernfs_add_one+0x118/0x160
[ 272.222710] ? __kernfs_create_file+0x71/0xa0
[ 272.227069] ? sysfs_add_bin_file_mode_ns+0xd6/0x110
[ 272.232033] ? internal_create_group+0x453/0x4a0
[ 272.236651] ? __vunmap_range_noflush+0x214/0x2d0
[ 272.241355] ? __free_frozen_pages+0x1dc/0x420
[ 272.245799] ? free_vmap_area_noflush+0x10a/0x1c0
[ 272.250505] ? load_module+0x1509/0x16f0
[ 272.254431] do_init_module+0x60/0x230
[ 272.258181] __se_sys_finit_module+0x27a/0x370
[ 272.262627] do_syscall_64+0x6a/0xf0
[ 272.266206] ? do_syscall_64+0x76/0xf0
[ 272.269956] ? irqentry_exit_to_user_mode+0x79/0x90
[ 272.274836] entry_SYSCALL_64_after_hwframe+0x55/0x5d
[ 272.279887] RIP: 0033:0x7b9309168d39
[ 272.283466] Code: 5b 41 5c 5d c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d af 40 0c 00 f7 d8 64 89 01 8
[ 272.302210] RSP: 002b:00007fff50f1a288 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[ 272.309774] RAX: ffffffffffffffda RBX: 000058bf9b50f6d0 RCX: 00007b9309168d39
[ 272.316905] RDX: 0000000000000000 RSI: 000058bf6c103a77 RDI: 0000000000000003
[ 272.324036] RBP: 00007fff50f1a2e0 R08: 00007fff50f19218 R09: 0000000021ec4150
[ 272.331166] R10: 000058bf9b50f7f0 R11: 0000000000000246 R12: 0000000000000000
[ 272.338296] R13: 00000000fffffffe R14: 0000000000000000 R15: 000058bf6c103a77
[ 272.345428] </TASK>
[ 272.347617] Modules linked in: i2c_cros_ec_tunnel(+)
[ 272.364585] gsmi: Log Shutdown Reason 0x03
Returning -EPROBE_DEFER will allow the device to be bound once the
controller is bound, in the case of built-in drivers.
Fixes: 9d230c9e4f ("i2c: ChromeOS EC tunnel driver")
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Cc: <stable@vger.kernel.org> # v3.16+
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://lore.kernel.org/r/20250407-null-ec-parent-v1-1-f7dda62d3110@igalia.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
2025-05-02 07:39:20 +02:00 |
| .. |
|
accessibility
|
|
|
|
acpi
|
ACPI: resource: Skip IRQ override on ASUS Vivobook 14 X1404VAP
|
2025-04-10 14:29:43 +02:00 |
|
amba
|
|
|
|
android
|
binder: fix UAF caused by offsets overwrite
|
2024-09-12 11:03:55 +02:00 |
|
ata
|
ahci: add PCI ID for Marvell 88SE9215 SATA Controller
|
2025-05-02 07:39:10 +02:00 |
|
atm
|
atm: idt77252: prevent use after free in dequeue_rx()
|
2024-09-04 13:14:51 +02:00 |
|
auxdisplay
|
|
|
|
base
|
PM: sleep: Fix handling devices with direct_complete set on errors
|
2025-04-10 14:29:40 +02:00 |
|
bcma
|
|
|
|
block
|
nbd: don't allow reconnect after disconnect
|
2025-03-13 12:42:52 +01:00 |
|
bluetooth
|
Bluetooth: btrtl: Prevent potential NULL dereference
|
2025-05-02 07:39:19 +02:00 |
|
bus
|
|
|
|
cdrom
|
|
|
|
char
|
ipmi: ipmb: Add check devm_kasprintf() returned value
|
2025-03-13 12:42:53 +01:00 |
|
clk
|
clk: amlogic: g12a: fix mmc A peripheral clock
|
2025-04-10 14:29:41 +02:00 |
|
clocksource
|
clockevents/drivers/i8253: Fix stop sequence for timer 0
|
2025-04-10 14:29:34 +02:00 |
|
connector
|
|
|
|
counter
|
counter: stm32-lptimer-cnt: fix error handling when enabling
|
2025-04-10 14:29:39 +02:00 |
|
cpufreq
|
cpufreq: governor: Fix negative 'idle_time' handling in dbs_update()
|
2025-04-10 14:29:39 +02:00 |
|
cpuidle
|
|
|
|
crypto
|
crypto: ccp - Fix check for the primary ASP device
|
2025-05-02 07:39:16 +02:00 |
|
dax
|
|
|
|
dca
|
|
|
|
devfreq
|
|
|
|
dio
|
|
|
|
dma
|
dmaengine: ti: edma: fix OF node reference leaks in edma_driver
|
2025-03-13 12:42:59 +01:00 |
|
dma-buf
|
udmabuf: also check for F_SEAL_FUTURE_WRITE
|
2025-01-09 13:23:29 +01:00 |
|
edac
|
EDAC/ie31200: Fix the error path order of ie31200_init()
|
2025-04-10 14:29:39 +02:00 |
|
eisa
|
|
|
|
extcon
|
|
|
|
firewire
|
|
|
|
firmware
|
firmware: imx-scu: fix OF node leak in .probe()
|
2025-04-10 14:29:37 +02:00 |
|
fpga
|
|
|
|
fsi
|
|
|
|
gnss
|
|
|
|
gpio
|
gpio: zynq: Fix wakeup source leaks on device unbind
|
2025-05-02 07:39:17 +02:00 |
|
gpu
|
drm/mediatek: mtk_dpi: Explicitly manage TVD clock in power on/off
|
2025-05-02 07:39:12 +02:00 |
|
greybus
|
|
|
|
hid
|
HID: pidff: Fix null pointer dereference in pidff_find_fields
|
2025-05-02 07:39:09 +02:00 |
|
hsi
|
HSI: ssi_protocol: Fix use after free vulnerability in ssi_protocol Driver Due to Race Condition
|
2025-05-02 07:39:18 +02:00 |
|
hv
|
Drivers: hv: vmbus: Don't release fb_mmio resource in vmbus_free_mmio()
|
2025-04-10 14:29:35 +02:00 |
|
hwmon
|
hwmon: (nct6775-core) Fix out of bounds access for NCT679{8,9}
|
2025-04-10 14:29:42 +02:00 |
|
hwspinlock
|
|
|
|
hwtracing
|
coresight: catu: Fix number of pages while using 64k pages
|
2025-04-10 14:29:41 +02:00 |
|
i2c
|
i2c: cros-ec-tunnel: defer probe if parent EC is not present
|
2025-05-02 07:39:20 +02:00 |
|
i3c
|
i3c: Add NULL pointer check in i3c_master_queue_ibi()
|
2025-05-02 07:39:15 +02:00 |
|
ide
|
|
|
|
idle
|
|
|
|
iio
|
iio: accel: mma8452: Ensure error return on failure to matching oversampling ratio
|
2025-04-10 14:29:41 +02:00 |
|
infiniband
|
RDMA/usnic: Fix passing zero to PTR_ERR in usnic_ib_pci_probe()
|
2025-05-02 07:39:19 +02:00 |
|
input
|
Input: xpad - add support for wooting two he (arm)
|
2025-02-01 18:18:54 +01:00 |
|
interconnect
|
|
|
|
iommu
|
iommu/vt-d: Handle volatile descriptor status read
|
2024-09-12 11:03:53 +02:00 |
|
ipack
|
|
|
|
irqchip
|
irqchip/sunxi-nmi: Add missing SKIP_WAKE flag
|
2025-02-01 18:18:52 +01:00 |
|
isdn
|
mISDN: Fix a use after free in hfcmulti_tx()
|
2024-08-19 05:33:42 +02:00 |
|
leds
|
leds: lp8860: Write full EEPROM, not only half of it
|
2025-03-13 12:43:06 +01:00 |
|
lightnvm
|
|
|
|
macintosh
|
macintosh/therm_windtunnel: fix module unload.
|
2024-08-19 05:33:34 +02:00 |
|
mailbox
|
mailbox: bcm2835: Fix timeout during suspend mode
|
2024-11-08 16:20:35 +01:00 |
|
mcb
|
|
|
|
md
|
dm-integrity: set ti->error on memory allocation failure
|
2025-05-02 07:39:16 +02:00 |
|
media
|
media: venus: hfi_parser: add check to avoid out of bound access
|
2025-05-02 07:39:15 +02:00 |
|
memory
|
|
|
|
memstick
|
memstick: rtsx_usb_ms: Fix slab-use-after-free in rtsx_usb_ms_drv_remove
|
2025-04-10 14:29:39 +02:00 |
|
message
|
scsi: fusion: Remove unused variable 'rc'
|
2024-12-14 19:44:29 +01:00 |
|
mfd
|
mfd: sm501: Switch to BIT() to mitigate integer overflows
|
2025-04-10 14:29:41 +02:00 |
|
misc
|
eeprom: digsy_mtc: Make GPIO lookup table match the device
|
2025-03-13 12:43:33 +01:00 |
|
mmc
|
mmc: sdhci-pxav3: set NEED_RSP_BUSY capability
|
2025-04-10 14:29:43 +02:00 |
|
mtd
|
mtd: rawnand: Add status chack in r852_ready()
|
2025-05-02 07:39:16 +02:00 |
|
mux
|
|
|
|
net
|
net: b53: enable BPDU reception for management port
|
2025-05-02 07:39:19 +02:00 |
|
nfc
|
nfc: pn533: Add poll mod list filling check
|
2024-09-04 13:15:04 +02:00 |
|
ntb
|
ntb: use 64-bit arithmetic for the MSI doorbell mask
|
2025-05-02 07:39:17 +02:00 |
|
nubus
|
|
|
|
nvdimm
|
nvdimm: rectify the illogical code within nd_dax_probe()
|
2024-12-14 19:44:54 +01:00 |
|
nvme
|
nvme: only allow entering LIVE from CONNECTING state
|
2025-04-10 14:29:36 +02:00 |
|
nvmem
|
nvmem: core: improve range check for nvmem_cell_write()
|
2025-03-13 12:43:10 +01:00 |
|
of
|
of/irq: Fix device node refcount leakages in of_irq_init()
|
2025-05-02 07:39:17 +02:00 |
|
opp
|
|
|
|
oprofile
|
|
|
|
parisc
|
|
|
|
parport
|
parport_pc: add support for ASIX AX99100
|
2025-03-13 12:43:19 +01:00 |
|
pci
|
PCI: Fix reference leak in pci_alloc_child_bus()
|
2025-05-02 07:39:17 +02:00 |
|
pcmcia
|
pcmcia: Use resource_size function on resource object
|
2024-09-12 11:03:52 +02:00 |
|
perf
|
perf: arm_pmu: Don't disable counter in armpmu_add()
|
2025-05-02 07:39:09 +02:00 |
|
phy
|
phy: exynos5-usbdrd: fix MPLL_MULTIPLIER and SSC_REFCLKSEL masks in refclk
|
2025-03-13 12:43:25 +01:00 |
|
pinctrl
|
pinctrl: renesas: rza2: Fix missing of_node_put() call
|
2025-04-10 14:29:40 +02:00 |
|
platform
|
asus-laptop: Fix an uninitialized variable
|
2025-05-02 07:39:19 +02:00 |
|
pnp
|
|
|
|
power
|
power: supply: max77693: Fix wrong conversion of charge input threshold value
|
2025-04-10 14:29:41 +02:00 |
|
powercap
|
powercap: call put_device() on an error path in powercap_register_control_type()
|
2025-04-10 14:29:36 +02:00 |
|
pps
|
pps: Fix a use-after-free
|
2025-03-13 12:43:19 +01:00 |
|
ps3
|
|
|
|
ptp
|
ptp: Ensure info->enable callback is always set
|
2025-03-13 12:43:11 +01:00 |
|
pwm
|
pwm: mediatek: always use bus clock for PWM on MT7622
|
2025-05-02 07:39:18 +02:00 |
|
rapidio
|
rapidio: fix an API misues when rio_add_net() fails
|
2025-03-13 12:43:28 +01:00 |
|
ras
|
|
|
|
regulator
|
regulator: of: Implement the unwind path of of_regulator_match()
|
2025-03-13 12:42:54 +01:00 |
|
remoteproc
|
remoteproc: imx_rproc: Skip over memory region when node value is NULL
|
2024-08-19 05:33:44 +02:00 |
|
reset
|
reset: berlin: fix OF node leak in probe() error path
|
2024-11-08 16:20:28 +01:00 |
|
rpmsg
|
rpmsg: glink: Propagate TX failures in intentless mode as well
|
2024-12-14 19:44:39 +01:00 |
|
rtc
|
rtc: pcf85063: fix potential OOB write in PCF85063 NVMEM read
|
2025-03-13 12:42:59 +01:00 |
|
s390
|
s390/cio: Fix CHPID "configure" attribute caching
|
2025-04-10 14:29:36 +02:00 |
|
sbus
|
|
|
|
scsi
|
scsi: iscsi: Fix missing scsi_host_put() in error path
|
2025-05-02 07:39:18 +02:00 |
|
sfi
|
|
|
|
sh
|
sh: clk: Fix clk_enable() to return 0 on NULL clk
|
2025-01-09 13:23:29 +01:00 |
|
siox
|
|
|
|
slimbus
|
slimbus: messaging: Free transaction ID in delayed interrupt scenario
|
2025-03-13 12:43:33 +01:00 |
|
soc
|
soc: qcom: smem_state: fix missing of_node_put in error path
|
2025-03-13 12:43:09 +01:00 |
|
soundwire
|
soundwire: stream: Revert "soundwire: stream: fix programming slave ports for non-continous port maps"
|
2024-11-08 16:20:25 +01:00 |
|
spi
|
spi-mxs: Fix chipselect glitch
|
2025-03-13 12:43:03 +01:00 |
|
spmi
|
|
|
|
ssb
|
ssb: Fix division by zero issue in ssb_calc_clock_rate
|
2024-09-04 13:14:53 +02:00 |
|
staging
|
staging: media: imx: fix OF node leak in imx_media_add_of_subdevs()
|
2025-03-13 12:42:58 +01:00 |
|
target
|
genetlink: hold RCU in genlmsg_mcast()
|
2024-11-08 16:20:50 +01:00 |
|
tc
|
|
|
|
tee
|
tee: optee: Fix supplicant wait loop
|
2025-03-13 12:43:23 +01:00 |
|
thermal
|
thermal/drivers/rockchip: Add missing rk3328 mapping entry
|
2025-05-02 07:39:16 +02:00 |
|
thunderbolt
|
|
|
|
tty
|
serial: 8250_dma: terminate correct DMA in tx_dma_flush()
|
2025-04-10 14:29:39 +02:00 |
|
uio
|
Drivers: hv: vmbus: Fix rescind handling in uio_hv_generic
|
2024-09-12 11:03:55 +02:00 |
|
usb
|
USB: serial: option: match on interface class for Telit FN990B
|
2025-04-10 14:29:37 +02:00 |
|
vfio
|
vfio/pci: Enable iowrite64 and ioread64 for vfio pci
|
2025-03-13 12:43:13 +01:00 |
|
vhost
|
|
|
|
video
|
fbdev: omapfb: Add 'plane' value check
|
2025-05-02 07:39:12 +02:00 |
|
virt
|
|
|
|
virtio
|
|
|
|
visorbus
|
|
|
|
vlynq
|
|
|
|
vme
|
|
|
|
w1
|
|
|
|
watchdog
|
watchdog: mediatek: Make sure system reset gets asserted in mtk_wdt_restart()
|
2024-12-14 19:44:44 +01:00 |
|
xen
|
xenfs/xensyms: respect hypervisor's "next" indication
|
2025-05-02 07:39:14 +02:00 |
|
zorro
|
|
|
|
Kconfig
|
|
|
|
Makefile
|
|
|