mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] Fix lguest oops when guest dies while receiving I/O
@ 2007-04-26 10:45 Rusty Russell
  2007-04-26 10:46 ` [PATCH] Fix lguest documentation error Rusty Russell
  0 siblings, 1 reply; 2+ messages in thread
From: Rusty Russell @ 2007-04-26 10:45 UTC (permalink / raw)
  To: Andrew Morton; +Cc: lkml - Kernel Mailing List, virtualization

lguest needs to hold a reference to its task in case it exits while
another Guest is sending it I/O.  Otherwise we can oops in
access_process_vm->get_task_mm->task_lock().

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
---
 drivers/lguest/lguest_user.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

===================================================================
--- a/drivers/lguest/lguest_user.c
+++ b/drivers/lguest/lguest_user.c
@@ -107,7 +107,8 @@ static int initialize(struct file *file,
 	setup_regs(lg->regs, args[2]);
 	setup_guest_gdt(lg);
 	lg->tsk = current;
-	lg->mm = get_task_mm(current);
+	get_task_struct(lg->tsk);
+	lg->mm = get_task_mm(lg->tsk);
 	lg->last_pages = NULL;
 	mutex_unlock(&lguest_lock);
 
@@ -160,6 +161,7 @@ static int close(struct inode *inode, st
 	mutex_lock(&lguest_lock);
 	release_all_dma(lg);
 	free_guest_pagetable(lg);
+	put_task_struct(lg->tsk);
 	mmput(lg->mm);
 	if (!IS_ERR(lg->dead))
 		kfree(lg->dead);



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-04-26 10:47 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-04-26 10:45 [PATCH] Fix lguest oops when guest dies while receiving I/O Rusty Russell
2007-04-26 10:46 ` [PATCH] Fix lguest documentation error Rusty Russell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®