diff -urN 2.4.3aa/arch/i386/config.in 2.4.3aa-highmemdebug/arch/i386/config.in --- 2.4.3aa/arch/i386/config.in Sun Apr 1 11:59:37 2001 +++ 2.4.3aa-highmemdebug/arch/i386/config.in Sun Apr 1 13:00:01 2001 @@ -369,4 +369,7 @@ #bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ +if [ "$CONFIG_HIGHMEM" = "y" ]; then + bool 'Debug HIGHMEM on lowmem machines' CONFIG_HIGHMEM_DEBUG +fi endmenu diff -urN 2.4.3aa/arch/i386/kernel/setup.c 2.4.3aa-highmemdebug/arch/i386/kernel/setup.c --- 2.4.3aa/arch/i386/kernel/setup.c Sat Mar 31 15:17:07 2001 +++ 2.4.3aa-highmemdebug/arch/i386/kernel/setup.c Sun Apr 1 13:00:01 2001 @@ -649,7 +649,19 @@ */ #define VMALLOC_RESERVE (unsigned long)(128 << 20) #define MAXMEM (unsigned long)(-PAGE_OFFSET-VMALLOC_RESERVE) +#ifdef CONFIG_HIGHMEM_DEBUG +#define MAXMEM_PFN \ +({ \ + int __max_pfn; \ + if (max_pfn > PFN_DOWN(MAXMEM)) \ + __max_pfn = PFN_DOWN(MAXMEM); \ + else \ + __max_pfn = max_pfn / 2; \ + __max_pfn; \ +}) +#else #define MAXMEM_PFN PFN_DOWN(MAXMEM) +#endif #define MAX_NONPAE_PFN (1 << 20) /*