2006-05-22 02:29:15

by Dave Jones

[permalink] [raw]
Subject: edac driver names in sysfs.

EDAC does something funky that no other afaik seems to do.

#define edac_xstr(s) edac_str(s)
#define edac_str(s) #s
#define EDAC_MOD_STR edac_xstr(KBUILD_BASENAME)

And then..

.name = EDAC_MOD_STR,

in its pci_driver structs.
This leads to it looking a bit 'odd' in /sys/bus/pci/drivers
compared to the others.

/sys/bus/pci/drivers/\"e752x_edac\"/

Is correcting this to remove the quotes likely to break anything
in userspace ?

Dave

--
http://www.codemonkey.org.uk


2006-05-22 05:46:20

by Keith Owens

[permalink] [raw]
Subject: Re: edac driver names in sysfs.

Dave Jones (on Sun, 21 May 2006 22:29:12 -0400) wrote:
>EDAC does something funky that no other afaik seems to do.
>
>#define edac_xstr(s) edac_str(s)
>#define edac_str(s) #s
>#define EDAC_MOD_STR edac_xstr(KBUILD_BASENAME)
>
>And then..
>
> .name = EDAC_MOD_STR,

EDAC is reinventing the wheel. We have the standard

#include <linux/stringify.h>

.name = __stringify(KBUILD_BASENAME).

2006-05-23 18:51:42

by Greg KH

[permalink] [raw]
Subject: Re: edac driver names in sysfs.

On Sun, May 21, 2006 at 10:29:12PM -0400, Dave Jones wrote:
> EDAC does something funky that no other afaik seems to do.
>
> #define edac_xstr(s) edac_str(s)
> #define edac_str(s) #s
> #define EDAC_MOD_STR edac_xstr(KBUILD_BASENAME)
>
> And then..
>
> .name = EDAC_MOD_STR,
>
> in its pci_driver structs.
> This leads to it looking a bit 'odd' in /sys/bus/pci/drivers
> compared to the others.
>
> /sys/bus/pci/drivers/\"e752x_edac\"/
>
> Is correcting this to remove the quotes likely to break anything
> in userspace ?

In the /sys/bus/pci/drivers/ directory? No, it should be fixed. Driver
names shouldn't have quotes or spaces or / in them. I've fixed up
almost all of the space issues, but they seem to keep cropping up every
once in a while (an example of this is the name "Intel ICH" which should
be fixed up...

thanks,

greg k-h