diff mbox

[V4,02/32] xen/mm: Align virtual address on PAGE_SIZE in iounmap

Message ID 1368442894.537.59.camel@zakaz.uk.xensource.com
State New
Headers show

Commit Message

Ian Campbell May 13, 2013, 11:01 a.m. UTC
On Fri, 2013-05-10 at 16:11 +0100, Julien Grall wrote:
> ioremap function can unlikely return an unaligned virtual address if
> the physical address itself is unaligned on a page size.

On x86 this causes:
In file included from /local/scratch/ianc/devel/committer.git/xen/include/asm/io.h:5,
                 from /local/scratch/ianc/devel/committer.git/xen/include/asm/mc146818rtc.h:8,
                 from rtc.c:26:
/local/scratch/ianc/devel/committer.git/xen/include/xen/vmap.h: In function ‘iounmap’:
/local/scratch/ianc/devel/committer.git/xen/include/xen/vmap.h:20: error: ‘PAGE_MASK’ undeclared (first use in this function)
/local/scratch/ianc/devel/committer.git/xen/include/xen/vmap.h:20: error: (Each undeclared identifier is reported only once
/local/scratch/ianc/devel/committer.git/xen/include/xen/vmap.h:20: error: for each function it appears in.)
make[5]: *** [rtc.o] Error 1
make[5]: *** Waiting for unfinished jobs....

Since I had already prepared the branch for commit/push and it was a bit
of a faff I will fold in the following patchlet:

Comments

Jan Beulich May 13, 2013, 11:09 a.m. UTC | #1
>>> On 13.05.13 at 13:01, Ian Campbell <Ian.Campbell@citrix.com> wrote:
> On Fri, 2013-05-10 at 16:11 +0100, Julien Grall wrote:
>> ioremap function can unlikely return an unaligned virtual address if
>> the physical address itself is unaligned on a page size.
> 
> On x86 this causes:
> In file included from 
> /local/scratch/ianc/devel/committer.git/xen/include/asm/io.h:5,
>                  from 
> /local/scratch/ianc/devel/committer.git/xen/include/asm/mc146818rtc.h:8,
>                  from rtc.c:26:
> /local/scratch/ianc/devel/committer.git/xen/include/xen/vmap.h: In function 
> ‘iounmap’:
> /local/scratch/ianc/devel/committer.git/xen/include/xen/vmap.h:20: error: 
> ‘PAGE_MASK’ undeclared (first use in this function)
> /local/scratch/ianc/devel/committer.git/xen/include/xen/vmap.h:20: error: 
> (Each undeclared identifier is reported only once
> /local/scratch/ianc/devel/committer.git/xen/include/xen/vmap.h:20: error: 
> for each function it appears in.)
> make[5]: *** [rtc.o] Error 1
> make[5]: *** Waiting for unfinished jobs....

With this and the other two bugs that the recent "ARM-sharing-
more-code-with-x86" effort introduced, I wonder whether it's really
appropriate for doing this sort of stuff - without proper testing on
the x86 side - during the RC phase. 

Jan
Ian Campbell May 13, 2013, 11:24 a.m. UTC | #2
On Mon, 2013-05-13 at 12:09 +0100, Jan Beulich wrote:
> >>> On 13.05.13 at 13:01, Ian Campbell <Ian.Campbell@citrix.com> wrote:
> > On Fri, 2013-05-10 at 16:11 +0100, Julien Grall wrote:
> >> ioremap function can unlikely return an unaligned virtual address if
> >> the physical address itself is unaligned on a page size.
> > 
> > On x86 this causes:
> > In file included from 
> > /local/scratch/ianc/devel/committer.git/xen/include/asm/io.h:5,
> >                  from 
> > /local/scratch/ianc/devel/committer.git/xen/include/asm/mc146818rtc.h:8,
> >                  from rtc.c:26:
> > /local/scratch/ianc/devel/committer.git/xen/include/xen/vmap.h: In function 
> > ‘iounmap’:
> > /local/scratch/ianc/devel/committer.git/xen/include/xen/vmap.h:20: error: 
> > ‘PAGE_MASK’ undeclared (first use in this function)
> > /local/scratch/ianc/devel/committer.git/xen/include/xen/vmap.h:20: error: 
> > (Each undeclared identifier is reported only once
> > /local/scratch/ianc/devel/committer.git/xen/include/xen/vmap.h:20: error: 
> > for each function it appears in.)
> > make[5]: *** [rtc.o] Error 1
> > make[5]: *** Waiting for unfinished jobs....
> 
> With this and the other two bugs that the recent "ARM-sharing-
> more-code-with-x86" effort introduced, I wonder whether it's really
> appropriate for doing this sort of stuff - without proper testing on
> the x86 side - during the RC phase. 

That's a good question, which I'm afraid I didn't see until after I had
hit push. Sorry. We could revert but I'd rather not.

If it is any consolation I think this was the last major bit of ARM
functionality which was to be given such a broad freeze exception. (I
hope Stefano or Julien will correct me ASAP if this is wrong)

Ian.
diff mbox

Patch

diff --git a/xen/include/xen/vmap.h b/xen/include/xen/vmap.h
index daee7f5..b1923dd 100644
--- a/xen/include/xen/vmap.h
+++ b/xen/include/xen/vmap.h
@@ -2,6 +2,7 @@ 
 #define __XEN_VMAP_H__
 
 #include <xen/types.h>
+#include <asm/page.h>
 
 void *vm_alloc(unsigned int nr, unsigned int align);
 void vm_free(const void *);