aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/goldfish/patches-2.6.30/0058-sched-Enable-might_sleep-before-initializing-driver.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2009-06-14 20:42:33 +0000
committerFelix Fietkau <nbd@openwrt.org>2009-06-14 20:42:33 +0000
commit2d5f80251c73e1e44c8fdd047ef49dbe051d65aa (patch)
tree74597f2d6eef2e7a6d6338c978b8910f9f947151 /target/linux/goldfish/patches-2.6.30/0058-sched-Enable-might_sleep-before-initializing-driver.patch
parent157a4ab64660aaca2dd51fa4f82239d3738a1dff (diff)
downloadmaster-187ad058-2d5f80251c73e1e44c8fdd047ef49dbe051d65aa.tar.gz
master-187ad058-2d5f80251c73e1e44c8fdd047ef49dbe051d65aa.tar.bz2
master-187ad058-2d5f80251c73e1e44c8fdd047ef49dbe051d65aa.zip
add the 'goldfish' target, useful for experimenting with virtual phone hardware (includes the emulator)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@16459 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/goldfish/patches-2.6.30/0058-sched-Enable-might_sleep-before-initializing-driver.patch')
-rw-r--r--target/linux/goldfish/patches-2.6.30/0058-sched-Enable-might_sleep-before-initializing-driver.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/target/linux/goldfish/patches-2.6.30/0058-sched-Enable-might_sleep-before-initializing-driver.patch b/target/linux/goldfish/patches-2.6.30/0058-sched-Enable-might_sleep-before-initializing-driver.patch
new file mode 100644
index 0000000000..126cac0188
--- /dev/null
+++ b/target/linux/goldfish/patches-2.6.30/0058-sched-Enable-might_sleep-before-initializing-driver.patch
@@ -0,0 +1,43 @@
+From 10276fd993c6e4c92d8086a6ccd0c9e0ff53b053 Mon Sep 17 00:00:00 2001
+From: =?utf-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?= <arve@android.com>
+Date: Wed, 10 Dec 2008 20:06:28 -0800
+Subject: [PATCH 058/134] sched: Enable might_sleep before initializing drivers.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf-8
+Content-Transfer-Encoding: 8bit
+
+This allows detection of init bugs in built-in drivers.
+
+Signed-off-by: Arve Hjønnevåg <arve@android.com>
+---
+ kernel/sched.c | 14 ++++++++++++--
+ 1 files changed, 12 insertions(+), 2 deletions(-)
+
+--- a/kernel/sched.c
++++ b/kernel/sched.c
+@@ -9064,13 +9064,23 @@ void __init sched_init(void)
+ }
+
+ #ifdef CONFIG_DEBUG_SPINLOCK_SLEEP
++static int __might_sleep_init_called;
++int __init __might_sleep_init(void)
++{
++ __might_sleep_init_called = 1;
++ return 0;
++}
++early_initcall(__might_sleep_init);
++
+ void __might_sleep(char *file, int line)
+ {
+ #ifdef in_atomic
+ static unsigned long prev_jiffy; /* ratelimiting */
+
+- if ((!in_atomic() && !irqs_disabled()) ||
+- system_state != SYSTEM_RUNNING || oops_in_progress)
++ if ((!in_atomic() && !irqs_disabled()) || oops_in_progress)
++ return;
++ if (system_state != SYSTEM_RUNNING &&
++ (!__might_sleep_init_called || system_state != SYSTEM_BOOTING))
+ return;
+ if (time_before(jiffies, prev_jiffy + HZ) && prev_jiffy)
+ return;