Messages in this thread | | | Date | Thu, 9 May 2002 08:23:29 -0700 | From | Greg KH <> | Subject | Re: Problems with 2.5.14 PCI reorg and non-PCI architectures |
| |
On Thu, May 09, 2002 at 09:00:28AM -0400, James Bottomley wrote: > greg@kroah.com said: > > arch/i386/pci/dma.c now only contains pci_alloc_consistent() and > > pci_free_consistent(). What kind of configuration are you using that > > works without CONFIG_PCI and yet calls those functions? Is it a > > ISA_PNP type configuration? Do you have a .config that this fails on? > > The problem is that this is not necessarily PCI related on other platforms. > > My cross platform SCSI driver, 53c700.c, uses pci_alloc_consistent because it > has to work on parisc archs as well (which do have consistent memory even > though a few of them don't have PCI busses). It was failing a test compile. > I can manipulate the #ifdefs so that it doesn't use the consistent allocation > functions on x86, but I think, in principle, cross platform drivers should be > able to use these functions.
But parisc has it's own implementation of pci_alloc_consistent(), so you're ok on that platform. And it looks like only 2 scsi drivers use the 53c700.c code, lasi700.c and NCR_D700.c. The NCR driver looks to need pci, and the lasi700 driver doesn't look like it will even compile on i386.
No wait, the NCR driver needs Microchannel, is that true?
I would like to push back and ask why you are calling a pci_* function from a driver that does not need pci. Yes, I know it's a nice, generic function, but that hasn't stopped people from rewriting that same function a number of times in different forms in different places in the tree :)
In a perfect world, we should probably create a function like: void *alloc_consistent (int flags, size_t size, dma_addr_t *dma_handle); to solve everyone's needs, but I'm not volunteering to do that :)
I'll go move the file and send the changeset to Linus.
thanks,
greg k-h - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |