Re: [Bug 487894] New: sky2 0000:06:00.0: DMA-API: device driverfrees DMA memory with different size

From: Stephen Hemminger
Date: Thu Apr 02 2009 - 11:08:37 EST


On Thu, 2 Apr 2009 16:31:42 +0200
Joerg Roedel <joerg.roedel@xxxxxxx> wrote:

> On Thu, Apr 02, 2009 at 11:03:58PM +0900, FUJITA Tomonori wrote:
> > On Thu, 2 Apr 2009 13:18:39 +0200
> > Joerg Roedel <joerg.roedel@xxxxxxx> wrote:
> >
> > > On Thu, Apr 02, 2009 at 08:06:26PM +0900, FUJITA Tomonori wrote:
> > > > On Thu, 2 Apr 2009 12:54:15 +0200
> > > > Joerg Roedel <joerg.roedel@xxxxxxx> wrote:
> > > >
> > > > > On Wed, Apr 01, 2009 at 11:02:45AM -0700, Stephen Hemminger wrote:
> > > > > >
> > > > > > The sky2 driver uses pci_unmap_len and pci_unmap_len_set which on 32 bit
> > > > > > platforms are meaningless so they are stubbed out.
> > > > > > Basically, DMA-API checks are wrong/bogus to enforce on 32bit x86 as is.
> > > > >
> > > > > As far as I know the VT-d driver is available on 32 bit x86 too. So this should
> > > > > not always be a nop.
> > > >
> > > > VT-d is available on only x86_64.
> > >
> > > At least there was a patch to enable it on 32 bit too. See
> > >
> > > https://lists.linux-foundation.org/pipermail/iommu/2009-February/001080.html
> > >
> > > It seems not to be upstream yet.
> >
> > It's not in upstream.
> >
> >
> > Anyway, about the original problem, I think that the best fix is not
> > to stub out the dma API; using the dma API properly is always a good
> > thing.
>
> True.
>
> For the real fix I prepared this fix. We still should find a better #ifdef
> condition but that should not be a seperate patch. Does that look ok to
> everyone? If yes, I send it to Ingo.
>
> commit e8cdd3b8d2fc3ec2a1dd337cba94feb7a7442751
> Author: Joerg Roedel <joerg.roedel@xxxxxxx>
> Date: Thu Apr 2 15:55:55 2009 +0200
>
> x86/dma: unify definition of pci_unmap_addr* and pci_unmap_len macros
>
> Impact: unification of pci-dma macros and pci_32h removal
>
> This patch unifies the definition of the pci_unmap_addr*, pci_unmap_len*
> and DECLARE_PCI_UNMAP* macros. This makes sense because the pci_unmap
> functions are no longer no-ops anymore when the kernel runs with
> CONFIG_DMA_API_DEBUG. This also simplifies the port of x86_64 iommu
> drivers to 32 bit x86 and let us get rid of pci_32.h.
>
> Signed-off-by: Joerg Roedel <joerg.roedel@xxxxxxx>

Would also like some more comments to explain to the kernel neophytes why
the 32 bit version is no-op. Do other arch have same issue?


Acked-by: Stephen Hemminger <shemminger@xxxxxxxxxx>
--
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/