lkml.org 
[lkml]   [2016]   [Sep]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] iommu/vt-d: Fix the size calculation of pasid table
    Date
    According to the vt-d spec, the size of pasid (state) entry is 8B
    which equals 3 in power of 2, the number of pasid (state) entries
    is (ecap_pss + 1) in power of 2.

    Thus the right size of pasid (state) table in power of 2 should be
    ecap_pss(iommu->ecap) plus "1+3=4" other than 7.

    Signed-off-by: Xunlei Pang <xlpang@redhat.com>
    ---
    drivers/iommu/intel-svm.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/iommu/intel-svm.c b/drivers/iommu/intel-svm.c
    index 8ebb353..cfa75c2 100644
    --- a/drivers/iommu/intel-svm.c
    +++ b/drivers/iommu/intel-svm.c
    @@ -39,7 +39,7 @@ int intel_svm_alloc_pasid_tables(struct intel_iommu *iommu)
    struct page *pages;
    int order;

    - order = ecap_pss(iommu->ecap) + 7 - PAGE_SHIFT;
    + order = ecap_pss(iommu->ecap) + 4 - PAGE_SHIFT;
    if (order < 0)
    order = 0;

    --
    1.8.3.1
    \
     
     \ /
      Last update: 2016-09-17 09:59    [W:2.068 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site