Re: [PATCH 02/03] kexec: Avoid overwriting the current pgd (V2,i386)

From: Magnus Damm
Date: Wed May 24 2006 - 22:12:07 EST


On Wed, 2006-05-24 at 18:58 -0400, Vivek Goyal wrote:
> On Wed, May 24, 2006 at 01:40:41PM +0900, Magnus Damm wrote:
> >
> > @@ -170,45 +151,16 @@ void machine_kexec_cleanup(struct kimage
> > NORET_TYPE void machine_kexec(struct kimage *image)
> > {
> > unsigned long page_list;
> > - unsigned long reboot_code_buffer;
> > -
> > + unsigned long control_code;
> > + unsigned long page_table_a;
> > relocate_new_kernel_t rnk;
> >
> > - /* Interrupts aren't acceptable while we reboot */
> > - local_irq_disable();
>
> Why are you getting rid of this call? Looks sane to disable interrupts
> early.

It made sense to disable interrupts early because we used to setup the
segments and overwrite the page tables from the c code. My patch moves
the segment handling and page table switching code into the assembly
routine, and one of the first things the assembly code does is:

/* zero out flags, and disable interrupts */
pushl $0
popfl

So I think we should be safe. Thanks for checking!

/ magnus

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/