# git rev-parse -q --verify c9f016e72b5cc7d4d68fac51f8e72c8c7a69c06e^{commit} c9f016e72b5cc7d4d68fac51f8e72c8c7a69c06e already have revision, skipping fetch # git checkout -q -f -B kisskb c9f016e72b5cc7d4d68fac51f8e72c8c7a69c06e # git clean -qxdf # < git log -1 # commit c9f016e72b5cc7d4d68fac51f8e72c8c7a69c06e # Merge: 3df9427f351a a547a5880cba # Author: Linus Torvalds # Date: Sun Sep 1 14:43:08 2024 -0700 # # Merge tag 'x86-urgent-2024-09-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip # # Pull x86 fixes from Thomas Gleixner: # # - x2apic_disable() clears x2apic_state and x2apic_mode unconditionally, # even when the state is X2APIC_ON_LOCKED, which prevents the kernel to # disable it thereby creating inconsistent state. # # Reorder the logic so it actually works correctly # # - The XSTATE logic for handling LBR is incorrect as it assumes that # XSAVES supports LBR when the CPU supports LBR. In fact both # conditions need to be true. Otherwise the enablement of LBR in the # IA32_XSS MSR fails and subsequently the machine crashes on the next # XRSTORS operation because IA32_XSS is not initialized. # # Cache the XSTATE support bit during init and make the related # functions use this cached information and the LBR CPU feature bit to # cure this. # # - Cure a long standing bug in KASLR # # KASLR uses the full address space between PAGE_OFFSET and vaddr_end # to randomize the starting points of the direct map, vmalloc and # vmemmap regions. It thereby limits the size of the direct map by # using the installed memory size plus an extra configurable margin for # hot-plug memory. This limitation is done to gain more randomization # space because otherwise only the holes between the direct map, # vmalloc, vmemmap and vaddr_end would be usable for randomizing. # # The limited direct map size is not exposed to the rest of the kernel, # so the memory hot-plug and resource management related code paths # still operate under the assumption that the available address space # can be determined with MAX_PHYSMEM_BITS. # # request_free_mem_region() allocates from (1 << MAX_PHYSMEM_BITS) - 1 # downwards. That means the first allocation happens past the end of # the direct map and if unlucky this address is in the vmalloc space, # which causes high_memory to become greater than VMALLOC_START and # consequently causes iounmap() to fail for valid ioremap addresses. # # Cure this by exposing the end of the direct map via PHYSMEM_END and # use that for the memory hot-plug and resource management related # places instead of relying on MAX_PHYSMEM_BITS. In the KASLR case # PHYSMEM_END maps to a variable which is initialized by the KASLR # initialization and otherwise it is based on MAX_PHYSMEM_BITS as # before. # # - Prevent a data leak in mmio_read(). The TDVMCALL exposes the value of # an initialized variabled on the stack to the VMM. The variable is # only required as output value, so it does not have to exposed to the # VMM in the first place. # # - Prevent an array overrun in the resource control code on systems with # Sub-NUMA Clustering enabled because the code failed to adjust the # index by the number of SNC nodes per L3 cache. # # * tag 'x86-urgent-2024-09-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: # x86/resctrl: Fix arch_mbm_* array overrun on SNC # x86/tdx: Fix data leak in mmio_read() # x86/kaslr: Expose and use the end of the physical memory address space # x86/fpu: Avoid writing LBR bit to IA32_XSS unless supported # x86/apic: Make x2apic_disable() work correctly # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sh4-linux/bin/sh4-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sh4-linux/bin/sh4-linux-ld --version # < git log --format=%s --max-count=1 c9f016e72b5cc7d4d68fac51f8e72c8c7a69c06e # make -s -j 160 ARCH=sh O=/kisskb/build/linus_defconfig_sh4-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sh4-linux/bin/sh4-linux- defconfig # < make -s -j 160 ARCH=sh O=/kisskb/build/linus_defconfig_sh4-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sh4-linux/bin/sh4-linux- help # make -s -j 160 ARCH=sh O=/kisskb/build/linus_defconfig_sh4-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sh4-linux/bin/sh4-linux- olddefconfig # make -s -j 160 ARCH=sh O=/kisskb/build/linus_defconfig_sh4-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sh4-linux/bin/sh4-linux- Generating include/generated/machtypes.h :1519:2: warning: #warning syscall clone3 not implemented [-Wcpp] /kisskb/src/kernel/locking/spinlock.c:68:17: warning: no previous prototype for '__raw_spin_lock' [-Wmissing-prototypes] 68 | void __lockfunc __raw_##op##_lock(locktype##_t *lock) \ | ^~~~~~ /kisskb/src/kernel/locking/spinlock.c:126:1: note: in expansion of macro 'BUILD_LOCK_OPS' 126 | BUILD_LOCK_OPS(spin, raw_spinlock); | ^~~~~~~~~~~~~~ /kisskb/src/kernel/locking/spinlock.c:80:26: warning: no previous prototype for '__raw_spin_lock_irqsave' [-Wmissing-prototypes] 80 | unsigned long __lockfunc __raw_##op##_lock_irqsave(locktype##_t *lock) \ | ^~~~~~ /kisskb/src/kernel/locking/spinlock.c:126:1: note: in expansion of macro 'BUILD_LOCK_OPS' 126 | BUILD_LOCK_OPS(spin, raw_spinlock); | ^~~~~~~~~~~~~~ /kisskb/src/kernel/locking/spinlock.c:98:17: warning: no previous prototype for '__raw_spin_lock_irq' [-Wmissing-prototypes] 98 | void __lockfunc __raw_##op##_lock_irq(locktype##_t *lock) \ | ^~~~~~ /kisskb/src/kernel/locking/spinlock.c:126:1: note: in expansion of macro 'BUILD_LOCK_OPS' 126 | BUILD_LOCK_OPS(spin, raw_spinlock); | ^~~~~~~~~~~~~~ /kisskb/src/kernel/locking/spinlock.c:103:17: warning: no previous prototype for '__raw_spin_lock_bh' [-Wmissing-prototypes] 103 | void __lockfunc __raw_##op##_lock_bh(locktype##_t *lock) \ | ^~~~~~ /kisskb/src/kernel/locking/spinlock.c:126:1: note: in expansion of macro 'BUILD_LOCK_OPS' 126 | BUILD_LOCK_OPS(spin, raw_spinlock); | ^~~~~~~~~~~~~~ /kisskb/src/kernel/locking/spinlock.c:68:17: warning: no previous prototype for '__raw_read_lock' [-Wmissing-prototypes] 68 | void __lockfunc __raw_##op##_lock(locktype##_t *lock) \ | ^~~~~~ /kisskb/src/kernel/locking/spinlock.c:129:1: note: in expansion of macro 'BUILD_LOCK_OPS' 129 | BUILD_LOCK_OPS(read, rwlock); | ^~~~~~~~~~~~~~ /kisskb/src/kernel/locking/spinlock.c:80:26: warning: no previous prototype for '__raw_read_lock_irqsave' [-Wmissing-prototypes] 80 | unsigned long __lockfunc __raw_##op##_lock_irqsave(locktype##_t *lock) \ | ^~~~~~ /kisskb/src/kernel/locking/spinlock.c:129:1: note: in expansion of macro 'BUILD_LOCK_OPS' 129 | BUILD_LOCK_OPS(read, rwlock); | ^~~~~~~~~~~~~~ /kisskb/src/kernel/locking/spinlock.c:98:17: warning: no previous prototype for '__raw_read_lock_irq' [-Wmissing-prototypes] 98 | void __lockfunc __raw_##op##_lock_irq(locktype##_t *lock) \ | ^~~~~~ /kisskb/src/kernel/locking/spinlock.c:129:1: note: in expansion of macro 'BUILD_LOCK_OPS' 129 | BUILD_LOCK_OPS(read, rwlock); | ^~~~~~~~~~~~~~ /kisskb/src/kernel/locking/spinlock.c:103:17: warning: no previous prototype for '__raw_read_lock_bh' [-Wmissing-prototypes] 103 | void __lockfunc __raw_##op##_lock_bh(locktype##_t *lock) \ | ^~~~~~ /kisskb/src/kernel/locking/spinlock.c:129:1: note: in expansion of macro 'BUILD_LOCK_OPS' 129 | BUILD_LOCK_OPS(read, rwlock); | ^~~~~~~~~~~~~~ /kisskb/src/kernel/locking/spinlock.c:68:17: warning: no previous prototype for '__raw_write_lock' [-Wmissing-prototypes] 68 | void __lockfunc __raw_##op##_lock(locktype##_t *lock) \ | ^~~~~~ /kisskb/src/kernel/locking/spinlock.c:130:1: note: in expansion of macro 'BUILD_LOCK_OPS' 130 | BUILD_LOCK_OPS(write, rwlock); | ^~~~~~~~~~~~~~ /kisskb/src/kernel/locking/spinlock.c:80:26: warning: no previous prototype for '__raw_write_lock_irqsave' [-Wmissing-prototypes] 80 | unsigned long __lockfunc __raw_##op##_lock_irqsave(locktype##_t *lock) \ | ^~~~~~ /kisskb/src/kernel/locking/spinlock.c:130:1: note: in expansion of macro 'BUILD_LOCK_OPS' 130 | BUILD_LOCK_OPS(write, rwlock); | ^~~~~~~~~~~~~~ /kisskb/src/kernel/locking/spinlock.c:98:17: warning: no previous prototype for '__raw_write_lock_irq' [-Wmissing-prototypes] 98 | void __lockfunc __raw_##op##_lock_irq(locktype##_t *lock) \ | ^~~~~~ /kisskb/src/kernel/locking/spinlock.c:130:1: note: in expansion of macro 'BUILD_LOCK_OPS' 130 | BUILD_LOCK_OPS(write, rwlock); | ^~~~~~~~~~~~~~ /kisskb/src/kernel/locking/spinlock.c:103:17: warning: no previous prototype for '__raw_write_lock_bh' [-Wmissing-prototypes] 103 | void __lockfunc __raw_##op##_lock_bh(locktype##_t *lock) \ | ^~~~~~ /kisskb/src/kernel/locking/spinlock.c:130:1: note: in expansion of macro 'BUILD_LOCK_OPS' 130 | BUILD_LOCK_OPS(write, rwlock); | ^~~~~~~~~~~~~~ /kisskb/src/fs/ext4/readpage.c: In function 'ext4_mpage_readpages': /kisskb/src/fs/ext4/readpage.c:391:1: warning: the frame size of 1120 bytes is larger than 1024 bytes [-Wframe-larger-than=] 391 | } | ^ /kisskb/src/kernel/fork.c: In function '__do_sys_clone3': /kisskb/src/kernel/fork.c:3072:2: warning: #warning clone3() entry point is missing, please fix [-Wcpp] 3072 | #warning clone3() entry point is missing, please fix | ^~~~~~~ Kernel: arch/sh/boot/zImage is ready Completed OK # rm -rf /kisskb/build/linus_defconfig_sh4-gcc13 # Build took: 0:01:50.724993