AMD/IOMMU: Fix passthrough following c/s d7cfeb7c13e
diff mbox series

Message ID 20191111205514.2779-1-andrew.cooper3@citrix.com
State New
Headers show
Series
  • AMD/IOMMU: Fix passthrough following c/s d7cfeb7c13e
Related show

Commit Message

Andrew Cooper Nov. 11, 2019, 8:55 p.m. UTC
"AMD/IOMMU: don't blindly allocate interrupt remapping tables" introduces a
call at runtime from amd_iommu_add_device() to amd_iommu_set_intremap_table()
which is still marked as __init.

On one AMD Rome machine we have, this results in a crash the moment we try to
use an SR-IOV VF in a VM.

Reported-by: Jennifer Herbert <jennifer.herbert@citrix.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Juergen Gross <jgross@suse.com>

For 4.13.  This is a regression vs 4.12
---
 xen/drivers/passthrough/amd/iommu_map.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jan Beulich Nov. 12, 2019, 8:39 a.m. UTC | #1
On 11.11.2019 21:55, Andrew Cooper wrote:
> "AMD/IOMMU: don't blindly allocate interrupt remapping tables" introduces a
> call at runtime from amd_iommu_add_device() to amd_iommu_set_intremap_table()
> which is still marked as __init.
> 
> On one AMD Rome machine we have, this results in a crash the moment we try to
> use an SR-IOV VF in a VM.
> 
> Reported-by: Jennifer Herbert <jennifer.herbert@citrix.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>

I'm sorry for the breakage - I recall having made the change, so I must
have lost it at some point.

Jan
Jürgen Groß Nov. 12, 2019, 8:40 a.m. UTC | #2
On 11.11.19 21:55, Andrew Cooper wrote:
> "AMD/IOMMU: don't blindly allocate interrupt remapping tables" introduces a
> call at runtime from amd_iommu_add_device() to amd_iommu_set_intremap_table()
> which is still marked as __init.
> 
> On one AMD Rome machine we have, this results in a crash the moment we try to
> use an SR-IOV VF in a VM.
> 
> Reported-by: Jennifer Herbert <jennifer.herbert@citrix.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Release-acked-by: Juergen Gross <jgross@suse.com>


Juergen
Jennifer Herbert Nov. 14, 2019, 11:45 a.m. UTC | #3
On 11/11/19 20:55, Andrew Cooper wrote:
> "AMD/IOMMU: don't blindly allocate interrupt remapping tables" introduces a
> call at runtime from amd_iommu_add_device() to amd_iommu_set_intremap_table()
> which is still marked as __init.
>
> On one AMD Rome machine we have, this results in a crash the moment we try to
> use an SR-IOV VF in a VM.
>
> Reported-by: Jennifer Herbert <jennifer.herbert@citrix.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>


Tested-by: Jennifer Herbert <jennifer.herbert@citrix.com>

This fixes the fatal page fault I found, which wasn't seen on 4.11.

Cheers,

-Jenny

Patch
diff mbox series

diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/passthrough/amd/iommu_map.c
index 2859d8257e..f3fcfb9e0f 100644
--- a/xen/drivers/passthrough/amd/iommu_map.c
+++ b/xen/drivers/passthrough/amd/iommu_map.c
@@ -112,7 +112,7 @@  void amd_iommu_set_root_page_table(struct amd_iommu_dte *dte,
     dte->v = valid;
 }
 
-void __init amd_iommu_set_intremap_table(
+void amd_iommu_set_intremap_table(
     struct amd_iommu_dte *dte, const void *ptr,
     const struct amd_iommu *iommu, bool valid)
 {