diff -urN linux-2.4.29-wt2-2xx-lowlat/drivers/char/mem.c linux-2.4.29-wt2-2xx-lowlat-fix/drivers/char/mem.c --- linux-2.4.29-wt2-2xx-lowlat/drivers/char/mem.c Sun Mar 6 10:34:53 2005 +++ linux-2.4.29-wt2-2xx-lowlat-fix/drivers/char/mem.c Sun Mar 6 10:36:50 2005 @@ -401,7 +401,7 @@ if (count > size) count = size; - zap_page_range(mm, addr, count); + zap_page_range(mm, addr, count, 0); zeromap_page_range(addr, count, vma->vm_page_prot); #if defined(CONFIG_PAX_SEGMEXEC) || defined(CONFIG_PAX_RANDEXEC) @@ -413,7 +413,7 @@ vma_m = find_vma(mm, addr_m); if (vma_m && vma_m->vm_start == addr_m && (vma_m->vm_flags & VM_MIRROR)) { addr_m = addr + vma->vm_mirror; - zap_page_range(mm, addr_m, count); + zap_page_range(mm, addr_m, count, 0); } else printk(KERN_ERR "PAX: VMMIRROR: read_zero bug, %08lx, %08lx\n", addr, vma->vm_start); diff -urN linux-2.4.29-wt2-2xx-lowlat/kernel/sysctl.c linux-2.4.29-wt2-2xx-lowlat-fix/kernel/sysctl.c --- linux-2.4.29-wt2-2xx-lowlat/kernel/sysctl.c Sun Mar 6 10:34:53 2005 +++ linux-2.4.29-wt2-2xx-lowlat-fix/kernel/sysctl.c Sun Mar 6 10:36:21 2005 @@ -294,6 +294,11 @@ {KERN_PAX,"pax",NULL,0,0500,pax_table}, #endif +#ifdef CONFIG_LOLAT_SYSCTL + {KERN_LOWLATENCY, "lowlatency", &enable_lowlatency, sizeof (int), + 0644, NULL, &proc_dointvec}, +#endif + {0} }; diff -urN linux-2.4.29-wt2-2xx-lowlat/mm/mmap.c linux-2.4.29-wt2-2xx-lowlat-fix/mm/mmap.c --- linux-2.4.29-wt2-2xx-lowlat/mm/mmap.c Sun Mar 6 10:34:53 2005 +++ linux-2.4.29-wt2-2xx-lowlat-fix/mm/mmap.c Sun Mar 6 10:36:21 2005 @@ -1068,7 +1068,7 @@ atomic_dec(&file->f_dentry->d_inode->i_writecount); } remove_shared_vm_struct(mpnt); - zap_page_range(mm, st, size); + zap_page_range(mm, st, size, ZPR_COND_RESCHED); /* sys_munmap() */ /* * Fix the mapping, and free the old area if it wasn't reused.