qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH RFC 2/7] s390x: chsc nt2 events are pci-only


From: Christian Borntraeger
Subject: Re: [Qemu-devel] [PATCH RFC 2/7] s390x: chsc nt2 events are pci-only
Date: Fri, 7 Jul 2017 15:01:59 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0

On 07/07/2017 02:21 PM, Cornelia Huck wrote:
> The nt2 event class is pci-only and therefore implemented in
> the s390x pci code. Properly stub it out for non-pci builds.
> 
> Signed-off-by: Cornelia Huck <address@hidden>
> ---
>  hw/s390x/s390-pci-bus.c |  4 ++--
>  hw/s390x/s390-pci-bus.h |  4 ++--
>  target/s390x/ioinst.c   | 18 ++++++++++++++++++
>  3 files changed, 22 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
> index 5651483781..eee9a04eac 100644
> --- a/hw/s390x/s390-pci-bus.c
> +++ b/hw/s390x/s390-pci-bus.c
> @@ -47,7 +47,7 @@ S390pciState *s390_get_phb(void)
>      return phb;
>  }
> 
> -int chsc_sei_nt2_get_event(void *res)
> +int pci_chsc_sei_nt2_get_event(void *res)
>  {
>      ChscSeiNt2Res *nt2_res = (ChscSeiNt2Res *)res;
>      PciCcdfAvail *accdf;
> @@ -87,7 +87,7 @@ int chsc_sei_nt2_get_event(void *res)
>      return rc;
>  }
> 
> -int chsc_sei_nt2_have_event(void)
> +int pci_chsc_sei_nt2_have_event(void)
>  {
>      S390pciState *s = s390_get_phb();
> 
> diff --git a/hw/s390x/s390-pci-bus.h b/hw/s390x/s390-pci-bus.h
> index cf142a3e68..29d3da10f6 100644
> --- a/hw/s390x/s390-pci-bus.h
> +++ b/hw/s390x/s390-pci-bus.h
> @@ -318,8 +318,8 @@ typedef struct S390pciState {
>  } S390pciState;
> 
>  S390pciState *s390_get_phb(void);
> -int chsc_sei_nt2_get_event(void *res);
> -int chsc_sei_nt2_have_event(void);
> +int pci_chsc_sei_nt2_get_event(void *res);
> +int pci_chsc_sei_nt2_have_event(void);
>  void s390_pci_sclp_configure(SCCB *sccb);
>  void s390_pci_sclp_deconfigure(SCCB *sccb);
>  void s390_pci_iommu_enable(S390PCIIOMMU *iommu);
> diff --git a/target/s390x/ioinst.c b/target/s390x/ioinst.c
> index d5e6b8066b..a552f53167 100644
> --- a/target/s390x/ioinst.c
> +++ b/target/s390x/ioinst.c
> @@ -599,6 +599,24 @@ static int chsc_sei_nt0_have_event(void)
>      return 0;
>  }
> 
> +static int chsc_sei_nt2_get_event(void *res)
> +{
> +#ifdef CONFIG_PCI
> +    return pci_chsc_sei_nt2_get_event(res);
> +#else
> +    return 1;
> +#endif
> +}
> +
> +static int chsc_sei_nt2_have_event(void)
> +{
> +#ifdef CONFIG_PCI
> +    return pci_chsc_sei_nt2_have_event();
> +#else
> +    return 0;
> +#endif

I think this is similar to the io instructions. We should use the CPU
model to decide what to return. This will then cover the 3 cases
- CONFIG_PCI off
- CONFIG_PCI on, but PCI disabled via cpu model
- CONFIG_PCI on, and PCI enabled via cpu model

no?


> +}
> +
>  #define CHSC_SEI_NT0    (1ULL << 63)
>  #define CHSC_SEI_NT2    (1ULL << 61)
>  static void ioinst_handle_chsc_sei(ChscReq *req, ChscResp *res)
> 




reply via email to

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