[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 14/18] nvdimm: support NFIT_CMD_IMPLEMENTED f
From: |
Xiao Guangrong |
Subject: |
Re: [Qemu-devel] [PATCH v2 14/18] nvdimm: support NFIT_CMD_IMPLEMENTED function |
Date: |
Wed, 26 Aug 2015 18:46:35 +0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 |
On 08/26/2015 12:23 AM, Stefan Hajnoczi wrote:
On Fri, Aug 14, 2015 at 10:52:07PM +0800, Xiao Guangrong wrote:
@@ -306,6 +354,18 @@ struct dsm_buffer {
static ram_addr_t dsm_addr;
static size_t dsm_size;
+struct cmd_out_implemented {
QEMU coding style uses typedef struct {} CamelCase. Please follow this
convention in all user-defined structs (see ./CODING_STYLE).
Okay, will adjust all the defines in the next version.
static void dsm_write(void *opaque, hwaddr addr,
uint64_t val, unsigned size)
{
+ struct MemoryRegion *dsm_ram_mr = opaque;
+ struct dsm_buffer *dsm;
+ struct dsm_out *out;
+ void *buf;
+
assert(val == NOTIFY_VALUE);
The guest should not be able to cause an abort(3). If val !=
NOTIFY_VALUE we can do nvdebug() and then return.
The ACPI code and emulation code both are from qemu, if that happens,
it's really a bug, aborting the VM is better than throwing a debug
message under this case to avoid potential data corruption.
+
+ buf = memory_region_get_ram_ptr(dsm_ram_mr);
+ dsm = buf;
+ out = buf;
+
+ le32_to_cpus(&dsm->handle);
+ le32_to_cpus(&dsm->arg1);
+ le32_to_cpus(&dsm->arg2);
Can SMP guests modify DSM RAM while this thread is running?
We must avoid race conditions. It's probably better to copy in data
before byte-swapping or checking input values.
Yes, my mistake, will fix.
- Re: [Qemu-devel] [PATCH v2 08/18] nvdimm: init backend memory mapping and config data area, (continued)
[Qemu-devel] [PATCH v2 09/18] nvdimm: build ACPI NFIT table, Xiao Guangrong, 2015/08/14
[Qemu-devel] [PATCH v2 12/18] nvdimm: save arg3 for NVDIMM device _DSM method, Xiao Guangrong, 2015/08/14
[Qemu-devel] [PATCH v2 10/18] nvdimm: init the address region used by DSM method, Xiao Guangrong, 2015/08/14
[Qemu-devel] [PATCH v2 11/18] nvdimm: build ACPI nvdimm devices, Xiao Guangrong, 2015/08/14
[Qemu-devel] [PATCH v2 14/18] nvdimm: support NFIT_CMD_IMPLEMENTED function, Xiao Guangrong, 2015/08/14
[Qemu-devel] [PATCH v2 13/18] nvdimm: build namespace config data, Xiao Guangrong, 2015/08/14
[Qemu-devel] [PATCH v2 17/18] nvdimm: support NFIT_CMD_SET_CONFIG_DATA, Xiao Guangrong, 2015/08/14
[Qemu-devel] [PATCH v2 16/18] nvdimm: support NFIT_CMD_GET_CONFIG_DATA, Xiao Guangrong, 2015/08/14
[Qemu-devel] [PATCH v2 18/18] nvdimm: add maintain info, Xiao Guangrong, 2015/08/14