Since the drivers probe call was changed from .init.text to .devinit.text
in commit c2e13037e6 ("platform-drivers:
move probe to .devinit.text in drivers/video") the fb_fix_screeninfo and
fb_var_screeninfo structures must be changed from .init.data to
.devinit.data, too.

Also the drivers remove routine should be moved from .text to .devexit.text

It removes these 7 section mismatch warnings from modpost:

WARNING: vmlinux.o(.devinit.text+0x1e28): Section mismatch in reference from the function sgivwfb_probe() to the variable .init.data:sgivwfb_fix
The function __devinit sgivwfb_probe() references
a variable __initdata sgivwfb_fix.
If sgivwfb_fix is only used by sgivwfb_probe then
annotate sgivwfb_fix with a matching annotation.

WARNING: vmlinux.o(.devinit.text+0x1e50): Section mismatch in reference from the function sgivwfb_probe() to the (unknown reference) .init.data:(unknown)
The function __devinit sgivwfb_probe() references
a (unknown reference) __initdata (unknown).
If (unknown) is only used by sgivwfb_probe then
annotate (unknown) with a matching annotation.

WARNING: vmlinux.o(.devinit.text+0x1e59): Section mismatch in reference from the function sgivwfb_probe() to the (unknown reference) .init.data:(unknown)
The function __devinit sgivwfb_probe() references
a (unknown reference) __initdata (unknown).
If (unknown) is only used by sgivwfb_probe then
annotate (unknown) with a matching annotation.

WARNING: vmlinux.o(.devinit.text+0x1e60): Section mismatch in reference from the function sgivwfb_probe() to the variable .init.data:sgivwfb_fix
The function __devinit sgivwfb_probe() references
a variable __initdata sgivwfb_fix.
If sgivwfb_fix is only used by sgivwfb_probe then
annotate sgivwfb_fix with a matching annotation.

WARNING: vmlinux.o(.devinit.text+0x1e6a): Section mismatch in reference from the function sgivwfb_probe() to the (unknown reference) .init.data:(unknown)
The function __devinit sgivwfb_probe() references
a (unknown reference) __initdata (unknown).
If (unknown) is only used by sgivwfb_probe then
annotate (unknown) with a matching annotation.

WARNING: vmlinux.o(.devinit.text+0x1e7f): Section mismatch in reference from the function sgivwfb_probe() to the variable .init.data:sgivwfb_var1600sw
The function __devinit sgivwfb_probe() references
a variable __initdata sgivwfb_var1600sw.
If sgivwfb_var1600sw is only used by sgivwfb_probe then
annotate sgivwfb_var1600sw with a matching annotation.

WARNING: vmlinux.o(.devinit.text+0x1e91): Section mismatch in reference from the function sgivwfb_probe() to the variable .init.data:sgivwfb_var
The function __devinit sgivwfb_probe() references
a variable __initdata sgivwfb_var.
If sgivwfb_var is only used by sgivwfb_probe then
annotate sgivwfb_var with a matching annotation.

Signed-off-by: Henrik Kretzschmar <henne@nachtwindheim.de>
Cc: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Henrik Kretzschmar 2010-05-24 14:34:07 -07:00 коммит произвёл Linus Torvalds
Родитель a8ce4be7d5
Коммит 0d5b02641f
1 изменённых файлов: 5 добавлений и 5 удалений

Просмотреть файл

@ -47,7 +47,7 @@ static int ywrap = 0;
static int flatpanel_id = -1; static int flatpanel_id = -1;
static struct fb_fix_screeninfo sgivwfb_fix __initdata = { static struct fb_fix_screeninfo sgivwfb_fix __devinitdata = {
.id = "SGI Vis WS FB", .id = "SGI Vis WS FB",
.type = FB_TYPE_PACKED_PIXELS, .type = FB_TYPE_PACKED_PIXELS,
.visual = FB_VISUAL_PSEUDOCOLOR, .visual = FB_VISUAL_PSEUDOCOLOR,
@ -57,7 +57,7 @@ static struct fb_fix_screeninfo sgivwfb_fix __initdata = {
.line_length = 640, .line_length = 640,
}; };
static struct fb_var_screeninfo sgivwfb_var __initdata = { static struct fb_var_screeninfo sgivwfb_var __devinitdata = {
/* 640x480, 8 bpp */ /* 640x480, 8 bpp */
.xres = 640, .xres = 640,
.yres = 480, .yres = 480,
@ -79,7 +79,7 @@ static struct fb_var_screeninfo sgivwfb_var __initdata = {
.vmode = FB_VMODE_NONINTERLACED .vmode = FB_VMODE_NONINTERLACED
}; };
static struct fb_var_screeninfo sgivwfb_var1600sw __initdata = { static struct fb_var_screeninfo sgivwfb_var1600sw __devinitdata = {
/* 1600x1024, 8 bpp */ /* 1600x1024, 8 bpp */
.xres = 1600, .xres = 1600,
.yres = 1024, .yres = 1024,
@ -825,7 +825,7 @@ fail_ioremap_regs:
return -ENXIO; return -ENXIO;
} }
static int sgivwfb_remove(struct platform_device *dev) static int __devexit sgivwfb_remove(struct platform_device *dev)
{ {
struct fb_info *info = platform_get_drvdata(dev); struct fb_info *info = platform_get_drvdata(dev);
@ -845,7 +845,7 @@ static int sgivwfb_remove(struct platform_device *dev)
static struct platform_driver sgivwfb_driver = { static struct platform_driver sgivwfb_driver = {
.probe = sgivwfb_probe, .probe = sgivwfb_probe,
.remove = sgivwfb_remove, .remove = __devexit_p(sgivwfb_remove),
.driver = { .driver = {
.name = "sgivwfb", .name = "sgivwfb",
}, },