s390x: chsc nt2 events are pci-only

The nt2 event class is pci-only - don't look for events if pci is
not in the active cpu model.

Reviewed-by: Thomas Huth <thuth@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
This commit is contained in:
Cornelia Huck 2017-07-06 16:40:21 +02:00
parent 5838d65770
commit 1c5deaec77
4 changed files with 22 additions and 6 deletions

View File

@ -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();

View File

@ -319,8 +319,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);

View File

@ -7,12 +7,12 @@
#include "s390-pci-bus.h"
/* target/s390x/ioinst.c */
int chsc_sei_nt2_get_event(void *res)
int pci_chsc_sei_nt2_get_event(void *res)
{
return 1;
}
int chsc_sei_nt2_have_event(void)
int pci_chsc_sei_nt2_have_event(void)
{
return 0;
}

View File

@ -599,6 +599,22 @@ static int chsc_sei_nt0_have_event(void)
return 0;
}
static int chsc_sei_nt2_get_event(void *res)
{
if (s390_has_feat(S390_FEAT_ZPCI)) {
return pci_chsc_sei_nt2_get_event(res);
}
return 1;
}
static int chsc_sei_nt2_have_event(void)
{
if (s390_has_feat(S390_FEAT_ZPCI)) {
return pci_chsc_sei_nt2_have_event();
}
return 0;
}
#define CHSC_SEI_NT0 (1ULL << 63)
#define CHSC_SEI_NT2 (1ULL << 61)
static void ioinst_handle_chsc_sei(ChscReq *req, ChscResp *res)