diff -urN blk-18b/arch/i386/config.in blk-18b-1/arch/i386/config.in --- blk-18b/arch/i386/config.in Thu Nov 22 19:32:44 2001 +++ blk-18b-1/arch/i386/config.in Thu Nov 22 19:32:58 2001 @@ -167,10 +167,8 @@ define_bool CONFIG_X86_PAE y fi -if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then - if [ "$CONFIG_NOHIGHMEM" != "y"]; then - bool 'HIGHMEM I/O support (EXPERIMENTAL)' CONFIG_HIGHIO - fi +if [ "$CONFIG_HIGHMEM" = "y" ]; then + bool 'HIGHMEM I/O support (EXPERIMENTAL)' CONFIG_HIGHIO fi bool 'Math emulation' CONFIG_MATH_EMULATION diff -urN blk-18b/drivers/block/elevator.c blk-18b-1/drivers/block/elevator.c --- blk-18b/drivers/block/elevator.c Thu Nov 22 19:32:44 2001 +++ blk-18b-1/drivers/block/elevator.c Thu Nov 22 19:32:58 2001 @@ -110,6 +110,7 @@ break; } else if (__rq->sector - count == bh->b_rsector) { ret = ELEVATOR_FRONT_MERGE; + __rq->elevator_sequence -= count; *req = __rq; break; } diff -urN blk-18b/drivers/block/ll_rw_blk.c blk-18b-1/drivers/block/ll_rw_blk.c --- blk-18b/drivers/block/ll_rw_blk.c Thu Nov 22 19:32:44 2001 +++ blk-18b-1/drivers/block/ll_rw_blk.c Thu Nov 22 19:32:58 2001 @@ -1176,7 +1176,7 @@ */ queue_nr_requests = 64; if (total_ram > MB(32)) - queue_nr_requests = 256; + queue_nr_requests = 128; /* * Batch frees according to queue length diff -urN blk-18b/include/linux/blkdev.h blk-18b-1/include/linux/blkdev.h --- blk-18b/include/linux/blkdev.h Thu Nov 22 19:32:44 2001 +++ blk-18b-1/include/linux/blkdev.h Thu Nov 22 19:33:01 2001 @@ -142,7 +142,7 @@ { struct page *page = bh->b_page; - if (page - mem_map <= q->bounce_pfn) + if ((page - page->zone->zone_mem_map) + (page->zone->zone_start_paddr >> PAGE_SHIFT) < q->bounce_pfn) return bh; return create_bounce(rw, bh); diff -urN blk-18b/include/linux/elevator.h blk-18b-1/include/linux/elevator.h --- blk-18b/include/linux/elevator.h Thu Feb 22 03:45:11 2001 +++ blk-18b-1/include/linux/elevator.h Thu Nov 22 19:32:58 2001 @@ -93,8 +93,8 @@ #define ELEVATOR_LINUS \ ((elevator_t) { \ - 8192, /* read passovers */ \ - 16384, /* write passovers */ \ + 256, /* read passovers */ \ + 512, /* write passovers */ \ \ elevator_linus_merge, /* elevator_merge_fn */ \ elevator_linus_merge_cleanup, /* elevator_merge_cleanup_fn */ \