[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v6] xen/sm{e, a}p: allow disabling sm{e, a}p for Xen itself
>>> On 05.09.16 at 07:17, <he.chen@xxxxxxxxxxxxxxx> wrote: > SMEP/SMAP is a security feature to prevent kernel executing/accessing > user address involuntarily, any such behavior will lead to a page fault. > > SMEP/SMAP is open (in CR4) for both Xen and HVM guest in earlier code. > SMEP/SMAP bit set in Xen CR4 would enforce security checking for 32-bit > PV guest which will suffer unknown SMEP/SMAP page fault when guest > kernel attempt to access user address although SMEP/SMAP is close for > PV guests. > > This patch introduces a new boot option value "hvm" for "sm{e,a}p", it > is going to diable SMEP/SMAP for Xen hypervisor while enable them for > HVM. In this way, 32-bit PV guest will not suffer SMEP/SMAP security > issue. Users can choose whether open SMEP/SMAP for Xen itself, > especially when they are going to run 32-bit PV guests. > > Signed-off-by: He Chen <he.chen@xxxxxxxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> albeit one style issue still wasn't taken care of (I'll try to remember to clean this up when committing): > @@ -111,6 +103,62 @@ struct cpuinfo_x86 __read_mostly boot_cpu_data = { 0, 0, > 0, 0, -1 }; > > unsigned long __read_mostly mmu_cr4_features = XEN_MINIMAL_CR4; > > +/* smep: Enable/disable Supervisor Mode Execution Protection (default on). */ > +#define SMEP_HVM_ONLY (-1) > +static s8 __initdata opt_smep = 1; > +static void __init parse_smep_param(char *s) > +{ > + if ( !*s ) > + { > + opt_smep = 1; > + return; > + } > + > + switch ( parse_bool(s) ) > + { > + case 0: > + opt_smep = 0; > + return; > + case 1: > + opt_smep = 1; > + return; > + } > + > + if ( !strcmp(s, "hvm") ) > + { > + opt_smep = SMEP_HVM_ONLY; > + } You still left unnecessary braces here. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |