On 18.09.2017 18:00, David Hildenbrand wrote: > Preparation for TCG, for KVM is this is completely handled in the > kernel. > > Signed-off-by: David Hildenbrand <da...@redhat.com> > --- > target/s390x/cpu.h | 2 ++ > target/s390x/sigp.c | 25 +++++++++++++++++++++++++ > 2 files changed, 27 insertions(+) > > diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h > index 5d03802c7d..5aa755d7b5 100644 > --- a/target/s390x/cpu.h > +++ b/target/s390x/cpu.h > @@ -594,6 +594,7 @@ struct sysib_322 { > #define SIGP_SET_PREFIX 0x0d > #define SIGP_STORE_STATUS_ADDR 0x0e > #define SIGP_SET_ARCH 0x12 > +#define SIGP_SENSE_RUNNING 0x15 > #define SIGP_STORE_ADTL_STATUS 0x17 > > /* SIGP condition codes */ > @@ -604,6 +605,7 @@ struct sysib_322 { > > /* SIGP status bits */ > #define SIGP_STAT_EQUIPMENT_CHECK 0x80000000UL > +#define SIGP_STAT_NOT_RUNNING 0x00000400UL > #define SIGP_STAT_INCORRECT_STATE 0x00000200UL > #define SIGP_STAT_INVALID_PARAMETER 0x00000100UL > #define SIGP_STAT_EXT_CALL_PENDING 0x00000080UL > diff --git a/target/s390x/sigp.c b/target/s390x/sigp.c > index 9587c3d319..c57312b743 100644 > --- a/target/s390x/sigp.c > +++ b/target/s390x/sigp.c > @@ -234,6 +234,28 @@ static void sigp_set_prefix(CPUState *cs, > run_on_cpu_data arg) > si->cc = SIGP_CC_ORDER_CODE_ACCEPTED; > } > > +static void sigp_sense_running(S390CPU *dst_cpu, SigpInfo *si) > +{ > + if (!tcg_enabled()) { > + /* handled in KVM */ > + set_sigp_status(si, SIGP_STAT_INVALID_ORDER); > + return; > + }
If we're sure that this is always handled in the kernel, I think you could simply do a "g_assert(tcg_enabled())" here instead? Thomas