Message ID | 00ab01ce158f$6434eda0$2c9ec8e0$%han@samsung.com |
---|---|
State | Rejected |
Headers | show |
On Thu, Feb 28, 2013 at 9:41 AM, Jingoo Han <jg1.han@samsung.com> wrote: > __init/__exit annotations for probe()/remove() are supposed to be > __devinit/__devexit, because __init/__exit for probe()/remove() > are not correct. However, __devinit/__devexit are not used, > because CONFIG_HOTPLUG was removed. Thus, these annotations > should be removed. Nack. This driver does not use platform_driver_register(), but platform_driver_probe(). Hence the .probe can only be called from platform_driver_probe() (which is __init), not at any later time. I did not check the other drivers you sent patches for. > Signed-off-by: Jingoo Han <jg1.han@samsung.com> > --- > drivers/rtc/rtc-ps3.c | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/rtc/rtc-ps3.c b/drivers/rtc/rtc-ps3.c > index 968133c..8a24d11 100644 > --- a/drivers/rtc/rtc-ps3.c > +++ b/drivers/rtc/rtc-ps3.c > @@ -58,7 +58,7 @@ static const struct rtc_class_ops ps3_rtc_ops = { > .set_time = ps3_set_time, > }; > > -static int __init ps3_rtc_probe(struct platform_device *dev) > +static int ps3_rtc_probe(struct platform_device *dev) > { > struct rtc_device *rtc; > > @@ -71,7 +71,7 @@ static int __init ps3_rtc_probe(struct platform_device *dev) > return 0; > } > > -static int __exit ps3_rtc_remove(struct platform_device *dev) > +static int ps3_rtc_remove(struct platform_device *dev) > { > rtc_device_unregister(platform_get_drvdata(dev)); > return 0; > @@ -82,7 +82,7 @@ static struct platform_driver ps3_rtc_driver = { > .name = "rtc-ps3", > .owner = THIS_MODULE, > }, > - .remove = __exit_p(ps3_rtc_remove), > + .remove = ps3_rtc_remove, > }; > > static int __init ps3_rtc_init(void) Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
On Thursday, February 28, 2013 5:56 PM, Geert Uytterhoeven wrote: > > On Thu, Feb 28, 2013 at 9:41 AM, Jingoo Han <jg1.han@samsung.com> wrote: > > __init/__exit annotations for probe()/remove() are supposed to be > > __devinit/__devexit, because __init/__exit for probe()/remove() > > are not correct. However, __devinit/__devexit are not used, > > because CONFIG_HOTPLUG was removed. Thus, these annotations > > should be removed. > > Nack. > > This driver does not use platform_driver_register(), but > platform_driver_probe(). > Hence the .probe can only be called from platform_driver_probe() > (which is __init), > not at any later time. Oops, you are right. In this case, bind/unbind via sysfs is disabled. Also, other drivers I sent for use platform_driver_probe(). So, my patchset is useless. Thank you for your comment :) Best regards, Jingoo Han > > I did not check the other drivers you sent patches for. > > > Signed-off-by: Jingoo Han <jg1.han@samsung.com> > > --- > > drivers/rtc/rtc-ps3.c | 6 +++--- > > 1 files changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/rtc/rtc-ps3.c b/drivers/rtc/rtc-ps3.c > > index 968133c..8a24d11 100644 > > --- a/drivers/rtc/rtc-ps3.c > > +++ b/drivers/rtc/rtc-ps3.c > > @@ -58,7 +58,7 @@ static const struct rtc_class_ops ps3_rtc_ops = { > > .set_time = ps3_set_time, > > }; > > > > -static int __init ps3_rtc_probe(struct platform_device *dev) > > +static int ps3_rtc_probe(struct platform_device *dev) > > { > > struct rtc_device *rtc; > > > > @@ -71,7 +71,7 @@ static int __init ps3_rtc_probe(struct platform_device *dev) > > return 0; > > } > > > > -static int __exit ps3_rtc_remove(struct platform_device *dev) > > +static int ps3_rtc_remove(struct platform_device *dev) > > { > > rtc_device_unregister(platform_get_drvdata(dev)); > > return 0; > > @@ -82,7 +82,7 @@ static struct platform_driver ps3_rtc_driver = { > > .name = "rtc-ps3", > > .owner = THIS_MODULE, > > }, > > - .remove = __exit_p(ps3_rtc_remove), > > + .remove = ps3_rtc_remove, > > }; > > > > static int __init ps3_rtc_init(void) > > Gr{oetje,eeting}s, > > Geert > > -- > Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org > > In personal conversations with technical people, I call myself a hacker. But > when I'm talking to journalists I just say "programmer" or something like that. > -- Linus Torvalds
diff --git a/drivers/rtc/rtc-ps3.c b/drivers/rtc/rtc-ps3.c index 968133c..8a24d11 100644 --- a/drivers/rtc/rtc-ps3.c +++ b/drivers/rtc/rtc-ps3.c @@ -58,7 +58,7 @@ static const struct rtc_class_ops ps3_rtc_ops = { .set_time = ps3_set_time, }; -static int __init ps3_rtc_probe(struct platform_device *dev) +static int ps3_rtc_probe(struct platform_device *dev) { struct rtc_device *rtc; @@ -71,7 +71,7 @@ static int __init ps3_rtc_probe(struct platform_device *dev) return 0; } -static int __exit ps3_rtc_remove(struct platform_device *dev) +static int ps3_rtc_remove(struct platform_device *dev) { rtc_device_unregister(platform_get_drvdata(dev)); return 0; @@ -82,7 +82,7 @@ static struct platform_driver ps3_rtc_driver = { .name = "rtc-ps3", .owner = THIS_MODULE, }, - .remove = __exit_p(ps3_rtc_remove), + .remove = ps3_rtc_remove, }; static int __init ps3_rtc_init(void)
__init/__exit annotations for probe()/remove() are supposed to be __devinit/__devexit, because __init/__exit for probe()/remove() are not correct. However, __devinit/__devexit are not used, because CONFIG_HOTPLUG was removed. Thus, these annotations should be removed. Signed-off-by: Jingoo Han <jg1.han@samsung.com> --- drivers/rtc/rtc-ps3.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)