From: Julia Lawall <julia at diku.dk> The return value of the remove function of a driver structure, and thus of a platform_driver structure, is ultimately ignored, and is thus unnecessary. This patch removes the return value for the remove function stored in a platform_driver structure. For the files in this patch, the return values are always 0. A simplified version of the semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // <smpl> @r@ struct platform_driver I; identifier a,f; position p; @@ I.remove = \(f at p\|a(f at p)\); @void_called@ identifier r.f; position p; @@ f at p(...); @called@ identifier r.f; position p1 != void_called.p; @@ f at p1(...) @localfn@ identifier r.f; @@ static int f(...) { ... } @depends on !called && localfn@ struct platform_driver I; identifier a,f; position r.p; @@ I. - remove + remove_new = \(f at p\|a(f at p)\); @depends on !called && localfn@ identifier r.f,i; constant C; expression E; @@ - int + void f(...) { <... ( - return \(C\|i\); + return; | - return E; + E; + return; ) ...> } // </smpl> Signed-off-by: Julia Lawall <julia at diku.dk> --- drivers/hwmon/pc87360.c | 8 +++----- drivers/hwmon/pc87427.c | 6 ++---- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/drivers/hwmon/pc87360.c b/drivers/hwmon/pc87360.c index 5fbfa34..87c4ce3 100644 --- a/drivers/hwmon/pc87360.c +++ b/drivers/hwmon/pc87360.c @@ -225,7 +225,7 @@ struct pc87360_data { */ static int pc87360_probe(struct platform_device *pdev); -static int __devexit pc87360_remove(struct platform_device *pdev); +static void __devexit pc87360_remove(struct platform_device *pdev); static int pc87360_read_value(struct pc87360_data *data, u8 ldi, u8 bank, u8 reg); @@ -245,7 +245,7 @@ static struct platform_driver pc87360_driver = { .name = "pc87360", }, .probe = pc87360_probe, - .remove = __devexit_p(pc87360_remove), + .remove_new = __devexit_p(pc87360_remove), }; /* @@ -1266,7 +1266,7 @@ ERROR1: return err; } -static int __devexit pc87360_remove(struct platform_device *pdev) +static void __devexit pc87360_remove(struct platform_device *pdev) { struct pc87360_data *data = platform_get_drvdata(pdev); int i; @@ -1285,8 +1285,6 @@ static int __devexit pc87360_remove(struct platform_device *pdev) } } kfree(data); - - return 0; } /* ldi is the logical device index diff --git a/drivers/hwmon/pc87427.c b/drivers/hwmon/pc87427.c index 7265f22..674176f 100644 --- a/drivers/hwmon/pc87427.c +++ b/drivers/hwmon/pc87427.c @@ -482,7 +482,7 @@ exit: return err; } -static int __devexit pc87427_remove(struct platform_device *pdev) +static void __devexit pc87427_remove(struct platform_device *pdev) { struct pc87427_data *data = platform_get_drvdata(pdev); struct resource *res; @@ -500,8 +500,6 @@ static int __devexit pc87427_remove(struct platform_device *pdev) res = platform_get_resource(pdev, IORESOURCE_IO, 0); release_region(res->start, res->end - res->start + 1); - - return 0; } @@ -511,7 +509,7 @@ static struct platform_driver pc87427_driver = { .name = DRVNAME, }, .probe = pc87427_probe, - .remove = __devexit_p(pc87427_remove), + .remove_new = __devexit_p(pc87427_remove), }; static int __init pc87427_device_add(unsigned short address)