

---

 memhotplug-dave/include/linux/nonlinear.h |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletion(-)

diff -puN include/linux/nonlinear.h~C4-nonlinear-fix_pfn_valid include/linux/nonlinear.h
--- memhotplug/include/linux/nonlinear.h~C4-nonlinear-fix_pfn_valid	2005-01-04 13:49:33.000000000 -0800
+++ memhotplug-dave/include/linux/nonlinear.h	2005-01-04 13:49:33.000000000 -0800
@@ -104,7 +104,10 @@ extern unsigned long page_to_pfn(struct 
 static inline int
 pfn_valid(unsigned long pfn)
 {
-	if (phys_section[pfn_to_section(pfn)] == INVALID_PHYS_SECTION)
+	unsigned int psection = pfn_to_section(pfn);
+
+	if (psection >= NR_PHYS_SECTIONS ||
+	    phys_section[psection] == INVALID_PHYS_SECTION)
 		return 0;
 	else
 		return 1;
_
