Chris Wright
2007-Apr-18 17:49 UTC
[PATCH 2/6] i386 virtualization - Remove some dead debugging code
* zach@vmware.com (zach@vmware.com) wrote:> This code is quite dead. Release_thread is always guaranteed that the mm has > already been released, thus dead_task->mm will always be NULL. > > Signed-off-by: Zachary Amsden <zach@vmware.com> > Index: linux-2.6.13/arch/i386/kernel/process.c > ==================================================================> --- linux-2.6.13.orig/arch/i386/kernel/process.c 2005-08-15 10:46:18.000000000 -0700 > +++ linux-2.6.13/arch/i386/kernel/process.c 2005-08-15 10:48:51.000000000 -0700 > @@ -421,17 +421,7 @@ > > void release_thread(struct task_struct *dead_task) > { > - if (dead_task->mm) { > - // temporary debugging check > - if (dead_task->mm->context.size) { > - printk("WARNING: dead process %8s still has LDT? <%p/%d>\n", > - dead_task->comm, > - dead_task->mm->context.ldt, > - dead_task->mm->context.size); > - BUG(); > - } > - } > - > + BUG_ON(dead_task->mm);This BUG_ON() has different semantics than old dead one. Is there a point? exit_mm() has already reset this to NULL, no?> release_vm86_irqs(dead_task); > }
Zachary Amsden
2007-Apr-18 17:49 UTC
[PATCH 2/6] i386 virtualization - Remove some dead debugging code
Chris Wright wrote:>* zach@vmware.com (zach@vmware.com) wrote: > > >>This code is quite dead. Release_thread is always guaranteed that the mm has >>already been released, thus dead_task->mm will always be NULL. >> >>Signed-off-by: Zachary Amsden <zach@vmware.com> >>Index: linux-2.6.13/arch/i386/kernel/process.c >>==================================================================>>--- linux-2.6.13.orig/arch/i386/kernel/process.c 2005-08-15 10:46:18.000000000 -0700 >>+++ linux-2.6.13/arch/i386/kernel/process.c 2005-08-15 10:48:51.000000000 -0700 >>@@ -421,17 +421,7 @@ >> >> void release_thread(struct task_struct *dead_task) >> { >>- if (dead_task->mm) { >>- // temporary debugging check >>- if (dead_task->mm->context.size) { >>- printk("WARNING: dead process %8s still has LDT? <%p/%d>\n", >>- dead_task->comm, >>- dead_task->mm->context.ldt, >>- dead_task->mm->context.size); >>- BUG(); >>- } >>- } >>- >>+ BUG_ON(dead_task->mm); >> >> > >This BUG_ON() has different semantics than old dead one. Is there a >point? exit_mm() has already reset this to NULL, no? > >Yes, completely. This BUG() could be eliminated entirely, as trivial inspection shows. I can't fathom a single reason why it should still exist, but the presence of it in the first place made be wonder if there may be some erudite reason for it. Thus I raised the BUG to a higher power - obviously the LDT is gone if the MM is gone. Zach