linux-stable/drivers
Trent Piepho ca99eb8c2d PCI: Hotplug: fakephp: Return success, not ENODEV, when bus rescan is triggered
The 'power' attribute of the fakephp driver originally only let one turn a
slot off.  If one tried to turn a slot on (echo 1 > .../power), it would
return ENODEV, as fakephp did not support this function.

An old (pre-git) patch changed this:
2004/11/11 16:33:31-08:00 jdittmer
[PATCH] fakephp: add pci bus rescan ability
http://article.gmane.org/gmane.linux.kernel/251183

Now writing "1" to the power attribute has the effect of triggering a bus
rescan, but it still returns ENODEV, probably an oversight in the above
patch.

Using the BusyBox echo will not produce an error message, but will
trigger *two* bus rescans (and return an exit code of 1):
~ # strace echo -n 1 > /sys/bus/pci/slots/0000:00:00.0/power
...
write(1, "1", 1)                        = -1 ENODEV (No such device)
write(1, "1", 1)                        = -1 ENODEV (No such device)
exit(1)                                 = ?

Using cp gives a write error, even though the write did happen and a rescan
was triggered:
~ # echo -n 1 > tmp ; cp tmp /sys/bus/pci/slots/0000:00:00.0/power
cp: Write Error: No such device

It seems much better to return success instead of failure.  The actual
status of the bus rescan is hard to return.  It happens asynchronously in a
work thread, so the sysfs store functions returns before any status is
ready (the whole point of the work queue).  And even if it didn't do this,
the rescan doesn't have any clear status to return.

Signed-off-by: Trent Piepho <tpiepho@freescale.com>
CC: Jan Dittmer <jdittmer@ppp0.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-04-20 21:47:09 -07:00
..
acorn/char
acpi Add down_timeout and change ACPI to use it 2008-04-17 10:42:46 -04:00
amba
ata Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2008-04-18 11:25:31 -07:00
atm [ATM] drivers/atm/horizon.c: stop inlining largish static functions 2008-04-13 21:54:34 -07:00
auxdisplay
base [SCSI] transport_class: BUG if we can't release the attribute container 2008-04-07 12:19:10 -05:00
block Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-04-17 23:56:30 -07:00
bluetooth
cdrom
char Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-kgdb 2008-04-18 08:37:01 -07:00
clocksource
connector
cpufreq
cpuidle cpuidle: fix 100% C0 statistics regression 2008-03-26 00:58:19 -04:00
crypto [S390] zcrypt: add support for large random numbers 2008-04-17 07:47:02 +02:00
dca
dio
dma dmaengine: ack to flags: make use of the unused bits in the 'ack' field 2008-04-17 13:25:54 -07:00
edac
eisa
firewire firewire: cleanups 2008-04-18 17:55:37 +02:00
firmware ipmi: change device node ordering to reflect probe order 2008-04-04 14:46:26 -07:00
gpio
hid
hwmon hwmon: (w83781d) Fix I/O resource conflict with PNP 2008-03-27 08:40:41 -04:00
i2c i2c-tiny-usb: New VID/PID pair 2008-04-11 12:07:05 +02:00
ide ide: remove ide_init_default_irq() macro 2008-04-18 00:46:35 +02:00
ieee1394 ieee1394: limit early node speed to host interface speed 2008-04-18 17:55:31 +02:00
infiniband IB/iser: Don't change itt endianness 2008-04-16 21:09:35 -07:00
input Input: appletouch - add product IDs for the 4th generation MacBooks 2008-04-02 10:14:29 -04:00
isdn [ISDN]: Do not validate ISDN net device address prior to interface-up 2008-04-13 22:44:20 -07:00
leds leds: fix platform driver hotplug/coldplug 2008-04-15 19:35:40 -07:00
lguest misc __user misannotations (pointless casts to long) 2008-03-30 14:20:23 -07:00
macintosh ide: rework PowerMac media-bay support (take 2) 2008-04-18 00:46:23 +02:00
mca
md md: close a livelock window in handle_parity_checks5 2008-04-11 08:06:44 -07:00
media pvrusb2: fix broken build due to patch order dependency 2008-04-07 19:14:34 -07:00
memstick memstick: suppress uninitialized-var warning 2008-03-28 14:45:23 -07:00
message [SCSI] mpt fusion: fix up msi_enable in mpt_suspend 2008-04-07 12:19:02 -05:00
mfd mfd/asic3: ioread/iowrite take pointer, not unsigned long 2008-03-30 14:20:24 -07:00
misc kgdb: allow static kgdbts boot configuration 2008-04-17 20:05:43 +02:00
mmc mmc: fix platform driver hotplug/coldplug 2008-04-15 19:35:40 -07:00
mtd mtd/chips: add missing set_current_state() to cfi_{amdstd,staa}_sync() 2008-04-08 18:25:53 -07:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.26 2008-04-18 18:02:35 -07:00
nubus
of
oprofile
parisc PCI: remove parisc consumer of the pci global_list 2008-04-20 21:47:01 -07:00
parport parport_pc: make sure to release IO ports after probing for IT87XX 2008-04-04 14:30:31 -07:00
pci PCI: Hotplug: fakephp: Return success, not ENODEV, when bus rescan is triggered 2008-04-20 21:47:09 -07:00
pcmcia pcmcia: fix platform driver hotplug/coldplug 2008-04-15 19:35:40 -07:00
pnp pnpacpi: reduce printk severity for "pnpacpi: exceeded the max number of ..." 2008-03-26 14:22:20 -04:00
power
ps3
rapidio
rtc rtc: fix the error in the function of cmos_set_alarm 2008-04-15 19:35:40 -07:00
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.26 2008-04-18 18:02:35 -07:00
sbus
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2008-04-18 11:25:31 -07:00
serial kgdb: Kconfig fix 2008-04-17 20:05:42 +02:00
sh
sn
spi spi: spi_s3c24xx must initialize num_chipselect 2008-04-15 19:35:41 -07:00
ssb Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-04-17 23:56:30 -07:00
tc
telephony
thermal acpi thermal trip points increased to 12 2008-04-15 19:35:41 -07:00
uio
usb USB: remove broken usb-serial num_endpoints check 2008-04-15 22:30:53 -07:00
video fbdev: fix /proc/fb oops after module removal 2008-04-15 19:35:40 -07:00
virtio virtio: remove overzealous BUG_ON. 2008-04-07 13:14:22 -07:00
w1
watchdog watchdog: fix platform driver hotplug/coldplug 2008-04-11 08:06:44 -07:00
xen xen: fix grant table bug 2008-04-04 18:36:46 +02:00
zorro
Kconfig
Makefile