Re: [PATCH] alpha: compile fixes

From: FUJITA Tomonori
Date: Thu Jan 29 2009 - 04:18:48 EST


On Thu, 29 Jan 2009 10:41:01 +0300
Ivan Kokshaysky <ink@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Wed, Jan 28, 2009 at 11:53:45AM +0900, FUJITA Tomonori wrote:
> > A patch to change Alpha to handle two dma mapping implementations
> > (pci-noop and the IOMMU) in the standard way (like X86, POWER, IA64,
> > etc do) is acceptable?
> >
> > pci-noop has something like struct dma_map_ops nommu_dma_ops (similar
> > to pci-nommu.c in arch/x86/kernel/pci-nommu.c) and pci_iommu.c has
> > struct dma_map_ops iommu_dma_ops. Then at startup, the kernel properly
> > sets dma_ops pointer to nommu_dma_ops or iommu_dma_ops.
> >
> > Then we can handle the dma mapping operations in the consistent way,
> > e.g., dma_map_sg can be just `return ops->map_sg(dev, sg, nents,
> > dir)`.
>
> I don't think that we need this. In GENERIC kernel, alpha dma-mapping
> functions work universally, Jensen included. The only reason pci-noop.c
> is there is an optimization for kernel built specifically for Jensen,
> which is the only non-PCI alpha - we simply don't compile useless stuff in.

That's exactly what IA64 does. The generic kernel works for all IA64
architectures. If you build an architecture specific IA64 kernel (such
as IA64_DIG), IA64 uses ifdef and macro magics for dma mapping
operations.

The ifdef and macro magics makes the code unreadable. I rewrote IA64
dma operation code to use the standard way to handle multiple dma
mapping operation sets so that non everyone can understand the code
easily.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/