diff options
author | Pierre Ossman <drzeus@drzeus.cx> | 2006-10-04 02:15:41 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-04 07:55:15 -0700 |
commit | 7104e2d5a85b4b786d6a63568beffe1e185547bb (patch) | |
tree | 1478b1076a66476a121e687dd9547d5c08d9c3ba /drivers/mmc/mmc.h | |
parent | 8a4da1430f7f2a16df3be9c7b5d55ba4e75b708c (diff) | |
download | blackbird-obmc-linux-7104e2d5a85b4b786d6a63568beffe1e185547bb.tar.gz blackbird-obmc-linux-7104e2d5a85b4b786d6a63568beffe1e185547bb.zip |
[PATCH] mmc: use own work queue
The MMC layer uses the standard work queue for doing card detection. As this
queue is shared with other crucial subsystems, the effects of a long (and
perhaps buggy) detection can cause the system to be unusable. E.g. the
keyboard stops working while the detection routine is running.
The solution is to add a specific mmc work queue to run the detection code in.
This is similar to how other subsystems handle detection (a full kernel
thread is the most common theme).
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/mmc/mmc.h')
-rw-r--r-- | drivers/mmc/mmc.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/mmc/mmc.h b/drivers/mmc/mmc.h index 97bae00292fa..cd5e0ab3d84b 100644 --- a/drivers/mmc/mmc.h +++ b/drivers/mmc/mmc.h @@ -18,4 +18,8 @@ struct mmc_host *mmc_alloc_host_sysfs(int extra, struct device *dev); int mmc_add_host_sysfs(struct mmc_host *host); void mmc_remove_host_sysfs(struct mmc_host *host); void mmc_free_host_sysfs(struct mmc_host *host); + +int mmc_schedule_work(struct work_struct *work); +int mmc_schedule_delayed_work(struct work_struct *work, unsigned long delay); +void mmc_flush_scheduled_work(void); #endif |