Skip to content

Commit 7447691

Browse files
committed
Merge tag 'for-linus-6.0-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip
Pull xen updates from Juergen Gross: - a series fine tuning virtio support for Xen guests, including removal the now again unused "platform_has()" feature. - a fix for host admin triggered reboot of Xen guests - a simple spelling fix * tag 'for-linus-6.0-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: xen: don't require virtio with grants for non-PV guests kernel: remove platform_has() infrastructure virtio: replace restricted mem access flag with callback xen: Fix spelling mistake xen/manage: Use orderly_reboot() to reboot
2 parents 7c5c3a6 + 251e90e commit 7447691

22 files changed

+90
-84
lines changed

MAINTAINERS

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16121,14 +16121,6 @@ S: Maintained
1612116121
F: Documentation/devicetree/bindings/iio/chemical/plantower,pms7003.yaml
1612216122
F: drivers/iio/chemical/pms7003.c
1612316123

16124-
PLATFORM FEATURE INFRASTRUCTURE
16125-
M: Juergen Gross <[email protected]>
16126-
S: Maintained
16127-
F: arch/*/include/asm/platform-feature.h
16128-
F: include/asm-generic/platform-feature.h
16129-
F: include/linux/platform-feature.h
16130-
F: kernel/platform-feature.c
16131-
1613216124
PLDMFW LIBRARY
1613316125
M: Jacob Keller <[email protected]>
1613416126
S: Maintained

arch/arm/xen/enlighten.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include <linux/timekeeping.h>
3535
#include <linux/timekeeper_internal.h>
3636
#include <linux/acpi.h>
37+
#include <linux/virtio_anchor.h>
3738

3839
#include <linux/mm.h>
3940

@@ -443,7 +444,8 @@ static int __init xen_guest_init(void)
443444
if (!xen_domain())
444445
return 0;
445446

446-
xen_set_restricted_virtio_memory_access();
447+
if (IS_ENABLED(CONFIG_XEN_VIRTIO))
448+
virtio_set_mem_acc_cb(xen_virtio_mem_acc);
447449

448450
if (!acpi_disabled)
449451
xen_acpi_guest_init();

arch/s390/mm/init.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
#include <linux/cma.h>
3232
#include <linux/gfp.h>
3333
#include <linux/dma-direct.h>
34-
#include <linux/platform-feature.h>
3534
#include <asm/processor.h>
3635
#include <linux/uaccess.h>
3736
#include <asm/pgalloc.h>
@@ -48,6 +47,7 @@
4847
#include <asm/kasan.h>
4948
#include <asm/dma-mapping.h>
5049
#include <asm/uv.h>
50+
#include <linux/virtio_anchor.h>
5151
#include <linux/virtio_config.h>
5252

5353
pgd_t swapper_pg_dir[PTRS_PER_PGD] __section(".bss..swapper_pg_dir");
@@ -175,7 +175,7 @@ static void pv_init(void)
175175
if (!is_prot_virt_guest())
176176
return;
177177

178-
platform_set(PLATFORM_VIRTIO_RESTRICTED_MEM_ACCESS);
178+
virtio_set_mem_acc_cb(virtio_require_restricted_mem_acc);
179179

180180
/* make sure bounce buffers are shared */
181181
swiotlb_init(true, SWIOTLB_FORCE | SWIOTLB_VERBOSE);

arch/x86/mm/mem_encrypt_amd.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
#include <linux/bitops.h>
2121
#include <linux/dma-mapping.h>
2222
#include <linux/virtio_config.h>
23+
#include <linux/virtio_anchor.h>
2324
#include <linux/cc_platform.h>
24-
#include <linux/platform-feature.h>
2525

2626
#include <asm/tlbflush.h>
2727
#include <asm/fixmap.h>
@@ -245,7 +245,7 @@ void __init sev_setup_arch(void)
245245
swiotlb_adjust_size(size);
246246

247247
/* Set restricted memory access for virtio. */
248-
platform_set(PLATFORM_VIRTIO_RESTRICTED_MEM_ACCESS);
248+
virtio_set_mem_acc_cb(virtio_require_restricted_mem_acc);
249249
}
250250

251251
static unsigned long pg_level_to_pfn(int level, pte_t *kpte, pgprot_t *ret_prot)

arch/x86/xen/enlighten_hvm.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include <linux/cpu.h>
55
#include <linux/kexec.h>
66
#include <linux/memblock.h>
7+
#include <linux/virtio_anchor.h>
78

89
#include <xen/features.h>
910
#include <xen/events.h>
@@ -195,7 +196,8 @@ static void __init xen_hvm_guest_init(void)
195196
if (xen_pv_domain())
196197
return;
197198

198-
xen_set_restricted_virtio_memory_access();
199+
if (IS_ENABLED(CONFIG_XEN_VIRTIO_FORCE_GRANT))
200+
virtio_set_mem_acc_cb(virtio_require_restricted_mem_acc);
199201

200202
init_hvm_pv_info();
201203

arch/x86/xen/enlighten_pv.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
#include <linux/gfp.h>
3232
#include <linux/edd.h>
3333
#include <linux/reboot.h>
34+
#include <linux/virtio_anchor.h>
3435

3536
#include <xen/xen.h>
3637
#include <xen/events.h>
@@ -109,7 +110,9 @@ static DEFINE_PER_CPU(struct tls_descs, shadow_tls_desc);
109110

110111
static void __init xen_pv_init_platform(void)
111112
{
112-
xen_set_restricted_virtio_memory_access();
113+
/* PV guests can't operate virtio devices without grants. */
114+
if (IS_ENABLED(CONFIG_XEN_VIRTIO))
115+
virtio_set_mem_acc_cb(virtio_require_restricted_mem_acc);
113116

114117
populate_extra_pte(fix_to_virt(FIX_PARAVIRT_BOOTMAP));
115118

drivers/virtio/Kconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
# SPDX-License-Identifier: GPL-2.0-only
2+
config VIRTIO_ANCHOR
3+
bool
4+
25
config VIRTIO
36
tristate
7+
select VIRTIO_ANCHOR
48
help
59
This option is selected by any driver which implements the virtio
610
bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_RPMSG

drivers/virtio/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# SPDX-License-Identifier: GPL-2.0
22
obj-$(CONFIG_VIRTIO) += virtio.o virtio_ring.o
3+
obj-$(CONFIG_VIRTIO_ANCHOR) += virtio_anchor.o
34
obj-$(CONFIG_VIRTIO_PCI_LIB) += virtio_pci_modern_dev.o
45
obj-$(CONFIG_VIRTIO_PCI_LIB_LEGACY) += virtio_pci_legacy_dev.o
56
obj-$(CONFIG_VIRTIO_MMIO) += virtio_mmio.o

drivers/virtio/virtio.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
#include <linux/virtio.h>
33
#include <linux/spinlock.h>
44
#include <linux/virtio_config.h>
5+
#include <linux/virtio_anchor.h>
56
#include <linux/module.h>
67
#include <linux/idr.h>
78
#include <linux/of.h>
8-
#include <linux/platform-feature.h>
99
#include <uapi/linux/virtio_ids.h>
1010

1111
/* Unique numbering for virtio devices. */
@@ -174,7 +174,7 @@ static int virtio_features_ok(struct virtio_device *dev)
174174

175175
might_sleep();
176176

177-
if (platform_has(PLATFORM_VIRTIO_RESTRICTED_MEM_ACCESS)) {
177+
if (virtio_check_mem_acc_cb(dev)) {
178178
if (!virtio_has_feature(dev, VIRTIO_F_VERSION_1)) {
179179
dev_warn(&dev->dev,
180180
"device must provide VIRTIO_F_VERSION_1\n");

drivers/virtio/virtio_anchor.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// SPDX-License-Identifier: GPL-2.0-only
2+
#include <linux/virtio.h>
3+
#include <linux/virtio_anchor.h>
4+
5+
bool virtio_require_restricted_mem_acc(struct virtio_device *dev)
6+
{
7+
return true;
8+
}
9+
EXPORT_SYMBOL_GPL(virtio_require_restricted_mem_acc);
10+
11+
static bool virtio_no_restricted_mem_acc(struct virtio_device *dev)
12+
{
13+
return false;
14+
}
15+
16+
bool (*virtio_check_mem_acc_cb)(struct virtio_device *dev) =
17+
virtio_no_restricted_mem_acc;
18+
EXPORT_SYMBOL_GPL(virtio_check_mem_acc_cb);

0 commit comments

Comments
 (0)