[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] libxc: fix xc_gntshr_munmap semantic
CC'ed Ian. On 26.04.2013 14:40, Marek Marczykowski wrote: > "count" parameter should be pages count (as stated in comment in > xenctrl.h), not bytes count. > This patch fixes also the only user of this function (in xen sources) - > libvchan. > > Signed-off-by: Marek Marczykowski <marmarek@xxxxxxxxxxxxxxxxxxxxxx> > --- > tools/libvchan/init.c | 4 ++-- > tools/libvchan/io.c | 10 ++++++---- > tools/libxc/xc_linux_osdep.c | 2 +- > 3 files changed, 9 insertions(+), 7 deletions(-) > > diff --git a/tools/libvchan/init.c b/tools/libvchan/init.c > index 0c7cff6..f0d2505 100644 > --- a/tools/libvchan/init.c > +++ b/tools/libvchan/init.c > @@ -129,9 +129,9 @@ out: > return ring_ref; > out_unmap_left: > if (pages_left) > - xc_gntshr_munmap(ctrl->gntshr, ctrl->read.buffer, pages_left * > PAGE_SIZE); > + xc_gntshr_munmap(ctrl->gntshr, ctrl->read.buffer, pages_left); > out_ring: > - xc_gntshr_munmap(ctrl->gntshr, ring, PAGE_SIZE); > + xc_gntshr_munmap(ctrl->gntshr, ring, 1); > ring_ref = -1; > ctrl->ring = NULL; > ctrl->write.order = ctrl->read.order = 0; > diff --git a/tools/libvchan/io.c b/tools/libvchan/io.c > index 3c8d236..3040099 100644 > --- a/tools/libvchan/io.c > +++ b/tools/libvchan/io.c > @@ -324,16 +324,18 @@ void libxenvchan_close(struct libxenvchan *ctrl) > if (!ctrl) > return; > if (ctrl->read.order >= PAGE_SHIFT) > - munmap(ctrl->read.buffer, 1 << ctrl->read.order); > + xc_gntshr_munmap(ctrl->gntshr, ctrl->read.buffer, > + 1 << (ctrl->read.order - PAGE_SHIFT)); > if (ctrl->write.order >= PAGE_SHIFT) > - munmap(ctrl->write.buffer, 1 << ctrl->write.order); > + xc_gntshr_munmap(ctrl->gntshr, ctrl->write.buffer, > + 1 << (ctrl->write.order - PAGE_SHIFT)); > if (ctrl->ring) { > if (ctrl->is_server) { > ctrl->ring->srv_live = 0; > - xc_gntshr_munmap(ctrl->gntshr, ctrl->ring, PAGE_SIZE); > + xc_gntshr_munmap(ctrl->gntshr, ctrl->ring, 1); > } else { > ctrl->ring->cli_live = 0; > - xc_gnttab_munmap(ctrl->gnttab, ctrl->ring, PAGE_SIZE); > + xc_gnttab_munmap(ctrl->gnttab, ctrl->ring, 1); > } > } > if (ctrl->event) { > diff --git a/tools/libxc/xc_linux_osdep.c b/tools/libxc/xc_linux_osdep.c > index 36832b6..3c43fca 100644 > --- a/tools/libxc/xc_linux_osdep.c > +++ b/tools/libxc/xc_linux_osdep.c > @@ -825,7 +825,7 @@ static void *linux_gntshr_share_pages(xc_gntshr *xch, > xc_osdep_handle h, > static int linux_gntshr_munmap(xc_gntshr *xcg, xc_osdep_handle h, > void *start_address, uint32_t count) > { > - return munmap(start_address, count); > + return munmap(start_address, count * XC_PAGE_SIZE); > } > > static struct xc_osdep_ops linux_gntshr_ops = { > -- Best Regards / Pozdrawiam, Marek Marczykowski Invisible Things Lab Attachment:
signature.asc _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |