Drivers: hv: vmbus: Propagate VMbus coherence to each VMbus device
authorMichael Kelley <mikelley@microsoft.com>
Thu, 24 Mar 2022 16:14:51 +0000 (09:14 -0700)
committerWei Liu <wei.liu@kernel.org>
Tue, 29 Mar 2022 12:12:50 +0000 (12:12 +0000)
commit37200078ed6aa2ac3c88a01a64996133dccfdd34
treef207568ffac02555c7909b4c0fcaa53c6cdbf212
parent792f232d57ff28bbd5f9c4abe0466b23d5879dc8
Drivers: hv: vmbus: Propagate VMbus coherence to each VMbus device

VMbus synthetic devices are not represented in the ACPI DSDT -- only
the top level VMbus device is represented. As a result, on ARM64
coherence information in the _CCA method is not specified for
synthetic devices, so they default to not hardware coherent.
Drivers for some of these synthetic devices have been recently
updated to use the standard DMA APIs, and they are incurring extra
overhead of unneeded software coherence management.

Fix this by propagating coherence information from the VMbus node
in ACPI to the individual synthetic devices. There's no effect on
x86/x64 where devices are always hardware coherent.

Signed-off-by: Michael Kelley <mikelley@microsoft.com>
Acked-by: Robin Murphy <robin.murphy@arm.com>
Link: https://lore.kernel.org/r/1648138492-2191-2-git-send-email-mikelley@microsoft.com
Signed-off-by: Wei Liu <wei.liu@kernel.org>
drivers/hv/hv_common.c
drivers/hv/vmbus_drv.c
include/asm-generic/mshyperv.h