diff options
author | Wim Van Sebroeck <wim@iguana.be> | 2009-04-14 16:30:55 -0400 |
---|---|---|
committer | Wim Van Sebroeck <wim@iguana.be> | 2009-06-18 03:30:44 -0400 |
commit | b6bf291f1c5bc84272a138b7367741e459005a81 (patch) | |
tree | 1989891cd0eefe7143f3809ca36627fe61fb759c | |
parent | a77dba7e444a6618cbb666d1b42b79842b9c0171 (diff) |
[WATCHDOG] move platform probe and remove function to devinit and devexit
A pointer to probe and remove functions 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.
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
-rw-r--r-- | drivers/watchdog/davinci_wdt.c | 6 | ||||
-rw-r--r-- | drivers/watchdog/mtx-1_wdt.c | 6 | ||||
-rw-r--r-- | drivers/watchdog/pnx4008_wdt.c | 6 | ||||
-rw-r--r-- | drivers/watchdog/rdc321x_wdt.c | 4 | ||||
-rw-r--r-- | drivers/watchdog/rm9k_wdt.c | 6 |
5 files changed, 14 insertions, 14 deletions
diff --git a/drivers/watchdog/davinci_wdt.c b/drivers/watchdog/davinci_wdt.c index c51d0b0ea0c4..83e22e7ea4a2 100644 --- a/drivers/watchdog/davinci_wdt.c +++ b/drivers/watchdog/davinci_wdt.c | |||
@@ -193,7 +193,7 @@ static struct miscdevice davinci_wdt_miscdev = { | |||
193 | .fops = &davinci_wdt_fops, | 193 | .fops = &davinci_wdt_fops, |
194 | }; | 194 | }; |
195 | 195 | ||
196 | static int davinci_wdt_probe(struct platform_device *pdev) | 196 | static int __devinit davinci_wdt_probe(struct platform_device *pdev) |
197 | { | 197 | { |
198 | int ret = 0, size; | 198 | int ret = 0, size; |
199 | struct resource *res; | 199 | struct resource *res; |
@@ -237,7 +237,7 @@ static int davinci_wdt_probe(struct platform_device *pdev) | |||
237 | return ret; | 237 | return ret; |
238 | } | 238 | } |
239 | 239 | ||
240 | static int davinci_wdt_remove(struct platform_device *pdev) | 240 | static int __devexit davinci_wdt_remove(struct platform_device *pdev) |
241 | { | 241 | { |
242 | misc_deregister(&davinci_wdt_miscdev); | 242 | misc_deregister(&davinci_wdt_miscdev); |
243 | if (wdt_mem) { | 243 | if (wdt_mem) { |
@@ -254,7 +254,7 @@ static struct platform_driver platform_wdt_driver = { | |||
254 | .owner = THIS_MODULE, | 254 | .owner = THIS_MODULE, |
255 | }, | 255 | }, |
256 | .probe = davinci_wdt_probe, | 256 | .probe = davinci_wdt_probe, |
257 | .remove = davinci_wdt_remove, | 257 | .remove = __devexit_p(davinci_wdt_remove), |
258 | }; | 258 | }; |
259 | 259 | ||
260 | static int __init davinci_wdt_init(void) | 260 | static int __init davinci_wdt_init(void) |
diff --git a/drivers/watchdog/mtx-1_wdt.c b/drivers/watchdog/mtx-1_wdt.c index 539b6f6ba7f1..08e8a6ab74e1 100644 --- a/drivers/watchdog/mtx-1_wdt.c +++ b/drivers/watchdog/mtx-1_wdt.c | |||
@@ -206,7 +206,7 @@ static struct miscdevice mtx1_wdt_misc = { | |||
206 | }; | 206 | }; |
207 | 207 | ||
208 | 208 | ||
209 | static int mtx1_wdt_probe(struct platform_device *pdev) | 209 | static int __devinit mtx1_wdt_probe(struct platform_device *pdev) |
210 | { | 210 | { |
211 | int ret; | 211 | int ret; |
212 | 212 | ||
@@ -229,7 +229,7 @@ static int mtx1_wdt_probe(struct platform_device *pdev) | |||
229 | return 0; | 229 | return 0; |
230 | } | 230 | } |
231 | 231 | ||
232 | static int mtx1_wdt_remove(struct platform_device *pdev) | 232 | static int __devexit mtx1_wdt_remove(struct platform_device *pdev) |
233 | { | 233 | { |
234 | /* FIXME: do we need to lock this test ? */ | 234 | /* FIXME: do we need to lock this test ? */ |
235 | if (mtx1_wdt_device.queue) { | 235 | if (mtx1_wdt_device.queue) { |
@@ -242,7 +242,7 @@ static int mtx1_wdt_remove(struct platform_device *pdev) | |||
242 | 242 | ||
243 | static struct platform_driver mtx1_wdt = { | 243 | static struct platform_driver mtx1_wdt = { |
244 | .probe = mtx1_wdt_probe, | 244 | .probe = mtx1_wdt_probe, |
245 | .remove = mtx1_wdt_remove, | 245 | .remove = __devexit_p(mtx1_wdt_remove), |
246 | .driver.name = "mtx1-wdt", | 246 | .driver.name = "mtx1-wdt", |
247 | .driver.owner = THIS_MODULE, | 247 | .driver.owner = THIS_MODULE, |
248 | }; | 248 | }; |
diff --git a/drivers/watchdog/pnx4008_wdt.c b/drivers/watchdog/pnx4008_wdt.c index 64135195f827..f24d04132eda 100644 --- a/drivers/watchdog/pnx4008_wdt.c +++ b/drivers/watchdog/pnx4008_wdt.c | |||
@@ -246,7 +246,7 @@ static struct miscdevice pnx4008_wdt_miscdev = { | |||
246 | .fops = &pnx4008_wdt_fops, | 246 | .fops = &pnx4008_wdt_fops, |
247 | }; | 247 | }; |
248 | 248 | ||
249 | static int pnx4008_wdt_probe(struct platform_device *pdev) | 249 | static int __devinit pnx4008_wdt_probe(struct platform_device *pdev) |
250 | { | 250 | { |
251 | int ret = 0, size; | 251 | int ret = 0, size; |
252 | struct resource *res; | 252 | struct resource *res; |
@@ -299,7 +299,7 @@ out: | |||
299 | return ret; | 299 | return ret; |
300 | } | 300 | } |
301 | 301 | ||
302 | static int pnx4008_wdt_remove(struct platform_device *pdev) | 302 | static int __devexit pnx4008_wdt_remove(struct platform_device *pdev) |
303 | { | 303 | { |
304 | misc_deregister(&pnx4008_wdt_miscdev); | 304 | misc_deregister(&pnx4008_wdt_miscdev); |
305 | if (wdt_clk) { | 305 | if (wdt_clk) { |
@@ -321,7 +321,7 @@ static struct platform_driver platform_wdt_driver = { | |||
321 | .owner = THIS_MODULE, | 321 | .owner = THIS_MODULE, |
322 | }, | 322 | }, |
323 | .probe = pnx4008_wdt_probe, | 323 | .probe = pnx4008_wdt_probe, |
324 | .remove = pnx4008_wdt_remove, | 324 | .remove = __devexit_p(pnx4008_wdt_remove), |
325 | }; | 325 | }; |
326 | 326 | ||
327 | static int __init pnx4008_wdt_init(void) | 327 | static int __init pnx4008_wdt_init(void) |
diff --git a/drivers/watchdog/rdc321x_wdt.c b/drivers/watchdog/rdc321x_wdt.c index 36e221beedcd..4976bfd1fce6 100644 --- a/drivers/watchdog/rdc321x_wdt.c +++ b/drivers/watchdog/rdc321x_wdt.c | |||
@@ -245,7 +245,7 @@ static int __devinit rdc321x_wdt_probe(struct platform_device *pdev) | |||
245 | return 0; | 245 | return 0; |
246 | } | 246 | } |
247 | 247 | ||
248 | static int rdc321x_wdt_remove(struct platform_device *pdev) | 248 | static int __devexit rdc321x_wdt_remove(struct platform_device *pdev) |
249 | { | 249 | { |
250 | if (rdc321x_wdt_device.queue) { | 250 | if (rdc321x_wdt_device.queue) { |
251 | rdc321x_wdt_device.queue = 0; | 251 | rdc321x_wdt_device.queue = 0; |
@@ -259,7 +259,7 @@ static int rdc321x_wdt_remove(struct platform_device *pdev) | |||
259 | 259 | ||
260 | static struct platform_driver rdc321x_wdt_driver = { | 260 | static struct platform_driver rdc321x_wdt_driver = { |
261 | .probe = rdc321x_wdt_probe, | 261 | .probe = rdc321x_wdt_probe, |
262 | .remove = rdc321x_wdt_remove, | 262 | .remove = __devexit_p(rdc321x_wdt_remove), |
263 | .driver = { | 263 | .driver = { |
264 | .owner = THIS_MODULE, | 264 | .owner = THIS_MODULE, |
265 | .name = "rdc321x-wdt", | 265 | .name = "rdc321x-wdt", |
diff --git a/drivers/watchdog/rm9k_wdt.c b/drivers/watchdog/rm9k_wdt.c index cce1982a1b58..2e4442642262 100644 --- a/drivers/watchdog/rm9k_wdt.c +++ b/drivers/watchdog/rm9k_wdt.c | |||
@@ -345,8 +345,8 @@ static const struct resource *wdt_gpi_get_resource(struct platform_device *pdv, | |||
345 | return platform_get_resource_byname(pdv, type, buf); | 345 | return platform_get_resource_byname(pdv, type, buf); |
346 | } | 346 | } |
347 | 347 | ||
348 | /* No hotplugging on the platform bus - use __init */ | 348 | /* No hotplugging on the platform bus - use __devinit */ |
349 | static int __init wdt_gpi_probe(struct platform_device *pdv) | 349 | static int __devinit wdt_gpi_probe(struct platform_device *pdv) |
350 | { | 350 | { |
351 | int res; | 351 | int res; |
352 | const struct resource | 352 | const struct resource |
@@ -373,7 +373,7 @@ static int __init wdt_gpi_probe(struct platform_device *pdv) | |||
373 | return res; | 373 | return res; |
374 | } | 374 | } |
375 | 375 | ||
376 | static int __exit wdt_gpi_remove(struct platform_device *dev) | 376 | static int __devexit wdt_gpi_remove(struct platform_device *dev) |
377 | { | 377 | { |
378 | int res; | 378 | int res; |
379 | 379 | ||