• F
    revert "x86: make GART to respect device's dma_mask about virtual mappings" · ecef533e
    FUJITA Tomonori 提交于
    This reverts:
    
    commit bee44f29
    Author: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
    Date:   Fri Sep 12 19:42:35 2008 +0900
    
        x86: make GART to respect device's dma_mask about virtual mappings
    
    I wrote the above commit to fix a GART alloc_coherent regression, that
    can't handle a device having dma_masks > 24bit < 32bits, introduced by
    the alloc_coherent rewrite:
    
      http://lkml.org/lkml/2008/8/12/200
    
    After the alloc_coherent rewrite, GART alloc_coherent tried to
    allocate pages with GFP_DMA32. If GART got an address that a device
    can't access to, GART mapped the address to a virtual I/O address. But
    GART mapping mechanism didn't take account of dma mask, so GART could
    use a virtual I/O address that the device can't access to again.
    
    Alan pointed out:
    
    " This is indeed a specific problem found with things like older
      AACRAID where control blocks must be below 31bits and the GART
      is above 0x80000000. "
    
    The above commit modified GART mapping mechanism to take care of dma
    mask. But Andi pointed out, "The GART is somewhere in the 4GB range so
    you cannot use it to map anything < 4GB. Also GART is pretty small."
    
    http://lkml.org/lkml/2008/9/12/43
    
    That means it's possible that GART doesn't have virtual I/O address
    space that a device can access to. The above commit (to modify GART
    mapping mechanism to take care of dma mask) can't fix the regression
    reliably so let's avoid making GART more complicated.
    
    We need a solution that always works for dma_masks > 24bit <
    32bits. That's how GART worked before the alloc_coherent rewrite.
    Signed-off-by: NFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
    Acked-by: NJoerg Roedel <joerg.roedel@amd.com>
    Acked-by: NAlan Cox <alan@redhat.com>
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    ecef533e
pci-gart_64.c 22.7 KB