From: Andy P. <at...@us...> - 2001-02-16 00:53:43
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv20040/arch/vax/kernel Modified Files: interrupt.c setup.c Log Message: Fixes for page size and set_pte problems caused by pagelet layer Index: interrupt.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/interrupt.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- interrupt.c 2001/02/15 01:26:58 1.6 +++ interrupt.c 2001/02/16 00:54:26 1.7 @@ -53,7 +53,7 @@ t = &interrupt_stack[0]; s = SPT_BASE; /* Do we need more than a page for the int stack? */ - if (INT_STACK_SIZE < PAGE_SIZE) { + if (INT_STACK_SIZE <= PAGE_SIZE) { printk("Interrupt stack too small, must be > PAGE_SIZE\n"); machine_halt(); } @@ -62,6 +62,7 @@ /* q = (((unsigned long) &interrupt_stack[smp_processor_id()])-PAGE_OFFSET)>>PAGELET_SHIFT;*/ q = GET_HWSPTE_VIRT(&interrupt_stack[smp_processor_id()]); + /* Set first page of interrupt stack area to kernel read, thus trapping any writes to this page. This will catch attempts to expand the interrupt stack before they can do any damage. */ Index: setup.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/setup.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- setup.c 2001/02/15 01:26:58 1.4 +++ setup.c 2001/02/16 00:54:26 1.5 @@ -85,7 +85,7 @@ free_bootmem(bootmap_size, KERNEL_START_PHYS - bootmap_size); printk("calling free_bootmem(%08lx, %08lx)\n", __pa(SPT_BASE + SPT_SIZE), (max_pfn << PAGE_SHIFT) - __pa(SPT_BASE + SPT_SIZE)); free_bootmem(__pa(SPT_BASE + SPT_SIZE), (max_pfn << PAGE_SHIFT) - __pa(SPT_BASE + SPT_SIZE)); - + paging_init(); /* Set up the initial PCB. We can refer to current because head.S |