[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 08/11] exec: move qemu_ram_addr_from_host_nof
From: |
Jan Kiszka |
Subject: |
Re: [Qemu-devel] [PATCH v2 08/11] exec: move qemu_ram_addr_from_host_nofail to cputlb.c |
Date: |
Mon, 01 Jul 2013 20:34:02 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 |
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 <address@hidden>
> ---
> 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 <address@hidden>
Jan
--
Siemens AG, Corporate Technology, CT RTC ITP SES-DE
Corporate Competence Center Embedded Linux
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH v2 08/11] exec: move qemu_ram_addr_from_host_nofail to cputlb.c,
Jan Kiszka <=