x86: Drop opt_pku entirely

This option is particularly dubious as Xen does not use Protection Keys, owing
to the sharing of pagetables with PV guests.  All this option does is hide PKU
by default from HVM guests, and is therefore redundant with the more generic
cpuid=no-pku.

The variable ought to be in __initdata given it's single user, but deleting it
entirely looks to be a better course of action.

Visibility of PKU to guests should be handled via its vm.cfg file.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Henry Wang <Henry.Wang@arm.com>
This commit is contained in:
Andrew Cooper committed 2023-08-07 15:30:18 +01:00
1 parent 767d1a2cfd
commit 65f0d6fc80
3 files changed
+4 -17

No files matched your search

+4
View File
@@ -25,6 +25,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
- Add support for AVX512-FP16 on x86.
- On Arm, Xen supports guests running SVE/SVE2 instructions. (Tech Preview)
### Removed
- On x86, the "pku" command line option has been removed. It has never
behaved precisely as described, and was redundant with the unsupported
"cpuid=no-pku". Visibility of PKU to guests should be via its vm.cfg file.
## [4.17.0](https://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.17.0) - 2022-12-12
-10
View File
@@ -1950,16 +1950,6 @@ for all of them (`true`), only for those subject to XPTI (`xpti`) or for
those not subject to XPTI (`no-xpti`). The feature is used only in case
INVPCID is supported and not disabled via `invpcid=false`.
### pku (x86)
> `= <boolean>`
> Default: `true`
Flag to enable Memory Protection Keys.
The protection-key feature provides an additional mechanism by which IA-32e
paging controls access to usermode addresses.
### ple_gap
> `= <integer>`
-7
View File
@@ -29,10 +29,6 @@ bool __read_mostly opt_dom0_cpuid_faulting = true;
bool opt_arat = true;
boolean_param("arat", opt_arat);
/* pku: Flag to enable Memory Protection Keys (default on). */
static bool opt_pku = true;
boolean_param("pku", opt_pku);
unsigned int opt_cpuid_mask_ecx = ~0u;
integer_param("cpuid_mask_ecx", opt_cpuid_mask_ecx);
unsigned int opt_cpuid_mask_edx = ~0u;
@@ -522,9 +518,6 @@ void identify_cpu(struct cpuinfo_x86 *c)
this_cpu->c_init(c);
if (c == &boot_cpu_data && !opt_pku)
setup_clear_cpu_cap(X86_FEATURE_PKU);
/*
* The vendor-specific functions might have changed features. Now
* we do "generic changes."
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.