linux/drivers/nvdimm
Changyuan Lyu 35967bdcff 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>
2024-01-10 13:01:37 -05:00
..
badrange.c libnvdimm: remove kernel-doc warnings: 2023-10-18 09:48:05 -07:00
btt_devs.c nvdimm: Drop nd_device_lock() 2022-04-28 14:01:55 -07:00
btt.c block: remove ->rw_page 2023-02-02 22:33:34 -08:00
btt.h nvdimm-btt: convert to blk_alloc_disk/blk_cleanup_disk 2021-06-01 07:42:23 -06:00
bus.c nvdimm: make nd_class variable static 2023-06-23 14:55:58 -06:00
claim.c libnvdimm: Cleanup include of badblocks.h 2020-12-15 21:47:45 -08:00
core.c nvdimm: Fix firmware activation deadlock scenarios 2022-04-28 14:01:56 -07:00
dax_devs.c driver core: make struct bus_type.uevent() take a const * 2023-01-27 13:45:52 +01:00
dimm_devs.c nvdimm: make security_show static 2023-06-23 15:08:24 -06:00
dimm.c libnvdimm: Make remove callback return void 2021-02-16 19:35:29 -08:00
e820.c
Kconfig nvdimm: Support sizeof(struct page) > MAX_STRUCT_PAGE_SIZE 2023-01-28 15:32:36 -08:00
label.c nvdimm/region: Delete nd_blk_region infrastructure 2022-03-11 15:53:13 -08:00
label.h nvdimm/region: Delete nd_blk_region infrastructure 2022-03-11 15:53:13 -08:00
Makefile drivers/nvdimm: Fix build failure when CONFIG_PERF_EVENTS is not set 2022-03-23 12:17:36 -07:00
namespace_devs.c nvdimm: Use kstrtobool() instead of strtobool() 2023-07-19 08:42:50 -07:00
nd_perf.c nvdimm: Fix dereference after free in register_nvdimm_pmu() 2023-08-17 09:34:03 -07:00
nd_virtio.c virtio_pmem: add the missing REQ_OP_WRITE for flush bio 2023-07-19 08:44:36 -07:00
nd-core.h cxl for v6.3 2023-02-25 09:19:23 -08:00
nd.h libnvdimm: Annotate struct nd_region with __counted_by 2023-09-27 10:33:47 -07:00
of_pmem.c libnvdimm/of_pmem: Use devm_kstrdup instead of kstrdup and check its return value 2023-09-27 10:33:47 -07:00
pfn_devs.c nvdimm changes for v6.6 merge window 2023-08-30 20:52:08 -07:00
pfn.h
pmem.c nvdimm: Use kstrtobool() instead of strtobool() 2023-07-19 08:42:50 -07:00
pmem.h dax: introduce DAX_RECOVERY_WRITE dax access mode 2022-05-16 13:35:56 -07:00
region_devs.c libnvdimm: Annotate struct nd_region with __counted_by 2023-09-27 10:33:47 -07:00
region.c nvdimm/region: Move cache management to the region driver 2022-12-02 23:52:32 -08:00
security.c nvdimm/region: Move cache management to the region driver 2022-12-02 23:52:32 -08:00
virtio_pmem.c virtio_pmem: support feature SHMEM_REGION 2024-01-10 13:01:37 -05:00
virtio_pmem.h