[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5.1 2/8] xen: restrict: use xentoolcore_restrict_all
On Fri, 20 Oct 2017, Ian Jackson wrote: > And insist that it works. > > Drop individual use of xendevicemodel_restrict and > xenforeignmemory_restrict. These are not actually effective in this > version of qemu, because qemu has a large number of fds open onto > various Xen control devices. > > The restriction arrangements are still not right, because the > restriction needs to be done very late - after qemu has opened all of > its control fds. > > xentoolcore_restrict_all and xentoolcore.h are available in Xen 4.10 > and later, only. Provide a compatibility stub. And drop the > compatibility stubs for the old functions. > > Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> > Reviewed-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> > --- > v2: Modify the compatibility code, too. > Bump this patch ahead of "defer call to xen_restrict until running" > Retain call to xentoolcore_restrict_all > --- > include/hw/xen/xen_common.h | 46 > +++++++++++---------------------------------- > 1 file changed, 11 insertions(+), 35 deletions(-) > > diff --git a/include/hw/xen/xen_common.h b/include/hw/xen/xen_common.h > index 86c7f26..3f44a63 100644 > --- a/include/hw/xen/xen_common.h > +++ b/include/hw/xen/xen_common.h > @@ -91,6 +91,16 @@ static inline void > *xenforeignmemory_map2(xenforeignmemory_handle *h, > return xenforeignmemory_map(h, dom, prot, pages, arr, err); > } > > +static inline int xentoolcore_restrict_all(domid_t domid) > +{ > + errno = ENOTTY; > + return -1; Wait, if the compat stub returns error, and this patch removed the code to check for ENOTTY, doesn't it prevent any QEMU compiled against older Xen from working? Or am I missing something? > +} > + > +#else /* CONFIG_XEN_CTRL_INTERFACE_VERSION >= 41000 */ > + > +#include <xentoolcore.h> > + > #endif > > #if CONFIG_XEN_CTRL_INTERFACE_VERSION < 40900 > @@ -218,20 +228,6 @@ static inline int xendevicemodel_set_mem_type( > return xc_hvm_set_mem_type(dmod, domid, mem_type, first_pfn, nr); > } > > -static inline int xendevicemodel_restrict( > - xendevicemodel_handle *dmod, domid_t domid) > -{ > - errno = ENOTTY; > - return -1; > -} > - > -static inline int xenforeignmemory_restrict( > - xenforeignmemory_handle *fmem, domid_t domid) > -{ > - errno = ENOTTY; > - return -1; > -} > - > #else /* CONFIG_XEN_CTRL_INTERFACE_VERSION >= 40900 */ > > #undef XC_WANT_COMPAT_DEVICEMODEL_API > @@ -290,28 +286,8 @@ static inline int xen_modified_memory(domid_t domid, > uint64_t first_pfn, > static inline int xen_restrict(domid_t domid) > { > int rc; > - > - /* Attempt to restrict devicemodel operations */ > - rc = xendevicemodel_restrict(xen_dmod, domid); > + rc = xentoolcore_restrict_all(domid); > trace_xen_domid_restrict(rc ? errno : 0); > - > - if (rc < 0) { > - /* > - * If errno is ENOTTY then restriction is not implemented so > - * there's no point in trying to restrict other types of > - * operation, but it should not be treated as a failure. > - */ > - if (errno == ENOTTY) { > - return 0; > - } > - > - return rc; > - } > - > - /* Restrict foreignmemory operations */ > - rc = xenforeignmemory_restrict(xen_fmem, domid); > - trace_xen_domid_restrict(rc ? errno : 0); > - > return rc; > } > > -- > 2.1.4 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |