1. 12 Feb, 2024 1 commit
    • Steve Wahl's avatar
      x86/mm/ident_map: Use gbpages only where full GB page should be mapped. · d794734c
      Steve Wahl authored
      When ident_pud_init() uses only gbpages to create identity maps, large
      ranges of addresses not actually requested can be included in the
      resulting table; a 4K request will map a full GB.  On UV systems, this
      ends up including regions that will cause hardware to halt the system
      if accessed (these are marked "reserved" by BIOS).  Even processor
      speculation into these regions is enough to trigger the system halt.
      
      Only use gbpages when map creation requests include the full GB page
      of space.  Fall back to using smaller 2M pages when only portions of a
      GB page are included in the request.
      
      No attempt is made to coalesce mapping requests. If a request requires
      a map entry at the 2M (pmd) level, subsequent mapping requests within
      the same 1G region will also be at the pmd level, even if adjacent or
      overlapping such requests could have been combined to map a full
      gbpage.  Existing usage starts with larger regions and then adds
      smaller regions, so this should not have any great consequence.
      
      [ dhansen: fix up comment formatting, simplifty changelog ]
      Signed-off-by: default avatarSteve Wahl <steve.wahl@hpe.com>
      Signed-off-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
      Cc: stable@vger.kernel.org
      Link: https://lore.kernel.org/all/20240126164841.170866-1-steve.wahl%40hpe.com
      d794734c
  2. 09 Feb, 2024 1 commit
  3. 30 Jan, 2024 1 commit
  4. 29 Jan, 2024 2 commits
    • Qiuxu Zhuo's avatar
      x86/lib: Revert to _ASM_EXTABLE_UA() for {get,put}_user() fixups · 8eed4e00
      Qiuxu Zhuo authored
      During memory error injection test on kernels >= v6.4, the kernel panics
      like below. However, this issue couldn't be reproduced on kernels <= v6.3.
      
        mce: [Hardware Error]: CPU 296: Machine Check Exception: f Bank 1: bd80000000100134
        mce: [Hardware Error]: RIP 10:<ffffffff821b9776> {__get_user_nocheck_4+0x6/0x20}
        mce: [Hardware Error]: TSC 411a93533ed ADDR 346a8730040 MISC 86
        mce: [Hardware Error]: PROCESSOR 0:a06d0 TIME 1706000767 SOCKET 1 APIC 211 microcode 80001490
        mce: [Hardware Error]: Run the above through 'mcelog --ascii'
        mce: [Hardware Error]: Machine check: Data load in unrecoverable area of kernel
        Kernel panic - not syncing: Fatal local machine check
      
      The MCA code can recover from an in-kernel #MC if the fixup type is
      EX_TYPE_UACCESS, explicitly indicating that the kernel is attempting to
      access userspace memory. However, if the fixup type is EX_TYPE_DEFAULT
      the only thing that is raised for an in-kernel #MC is a panic.
      
      ex_handler_uaccess() would warn if users gave a non-canonical addresses
      (with bit 63 clear) to {get, put}_user(), which was unexpected.
      
      Therefore, commit
      
        b19b74bc ("x86/mm: Rework address range check in get_user() and put_user()")
      
      replaced _ASM_EXTABLE_UA() with _ASM_EXTABLE() for {get, put}_user()
      fixups. However, the new fixup type EX_TYPE_DEFAULT results in a panic.
      
      Commit
      
        6014bc27 ("x86-64: make access_ok() independent of LAM")
      
      added the check gp_fault_address_ok() right before the WARN_ONCE() in
      ex_handler_uaccess() to not warn about non-canonical user addresses due
      to LAM.
      
      With that in place, revert back to _ASM_EXTABLE_UA() for {get,put}_user()
      exception fixups in order to be able to handle in-kernel MCEs correctly
      again.
      
        [ bp: Massage commit message. ]
      
      Fixes: b19b74bc ("x86/mm: Rework address range check in get_user() and put_user()")
      Signed-off-by: default avatarQiuxu Zhuo <qiuxu.zhuo@intel.com>
      Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
      Reviewed-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: <stable@kernel.org>
      Link: https://lore.kernel.org/r/20240129063842.61584-1-qiuxu.zhuo@intel.com
      8eed4e00
    • Linus Torvalds's avatar
      Linux 6.8-rc2 · 41bccc98
      Linus Torvalds authored
      41bccc98
  5. 28 Jan, 2024 7 commits
  6. 27 Jan, 2024 9 commits
  7. 26 Jan, 2024 19 commits