|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 7/9] ioreq-server: remove p2m entries when server is enabled
>>> On 01.05.14 at 14:08, <paul.durrant@xxxxxxxxxx> wrote:
> +static int hvm_add_ioreq_gmfn(
> + struct domain *d, struct hvm_ioreq_page *iorp)
> +{
> + return guest_physmap_add_page(d, iorp->gmfn,
> + page_to_mfn(iorp->page), 0);
What if the guest meanwhile put something else at that address? Or
is the address range protected by some means (e.g. marked reserved
in the E820 map)?
> + case HVMOP_set_ioreq_server_state:
> + rc = hvmop_set_ioreq_server_state(
> + guest_handle_cast(arg, xen_hvm_set_ioreq_server_state_t));
> + break;
Again no XSM operation here or in the called function?
> @@ -68,6 +68,7 @@ struct hvm_ioreq_server {
> spinlock_t bufioreq_lock;
> evtchn_port_t bufioreq_evtchn;
> struct rangeset *range[MAX_IO_RANGE_TYPE];
> + bool_t enabled;
> };
Is there no 1-byte hole anywhere in the structure where this could
be put in a more efficient manner?
> --- a/xen/include/public/hvm/hvm_op.h
> +++ b/xen/include/public/hvm/hvm_op.h
> @@ -340,6 +340,22 @@ struct xen_hvm_destroy_ioreq_server {
> typedef struct xen_hvm_destroy_ioreq_server xen_hvm_destroy_ioreq_server_t;
> DEFINE_XEN_GUEST_HANDLE(xen_hvm_destroy_ioreq_server_t);
>
> +/*
> + * HVMOP_set_ioreq_server_state: Enable or disable the IOREQ Server <id>
> servicing
> + * domain <domid>.
> + *
> + * The IOREQ Server will not be passed any emulation requests until it is in
> the
> + * enabled state.
> + */
> +#define HVMOP_set_ioreq_server_state 22
> +struct xen_hvm_set_ioreq_server_state {
> + domid_t domid; /* IN - domain to be serviced */
> + ioservid_t id; /* IN - server id */
> + uint8_t enabled; /* IN - enabled? */
> +};
> +typedef struct xen_hvm_set_ioreq_server_state
> xen_hvm_set_ioreq_server_state_t;
> +DEFINE_XEN_GUEST_HANDLE(xen_hvm_set_ioreq_server_state_t);
> +
> #endif /* defined(__XEN__) || defined(__XEN_TOOLS__) */
No change to HVMOP_get_ioreq_server_info at all?
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |