On 15-06-22, 10:48, Juergen Gross wrote: > Commit fa1f57421e0b ("xen/virtio: Enable restricted memory access using > Xen grant mappings") introduced a new requirement for using virtio > devices: the backend now needs to support the VIRTIO_F_ACCESS_PLATFORM > feature. > > This is an undue requirement for non-PV guests, as those can be operated > with existing backends without any problem, as long as those backends > are running in dom0. > > Per default allow virtio devices without grant support for non-PV > guests. > > The setting can be overridden by using the new "xen_virtio_grant" > command line parameter. > > Add a new config item to always force use of grants for virtio. > > Fixes: fa1f57421e0b ("xen/virtio: Enable restricted memory access using Xen grant mappings") > Signed-off-by: Juergen Gross <jgross@xxxxxxxx> > --- > .../admin-guide/kernel-parameters.txt | 6 +++++ > drivers/xen/Kconfig | 9 ++++++++ > drivers/xen/grant-dma-ops.c | 22 +++++++++++++++++++ > include/xen/xen.h | 12 +++++----- > 4 files changed, 42 insertions(+), 7 deletions(-) Thanks for the quick fix. With CONFIG_DEBUG_SECTION_MISMATCH=y, this generates a warning. WARNING: modpost: vmlinux.o(.text+0x7a8270): Section mismatch in reference from the function xen_set_restricted_virtio_memory_access() to the variable .init.data:xen_virtio_grants The function xen_set_restricted_virtio_memory_access() references the variable __initdata xen_virtio_grants. This is often because xen_set_restricted_virtio_memory_access lacks a __initdata annotation or the annotation of xen_virtio_grants is wrong. This can be fixed by: diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c index d1fae789dfad..1099097b4515 100644 --- a/drivers/xen/grant-dma-ops.c +++ b/drivers/xen/grant-dma-ops.c @@ -42,7 +42,7 @@ static __init int parse_use_grants(char *arg) } early_param("xen_virtio_grant", parse_use_grants); -void xen_set_restricted_virtio_memory_access(void) +void __init xen_set_restricted_virtio_memory_access(void) { if (IS_ENABLED(CONFIG_XEN_VIRTIO_FORCE_GRANT) || xen_virtio_grants || (!xen_virtio_grants_set && xen_pv_domain())) With that: Tested-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx> -- viresh