[lkml]   [2007]   [Aug]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 2.6.22.y] ieee1394: revert "sbp2: enforce 32bit DMA mapping"
    On Sun, 2007-08-05 at 09:54 +0200, Stefan Richter wrote:
    > Benjamin Herrenschmidt wrote:
    > >>> If setting 32-bit DMA mask fails on ppc64, that sounds like a problem
    > >>> with the DMA implementation on that architecture. There are enough cards
    > >>> out there that only support 32-bit DMA that this really needs to work..
    > >> Yes, could the PPC folks please have a look at it? Thanks.
    > >
    > > Smells like we may have a bug there. No worries though, all current PPC
    > > machines have an iommu that will not give out addresses above 32 bits
    > > anyway, but I'll double check what's up.
    > >
    > > Do you see something in dmesg when that happens ?
    > There was nothing in Olaf's report, except for trouble in sbp2 _after_
    > the failure. (I don't have a PMac.)

    Hrm, allright, that's a bit weird. Olaf machine has only 256M of RAM
    according to that dmesg, and thus, the kernel isn't enabling the iommu,
    we use the "trivial" version of the dma mapping ops.

    I suspect we have a bug in our imlementation of set_dma_mask though, in
    that it does the "dma_supported" check using the previous mask and not
    the one passed in :-)

    The implementation of dma_supported that we hit in the no-iommu case
    looks like that:

    static int dma_direct_dma_supported(struct device *dev, u64 mask)
    /* Could be improved to check for memory though it better be
    * done via some global so platforms can set the limit in case
    * they have limited DMA windows
    return mask >= DMA_32BIT_MASK;

    So that should have worked. (The comment is a bit obscure, just ignore
    it for now).

    However, as I said above, our dma_set_mask() wrapper uses the wrong
    value (the old, not the new mask). But that still should have worked
    since the default dma mask for a PCI device is 0xffffffff....

    Thus at this stable, I'm a bit at a loss of why it didn't work, I'll
    have to test on one of those machines with some printk's in when I
    manage to get to work (dunno when, kid's sick so I may have to stay home

    BTW. Any reason why you don't set the DMA mask in the ohci driver rather
    than the sbp2 one ?


    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2007-08-06 00:07    [W:0.024 / U:20.252 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site