virtio: kconfig: memory devices are PCI only

Virtio memory devices rely on PCI BARs to expose the contents of memory.
Because of this they cannot be used (yet) with virtio-mmio or virtio-ccw.
In fact the code that is common to virtio-mem and virtio-pmem, which
is in hw/virtio/virtio-md-pci.c, is only included if CONFIG_VIRTIO_PCI
is set.  Reproduce the same condition in the Kconfig file, only allowing
VIRTIO_MEM and VIRTIO_PMEM to be defined if the transport supports it.

Without this patch it is possible to create a configuration with
CONFIG_VIRTIO_PCI=n and CONFIG_VIRTIO_MEM=y, but that causes a
linking failure.

Message-ID: <20240906101658.514470-1-pbonzini@redhat.com>
Reported-by: Michael Tokarev <mjt@tls.msk.ru>
Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
This commit is contained in:
Paolo Bonzini 2024-09-06 12:16:58 +02:00 committed by David Hildenbrand
parent 01dc65a3bc
commit 8d018fe59a
1 changed files with 11 additions and 0 deletions

View File

@ -16,6 +16,7 @@ config VIRTIO_PCI
default y if PCI_DEVICES
depends on PCI
select VIRTIO
select VIRTIO_MD_SUPPORTED
config VIRTIO_MMIO
bool
@ -35,10 +36,17 @@ config VIRTIO_CRYPTO
default y
depends on VIRTIO
# not all virtio transports support memory devices; if none does,
# no need to include the code
config VIRTIO_MD_SUPPORTED
bool
config VIRTIO_MD
bool
depends on VIRTIO_MD_SUPPORTED
select MEM_DEVICE
# selected by the board if it has the required support code
config VIRTIO_PMEM_SUPPORTED
bool
@ -46,9 +54,11 @@ config VIRTIO_PMEM
bool
default y
depends on VIRTIO
depends on VIRTIO_MD_SUPPORTED
depends on VIRTIO_PMEM_SUPPORTED
select VIRTIO_MD
# selected by the board if it has the required support code
config VIRTIO_MEM_SUPPORTED
bool
@ -57,6 +67,7 @@ config VIRTIO_MEM
default y
depends on VIRTIO
depends on LINUX
depends on VIRTIO_MD_SUPPORTED
depends on VIRTIO_MEM_SUPPORTED
select VIRTIO_MD