aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/lguest/lguest_user.c
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2009-06-13 00:27:10 -0400
committerRusty Russell <rusty@rustcorp.com.au>2009-06-12 08:57:11 -0400
commit5dac051bc6030963181b69faddd9e0ad04f85fa8 (patch)
tree4a0456e1d971bbe9f68f4ac13d31716c12fbb618 /drivers/lguest/lguest_user.c
parent659a0e6633567246edcb7bd400c7e2bece9237d9 (diff)
lguest: remove obsolete LHREQ_BREAK call
We no longer need an efficient mechanism to force the Guest back into host userspace, as each device is serviced without bothering the main Guest process (aka. the Launcher). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'drivers/lguest/lguest_user.c')
-rw-r--r--drivers/lguest/lguest_user.c31
1 files changed, 0 insertions, 31 deletions
diff --git a/drivers/lguest/lguest_user.c b/drivers/lguest/lguest_user.c
index f6bf255f1837..32e297121058 100644
--- a/drivers/lguest/lguest_user.c
+++ b/drivers/lguest/lguest_user.c
@@ -11,32 +11,6 @@
11#include <linux/file.h> 11#include <linux/file.h>
12#include "lg.h" 12#include "lg.h"
13 13
14/*L:055 When something happens, the Waker process needs a way to stop the
15 * kernel running the Guest and return to the Launcher. So the Waker writes
16 * LHREQ_BREAK and the value "1" to /dev/lguest to do this. Once the Launcher
17 * has done whatever needs attention, it writes LHREQ_BREAK and "0" to release
18 * the Waker. */
19static int break_guest_out(struct lg_cpu *cpu, const unsigned long __user*input)
20{
21 unsigned long on;
22
23 /* Fetch whether they're turning break on or off. */
24 if (get_user(on, input) != 0)
25 return -EFAULT;
26
27 if (on) {
28 cpu->break_out = 1;
29 if (!wake_up_process(cpu->tsk))
30 kick_process(cpu->tsk);
31 /* Wait for them to reset it */
32 return wait_event_interruptible(cpu->break_wq, !cpu->break_out);
33 } else {
34 cpu->break_out = 0;
35 wake_up(&cpu->break_wq);
36 return 0;
37 }
38}
39
40bool send_notify_to_eventfd(struct lg_cpu *cpu) 14bool send_notify_to_eventfd(struct lg_cpu *cpu)
41{ 15{
42 unsigned int i; 16 unsigned int i;
@@ -202,9 +176,6 @@ static int lg_cpu_start(struct lg_cpu *cpu, unsigned id, unsigned long start_ip)
202 * address. */ 176 * address. */
203 lguest_arch_setup_regs(cpu, start_ip); 177 lguest_arch_setup_regs(cpu, start_ip);
204 178
205 /* Initialize the queue for the Waker to wait on */
206 init_waitqueue_head(&cpu->break_wq);
207
208 /* We keep a pointer to the Launcher task (ie. current task) for when 179 /* We keep a pointer to the Launcher task (ie. current task) for when
209 * other Guests want to wake this one (eg. console input). */ 180 * other Guests want to wake this one (eg. console input). */
210 cpu->tsk = current; 181 cpu->tsk = current;
@@ -344,8 +315,6 @@ static ssize_t write(struct file *file, const char __user *in,
344 return initialize(file, input); 315 return initialize(file, input);
345 case LHREQ_IRQ: 316 case LHREQ_IRQ:
346 return user_send_irq(cpu, input); 317 return user_send_irq(cpu, input);
347 case LHREQ_BREAK:
348 return break_guest_out(cpu, input);
349 case LHREQ_EVENTFD: 318 case LHREQ_EVENTFD:
350 return attach_eventfd(lg, input); 319 return attach_eventfd(lg, input);
351 default: 320 default: