w1:masters/w1-gpio.c: fix error using "__devinit" and "__devexit"
PATCH 1/1 w1:masters/w1-gpio.c: fix error using "__devinit" and "__devexit"
w1:masters/w1-gpio.c: fix error using "__devinit" and "__devexit"
we should use "__devinit" to mark the probe function, "__devexit" to mark the remove function, and "__devexit_p" to mark the pointer to the remove function.
the error was found by the following compilation warning:
WARNING: drivers/w1/masters/w1-gpio.o(.data+0x0): Section mismatch in reference from the variable w1_gpio_driver to the function .init.text:w1_gpio_probe()
The variable w1_gpio_driver references
the function __init w1_gpio_probe()
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:*_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
--- drivers/w1/masters/w1-gpio.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
drivers/w1/masters/w1-gpio.c +3 -3
@@ -72,7 +72,7 @@ static int w1_gpio_probe_dt(struct platform_device *pdev)return 0 ; } -static int __init w1_gpio_probe (struct platform_device *pdev) +static int __devinit w1_gpio_probe (struct platform_device *pdev) {struct w1_bus_master *master;struct w1_gpio_platform_data *pdata;
@@ -158,7 +158,7 @@ static int __init w1_gpio_probe(struct platform_device *pdev)return err; } -static int __exit w1_gpio_remove(struct platform_device *pdev) +static int __devexit w1_gpio_remove(struct platform_device *pdev) {struct w1_bus_master *master =platform_get_drvdata (pdev);struct w1_gpio_platform_data *pdata = pdev->dev.platform_data;
@@ -210,7 +210,7 @@ static struct platform_driver w1_gpio_driver = { .of_match_table = of_match_ptr(w1_gpio_dt_ids), }, .probe = w1_gpio_probe, - .remove = __exit_p(w1_gpio_remove), + .remove = __devexit_p(w1_gpio_remove), .suspend = w1_gpio_suspend, .resume = w1_gpio_resume, };
Signature · 1 line
1.7.4.5
Quoted 5 lines · Cong Ding
w1:masters/w1-gpio.c: fix error using "
__devinit" and "__devexit"we should use "
__devinit" to mark the probe function, "__devexit" to mark the remove function, and "__devexit_p" to mark the pointer to the remove function.
Nope. CONFIG_HOTPLUG is going away as an option, so you should rather kill all the __dev* annotations.
Thanks,
Daniel
Quoted 47 lines
the error was found by the following compilation warning:
WARNING: drivers/w1/masters/w1-gpio.o(.data+0x0): Section mismatch in reference from the variablew1_gpio_driverto the function .init.text:w1_gpio_probe()
The variablew1_gpio_driverreferences
the function__initw1_gpio_probe()
If the reference is valid then annotate the
variable with __init* or__refdata(seelinux/init.h) or name the variable:*_template,*_timer,*_sht,*_ops,*_probe,*_probe_one,*_consoleSigned-off-by Cong Ding <[email protected]>--- drivers/w1/masters/w1-gpio.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)drivers/w1/masters/w1-gpio.c +3
-3@@ -72,7 +72,7 @@ static int w1_gpio_probe_dt(struct platform_device *pdev)return 0 ; } -static int __init w1_gpio_probe (struct platform_device *pdev) +static int __devinit w1_gpio_probe (struct platform_device *pdev) {struct w1_bus_master *master;struct w1_gpio_platform_data *pdata;@@ -158,7 +158,7 @@ static int __init w1_gpio_probe(struct platform_device *pdev)return err; } -static int __exit w1_gpio_remove(struct platform_device *pdev) +static int __devexit w1_gpio_remove(struct platform_device *pdev) {struct w1_bus_master *master =platform_get_drvdata (pdev);struct w1_gpio_platform_data *pdata = pdev->dev.platform_data;@@ -210,7 +210,7 @@ static struct platform_driver w1_gpio_driver = { .of_match_table = of_match_ptr(w1_gpio_dt_ids), }, .probe = w1_gpio_probe, - .remove = __exit_p(w1_gpio_remove), + .remove = __devexit_p(w1_gpio_remove), .suspend = w1_gpio_suspend, .resume = w1_gpio_resume, };