From 81e627e00a2eabfa573eb4558e31c0c98fcb7e5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= Date: Sat, 11 Jul 2009 22:53:05 +0200 Subject: move stk17ta8's probe function to .devinit.text MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A pointer to stk17ta8_rtc_probe is passed to the core via platform_driver_register and so the function must not disappear when the .init sections are discarded. Otherwise (if also having HOTPLUG=y) unbinding and binding a device to the driver via sysfs will result in an oops as does a device being registered late. An alternative to this patch is using platform_driver_probe instead of platform_driver_register plus removing the pointer to the probe function from the struct platform_driver. Signed-off-by: Uwe Kleine-König Cc: Anton Vorontsov Cc: Alessandro Zummo Cc: David Brownell Cc: Paul Mundt Cc: Andrew Morton Cc: Hannes Eder Cc: Jiri Kosina Cc: David Brownell Acked-by: Alessandro Zummo Signed-off-by: Jiri Kosina --- drivers/rtc/rtc-stk17ta8.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/rtc') diff --git a/drivers/rtc/rtc-stk17ta8.c b/drivers/rtc/rtc-stk17ta8.c index 7d1547b0070..d491eb265c3 100644 --- a/drivers/rtc/rtc-stk17ta8.c +++ b/drivers/rtc/rtc-stk17ta8.c @@ -286,7 +286,7 @@ static struct bin_attribute stk17ta8_nvram_attr = { .write = stk17ta8_nvram_write, }; -static int __init stk17ta8_rtc_probe(struct platform_device *pdev) +static int __devinit stk17ta8_rtc_probe(struct platform_device *pdev) { struct rtc_device *rtc; struct resource *res; -- cgit v1.2.3