Subject: Re: [next] x86: BUG: kernel NULL pointer dereference, address:

From: David Hildenbrand <[email-masked]>
Date: Fri, 29 Apr 2022 14:40:14 +0200

On 29.04.22 13:50, Naresh Kamboju wrote:
> Following kernel BUG noticed on Linux next-20220428 on x86_64 while running
> selftests x86 fsgsbase_64 test cases.
> 
> Reported-by: Linux Kernel Functional Testing <[email-masked]>
> 

My gut feeling is that this could be related to the maple tree patches,
but might be just wrong.

> 
> Test log:
> ----------
> # selftests: x86: fsgsbase_64
> # [OK] GSBASE started at 1
> # [RUN] Set GS = 0x7, read GSBASE
> # [OK] GSBASE reads as 0x1 with invalid GS
> # FSGSBASE instructions are enabled
> # [RUN] ARCH_SET_GS to 0x0
> # [OK] GSBASE was set as expected (selector 0x0)
> # [OK] ARCH_GET_GS worked as expected (selector 0x0)
> # [RUN] ARCH_SET_GS to 0x1
> # [OK] GSBASE was set as expected (selector 0x0)
> # [OK] ARCH_GET_GS worked as exp[  199.295202] BUG: kernel NULL
> pointer dereference, address: 0000000000000000
> [  199.302779] #PF: supervisor read access in kernel mode
> [  199.307918] #PF: error_code(0x0000) - not-present page
> [  199.313057] PGD 8000000145f05067 P4D 8000000145f05067 PUD 145f04067 PMD 0
> [  199.319930] Oops: 0000 [#1] PREEMPT SMP PTI
> [  199.324117] CPU: 1 PID: 2948 Comm: sysret_rip_64 Tainted: G
>      K   5.18.0-rc4-next-20220428 #1
> [  199.333587] Hardware name: Supermicro SYS-5019S-ML/X11SSH-F, BIOS
> 2.2 05/23/2018
> [  199.340972] RIP: 0010:copy_vma+0x61/0x220
> [  199.344983] Code: 48 89 45 d0 31 c0 49 8b 07 49 83 7f 60 00 48 89
> 45 b8 0f 84 47 01 00 00 48 8d 55 c8 4c 89 ee 4c 89 f7 4c 01 eb e8 2f
> ec ff ff <48> 39 18 72 7e 4d 8b 47 20 4d 8b 4f 58 6a 00 48 89 d9 41 ff
> b7 90
> [  199.363722] RSP: 0018:ffffacf8813bfca0 EFLAGS: 00010292
> [  199.368946] RAX: 0000000000000000 RBX: 00007fffffffe000 RCX: 0000000000000001
> [  199.376070] RDX: ffffffffffffffff RSI: ffff9c6d04959f00 RDI: ffffacf8813bfc38
> [  199.383193] RBP: ffffacf8813bfcf0 R08: 000000000000000b R09: 000000000000000b
> [  199.390317] R10: ffff9c6d03e392f0 R11: 0000000000000058 R12: ffffacf8813bfd48
> [  199.397441] R13: 00007fffffffd000 R14: ffff9c6ccc331d40 R15: ffff9c6d03e392f0
> [  199.404566] FS:  00007fce67a16b80(0000) GS:ffff9c6e2fa80000(0000)
> knlGS:0000000000000000
> [  199.412644] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  199.418391] CR2: 0000000000000000 CR3: 0000000156398002 CR4: 00000000003706e0
> [  199.425521] DR0: 00000000006021a8 DR1: 0000000000400ae9 DR2: 0000000000000000
> [  199.432647] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000600
> [  199.439778] Call Trace:
> [  199.442221]  <TASK>
> [  199.444320]  move_vma+0x131/0x4a0
> [  199.447644]  __do_sys_mremap+0x35c/0x890
> [  199.451578]  ? syscall_trace_enter.constprop.0+0x176/0x230
> [  199.457068]  __x64_sys_mremap+0x25/0x30
> [  199.460907]  do_syscall_64+0x5c/0x80
> [  199.464486]  ? do_syscall_64+0x69/0x80
> [  199.468239]  ? syscall_exit_to_user_mode+0x3a/0x50
> [  199.473031]  ? do_syscall_64+0x69/0x80
> [  199.476786]  ? asm_exc_general_protection+0x8/0x30
> [  199.481576]  entry_SYSCALL_64_after_hwframe+0x44/0xae
> [  199.486631] RIP: 0033:0x7fce66f10bda
> [  199.490208] Code: 73 01 c3 48 8b 0d be a2 2b 00 f7 d8 64 89 01 48
> 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 49 89 ca b8 19 00 00
> 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 8e a2 2b 00 f7 d8 64 89
> 01 48
> [  199.508952] RSP: 002b:00007ffd71e44b28 EFLAGS: 00000206 ORIG_RAX:
> 0000000000000019
> [  199.516511] RAX: ffffffffffffffda RBX: 00007fffffffd000 RCX: 00007fce66f10bda
> [  199.523634] RDX: 0000000000001000 RSI: 0000000000001000 RDI: 0000000000402000
> [  199.530757] RBP: 0000000000000001 R08: 00007fffffffd000 R09: 00007ffd71e449fc
> [  199.537883] R10: 0000000000000003 R11: 0000000000000206 R12: 0000000000000001
> [  199.545016] R13: 00007ffd71e44ce0 R14: 0000000000000000 R15: 0000000000000000
> [  199.552150]  </TASK>
> [  199.554341] Modules linked in: x86_pkg_temp_thermal fuse [last
> unloaded: test_klp_livepatch]
> [  199.562772] CR2: 0000000000000000
> ected (selector [  199.566084] ---[ end trace 0000000000000000 ]---
> [  199.566085] RIP: 0010:copy_vma+0x61/0x220
> 0x0)
> # [RUN] AR[  199.566088] Code: 48 89 45 d0 31 c0 49 8b 07 49 83 7f 60
> 00 48 89 45 b8 0f 84 47 01 00 00 48 8d 55 c8 4c 89 ee 4c 89 f7 4c 01
> eb e8 2f ec ff ff <48> 39 18 72 7e 4d 8b 47 20 4d 8b 4f 58 6a 00 48 89
> d9 41 ff b7 90
> [  199.566089] RSP: 0018:ffffacf8813bfca0 EFLAGS: 00010292
> CH_SET_GS to 0x2[  199.566090] RAX: 0000000000000000 RBX:
> 00007fffffffe000 RCX: 0000000000000001
> [  199.566091] RDX: ffffffffffffffff RSI: ffff9c6d04959f00 RDI: ffffacf8813bfc38
> 00000000
> # [OK][  199.566092] RBP: ffffacf8813bfcf0 R08: 000000000000000b R09:
> 000000000000000b
> GSBASE was set [  199.566092] R10: ffff9c6d03e392f0 R11:
> 0000000000000058 R12: ffffacf8813bfd48
> [  199.566093] R13: 00007fffffffd000 R14: ffff9c6ccc331d40 R15: ffff9c6d03e392f0
> as expected (sel[  199.566094] FS:  00007fce67a16b80(0000)
> GS:ffff9c6e2fa80000(0000) knlGS:0000000000000000
> [  199.566095] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> ector 0x0)
> # [O[  199.566096] CR2: 0000000000000000 CR3: 0000000156398002 CR4:
> 00000000003706e0
> [  199.566097] DR0: 00000000006021a8 DR1: 0000000000400ae9 DR2: 0000000000000000
> K] ARCH_GET_GS w[  199.566098] DR3: 0000000000000000 DR6:
> 00000000ffff0ff0 DR7: 0000000000000600
> orked as expected (selector 0x0)
> # [RUN] ARCH_SET_GS to 0x0
> # [OK] GSBASE was set as expected (selector 0x0)
> # [OK] ARCH_GET_GS worked as expected (selector 0x0)
> 
> 
> metadata:
>   git_ref: master
>   git_repo: https://gitlab.com/Linaro/lkft/mirrors/next/linux-next
>   git_sha: bdc61aad77faf67187525028f1f355eff3849f22
>   git_describe: next-20220428
>   kernel_version: 5.18.0-rc4
>   kernel-config: https://builds.tuxbuild.com/28Pz4BMeY7pEp28bl5hC46lwjpe/config
>   vmlinux : https://builds.tuxbuild.com/28Pz4BMeY7pEp28bl5hC46lwjpe/vmlinux.xz
>   System.map : https://builds.tuxbuild.com/28Pz4BMeY7pEp28bl5hC46lwjpe/System.map
> 
> 
> Reported-by: Linux Kernel Functional Testing <[email-masked]>
> 
> --
> Linaro LKFT
> https://lkft.linaro.org
> 

-- 
Thanks,

David / dhildenb