diff -urNp x/drivers/ide/ide-probe.c xx/drivers/ide/ide-probe.c --- x/drivers/ide/ide-probe.c Mon Nov 18 06:38:10 2002 +++ xx/drivers/ide/ide-probe.c Mon Nov 18 06:38:50 2002 @@ -814,7 +814,10 @@ static void init_gendisk (ide_hwif_t *hw * IDE can do up to 128K per request == 256 */ *max_sect++ = ((hwif->chipset == ide_pdc4030) ? 127 : 128); - *max_ra++ = vm_max_readahead; + *max_ra = ((128*4) >> (PAGE_SHIFT - 10)) - 1; /* sequential read with 4 requests 128k large DMA */ + if (hwif->chipset == ide_pdc4030) + *max_ra = ((127*4) >> (PAGE_SHIFT - 10)) - 1; /* sequential read with 4 requests 127k large DMA */ + max_ra++; } for (unit = 0; unit < units; ++unit) diff -urNp x/mm/filemap.c xx/mm/filemap.c --- x/mm/filemap.c Mon Nov 18 06:38:10 2002 +++ xx/mm/filemap.c Mon Nov 18 06:38:50 2002 @@ -48,7 +48,7 @@ unsigned long page_cache_size; unsigned int page_hash_bits; struct page **page_hash_table; -int vm_max_readahead = 31; +int vm_max_readahead = (512 >> (PAGE_SHIFT - 10)) - 1; /* sequential read 512k large DMA */ int vm_min_readahead = 3; EXPORT_SYMBOL(vm_max_readahead); EXPORT_SYMBOL(vm_min_readahead);