diff -urN blk-highmem-ref/arch/i386/config.in blk-highmem/arch/i386/config.in --- blk-highmem-ref/arch/i386/config.in Thu Nov 29 05:07:33 2001 +++ blk-highmem/arch/i386/config.in Thu Nov 29 05:07:48 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-highmem-ref/drivers/block/elevator.c blk-highmem/drivers/block/elevator.c --- blk-highmem-ref/drivers/block/elevator.c Thu Nov 29 05:07:34 2001 +++ blk-highmem/drivers/block/elevator.c Thu Nov 29 05:07:48 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-highmem-ref/drivers/block/ll_rw_blk.c blk-highmem/drivers/block/ll_rw_blk.c --- blk-highmem-ref/drivers/block/ll_rw_blk.c Thu Nov 29 05:07:34 2001 +++ blk-highmem/drivers/block/ll_rw_blk.c Thu Nov 29 05:07:50 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 @@ -1186,8 +1186,8 @@ printk("block: %d slots per queue, batch=%d\n", queue_nr_requests, batch_requests); - blk_max_low_pfn = max_low_pfn; - blk_max_pfn = max_pfn; + blk_max_low_pfn = max_low_pfn - 1; + blk_max_pfn = max_pfn - 1; #ifdef CONFIG_AMIGA_Z2RAM z2_init(); diff -urN blk-highmem-ref/include/linux/blkdev.h blk-highmem/include/linux/blkdev.h --- blk-highmem-ref/include/linux/blkdev.h Thu Nov 29 05:07:34 2001 +++ blk-highmem/include/linux/blkdev.h Thu Nov 29 05:07:50 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-highmem-ref/include/linux/elevator.h blk-highmem/include/linux/elevator.h --- blk-highmem-ref/include/linux/elevator.h Thu Feb 22 03:45:11 2001 +++ blk-highmem/include/linux/elevator.h Thu Nov 29 05:07:48 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 */ \