|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v0 2/3] mem_event: Added new helper API to teardown mem event setup and unmap ring_page.
>>diff --git a/tools/libxc/xc_mem_access.c b/tools/libxc/xc_mem_access.c
>>index 89050be..ea24689 100644
>>--- a/tools/libxc/xc_mem_access.c
>>+++ b/tools/libxc/xc_mem_access.c
>>@@ -33,12 +33,11 @@ int xc_mem_access_enable(xc_interface *xch,
>domid_t
>>domain_id,
>> port, ring_page, back_ring); }
>>
>>-int xc_mem_access_disable(xc_interface *xch, domid_t domain_id)
>>+int xc_mem_access_disable(xc_interface *xch, domid_t domain_id, void
>>*ring_page)
>> {
>>- return xc_mem_event_control(xch, domain_id,
>>- XEN_DOMCTL_MEM_EVENT_OP_ACCESS_DISABLE,
>>- XEN_DOMCTL_MEM_EVENT_OP_ACCESS,
>>- NULL);
>>+ return xc_mem_event_teardown(xch, domain_id,
>>+ HVM_PARAM_ACCESS_RING_PFN,
>>+ ring_page);
>> }
>
>Coding style. Please line up the parameters after the "(".
>
>> int xc_mem_access_resume(xc_interface *xch, domid_t domain_id) diff
>>--git a/tools/libxc/xc_mem_event.c b/tools/libxc/xc_mem_event.c index
>>3525a83..6cd1894 100644
>>--- a/tools/libxc/xc_mem_event.c
>>+++ b/tools/libxc/xc_mem_event.c
>>@@ -196,3 +196,62 @@ int xc_mem_event_enable(xc_interface *xch,
>domid_t
>>domain_id, int param,
>>
>> return rc1;
>> }
>>+
>>+/*
>>+ * Teardown mem_event
>>+ * returns 0 on success, if failure returns -errno with errno properly set.
>>+ * param can be HVM_PARAM_PAGING/ACCESS/SHARING_RING_PFN
>>+ */
>
>Same comment as in the previous review. I did think that the norm was to
>return -1 on error and set errno to the appropriate value. I guess a maintainer
>could confirm this.
>
>>+int xc_mem_event_teardown(xc_interface *xch, domid_t domain_id,
>>+ int param, void *ring_page) {
>>+ int rc;
>>+ unsigned int op, mode;
>>+ switch ( param )
>>+ {
>>+ case HVM_PARAM_PAGING_RING_PFN:
>>+ op = XEN_DOMCTL_MEM_EVENT_OP_PAGING_DISABLE;
>>+ mode = XEN_DOMCTL_MEM_EVENT_OP_PAGING;
>>+ break;
>>+
>>+ case HVM_PARAM_ACCESS_RING_PFN:
>>+ op = XEN_DOMCTL_MEM_EVENT_OP_ACCESS_DISABLE;
>>+ mode = XEN_DOMCTL_MEM_EVENT_OP_ACCESS;
>>+ break;
>>+
>>+ case HVM_PARAM_SHARING_RING_PFN:
>>+ op = XEN_DOMCTL_MEM_EVENT_OP_SHARING_DISABLE;
>>+ mode = XEN_DOMCTL_MEM_EVENT_OP_SHARING;
>>+ break;
>>+
>>+ /*
>>+ * This is for the outside chance that the HVM_PARAM is valid
>>but is invalid
>>+ * as far as mem_event goes.
>>+ */
>>+ default:
>>+ errno = EINVAL;
>>+ rc = -1;
>>+ goto out;
>>+ }
>>+
>>+ /* Remove the ring page. */
>>+ rc = munmap(ring_page, PAGE_SIZE);
>>+ if ( rc < 0 )
>>+ PERROR("Error while disabling paging in xen");
>
>You could say error in munmap instead of a generic statement. And if you are
>going to display a error message here you should add one in the error path of
>xc_mem_event_enable() too.
>
>>+ ring_page = NULL;
>>+
>>+ rc = xc_mem_event_control(xch, domain_id, op, mode, NULL);
>>+ if ( rc != 0 )
>>+ {
>>+ PERROR("Failed to disable mem_event\n");
>>+ goto out;
>
>Why do you need a goto here? You could set rc to -errno in default case of the
>"switch" statement and in the above "if" and just have a "return rc" at the out
>label.
>
>>+ }
>>+
>>+ out:
>>+ if (rc != 0)
>
>Coding style.
>
>>+ rc = -errno;
>>+
>>+ return rc;
>>+}
>>diff --git a/tools/libxc/xc_private.h b/tools/libxc/xc_private.h index
>>cf9b223..7120a08 100644
>>--- a/tools/libxc/xc_private.h
>>+++ b/tools/libxc/xc_private.h
>>@@ -387,4 +387,12 @@ int xc_mem_event_enable(xc_interface *xch,
>domid_t
>>domain_id, int param,
>> uint32_t *port, void *ring_page,
>> mem_event_back_ring_t *back_ring);
>>
>>+/*
>>+ * Teardown mem_event
>
>Fullstop.
>
>>+ * returns 0 on success, if failure returns -errno with errno properly set.
>
>Please capitalize the "r".
>
>>+ * param can be HVM_PARAM_PAGING/ACCESS/SHARING_RING_PFN
>>+ */
>>+int xc_mem_event_teardown(xc_interface *xch, domid_t domain_id,
>>+ int param, void *ring_page);
>>+
>
>Why is this called mem_event_teardown()? Won't mem_event_disable() be
>more appropriate?
>
>Thanks,
>Aravindh
Adding xen-devel back as I dropped it accidently.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |