diff mbox

[v2,08/11] exec: move qemu_ram_addr_from_host_nofail to cputlb.c

Message ID 1372438702-20491-9-git-send-email-pbonzini@redhat.com
State New
Headers show

Commit Message

Paolo Bonzini June 28, 2013, 4:58 p.m. UTC
After the next patch it would not be used elsewhere anyway.  Also,
the _nofail and the standard versions of this function return different
things, which is confusing.  Removing the function from the public headers
limits the confusion.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 cputlb.c                  | 11 +++++++++++
 exec.c                    | 18 ++++--------------
 include/exec/cpu-common.h |  1 -
 3 files changed, 15 insertions(+), 15 deletions(-)

Comments

Jan Kiszka July 1, 2013, 6:34 p.m. UTC | #1
On 2013-06-28 18:58, Paolo Bonzini wrote:
> After the next patch it would not be used elsewhere anyway.  Also,
> the _nofail and the standard versions of this function return different
> things, which is confusing.  Removing the function from the public headers
> limits the confusion.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  cputlb.c                  | 11 +++++++++++
>  exec.c                    | 18 ++++--------------
>  include/exec/cpu-common.h |  1 -
>  3 files changed, 15 insertions(+), 15 deletions(-)
> 
> diff --git a/cputlb.c b/cputlb.c
> index 947f17c..b716bbe 100644
> --- a/cputlb.c
> +++ b/cputlb.c
> @@ -158,6 +158,17 @@ void tlb_reset_dirty_range(CPUTLBEntry *tlb_entry, uintptr_t start,
>      }
>  }
>  
> +static inline ram_addr_t qemu_ram_addr_from_host_nofail(void *ptr)
> +{
> +    ram_addr_t ram_addr;
> +
> +    if (qemu_ram_addr_from_host(ptr, &ram_addr)) {
> +        fprintf(stderr, "Bad ram pointer %p\n", ptr);
> +        abort();
> +    }
> +    return ram_addr;
> +}
> +
>  static inline void tlb_update_dirty(CPUTLBEntry *tlb_entry)
>  {
>      ram_addr_t ram_addr;
> diff --git a/exec.c b/exec.c
> index f3d7b18..aa76366 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -1398,6 +1398,8 @@ static void *qemu_ram_ptr_length(ram_addr_t addr, ram_addr_t *size)
>      }
>  }
>  
> +/* Some of the softmmu routines need to translate from a host pointer
> +   (typically a TLB entry) back to a ram offset.  */
>  int qemu_ram_addr_from_host(void *ptr, ram_addr_t *ram_addr)
>  {
>      RAMBlock *block;
> @@ -1430,19 +1432,6 @@ found:
>      return 0;
>  }
>  
> -/* Some of the softmmu routines need to translate from a host pointer
> -   (typically a TLB entry) back to a ram offset.  */
> -ram_addr_t qemu_ram_addr_from_host_nofail(void *ptr)
> -{
> -    ram_addr_t ram_addr;
> -
> -    if (qemu_ram_addr_from_host(ptr, &ram_addr)) {
> -        fprintf(stderr, "Bad ram pointer %p\n", ptr);
> -        abort();
> -    }
> -    return ram_addr;
> -}
> -
>  static void notdirty_mem_write(void *opaque, hwaddr ram_addr,
>                                 uint64_t val, unsigned size)
>  {
> @@ -2129,7 +2118,8 @@ void address_space_unmap(AddressSpace *as, void *buffer, hwaddr len,
>  {
>      if (buffer != bounce.buffer) {
>          if (is_write) {
> -            ram_addr_t addr1 = qemu_ram_addr_from_host_nofail(buffer);
> +            ram_addr_t addr1;
> +            qemu_ram_addr_from_host(buffer, &addr1);

assert() that it succeeds? There remains the risk someone passes an
invalid buffer address.

Ah, wait, you'll do this in patch 11. Well, OK.

>              while (access_len) {
>                  unsigned l;
>                  l = TARGET_PAGE_SIZE;
> diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h
> index e061e21..8063ba2 100644
> --- a/include/exec/cpu-common.h
> +++ b/include/exec/cpu-common.h
> @@ -51,7 +51,6 @@ typedef uint32_t CPUReadMemoryFunc(void *opaque, hwaddr addr);
>  void qemu_ram_remap(ram_addr_t addr, ram_addr_t length);
>  /* This should not be used by devices.  */
>  int qemu_ram_addr_from_host(void *ptr, ram_addr_t *ram_addr);
> -ram_addr_t qemu_ram_addr_from_host_nofail(void *ptr);
>  void qemu_ram_set_idstr(ram_addr_t addr, const char *name, DeviceState *dev);
>  
>  void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf,
> 

Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>

Jan
diff mbox

Patch

diff --git a/cputlb.c b/cputlb.c
index 947f17c..b716bbe 100644
--- a/cputlb.c
+++ b/cputlb.c
@@ -158,6 +158,17 @@  void tlb_reset_dirty_range(CPUTLBEntry *tlb_entry, uintptr_t start,
     }
 }
 
+static inline ram_addr_t qemu_ram_addr_from_host_nofail(void *ptr)
+{
+    ram_addr_t ram_addr;
+
+    if (qemu_ram_addr_from_host(ptr, &ram_addr)) {
+        fprintf(stderr, "Bad ram pointer %p\n", ptr);
+        abort();
+    }
+    return ram_addr;
+}
+
 static inline void tlb_update_dirty(CPUTLBEntry *tlb_entry)
 {
     ram_addr_t ram_addr;
diff --git a/exec.c b/exec.c
index f3d7b18..aa76366 100644
--- a/exec.c
+++ b/exec.c
@@ -1398,6 +1398,8 @@  static void *qemu_ram_ptr_length(ram_addr_t addr, ram_addr_t *size)
     }
 }
 
+/* Some of the softmmu routines need to translate from a host pointer
+   (typically a TLB entry) back to a ram offset.  */
 int qemu_ram_addr_from_host(void *ptr, ram_addr_t *ram_addr)
 {
     RAMBlock *block;
@@ -1430,19 +1432,6 @@  found:
     return 0;
 }
 
-/* Some of the softmmu routines need to translate from a host pointer
-   (typically a TLB entry) back to a ram offset.  */
-ram_addr_t qemu_ram_addr_from_host_nofail(void *ptr)
-{
-    ram_addr_t ram_addr;
-
-    if (qemu_ram_addr_from_host(ptr, &ram_addr)) {
-        fprintf(stderr, "Bad ram pointer %p\n", ptr);
-        abort();
-    }
-    return ram_addr;
-}
-
 static void notdirty_mem_write(void *opaque, hwaddr ram_addr,
                                uint64_t val, unsigned size)
 {
@@ -2129,7 +2118,8 @@  void address_space_unmap(AddressSpace *as, void *buffer, hwaddr len,
 {
     if (buffer != bounce.buffer) {
         if (is_write) {
-            ram_addr_t addr1 = qemu_ram_addr_from_host_nofail(buffer);
+            ram_addr_t addr1;
+            qemu_ram_addr_from_host(buffer, &addr1);
             while (access_len) {
                 unsigned l;
                 l = TARGET_PAGE_SIZE;
diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h
index e061e21..8063ba2 100644
--- a/include/exec/cpu-common.h
+++ b/include/exec/cpu-common.h
@@ -51,7 +51,6 @@  typedef uint32_t CPUReadMemoryFunc(void *opaque, hwaddr addr);
 void qemu_ram_remap(ram_addr_t addr, ram_addr_t length);
 /* This should not be used by devices.  */
 int qemu_ram_addr_from_host(void *ptr, ram_addr_t *ram_addr);
-ram_addr_t qemu_ram_addr_from_host_nofail(void *ptr);
 void qemu_ram_set_idstr(ram_addr_t addr, const char *name, DeviceState *dev);
 
 void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf,