linux-uconsole/drivers/misc
Marco Elver 941faf832d UPSTREAM: lkdtm: disable KASAN for rodata.o
[ Upstream commit 6d5a88cd0c ]

Building lkdtm with KASAN and Clang 11 or later results in the following
error when attempting to load the module:

  kernel tried to execute NX-protected page - exploit attempt? (uid: 0)
  BUG: unable to handle page fault for address: ffffffffc019cd70
  #PF: supervisor instruction fetch in kernel mode
  #PF: error_code(0x0011) - permissions violation
  ...
  RIP: 0010:asan.module_ctor+0x0/0xffffffffffffa290 [lkdtm]
  ...
  Call Trace:
   do_init_module+0x17c/0x570
   load_module+0xadee/0xd0b0
   __x64_sys_finit_module+0x16c/0x1a0
   do_syscall_64+0x34/0x50
   entry_SYSCALL_64_after_hwframe+0x44/0xa9

The reason is that rodata.o generates a dummy function that lives in
.rodata to validate that .rodata can't be executed; however, Clang 11 adds
KASAN globals support by generating module constructors to initialize
globals redzones.  When Clang 11 adds a module constructor to rodata.o, it
is also added to .rodata: any attempt to call it on initialization results
in the above error.

Therefore, disable KASAN instrumentation for rodata.o.

Link: https://lkml.kernel.org/r/20201214191413.3164796-1-elver@google.com
Signed-off-by: Marco Elver <elver@google.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Andrey Konovalov <andreyknvl@google.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Bug: 172318110
Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
Change-Id: I0a3662322bac8961b0f87ab5e8e87acfb1ac3ec5
2021-01-19 21:47:27 -08:00
..
altera-stapl
c2port
cardreader misc: rtsx: Add power saving functions and fix driving parameter 2020-09-16 17:30:37 +02:00
cb710
cxl cxl: Rework error message for incompatible slots 2020-08-25 01:31:32 +10:00
echo char: Replace HTTP links with HTTPS ones 2020-07-23 09:44:15 +02:00
eeprom misc: eeprom: at24: fix NVMEM name with custom AT24 device name 2020-12-04 10:46:36 +01:00
genwqe pci-v5.9-changes 2020-08-07 18:48:15 -07:00
habanalabs habanalabs: Fix memleak in hl_device_reset 2021-01-19 18:27:25 +01:00
ibmasm misc: ibmasm: dot_command: Demote function headers from kerneldoc 2020-07-01 15:08:03 +02:00
lis3lv02d
lkdtm UPSTREAM: lkdtm: disable KASAN for rodata.o 2021-01-19 21:47:27 -08:00
mei Revert "mei: virtio: virtualization frontend driver" 2020-12-06 10:36:17 +01:00
ocxl powerpc updates for 5.10 2020-10-16 12:21:15 -07:00
sgi-gru x86/platform/uv: Update Copyrights to conform to HPE standards 2020-10-07 09:10:07 +02:00
sgi-xp x86/platform/uv: Update Copyrights to conform to HPE standards 2020-10-07 09:10:07 +02:00
ti-st
uacce Char/Misc driver patches for 5.10-rc1 2020-10-15 10:01:51 -07:00
vmw_vmci misc: vmw_vmci: fix kernel info-leak by initializing dbells in vmci_ctx_get_chkpt_doorbells() 2021-01-06 14:56:52 +01:00
ad525x_dpot-i2c.c
ad525x_dpot-spi.c
ad525x_dpot.c
ad525x_dpot.h
apds990x.c
apds9802als.c
atmel-ssc.c
atmel_tclib.c
bh1770glc.c
cs5535-mfgpt.c
ds1682.c
dummy-irq.c
enclosure.c misc: enclosure: Update enclosure_remove_device() documentation to match reality 2020-07-01 15:05:37 +02:00
fastrpc.c misc: fastrpc: add ioctl for attaching to sensors pd 2020-09-16 17:30:37 +02:00
hisi_hikey_usb.c misc: hisi_hikey_usb: delete a stray tab 2020-09-22 18:54:00 +02:00
hmc6352.c
hpilo.c misc: hpilo: avoid a useless memset 2020-07-23 12:56:49 +02:00
hpilo.h hpilo: Replace one-element array with flexible-array member 2020-07-14 18:21:25 +02:00
ibmvmc.c mm, treewide: rename kzfree() to kfree_sensitive() 2020-08-07 11:33:22 -07:00
ibmvmc.h
ics932s401.c
isl29003.c
isl29020.c
Kconfig Linux 5.10-rc2 2020-11-02 12:03:50 +01:00
kgdbts.c kgdbts: switch to kernel_clone() 2020-08-20 13:12:59 +02:00
lattice-ecp3-config.c misc: lattice-ecp3-config: Remove set but clearly unused variable 'ret' 2020-07-01 15:05:37 +02:00
Makefile Linux 5.10-rc2 2020-11-02 12:03:50 +01:00
pch_phub.c misc: pch_phub: Remove superfluous descriptions to non-existent args 'offset_address' 2020-07-01 15:05:37 +02:00
pci_endpoint_test.c misc: pci_endpoint_test: fix return value of error branch 2020-12-30 11:53:45 +01:00
phantom.c
pti.c
pvpanic.c misc: pvpanic: Use devm_platform_ioremap_resource() 2020-09-22 18:53:30 +02:00
qcom-coincell.c
sram-exec.c char: Replace HTTP links with HTTPS ones 2020-07-23 09:44:15 +02:00
sram.c
sram.h
tifm_7xx1.c
tifm_core.c
tsl2550.c
uid_sys_stats.c ANDROID: uid_sys_stats: report uid_cputime stats in microseconds 2020-11-18 20:14:02 +00:00
vmw_balloon.c
xilinx_sdfec.c