• Linus Torvalds's avatar
    Revert "iommu/amd_iommu: Use CONFIG_DMA_DIRECT_OPS=y and dma_direct_{alloc,free}()" · e16c4790
    Linus Torvalds authored
    This reverts commit b468620f.
    
    It turns out that this broke drm on AMD platforms. Quoting Gabriel C:
     "I can confirm reverting b468620f fixes
      that issue for me.
    
      The GPU is working fine with SME enabled.
    
      Now with working GPU :) I can also confirm performance is back to
      normal without doing any other workarounds"
    
    Christan König analyzed it partially:
     "As far as I analyzed it we now get an -ENOMEM from dma_alloc_attrs()
      in drivers/gpu/drm/ttm/ttm_page_alloc_dma.c when IOMMU is enabled"
    
    and Christoph Hellwig responded:
     "I think the prime issue is that dma_direct_alloc respects the dma
      mask. Which we don't need if actually using the iommu. This would be
      mostly harmless exept for the the SEV bit high in the address that
      makes the checks fail.
    
      For now I'd say revert this commit for 4.17/4.18-rc and I'll look into
      addressing these issues properly"
    Reported-and-bisected-by: default avatarGabriel C <nix.or.die@gmail.com>
    Acked-by: default avatarChristoph Hellwig <hch@lst.de>
    Cc: Christian König <christian.koenig@amd.com>
    Cc: Michel Dänzer <michel.daenzer@amd.com>
    Cc: Joerg Roedel <jroedel@suse.de>
    Cc: Tom Lendacky <thomas.lendacky@amd.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: stable@kernel.org		# v4.17
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    e16c4790
Kconfig 11.2 KB