From: David Gibson <david@gibson.dropbear.id.au>
To: Gavin Shan <gwshan@linux.vnet.ibm.com>
Cc: aik@ozlabs.ru, peter.maydell@linaro.org, thuth@redhat.com,
qemu-ppc@nongnu.org, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v7 6/8] sPAPR: Introduce rtas_ldq()
Date: Tue, 1 Sep 2015 11:05:38 +1000 [thread overview]
Message-ID: <20150901010538.GO11475@voom.redhat.com> (raw)
In-Reply-To: <1440746120-21577-7-git-send-email-gwshan@linux.vnet.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 5191 bytes --]
On Fri, Aug 28, 2015 at 05:15:18PM +1000, Gavin Shan wrote:
> This introduces rtas_ldq() to load 64-bits parameter from continuous
> two 4-bytes memory chunk of RTAS parameter buffer, to simplify the
> code.
>
> Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
Looks good. Since this doesn't depend on the other patches, I've
merged it into spapr-next already.
> ---
> hw/ppc/spapr_pci.c | 20 ++++++++++----------
> include/hw/ppc/spapr.h | 5 +++++
> 2 files changed, 15 insertions(+), 10 deletions(-)
>
> diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
> index 9d41060..bc30631 100644
> --- a/hw/ppc/spapr_pci.c
> +++ b/hw/ppc/spapr_pci.c
> @@ -140,7 +140,7 @@ static void rtas_ibm_read_pci_config(PowerPCCPU *cpu, sPAPRMachineState *spapr,
> return;
> }
>
> - buid = ((uint64_t)rtas_ld(args, 1) << 32) | rtas_ld(args, 2);
> + buid = rtas_ldq(args, 1);
> size = rtas_ld(args, 3);
> addr = rtas_ld(args, 0);
>
> @@ -206,7 +206,7 @@ static void rtas_ibm_write_pci_config(PowerPCCPU *cpu, sPAPRMachineState *spapr,
> return;
> }
>
> - buid = ((uint64_t)rtas_ld(args, 1) << 32) | rtas_ld(args, 2);
> + buid = rtas_ldq(args, 1);
> val = rtas_ld(args, 4);
> size = rtas_ld(args, 3);
> addr = rtas_ld(args, 0);
> @@ -269,7 +269,7 @@ static void rtas_ibm_change_msi(PowerPCCPU *cpu, sPAPRMachineState *spapr,
> target_ulong rets)
> {
> uint32_t config_addr = rtas_ld(args, 0);
> - uint64_t buid = ((uint64_t)rtas_ld(args, 1) << 32) | rtas_ld(args, 2);
> + uint64_t buid = rtas_ldq(args, 1);
> unsigned int func = rtas_ld(args, 3);
> unsigned int req_num = rtas_ld(args, 4); /* 0 == remove all */
> unsigned int seq_num = rtas_ld(args, 5);
> @@ -391,7 +391,7 @@ static void rtas_ibm_query_interrupt_source_number(PowerPCCPU *cpu,
> target_ulong rets)
> {
> uint32_t config_addr = rtas_ld(args, 0);
> - uint64_t buid = ((uint64_t)rtas_ld(args, 1) << 32) | rtas_ld(args, 2);
> + uint64_t buid = rtas_ldq(args, 1);
> unsigned int intr_src_num = -1, ioa_intr_num = rtas_ld(args, 3);
> sPAPRPHBState *phb = NULL;
> PCIDevice *pdev = NULL;
> @@ -440,7 +440,7 @@ static void rtas_ibm_set_eeh_option(PowerPCCPU *cpu,
> goto param_error_exit;
> }
>
> - buid = ((uint64_t)rtas_ld(args, 1) << 32) | rtas_ld(args, 2);
> + buid = rtas_ldq(args, 1);
> addr = rtas_ld(args, 0);
> option = rtas_ld(args, 3);
>
> @@ -484,7 +484,7 @@ static void rtas_ibm_get_config_addr_info2(PowerPCCPU *cpu,
> goto param_error_exit;
> }
>
> - buid = ((uint64_t)rtas_ld(args, 1) << 32) | rtas_ld(args, 2);
> + buid = rtas_ldq(args, 1);
> sphb = spapr_pci_find_phb(spapr, buid);
> if (!sphb) {
> goto param_error_exit;
> @@ -539,7 +539,7 @@ static void rtas_ibm_read_slot_reset_state2(PowerPCCPU *cpu,
> goto param_error_exit;
> }
>
> - buid = ((uint64_t)rtas_ld(args, 1) << 32) | rtas_ld(args, 2);
> + buid = rtas_ldq(args, 1);
> sphb = spapr_pci_find_phb(spapr, buid);
> if (!sphb) {
> goto param_error_exit;
> @@ -584,7 +584,7 @@ static void rtas_ibm_set_slot_reset(PowerPCCPU *cpu,
> goto param_error_exit;
> }
>
> - buid = ((uint64_t)rtas_ld(args, 1) << 32) | rtas_ld(args, 2);
> + buid = rtas_ldq(args, 1);
> option = rtas_ld(args, 3);
> sphb = spapr_pci_find_phb(spapr, buid);
> if (!sphb) {
> @@ -619,7 +619,7 @@ static void rtas_ibm_configure_pe(PowerPCCPU *cpu,
> goto param_error_exit;
> }
>
> - buid = ((uint64_t)rtas_ld(args, 1) << 32) | rtas_ld(args, 2);
> + buid = rtas_ldq(args, 1);
> sphb = spapr_pci_find_phb(spapr, buid);
> if (!sphb) {
> goto param_error_exit;
> @@ -654,7 +654,7 @@ static void rtas_ibm_slot_error_detail(PowerPCCPU *cpu,
> goto param_error_exit;
> }
>
> - buid = ((uint64_t)rtas_ld(args, 1) << 32) | rtas_ld(args, 2);
> + buid = rtas_ldq(args, 1);
> sphb = spapr_pci_find_phb(spapr, buid);
> if (!sphb) {
> goto param_error_exit;
> diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
> index d87c6d4..c75cc5e 100644
> --- a/include/hw/ppc/spapr.h
> +++ b/include/hw/ppc/spapr.h
> @@ -492,6 +492,11 @@ static inline uint32_t rtas_ld(target_ulong phys, int n)
> return ldl_be_phys(&address_space_memory, ppc64_phys_to_real(phys + 4*n));
> }
>
> +static inline uint64_t rtas_ldq(target_ulong phys, int n)
> +{
> + return (uint64_t)rtas_ld(phys, n) << 32 | rtas_ld(phys, n + 1);
> +}
> +
> 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);
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2015-09-01 1:19 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-28 7:15 [Qemu-devel] [PATCH v7 0/8] sPAPR: Support EEH Error Injection Gavin Shan
2015-08-28 7:15 ` [Qemu-devel] [PATCH v7 1/8] scripts: Allow include "stdint.h" in virtio headers Gavin Shan
2015-09-01 0:50 ` David Gibson
2015-08-28 7:15 ` [Qemu-devel] [PATCH v7 2/8] scripts: Include arch/powerpc/include/uapi/asm/eeh.h Gavin Shan
2015-09-01 0:51 ` David Gibson
2015-08-28 7:15 ` [Qemu-devel] [PATCH v7 3/8] scripts: Submit changes while updating linux headers Gavin Shan
2015-08-28 11:50 ` [Qemu-devel] [Qemu-ppc] " Laurent Vivier
2015-08-28 12:30 ` Gavin Shan
2015-08-28 13:06 ` Gavin Shan
2015-08-31 12:37 ` Laurent Vivier
2015-08-31 23:11 ` Gavin Shan
2015-09-01 0:56 ` [Qemu-devel] " David Gibson
2015-08-28 7:15 ` [Qemu-devel] [PATCH v7 4/8] Synchronize Linux headers from kernel 4.2.0-rc8 Gavin Shan
2015-08-28 7:15 ` [Qemu-devel] [PATCH v7 5/8] Obsolete PCI_MSIX_FLAGS_BIRMASK Gavin Shan
2015-09-01 1:00 ` David Gibson
2015-08-28 7:15 ` [Qemu-devel] [PATCH v7 6/8] sPAPR: Introduce rtas_ldq() Gavin Shan
2015-09-01 1:05 ` David Gibson [this message]
2015-08-28 7:15 ` [Qemu-devel] [PATCH v7 7/8] sPAPR: Support RTAS call ibm, {open, close}-errinjct Gavin Shan
2015-09-01 1:06 ` David Gibson
2015-08-28 7:15 ` [Qemu-devel] [PATCH v7 8/8] sPAPR: Support RTAS call ibm,errinjct Gavin Shan
2015-09-04 4:53 ` [Qemu-devel] [PATCH v7 8/8] sPAPR: Support RTAS call ibm, errinjct 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=20150901010538.GO11475@voom.redhat.com \
--to=david@gibson.dropbear.id.au \
--cc=aik@ozlabs.ru \
--cc=gwshan@linux.vnet.ibm.com \
--cc=peter.maydell@linaro.org \
--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.