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:17:29 +0000 Message-ID: <56460D19.9090100@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> <56460CC4.9000902@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <56460CC4.9000902@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 13/11/15 16:16, Andrew Cooper wrote: > 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. Sorry - ignore me. I hadn't looked at the subsequent patch while reviewing this one. ~Andrew