[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 42/50] acpi: do not use TARGET_PAGE_SIZE
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 42/50] acpi: do not use TARGET_PAGE_SIZE |
Date: |
Fri, 8 Apr 2016 22:29:02 +0200 |
This is a #define used by the CPU. NVDIMM can just use 4K
unconditionally.
Signed-off-by: Paolo Bonzini <address@hidden>
---
hw/acpi/nvdimm.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/hw/acpi/nvdimm.c b/hw/acpi/nvdimm.c
index 9531340..fb925dc 100644
--- a/hw/acpi/nvdimm.c
+++ b/hw/acpi/nvdimm.c
@@ -378,17 +378,19 @@ struct NvdimmDsmIn {
uint32_t function;
/* the remaining size in the page is used by arg3. */
union {
- uint8_t arg3[0];
+ uint8_t arg3[4084];
};
} QEMU_PACKED;
typedef struct NvdimmDsmIn NvdimmDsmIn;
+QEMU_BUILD_BUG_ON(sizeof(NvdimmDsmIn) != 4096);
struct NvdimmDsmOut {
/* the size of buffer filled by QEMU. */
uint32_t len;
- uint8_t data[0];
+ uint8_t data[4092];
} QEMU_PACKED;
typedef struct NvdimmDsmOut NvdimmDsmOut;
+QEMU_BUILD_BUG_ON(sizeof(NvdimmDsmOut) != 4096);
struct NvdimmDsmFunc0Out {
/* the size of buffer filled by QEMU. */
@@ -424,8 +426,8 @@ nvdimm_dsm_write(void *opaque, hwaddr addr, uint64_t val,
unsigned size)
* can change its content while we are doing DSM emulation. Avoid
* this by copying DSM memory to QEMU local memory.
*/
- in = g_malloc(TARGET_PAGE_SIZE);
- cpu_physical_memory_read(dsm_mem_addr, in, TARGET_PAGE_SIZE);
+ in = g_new(NvdimmDsmIn, 1);
+ cpu_physical_memory_read(dsm_mem_addr, in, sizeof(*in));
le32_to_cpus(&in->revision);
le32_to_cpus(&in->function);
@@ -475,7 +477,7 @@ void nvdimm_init_acpi_state(AcpiNVDIMMState *state,
MemoryRegion *io,
memory_region_add_subregion(io, NVDIMM_ACPI_IO_BASE, &state->io_mr);
state->dsm_mem = g_array_new(false, true /* clear */, 1);
- acpi_data_push(state->dsm_mem, TARGET_PAGE_SIZE);
+ acpi_data_push(state->dsm_mem, sizeof(NvdimmDsmIn));
fw_cfg_add_file(fw_cfg, NVDIMM_DSM_MEM_FILE, state->dsm_mem->data,
state->dsm_mem->len);
}
@@ -608,7 +610,7 @@ static void nvdimm_build_ssdt(GSList *device_list, GArray
*table_offsets,
aml_append(dev, aml_operation_region("NPIO", AML_SYSTEM_IO,
aml_int(NVDIMM_ACPI_IO_BASE), NVDIMM_ACPI_IO_LEN));
aml_append(dev, aml_operation_region("NRAM", AML_SYSTEM_MEMORY,
- aml_name(NVDIMM_ACPI_MEM_ADDR), TARGET_PAGE_SIZE));
+ aml_name(NVDIMM_ACPI_MEM_ADDR), sizeof(NvdimmDsmIn)));
/*
* DSM notifier:
@@ -642,8 +644,7 @@ static void nvdimm_build_ssdt(GSList *device_list, GArray
*table_offsets,
aml_append(field, aml_named_field("FUNC",
sizeof(typeof_field(NvdimmDsmIn, function)) * BITS_PER_BYTE));
aml_append(field, aml_named_field("ARG3",
- (TARGET_PAGE_SIZE - offsetof(NvdimmDsmIn, arg3)) *
- BITS_PER_BYTE));
+ (sizeof(NvdimmDsmIn) - offsetof(NvdimmDsmIn, arg3)) *
BITS_PER_BYTE));
aml_append(dev, field);
/*
@@ -659,8 +660,7 @@ static void nvdimm_build_ssdt(GSList *device_list, GArray
*table_offsets,
aml_append(field, aml_named_field("RLEN",
sizeof(typeof_field(NvdimmDsmOut, len)) * BITS_PER_BYTE));
aml_append(field, aml_named_field("ODAT",
- (TARGET_PAGE_SIZE - offsetof(NvdimmDsmOut, data)) *
- BITS_PER_BYTE));
+ (sizeof(NvdimmDsmOut) - offsetof(NvdimmDsmOut, data)) *
BITS_PER_BYTE));
aml_append(dev, field);
nvdimm_build_common_dsm(dev);
@@ -678,7 +678,7 @@ static void nvdimm_build_ssdt(GSList *device_list, GArray
*table_offsets,
mem_addr_offset = build_append_named_dword(table_data,
NVDIMM_ACPI_MEM_ADDR);
- bios_linker_loader_alloc(linker, NVDIMM_DSM_MEM_FILE, TARGET_PAGE_SIZE,
+ bios_linker_loader_alloc(linker, NVDIMM_DSM_MEM_FILE, sizeof(NvdimmDsmIn),
false /* high memory */);
bios_linker_loader_add_pointer(linker, ACPI_BUILD_TABLE_FILE,
NVDIMM_DSM_MEM_FILE, table_data,
--
1.8.3.1
- [Qemu-devel] [PATCH 37/50] qemu-common: stop including qemu/bswap.h from qemu-common.h, (continued)
- [Qemu-devel] [PATCH 37/50] qemu-common: stop including qemu/bswap.h from qemu-common.h, Paolo Bonzini, 2016/04/08
- [Qemu-devel] [PATCH 19/50] target-unicore32: make cpu-qom.h not target specific, Paolo Bonzini, 2016/04/08
- [Qemu-devel] [PATCH 24/50] alpha: include cpu-qom.h in files that require AlphaCPU, Paolo Bonzini, 2016/04/08
- [Qemu-devel] [PATCH 25/50] mips: use MIPSCPU instead of CPUMIPSState, Paolo Bonzini, 2016/04/08
- [Qemu-devel] [PATCH 27/50] arm: remove useless cpu.h inclusion, Paolo Bonzini, 2016/04/08
- [Qemu-devel] [PATCH 28/50] explicitly include qom/cpu.h, Paolo Bonzini, 2016/04/08
- [Qemu-devel] [PATCH 26/50] ppc: use PowerPCCPU instead of CPUPPCState, Paolo Bonzini, 2016/04/08
- [Qemu-devel] [PATCH 31/50] apic: move target-dependent definitions to cpu.h, Paolo Bonzini, 2016/04/08
- [Qemu-devel] [PATCH 38/50] qemu-common: stop including qemu/host-utils.h from qemu-common.h, Paolo Bonzini, 2016/04/08
- [Qemu-devel] [PATCH 42/50] acpi: do not use TARGET_PAGE_SIZE,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 41/50] s390x: move stuff out of cpu.h, Paolo Bonzini, 2016/04/08
- [Qemu-devel] [PATCH 39/50] gdbstub: remove includes from gdbstub-xml.c, Paolo Bonzini, 2016/04/08
- [Qemu-devel] [PATCH 43/50] qemu-common: push cpu.h inclusion out of qemu-common.h, Paolo Bonzini, 2016/04/08
- [Qemu-devel] [PATCH 40/50] dma: do not depend on kvm_enabled(), Paolo Bonzini, 2016/04/08
- [Qemu-devel] [PATCH 44/50] arm: move arm_log_exception into .c file, Paolo Bonzini, 2016/04/08
- [Qemu-devel] [PATCH 45/50] mips: move CP0 functions out of cpu.h, Paolo Bonzini, 2016/04/08