summaryrefslogtreecommitdiffstats
path: root/meta/packages/linux/linux-rp-2.6.22+2.6.23-rc4
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@openedhand.com>2007-09-27 09:15:05 +0000
committerSamuel Ortiz <sameo@openedhand.com>2007-09-27 09:15:05 +0000
commit939d45757811335c6a9ccde8d7a769d84b0512f3 (patch)
tree78d81e759e470260c4be1ec07a989129dc40b20e /meta/packages/linux/linux-rp-2.6.22+2.6.23-rc4
parent407a73d6c5acd8b9ceb11eb88a8f0032d30326f7 (diff)
downloadpoky-939d45757811335c6a9ccde8d7a769d84b0512f3.tar.gz
linux-rp-2.6.22+2.6.23-rc4: Fix vt_ioctl race.
Because of a race between vt_ioctl and the console work queue, psplash was crashing. git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2812 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta/packages/linux/linux-rp-2.6.22+2.6.23-rc4')
-rw-r--r--meta/packages/linux/linux-rp-2.6.22+2.6.23-rc4/vt_ioctl_race.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/meta/packages/linux/linux-rp-2.6.22+2.6.23-rc4/vt_ioctl_race.patch b/meta/packages/linux/linux-rp-2.6.22+2.6.23-rc4/vt_ioctl_race.patch
new file mode 100644
index 0000000000..8f53b55a30
--- /dev/null
+++ b/meta/packages/linux/linux-rp-2.6.22+2.6.23-rc4/vt_ioctl_race.patch
@@ -0,0 +1,40 @@
1---
2 drivers/char/vt_ioctl.c | 4 ++--
3 1 file changed, 2 insertions(+), 2 deletions(-)
4
5Index: linux-2.6.22/drivers/char/vt_ioctl.c
6===================================================================
7--- linux-2.6.22.orig/drivers/char/vt_ioctl.c 2007-07-09 01:32:17.000000000 +0200
8+++ linux-2.6.22/drivers/char/vt_ioctl.c 2007-09-27 11:05:29.000000000 +0200
9@@ -770,6 +770,7 @@
10 /*
11 * Switching-from response
12 */
13+ acquire_console_sem();
14 if (vc->vt_newvt >= 0) {
15 if (arg == 0)
16 /*
17@@ -784,7 +785,6 @@
18 * complete the switch.
19 */
20 int newvt;
21- acquire_console_sem();
22 newvt = vc->vt_newvt;
23 vc->vt_newvt = -1;
24 i = vc_allocate(newvt);
25@@ -798,7 +798,6 @@
26 * other console switches..
27 */
28 complete_change_console(vc_cons[newvt].d);
29- release_console_sem();
30 }
31 }
32
33@@ -813,6 +812,7 @@
34 if (arg != VT_ACKACQ)
35 return -EINVAL;
36 }
37+ release_console_sem();
38
39 return 0;
40