Patchwork [V13,05/17] pc_memory_init: Move memory calculation to the caller.

login
register
mail settings
Submitter Anthony PERARD
Date April 18, 2011, 11:37 a.m.
Message ID <1303126637-31877-6-git-send-email-anthony.perard@citrix.com>
Download mbox | patch
Permalink /patch/91717/
State New
Headers show

Comments

Anthony PERARD - April 18, 2011, 11:37 a.m.
From: Anthony PERARD <anthony.perard@citrix.com>

This patch moves above_4g_mem_size and below_4g_mem_size calculation in
the caller of pc_memory_init (pc_init1). And the prototype of
pc_memory_init is changed because there is no need anymore to have
variable pointer.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 hw/pc.c      |   14 ++------------
 hw/pc.h      |    4 ++--
 hw/pc_piix.c |   11 +++++++++--
 3 files changed, 13 insertions(+), 16 deletions(-)
Jan Kiszka - April 18, 2011, 12:12 p.m.
On 2011-04-18 13:37, anthony.perard@citrix.com wrote:
> From: Anthony PERARD <anthony.perard@citrix.com>
> 
> This patch moves above_4g_mem_size and below_4g_mem_size calculation in
> the caller of pc_memory_init (pc_init1). And the prototype of
> pc_memory_init is changed because there is no need anymore to have
> variable pointer.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> ---
>  hw/pc.c      |   14 ++------------
>  hw/pc.h      |    4 ++--
>  hw/pc_piix.c |   11 +++++++++--
>  3 files changed, 13 insertions(+), 16 deletions(-)
> 
> diff --git a/hw/pc.c b/hw/pc.c
> index 6939c04..18b96cc 100644
> --- a/hw/pc.c
> +++ b/hw/pc.c
> @@ -961,25 +961,15 @@ void pc_memory_init(ram_addr_t ram_size,
>                      const char *kernel_filename,
>                      const char *kernel_cmdline,
>                      const char *initrd_filename,
> -                    ram_addr_t *below_4g_mem_size_p,
> -                    ram_addr_t *above_4g_mem_size_p)
> +                    ram_addr_t below_4g_mem_size,
> +                    ram_addr_t above_4g_mem_size)
>  {
>      char *filename;
>      int ret, linux_boot, i;
>      ram_addr_t ram_addr, bios_offset, option_rom_offset;
> -    ram_addr_t below_4g_mem_size, above_4g_mem_size = 0;
>      int bios_size, isa_bios_size;
>      void *fw_cfg;
>  
> -    if (ram_size >= 0xe0000000 ) {
> -        above_4g_mem_size = ram_size - 0xe0000000;
> -        below_4g_mem_size = 0xe0000000;
> -    } else {
> -        below_4g_mem_size = ram_size;
> -    }
> -    *above_4g_mem_size_p = above_4g_mem_size;
> -    *below_4g_mem_size_p = below_4g_mem_size;
> -

This obsoletes the ram_size parameter. Please drop it.

>      linux_boot = (kernel_filename != NULL);
>  
>      /* allocate RAM */
> diff --git a/hw/pc.h b/hw/pc.h
> index feb8a7a..35bb890 100644
> --- a/hw/pc.h
> +++ b/hw/pc.h
> @@ -133,8 +133,8 @@ void pc_memory_init(ram_addr_t ram_size,
>                      const char *kernel_filename,
>                      const char *kernel_cmdline,
>                      const char *initrd_filename,
> -                    ram_addr_t *below_4g_mem_size_p,
> -                    ram_addr_t *above_4g_mem_size_p);
> +                    ram_addr_t below_4g_mem_size,
> +                    ram_addr_t above_4g_mem_size);
>  qemu_irq *pc_allocate_cpu_irq(void);
>  void pc_vga_init(PCIBus *pci_bus);
>  void pc_basic_device_init(qemu_irq *isa_irq,
> diff --git a/hw/pc_piix.c b/hw/pc_piix.c
> index a85214b..e487c38 100644
> --- a/hw/pc_piix.c
> +++ b/hw/pc_piix.c
> @@ -72,7 +72,7 @@ static void pc_init1(ram_addr_t ram_size,
>                       int kvmclock_enabled)
>  {
>      int i;
> -    ram_addr_t below_4g_mem_size, above_4g_mem_size;
> +    ram_addr_t below_4g_mem_size, above_4g_mem_size = 0;
>      PCIBus *pci_bus;
>      PCII440FXState *i440fx_state;
>      int piix3_devfn = -1;
> @@ -92,9 +92,16 @@ static void pc_init1(ram_addr_t ram_size,
>          kvmclock_create();
>      }
>  
> +    if (ram_size >= 0xe0000000 ) {
> +        above_4g_mem_size = ram_size - 0xe0000000;
> +        below_4g_mem_size = 0xe0000000;
> +    } else {
> +        below_4g_mem_size = ram_size;

Let's initialize above_4g_mem_size here.

> +    }
> +
>      /* allocate ram and load rom/bios */
>      pc_memory_init(ram_size, kernel_filename, kernel_cmdline, initrd_filename,
> -                   &below_4g_mem_size, &above_4g_mem_size);
> +                   below_4g_mem_size, above_4g_mem_size);
>  
>      cpu_irq = pc_allocate_cpu_irq();
>      i8259 = i8259_init(cpu_irq[0]);

Looks good otherwise.

Thanks,
Jan

Patch

diff --git a/hw/pc.c b/hw/pc.c
index 6939c04..18b96cc 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -961,25 +961,15 @@  void pc_memory_init(ram_addr_t ram_size,
                     const char *kernel_filename,
                     const char *kernel_cmdline,
                     const char *initrd_filename,
-                    ram_addr_t *below_4g_mem_size_p,
-                    ram_addr_t *above_4g_mem_size_p)
+                    ram_addr_t below_4g_mem_size,
+                    ram_addr_t above_4g_mem_size)
 {
     char *filename;
     int ret, linux_boot, i;
     ram_addr_t ram_addr, bios_offset, option_rom_offset;
-    ram_addr_t below_4g_mem_size, above_4g_mem_size = 0;
     int bios_size, isa_bios_size;
     void *fw_cfg;
 
-    if (ram_size >= 0xe0000000 ) {
-        above_4g_mem_size = ram_size - 0xe0000000;
-        below_4g_mem_size = 0xe0000000;
-    } else {
-        below_4g_mem_size = ram_size;
-    }
-    *above_4g_mem_size_p = above_4g_mem_size;
-    *below_4g_mem_size_p = below_4g_mem_size;
-
     linux_boot = (kernel_filename != NULL);
 
     /* allocate RAM */
diff --git a/hw/pc.h b/hw/pc.h
index feb8a7a..35bb890 100644
--- a/hw/pc.h
+++ b/hw/pc.h
@@ -133,8 +133,8 @@  void pc_memory_init(ram_addr_t ram_size,
                     const char *kernel_filename,
                     const char *kernel_cmdline,
                     const char *initrd_filename,
-                    ram_addr_t *below_4g_mem_size_p,
-                    ram_addr_t *above_4g_mem_size_p);
+                    ram_addr_t below_4g_mem_size,
+                    ram_addr_t above_4g_mem_size);
 qemu_irq *pc_allocate_cpu_irq(void);
 void pc_vga_init(PCIBus *pci_bus);
 void pc_basic_device_init(qemu_irq *isa_irq,
diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index a85214b..e487c38 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -72,7 +72,7 @@  static void pc_init1(ram_addr_t ram_size,
                      int kvmclock_enabled)
 {
     int i;
-    ram_addr_t below_4g_mem_size, above_4g_mem_size;
+    ram_addr_t below_4g_mem_size, above_4g_mem_size = 0;
     PCIBus *pci_bus;
     PCII440FXState *i440fx_state;
     int piix3_devfn = -1;
@@ -92,9 +92,16 @@  static void pc_init1(ram_addr_t ram_size,
         kvmclock_create();
     }
 
+    if (ram_size >= 0xe0000000 ) {
+        above_4g_mem_size = ram_size - 0xe0000000;
+        below_4g_mem_size = 0xe0000000;
+    } else {
+        below_4g_mem_size = ram_size;
+    }
+
     /* allocate ram and load rom/bios */
     pc_memory_init(ram_size, kernel_filename, kernel_cmdline, initrd_filename,
-                   &below_4g_mem_size, &above_4g_mem_size);
+                   below_4g_mem_size, above_4g_mem_size);
 
     cpu_irq = pc_allocate_cpu_irq();
     i8259 = i8259_init(cpu_irq[0]);