From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH XEN v5 14/23] tools: foreignmemory: provide xenforeignmemory_unmap. Date: Fri, 13 Nov 2015 16:16:04 +0000 Message-ID: <56460CC4.9000902@citrix.com> References: <1447070397.27774.11.camel@citrix.com> <1447070458-31104-1-git-send-email-ian.campbell@citrix.com> <1447070458-31104-15-git-send-email-ian.campbell@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1447070458-31104-15-git-send-email-ian.campbell@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Campbell , ian.jackson@eu.citrix.com, wei.liu2@citrix.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On 09/11/15 12:00, Ian Campbell wrote: > diff --git a/tools/libs/foreignmemory/linux.c b/tools/libs/foreignmemory/linux.c > index 01cd42e..86a5a97 100644 > --- a/tools/libs/foreignmemory/linux.c > +++ b/tools/libs/foreignmemory/linux.c > @@ -276,6 +276,12 @@ void *xenforeignmemory_map(xenforeignmemory_handle *fmem, > return addr; > } > > +int xenforeignmemory_unmap(xenforeignmemory_handle *fmem, > + void *addr, unsigned int num) > +{ > + return munmap(addr, (unsigned long)num << PAGE_SHIFT); This should be size_t to match the type expected by munmap() > +} > + > /* > * Local variables: > * mode: C > diff --git a/tools/libs/foreignmemory/minios.c b/tools/libs/foreignmemory/minios.c > index 981d801..dbb152f 100644 > --- a/tools/libs/foreignmemory/minios.c > +++ b/tools/libs/foreignmemory/minios.c > @@ -51,6 +51,12 @@ void *xenforeignmemory_map(xenforeignmemory_handle *fmem, > return map_frames_ex(arr, num, 1, 0, 1, dom, err, pt_prot); > } > > +int xenforeignmemory_unmap(xenforeignmemory_handle *fmem, > + void *addr, unsigned int num) > +{ > + return munmap(addr, num << PAGE_SHIFT); This num (and freebsd/netbsd/solaris) needs upcasting before multiplication, to avoid loosing the top 12 bits on 64bit platforms. ~Andrew