linux/drivers
Abhay Salunke 2c5608404e [PATCH] dell_rbu: fix Bug 5854
This fixes http://bugzilla.kernel.org/show_bug.cgi?id=5854

Root cause:

The dell_rbu driver creates entries in /sys/class/firmware/dell_rbu/ by
calling request_firmware_nowait (without hotplug ) this function inturn
starts a kernel thread which creates the entries in
/sys/class/firmware/dell_rbu/loading , data and the thread waits on the
user action to return control back to the callback fucntion of dell_rbu.
The thread calls wait_on_completion which puts it in a D state until the
user action happens.  If there is no user action happening the load average
goes up as the thread D state is taken in to account.  Also after
downloading the BIOS image the enrties go away momentarily but they are
recreated from the callback function in dell_rbu.  This causes the thread
to get recreated causing the load average to permenently stay around 1.

Fix:

The dell_rbu also creates the entry
/sys/devices/platform/dell_rbu/image_type at driver load time.  The image
type by default is mono if required the user can echo packet to image_type
to make the BIOS update mechanism using packets.  Also by echoing init in
to image_type the /sys/class/firmware/dell_rbu entries can be created.

The driver code was changed to not create /sys/class/firmware/dell_rbu
entries during load time, and also to not create the above entries from the
callback function.  The entries are only created by echoing init to
/sys/devices/platform/dell_rbu/image_type The user now needs to create the
entries to download the image monolithic or packet.  This fixes the issue
since the kernel thread only is created when ever the user is ready to
download the BIOS image; this minimizes the life span of the kernel thread
and the load average goes back to normal.

Signed off by Abhay Salunke <abhay_salunke@dell.com>

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-14 18:27:13 -08:00
..
acorn [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
acpi [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
amba [ARM] Remove asm/irq.h includes from ARM drivers 2006-01-09 13:56:42 +00:00
atm [ATM]: Remove unneeded kmalloc() return value casts + tiny whitespace cleanup 2006-01-10 13:09:01 -08:00
base [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
block [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
bluetooth [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
cdrom [PATCH] powerpc: remove bitfields from HvLpEvent 2006-01-12 20:09:29 +11:00
char [PATCH] powerpc: Add support for the MPC83xx watchdog 2006-01-14 18:27:07 -08:00
connector [PATCH] Switch getnstimestamp() calls to ktime_get_ts() 2006-01-10 08:01:39 -08:00
cpufreq [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
crypto [CRYPTO] Allow AES C/ASM implementations to coexist 2006-01-09 14:15:39 -08:00
dio [PATCH] Add dio_bus_type probe and remove methods 2006-01-13 11:26:07 -08:00
eisa [PATCH] drivers/eisa: kmalloc + memset -> kzalloc conversion 2005-11-07 07:53:59 -08:00
fc4 [SPARC]: introduce a SPARC Kconfig symbol 2005-12-22 23:09:54 -08:00
firmware [PATCH] dell_rbu: fix Bug 5854 2006-01-14 18:27:13 -08:00
hwmon [PATCH] drivers/*rest*: Replace pci_module_init() with pci_register_driver() 2006-01-09 12:13:23 -08:00
i2c [PATCH] Add i2c_bus_type probe and remove methods 2006-01-13 11:26:07 -08:00
ide [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
ieee1394 [PATCH] don't include ioctl32.h in drivers 2006-01-10 08:01:34 -08:00
infiniband [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
input Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/spi-2.6 2006-01-14 10:43:26 -08:00
isdn [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
macintosh Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 2006-01-14 10:42:40 -08:00
mca [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
md [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
media [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
message [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
mfd [PATCH] Add MCP bus_type probe and remove methods 2006-01-13 11:26:08 -08:00
misc Input: ibmasm - fix input initialization error path 2006-01-10 02:00:39 -05:00
mmc [PATCH] Add mmc_bus_type probe and remove methods 2006-01-13 11:26:08 -08:00
mtd [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
net [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
nubus
oprofile [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
parisc [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
parport [PARISC] Fix parport_gsc by selecting PARPORT_NOT_PC 2006-01-10 21:52:25 -05:00
pci [PATCH] Add pci_bus_type probe and remove methods 2006-01-13 11:26:04 -08:00
pcmcia [PATCH] Add pcmcia_bus_type probe and remove methods 2006-01-13 11:26:08 -08:00
pnp [PATCH] Add pnp_bus_type probe and remove methods 2006-01-13 11:26:09 -08:00
rapidio [PATCH] Add rio_bus_type probe and remove methods 2006-01-13 11:26:10 -08:00
s390 [PATCH] s390: fix blk_queue_ordered call in dasd.c fixup 2006-01-14 18:27:10 -08:00
sbus [PATCH] remove unused tmp_buf_sem's 2006-01-14 10:41:42 -08:00
scsi [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
serial [PATCH] Altix: ioc3 serial support 2006-01-14 18:25:20 -08:00
sh [PATCH] Add superhyway_bus_type probe and remove methods 2006-01-13 11:26:09 -08:00
sn [PATCH] Altix: ioc3 serial support 2006-01-14 18:25:20 -08:00
spi [PATCH] SPI: add spi_butterfly driver 2006-01-13 16:29:56 -08:00
tc [MIPS] zs.c: Resurrect the deceased zs.c for now. 2005-11-17 16:23:39 +00:00
telephony [PATCH] pcmcia: unify attach, EVENT_CARD_INSERTION handlers into one probe callback 2006-01-06 00:03:24 +01:00
usb [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
video [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
w1 spelling: s/usefull/useful/ 2006-01-10 00:08:17 +01:00
zorro [PATCH] Add zorro_bus_type probe and remove methods 2006-01-13 11:26:10 -08:00
Kconfig [PATCH] spi: simple SPI framework 2006-01-13 16:29:54 -08:00
Makefile [PATCH] spi: simple SPI framework 2006-01-13 16:29:54 -08:00