Message ID | 20191111205514.2779-1-andrew.cooper3@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | AMD/IOMMU: Fix passthrough following c/s d7cfeb7c13e | expand |
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
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
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
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) {
"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(-)