projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
565cbaa
)
ARM: 9203/1: kconfig: fix MODULE_PLTS for KASAN with KASAN_VMALLOC
author
Lecopzer Chen
<lecopzer.chen@mediatek.com>
Wed, 27 Apr 2022 14:30:00 +0000
(15:30 +0100)
committer
Russell King (Oracle)
<rmk+kernel@armlinux.org.uk>
Thu, 28 Jul 2022 14:09:13 +0000
(15:09 +0100)
When we run out of module space address with ko insertion,
and with MODULE_PLTS, module would turn to try to find memory
from VMALLOC address space.
Unfortunately, with KASAN enabled, VMALLOC doesn't work without
KASAN_VMALLOC, thus select KASAN_VMALLOC by default.
8<--- cut here ---
Unable to handle kernel paging request at virtual address
bd300860
[
bd300860
] *pgd=
41cf1811
, *pte=
41cf26df
, *ppte=
41cf265f
Internal error: Oops: 80f [#1] PREEMPT SMP ARM
Modules linked in: hello(O+)
CPU: 0 PID: 89 Comm: insmod Tainted: G O 5.16.0-rc6+ #19
Hardware name: Generic DT based system
PC is at mmioset+0x30/0xa8
LR is at 0x0
pc : [<
c077ed30
>] lr : [<
00000000
>] psr:
20000013
sp :
c451fc18
ip :
bd300860
fp :
c451fc2c
r10:
f18042cc
r9 :
f18042d0
r8 :
00000000
r7 :
00000001
r6 :
00000003
r5 :
01312d00
r4 :
f1804300
r3 :
00000000
r2 :
00262560
r1 :
00000000
r0 :
bd300860
Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
Control:
10c5387d
Table:
43e9406a
DAC:
00000051
Register r0 information: non-paged memory
Register r1 information: NULL pointer
Register r2 information: non-paged memory
Register r3 information: NULL pointer
Register r4 information: 4887-page vmalloc region starting at 0xf1802000 allocated at load_module+0x14f4/0x32a8
Register r5 information: non-paged memory
Register r6 information: non-paged memory
Register r7 information: non-paged memory
Register r8 information: NULL pointer
Register r9 information: 4887-page vmalloc region starting at 0xf1802000 allocated at load_module+0x14f4/0x32a8
Register r10 information: 4887-page vmalloc region starting at 0xf1802000 allocated at load_module+0x14f4/0x32a8
Register r11 information: non-slab/vmalloc memory
Register r12 information: non-paged memory
Process insmod (pid: 89, stack limit = 0xc451c000)
Stack: (0xc451fc18 to 0xc4520000)
fc00:
f18041f0
c04803a4
fc20:
c451fc44
c451fc30
c048053c
c0480358
f1804030
01312cff
c451fc64
c451fc48
fc40:
c047f330
c0480500
f18040c0
c1b52ccc
00000001
c5be7700
c451fc74
c451fc68
fc60:
f1802098
c047f300
c451fcb4
c451fc78
c026106c
f180208c
c4880004
00000000
fc80:
c451fcb4
bf001000
c044ff48
c451fec0
f18040c0
00000000
c1b54cc4
00000000
fca0:
c451fdf0
f1804268
c451fe64
c451fcb8
c0264e88
c0260d48
ffff8000
00007fff
fcc0:
f18040c0
c025cd00
c451fd14
00000003
0157f008
f1804258
f180425c
f1804174
fce0:
f1804154
f180424c
f18041f0
f180414c
f1804178
f18041c0
bf0025d4
188a3fa8
fd00:
0000009e
f1804170
f2b18000
c451ff10
c0d92e40
f180416c
c451feec
00000001
fd20:
00000000
c451fec8
c451fe20
c451fed0
f18040cc
00000000
f17ea000
c451fdc0
fd40:
41b58ab3
c1387729
c0261c28
c047fb5c
c451fe2c
c451fd60
c0525308
c048033c
fd60:
188a3fb4
c3ccb090
c451fe00
c3ccb080
00000000
00000000
00016920
00000000
fd80:
c02d0388
c047f55c
c02d0388
00000000
c451fddc
c451fda0
c02d0388
00000000
fda0:
41b58ab3
c13a72d0
c0524ff0
c1705f48
c451fdfc
c451fdc0
c02d0388
c047f55c
fdc0:
00016920
00000000
00000003
c1bb2384
c451fdfc
c3ccb080
c1bb2384
00000000
fde0:
00000000
00000000
00000000
00000000
c451fe1c
c451fe00
c04e9d70
c1705f48
fe00:
c1b54cc4
c1bbc71c
c3ccb080
00000000
c3ccb080
00000000
00000003
c451fec0
fe20:
c451fe64
c451fe30
c0525918
c0524ffc
c451feb0
c1705f48
00000000
c1b54cc4
fe40:
b78a3fd0
c451ff60
00000000
0157f008
00000003
c451fec0
c451ffa4
c451fe68
fe60:
c0265480
c0261c34
c451feb0
7fffffff
00000000
00000002
00000000
c4880000
fe80:
41b58ab3
c138777b
c02652cc
c04803ec
000a0000
c451ff00
ffffff9c
b6ac9f60
fea0:
c451fed4
c1705f48
c04a4a90
b78a3fdc
f17ea000
ffffff9c
b6ac9f60
c0100244
fec0:
f17ea21a
f17ea300
f17ea000
00016920
f1800240
f18000ac
f17fb7dc
01316000
fee0:
013161b0
00002590
01316250
00000000
00000000
00000000
00002580
00000029
ff00:
0000002a
00000013
00000000
0000000c
00000000
00000000
0157f004
c451ffb0
ff20:
c1719be0
aed6f410
c451ff74
c451ff38
c0c4103c
c0c407d0
c451ff84
c451ff48
ff40:
00000805
c02c8658
c1604230
c1719c30
00000805
0157f004
00000005
c451ffb0
ff60:
c1719be0
aed6f410
c451ffac
c451ff78
c0122130
c1705f48
c451ffac
0157f008
ff80:
00000006
0000005f
0000017b
c0100244
c4880000
0000017b
00000000
c451ffa8
ffa0:
c0100060
c02652d8
0157f008
00000006
00000003
0157f008
00000000
b6ac9f60
ffc0:
0157f008
00000006
0000005f
0000017b
00000000
00000000
aed85f74
00000000
ffe0:
b6ac9cd8
b6ac9cc8
00030200
aecf2d60
a0000010
00000003
00000000
00000000
Backtrace:
[<
c048034c
>] (kasan_poison) from [<
c048053c
>] (kasan_unpoison+0x48/0x5c)
[<
c04804f4
>] (kasan_unpoison) from [<
c047f330
>] (__asan_register_globals+0x3c/0x64)
r5:
01312cff
r4:
f1804030
[<
c047f2f4
>] (__asan_register_globals) from [<
f1802098
>] (_sub_I_65535_1+0x18/0xf80 [hello])
r7:
c5be7700
r6:
00000001
r5:
c1b52ccc
r4:
f18040c0
[<
f1802080
>] (_sub_I_65535_1 [hello]) from [<
c026106c
>] (do_init_module+0x330/0x72c)
[<
c0260d3c
>] (do_init_module) from [<
c0264e88
>] (load_module+0x3260/0x32a8)
r10:
f1804268
r9:
c451fdf0
r8:
00000000
r7:
c1b54cc4
r6:
00000000
r5:
f18040c0
r4:
c451fec0
[<
c0261c28
>] (load_module) from [<
c0265480
>] (sys_finit_module+0x1b4/0x1e8)
r10:
c451fec0
r9:
00000003
r8:
0157f008
r7:
00000000
r6:
c451ff60
r5:
b78a3fd0
r4:
c1b54cc4
[<
c02652cc
>] (sys_finit_module) from [<
c0100060
>] (ret_fast_syscall+0x0/0x1c)
Exception stack(0xc451ffa8 to 0xc451fff0)
ffa0:
0157f008
00000006
00000003
0157f008
00000000
b6ac9f60
ffc0:
0157f008
00000006
0000005f
0000017b
00000000
00000000
aed85f74
00000000
ffe0:
b6ac9cd8
b6ac9cc8
00030200
aecf2d60
r10:
0000017b
r9:
c4880000
r8:
c0100244
r7:
0000017b
r6:
0000005f
r5:
00000006
r4:
0157f008
Code:
e92d4100
e1a08001
e1a0e003
e2522040
(
a8ac410a
)
---[ end trace
df6e12843197b6f5
]---
Signed-off-by: Lecopzer Chen <lecopzer.chen@mediatek.com>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
arch/arm/Kconfig
patch
|
blob
|
history
diff --git
a/arch/arm/Kconfig
b/arch/arm/Kconfig
index 545d2d4a492bfe429774e1187ffe25d39469bce6..8a4954bc16529e140a37a606b29a7a816819d0ae 100644
(file)
--- a/
arch/arm/Kconfig
+++ b/
arch/arm/Kconfig
@@
-1415,6
+1415,7
@@
config HW_PERF_EVENTS
config ARM_MODULE_PLTS
bool "Use PLTs to allow module memory to spill over into vmalloc area"
depends on MODULES
+ select KASAN_VMALLOC if KASAN
default y
help
Allocate PLTs when loading modules so that jumps and calls whose