mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 20:46:48 +02:00
iommu/amd: Document which IRTE fields amd_iommu_update_ga() can modify
Add a comment to amd_iommu_update_ga() to document what fields it can safely modify without issuing an invalidation of the IRTE, and to explain its role in keeping GA IRTEs up-to-date. Per page 93 of the IOMMU spec dated Feb 2025: When virtual interrupts are enabled by setting MMIO Offset 0018h[GAEn] and IRTE[GuestMode=1], IRTE[IsRun], IRTE[Destination], and if present IRTE[GATag], are not cached by the IOMMU. Modifications to these fields do not require an invalidation of the Interrupt Remapping Table. Link: https://lore.kernel.org/all/9b7ceea3-8c47-4383-ad9c-1a9bbdc9044a@oracle.com Cc: Joao Martins <joao.m.martins@oracle.com> Link: https://lore.kernel.org/r/20250611224604.313496-41-seanjc@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
parent
c3d591c91f
commit
3be405e89f
|
|
@ -3986,6 +3986,18 @@ int amd_iommu_create_irq_domain(struct amd_iommu *iommu)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Update the pCPU information for an IRTE that is configured to post IRQs to
|
||||
* a vCPU, without issuing an IOMMU invalidation for the IRTE.
|
||||
*
|
||||
* This API is intended to be used when a vCPU is scheduled in/out (or stops
|
||||
* running for any reason), to do a fast update of IsRun and (conditionally)
|
||||
* Destination.
|
||||
*
|
||||
* Per the IOMMU spec, the Destination, IsRun, and GATag fields are not cached
|
||||
* and thus don't require an invalidation to ensure the IOMMU consumes fresh
|
||||
* information.
|
||||
*/
|
||||
int amd_iommu_update_ga(int cpu, bool is_run, void *data)
|
||||
{
|
||||
struct amd_ir_data *ir_data = (struct amd_ir_data *)data;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user