mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 03:15:31 +09:00
Merge tag 'virtio-mem-for-5.16' of git://github.com/davidhildenbrand/linux
Pull virtio-mem update from David Hildenbrand: "Support the VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE feature in virtio-mem, now that "accidential" access to logically unplugged memory inside added Linux memory blocks is no longer possible, because we: - Removed /dev/kmem in commitbbcd53c960("drivers/char: remove /dev/kmem for good") - Disallowed access to virtio-mem device memory via /dev/mem in commit2128f4e21a("virtio-mem: disallow mapping virtio-mem memory via /dev/mem") - Sanitized access to virtio-mem device memory via /proc/kcore in commit0daa322b8f("fs/proc/kcore: don't read offline sections, logically offline pages and hwpoisoned pages") - Sanitized access to virtio-mem device memory via /proc/vmcore in commitce2814622e("virtio-mem: kdump mode to sanitize /proc/vmcore access") The new VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE feature that will be required by some hypervisors implementing virtio-mem in the near future, so let's support it now that we safely can" * tag 'virtio-mem-for-5.16' of git://github.com/davidhildenbrand/linux: virtio-mem: support VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE
This commit is contained in:
@@ -2889,6 +2889,7 @@ static unsigned int virtio_mem_features[] = {
|
|||||||
#if defined(CONFIG_NUMA) && defined(CONFIG_ACPI_NUMA)
|
#if defined(CONFIG_NUMA) && defined(CONFIG_ACPI_NUMA)
|
||||||
VIRTIO_MEM_F_ACPI_PXM,
|
VIRTIO_MEM_F_ACPI_PXM,
|
||||||
#endif
|
#endif
|
||||||
|
VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct virtio_device_id virtio_mem_id_table[] = {
|
static const struct virtio_device_id virtio_mem_id_table[] = {
|
||||||
|
|||||||
@@ -68,9 +68,10 @@
|
|||||||
* explicitly triggered (VIRTIO_MEM_REQ_UNPLUG).
|
* explicitly triggered (VIRTIO_MEM_REQ_UNPLUG).
|
||||||
*
|
*
|
||||||
* There are no guarantees what will happen if unplugged memory is
|
* There are no guarantees what will happen if unplugged memory is
|
||||||
* read/written. Such memory should, in general, not be touched. E.g.,
|
* read/written. In general, unplugged memory should not be touched, because
|
||||||
* even writing might succeed, but the values will simply be discarded at
|
* the resulting action is undefined. There is one exception: without
|
||||||
* random points in time.
|
* VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE, unplugged memory inside the usable
|
||||||
|
* region can be read, to simplify creation of memory dumps.
|
||||||
*
|
*
|
||||||
* It can happen that the device cannot process a request, because it is
|
* It can happen that the device cannot process a request, because it is
|
||||||
* busy. The device driver has to retry later.
|
* busy. The device driver has to retry later.
|
||||||
@@ -87,6 +88,8 @@
|
|||||||
|
|
||||||
/* node_id is an ACPI PXM and is valid */
|
/* node_id is an ACPI PXM and is valid */
|
||||||
#define VIRTIO_MEM_F_ACPI_PXM 0
|
#define VIRTIO_MEM_F_ACPI_PXM 0
|
||||||
|
/* unplugged memory must not be accessed */
|
||||||
|
#define VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE 1
|
||||||
|
|
||||||
|
|
||||||
/* --- virtio-mem: guest -> host requests --- */
|
/* --- virtio-mem: guest -> host requests --- */
|
||||||
|
|||||||
Reference in New Issue
Block a user