mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
iommu/amd: Fix precedence order in set_dte_passthrough()
Bitwise OR | operator has a higher precedence than the ternary ?:
operatior. It will be incorrectly evaluated as:
new->data[1] |= (FIELD_PREP(...) | dev_data->ats_enabled) ? DTE_FLAG_IOTLB : 0;
Wrap the conditional operation in parentheses to enforce the
correct evaluation order.
Fixes: 93eee2a49c ("iommu/amd: Refactor logic to program the host page table in DTE")
Signed-off-by: Weinan Liu <wnliu@google.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Vasant Hegde <vasant.hegde@amd.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
This commit is contained in:
parent
f9471dc1a7
commit
10161b4a79
|
|
@ -2149,7 +2149,8 @@ static void set_dte_passthrough(struct iommu_dev_data *dev_data,
|
||||||
new->data[0] |= DTE_FLAG_TV | DTE_FLAG_IR | DTE_FLAG_IW;
|
new->data[0] |= DTE_FLAG_TV | DTE_FLAG_IR | DTE_FLAG_IW;
|
||||||
|
|
||||||
new->data[1] |= FIELD_PREP(DTE_DOMID_MASK, domain->id) |
|
new->data[1] |= FIELD_PREP(DTE_DOMID_MASK, domain->id) |
|
||||||
(dev_data->ats_enabled) ? DTE_FLAG_IOTLB : 0;
|
(dev_data->ats_enabled ? DTE_FLAG_IOTLB : 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void set_dte_entry(struct amd_iommu *iommu,
|
static void set_dte_entry(struct amd_iommu *iommu,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user