qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] s390: Storage key global access


From: Jason J. Herne
Subject: Re: [Qemu-devel] [PATCH] s390: Storage key global access
Date: Mon, 03 Feb 2014 15:09:33 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0

On 01/22/2014 10:48 AM, Jason J. Herne wrote:
From: "Jason J. Herne" <address@hidden>

Introduces global access to storage key data so we can set it for each cpu in
the S390 cpu initialization routine.

Signed-off-by: Jason J. Herne <address@hidden>
---
  hw/s390x/s390-virtio-ccw.c | 3 +--
  hw/s390x/s390-virtio.c     | 6 +++---
  hw/s390x/s390-virtio.h     | 2 +-
  target-s390x/cpu.h         | 3 +++
  4 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 733d988..62319b9 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -80,7 +80,6 @@ static void ccw_init(QEMUMachineInitArgs *args)
      MemoryRegion *sysmem = get_system_memory();
      MemoryRegion *ram = g_new(MemoryRegion, 1);
      int shift = 0;
-    uint8_t *storage_keys;
      int ret;
      VirtualCssBus *css_bus;

@@ -112,7 +111,7 @@ static void ccw_init(QEMUMachineInitArgs *args)
      storage_keys = g_malloc0(my_ram_size / TARGET_PAGE_SIZE);

      /* init CPUs */
-    s390_init_cpus(args->cpu_model, storage_keys);
+    s390_init_cpus(args->cpu_model);

      if (kvm_enabled()) {
          kvm_s390_enable_css_support(s390_cpu_addr2state(0));
diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c
index 7adf92a..804483f 100644
--- a/hw/s390x/s390-virtio.c
+++ b/hw/s390x/s390-virtio.c
@@ -53,6 +53,7 @@

  static VirtIOS390Bus *s390_bus;
  static S390CPU **ipi_states;
+uint8_t *storage_keys;

  S390CPU *s390_cpu_addr2state(uint16_t cpu_addr)
  {
@@ -176,7 +177,7 @@ void s390_init_ipl_dev(const char *kernel_filename,
      qdev_init_nofail(dev);
  }

-void s390_init_cpus(const char *cpu_model, uint8_t *storage_keys)
+void s390_init_cpus(const char *cpu_model)
  {
      int i;

@@ -231,7 +232,6 @@ static void s390_init(QEMUMachineInitArgs *args)
      MemoryRegion *sysmem = get_system_memory();
      MemoryRegion *ram = g_new(MemoryRegion, 1);
      int shift = 0;
-    uint8_t *storage_keys;
      void *virtio_region;
      hwaddr virtio_region_len;
      hwaddr virtio_region_start;
@@ -273,7 +273,7 @@ static void s390_init(QEMUMachineInitArgs *args)
      storage_keys = g_malloc0(my_ram_size / TARGET_PAGE_SIZE);

      /* init CPUs */
-    s390_init_cpus(args->cpu_model, storage_keys);
+    s390_init_cpus(args->cpu_model);

      /* Create VirtIO network adapters */
      s390_create_virtio_net((BusState *)s390_bus, "virtio-net-s390");
diff --git a/hw/s390x/s390-virtio.h b/hw/s390x/s390-virtio.h
index 5c405e7..c1cb042 100644
--- a/hw/s390x/s390-virtio.h
+++ b/hw/s390x/s390-virtio.h
@@ -20,7 +20,7 @@
  typedef int (*s390_virtio_fn)(const uint64_t *args);
  void s390_register_virtio_hypercall(uint64_t code, s390_virtio_fn fn);

-void s390_init_cpus(const char *cpu_model, uint8_t *storage_keys);
+void s390_init_cpus(const char *cpu_model);
  void s390_init_ipl_dev(const char *kernel_filename,
                         const char *kernel_cmdline,
                         const char *initrd_filename,
diff --git a/target-s390x/cpu.h b/target-s390x/cpu.h
index 68b5ab7..b1432c7 100644
--- a/target-s390x/cpu.h
+++ b/target-s390x/cpu.h
@@ -381,6 +381,9 @@ static inline void kvm_s390_interrupt_internal(S390CPU 
*cpu, int type,
  {
  }
  #endif
+
+extern uint8_t *storage_keys;
+
  S390CPU *s390_cpu_addr2state(uint16_t cpu_addr);
  void s390_add_running_cpu(S390CPU *cpu);
  unsigned s390_del_running_cpu(S390CPU *cpu);


Ping.

--
-- Jason J. Herne (address@hidden)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]