Patchwork [MTD] ONENAND: Fix devexit macro usage in OMAP OneNAND (was Re: [PATCH] OMAP OneNAND: add missing __devexit_p wrappers)

login
register
mail settings
Submitter Mika Korhonen
Date May 21, 2009, 8:17 p.m.
Message ID <7948530905211317h5bd9a395ta5b8575befed96c@mail.gmail.com>
Download mbox | patch
Permalink /patch/27514/
State New, archived
Headers show

Comments

Mika Korhonen - May 21, 2009, 8:17 p.m.
2009/4/29 David Brownell <david-b@pacbell.net>:
> On Wednesday 29 April 2009, Adrian Hunter wrote:
>> +       .shutdown       = __devexit_p(omap2_onenand_shutdown),
>
> That looks wrong.  Shutdown functions shouldn't get discarded
> like exit functions.  I'd think the fix for that would be taking
> away any __devexit annotation on the shutdown function.
>
>

Here follows the revised patch, fixed as suggested.

Mika
Artem Bityutskiy - May 23, 2009, 9:14 a.m.
On Thu, 2009-05-21 at 23:17 +0300, Mika Korhonen wrote:
> 2009/4/29 David Brownell <david-b@pacbell.net>:
> > On Wednesday 29 April 2009, Adrian Hunter wrote:
> >> +       .shutdown       = __devexit_p(omap2_onenand_shutdown),
> >
> > That looks wrong.  Shutdown functions shouldn't get discarded
> > like exit functions.  I'd think the fix for that would be taking
> > away any __devexit annotation on the shutdown function.
> >
> >
> 
> Here follows the revised patch, fixed as suggested.

I've taken this patch to l2-mtd-2.6.git.

Patch

From 090161dcc28f685a9b1f15c2c652925f052bdf18 Mon Sep 17 00:00:00 2001
From: Mika Korhonen <mika.j.korhonen@gmail.com>
Date: Thu, 21 May 2009 23:09:42 +0300
Subject: [PATCH] Fix devexit macro usage in OMAP OneNAND

Add missing __devexit_p wrapper and no more mark shutdown with __devesit.
Fixes build in configurations where devexit functions get discarded.

Signed-off-by: Mika Korhonen <mika.j.korhonen@gmail.com>
---
 drivers/mtd/onenand/omap2.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/mtd/onenand/omap2.c b/drivers/mtd/onenand/omap2.c
index f2e9de1..df26db8 100644
--- a/drivers/mtd/onenand/omap2.c
+++ b/drivers/mtd/onenand/omap2.c
@@ -566,7 +566,7 @@  int omap2_onenand_rephase(void)
 				      NULL, __adjust_timing);
 }
 
-static void __devexit omap2_onenand_shutdown(struct platform_device *pdev)
+static void omap2_onenand_shutdown(struct platform_device *pdev)
 {
 	struct omap2_onenand *c = dev_get_drvdata(&pdev->dev);
 
@@ -778,7 +778,7 @@  static int __devexit omap2_onenand_remove(struct platform_device *pdev)
 
 static struct platform_driver omap2_onenand_driver = {
 	.probe		= omap2_onenand_probe,
-	.remove		= omap2_onenand_remove,
+	.remove		= __devexit_p(omap2_onenand_remove),
 	.shutdown	= omap2_onenand_shutdown,
 	.driver		= {
 		.name	= DRIVER_NAME,
-- 
1.6.0.4