Messages in this thread | | | Date | Tue, 8 Dec 2009 10:08:01 +0100 | Subject | Re: [PATCH] m68k: don't alias VMALLOC_END to vmalloc_end | From | Geert Uytterhoeven <> |
| |
On Tue, Dec 8, 2009 at 07:57, Tejun Heo <teheo@novell.com> wrote: > On SUN3, m68k defines macro VMALLOC_END as unsigned long variable > vmalloc_end which is adjusted from mmu_emu_init(). This becomes > problematic if a local variables vmalloc_end is defined in some > function (not very unlikely) and VMALLOC_END is used in the function - > the function thinks its referencing the global VMALLOC_END value but > would be referencing its own local vmalloc_end variable. > > There's no reason VMALLOC_END should be a macro. Just define it as an > unsigned long variable to avoid nasty surprises. > > Signed-off-by: Tejun Heo <tj@kernel.org> > Cc: Geert Uytterhoeven <geert@linux-m68k.org> > Cc: Roman Zippel <zippel@linux-m68k.org> > --- > Okay, here it is. Compile tested. Geert, Roman, if you guys don't > object, I'd like to push it with the rest of percpu changes to Linus. > What do you think?
Fine for me, except that by convention allcaps is reserved for macros?
> > Thanks. > > arch/m68k/include/asm/pgtable_mm.h | 3 +-- > arch/m68k/sun3/mmu_emu.c | 8 ++++---- > 2 files changed, 5 insertions(+), 6 deletions(-) > > diff --git a/arch/m68k/include/asm/pgtable_mm.h b/arch/m68k/include/asm/pgtable_mm.h > index fe60e1a..0ea9f09 100644 > --- a/arch/m68k/include/asm/pgtable_mm.h > +++ b/arch/m68k/include/asm/pgtable_mm.h > @@ -83,9 +83,8 @@ > #define VMALLOC_START (((unsigned long) high_memory + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1)) > #define VMALLOC_END KMAP_START > #else > -extern unsigned long vmalloc_end; > #define VMALLOC_START 0x0f800000 > -#define VMALLOC_END vmalloc_end > +extern unsigned long VMALLOC_END; > #endif /* CONFIG_SUN3 */ > > /* zero page used for uninitialized stuff */ > diff --git a/arch/m68k/sun3/mmu_emu.c b/arch/m68k/sun3/mmu_emu.c > index 3cd1939..25e2b14 100644 > --- a/arch/m68k/sun3/mmu_emu.c > +++ b/arch/m68k/sun3/mmu_emu.c > @@ -45,8 +45,8 @@ > ** Globals > */ > > -unsigned long vmalloc_end; > -EXPORT_SYMBOL(vmalloc_end); > +unsigned long VMALLOC_END; > +EXPORT_SYMBOL(VMALLOC_END); > > unsigned long pmeg_vaddr[PMEGS_NUM]; > unsigned char pmeg_alloc[PMEGS_NUM]; > @@ -172,8 +172,8 @@ void mmu_emu_init(unsigned long bootmem_end) > #endif > // the lowest mapping here is the end of our > // vmalloc region > - if(!vmalloc_end) > - vmalloc_end = seg; > + if (!VMALLOC_END) > + VMALLOC_END = seg; > > // mark the segmap alloc'd, and reserve any > // of the first 0xbff pages the hardware is >
-- Gr{oetje,eeting}s,
Geert
-- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |