[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 3/5] tools/libs/foreignmemory: Fix PAGE_SIZE redefinition error
Hi Julien, On 5/17/21 9:12 PM, Julien Grall wrote: > Hi Costin, > > On 10/05/2021 09:35, Costin Lupu wrote: >> @@ -168,7 +168,7 @@ void >> *osdep_xenforeignmemory_map(xenforeignmemory_handle *fmem, >> size_t i; >> int rc; >> - addr = mmap(addr, num << PAGE_SHIFT, prot, flags | MAP_SHARED, >> + addr = mmap(addr, num << XC_PAGE_SHIFT, prot, flags | MAP_SHARED, >> fd, 0); >> if ( addr == MAP_FAILED ) >> return NULL; >> @@ -198,9 +198,10 @@ void >> *osdep_xenforeignmemory_map(xenforeignmemory_handle *fmem, >> */ >> privcmd_mmapbatch_t ioctlx; >> xen_pfn_t *pfn; >> - unsigned int pfn_arr_size = ROUNDUP((num * sizeof(*pfn)), >> PAGE_SHIFT); >> + unsigned int pfn_arr_size = ROUNDUP((num * sizeof(*pfn)), >> XC_PAGE_SHIFT); >> + int os_page_size = getpagesize(); > > Hmmm... Sorry I only realized now that the manpage suggests that > getpagesize() is legacy: > > SVr4, 4.4BSD, SUSv2. In SUSv2 the getpagesize() call is labeled > LEGACY, and in POSIX.1-2001 it has been dropped; HP-UX does not have > this call. > > And then: > > Portable applications should employ sysconf(_SC_PAGESIZE) instead of > getpagesize(): > > #include <unistd.h> > long sz = sysconf(_SC_PAGESIZE); > > As this is only used by Linux, it is not clear to me whether this is > important. Ian, what do you think? > I think it would be safer to follow the man page indication. I've just sent a v4. >> - if ( pfn_arr_size <= PAGE_SIZE ) >> + if ( pfn_arr_size <= os_page_size ) > > Your commit message suggests we are only s/PAGE_SHIFT/XC_PAGE_SHIFT/ but > this is using getpagesize() instead. I agree it should be using the OS > size. However, this should be clarified in the commit message. > Done. > The rest of the patch looks fine to me . Thanks, Costin
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |