linux/drivers
Wolfram Sang 12765517d9 device_attributes: add sysfs_attr_init() for dynamic attributes
Made necessary by 6992f53349 ("sysfs: Use
one lockdep class per sysfs attribute").

Prevents further "key xxx not in .data" bug-reports.  Although some
attributes could probably be converted to static ones, this is left for
people having hardware to test.

Found by this semantic patch:

@ init @
type T;
identifier A;
@@

        T {
                ...
                struct device_attribute A;
                ...
        };

@ main extends init @
expression E;
statement S;
identifier err;
T *name;
@@

        ... when != sysfs_attr_init(&name->A.attr);
(
+       sysfs_attr_init(&name->A.attr);
        if (device_create_file(E, &name->A))
                S
|
+       sysfs_attr_init(&name->A.attr);
        err = device_create_file(E, &name->A);
)

While reviewing, I put the initialization to apropriate places.

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Cc: Eric W. Biederman <ebiederm@xmission.com>
Cc: Greg KH <gregkh@suse.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Mike Isely <isely@pobox.com>
Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
Cc: Sujith Thomas <sujith.thomas@intel.com>
Cc: Matthew Garrett <mjg@redhat.com>
Cc: Len Brown <len.brown@intel.com>
Cc: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-04-07 08:38:03 -07:00
..
accessibility
acpi
amba
ata libata: unlock HPA if device shrunk 2010-04-06 10:55:33 -04:00
atm
auxdisplay
base Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 2010-04-05 15:37:12 -07:00
block cciss: unlock on error path 2010-04-07 08:38:03 -07:00
bluetooth
cdrom
char mxser: spin_lock() => spin_lock_irq() 2010-04-07 08:38:03 -07:00
clocksource
connector
cpufreq
cpuidle
crypto
dca
dio
dma
edac
eisa
firewire
firmware
gpio drivers/gpio/timbgpio.c: add missing unlock 2010-04-07 08:38:02 -07:00
gpu Merge branch 'master' into export-slabh 2010-04-05 11:37:28 +09:00
hid Merge branch 'master' into export-slabh 2010-04-05 11:37:28 +09:00
hwmon
i2c
ide
idle
ieee1394
ieee802154
infiniband
input
isdn
leds
lguest
macintosh device_attributes: add sysfs_attr_init() for dynamic attributes 2010-04-07 08:38:03 -07:00
mca
md
media device_attributes: add sysfs_attr_init() for dynamic attributes 2010-04-07 08:38:03 -07:00
memstick
message
mfd
misc Merge branch 'master' into export-slabh 2010-04-05 11:37:28 +09:00
mmc omap hsmmc: fix a bug in card remove scenario 2010-04-07 08:38:03 -07:00
mtd
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2010-04-06 08:34:06 -07:00
nubus
of Merge branch 'master' into export-slabh 2010-04-05 11:37:28 +09:00
oprofile
parisc
parport
pci Merge branch 'master' into export-slabh 2010-04-05 11:37:28 +09:00
pcmcia Merge branch 'urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 2010-04-06 13:03:52 -07:00
platform device_attributes: add sysfs_attr_init() for dynamic attributes 2010-04-07 08:38:03 -07:00
pnp
power
pps
ps3
rapidio
regulator
rtc
s390
sbus
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 2010-04-05 15:37:12 -07:00
serial Merge branch 'master' into export-slabh 2010-04-05 11:37:28 +09:00
sfi
sh
sn
spi
ssb
staging staging/otus: include slab.h from usbdrv.h 2010-04-05 11:23:16 +09:00
tc
telephony
thermal drivers/thermal/thermal_sys.c: fix 'key f70f4b50 not in .data' in thermal_sys 2010-04-07 08:38:03 -07:00
uio
usb Merge branch 'master' into export-slabh 2010-04-05 11:37:28 +09:00
uwb
vhost
video device_attributes: add sysfs_attr_init() for dynamic attributes 2010-04-07 08:38:03 -07:00
virtio
vlynq
w1
watchdog Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog 2010-04-06 09:56:40 -07:00
xen
zorro
Kconfig
Makefile