Skip to content

Commit 8b5656b

Browse files
committed
Merge tag 'x86-urgent-2022-04-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Thomas Gleixner: "A set of x86 fixes and updates: - Make the prctl() for enabling dynamic XSTATE components correct so it adds the newly requested feature to the permission bitmap instead of overwriting it. Add a selftest which validates that. - Unroll string MMIO for encrypted SEV guests as the hypervisor cannot emulate it. - Handle supervisor states correctly in the FPU/XSTATE code so it takes the feature set of the fpstate buffer into account. The feature sets can differ between host and guest buffers. Guest buffers do not contain supervisor states. So far this was not an issue, but with enabling PASID it needs to be handled in the buffer offset calculation and in the permission bitmaps. - Avoid a gazillion of repeated CPUID invocations in by caching the values early in the FPU/XSTATE code. - Enable CONFIG_WERROR in x86 defconfig. - Make the X86 defconfigs more useful by adapting them to Y2022 reality" * tag 'x86-urgent-2022-04-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/fpu/xstate: Consolidate size calculations x86/fpu/xstate: Handle supervisor states in XSTATE permissions x86/fpu/xsave: Handle compacted offsets correctly with supervisor states x86/fpu: Cache xfeature flags from CPUID x86/fpu/xsave: Initialize offset/size cache early x86/fpu: Remove unused supervisor only offsets x86/fpu: Remove redundant XCOMP_BV initialization x86/sev: Unroll string mmio with CC_ATTR_GUEST_UNROLL_STRING_IO x86/config: Make the x86 defconfigs a bit more usable x86/defconfig: Enable WERROR selftests/x86/amx: Update the ARCH_REQ_XCOMP_PERM test x86/fpu/xstate: Fix the ARCH_REQ_XCOMP_PERM implementation
2 parents e235f41 + d6d6d50 commit 8b5656b

File tree

6 files changed

+200
-187
lines changed

6 files changed

+200
-187
lines changed

arch/x86/configs/i386_defconfig

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
CONFIG_WERROR=y
12
CONFIG_SYSVIPC=y
23
CONFIG_POSIX_MQUEUE=y
4+
CONFIG_USELIB=y
35
CONFIG_AUDIT=y
46
CONFIG_NO_HZ=y
57
CONFIG_HIGH_RES_TIMERS=y
@@ -11,23 +13,30 @@ CONFIG_TASK_XACCT=y
1113
CONFIG_TASK_IO_ACCOUNTING=y
1214
CONFIG_LOG_BUF_SHIFT=18
1315
CONFIG_CGROUPS=y
16+
CONFIG_BLK_CGROUP=y
1417
CONFIG_CGROUP_SCHED=y
18+
CONFIG_CGROUP_PIDS=y
19+
CONFIG_CGROUP_RDMA=y
1520
CONFIG_CGROUP_FREEZER=y
21+
CONFIG_CGROUP_HUGETLB=y
1622
CONFIG_CPUSETS=y
23+
CONFIG_CGROUP_DEVICE=y
1724
CONFIG_CGROUP_CPUACCT=y
25+
CONFIG_CGROUP_PERF=y
26+
CONFIG_CGROUP_MISC=y
27+
CONFIG_CGROUP_DEBUG=y
1828
CONFIG_BLK_DEV_INITRD=y
29+
CONFIG_KALLSYMS_ALL=y
1930
# CONFIG_COMPAT_BRK is not set
2031
CONFIG_PROFILING=y
21-
# CONFIG_64BIT is not set
2232
CONFIG_SMP=y
23-
CONFIG_X86_GENERIC=y
24-
CONFIG_HPET_TIMER=y
33+
CONFIG_HYPERVISOR_GUEST=y
34+
CONFIG_PARAVIRT=y
35+
CONFIG_NR_CPUS=8
2536
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
26-
CONFIG_X86_REBOOTFIXUPS=y
2737
CONFIG_MICROCODE_AMD=y
2838
CONFIG_X86_MSR=y
2939
CONFIG_X86_CPUID=y
30-
CONFIG_HIGHPTE=y
3140
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
3241
# CONFIG_MTRR_SANITIZER is not set
3342
CONFIG_EFI=y
@@ -43,12 +52,15 @@ CONFIG_ACPI_BGRT=y
4352
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
4453
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
4554
CONFIG_X86_ACPI_CPUFREQ=y
46-
CONFIG_EFI_VARS=y
4755
CONFIG_KPROBES=y
4856
CONFIG_JUMP_LABEL=y
57+
CONFIG_COMPAT_32BIT_TIME=y
4958
CONFIG_MODULES=y
5059
CONFIG_MODULE_UNLOAD=y
5160
CONFIG_MODULE_FORCE_UNLOAD=y
61+
CONFIG_BLK_CGROUP_IOLATENCY=y
62+
CONFIG_BLK_CGROUP_IOCOST=y
63+
CONFIG_BLK_CGROUP_IOPRIO=y
5264
CONFIG_BINFMT_MISC=y
5365
CONFIG_NET=y
5466
CONFIG_PACKET=y
@@ -103,12 +115,16 @@ CONFIG_IP6_NF_FILTER=y
103115
CONFIG_IP6_NF_TARGET_REJECT=y
104116
CONFIG_IP6_NF_MANGLE=y
105117
CONFIG_NET_SCHED=y
118+
CONFIG_NET_CLS_CGROUP=y
106119
CONFIG_NET_EMATCH=y
107120
CONFIG_NET_CLS_ACT=y
121+
CONFIG_CGROUP_NET_PRIO=y
108122
CONFIG_CFG80211=y
109123
CONFIG_MAC80211=y
110124
CONFIG_MAC80211_LEDS=y
111125
CONFIG_RFKILL=y
126+
CONFIG_NET_9P=y
127+
CONFIG_NET_9P_VIRTIO=y
112128
CONFIG_PCI=y
113129
CONFIG_PCIEPORTBUS=y
114130
CONFIG_PCI_MSI=y
@@ -119,13 +135,16 @@ CONFIG_DEVTMPFS=y
119135
CONFIG_DEVTMPFS_MOUNT=y
120136
CONFIG_DEBUG_DEVRES=y
121137
CONFIG_CONNECTOR=y
138+
CONFIG_EFI_VARS=y
139+
CONFIG_EFI_CAPSULE_LOADER=y
122140
CONFIG_BLK_DEV_LOOP=y
141+
CONFIG_VIRTIO_BLK=y
123142
CONFIG_BLK_DEV_SD=y
124143
CONFIG_BLK_DEV_SR=y
125144
CONFIG_CHR_DEV_SG=y
126145
CONFIG_SCSI_CONSTANTS=y
127146
CONFIG_SCSI_SPI_ATTRS=y
128-
# CONFIG_SCSI_LOWLEVEL is not set
147+
CONFIG_SCSI_VIRTIO=y
129148
CONFIG_ATA=y
130149
CONFIG_SATA_AHCI=y
131150
CONFIG_ATA_PIIX=y
@@ -143,6 +162,7 @@ CONFIG_MACINTOSH_DRIVERS=y
143162
CONFIG_MAC_EMUMOUSEBTN=y
144163
CONFIG_NETDEVICES=y
145164
CONFIG_NETCONSOLE=y
165+
CONFIG_VIRTIO_NET=y
146166
CONFIG_BNX2=y
147167
CONFIG_TIGON3=y
148168
CONFIG_NET_TULIP=y
@@ -170,6 +190,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
170190
CONFIG_SERIAL_8250_DETECT_IRQ=y
171191
CONFIG_SERIAL_8250_RSA=y
172192
CONFIG_SERIAL_NONSTANDARD=y
193+
CONFIG_VIRTIO_CONSOLE=y
173194
CONFIG_HW_RANDOM=y
174195
CONFIG_NVRAM=y
175196
CONFIG_HPET=y
@@ -181,12 +202,7 @@ CONFIG_AGP_AMD64=y
181202
CONFIG_AGP_INTEL=y
182203
CONFIG_DRM=y
183204
CONFIG_DRM_I915=y
184-
CONFIG_FB_MODE_HELPERS=y
185-
CONFIG_FB_TILEBLITTING=y
186-
CONFIG_FB_EFI=y
187-
CONFIG_LOGO=y
188-
# CONFIG_LOGO_LINUX_MONO is not set
189-
# CONFIG_LOGO_LINUX_VGA16 is not set
205+
CONFIG_DRM_VIRTIO_GPU=y
190206
CONFIG_SOUND=y
191207
CONFIG_SND=y
192208
CONFIG_SND_HRTIMER=y
@@ -219,6 +235,8 @@ CONFIG_USB_STORAGE=y
219235
CONFIG_RTC_CLASS=y
220236
# CONFIG_RTC_HCTOSYS is not set
221237
CONFIG_DMADEVICES=y
238+
CONFIG_VIRTIO_PCI=y
239+
CONFIG_VIRTIO_INPUT=y
222240
CONFIG_EEEPC_LAPTOP=y
223241
CONFIG_EXT4_FS=y
224242
CONFIG_EXT4_FS_POSIX_ACL=y
@@ -240,6 +258,7 @@ CONFIG_NFS_FS=y
240258
CONFIG_NFS_V3_ACL=y
241259
CONFIG_NFS_V4=y
242260
CONFIG_ROOT_NFS=y
261+
CONFIG_9P_FS=y
243262
CONFIG_NLS_DEFAULT="utf8"
244263
CONFIG_NLS_CODEPAGE_437=y
245264
CONFIG_NLS_ASCII=y
@@ -251,14 +270,15 @@ CONFIG_SECURITY_SELINUX=y
251270
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
252271
CONFIG_SECURITY_SELINUX_DISABLE=y
253272
CONFIG_PRINTK_TIME=y
273+
CONFIG_FRAME_WARN=1024
254274
CONFIG_MAGIC_SYSRQ=y
255275
CONFIG_DEBUG_KERNEL=y
256276
CONFIG_DEBUG_STACK_USAGE=y
257-
CONFIG_DEBUG_STACKOVERFLOW=y
258277
# CONFIG_SCHED_DEBUG is not set
259278
CONFIG_SCHEDSTATS=y
260279
CONFIG_BLK_DEV_IO_TRACE=y
261280
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
262281
CONFIG_EARLY_PRINTK_DBGP=y
263282
CONFIG_DEBUG_BOOT_PARAMS=y
264-
CONFIG_KALLSYMS_ALL=y
283+
CONFIG_UNWINDER_FRAME_POINTER=y
284+
# CONFIG_64BIT is not set

arch/x86/configs/x86_64_defconfig

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
CONFIG_WERROR=y
12
CONFIG_SYSVIPC=y
23
CONFIG_POSIX_MQUEUE=y
34
CONFIG_AUDIT=y
@@ -11,14 +12,25 @@ CONFIG_TASK_XACCT=y
1112
CONFIG_TASK_IO_ACCOUNTING=y
1213
CONFIG_LOG_BUF_SHIFT=18
1314
CONFIG_CGROUPS=y
15+
CONFIG_BLK_CGROUP=y
1416
CONFIG_CGROUP_SCHED=y
17+
CONFIG_CGROUP_PIDS=y
18+
CONFIG_CGROUP_RDMA=y
1519
CONFIG_CGROUP_FREEZER=y
20+
CONFIG_CGROUP_HUGETLB=y
1621
CONFIG_CPUSETS=y
22+
CONFIG_CGROUP_DEVICE=y
1723
CONFIG_CGROUP_CPUACCT=y
24+
CONFIG_CGROUP_PERF=y
25+
CONFIG_CGROUP_MISC=y
26+
CONFIG_CGROUP_DEBUG=y
1827
CONFIG_BLK_DEV_INITRD=y
28+
CONFIG_KALLSYMS_ALL=y
1929
# CONFIG_COMPAT_BRK is not set
2030
CONFIG_PROFILING=y
2131
CONFIG_SMP=y
32+
CONFIG_HYPERVISOR_GUEST=y
33+
CONFIG_PARAVIRT=y
2234
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
2335
CONFIG_MICROCODE_AMD=y
2436
CONFIG_X86_MSR=y
@@ -41,12 +53,14 @@ CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
4153
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
4254
CONFIG_X86_ACPI_CPUFREQ=y
4355
CONFIG_IA32_EMULATION=y
44-
CONFIG_EFI_VARS=y
4556
CONFIG_KPROBES=y
4657
CONFIG_JUMP_LABEL=y
4758
CONFIG_MODULES=y
4859
CONFIG_MODULE_UNLOAD=y
4960
CONFIG_MODULE_FORCE_UNLOAD=y
61+
CONFIG_BLK_CGROUP_IOLATENCY=y
62+
CONFIG_BLK_CGROUP_IOCOST=y
63+
CONFIG_BLK_CGROUP_IOPRIO=y
5064
CONFIG_BINFMT_MISC=y
5165
CONFIG_NET=y
5266
CONFIG_PACKET=y
@@ -101,12 +115,16 @@ CONFIG_IP6_NF_FILTER=y
101115
CONFIG_IP6_NF_TARGET_REJECT=y
102116
CONFIG_IP6_NF_MANGLE=y
103117
CONFIG_NET_SCHED=y
118+
CONFIG_NET_CLS_CGROUP=y
104119
CONFIG_NET_EMATCH=y
105120
CONFIG_NET_CLS_ACT=y
121+
CONFIG_CGROUP_NET_PRIO=y
106122
CONFIG_CFG80211=y
107123
CONFIG_MAC80211=y
108124
CONFIG_MAC80211_LEDS=y
109125
CONFIG_RFKILL=y
126+
CONFIG_NET_9P=y
127+
CONFIG_NET_9P_VIRTIO=y
110128
CONFIG_PCI=y
111129
CONFIG_PCIEPORTBUS=y
112130
CONFIG_HOTPLUG_PCI=y
@@ -116,13 +134,15 @@ CONFIG_DEVTMPFS=y
116134
CONFIG_DEVTMPFS_MOUNT=y
117135
CONFIG_DEBUG_DEVRES=y
118136
CONFIG_CONNECTOR=y
137+
CONFIG_EFI_VARS=y
119138
CONFIG_BLK_DEV_LOOP=y
139+
CONFIG_VIRTIO_BLK=y
120140
CONFIG_BLK_DEV_SD=y
121141
CONFIG_BLK_DEV_SR=y
122142
CONFIG_CHR_DEV_SG=y
123143
CONFIG_SCSI_CONSTANTS=y
124144
CONFIG_SCSI_SPI_ATTRS=y
125-
# CONFIG_SCSI_LOWLEVEL is not set
145+
CONFIG_SCSI_VIRTIO=y
126146
CONFIG_ATA=y
127147
CONFIG_SATA_AHCI=y
128148
CONFIG_ATA_PIIX=y
@@ -138,6 +158,7 @@ CONFIG_MACINTOSH_DRIVERS=y
138158
CONFIG_MAC_EMUMOUSEBTN=y
139159
CONFIG_NETDEVICES=y
140160
CONFIG_NETCONSOLE=y
161+
CONFIG_VIRTIO_NET=y
141162
CONFIG_TIGON3=y
142163
CONFIG_NET_TULIP=y
143164
CONFIG_E100=y
@@ -162,6 +183,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
162183
CONFIG_SERIAL_8250_DETECT_IRQ=y
163184
CONFIG_SERIAL_8250_RSA=y
164185
CONFIG_SERIAL_NONSTANDARD=y
186+
CONFIG_VIRTIO_CONSOLE=y
165187
CONFIG_HW_RANDOM=y
166188
# CONFIG_HW_RANDOM_INTEL is not set
167189
# CONFIG_HW_RANDOM_AMD is not set
@@ -175,12 +197,7 @@ CONFIG_AGP_AMD64=y
175197
CONFIG_AGP_INTEL=y
176198
CONFIG_DRM=y
177199
CONFIG_DRM_I915=y
178-
CONFIG_FB_MODE_HELPERS=y
179-
CONFIG_FB_TILEBLITTING=y
180-
CONFIG_FB_EFI=y
181-
CONFIG_LOGO=y
182-
# CONFIG_LOGO_LINUX_MONO is not set
183-
# CONFIG_LOGO_LINUX_VGA16 is not set
200+
CONFIG_DRM_VIRTIO_GPU=y
184201
CONFIG_SOUND=y
185202
CONFIG_SND=y
186203
CONFIG_SND_HRTIMER=y
@@ -213,6 +230,8 @@ CONFIG_USB_STORAGE=y
213230
CONFIG_RTC_CLASS=y
214231
# CONFIG_RTC_HCTOSYS is not set
215232
CONFIG_DMADEVICES=y
233+
CONFIG_VIRTIO_PCI=y
234+
CONFIG_VIRTIO_INPUT=y
216235
CONFIG_EEEPC_LAPTOP=y
217236
CONFIG_AMD_IOMMU=y
218237
CONFIG_INTEL_IOMMU=y
@@ -237,6 +256,7 @@ CONFIG_NFS_FS=y
237256
CONFIG_NFS_V3_ACL=y
238257
CONFIG_NFS_V4=y
239258
CONFIG_ROOT_NFS=y
259+
CONFIG_9P_FS=y
240260
CONFIG_NLS_DEFAULT="utf8"
241261
CONFIG_NLS_CODEPAGE_437=y
242262
CONFIG_NLS_ASCII=y
@@ -257,4 +277,3 @@ CONFIG_BLK_DEV_IO_TRACE=y
257277
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
258278
CONFIG_EARLY_PRINTK_DBGP=y
259279
CONFIG_DEBUG_BOOT_PARAMS=y
260-
CONFIG_KALLSYMS_ALL=y

arch/x86/kernel/fpu/core.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -415,9 +415,6 @@ int fpu_copy_uabi_to_guest_fpstate(struct fpu_guest *gfpu, const void *buf,
415415
xpkru = get_xsave_addr(&kstate->regs.xsave, XFEATURE_PKRU);
416416
*vpkru = xpkru->pkru;
417417
}
418-
419-
/* Ensure that XCOMP_BV is set up for XSAVES */
420-
xstate_init_xcomp_bv(&kstate->regs.xsave, kstate->xfeatures);
421418
return 0;
422419
}
423420
EXPORT_SYMBOL_GPL(fpu_copy_uabi_to_guest_fpstate);

0 commit comments

Comments
 (0)