* [PATCH 1/1] iommu/amd: Fix PASID format in INVALIDATE_IOTLB_PAGES command
@ 2014-02-26 21:49 suravee.suthikulpanit
[not found] ` <1393451371-17894-1-git-send-email-suravee.suthikulpanit-5C7GfCeVMHo@public.gmane.org>
0 siblings, 1 reply; 4+ messages in thread
From: suravee.suthikulpanit @ 2014-02-26 21:49 UTC (permalink / raw)
To: iommu, joro; +Cc: linux-kernel, Jay Cornwall
From: Jay Cornwall <jay.cornwall@amd.com>
This patch corrects the PASID format in the INVALIDATE_IOTLB_PAGES
command, which was caused by incorrect information in
the AMD IOMMU Architectural Specification v2.01 document.
Incorrect format:
cmd->data[0][16:23] = PASID[7:0]
cmd->data[1][16:27] = PASID[19:8]
Correct format:
cmd->data[0][16:23] = PASID[15:8]
cmd->data[1][16:23] = PASID[7:0]
However, this does not affect the IOMMUv2 hardware implementation,
and has been corrected since version 2.02 of the specification
(available through AMD NDA).
Signed-off-by: Jay Cornwall <jay.cornwall@amd.com>
Reviewed-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
---
drivers/iommu/amd_iommu.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
index faf0da4..1dd9f81 100644
--- a/drivers/iommu/amd_iommu.c
+++ b/drivers/iommu/amd_iommu.c
@@ -982,10 +982,10 @@ static void build_inv_iotlb_pasid(struct iommu_cmd *cmd, u16 devid, int pasid,
address &= ~(0xfffULL);
cmd->data[0] = devid;
- cmd->data[0] |= (pasid & 0xff) << 16;
+ cmd->data[0] |= ((pasid >> 8) & 0xff) << 16;
cmd->data[0] |= (qdep & 0xff) << 24;
cmd->data[1] = devid;
- cmd->data[1] |= ((pasid >> 8) & 0xfff) << 16;
+ cmd->data[1] |= (pasid & 0xff) << 16;
cmd->data[2] = lower_32_bits(address);
cmd->data[2] |= CMD_INV_IOMMU_PAGES_GN_MASK;
cmd->data[3] = upper_32_bits(address);
--
1.8.1.2
^ permalink raw reply related [flat|nested] 4+ messages in thread[parent not found: <1393451371-17894-1-git-send-email-suravee.suthikulpanit-5C7GfCeVMHo@public.gmane.org>]
* Re: [PATCH 1/1] iommu/amd: Fix PASID format in INVALIDATE_IOTLB_PAGES command [not found] ` <1393451371-17894-1-git-send-email-suravee.suthikulpanit-5C7GfCeVMHo@public.gmane.org> @ 2014-03-04 14:12 ` Joerg Roedel [not found] ` <20140304141251.GB2799-zLv9SwRftAIdnm+yROfE0A@public.gmane.org> 0 siblings, 1 reply; 4+ messages in thread From: Joerg Roedel @ 2014-03-04 14:12 UTC (permalink / raw) To: suravee.suthikulpanit-5C7GfCeVMHo Cc: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, Jay Cornwall, linux-kernel-u79uwXL29TY76Z2rM5mHXA On Wed, Feb 26, 2014 at 03:49:31PM -0600, suravee.suthikulpanit-5C7GfCeVMHo@public.gmane.org wrote: > From: Jay Cornwall <jay.cornwall-5C7GfCeVMHo@public.gmane.org> > > This patch corrects the PASID format in the INVALIDATE_IOTLB_PAGES > command, which was caused by incorrect information in > the AMD IOMMU Architectural Specification v2.01 document. > > Incorrect format: > cmd->data[0][16:23] = PASID[7:0] > cmd->data[1][16:27] = PASID[19:8] > > Correct format: > cmd->data[0][16:23] = PASID[15:8] > cmd->data[1][16:23] = PASID[7:0] > > However, this does not affect the IOMMUv2 hardware implementation, > and has been corrected since version 2.02 of the specification > (available through AMD NDA). > > Signed-off-by: Jay Cornwall <jay.cornwall-5C7GfCeVMHo@public.gmane.org> > Reviewed-by: Suravee Suthikulpanit <suravee.suthikulpanit-5C7GfCeVMHo@public.gmane.org> Applied, thanks. Does this mean that PASIDs are only 16 bits wide now from the former 20 bits? ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <20140304141251.GB2799-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>]
* Re: [PATCH 1/1] iommu/amd: Fix PASID format in INVALIDATE_IOTLB_PAGES command [not found] ` <20140304141251.GB2799-zLv9SwRftAIdnm+yROfE0A@public.gmane.org> @ 2014-03-04 16:53 ` Suravee Suthikulpanit [not found] ` <5316051E.2030004-5C7GfCeVMHo@public.gmane.org> 0 siblings, 1 reply; 4+ messages in thread From: Suravee Suthikulpanit @ 2014-03-04 16:53 UTC (permalink / raw) To: Joerg Roedel Cc: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, Jay Cornwall, Linux Kernel Mailing List, Naru, Kim On 3/4/2014 8:12 AM, Joerg Roedel wrote: > On Wed, Feb 26, 2014 at 03:49:31PM -0600, suravee.suthikulpanit-5C7GfCeVMHo@public.gmane.org wrote: >> From: Jay Cornwall <jay.cornwall-5C7GfCeVMHo@public.gmane.org> >> >> This patch corrects the PASID format in the INVALIDATE_IOTLB_PAGES >> command, which was caused by incorrect information in >> the AMD IOMMU Architectural Specification v2.01 document. >> >> Incorrect format: >> cmd->data[0][16:23] = PASID[7:0] >> cmd->data[1][16:27] = PASID[19:8] >> >> Correct format: >> cmd->data[0][16:23] = PASID[15:8] >> cmd->data[1][16:23] = PASID[7:0] >> >> However, this does not affect the IOMMUv2 hardware implementation, >> and has been corrected since version 2.02 of the specification >> (available through AMD NDA). >> >> Signed-off-by: Jay Cornwall <jay.cornwall-5C7GfCeVMHo@public.gmane.org> >> Reviewed-by: Suravee Suthikulpanit <suravee.suthikulpanit-5C7GfCeVMHo@public.gmane.org> > > Applied, thanks. > > Does this mean that PASIDs are only 16 bits wide now from the former 20 > bits? > > > Thank you Joerg. The specification also state that this command format does not support the maximum size of the PASID field. However, other commands seem to still support 20-bit PASID. Suravee ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <5316051E.2030004-5C7GfCeVMHo@public.gmane.org>]
* Re: [PATCH 1/1] iommu/amd: Fix PASID format in INVALIDATE_IOTLB_PAGES command [not found] ` <5316051E.2030004-5C7GfCeVMHo@public.gmane.org> @ 2014-03-04 17:06 ` Suravee Suthikulpanit 0 siblings, 0 replies; 4+ messages in thread From: Suravee Suthikulpanit @ 2014-03-04 17:06 UTC (permalink / raw) To: Joerg Roedel Cc: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, Jay Cornwall, Linux Kernel Mailing List, Naru, Kim On 3/4/2014 10:53 AM, Suravee Suthikulpanit wrote: > On 3/4/2014 8:12 AM, Joerg Roedel wrote: >> On Wed, Feb 26, 2014 at 03:49:31PM -0600, >> suravee.suthikulpanit-5C7GfCeVMHo@public.gmane.org wrote: >>> From: Jay Cornwall <jay.cornwall-5C7GfCeVMHo@public.gmane.org> >>> >>> This patch corrects the PASID format in the INVALIDATE_IOTLB_PAGES >>> command, which was caused by incorrect information in >>> the AMD IOMMU Architectural Specification v2.01 document. >>> >>> Incorrect format: >>> cmd->data[0][16:23] = PASID[7:0] >>> cmd->data[1][16:27] = PASID[19:8] >>> >>> Correct format: >>> cmd->data[0][16:23] = PASID[15:8] >>> cmd->data[1][16:23] = PASID[7:0] >>> >>> However, this does not affect the IOMMUv2 hardware implementation, >>> and has been corrected since version 2.02 of the specification >>> (available through AMD NDA). >>> >>> Signed-off-by: Jay Cornwall <jay.cornwall-5C7GfCeVMHo@public.gmane.org> >>> Reviewed-by: Suravee Suthikulpanit <suravee.suthikulpanit-5C7GfCeVMHo@public.gmane.org> >> >> Applied, thanks. >> >> Does this mean that PASIDs are only 16 bits wide now from the former 20 >> bits? >> >> >> > > Thank you Joerg. The specification also state that this command format > does not support the maximum size of the PASID field. However, other > commands seem to still support 20-bit PASID. > > Suravee Actually, just thinking about this again, even though we don't have systems with 20-bit PASID yet (only up-to 16-bit), but for future proof, we should add another logic to make sure that this logic won't try to use the 20-bit PASID with this version of the command. I'll send out another patch soon. Suravee ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-03-04 17:06 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-26 21:49 [PATCH 1/1] iommu/amd: Fix PASID format in INVALIDATE_IOTLB_PAGES command suravee.suthikulpanit
[not found] ` <1393451371-17894-1-git-send-email-suravee.suthikulpanit-5C7GfCeVMHo@public.gmane.org>
2014-03-04 14:12 ` Joerg Roedel
[not found] ` <20140304141251.GB2799-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2014-03-04 16:53 ` Suravee Suthikulpanit
[not found] ` <5316051E.2030004-5C7GfCeVMHo@public.gmane.org>
2014-03-04 17:06 ` Suravee Suthikulpanit
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox