linux/drivers
Guenter Roeck 79da533d3c hwmon: (nct6775) Fix crash in clear_caseopen
Paweł Marciniak reports the following crash, observed when clearing
the chassis intrusion alarm.

BUG: kernel NULL pointer dereference, address: 0000000000000028
PGD 0 P4D 0
Oops: 0000 [#1] PREEMPT SMP PTI
CPU: 3 PID: 4815 Comm: bash Tainted: G S                5.16.2-200.fc35.x86_64 #1
Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./Z97 Extreme4, BIOS P2.60A 05/03/2018
RIP: 0010:clear_caseopen+0x5a/0x120 [nct6775]
Code: 68 70 e8 e9 32 b1 e3 85 c0 0f 85 d2 00 00 00 48 83 7c 24 ...
RSP: 0018:ffffabcb02803dd8 EFLAGS: 00010246
RAX: 0000000000000000 RBX: 0000000000000002 RCX: 0000000000000000
RDX: ffff8e8808192880 RSI: 0000000000000000 RDI: ffff8e87c7509a68
RBP: 0000000000000000 R08: 0000000000000001 R09: 000000000000000a
R10: 000000000000000a R11: f000000000000000 R12: 000000000000001f
R13: ffff8e87c7509828 R14: ffff8e87c7509a68 R15: ffff8e88494527a0
FS:  00007f4db9151740(0000) GS:ffff8e8ebfec0000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000028 CR3: 0000000166b66001 CR4: 00000000001706e0
Call Trace:
 <TASK>
 kernfs_fop_write_iter+0x11c/0x1b0
 new_sync_write+0x10b/0x180
 vfs_write+0x209/0x2a0
 ksys_write+0x4f/0xc0
 do_syscall_64+0x3b/0x90
 entry_SYSCALL_64_after_hwframe+0x44/0xae

The problem is that the device passed to clear_caseopen() is the hwmon
device, not the platform device, and the platform data is not set in the
hwmon device. Store the pointer to sio_data in struct nct6775_data and
get if from there if needed.

Fixes: 2e7b988696 ("hwmon: (nct6775) Use superio_*() function pointers in sio_data.")
Cc: Denis Pauk <pauk.denis@gmail.com>
Cc: Bernhard Seibold <mail@bernhard-seibold.de>
Reported-by: Paweł Marciniak <pmarciniak@lodz.home.pl>
Tested-by: Denis Pauk <pauk.denis@gmail.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2022-01-24 14:32:47 -08:00
..
accessibility
acpi Merge branch 'akpm' (patches from Andrew) 2022-01-22 11:28:23 +02:00
amba
android
ata
atm
auxdisplay
base firmware_loader: move firmware sysctl to its own files 2022-01-22 08:33:35 +02:00
bcma
block bitmap patches for 5.17-rc1 2022-01-23 06:20:44 +02:00
bluetooth
bus
cdrom cdrom: simplify subdirectory registration with register_sysctl() 2022-01-22 08:33:35 +02:00
char random: move the random sysctl declarations to its own file 2022-01-22 08:33:35 +02:00
clk
clocksource
comedi
connector
counter
cpufreq
cpuidle
crypto
cxl
dax
dca
devfreq
dio
dma
dma-buf
edac
eisa
extcon
firewire
firmware
fpga
fsi
gnss
gpio
gpu bitmap patches for 5.17-rc1 2022-01-23 06:20:44 +02:00
greybus
hid HID: wacom: Avoid using stale array indicies to read contact count 2022-01-21 15:10:02 +01:00
hsi
hv
hwmon hwmon: (nct6775) Fix crash in clear_caseopen 2022-01-24 14:32:47 -08:00
hwspinlock
hwtracing
i2c
i3c
idle
iio bitmap patches for 5.17-rc1 2022-01-23 06:20:44 +02:00
infiniband bitmap patches for 5.17-rc1 2022-01-23 06:20:44 +02:00
input
interconnect
iommu
ipack
irqchip
isdn
leds
macintosh macintosh/mac_hid.c: simplify subdirectory registration with register_sysctl() 2022-01-22 08:33:35 +02:00
mailbox
mcb
md
media bitmap patches for 5.17-rc1 2022-01-23 06:20:44 +02:00
memory
memstick
message
mfd
misc
mmc bitmap patches for 5.17-rc1 2022-01-23 06:20:44 +02:00
most
mtd
mux
net bitmap patches for 5.17-rc1 2022-01-23 06:20:44 +02:00
nfc
ntb
nubus proc: remove PDE_DATA() completely 2022-01-22 08:33:37 +02:00
nvdimm
nvme
nvmem
of Devicetree fixes for v5.17, take 1: 2022-01-22 09:52:17 +02:00
opp
parisc Merge branch 'akpm' (patches from Andrew) 2022-01-22 11:28:23 +02:00
parport
pci bitmap patches for 5.17-rc1 2022-01-23 06:20:44 +02:00
pcmcia
perf
phy
pinctrl
platform proc: remove PDE_DATA() completely 2022-01-22 08:33:37 +02:00
pnp proc: remove PDE_DATA() completely 2022-01-22 08:33:37 +02:00
power
powercap
pps
ps3
ptp
pwm
rapidio
ras
regulator
remoteproc
reset
rpmsg
rtc
s390
sbus
scsi bitmap patches for 5.17-rc1 2022-01-23 06:20:44 +02:00
sh
siox
slimbus
soc bitmap patches for 5.17-rc1 2022-01-23 06:20:44 +02:00
soundwire
spi
spmi
ssb
staging
target
tc
tee
thermal
thunderbolt
tty bitmap patches for 5.17-rc1 2022-01-23 06:20:44 +02:00
uio
usb proc: remove PDE_DATA() completely 2022-01-22 08:33:37 +02:00
vdpa
vfio
vhost
video
virt bitmap patches for 5.17-rc1 2022-01-23 06:20:44 +02:00
virtio
visorbus
vlynq
vme
w1
watchdog
xen
zorro proc: remove PDE_DATA() completely 2022-01-22 08:33:37 +02:00
Kconfig
Makefile