Jeff Garzik wrote: > Tejun Heo wrote: >> Jeff, there are further problems with doing pci_go_64() only on devices >> which support 64bit. pci_set_dma_mask() is the only place where the PCI >> code can test whether DMA is usable or not, so if we don't configure DMA >> mask on 32bit controllers, there's no way to tell whether DMA is allowed >> on the controller/bus or not. We end up blindly enabling bus mastering >> without consulting the PCI bus. >> >> I think it's just cleaner to do pci_configure_dma_masks() on all cases >> with proper DMA mask. > > > There is always a cleaner solution :) > > My implementation is based on current practice for all 64-bit drivers. > > If you wish to change current practice, that is another matter... The thing is that in the current implementation, we do the following. 1. For 32bit devices, we do set_dma/set_persistent to set 32bit masks manually. 2. For 64bit devices, we do set_dma/set_persistent to set 64bit masks but falls back to 32bit. This is sometimes done manually sometimes using a helper (pci_go_64). This patch tries to do #1 and #2 in the same way and the end result doesn't change - we're just using the same helper function instead of doing things directly for both 32bit and 64bit cases. Are you suggesting to just generalize pci_go_64 and leave 32bit cases as they are? Thanks. -- tejun - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html