2008-01-23 12:02:57

by Ben Nizette

[permalink] [raw]
Subject: [PATCH -mm] fix variable use in AVR32 pte_alloc_one


Some parts of this function use 'page', some 'pte'. As such, an AVR32
-mm build fails with an undefined reference to 'page'.

Signed-Off-By: Ben Nizette <[email protected]>

---
Index: linux-2.6.24-rc8-mm1/include/asm-avr32/pgalloc.h
===================================================================
--- linux-2.6.24-rc8-mm1.orig/include/asm-avr32/pgalloc.h
+++ linux-2.6.24-rc8-mm1/include/asm-avr32/pgalloc.h
@@ -52,9 +52,9 @@ static inline struct page *pte_alloc_one
struct page *pte;

pte = alloc_page(GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO);
- if (!page)
+ if (!pte)
return NULL;
- pgtable_page_ctor(page);
+ pgtable_page_ctor(pte);
return pte;
}


2008-01-23 12:20:36

by Haavard Skinnemoen

[permalink] [raw]
Subject: Re: [PATCH -mm] fix variable use in AVR32 pte_alloc_one

On Wed, 23 Jan 2008 22:57:34 +1100
Ben Nizette <[email protected]> wrote:

>
> Some parts of this function use 'page', some 'pte'. As such, an AVR32
> -mm build fails with an undefined reference to 'page'.
>
> Signed-Off-By: Ben Nizette <[email protected]>
>
> ---
> Index: linux-2.6.24-rc8-mm1/include/asm-avr32/pgalloc.h
> ===================================================================
> --- linux-2.6.24-rc8-mm1.orig/include/asm-avr32/pgalloc.h
> +++ linux-2.6.24-rc8-mm1/include/asm-avr32/pgalloc.h
> @@ -52,9 +52,9 @@ static inline struct page *pte_alloc_one
> struct page *pte;
>
> pte = alloc_page(GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO);
> - if (!page)
> + if (!pte)
> return NULL;
> - pgtable_page_ctor(page);
> + pgtable_page_ctor(pte);
> return pte;
> }

Hmm...I can't see anything like this on my current avr32-arch branch,
but I think I mistakenly pushed out some unfinished code about a week
ago and rewound it shortly afterwards. If Andrew pulled during that
window, I guess it must have made it into -mm :-(

But thanks for testing and for providing a fix. I'll check the code
that I was working on and apply the patch if it's still broken.

Haavard

2008-01-24 06:49:41

by Ben Nizette

[permalink] [raw]
Subject: Re: [PATCH -mm] fix variable use in AVR32 pte_alloc_one

Haavard Skinnemoen wrote:
>
> Hmm...I can't see anything like this on my current avr32-arch branch,
> but I think I mistakenly pushed out some unfinished code about a week
> ago and rewound it shortly afterwards. If Andrew pulled during that
> window, I guess it must have made it into -mm :-(
>
> But thanks for testing and for providing a fix. I'll check the code
> that I was working on and apply the patch if it's still broken.
>

Cool, np. FWIW I'm trying to get -mm to fly on AVR32 so I have access
to the latest gpiolib stuff. Despite this patch and "[PATCH -mm] define
empty unxlate_dev_mem_ptr on AVR32" the build still fails due to some
timerfd syscall horkenation. Shall look in to that this arvo too.

> Haavard
> --

--Ben.

2008-01-24 07:55:51

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH -mm] fix variable use in AVR32 pte_alloc_one

> On Wed, 23 Jan 2008 13:20:10 +0100 Haavard Skinnemoen <[email protected]> wrote:
> On Wed, 23 Jan 2008 22:57:34 +1100
> Ben Nizette <[email protected]> wrote:
>
> >
> > Some parts of this function use 'page', some 'pte'. As such, an AVR32
> > -mm build fails with an undefined reference to 'page'.
> >
> > Signed-Off-By: Ben Nizette <[email protected]>
> >
> > ---
> > Index: linux-2.6.24-rc8-mm1/include/asm-avr32/pgalloc.h
> > ===================================================================
> > --- linux-2.6.24-rc8-mm1.orig/include/asm-avr32/pgalloc.h
> > +++ linux-2.6.24-rc8-mm1/include/asm-avr32/pgalloc.h
> > @@ -52,9 +52,9 @@ static inline struct page *pte_alloc_one
> > struct page *pte;
> >
> > pte = alloc_page(GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO);
> > - if (!page)
> > + if (!pte)
> > return NULL;
> > - pgtable_page_ctor(page);
> > + pgtable_page_ctor(pte);
> > return pte;
> > }
>
> Hmm...I can't see anything like this on my current avr32-arch branch,
> but I think I mistakenly pushed out some unfinished code about a week
> ago and rewound it shortly afterwards. If Andrew pulled during that
> window, I guess it must have made it into -mm :-(
>
> But thanks for testing and for providing a fix. I'll check the code
> that I was working on and apply the patch if it's still broken.
>

This bustage was added by the -mm-only
config_highpte-vs-sub-page-page-tables.patch

Thanks for the fix.

2008-01-24 12:02:12

by Haavard Skinnemoen

[permalink] [raw]
Subject: [PATCH -mm] Fix timerfd breakage on avr32 (was Re: [PATCH -mm] fix variable use in AVR32 pte_alloc_one)

On Thu, 24 Jan 2008 10:32:38 +1100
Ben Nizette <[email protected]> wrote:

> Haavard Skinnemoen wrote:
> >
> > Hmm...I can't see anything like this on my current avr32-arch branch,
> > but I think I mistakenly pushed out some unfinished code about a week
> > ago and rewound it shortly afterwards. If Andrew pulled during that
> > window, I guess it must have made it into -mm :-(
> >
> > But thanks for testing and for providing a fix. I'll check the code
> > that I was working on and apply the patch if it's still broken.
> >
>
> Cool, np. FWIW I'm trying to get -mm to fly on AVR32 so I have access
> to the latest gpiolib stuff. Despite this patch and "[PATCH -mm] define
> empty unxlate_dev_mem_ptr on AVR32" the build still fails due to some
> timerfd syscall horkenation. Shall look in to that this arvo too.

Hmm. Someone removed the timerfd() syscall...

---
arch/avr32/kernel/syscall_table.S | 2 +-
include/asm-avr32/unistd.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

Index: linux-2.6.24-rc8-mm1/arch/avr32/kernel/syscall_table.S
===================================================================
--- linux-2.6.24-rc8-mm1.orig/arch/avr32/kernel/syscall_table.S 2008-01-24 12:58:10.000000000 +0100
+++ linux-2.6.24-rc8-mm1/arch/avr32/kernel/syscall_table.S 2008-01-24 12:58:38.000000000 +0100
@@ -293,6 +293,6 @@ sys_call_table:
.long sys_shmctl
.long sys_utimensat
.long sys_signalfd
- .long sys_timerfd /* 280 */
+ .long sys_ni_syscall /* 280, was sys_timerfd */
.long sys_eventfd
.long sys_ni_syscall /* r8 is saturated at nr_syscalls */
Index: linux-2.6.24-rc8-mm1/include/asm-avr32/unistd.h
===================================================================
--- linux-2.6.24-rc8-mm1.orig/include/asm-avr32/unistd.h 2008-01-24 12:58:48.000000000 +0100
+++ linux-2.6.24-rc8-mm1/include/asm-avr32/unistd.h 2008-01-24 12:59:25.000000000 +0100
@@ -297,7 +297,7 @@

#define __NR_utimensat 278
#define __NR_signalfd 279
-#define __NR_timerfd 280
+/* 280 was __NR_timerfd */
#define __NR_eventfd 281

#ifdef __KERNEL__