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

From: Jason Gunthorpe
Date: Wed Oct 16 2024 - 09:30:58 EST


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() ?

Jason