lkml.org 
[lkml]   [2008]   [Nov]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRE: [PATCH] IA64: fix VT-d dma_mapping_error

>+int intel_dma_mapping_error(struct device *hwdev, dma_addr_t dma_addr)
>+{
>+ return !dma_addr;
>+}

The implementation of inte_dma_mapping_error is incomplete.

Dma_addr is valid only when it belongs to hwdev's domain. This is all about VT-d isolation fundamental.

+int intel_dma_mapping_error(struct device *hwdev, dma_addr_t dma_addr)
+{
+ struct pci_dev *pdev = to_pci_dev(hwdev);
+ struct dmar_domain *domain;
+ struct iova *iova;
+
+ domain = find_domain(pdev);
+
+ iova = find_iova(&domain->iovad, IOVA_PFN(dma_addr));
+ if (!iova)
+ return -EINVAL;
+ return 0;
+}


\
 
 \ /
  Last update: 2008-11-22 17:21    [W:0.045 / U:0.308 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site