virtio_pmem: support feature SHMEM_REGION
authorChangyuan Lyu <changyuanl@google.com>
Wed, 20 Dec 2023 20:49:06 +0000 (12:49 -0800)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 10 Jan 2024 18:01:37 +0000 (13:01 -0500)
commit35967bdcff325f4572b21b0d0005318da7e03f53
tree2ce3ee42f6bd8a4eb11cf8b7916851c48c0cd306
parentb12fbc3f787e3d7e47af274a761fdee6e867bc7d
virtio_pmem: support feature SHMEM_REGION

This patch adds the support for feature VIRTIO_PMEM_F_SHMEM_REGION
(virtio spec v1.2 section 5.19.5.2 [1]).

During feature negotiation, if VIRTIO_PMEM_F_SHMEM_REGION is offered
by the device, the driver looks for a shared memory region of id 0.
If it is found, this feature is understood. Otherwise, this feature
bit is cleared.

During probe, if VIRTIO_PMEM_F_SHMEM_REGION has been negotiated,
virtio pmem ignores the `start` and `size` fields in device config
and uses the physical address range of shared memory region 0.

[1] https://docs.oasis-open.org/virtio/virtio/v1.2/csd01/virtio-v1.2-csd01.html#x1-6480002

Signed-off-by: Changyuan Lyu <changyuanl@google.com>
Message-Id: <20231220204906.566922-1-changyuanl@google.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
drivers/nvdimm/virtio_pmem.c
include/uapi/linux/virtio_pmem.h