diff -urN v2.4.4-ac17/mm/memory.c wrk/mm/memory.c --- v2.4.4-ac17/mm/memory.c Thu May 24 19:45:18 2001 +++ wrk/mm/memory.c Fri May 25 15:10:16 2001 @@ -285,9 +285,9 @@ return 0; } ptep = pte_offset(pmd, address); - address &= ~PMD_MASK; - if (address + size > PMD_SIZE) - size = PMD_SIZE - address; + offset = address & ~PMD_MASK; + if (offset + size > PMD_SIZE) + size = PMD_SIZE - offset; size &= PAGE_MASK; for (offset=0; offset < size; ptep++, offset += PAGE_SIZE) { pte_t pte = *ptep;