Re: [PATCH v6 7/9] iommu/amd: Move erratum 63 logic to write_dte_lower128()

From: Suthikulpanit, Suravee
Date: Thu Oct 31 2024 - 04:54:18 EST




On 10/16/2024 8:30 PM, Jason Gunthorpe wrote:
On Wed, Oct 16, 2024 at 05:17:54AM +0000, Suravee Suthikulpanit wrote:

diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c
index c03e2d9d2990..a8c0a57003a8 100644
--- a/drivers/iommu/amd/iommu.c
+++ b/drivers/iommu/amd/iommu.c
@@ -105,6 +105,10 @@ static void write_dte_lower128(struct dev_table_entry *ptr, struct dev_table_ent
old.data128[0] = READ_ONCE(ptr->data128[0]);
do {
+ /* Apply erratum 63 */
+ if (FIELD_GET(DTE_DATA1_SYSMGT_MASK, new->data[1]) == 0x1)
+ new->data[0] |= DTE_FLAG_IW;
+

Why not put it in set_dte_entry() ?

Ok. Good point.

Suravee