From: Ian Jackson <ian.jackson@eu.citrix.com> To: qemu-devel@nongnu.org Cc: Ross Lagerwall <ross.lagerwall@citrix.com>, Anthony PERARD <anthony.perard@citrix.com>, xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Ian Jackson <ian.jackson@eu.citrix.com>, xen-devel@nongnu.org, Ian Jackson <Ian.Jackson@eu.citrix.com> Subject: [Qemu-devel] [PATCH 2/8] xen: restrict: use xentoolcore_restrict_all Date: Wed, 4 Oct 2017 17:18:05 +0100 [thread overview] Message-ID: <1507133891-26013-3-git-send-email-ian.jackson@eu.citrix.com> (raw) In-Reply-To: <1507133891-26013-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> --- v2: Modify the compatibility code, too. Bump this patch ahead of "defer call to xen_restrict until running" Retain call to xentoolcore_restrict_all Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com> --- 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; +} + +#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, xen-devel@nongnu.org Subject: [PATCH 2/8] xen: restrict: use xentoolcore_restrict_all Date: Wed, 4 Oct 2017 17:18:05 +0100 [thread overview] Message-ID: <1507133891-26013-3-git-send-email-ian.jackson@eu.citrix.com> (raw) In-Reply-To: <1507133891-26013-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> --- v2: Modify the compatibility code, too. Bump this patch ahead of "defer call to xen_restrict until running" Retain call to xentoolcore_restrict_all Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com> --- 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; +} + +#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.xen.org https://lists.xen.org/xen-devel
next prev parent reply other threads:[~2017-10-04 16:19 UTC|newest] Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-10-04 16:18 [Qemu-devel] [PATCH v2 0/*] xen: xen-domid-restrict improvements Ian Jackson 2017-10-04 16:18 ` Ian Jackson 2017-10-04 16:18 ` [Qemu-devel] [PATCH 1/8] xen: link against xentoolcore Ian Jackson 2017-10-04 16:18 ` Ian Jackson 2017-10-04 16:18 ` Ian Jackson [this message] 2017-10-04 16:18 ` [PATCH 2/8] xen: restrict: use xentoolcore_restrict_all Ian Jackson 2017-10-04 16:18 ` [Qemu-devel] [PATCH 3/8] xen: defer call to xen_restrict until after os_setup_post Ian Jackson 2017-10-04 16:18 ` Ian Jackson 2017-10-09 15:50 ` [Qemu-devel] " Anthony PERARD 2017-10-09 15:50 ` Anthony PERARD 2017-10-09 16:58 ` [Qemu-devel] " Ian Jackson 2017-10-09 16:58 ` Ian Jackson 2017-10-10 11:40 ` [Qemu-devel] " Anthony PERARD 2017-10-10 11:40 ` Anthony PERARD 2017-10-10 17:16 ` [Qemu-devel] " Ian Jackson 2017-10-10 17:16 ` Ian Jackson 2017-10-09 17:00 ` Ian Jackson 2017-10-04 16:18 ` [Qemu-devel] [PATCH 4/8] xen: destroy_hvm_domain: Move reason into a variable Ian Jackson 2017-10-04 16:18 ` Ian Jackson 2017-10-04 16:18 ` [Qemu-devel] [PATCH 5/8] xen: move xc_interface compatibility fallback further up the file Ian Jackson 2017-10-04 16:18 ` Ian Jackson 2017-10-04 16:18 ` [Qemu-devel] [PATCH 6/8] xen: destroy_hvm_domain: Try xendevicemodel_shutdown Ian Jackson 2017-10-04 16:18 ` Ian Jackson 2017-10-04 16:18 ` [Qemu-devel] [PATCH 7/8] os-posix: Provide new -runasid option Ian Jackson 2017-10-04 16:18 ` Ian Jackson 2017-10-06 12:47 ` [Qemu-devel] " Ross Lagerwall 2017-10-06 12:47 ` Ross Lagerwall 2017-10-06 14:24 ` [Qemu-devel] " Ian Jackson 2017-10-06 14:24 ` Ian Jackson 2017-10-06 14:39 ` Ian Jackson 2017-10-06 12:59 ` [Qemu-devel] " Peter Maydell 2017-10-06 12:59 ` Peter Maydell 2017-10-06 14:24 ` Ian Jackson 2017-10-06 14:24 ` Ian Jackson 2017-10-06 14:39 ` Ian Jackson 2017-10-09 5:46 ` Markus Armbruster 2017-10-09 5:46 ` Markus Armbruster 2017-10-09 15:05 ` Ian Jackson 2017-10-09 15:05 ` Ian Jackson 2017-10-09 15:24 ` Daniel P. Berrange 2017-10-09 15:24 ` Daniel P. Berrange 2017-10-09 16:52 ` Ian Jackson 2017-10-09 16:52 ` Ian Jackson 2017-10-09 16:59 ` Ian Jackson 2017-10-10 7:43 ` Markus Armbruster 2017-10-10 7:43 ` Markus Armbruster 2017-10-10 17:11 ` Ian Jackson 2017-10-10 17:11 ` Ian Jackson 2017-10-11 9:52 ` Ian Jackson 2017-10-09 15:14 ` Ian Jackson 2017-10-04 16:18 ` [Qemu-devel] [PATCH 8/8] RFC configure: do_compiler: Dump some extra info under bash Ian Jackson 2017-10-04 16:18 ` Ian Jackson 2017-10-06 12:58 ` [Qemu-devel] [PATCH v2 0/*] xen: xen-domid-restrict improvements Ross Lagerwall 2017-10-06 12:58 ` Ross Lagerwall 2017-10-06 13:19 ` [Qemu-devel] [Xen-devel] " Paul Durrant 2017-10-06 13:19 ` Paul Durrant 2017-10-10 13:40 ` [Qemu-devel] [Xen-devel] " Ross Lagerwall 2017-10-10 13:40 ` Ross Lagerwall 2017-10-10 17:21 ` [Qemu-devel] [Xen-devel] " Ian Jackson 2017-10-10 17:21 ` Ian Jackson 2017-10-06 14:17 ` [Qemu-devel] " Ian Jackson 2017-10-06 14:17 ` Ian Jackson -- strict thread matches above, loose matches on Subject: below -- 2017-10-19 16:51 [Qemu-devel] [PATCH v5 0/8] " Ian Jackson 2017-10-19 16:51 ` [Qemu-devel] [PATCH 2/8] xen: restrict: use xentoolcore_restrict_all Ian Jackson 2017-10-09 16:01 [Qemu-devel] [PATCH v4 0/8] xen: xen-domid-restrict improvements Ian Jackson 2017-10-09 16:01 ` [Qemu-devel] [PATCH 2/8] xen: restrict: use xentoolcore_restrict_all Ian Jackson 2017-10-10 11:26 ` Anthony PERARD 2017-10-06 18:27 [Qemu-devel] [PATCH v3 0/8] xen: xen-domid-restrict improvements Ian Jackson 2017-10-06 18:27 ` [Qemu-devel] [PATCH 2/8] xen: restrict: use xentoolcore_restrict_all Ian Jackson 2017-10-04 15:53 [Qemu-devel] [PATCH v2 0/7] xen: xen-domid-restrict improvements Ian Jackson 2017-10-04 15:53 ` [Qemu-devel] [PATCH 2/8] xen: restrict: use xentoolcore_restrict_all Ian Jackson
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=1507133891-26013-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 \ --cc=xen-devel@nongnu.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.