lkml.org 
[lkml]   [2001]   [May]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: alpha iommu fixes
    On Fri, May 18, 2001 at 09:46:17PM +0400, Ivan Kokshaysky wrote:
    > -void
    > -cia_pci_tbi(struct pci_controller *hose, dma_addr_t start, dma_addr_t end)
    > -{
    > - wmb();
    > - *(vip)CIA_IOC_PCI_TBIA = 3; /* Flush all locked and unlocked. */
    > - mb();
    > - *(vip)CIA_IOC_PCI_TBIA;
    > -}

    I'd rather keep this around. It should be possible to use on CIA2.

    > +/* Even if the tbia works, we cannot use it. It effectively locks the
    > + * chip (as well as direct write to the tag registers) if there is a
    > + * SG DMA operation in progress. This is true at least for PYXIS rev. 1.

    Uggg. How did you discover this?

    > +/* __save_and_cli(flags); Don't need this -- we're called from
    > + pci_unmap_xx() or iommu_arena_alloc()
    > + with IPL_MAX after spin_lock_irqsave() */

    Just delete it, don't comment it out. You might mention in the
    function header comment that we're called with interrupts disabled.

    > *(vip)CIA_IOC_CIA_CTRL = ctrl;
    > mb();
    > - *(vip)CIA_IOC_CIA_CTRL;
    > - mb();

    I'm pretty sure you don't want to do this. You're risking a
    subsequent i/o being posted through the PCI bridge before this
    takes effect. An "mb" is only effective inside the CPU.



    r~
    -
    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 12:53    [W:0.023 / U:1.732 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site