summaryrefslogtreecommitdiff
path: root/arch/parisc
diff options
context:
space:
mode:
authorJacob Pan <jacob.jun.pan@linux.intel.com>2016-12-06 21:14:23 +0300
committerJoerg Roedel <jroedel@suse.de>2017-01-04 17:18:57 +0300
commit65ca7f5f7d1cdde6c25172fe6107cd16902f826f (patch)
tree6fff0dccb8fcf28797336c23e973f7dfbd8a20a4 /arch/parisc
parentaec0e86172a79eb5e44aff1055bb953fe4d47c59 (diff)
downloadlinux-65ca7f5f7d1cdde6c25172fe6107cd16902f826f.tar.xz
iommu/vt-d: Fix pasid table size encoding
Different encodings are used to represent supported PASID bits and number of PASID table entries. The current code assigns ecap_pss directly to extended context table entry PTS which is wrong and could result in writing non-zero bits to the reserved fields. IOMMU fault reason 11 will be reported when reserved bits are nonzero. This patch converts ecap_pss to extend context entry pts encoding based on VT-d spec. Chapter 9.4 as follows: - number of PASID bits = ecap_pss + 1 - number of PASID table entries = 2^(pts + 5) Software assigned limit of pasid_max value is also respected to match the allocation limitation of PASID table. cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> cc: Ashok Raj <ashok.raj@intel.com> Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com> Tested-by: Mika Kuoppala <mika.kuoppala@intel.com> Fixes: 2f26e0a9c9860 ('iommu/vt-d: Add basic SVM PASID support') Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'arch/parisc')
0 files changed, 0 insertions, 0 deletions