diff -Naur -X exclude-files ac_clean/arch/um/kernel/tlb.c ac/arch/um/kernel/tlb.c --- ac_clean/arch/um/kernel/tlb.c Sun May 27 19:47:24 2001 +++ ac/arch/um/kernel/tlb.c Sun May 27 20:24:51 2001 @@ -36,14 +36,19 @@ end_addr = end_vm; } for(addr=start_addr;addrvm_start <= addr)){ - addr = vma->vm_end; + if(force){ + extern unsigned long _stext; + struct vm_area_struct *vma; + if(addr == (unsigned long) ROUND_DOWN(&_stext)){ + addr = (unsigned long) last_brk; continue; } - } + vma = find_vma(&kernel_maps, addr); + if(vma && (vma->vm_start <= addr)){ + addr = vma->vm_end; + continue; + } + } if((addr >= start_vm) && (addr < end_vm)) mm = &init_mm; else mm = proc_mm;