android_kernel_motorola_sm6375/drivers
Repository files (latest commit first)
Filename Latest commit message Latest commit date
LuK1337 aba9e36d0f
input: fingerprint: etxxx: Fix CFI failure on module init
[    2.458802] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000010
[    2.459516] Internal error: Oops: 96000005 [#1] PREEMPT SMP
[    2.459788] Modules linked in: ec617_drv(+) wcd9xxx_dlkm(+) bolero_cdc_dlkm(+) mbhc_dlkm stub_dlkm q6_dlkm adsp_loader_dlkm leds_aw2016 wcd937x_slave_dlkm rdbg focaltech_fts sec_ts_drv(+) p73 btpower apr_dlkm wcd938x_slave_dlkm wsa881x_analog_dlkm bu520x1nvx q6_notifier_dlkm rmnet_shs wcd_core_dlkm rmnet_offload q6_pdr_dlkm haptic snd_event_dlkm rmnet_core swr_dlkm rmnet_ctl snx0
[    2.460075] CPU: 2 PID: 546 Comm: modprobe Tainted: G S                5.4.302-qgki-g3972ebf038eb #3
[    2.460221] Hardware name: Sony Mobile Communications. PDX225(BLAIR v4) (DT)
[    2.460285] pstate: 80400005 (Nzcv daif +PAN -UAO)
[    2.460398] pc : __cfi_check_fail+0x4/0x50 [ec617_drv]
[    2.460457] lr : __cfi_check+0x1ac/0x1e0 [ec617_drv]
[    2.460912] x21: 02b3a43e29242445 x20: 0000000000000010
[    2.462187] Call trace:
[    2.462240]  __cfi_check_fail+0x4/0x50 [ec617_drv]
[    2.462332]  __cfi_slowpath+0x10c/0x168
[    2.462383]  do_one_initcall+0x1dc/0x384
[    2.462435]  do_init_module+0x4c/0x204
[    2.462522]  load_module+0x1734/0x18c0
[    2.462569]  __arm64_sys_finit_module+0xb4/0xf0
[    2.462617]  el0_svc_common+0xc0/0x1a8
[    2.462698]  el0_svc_handler+0x24/0x70
[    2.462745]  el0_svc+0x8/0x100
[    2.462877] ---[ end trace 711a96c503b0de92 ]---
[    2.481911] Kernel panic - not syncing: Fatal exception

module_init()/module_exit() define init_module/cleanup_module as aliases
of the given functions. With clang r584948 and cross-DSO CFI, such an
alias only gets its own jump table entry when the aliasee has internal
linkage. Since egisfp_init()/egisfp_exit() were declared non-static,
modpost ended up pointing __this_module.init at the raw .init.text
address instead of init_module.cfi_jt:

  R_AARCH64_ABS64  init_module + 0
  R_AARCH64_ABS64  cleanup_module + 0

__cfi_check() then compared the initcall pointer (type id
02b3a43e29242445) against egisfp_init.cfi_jt, failed, and jumped to
__cfi_check_fail(), which faulted while dereferencing its bogus diag
argument.

Make both functions static, as they should have been in the first place.
The relocations now resolve to the jump table:

  R_AARCH64_ABS64  init_module.cfi_jt + 0
  R_AARCH64_ABS64  cleanup_module.cfi_jt + 0

Assisted-by: ClaudeCode:claude-opus-5
Change-Id: I3bf5a698bc5103e1fe0ae13e4c9c52cad9b41c7e
2026-08-30 21:48:49 +03:00
..
accessibility
acpi
amba
android
ata
atm
auxdisplay
backlight
base
bcma
block
bluetooth
bus
cdrom
char
clk
clocksource
connector
counter
cpufreq
cpuidle
crypto
dax
dca
devfreq
dio
dma
dma-buf
edac
eisa
ese
extcon
firewire
firmware
fm
fpga
fsi
gnss
gpio
gpu
greybus
gud
hid
hsi
hv
hwmon
hwspinlock
hwtracing
i2c
i3c
ide
idle
iio
infiniband
input input: fingerprint: etxxx: Fix CFI failure on module init 2026-08-30 21:48:49 +03:00
interconnect
iommu
ipack
irqchip
isdn
leds
lightnvm
macintosh
mailbox
mcb
md
media
memory
memstick
message
mfd
misc
mmc
mmi_annotate
mmi_info
mmi_muc_uart
mmi_relay
moto_f_diag
moto_f_mass_storage
moto_f_usbnet
moto_mm
moto_mmap_fault
moto_swap
mtd
mux
net
nfc
ntb
nubus
nvdimm
nvme
nvmem
of
opp
oprofile
parisc
parport
pci
pcmcia
perf
phy
pinctrl
platform
pnp
power
powercap
pps
ps3
ptp
pwm
rapidio
ras
regulator
remoteproc
reset
rpmsg
rtc
s390
sbus
scsi
security/moto_kern_prot
sensors
sfi
sh
siox
slimbus
soc
soundwire
spi
spmi
ssb
staging Merge remote-tracking branch 'sm8350/lineage-20' into lineage-23.2 2026-08-30 17:25:54 +03:00
target
tc
tee
thermal
thunderbolt
tty Merge remote-tracking branch 'sm8350/lineage-20' into lineage-23.2 2026-08-11 03:25:50 +03:00
tzlog_dump
uio
usb
uwb
vfio
vhost
video
virt
virtio
visorbus
vlynq
vme
w1
watchdog
watchdog_cpu_ctx
watchdogtest
wlan_antenna
xen
zorro
Kconfig
Makefile
OWNERS