lkml.org 
[lkml]   [2004]   [Mar]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] ibmvscsi driver - sixth version
From
Date
On 31 Mar 2004 18:39:57 -0500, James Bottomley 
<James.Bottomley@SteelEye.com> wrote:
>> > 14) why are you faking a PCI bus? The following is very, very wrong:
>> >
>> > +static struct pci_dev iseries_vscsi_dev = {
>> > + .dev.bus = &pci_bus_type,
>> > + .dev.bus_id = "vscsi",
>> > + .dev.release = noop_release
>> >
>> > Did I mention "very" wrong? :)
>> Because for iseries it is implemented in the pci code. While it may
>> look wrong, it is actually correct. Check out
>> arch/ppc64/kernel/iSeries_iommu.c and arch/ppc64/kernel/dma.c.
>> This device has to have dev->bus == &pci_bus_type otherwise the
>> dma_mapping_foo functions won't work correctly.
>
> Erm, something is very wrong in the iSeries code then. This
> iseries_vio_device is a struct device. As such, it should contain all
> the information it needs for the DMA API to act on it without performing
> silly pci device tricks.
>
> This looks like it's done because the iseries should be converted to the
> generic device infrastructure, but in fact it's not. Since the generic
> API has been around for over a year and was designed to solve precisely
> these very problems it needs fixing rather than trying to work around it
> in a driver.
There will always be 1 (no more, no less) of these struct devices in the
system, so I'll move the definition of this into iSeries_iommu and then
just reference it from the driver. I think that should abstract things
sufficiently.

Dave B
-
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/

\
 
 \ /
  Last update: 2005-03-22 14:02    [W:0.635 / U:0.068 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site