Mainline OMAP3 breakage (and other OMAP?)

Russell King - ARM Linux linux at arm.linux.org.uk
Fri Dec 3 03:41:02 EST 2010


On Fri, Dec 03, 2010 at 12:09:55PM +0900, Paul Mundt wrote:
> On Thu, Dec 02, 2010 at 02:32:08PM -0800, Tony Lindgren wrote:
> > * Russell King - ARM Linux <linux at arm.linux.org.uk> [101202 14:06]:
> > > On Thu, Dec 02, 2010 at 01:58:38PM -0800, Tony Lindgren wrote:
> > > > * Russell King - ARM Linux <linux at arm.linux.org.uk> [101202 13:04]:
> > > > > This has been around since October:
> > > > > 
> > > > > drivers/video/omap2/vram.c: In function ???omap_vram_reserve_sdram_memblock???:
> > > > > drivers/video/omap2/vram.c:573: error: ???MEMBLOCK_REAL_LIMIT??? undeclared (first use in this function)
> > > > > drivers/video/omap2/vram.c:573: error: (Each undeclared identifier is reported only once
> > > > > drivers/video/omap2/vram.c:573: error: for each function it appears in.)
> > > > > 
> > > > > This requires a trivial one-liner compile fix:
> > > > > 
> > > > > diff --git a/drivers/video/omap2/vram.c b/drivers/video/omap2/vram.c
> > > > > index fed2a72..a8973f0 100644
> > > > > --- a/drivers/video/omap2/vram.c
> > > > > +++ b/drivers/video/omap2/vram.c
> > > > > @@ -570,7 +570,7 @@ void __init omap_vram_reserve_sdram_memblock(void)
> > > > >  			return;
> > > > >  		}
> > > > >  	} else {
> > > > > -		paddr = memblock_alloc_base(size, PAGE_SIZE, MEMBLOCK_REAL_LIMIT);
> > > > > +		paddr = memblock_alloc(size, PAGE_SIZE);
> > > > >  	}
> > > > >  
> > > > >  	omap_vram_add_region(paddr, size);
> > > > > 
> > > > > which restores the old behaviour before the X86 memblock changes went
> > > > > in.  Yes, there may be other changes due to the ioremap stuff, but
> > > > > that's really no excuse for not fixing the compile error itself.
> > > > 
> > > > Great. Adding fbdev and Tomi to Cc.
> > > > 
> > > > Acked-by: Tony Lindgren <tony at atomide.com>
> > > 
> > > http://marc.info/?l=linux-omap&w=2&r=1&s=MEMBLOCK_REAL_LIMIT%20vram&q=b
> > > 
> > > There have been patches posted throughout November to fix this, but
> > > the problem is they're not making it to mainline.  It needs chasing
> > > until someone does the right thing and sends one variant of the above
> > > patch, rather than just leaving it until the ioremap fixes hit
> > > mainline during the next merge window.
> > 
> > Yes this should go in during the -rc for sure.
> > 
> > I suggest you merge this but let's wait a bit and check if Tomi
> > already has a similar fix queued for the -rc series.
> > 
> This has been fixed since -rc2.

So it is.  However, the ioremap fix is wrong.

        } else {
                paddr = memblock_alloc(size, PAGE_SIZE);
        }

        memblock_free(paddr, size);
        memblock_remove(paddr, size);

Didn't I say that such blocks were supposed to be aligned to a 2MB
boundary - and the size also so aligned?

http://lists.arm.linux.org.uk/lurker/message/20101011.152516.893a6088.en.html

It at least needs to be 1MB as that's the section size.



More information about the linux-arm-kernel mailing list