From: Alexey Kardashevskiy <aik@ozlabs.ru>
To: David Gibson <david@gibson.dropbear.id.au>, mdroth@linux.vnet.ibm.com
Cc: lvivier@redhat.com, thuth@redhat.com, qemu-ppc@nongnu.org,
agraf@suse.de, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCHv2 2/3] spapr: Remove rtas_st_buffer_direct()
Date: Tue, 19 Jan 2016 15:41:21 +1100 [thread overview]
Message-ID: <569DBE71.6090308@ozlabs.ru> (raw)
In-Reply-To: <1453177824-27408-3-git-send-email-david@gibson.dropbear.id.au>
On 01/19/2016 03:30 PM, David Gibson wrote:
> rtas_st_buffer_direct() is a not particularly useful wrapper around
> cpu_physical_memory_write(). All the callers are in
> rtas_ibm_configure_connector, where it's better handled by local helper.
>
> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru>
> ---
> hw/ppc/spapr_rtas.c | 17 ++++++++++-------
> include/hw/ppc/spapr.h | 8 --------
> 2 files changed, 10 insertions(+), 15 deletions(-)
>
> diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
> index 32cdd66..96759be 100644
> --- a/hw/ppc/spapr_rtas.c
> +++ b/hw/ppc/spapr_rtas.c
> @@ -506,6 +506,13 @@ out:
> #define CC_VAL_DATA_OFFSET ((CC_IDX_PROP_DATA_OFFSET + 1) * 4)
> #define CC_WA_LEN 4096
>
> +static void configure_connector_st(target_ulong addr, target_ulong offset,
> + const void *buf, size_t len)
> +{
> + cpu_physical_memory_write(ppc64_phys_to_real(addr + offset),
> + buf, MIN(len, CC_WA_LEN - offset));
> +}
> +
> static void rtas_ibm_configure_connector(PowerPCCPU *cpu,
> sPAPRMachineState *spapr,
> uint32_t token, uint32_t nargs,
> @@ -571,8 +578,7 @@ static void rtas_ibm_configure_connector(PowerPCCPU *cpu,
> /* provide the name of the next OF node */
> wa_offset = CC_VAL_DATA_OFFSET;
> rtas_st(wa_addr, CC_IDX_NODE_NAME_OFFSET, wa_offset);
> - rtas_st_buffer_direct(wa_addr + wa_offset, CC_WA_LEN - wa_offset,
> - (uint8_t *)name, strlen(name) + 1);
> + configure_connector_st(wa_addr, wa_offset, name, strlen(name) + 1);
> resp = SPAPR_DR_CC_RESPONSE_NEXT_CHILD;
> break;
> case FDT_END_NODE:
> @@ -597,8 +603,7 @@ static void rtas_ibm_configure_connector(PowerPCCPU *cpu,
> /* provide the name of the next OF property */
> wa_offset = CC_VAL_DATA_OFFSET;
> rtas_st(wa_addr, CC_IDX_PROP_NAME_OFFSET, wa_offset);
> - rtas_st_buffer_direct(wa_addr + wa_offset, CC_WA_LEN - wa_offset,
> - (uint8_t *)name, strlen(name) + 1);
> + configure_connector_st(wa_addr, wa_offset, name, strlen(name) + 1);
>
> /* provide the length and value of the OF property. data gets
> * placed immediately after NULL terminator of the OF property's
> @@ -607,9 +612,7 @@ static void rtas_ibm_configure_connector(PowerPCCPU *cpu,
> wa_offset += strlen(name) + 1,
> rtas_st(wa_addr, CC_IDX_PROP_LEN, prop_len);
> rtas_st(wa_addr, CC_IDX_PROP_DATA_OFFSET, wa_offset);
> - rtas_st_buffer_direct(wa_addr + wa_offset, CC_WA_LEN - wa_offset,
> - (uint8_t *)((struct fdt_property *)prop)->data,
> - prop_len);
> + configure_connector_st(wa_addr, wa_offset, prop->data, prop_len);
> resp = SPAPR_DR_CC_RESPONSE_NEXT_PROPERTY;
> break;
> case FDT_END:
> diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
> index 1e10fc9..1f9e722 100644
> --- a/include/hw/ppc/spapr.h
> +++ b/include/hw/ppc/spapr.h
> @@ -506,14 +506,6 @@ static inline void rtas_st(target_ulong phys, int n, uint32_t val)
> stl_be_phys(&address_space_memory, ppc64_phys_to_real(phys + 4*n), val);
> }
>
> -static inline void rtas_st_buffer_direct(target_ulong phys,
> - target_ulong phys_len,
> - uint8_t *buffer, uint16_t buffer_len)
> -{
> - cpu_physical_memory_write(ppc64_phys_to_real(phys), buffer,
> - MIN(buffer_len, phys_len));
> -}
> -
> typedef void (*spapr_rtas_fn)(PowerPCCPU *cpu, sPAPRMachineState *sm,
> uint32_t token,
> uint32_t nargs, target_ulong args,
>
--
Alexey
next prev parent reply other threads:[~2016-01-19 4:41 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-19 4:30 [Qemu-devel] [PATCHv2 0/3] Reduce abuse of rtas_st / rtas_ld David Gibson
2016-01-19 4:30 ` [Qemu-devel] [PATCHv2 1/3] spapr: Small fixes to rtas_ibm_get_system_parameter, remove rtas_st_buffer David Gibson
2016-01-19 4:38 ` Alexey Kardashevskiy
2016-01-19 4:59 ` David Gibson
2016-01-19 4:30 ` [Qemu-devel] [PATCHv2 2/3] spapr: Remove rtas_st_buffer_direct() David Gibson
2016-01-19 4:41 ` Alexey Kardashevskiy [this message]
2016-01-19 4:30 ` [Qemu-devel] [PATCHv2 3/3] spapr: Remove abuse of rtas_ld() in h_client_architecture_support David Gibson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=569DBE71.6090308@ozlabs.ru \
--to=aik@ozlabs.ru \
--cc=agraf@suse.de \
--cc=david@gibson.dropbear.id.au \
--cc=lvivier@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.