> ________________________________
> From: Qemu-arm <[email protected]> on
> behalf of Peter Maydell <[email protected]>
> Sent: Tuesday, June 21, 2016 10:39 PM
> To: [email protected]; [email protected]
> Cc: Paolo Bonzini; Kumar, Vijaya; [email protected]
> Subject: [Qemu-arm] [PATCH v2 2/6] exec.c: Remove static allocation of
> sub_section of sub_page
>
> From: Vijaya Kumar K <[email protected]>
>
> Allocate sub_section dynamically. Remove dependency
> on TARGET_PAGE_SIZE to make run-time page size detection
> for arm platforms.
>
> Signed-off-by: Vijaya Kumar K <[email protected]>
> Message-id: [email protected]
> [PMM: use flexible array member rather than separate malloc
> so we don't need an extra pointer deref when using it]
> Signed-off-by: Peter Maydell <[email protected]>
> ---
> exec.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/exec.c b/exec.c
> index 0122ef7..8eaeb0c 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -153,7 +153,7 @@ typedef struct subpage_t {
> MemoryRegion iomem;
> AddressSpace *as;
> hwaddr base;
> - uint16_t sub_section[TARGET_PAGE_SIZE];
> + uint16_t sub_section[];
NIT: Comment that this variable should be last member of this
struct will be helpful.
> } subpage_t;
>
> #define PHYS_SECTION_UNASSIGNED 0
> @@ -2270,8 +2270,7 @@ static subpage_t *subpage_init(AddressSpace *as,
> hwaddr base)
> {
> subpage_t *mmio;
>
> - mmio = g_malloc0(sizeof(subpage_t));
> -
> + mmio = g_malloc0(sizeof(subpage_t) + TARGET_PAGE_SIZE *
> sizeof(uint16_t));
NIT: sizeof(mmio->sub_section[0]) looks better than sizeof(uint16_t)
> mmio->as = as;
> mmio->base = base;
> memory_region_init_io(&mmio->iomem, NULL, &subpage_ops, mmio,
> --
> 1.9.1
>
>