--- linux-2.5.72-orig/include/asm-ia64/io.h 2003-06-20 14:40:35.000000000 -0600 +++ linux-2.5.72/include/asm-ia64/io.h 2003-06-27 09:12:44.000000000 -0600 @@ -424,6 +424,6 @@ * which is precisely what we want. */ extern unsigned long ia64_max_iommu_merge_mask; -#define BIO_VMERGE_BOUNDARY (0UL)//(ia64_max_iommu_merge_mask + 1) +#define BIO_VMERGE_BOUNDARY (ia64_max_iommu_merge_mask + 1) #endif /* _ASM_IA64_IO_H */ --- linux-2.5.72-orig/arch/ia64/hp/common/sba_iommu.c 2003-06-20 14:40:31.000000000 -0600 +++ linux-2.5.72/arch/ia64/hp/common/sba_iommu.c 2003-06-27 09:09:50.000000000 -0600 @@ -47,8 +47,11 @@ /* ** This option allows cards capable of 64bit DMA to bypass the IOMMU. If ** not defined, all DMA will be 32bit and go through the TLB. +** The bio merge code currently expects that if we tweak that vmerge +** boundary that we will alway coalesce blocks on that boundary. Enabling +** this optimization is therefore incompatible with tuning the boundary. */ -#define ALLOW_IOV_BYPASS +#undef ALLOW_IOV_BYPASS /* ** If a device prefetches beyond the end of a valid pdir entry, it will cause