From: Paul Durrant <paul.durrant@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
Paul Durrant <paul.durrant@citrix.com>,
Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 3/4] x86/hvm: re-structure some of the ioreq server look-up loops
Date: Fri, 16 Mar 2018 11:45:38 +0000 [thread overview]
Message-ID: <20180316114539.16870-4-paul.durrant@citrix.com> (raw)
In-Reply-To: <20180316114539.16870-1-paul.durrant@citrix.com>
This patch is a cosmetic re-structuring of some of the loops with look up
an ioreq server based on target domain and server id.
The restructuring is done separately here to ease review of a subsquent
patch.
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
---
xen/arch/x86/hvm/ioreq.c | 100 +++++++++++++++++++++++------------------------
1 file changed, 50 insertions(+), 50 deletions(-)
diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index 8d1ff46146..712c75ff35 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -862,37 +862,37 @@ int hvm_map_io_range_to_ioreq_server(struct domain *d, ioservid_t id,
&d->arch.hvm_domain.ioreq_server.list,
list_entry )
{
+ struct rangeset *r;
+
if ( s == d->arch.hvm_domain.default_ioreq_server )
continue;
- if ( s->id == id )
- {
- struct rangeset *r;
-
- switch ( type )
- {
- case XEN_DMOP_IO_RANGE_PORT:
- case XEN_DMOP_IO_RANGE_MEMORY:
- case XEN_DMOP_IO_RANGE_PCI:
- r = s->range[type];
- break;
+ if ( s->id != id )
+ continue;
- default:
- r = NULL;
- break;
- }
+ switch ( type )
+ {
+ case XEN_DMOP_IO_RANGE_PORT:
+ case XEN_DMOP_IO_RANGE_MEMORY:
+ case XEN_DMOP_IO_RANGE_PCI:
+ r = s->range[type];
+ break;
- rc = -EINVAL;
- if ( !r )
- break;
+ default:
+ r = NULL;
+ break;
+ }
- rc = -EEXIST;
- if ( rangeset_overlaps_range(r, start, end) )
+ rc = -EINVAL;
+ if ( !r )
break;
- rc = rangeset_add_range(r, start, end);
+ rc = -EEXIST;
+ if ( rangeset_overlaps_range(r, start, end) )
break;
- }
+
+ rc = rangeset_add_range(r, start, end);
+ break;
}
spin_unlock_recursive(&d->arch.hvm_domain.ioreq_server.lock);
@@ -917,37 +917,37 @@ int hvm_unmap_io_range_from_ioreq_server(struct domain *d, ioservid_t id,
&d->arch.hvm_domain.ioreq_server.list,
list_entry )
{
+ struct rangeset *r;
+
if ( s == d->arch.hvm_domain.default_ioreq_server )
continue;
- if ( s->id == id )
- {
- struct rangeset *r;
-
- switch ( type )
- {
- case XEN_DMOP_IO_RANGE_PORT:
- case XEN_DMOP_IO_RANGE_MEMORY:
- case XEN_DMOP_IO_RANGE_PCI:
- r = s->range[type];
- break;
+ if ( s->id != id )
+ continue;
- default:
- r = NULL;
- break;
- }
+ switch ( type )
+ {
+ case XEN_DMOP_IO_RANGE_PORT:
+ case XEN_DMOP_IO_RANGE_MEMORY:
+ case XEN_DMOP_IO_RANGE_PCI:
+ r = s->range[type];
+ break;
- rc = -EINVAL;
- if ( !r )
- break;
+ default:
+ r = NULL;
+ break;
+ }
- rc = -ENOENT;
- if ( !rangeset_contains_range(r, start, end) )
- break;
+ rc = -EINVAL;
+ if ( !r )
+ break;
- rc = rangeset_remove_range(r, start, end);
+ rc = -ENOENT;
+ if ( !rangeset_contains_range(r, start, end) )
break;
- }
+
+ rc = rangeset_remove_range(r, start, end);
+ break;
}
spin_unlock_recursive(&d->arch.hvm_domain.ioreq_server.lock);
@@ -985,11 +985,11 @@ int hvm_map_mem_type_to_ioreq_server(struct domain *d, ioservid_t id,
if ( s == d->arch.hvm_domain.default_ioreq_server )
continue;
- if ( s->id == id )
- {
- rc = p2m_set_ioreq_server(d, flags, s);
- break;
- }
+ if ( s->id != id )
+ continue;
+
+ rc = p2m_set_ioreq_server(d, flags, s);
+ break;
}
spin_unlock_recursive(&d->arch.hvm_domain.ioreq_server.lock);
--
2.11.0
_______________________________________________
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-16 11:45 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-16 11:45 [PATCH 0/4] stricter ioreq server permissions checks Paul Durrant
2018-03-16 11:45 ` [PATCH 1/4] x86/hvm: stop passing explicit domid to hvm_create_ioreq_server() Paul Durrant
2018-03-16 11:45 ` [PATCH 2/4] x86/hvm: take a reference on ioreq server emulating domain Paul Durrant
2018-03-16 11:45 ` Paul Durrant [this message]
2018-03-16 11:45 ` [PATCH 4/4] x86/hvm: add stricter permissions checks to ioreq server control plane Paul Durrant
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=20180316114539.16870-4-paul.durrant@citrix.com \
--to=paul.durrant@citrix.com \
--cc=andrew.cooper3@citrix.com \
--cc=jbeulich@suse.com \
--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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).