diff options
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.26/1213-sdio-use-interruptible-sleep-in-kthread-main-loops.patch')
-rwxr-xr-x | target/linux/s3c24xx/patches-2.6.26/1213-sdio-use-interruptible-sleep-in-kthread-main-loops.patch | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.26/1213-sdio-use-interruptible-sleep-in-kthread-main-loops.patch b/target/linux/s3c24xx/patches-2.6.26/1213-sdio-use-interruptible-sleep-in-kthread-main-loops.patch deleted file mode 100755 index e68c058109..0000000000 --- a/target/linux/s3c24xx/patches-2.6.26/1213-sdio-use-interruptible-sleep-in-kthread-main-loops.patch +++ /dev/null @@ -1,64 +0,0 @@ -From cba59b243d542f3de9c534d99b2f3f33e50b3ebb Mon Sep 17 00:00:00 2001 -From: Jason Uhlenkott <jasonuhl@jasonuhl.org> -Date: Fri, 25 Jul 2008 23:06:20 +0100 -Subject: [PATCH] sdio: use interruptible sleep in kthread main loops - -My FreeRunner's load average was leveling off at 2.00 as a result of -these two kernel threads: - -SDIO Helper D c02b4500 0 255 2 -[<c02b4298>] (schedule+0x0/0x2d4) from [<c02b4040>] (__down+0x100/0x158) -[<c02b3f40>] (__down+0x0/0x158) from [<c02b3e2c>] (__down_failed+0xc/0x20) - r7:00000000 r6:c01fbd64 r5:c7cb7134 r4:c7d58000 -[<c01fa6fc>] (CardDetectHelperFunction+0x0/0x1ac) from [<c01fbd80>] (HelperLaunch+0x1c/0x28) - r5:c7cb7134 r4:c7cb7134 -[<c01fbd64>] (HelperLaunch+0x0/0x28) from [<c005bbd0>] (kthread+0x60/0x94) - r4:c7d58000 -[<c005bb70>] (kthread+0x0/0x94) from [<c0048f7c>] (do_exit+0x0/0x744) - r6:00000000 r5:00000000 r4:00000000 - -SDIO Helper D c02b4500 0 259 2 -[<c02b4298>] (schedule+0x0/0x2d4) from [<c02b4040>] (__down+0x100/0x158) -[<c02b3f40>] (__down+0x0/0x158) from [<c02b3e2c>] (__down_failed+0xc/0x20) - r7:c0382bb4 r6:c0382b34 r5:c7d5a000 r4:00000001 -[<c01f9104>] (SDIOIrqHelperFunction+0x0/0x29c) from [<c01fbd80>] (HelperLaunch+0x1c/0x28) - r8:00000000 r7:00000000 r6:c01fbd64 r5:c0382bb4 r4:c0382bb4 -[<c01fbd64>] (HelperLaunch+0x0/0x28) from [<c005bbd0>] (kthread+0x60/0x94) - r4:c7d5a000 -[<c005bb70>] (kthread+0x0/0x94) from [<c0048f7c>] (do_exit+0x0/0x744) - r6:00000000 r5:00000000 r4:00000000 - -This fixes them to use interruptible sleep primitives while waiting in -their main loops, as is conventional for kernel threads. They can't -actually be interrupted since kernel threads ignore all signals, but -by sleeping this way they get classified as long term waiters, and -don't get counted as running for purposes of load average calculation. - -This is intended as a minimal fix. In the longer term, it'd probably -make sense to replace the semaphores with completions or something, -and to do away with some of these StudlyCapped wrapper functions. - -Signed-off-by: Jason Uhlenkott <jasonuhl@jasonuhl.org> --- - -This is untested, but what could possibly go wrong? ;) ---- - include/linux/sdio/ctsystem_linux.h | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/include/linux/sdio/ctsystem_linux.h b/include/linux/sdio/ctsystem_linux.h -index 0de89a6..c9e44f2 100644 ---- a/include/linux/sdio/ctsystem_linux.h -+++ b/include/linux/sdio/ctsystem_linux.h -@@ -968,7 +968,7 @@ typedef struct _OSKERNEL_HELPER { - } - - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ --#define SD_WAIT_FOR_WAKEUP(p) SignalWait(&(p)->WakeSignal); -+#define SD_WAIT_FOR_WAKEUP(p) SignalWaitInterruptible(&(p)->WakeSignal); - - #define CT_LE16_TO_CPU_ENDIAN(x) __le16_to_cpu(x) - #define CT_LE32_TO_CPU_ENDIAN(x) __le32_to_cpu(x) --- -1.5.6.3 - |