2011-03-24 20:31:17

by Randy Dunlap

[permalink] [raw]
Subject: [PATCH] regulator: fix tps6524x section mismatch

From: Randy Dunlap <[email protected]>

Fix section mismatch that is caused by init code calling exit code:
pmic_remove() cannot be marked as __devexit.

WARNING: drivers/regulator/tps6524x-regulator.o(.devinit.text+0x205): Section mismatch in reference from the function pmic_probe() to the function .devexit.text:pmic_remove()
The function __devinit pmic_probe() references
a function __devexit pmic_remove().
This is often seen when error handling in the init function
uses functionality in the exit path.
The fix is often to remove the __devexit annotation of
pmic_remove() so it may be used outside an exit section.

Signed-off-by: Randy Dunlap <[email protected]>
Cc: Liam Girdwood <[email protected]>
Cc: Mark Brown <[email protected]>
Cc: Cyril Chemparathy <[email protected]>
---
drivers/regulator/tps6524x-regulator.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- linux-2.6.38-git13.orig/drivers/regulator/tps6524x-regulator.c
+++ linux-2.6.38-git13/drivers/regulator/tps6524x-regulator.c
@@ -596,7 +596,7 @@ static struct regulator_ops regulator_op
.get_current_limit = get_current_limit,
};

-static int __devexit pmic_remove(struct spi_device *spi)
+static int pmic_remove(struct spi_device *spi)
{
struct tps6524x *hw = spi_get_drvdata(spi);
int i;


2011-03-25 00:14:34

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH] regulator: fix tps6524x section mismatch

On Thu, Mar 24, 2011 at 01:30:59PM -0700, Randy Dunlap wrote:
> From: Randy Dunlap <[email protected]>
>
> Fix section mismatch that is caused by init code calling exit code:
> pmic_remove() cannot be marked as __devexit.
>
> WARNING: drivers/regulator/tps6524x-regulator.o(.devinit.text+0x205): Section mismatch in reference from the function pmic_probe() to the function .devexit.text:pmic_remove()

Acked-by: Mark Brown <[email protected]>

2011-03-26 14:09:02

by Liam Girdwood

[permalink] [raw]
Subject: Re: [PATCH] regulator: fix tps6524x section mismatch

On Thu, 2011-03-24 at 13:30 -0700, Randy Dunlap wrote:
> From: Randy Dunlap <[email protected]>
>
> Fix section mismatch that is caused by init code calling exit code:
> pmic_remove() cannot be marked as __devexit.
>
> WARNING: drivers/regulator/tps6524x-regulator.o(.devinit.text+0x205): Section mismatch in reference from the function pmic_probe() to the function .devexit.text:pmic_remove()
> The function __devinit pmic_probe() references
> a function __devexit pmic_remove().
> This is often seen when error handling in the init function
> uses functionality in the exit path.
> The fix is often to remove the __devexit annotation of
> pmic_remove() so it may be used outside an exit section.
>
> Signed-off-by: Randy Dunlap <[email protected]>
> Cc: Liam Girdwood <[email protected]>
> Cc: Mark Brown <[email protected]>
> Cc: Cyril Chemparathy <[email protected]>
> ---
> drivers/regulator/tps6524x-regulator.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>

Applied.
Thanks

Liam