Index: linux-2.6.19-rc1-mm1/mm/memory.c =================================================================== --- linux-2.6.19-rc1-mm1.orig/mm/memory.c 2006-10-11 01:06:35.000000000 -0500 +++ linux-2.6.19-rc1-mm1/mm/memory.c 2006-10-11 01:16:06.318118042 -0500 @@ -52,7 +52,7 @@ #include #include -#include +#include #include #include #include @@ -73,14 +73,13 @@ unsigned long mem_map_min = MEM_MAP_MIN; unsigned long mem_map_max = MEM_MAP_MAX; -int __valid_address_range(void *x, unsigned int len) +int __valid_address_range(void *x, unsigned long len) { - if (probe_kernel_address(x) == -EFAULT) - return 0; - return kaddr_to_pfn(x) == kaddr_to_pfn(x + len -1) || - probe_kernel_addres(x + len - 1) != -EFAULT; + u8 yy[len]; + + return probe_kernel_address(x, yy) != -EFAULT; } -EXPORT_SYMBOL(__valid_address); +EXPORT_SYMBOL(__valid_address_range); #endif