public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Firmware class name collision
@ 2007-08-13 13:11 Markus Rechberger
  2007-08-13 13:22 ` Jean Delvare
  2007-08-13 17:10 ` Marcel Holtmann
  0 siblings, 2 replies; 7+ messages in thread
From: Markus Rechberger @ 2007-08-13 13:11 UTC (permalink / raw)
  To: linux-kernel, Jean Delvare, Greg KH

Hi,

following patch fixes the i2c name collision with i2c-dev.

http://mcentral.de/wiki/index.php/Bugtracker#i2c_core_problem

This issue has been experienced with em28xx and saa7133 based devices.
I discussed that problem with Jean Delvare a while ago and he proposed 
to add a prefix to the class name.

http://mcentral.de/~mrec/patches/firmware_class_name_collision.diff

Signed-off-by: Markus Rechberger <markus.rechberger@amd.com>

index b24efd4..bfc54a1 100644
--- a/drivers/base/firmware_class.c
+++ b/drivers/base/firmware_class.c
@@ -297,8 +297,7 @@ firmware_class_timeout(u_long data)
 
 static inline void fw_setup_device_id(struct device *f_dev, struct 
device *dev)
 {
-       /* XXX warning we should watch out for name collisions */
-       strlcpy(f_dev->bus_id, dev->bus_id, BUS_ID_SIZE);
+       snprintf(f_dev->bus_id, BUS_ID_SIZE, "fw-%s", dev->bus_id);
 }
 
 static int fw_register_device(struct device **dev_p, const char *fw_name,

Markus



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] Firmware class name collision
  2007-08-13 13:11 [PATCH] Firmware class name collision Markus Rechberger
@ 2007-08-13 13:22 ` Jean Delvare
  2007-08-13 17:10 ` Marcel Holtmann
  1 sibling, 0 replies; 7+ messages in thread
From: Jean Delvare @ 2007-08-13 13:22 UTC (permalink / raw)
  To: Markus Rechberger; +Cc: linux-kernel, Greg KH

Hi Markus,

On Mon, 13 Aug 2007 15:11:50 +0200, Markus Rechberger wrote:
> following patch fixes the i2c name collision with i2c-dev.
> 
> http://mcentral.de/wiki/index.php/Bugtracker#i2c_core_problem
> 
> This issue has been experienced with em28xx and saa7133 based devices.
> I discussed that problem with Jean Delvare a while ago and he proposed 
> to add a prefix to the class name.
> 
> http://mcentral.de/~mrec/patches/firmware_class_name_collision.diff
> 
> Signed-off-by: Markus Rechberger <markus.rechberger@amd.com>

Acked-by: Jean Delvare <khali@linux-fr.org>

> 
> index b24efd4..bfc54a1 100644
> --- a/drivers/base/firmware_class.c
> +++ b/drivers/base/firmware_class.c
> @@ -297,8 +297,7 @@ firmware_class_timeout(u_long data)
>  
>  static inline void fw_setup_device_id(struct device *f_dev, struct 
> device *dev)
>  {
> -       /* XXX warning we should watch out for name collisions */
> -       strlcpy(f_dev->bus_id, dev->bus_id, BUS_ID_SIZE);
> +       snprintf(f_dev->bus_id, BUS_ID_SIZE, "fw-%s", dev->bus_id);
>  }
>  
>  static int fw_register_device(struct device **dev_p, const char *fw_name,


-- 
Jean Delvare

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Firmware class name collision
  2007-08-13 13:11 [PATCH] Firmware class name collision Markus Rechberger
  2007-08-13 13:22 ` Jean Delvare
@ 2007-08-13 17:10 ` Marcel Holtmann
  2007-08-13 17:20   ` Markus Rechberger
  1 sibling, 1 reply; 7+ messages in thread
From: Marcel Holtmann @ 2007-08-13 17:10 UTC (permalink / raw)
  To: Markus Rechberger; +Cc: linux-kernel, Jean Delvare, Greg KH

Hi Markus,

> following patch fixes the i2c name collision with i2c-dev.
> 
> http://mcentral.de/wiki/index.php/Bugtracker#i2c_core_problem
> 
> This issue has been experienced with em28xx and saa7133 based devices.
> I discussed that problem with Jean Delvare a while ago and he proposed 
> to add a prefix to the class name.
> 
> http://mcentral.de/~mrec/patches/firmware_class_name_collision.diff
> 
> Signed-off-by: Markus Rechberger <markus.rechberger@amd.com>
> 
> index b24efd4..bfc54a1 100644
> --- a/drivers/base/firmware_class.c
> +++ b/drivers/base/firmware_class.c
> @@ -297,8 +297,7 @@ firmware_class_timeout(u_long data)
>  
>  static inline void fw_setup_device_id(struct device *f_dev, struct 
> device *dev)
>  {
> -       /* XXX warning we should watch out for name collisions */
> -       strlcpy(f_dev->bus_id, dev->bus_id, BUS_ID_SIZE);
> +       snprintf(f_dev->bus_id, BUS_ID_SIZE, "fw-%s", dev->bus_id);
>  }

I would prefer if we use "firmware-%s" since the "fw" might collide with
the new Firewire stack. Please change that and I agree.

Acked-by: Marcel Holtmann <marcel@holtmann.org>

Regards

Marcel



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Firmware class name collision
  2007-08-13 17:10 ` Marcel Holtmann
@ 2007-08-13 17:20   ` Markus Rechberger
  2007-08-13 17:45     ` Marcel Holtmann
  2007-08-14 13:33     ` Jean Delvare
  0 siblings, 2 replies; 7+ messages in thread
From: Markus Rechberger @ 2007-08-13 17:20 UTC (permalink / raw)
  To: Marcel Holtmann; +Cc: linux-kernel, Jean Delvare, Greg KH

Hi Marcel,

Marcel Holtmann wrote:
> Hi Markus,
>
>   
>> following patch fixes the i2c name collision with i2c-dev.
>>
>> http://mcentral.de/wiki/index.php/Bugtracker#i2c_core_problem
>>
>> This issue has been experienced with em28xx and saa7133 based devices.
>> I discussed that problem with Jean Delvare a while ago and he proposed 
>> to add a prefix to the class name.
>>
>> http://mcentral.de/~mrec/patches/firmware_class_name_collision.diff
>>
>> Signed-off-by: Markus Rechberger <markus.rechberger@amd.com>
>>
>> index b24efd4..bfc54a1 100644
>> --- a/drivers/base/firmware_class.c
>> +++ b/drivers/base/firmware_class.c
>> @@ -297,8 +297,7 @@ firmware_class_timeout(u_long data)
>>  
>>  static inline void fw_setup_device_id(struct device *f_dev, struct 
>> device *dev)
>>  {
>> -       /* XXX warning we should watch out for name collisions */
>> -       strlcpy(f_dev->bus_id, dev->bus_id, BUS_ID_SIZE);
>> +       snprintf(f_dev->bus_id, BUS_ID_SIZE, "fw-%s", dev->bus_id);
>>  }
>>     
>
> I would prefer if we use "firmware-%s" since the "fw" might collide with
> the new Firewire stack. Please change that and I agree.
>
>   

firmware-%s sounds more informative and cannot be mistaken with firewire 
yes.

Signed-off-by: Markus Rechberger <markus.rechberger@amd.com>

http://mcentral.de/~mrec/patches/firmware_class_name_collision_2.diff

diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c
index b24efd4..bfc54a1 100644
--- a/drivers/base/firmware_class.c
+++ b/drivers/base/firmware_class.c
@@ -297,8 +297,7 @@ firmware_class_timeout(u_long data)

 static inline void fw_setup_device_id(struct device *f_dev, struct 
device *dev)
 {
-       /* XXX warning we should watch out for name collisions */
-       strlcpy(f_dev->bus_id, dev->bus_id, BUS_ID_SIZE);
+       snprintf(f_dev->bus_id, BUS_ID_SIZE, "firmware-%s", dev->bus_id);
 }

 static int fw_register_device(struct device **dev_p, const char *fw_name,

> Acked-by: Marcel Holtmann <marcel@holtmann.org>
>
> Regards
>
> Marcel
>
>
>
>
>   




^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] Firmware class name collision
  2007-08-13 17:20   ` Markus Rechberger
@ 2007-08-13 17:45     ` Marcel Holtmann
  2007-08-14 13:33     ` Jean Delvare
  1 sibling, 0 replies; 7+ messages in thread
From: Marcel Holtmann @ 2007-08-13 17:45 UTC (permalink / raw)
  To: Markus Rechberger; +Cc: linux-kernel, Jean Delvare, Greg KH

Hi Markus,

> >> following patch fixes the i2c name collision with i2c-dev.
> >>
> >> http://mcentral.de/wiki/index.php/Bugtracker#i2c_core_problem
> >>
> >> This issue has been experienced with em28xx and saa7133 based devices.
> >> I discussed that problem with Jean Delvare a while ago and he proposed 
> >> to add a prefix to the class name.
> >>
> >> http://mcentral.de/~mrec/patches/firmware_class_name_collision.diff
> >>
> >> Signed-off-by: Markus Rechberger <markus.rechberger@amd.com>
> >>
> >> index b24efd4..bfc54a1 100644
> >> --- a/drivers/base/firmware_class.c
> >> +++ b/drivers/base/firmware_class.c
> >> @@ -297,8 +297,7 @@ firmware_class_timeout(u_long data)
> >>  
> >>  static inline void fw_setup_device_id(struct device *f_dev, struct 
> >> device *dev)
> >>  {
> >> -       /* XXX warning we should watch out for name collisions */
> >> -       strlcpy(f_dev->bus_id, dev->bus_id, BUS_ID_SIZE);
> >> +       snprintf(f_dev->bus_id, BUS_ID_SIZE, "fw-%s", dev->bus_id);
> >>  }
> >>     
> >
> > I would prefer if we use "firmware-%s" since the "fw" might collide with
> > the new Firewire stack. Please change that and I agree.
> >
> >   
> 
> firmware-%s sounds more informative and cannot be mistaken with firewire 
> yes.
> 
> Signed-off-by: Markus Rechberger <markus.rechberger@amd.com>

Acked-by: Marcel Holtmann <marcel@holtmann.org>

Regards

Marcel



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Firmware class name collision
  2007-08-13 17:20   ` Markus Rechberger
  2007-08-13 17:45     ` Marcel Holtmann
@ 2007-08-14 13:33     ` Jean Delvare
  2007-08-14 14:17       ` Kay Sievers
  1 sibling, 1 reply; 7+ messages in thread
From: Jean Delvare @ 2007-08-14 13:33 UTC (permalink / raw)
  To: Markus Rechberger; +Cc: Marcel Holtmann, linux-kernel, Greg KH

Hi Markus,

On Mon, 13 Aug 2007 19:20:43 +0200, Markus Rechberger wrote:
> Marcel Holtmann wrote:
> > I would prefer if we use "firmware-%s" since the "fw" might collide with
> > the new Firewire stack. Please change that and I agree.
> 
> firmware-%s sounds more informative and cannot be mistaken with firewire 
> yes.
> 
> Signed-off-by: Markus Rechberger <markus.rechberger@amd.com>
> 
> http://mcentral.de/~mrec/patches/firmware_class_name_collision_2.diff
> 
> diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c
> index b24efd4..bfc54a1 100644
> --- a/drivers/base/firmware_class.c
> +++ b/drivers/base/firmware_class.c
> @@ -297,8 +297,7 @@ firmware_class_timeout(u_long data)
> 
>  static inline void fw_setup_device_id(struct device *f_dev, struct 
> device *dev)
>  {
> -       /* XXX warning we should watch out for name collisions */
> -       strlcpy(f_dev->bus_id, dev->bus_id, BUS_ID_SIZE);
> +       snprintf(f_dev->bus_id, BUS_ID_SIZE, "firmware-%s", dev->bus_id);
>  }

Please keep in mind that BUS_ID_SIZE is "only" 20. "firmware-" takes 9
characters, add one for the trailing zero and this only leaves room for
10 characters for the original bus id. While this will be enough for
the i2c case, I suspect that some other bus IDs won't fit. 

-- 
Jean Delvare

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Firmware class name collision
  2007-08-14 13:33     ` Jean Delvare
@ 2007-08-14 14:17       ` Kay Sievers
  0 siblings, 0 replies; 7+ messages in thread
From: Kay Sievers @ 2007-08-14 14:17 UTC (permalink / raw)
  To: Jean Delvare; +Cc: Markus Rechberger, Marcel Holtmann, linux-kernel, Greg KH

On 8/14/07, Jean Delvare <khali@linux-fr.org> wrote:
> On Mon, 13 Aug 2007 19:20:43 +0200, Markus Rechberger wrote:
> > Marcel Holtmann wrote:
> > > I would prefer if we use "firmware-%s" since the "fw" might collide with
> > > the new Firewire stack. Please change that and I agree.
> >
> > firmware-%s sounds more informative and cannot be mistaken with firewire
> > yes.
> >
> > Signed-off-by: Markus Rechberger <markus.rechberger@amd.com>
> >
> > http://mcentral.de/~mrec/patches/firmware_class_name_collision_2.diff
> >
> > diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c
> > index b24efd4..bfc54a1 100644
> > --- a/drivers/base/firmware_class.c
> > +++ b/drivers/base/firmware_class.c
> > @@ -297,8 +297,7 @@ firmware_class_timeout(u_long data)
> >
> >  static inline void fw_setup_device_id(struct device *f_dev, struct
> > device *dev)
> >  {
> > -       /* XXX warning we should watch out for name collisions */
> > -       strlcpy(f_dev->bus_id, dev->bus_id, BUS_ID_SIZE);
> > +       snprintf(f_dev->bus_id, BUS_ID_SIZE, "firmware-%s", dev->bus_id);
> >  }
>
> Please keep in mind that BUS_ID_SIZE is "only" 20. "firmware-" takes 9
> characters, add one for the trailing zero and this only leaves room for
> 10 characters for the original bus id. While this will be enough for
> the i2c case, I suspect that some other bus IDs won't fit.

Hmm, is there any case where .bus_id is different from .kobj.k_name?
We always do:
  kobject_set_name(&dev->kobj, "%s", dev->bus_id);

Which looks kind of weird, as the kobject (which doesn't have that
name size limitation) is always embedded in the same struct anyway.

Thanks,
Kay

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2007-08-14 14:17 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-13 13:11 [PATCH] Firmware class name collision Markus Rechberger
2007-08-13 13:22 ` Jean Delvare
2007-08-13 17:10 ` Marcel Holtmann
2007-08-13 17:20   ` Markus Rechberger
2007-08-13 17:45     ` Marcel Holtmann
2007-08-14 13:33     ` Jean Delvare
2007-08-14 14:17       ` Kay Sievers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox