Skip to contentSkip to conversation

physmap.c: Check return of platform_device_register()

PATCH In review Zev Weiss 4 participants 6 messages Sep 13, 2008 – Sep 17, 2008 Memory technology devices (MTD)

lore
Share & tools
lore

Zev Weiss

author
#0 lore raw

PATCH 1/3 physmap.c: Check return of platform_device_register()

The PHYSMAP_COMPAT code had been ignoring the return value of platform_device_register() in the physmap_init() function.

---
 drivers/mtd/maps/physmap.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/mtd/maps/physmap.c +1 -1
index 42d844f..6fba0d4 100644
@@ -312,7 +312,7 @@ static int __init physmap_init(void)
 	err = platform_driver_register(&physmap_flash_driver);
 #ifdef PHYSMAP_COMPAT
 	if (err == 0)
-		platform_device_register(&physmap_flash);
+		err = platform_device_register(&physmap_flash);
 #endif
 
 	return err;
Signature · 1 line
1.5.4.1
#1 lore raw
Quoted 13 lines · Zev Weiss

The PHYSMAP_COMPAT code had been ignoring the return value of platform_device_register() in the physmap_init() function.

---
  drivers/mtd/maps/physmap.c |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
drivers/mtd/maps/physmap.c +0 -0
index 42d844f..6fba0d4 100644

drivers/mtd/maps/physmap.c static int __init physmap_init(void) · line 316

Quoted 6 lines
drivers/mtd/maps/physmap.c +1 -1
@@ -312,7 +312,7 @@ static int __init physmap_init(void)
  	err = platform_driver_register(&physmap_flash_driver);
  #ifdef PHYSMAP_COMPAT
  	if (err == 0)
-		platform_device_register(&physmap_flash);
+		err = platform_device_register(&physmap_flash);
  #endif

I don't think you want the registration of the physmap driver to fail if the compat platform device fails to register.

One reason that the compat platform device can fail to register can be that there is already a non-compat platform device for the compat flash chip, and in that case I don't think you want to fail the driver init (while leaving the physmap_flash_driver registered, too!).

author
#2 lore raw
Quoted 25 lines · Lennert Buytenhek
Quoted 13 lines · Zev Weiss

The PHYSMAP_COMPAT code had been ignoring the return value of platform_device_register() in the physmap_init() function.

---
  drivers/mtd/maps/physmap.c |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
drivers/mtd/maps/physmap.c +0 -0
index 42d844f..6fba0d4 100644

drivers/mtd/maps/physmap.c static int __init physmap_init(void) · line 316

Quoted 6 lines
drivers/mtd/maps/physmap.c +1 -1
@@ -312,7 +312,7 @@ static int __init physmap_init(void)
  	err = platform_driver_register(&physmap_flash_driver);
  #ifdef PHYSMAP_COMPAT
  	if (err == 0)
-		platform_device_register(&physmap_flash);
+		err = platform_device_register(&physmap_flash);
  #endif

I don't think you want the registration of the physmap driver to fail if the compat platform device fails to register.

Quoted 5 lines

One reason that the compat platform device can fail to register can be that there is already a non-compat platform device for the compat flash chip, and in that case I don't think you want to fail the driver init (while leaving the physmap_flash_driver registered, too!).

Chalk another one up to ignorance on my part...sounds like a nak all 'round.

#3 lore raw
In reply to Zev Weiss
Quoted 13 lines · On Fri, 12 Sep 2008 23:32:58 -0700 Zev Weiss <[email protected]> wrote:

The PHYSMAP_COMPAT code had been ignoring the return value of platform_device_register() in the physmap_init() function.

---
  drivers/mtd/maps/physmap.c |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
drivers/mtd/maps/physmap.c +0 -0
index 42d844f..6fba0d4 100644

drivers/mtd/maps/physmap.c static int __init physmap_init(void) · line 318

Quoted 8 lines
drivers/mtd/maps/physmap.c +1 -1
@@ -312,7 +312,7 @@ static int __init physmap_init(void)
  	err = platform_driver_register(&physmap_flash_driver);
  #ifdef PHYSMAP_COMPAT
  	if (err == 0)
-		platform_device_register(&physmap_flash);
+		err = platform_device_register(&physmap_flash);
  #endif
 
  	return err;

Your email client is performing space-stuffing, thus making the patches unapplyable.

Presumably we should run platform_driver_unregister() if the platform_device_register() failed.

#4 lore raw

Hello.

Quoted 4 lines · Andrew Morton
Quoted 4 lines

The PHYSMAP_COMPAT code had been ignoring the return value of platform_device_register() in the physmap_init() function.

[...]

Quoted 12 lines
Quoted 12 lines
drivers/mtd/maps/physmap.c +1 -1
index 42d844f..6fba0d4 100644
@@ -312,7 +312,7 @@ static int __init physmap_init(void)
 	err = platform_driver_register(&physmap_flash_driver);
 #ifdef PHYSMAP_COMPAT
 	if (err == 0)
-		platform_device_register(&physmap_flash);
+		err = platform_device_register(&physmap_flash);
 #endif
 
Quoted 4 lines

drivers/mtd/maps/physmap.c static int __init physmap_init(void) · line 318

Quoted 1 line
drivers/mtd/maps/physmap.c +0 -0
 	return err;

Your email client is performing space-stuffing, thus making the patches unapplyable.

Er... are you sure? The patch looks alright tab wise, even after quoting...

Quoted 2 lines

Presumably we should run platform_driver_unregister() if the platform_device_register() failed.

Why is that? There could be "normal" platform devices out there...

WBR, Sergei

#5 lore raw
Quoted 20 lines · I just
Quoted 4 lines
Quoted 4 lines

The PHYSMAP_COMPAT code had been ignoring the return value of platform_device_register() in the physmap_init() function.

[...]

Quoted 13 lines
Quoted 13 lines
drivers/mtd/maps/physmap.c +1 -1
index 42d844f..6fba0d4 100644
@@ -312,7 +312,7 @@ static int __init physmap_init(void)
     err = platform_driver_register(&physmap_flash_driver);
 #ifdef PHYSMAP_COMPAT
     if (err == 0)
-        platform_device_register(&physmap_flash);
+        err = platform_device_register(&physmap_flash);
 #endif
 
     return err;

[...]

Quoted 4 lines
Quoted 2 lines

Presumably we should run platform_driver_unregister() if the platform_device_register() failed.

Why is that? There could be "normal" platform devices out there...

With that said, the patch is pointless (as already noted by Lennert).

WBR, Sergei