--- 2.4.8pre8/arch/alpha/kernel/pci_iommu.c.~1~ Sat May 26 04:03:35 2001 +++ 2.4.8pre8/arch/alpha/kernel/pci_iommu.c Fri Aug 10 16:29:14 2001 @@ -354,7 +354,7 @@ Write dma_length of each leader with the combined lengths of the mergable followers. */ -static inline void +static void sg_classify(struct scatterlist *sg, struct scatterlist *end, int virt_ok) { unsigned long next_vaddr; @@ -436,10 +436,7 @@ /* Otherwise, break up the remaining virtually contiguous hunks into individual direct maps. */ - for (sg = leader; sg < end; ++sg) - if (sg->dma_address == 1 || sg->dma_address == -2) - sg->dma_address = 0; - + sg_classify(leader, end, 0); /* Retry. */ return sg_fill(leader, end, out, arena, max_dma); }