Skip to content

Commit e56b2b6

Browse files
committed
Merge tag 'x86-urgent-2023-09-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Ingo Molnar: "Fix preemption delays in the SGX code, remove unnecessarily UAPI-exported code, fix a ld.lld linker (in)compatibility quirk and make the x86 SMP init code a bit more conservative to fix kexec() lockups" * tag 'x86-urgent-2023-09-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/sgx: Break up long non-preemptible delays in sgx_vepc_release() x86: Remove the arch_calc_vm_prot_bits() macro from the UAPI x86/build: Fix linker fill bytes quirk/incompatibility for ld.lld x86/smp: Don't send INIT to non-present and non-booted CPUs
2 parents e79dbf0 + 3d7d72a commit e56b2b6

File tree

6 files changed

+20
-11
lines changed

6 files changed

+20
-11
lines changed

arch/x86/include/asm/mman.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/* SPDX-License-Identifier: GPL-2.0 */
2+
#ifndef __ASM_MMAN_H__
3+
#define __ASM_MMAN_H__
4+
5+
#ifdef CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
6+
#define arch_calc_vm_prot_bits(prot, key) ( \
7+
((key) & 0x1 ? VM_PKEY_BIT0 : 0) | \
8+
((key) & 0x2 ? VM_PKEY_BIT1 : 0) | \
9+
((key) & 0x4 ? VM_PKEY_BIT2 : 0) | \
10+
((key) & 0x8 ? VM_PKEY_BIT3 : 0))
11+
#endif
12+
13+
#include <uapi/asm/mman.h>
14+
15+
#endif /* __ASM_MMAN_H__ */

arch/x86/include/uapi/asm/mman.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,6 @@
55
#define MAP_32BIT 0x40 /* only give out 32bit addresses */
66
#define MAP_ABOVE4G 0x80 /* only map above 4GB */
77

8-
#ifdef CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
9-
#define arch_calc_vm_prot_bits(prot, key) ( \
10-
((key) & 0x1 ? VM_PKEY_BIT0 : 0) | \
11-
((key) & 0x2 ? VM_PKEY_BIT1 : 0) | \
12-
((key) & 0x4 ? VM_PKEY_BIT2 : 0) | \
13-
((key) & 0x8 ? VM_PKEY_BIT3 : 0))
14-
#endif
15-
168
/* Flags for map_shadow_stack(2) */
179
#define SHADOW_STACK_SET_TOKEN (1ULL << 0) /* Set up a restore token in the shadow stack */
1810

arch/x86/kernel/cpu/sgx/virt.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ static int sgx_vepc_release(struct inode *inode, struct file *file)
204204
continue;
205205

206206
xa_erase(&vepc->page_array, index);
207+
cond_resched();
207208
}
208209

209210
/*
@@ -222,6 +223,7 @@ static int sgx_vepc_release(struct inode *inode, struct file *file)
222223
list_add_tail(&epc_page->list, &secs_pages);
223224

224225
xa_erase(&vepc->page_array, index);
226+
cond_resched();
225227
}
226228

227229
/*
@@ -243,6 +245,7 @@ static int sgx_vepc_release(struct inode *inode, struct file *file)
243245

244246
if (sgx_vepc_free_page(epc_page))
245247
list_add_tail(&epc_page->list, &secs_pages);
248+
cond_resched();
246249
}
247250

248251
if (!list_empty(&secs_pages))

arch/x86/kernel/smpboot.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1250,7 +1250,7 @@ bool smp_park_other_cpus_in_init(void)
12501250
if (this_cpu)
12511251
return false;
12521252

1253-
for_each_present_cpu(cpu) {
1253+
for_each_cpu_and(cpu, &cpus_booted_once_mask, cpu_present_mask) {
12541254
if (cpu == this_cpu)
12551255
continue;
12561256
apicid = apic->cpu_present_to_apicid(cpu);

arch/x86/kernel/vmlinux.lds.S

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ SECTIONS
156156
ALIGN_ENTRY_TEXT_END
157157
*(.gnu.warning)
158158

159-
} :text =0xcccc
159+
} :text = 0xcccccccc
160160

161161
/* End of text section, which should occupy whole number of pages */
162162
_etext = .;

scripts/headers_install.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ arch/nios2/include/uapi/asm/swab.h:CONFIG_NIOS2_CI_SWAB_NO
8181
arch/nios2/include/uapi/asm/swab.h:CONFIG_NIOS2_CI_SWAB_SUPPORT
8282
arch/x86/include/uapi/asm/auxvec.h:CONFIG_IA32_EMULATION
8383
arch/x86/include/uapi/asm/auxvec.h:CONFIG_X86_64
84-
arch/x86/include/uapi/asm/mman.h:CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
8584
"
8685

8786
for c in $configs

0 commit comments

Comments
 (0)