Message ID | 1349813638-4617-8-git-send-email-arnd@arndb.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
2012/10/10 Arnd Bergmann <arnd@arndb.de>: > nuc900fb_map_video_memory is called by an devinit function > that may be called at run-time, but the function itself is > marked __init and will be discarded after boot. > > To avoid calling into a function that may have been overwritten, > mark nuc900fb_map_video_memory itself as __devinit. > > Without this patch, building nuc950_defconfig results in: > > WARNING: drivers/video/built-in.o(.devinit.text+0x26c): Section mismatch in reference from the function nuc900fb_probe() to the function .init.text:nuc900fb_map_video_memory() > The function __devinit nuc900fb_probe() references > a function __init nuc900fb_map_video_memory(). > If nuc900fb_map_video_memory is only used by nuc900fb_probe then > annotate nuc900fb_map_video_memory with a matching annotation. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > Cc: Wan ZongShun <mcuos.com@gmail.com> > Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> > Cc: linux-fbdev@vger.kernel.org Thanks for your patch. Acked-by: Wan ZongShun <mcuos.com@gmail.com> > --- > drivers/video/nuc900fb.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/video/nuc900fb.c b/drivers/video/nuc900fb.c > index e10f551..b31b12b 100644 > --- a/drivers/video/nuc900fb.c > +++ b/drivers/video/nuc900fb.c > @@ -387,7 +387,7 @@ static int nuc900fb_init_registers(struct fb_info *info) > * The buffer should be a non-cached, non-buffered, memory region > * to allow palette and pixel writes without flushing the cache. > */ > -static int __init nuc900fb_map_video_memory(struct fb_info *info) > +static int __devinit nuc900fb_map_video_memory(struct fb_info *info) > { > struct nuc900fb_info *fbi = info->par; > dma_addr_t map_dma; > -- > 1.7.10 >
On 10/09/2012 08:13 PM, Arnd Bergmann wrote: > nuc900fb_map_video_memory is called by an devinit function > that may be called at run-time, but the function itself is > marked __init and will be discarded after boot. > > To avoid calling into a function that may have been overwritten, > mark nuc900fb_map_video_memory itself as __devinit. > > Without this patch, building nuc950_defconfig results in: > > WARNING: drivers/video/built-in.o(.devinit.text+0x26c): Section mismatch in reference from the function nuc900fb_probe() to the function .init.text:nuc900fb_map_video_memory() > The function __devinit nuc900fb_probe() references > a function __init nuc900fb_map_video_memory(). > If nuc900fb_map_video_memory is only used by nuc900fb_probe then > annotate nuc900fb_map_video_memory with a matching annotation. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > Cc: Wan ZongShun <mcuos.com@gmail.com> > Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> > Cc: linux-fbdev@vger.kernel.org Applied. Thanks, Florian Tobias Schandinat > --- > drivers/video/nuc900fb.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/video/nuc900fb.c b/drivers/video/nuc900fb.c > index e10f551..b31b12b 100644 > --- a/drivers/video/nuc900fb.c > +++ b/drivers/video/nuc900fb.c > @@ -387,7 +387,7 @@ static int nuc900fb_init_registers(struct fb_info *info) > * The buffer should be a non-cached, non-buffered, memory region > * to allow palette and pixel writes without flushing the cache. > */ > -static int __init nuc900fb_map_video_memory(struct fb_info *info) > +static int __devinit nuc900fb_map_video_memory(struct fb_info *info) > { > struct nuc900fb_info *fbi = info->par; > dma_addr_t map_dma;
diff --git a/drivers/video/nuc900fb.c b/drivers/video/nuc900fb.c index e10f551..b31b12b 100644 --- a/drivers/video/nuc900fb.c +++ b/drivers/video/nuc900fb.c @@ -387,7 +387,7 @@ static int nuc900fb_init_registers(struct fb_info *info) * The buffer should be a non-cached, non-buffered, memory region * to allow palette and pixel writes without flushing the cache. */ -static int __init nuc900fb_map_video_memory(struct fb_info *info) +static int __devinit nuc900fb_map_video_memory(struct fb_info *info) { struct nuc900fb_info *fbi = info->par; dma_addr_t map_dma;
nuc900fb_map_video_memory is called by an devinit function that may be called at run-time, but the function itself is marked __init and will be discarded after boot. To avoid calling into a function that may have been overwritten, mark nuc900fb_map_video_memory itself as __devinit. Without this patch, building nuc950_defconfig results in: WARNING: drivers/video/built-in.o(.devinit.text+0x26c): Section mismatch in reference from the function nuc900fb_probe() to the function .init.text:nuc900fb_map_video_memory() The function __devinit nuc900fb_probe() references a function __init nuc900fb_map_video_memory(). If nuc900fb_map_video_memory is only used by nuc900fb_probe then annotate nuc900fb_map_video_memory with a matching annotation. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: Wan ZongShun <mcuos.com@gmail.com> Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: linux-fbdev@vger.kernel.org --- drivers/video/nuc900fb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)