On Mon, Jul 18, 2022 at 6:37 AM Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: > > On Sun, Jul 17, 2022 at 12:34:53PM +0900, Stafford Horne wrote: > > Two things to note are: > > > > - isa_dma_bridge_buggy, traditionally this is defined in asm/dma.h but > > these architectures avoid creating that file and add the definition > > to asm/pci.h. > > This doesn't have anyting to do with PCI support. I think adding a > separate header just for this that always stubs it out unless a config > option is set (which x86 then selects) is the besy idea here. I also > think the isa_dma_bridge_buggy needs to move out of the PCI code as > well. Most architectures have it in asm/dma.h, which is probably the right place (if we end up keeping it), since this is for the ISA DMA API. I would copy this declaration from x86 #ifdef CONFIG_PCI extern int isa_dma_bridge_buggy; #else #define isa_dma_bridge_buggy (0) #endif to asm-generic/dma.h and remove it from arch/sh to avoid the one duplicate definition. The architectures that have the declaration in asm/pci.h (arm64, csky, riscv) already get the asm-generic version of asm/dma.h. As mentioned before, it would be even better to just remove it entirely from everything except x86, and enclose the four references in an explicit "#ifdef X86_32". The variable declaration only exists because drivers/pci/quirks.c is compiled on all architecture, but the individual quirk is only active based on the PCI device ID of certain early PCI-ISA bridges. Arnd