From: Ian Jackson <ian.jackson@eu.citrix.com> To: qemu-devel@nongnu.org Cc: xen-devel@lists.xenproject.org, Ian Jackson <ian.jackson@eu.citrix.com>, Ross Lagerwall <ross.lagerwall@citrix.com>, Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Ian Jackson <Ian.Jackson@eu.citrix.com> Subject: [Qemu-devel] [PATCH 02/11] xen: restrict: use xentoolcore_restrict_all Date: Thu, 8 Mar 2018 17:39:08 +0000 [thread overview] Message-ID: <1520530757-4477-3-git-send-email-ian.jackson@eu.citrix.com> (raw) In-Reply-To: <1520530757-4477-1-git-send-email-ian.jackson@eu.citrix.com> 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@eu.citrix.com> Reviewed-by: Anthony PERARD <anthony.perard@citrix.com> Acked-by: Stefano Stabellini <sstabellini@kernel.org> --- 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 64a978e..1766bb9 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; +} + +#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
WARNING: multiple messages have this Message-ID (diff)
From: Ian Jackson <ian.jackson@eu.citrix.com> To: qemu-devel@nongnu.org Cc: Juergen Gross <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Ian Jackson <Ian.Jackson@eu.citrix.com>, Ross Lagerwall <ross.lagerwall@citrix.com>, Anthony PERARD <anthony.perard@citrix.com>, xen-devel@lists.xenproject.org Subject: [PATCH 02/11] xen: restrict: use xentoolcore_restrict_all Date: Thu, 8 Mar 2018 17:39:08 +0000 [thread overview] Message-ID: <1520530757-4477-3-git-send-email-ian.jackson@eu.citrix.com> (raw) In-Reply-To: <1520530757-4477-1-git-send-email-ian.jackson@eu.citrix.com> 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@eu.citrix.com> Reviewed-by: Anthony PERARD <anthony.perard@citrix.com> Acked-by: Stefano Stabellini <sstabellini@kernel.org> --- 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 64a978e..1766bb9 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; +} + +#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@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply other threads:[~2018-03-08 17:39 UTC|newest] Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-03-08 17:39 [Qemu-devel] [PATCH v6 00/11] xen: xen-domid-restrict improvements Ian Jackson 2018-03-08 17:39 ` Ian Jackson 2018-03-08 17:39 ` [Qemu-devel] [PATCH 01/11] xen: link against xentoolcore Ian Jackson 2018-03-08 17:39 ` Ian Jackson 2018-03-08 17:39 ` Ian Jackson [this message] 2018-03-08 17:39 ` [PATCH 02/11] xen: restrict: use xentoolcore_restrict_all Ian Jackson 2018-03-08 17:39 ` [Qemu-devel] [PATCH 03/11] xen: defer call to xen_restrict until just before os_setup_post Ian Jackson 2018-03-08 17:39 ` Ian Jackson 2018-03-08 20:03 ` [Qemu-devel] " Eduardo Habkost 2018-03-08 20:03 ` Eduardo Habkost 2018-03-09 11:33 ` [Qemu-devel] " Ian Jackson 2018-03-09 11:33 ` Ian Jackson 2018-03-09 12:07 ` [Qemu-devel] " Ian Jackson 2018-03-09 12:08 ` Ian Jackson 2018-03-09 12:08 ` Ian Jackson 2018-03-09 12:09 ` [Qemu-devel] " Ian Jackson 2018-03-09 12:09 ` Ian Jackson 2018-03-09 12:58 ` [Qemu-devel] " Eduardo Habkost 2018-03-09 12:58 ` Eduardo Habkost 2018-03-11 21:12 ` Stefano Stabellini 2018-03-11 21:12 ` [Qemu-devel] " Stefano Stabellini 2018-03-09 12:07 ` Ian Jackson 2018-03-09 12:55 ` Eduardo Habkost 2018-03-09 12:55 ` [Qemu-devel] " Eduardo Habkost 2018-03-08 17:39 ` [PATCH 04/11] xen: destroy_hvm_domain: Move reason into a variable Ian Jackson 2018-03-08 17:39 ` [Qemu-devel] " Ian Jackson 2018-03-08 17:39 ` [Qemu-devel] [PATCH 05/11] xen: move xc_interface compatibility fallback further up the file Ian Jackson 2018-03-08 17:39 ` Ian Jackson 2018-03-08 17:39 ` [Qemu-devel] [PATCH 06/11] xen: destroy_hvm_domain: Try xendevicemodel_shutdown Ian Jackson 2018-03-08 17:39 ` Ian Jackson 2018-03-08 17:39 ` [Qemu-devel] [PATCH 07/11] os-posix: Provide new -runas <uid>:<gid> facility Ian Jackson 2018-03-08 17:39 ` Ian Jackson 2018-03-08 17:39 ` [PATCH 08/11] configure: do_compiler: Dump some extra info under bash Ian Jackson 2018-03-08 17:39 ` [Qemu-devel] " Ian Jackson 2018-03-08 17:39 ` [Qemu-devel] [PATCH 09/11] xen: Use newly added dmops for mapping VGA memory Ian Jackson 2018-03-08 17:39 ` Ian Jackson 2018-03-08 17:39 ` [Qemu-devel] [PATCH 10/11] xen: Expect xenstore write to fail when restricted Ian Jackson 2018-03-08 17:39 ` Ian Jackson 2018-03-08 17:39 ` [Qemu-devel] [PATCH 11/11] scripts/get_maintainer.pl: Print proper error message for missing $file Ian Jackson 2018-03-08 17:39 ` Ian Jackson 2018-03-08 17:45 ` [Qemu-devel] [PATCH v6 00/11] xen: xen-domid-restrict improvements Ian Jackson 2018-03-08 17:45 ` Ian Jackson 2018-03-08 17:54 ` [Qemu-devel] " no-reply 2018-03-08 17:54 ` no-reply 2018-03-08 17:58 ` Ian Jackson 2018-03-08 17:58 ` Ian Jackson 2018-03-08 18:10 ` no-reply 2018-03-08 18:10 ` no-reply 2018-03-08 20:00 ` no-reply 2018-03-08 20:00 ` no-reply 2018-03-08 21:45 ` no-reply 2018-03-08 21:45 ` no-reply
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1520530757-4477-3-git-send-email-ian.jackson@eu.citrix.com \ --to=ian.jackson@eu.citrix.com \ --cc=anthony.perard@citrix.com \ --cc=jgross@suse.com \ --cc=qemu-devel@nongnu.org \ --cc=ross.lagerwall@citrix.com \ --cc=sstabellini@kernel.org \ --cc=xen-devel@lists.xenproject.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.