提交 7560e385 编写于 作者: S Sam Ravnborg 提交者: Len Brown

acer-wmi: fix section mismatch warnings

Fix following warnings:
WARNING: vmlinux.o(.text+0x672615): Section mismatch in reference from the function acer_platform_remove() to the function .exit.text:acer_backlight_exit()
WARNING: vmlinux.o(.devinit.text+0x1e859): Section mismatch in reference from the function acer_platform_probe() to the function .init.text:acer_led_init()
WARNING: vmlinux.o(.devinit.text+0x1e878): Section mismatch in reference from the function acer_platform_probe() to the function .init.text:acer_backlight_init()

Remove __exit annotation from acer_backlight_exit(). We cannot reference
a __exit annotated function from non __exit functions.

acer_led_init() and acer_backlight_init() where both annotated __init but
used from a __devinit function. This would result in an oops should
gcc drop their inlining and the module are hot plugged.

Fix by annotating acer_led_init() and acer_backlight_init() __devinit.
Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
Cc: Carlos Corbacho <carlos@strangeworlds.co.uk>
Signed-off-by: NLen Brown <len.brown@intel.com>
上级 b95e9e8d
...@@ -756,7 +756,7 @@ static struct led_classdev mail_led = { ...@@ -756,7 +756,7 @@ static struct led_classdev mail_led = {
.brightness_set = mail_led_set, .brightness_set = mail_led_set,
}; };
static int __init acer_led_init(struct device *dev) static int __devinit acer_led_init(struct device *dev)
{ {
return led_classdev_register(dev, &mail_led); return led_classdev_register(dev, &mail_led);
} }
...@@ -789,7 +789,7 @@ static struct backlight_ops acer_bl_ops = { ...@@ -789,7 +789,7 @@ static struct backlight_ops acer_bl_ops = {
.update_status = update_bl_status, .update_status = update_bl_status,
}; };
static int __init acer_backlight_init(struct device *dev) static int __devinit acer_backlight_init(struct device *dev)
{ {
struct backlight_device *bd; struct backlight_device *bd;
...@@ -808,7 +808,7 @@ static int __init acer_backlight_init(struct device *dev) ...@@ -808,7 +808,7 @@ static int __init acer_backlight_init(struct device *dev)
return 0; return 0;
} }
static void __exit acer_backlight_exit(void) static void acer_backlight_exit(void)
{ {
backlight_device_unregister(acer_backlight_device); backlight_device_unregister(acer_backlight_device);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册