[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/2] xen/xsm: Introduce new boot parameter xsm
Hell Andrew, > -----Original Message----- > From: Andrew Cooper > Sent: Friday, June 29, 2018 5:48 PM > To: Xin Li <talons.lee@xxxxxxxxx>; xen-devel@xxxxxxxxxxxxx > Cc: Xin Li (Talons) <xin.li@xxxxxxxxxx>; Daniel De Graaf > <dgdegra@xxxxxxxxxxxxx>; George Dunlap <George.Dunlap@xxxxxxxxxx>; Jan > Beulich <JBeulich@xxxxxxxx>; Konrad Rzeszutek Wilk > <konrad.wilk@xxxxxxxxxx>; Stefano Stabellini <sstabellini@xxxxxxxxxx>; Tim > (Xen.org) <tim@xxxxxxx>; Wei Liu <wei.liu2@xxxxxxxxxx>; Sergey Dyasli > <sergey.dyasli@xxxxxxxxxx>; Ming Lu <ming.lu@xxxxxxxxxx> > Subject: Re: [PATCH 1/2] xen/xsm: Introduce new boot parameter xsm > > On 29/06/18 10:28, Xin Li wrote: > > Introduce new boot parameter xsm to choose which xsm module is > > enabled, and set default to dummy. > > > > Signed-off-by: Xin Li <xin.li@xxxxxxxxxx> > > As a note for other reviewers, this series is based on top of my XSM Kconfig > cleanup. > > As for this patch, its almost there. Just a few minor issues. > > > > > --- > > CC: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx> > > CC: George Dunlap <George.Dunlap@xxxxxxxxxxxxx> > > CC: Jan Beulich <JBeulich@xxxxxxxx> > > CC: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> > > CC: Stefano Stabellini <sstabellini@xxxxxxxxxx> > > CC: Tim Deegan <tim@xxxxxxx> > > CC: Wei Liu <wei.liu2@xxxxxxxxxx> > > CC: Sergey Dyasli <sergey.dyasli@xxxxxxxxxx> > > CC: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> > > CC: Ming Lu <ming.lu@xxxxxxxxxx> > > --- > > docs/misc/xen-command-line.markdown | 13 ++++++++++ > > xen/xsm/xsm_core.c | 39 ++++++++++++++++++++++++++++- > > 2 files changed, 51 insertions(+), 1 deletion(-) > > > > diff --git a/docs/misc/xen-command-line.markdown > > b/docs/misc/xen-command-line.markdown > > index 075e5ea159..7c689b8225 100644 > > --- a/docs/misc/xen-command-line.markdown > > +++ b/docs/misc/xen-command-line.markdown > > @@ -865,6 +865,19 @@ hardware domain is architecture dependent. > > Note that specifying zero as domU value means zero, while for dom0 it > > means to use the default. > > > > +### xsm > > +> `= dummy | silo | flask` > > This should be just "dummy | flask" in this patch, and extended with silo in > the > next path. Also, options in this file should be sorted alphabetically, so > ### xsm > should be near the end, rather than beside flask. Right. Done. > > > + > > +> Default: `dummy` > > + > > +Specify which XSM module should be enabled. This option is only > > +available if the hypervisor was compiled with XSM support. > > + > > +* `dummy`: this is the default choice. No special restriction will be > > applied. > > + it's also used when XSM is compiled out. > > +* `flask`: this is the policy based access control. To choose this, > > +the > > + separated option in kconfig must also be enabled. > > + > > ### flask > > > `= permissive | enforcing | late | disabled` > > > > diff --git a/xen/xsm/xsm_core.c b/xen/xsm/xsm_core.c index > > cddcf7aa51..e002200578 100644 > > --- a/xen/xsm/xsm_core.c > > +++ b/xen/xsm/xsm_core.c > > @@ -31,6 +31,30 @@ > > > > struct xsm_operations *xsm_ops; > > > > +enum xsm_bootparam { > > + XSM_BOOTPARAM_DUMMY, > > + XSM_BOOTPARAM_FLASK, > > + XSM_BOOTPARAM_INVALID, > > I'd drop INVALID (See below for the parsing aspect), as it actually falls > back to > DUMMY. > > > +}; > > + > > +enum xsm_bootparam __read_mostly xsm_bootparam = > XSM_BOOTPARAM_DUMMY; > > This should be __initdata rather than __read_mostly. It is safe to be > discarded > after boot. > > > + > > +static int __init parse_xsm_param(const char *s) { > > int rc = 0; > > > + if ( !strcmp(s, "dummy") ) > > + xsm_bootparam = XSM_BOOTPARAM_DUMMY; #ifdef > CONFIG_XSM_FLASK > > + else if ( !strcmp(s, "flask") ) > > + xsm_bootparam = XSM_BOOTPARAM_FLASK; #endif > > + else > > + xsm_bootparam = XSM_BOOTPARAM_INVALID; > > + > > + return 0; > > else > rc = -EINVAL; > > return rc; > > As a result, the core command line infrastructure will inform the user if they > passed an unrecognised option. > OK. Thank you. > ~Andrew > > > +} > > + > > +custom_param("xsm", parse_xsm_param); > > + > > static inline int verify(struct xsm_operations *ops) { > > /* verify the security_operations structure exists */ @@ -57,7 > > +81,20 @@ static int __init xsm_core_init(const void *policy_buffer, size_t > policy_size) > > } > > > > xsm_ops = &dummy_xsm_ops; > > - flask_init(policy_buffer, policy_size); > > + > > + switch ( xsm_bootparam ) > > + { > > + case XSM_BOOTPARAM_DUMMY: > > + /* empty */ > > + break; > > + > > + case XSM_BOOTPARAM_FLASK: > > + flask_init(policy_buffer, policy_size); > > + break; > > + > > + default: > > + printk("XSM: Invalid value for xsm= boot parameter.\n"); > > + } > > > > return 0; > > } Best regards Xin(Talons) Li _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |