[PATCH 2.4.23-pre8] Remove broken prefetching in free_one_pgd()

From: Luck, Tony
Date: Fri Oct 24 2003 - 15:57:44 EST


This patch was accepted into 2.5.55, attributed to "davej@uk".

This code will prefetch from beyond the end of the page table
being cleared ... which is clearly a bad thing if the page table
in question is allocated from the last page of memory (or precedes
a hole on a discontig mem system).

-Tony Luck

diff -ru linux-2.4.23-pre8/mm/memory.c fix/mm/memory.c
--- linux-2.4.23-pre8/mm/memory.c Fri Oct 24 13:37:23 2003
+++ fix/mm/memory.c Fri Oct 24 13:40:47 2003
@@ -120,10 +120,8 @@
}
pmd = pmd_offset(dir, 0);
pgd_clear(dir);
- for (j = 0; j < PTRS_PER_PMD ; j++) {
- prefetchw(pmd+j+(PREFETCH_STRIDE/16));
+ for (j = 0; j < PTRS_PER_PMD ; j++)
free_one_pmd(pmd+j);
- }
pmd_free(pmd);
}

-
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/