[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171024024439.u3ywfgvi67fe4mbg@wfg-t540p.sh.intel.com>
Date: Tue, 24 Oct 2017 04:44:39 +0200
From: Fengguang Wu <fengguang.wu@...el.com>
To: Craig Bergstrom <craigb@...gle.com>
Cc: wfg@...ux.intel.com, Ingo Molnar <mingo@...nel.org>,
linux-kernel@...r.kernel.org, LKP <lkp@...org>
Subject: ce56a86e2a ("x86/mm: Limit mmap() of /dev/mem to valid physical
addresses"): kernel BUG at arch/x86/mm/physaddr.c:79!
Greetings,
0day kernel testing robot got the below dmesg and the first bad commit is
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
commit ce56a86e2ade45d052b3228cdfebe913a1ae7381
Author: Craig Bergstrom <craigb@...gle.com>
AuthorDate: Thu Oct 19 13:28:56 2017 -0600
Commit: Ingo Molnar <mingo@...nel.org>
CommitDate: Fri Oct 20 09:48:00 2017 +0200
x86/mm: Limit mmap() of /dev/mem to valid physical addresses
Currently, it is possible to mmap() any offset from /dev/mem. If a
program mmaps() /dev/mem offsets outside of the addressable limits
of a system, the page table can be corrupted by setting reserved bits.
For example if you mmap() offset 0x0001000000000000 of /dev/mem on an
x86_64 system with a 48-bit bus, the page fault handler will be called
with error_code set to RSVD. The kernel then crashes with a page table
corruption error.
This change prevents this page table corruption on x86 by refusing
to mmap offsets higher than the highest valid address in the system.
Signed-off-by: Craig Bergstrom <craigb@...gle.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>
Cc: Andy Lutomirski <luto@...nel.org>
Cc: Borislav Petkov <bp@...en8.de>
Cc: Brian Gerst <brgerst@...il.com>
Cc: Denys Vlasenko <dvlasenk@...hat.com>
Cc: H. Peter Anvin <hpa@...or.com>
Cc: Josh Poimboeuf <jpoimboe@...hat.com>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Luis R. Rodriguez <mcgrof@...e.com>
Cc: Peter Zijlstra <peterz@...radead.org>
Cc: Thomas Gleixner <tglx@...utronix.de>
Cc: Toshi Kani <toshi.kani@...com>
Cc: dsafonov@...tuozzo.com
Cc: kirill.shutemov@...ux.intel.com
Cc: mhocko@...e.com
Cc: oleg@...hat.com
Link: http://lkml.kernel.org/r/20171019192856.39672-1-craigb@google.com
Signed-off-by: Ingo Molnar <mingo@...nel.org>
7ac7f2c315 x86/mm: Remove debug/x86/tlb_defer_switch_to_init_mm
ce56a86e2a x86/mm: Limit mmap() of /dev/mem to valid physical addresses
bb176f6709 Linux 4.14-rc6
36ef71cae3 Add linux-next specific files for 20171018
+-------------------------------------------------------------------+------------+------------+-----------+---------------+
| | 7ac7f2c315 | ce56a86e2a | v4.14-rc6 | next-20171018 |
+-------------------------------------------------------------------+------------+------------+-----------+---------------+
| boot_successes | 35 | 4 | 8 | 12 |
| boot_failures | 0 | 11 | 11 | 22 |
| kernel_BUG_at_arch/x86/mm/physaddr.c | 0 | 11 | 11 | |
| invalid_opcode:#[##] | 0 | 11 | 11 | |
| EIP:__phys_addr | 0 | 11 | 11 | |
| Kernel_panic-not_syncing:Fatal_exception | 0 | 11 | 11 | |
| BUG:kernel_reboot-without-warning_in_boot_stage | 0 | 0 | 0 | 13 |
| BUG:kernel_hang_in_boot_stage | 0 | 0 | 0 | 8 |
| BUG:kernel_reboot-without-warning_in_early-boot_stage,last_printk | 0 | 0 | 0 | 1 |
+-------------------------------------------------------------------+------------+------------+-----------+---------------+
[ 2.048420] Could not find Carillo Ranch MCH device.
[ 2.048724] no IO addresses supplied
[ 2.049025] usbcore: registered new interface driver smscufx
[ 2.050165] v86d (125) used greatest stack depth: 6972 bytes left
[ 2.050687] ------------[ cut here ]------------
[ 2.050969] kernel BUG at arch/x86/mm/physaddr.c:79!
[ 2.051392] invalid opcode: 0000 [#1] SMP
[ 2.051631] CPU: 0 PID: 126 Comm: v86d Not tainted 4.14.0-rc5-00007-gce56a86 #1
[ 2.052053] task: ce3d46c0 task.stack: cd914000
[ 2.052316] EIP: __phys_addr+0x80/0x90
[ 2.052366] EFLAGS: 00010206 CPU: 0
[ 2.052366] EAX: 0ffdc000 EBX: 0ffdc000 ECX: 00000000 EDX: 0ffdc000
[ 2.052366] ESI: 00001000 EDI: 00000000 EBP: cd915e5c ESP: cd915e58
[ 2.052366] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
[ 2.052366] CR0: 80050033 CR2: 08063e48 CR3: 0d8fa1c0 CR4: 001406b0
[ 2.052366] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[ 2.052366] DR6: fffe0ff0 DR7: 00000400
[ 2.052366] Call Trace:
[ 2.052366] ? valid_mmap_phys_addr_range+0x2f/0x70
[ 2.052366] ? mmap_mem+0x66/0xe0
[ 2.052366] ? mmap_region+0x248/0x480
[ 2.052366] ? mmap_region+0x2d2/0x480
[ 2.052366] ? do_mmap+0x2c5/0x3a0
[ 2.052366] ? vm_mmap_pgoff+0x8f/0xb0
[ 2.052366] ? SyS_mmap_pgoff+0x1e7/0x210
[ 2.052366] ? do_int80_syscall_32+0x76/0x130
[ 2.052366] ? entry_INT80_32+0x33/0x33
[ 2.052366] Code: 00 00 00 a1 60 0e be c8 05 00 00 80 00 39 c2 72 bb a1 78 94 30 c8 2d 00 b0 78 00 25 00 00 e0 ff 2d 00 20 00 00 39 c2 73 a3 0f 0b <0f> 0b 8d b4 26 00 00 00 00 8d bc 27 00 00 00 00 55 89 e5 53 e8
[ 2.052366] EIP: __phys_addr+0x80/0x90 SS:ESP: 0068:cd915e58
[ 2.058327] ---[ end trace 51b6b410d44658b1 ]---
[ 2.058607] Kernel panic - not syncing: Fatal exception
# HH:MM RESULT GOOD BAD GOOD_BUT_DIRTY DIRTY_NOT_BAD
git bisect start 13769afc2a5ef8e2d19b0b1486bf8ae08caf9f4b 33d930e59a98fa10a0db9f56c7fa2f21a4aef9b9 --
git bisect good 7021889c264abc7a4eef71cb0586f76a22091658 # 16:32 G 10 0 0 0 Merge 'sailus-media/atomisp' into devel-spot-201710231057
git bisect bad 56b2129ddeae19f6a20494b88b61eaba91e519b5 # 17:00 B 0 8 20 0 Merge 'linux-review/Aishwarya-Pant/coccinelle-boolconv-improve-script-to-handle-more-cases/20171022-210918' into devel-spot-201710231057
git bisect bad c7d414af43141682ee0b828bd71d1d9cc190f1bd # 17:22 B 0 11 24 0 Merge 'f2fs/dev-test' into devel-spot-201710231057
git bisect good 89630c8626339b2ec6368ac195237c2ebea3ca23 # 17:47 G 10 0 0 0 Merge 'jpirko-mlxsw/jiri_devel_miniq' into devel-spot-201710231057
git bisect good dbf5855b11e4857696b24d9f621aaf1d4ad35dc2 # 18:04 G 10 0 0 0 Merge 'linux-review/SF-Markus-Elfring/gpio-adnp-Use-common-error-handling-code-in-adnp_gpio_dbg_show/20171023-043514' into devel-spot-201710231057
git bisect bad a0831a3f7f72d8ce846ffd2ff7ea73b88a59da17 # 18:42 B 0 11 24 0 Merge 'linux-review/SF-Markus-Elfring/dmaengine-ioat-Use-common-error-handling-code-in-ioat_xor_val_self_test/20171023-032235' into devel-spot-201710231057
git bisect good 085cf9bfc92a20a7297468f01e868cf2a4f6f4c3 # 19:00 G 10 0 0 0 Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
git bisect bad ce56a86e2ade45d052b3228cdfebe913a1ae7381 # 19:14 B 0 11 23 0 x86/mm: Limit mmap() of /dev/mem to valid physical addresses
git bisect good 723f2828a98c8ca19842042f418fb30dd8cfc0f7 # 19:47 G 10 0 0 0 x86/microcode/intel: Disable late loading on model 79
git bisect good 4e57b94664fef55aa71cac33b4632fdfdd52b695 # 20:11 G 10 0 0 0 x86/mm: Tidy up "x86/mm: Flush more aggressively in lazy TLB mode"
git bisect good 7ac7f2c315ef76437f5119df354d334448534fb5 # 20:49 G 10 0 0 0 x86/mm: Remove debug/x86/tlb_defer_switch_to_init_mm
# first bad commit: [ce56a86e2ade45d052b3228cdfebe913a1ae7381] x86/mm: Limit mmap() of /dev/mem to valid physical addresses
git bisect good 7ac7f2c315ef76437f5119df354d334448534fb5 # 21:14 G 30 0 0 0 x86/mm: Remove debug/x86/tlb_defer_switch_to_init_mm
# extra tests with CONFIG_DEBUG_INFO_REDUCED
git bisect bad ce56a86e2ade45d052b3228cdfebe913a1ae7381 # 21:39 B 0 11 24 0 x86/mm: Limit mmap() of /dev/mem to valid physical addresses
# extra tests on HEAD of linux-devel/devel-spot-201710231057
git bisect bad 13769afc2a5ef8e2d19b0b1486bf8ae08caf9f4b # 21:39 B 0 12 27 0 0day head guard for 'devel-spot-201710231057'
# extra tests on tree/branch linus/master
git bisect bad bb176f67090ca54869fc1262c913aa69d2ede070 # 21:52 B 0 11 23 0 Linux 4.14-rc6
# extra tests with first bad commit reverted
git bisect good 668ce515181e53af5f88325ee13fb17d79295670 # 22:16 G 11 0 0 0 Revert "x86/mm: Limit mmap() of /dev/mem to valid physical addresses"
# extra tests on tree/branch linux-next/master
git bisect good 36ef71cae353f88fd6e095e2aaa3e5953af1685d # 22:45 G 10 0 3 22 Add linux-next specific files for 20171018
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/lkp Intel Corporation
Download attachment "dmesg-yocto-lkp-hsw01-102:20171023191152:i386-randconfig-c0-10231306:4.14.0-rc5-00007-gce56a86:1.gz" of type "application/gzip" (10537 bytes)
View attachment "reproduce-yocto-lkp-hsw01-102:20171023191152:i386-randconfig-c0-10231306:4.14.0-rc5-00007-gce56a86:1" of type "text/plain" (895 bytes)
View attachment "config-4.14.0-rc5-00007-gce56a86" of type "text/plain" (102546 bytes)
Powered by blists - more mailing lists