Re: [PATCH 2.6.21-rc1] ibmebus: Use of_device_uevent()

2007-02-17 Thread Joachim Fenkes
Sylvain Munaut <[EMAIL PROTECTED]> wrote on 17.02.2007 04:36:01:

> Doesn't that oops when called with the fake parent device ?

I should stop posting patches after 12 hours of work ,)

> Or, an even better approach is to add this
> 
> +   if (!ebus_dev->ofdev.node)
> +  return -ENODEV;
> 
> inside the code of of_device_uevent itself.

Nice! Patch will follow.

Thanks again,
  Joachim

---
Joachim Fenkes  --  eHCA Linux Driver Developer and Hardware Tamer 
extraordinaire
IBM Deutschland Entwicklung GmbH  --  Dept. 3627 (I/O Firmware Development 
2)
Schoenaicher Strasse 220  --  71032 Boeblingen  --  Germany
eMail: [EMAIL PROTECTED]  --  Phone: +49 7031 16 1239 

Vorsitzender des Aufsichtsrats: Johann Weihen  --  Geschäftsführung: 
Herbert Kircher
Sitz der Gesellschaft: Böblingen  --  Registergericht: Amtsgericht 
Stuttgart, HRB 243294


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 2.6.21-rc1] ibmebus: Use of_device_uevent()

2007-02-17 Thread Sylvain Munaut
Hoang-Nam Nguyen wrote:
> This patch replaces ibmebus_uevent() by Sylvain's generic function.
>
>  struct bus_type ibmebus_bus_type = {
> - .name = "ibmebus",
> - .uevent = ibmebus_uevent,
> - .match = ibmebus_bus_match,
> + .name   = "ibmebus",
> + .uevent = of_device_uevent,
> + .match  = ibmebus_bus_match,
>  };
>  EXPORT_SYMBOL(ibmebus_bus_type);
>   
Doesn't that oops when called with the fake parent device ?

Either you do a wrapper that test for it (that's what I did when I
posted the patch).
Or, an even better approach is to add this

+   if (!ebus_dev->ofdev.node)
+   return -ENODEV;

inside the code of of_device_uevent itself.


Sylvain



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 2.6.21-rc1] ibmebus: Use of_device_uevent()

2007-02-17 Thread Sylvain Munaut
Hoang-Nam Nguyen wrote:
 This patch replaces ibmebus_uevent() by Sylvain's generic function.

  struct bus_type ibmebus_bus_type = {
 - .name = ibmebus,
 - .uevent = ibmebus_uevent,
 - .match = ibmebus_bus_match,
 + .name   = ibmebus,
 + .uevent = of_device_uevent,
 + .match  = ibmebus_bus_match,
  };
  EXPORT_SYMBOL(ibmebus_bus_type);
   
Doesn't that oops when called with the fake parent device ?

Either you do a wrapper that test for it (that's what I did when I
posted the patch).
Or, an even better approach is to add this

+   if (!ebus_dev-ofdev.node)
+   return -ENODEV;

inside the code of of_device_uevent itself.


Sylvain



-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 2.6.21-rc1] ibmebus: Use of_device_uevent()

2007-02-17 Thread Joachim Fenkes
Sylvain Munaut [EMAIL PROTECTED] wrote on 17.02.2007 04:36:01:

 Doesn't that oops when called with the fake parent device ?

I should stop posting patches after 12 hours of work ,)

 Or, an even better approach is to add this
 
 +   if (!ebus_dev-ofdev.node)
 +  return -ENODEV;
 
 inside the code of of_device_uevent itself.

Nice! Patch will follow.

Thanks again,
  Joachim

---
Joachim Fenkes  --  eHCA Linux Driver Developer and Hardware Tamer 
extraordinaire
IBM Deutschland Entwicklung GmbH  --  Dept. 3627 (I/O Firmware Development 
2)
Schoenaicher Strasse 220  --  71032 Boeblingen  --  Germany
eMail: [EMAIL PROTECTED]  --  Phone: +49 7031 16 1239 

Vorsitzender des Aufsichtsrats: Johann Weihen  --  Geschäftsführung: 
Herbert Kircher
Sitz der Gesellschaft: Böblingen  --  Registergericht: Amtsgericht 
Stuttgart, HRB 243294


-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 2.6.21-rc1] ibmebus: Use of_device_uevent()

2007-02-16 Thread Hoang-Nam Nguyen
This patch replaces ibmebus_uevent() by Sylvain's generic function.


Signed-off-by: Joachim Fenkes <[EMAIL PROTECTED]>
---


 ibmebus.c |   37 +++--
 1 file changed, 3 insertions(+), 34 deletions(-)


diff -urp a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c
--- a/arch/powerpc/kernel/ibmebus.c 2007-02-17 03:25:53.403375784 +0100
+++ b/arch/powerpc/kernel/ibmebus.c 2007-02-17 03:27:28.230336112 +0100
@@ -372,41 +372,10 @@ static int ibmebus_bus_match(struct devi
return 0;
 }
 
-static int ibmebus_uevent(struct device *dev, char **envp, int num_envp,
-   char *buffer, int buffer_size)
-{
-   const struct ibmebus_dev *ebus_dev = to_ibmebus_dev(dev);
-   char *name, *cp, *loc_code;
-   int length;
-
-   if (!num_envp)
-   return -ENOMEM;
-
-   if (!ebus_dev->ofdev.node)
-   return -ENODEV;
-
-   name = (char *)get_property(ebus_dev->ofdev.node, "name", NULL);
-   cp = (char *)get_property(ebus_dev->ofdev.node, "compatible", NULL);
-   loc_code = (char *)get_property(ebus_dev->ofdev.node,
-   "ibm,loc-code", NULL);
-   if (!(name && cp && loc_code))
-   return -ENODEV;
-
-   envp[0] = buffer;
-   length = scnprintf(buffer, buffer_size,
-  "MODALIAS=ibmebus:T%s:S%s:L%s",
-  name, cp, loc_code);
-   if (buffer_size - length <= 0)
-   return -ENOMEM;
-   envp[1] = NULL;
-
-   return 0;
-}
-
 struct bus_type ibmebus_bus_type = {
-   .name = "ibmebus",
-   .uevent = ibmebus_uevent,
-   .match = ibmebus_bus_match,
+   .name   = "ibmebus",
+   .uevent = of_device_uevent,
+   .match  = ibmebus_bus_match,
 };
 EXPORT_SYMBOL(ibmebus_bus_type);
 


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 2.6.21-rc1] ibmebus: Use of_device_uevent()

2007-02-16 Thread Hoang-Nam Nguyen
This patch replaces ibmebus_uevent() by Sylvain's generic function.


Signed-off-by: Joachim Fenkes [EMAIL PROTECTED]
---


 ibmebus.c |   37 +++--
 1 file changed, 3 insertions(+), 34 deletions(-)


diff -urp a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c
--- a/arch/powerpc/kernel/ibmebus.c 2007-02-17 03:25:53.403375784 +0100
+++ b/arch/powerpc/kernel/ibmebus.c 2007-02-17 03:27:28.230336112 +0100
@@ -372,41 +372,10 @@ static int ibmebus_bus_match(struct devi
return 0;
 }
 
-static int ibmebus_uevent(struct device *dev, char **envp, int num_envp,
-   char *buffer, int buffer_size)
-{
-   const struct ibmebus_dev *ebus_dev = to_ibmebus_dev(dev);
-   char *name, *cp, *loc_code;
-   int length;
-
-   if (!num_envp)
-   return -ENOMEM;
-
-   if (!ebus_dev-ofdev.node)
-   return -ENODEV;
-
-   name = (char *)get_property(ebus_dev-ofdev.node, name, NULL);
-   cp = (char *)get_property(ebus_dev-ofdev.node, compatible, NULL);
-   loc_code = (char *)get_property(ebus_dev-ofdev.node,
-   ibm,loc-code, NULL);
-   if (!(name  cp  loc_code))
-   return -ENODEV;
-
-   envp[0] = buffer;
-   length = scnprintf(buffer, buffer_size,
-  MODALIAS=ibmebus:T%s:S%s:L%s,
-  name, cp, loc_code);
-   if (buffer_size - length = 0)
-   return -ENOMEM;
-   envp[1] = NULL;
-
-   return 0;
-}
-
 struct bus_type ibmebus_bus_type = {
-   .name = ibmebus,
-   .uevent = ibmebus_uevent,
-   .match = ibmebus_bus_match,
+   .name   = ibmebus,
+   .uevent = of_device_uevent,
+   .match  = ibmebus_bus_match,
 };
 EXPORT_SYMBOL(ibmebus_bus_type);
 


-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/