qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] s390x/kvm: fix run_on_cpu sigp conversions


From: Christian Borntraeger
Subject: Re: [Qemu-devel] [PATCH] s390x/kvm: fix run_on_cpu sigp conversions
Date: Fri, 4 Nov 2016 09:25:46 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0

On 11/04/2016 09:23 AM, Christian Borntraeger wrote:
> On 11/02/2016 05:21 PM, Cornelia Huck wrote:
>> Commit 14e6fe12a ("*_run_on_cpu: introduce run_on_cpu_data type")
>> attempted to convert all users of run_on_cpu to use the new
>> run_on_cpu_data type. It missed to change the called sigp_* routines,
>> however. Fix that.
>>
>> Fixes: 14e6fe12a ("*_run_on_cpu: introduce run_on_cpu_data type")
>> Signed-off-by: Cornelia Huck <address@hidden>
>> ---
>> Peter, Stefan: This fixes building for s390x which is currently
>> broken (at least with kvm enabled). Two questions:
>> - Will you pick this up as a build fix, or should I do a pull req?
>> - Can we do anything more to catch errors like this?
> 
> I think if Peter could apply this immediately this would help testing
> the softfreeze code.
> Acked-by: Christian Borntraeger <address@hidden>
> 

s/Peter/Stefan/  of course.


> 
>> ---
>>  target-s390x/kvm.c | 36 ++++++++++++++++++------------------
>>  1 file changed, 18 insertions(+), 18 deletions(-)
>>
>> diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c
>> index 36b4847..97afe02 100644
>> --- a/target-s390x/kvm.c
>> +++ b/target-s390x/kvm.c
>> @@ -1401,10 +1401,10 @@ static void set_sigp_status(SigpInfo *si, uint64_t 
>> status)
>>      si->cc = SIGP_CC_STATUS_STORED;
>>  }
>>
>> -static void sigp_start(CPUState *cs, void *arg)
>> +static void sigp_start(CPUState *cs, run_on_cpu_data arg)
>>  {
>>      S390CPU *cpu = S390_CPU(cs);
>> -    SigpInfo *si = arg;
>> +    SigpInfo *si = arg.host_ptr;
>>
>>      if (s390_cpu_get_state(cpu) != CPU_STATE_STOPPED) {
>>          si->cc = SIGP_CC_ORDER_CODE_ACCEPTED;
>> @@ -1415,10 +1415,10 @@ static void sigp_start(CPUState *cs, void *arg)
>>      si->cc = SIGP_CC_ORDER_CODE_ACCEPTED;
>>  }
>>
>> -static void sigp_stop(CPUState *cs, void *arg)
>> +static void sigp_stop(CPUState *cs, run_on_cpu_data arg)
>>  {
>>      S390CPU *cpu = S390_CPU(cs);
>> -    SigpInfo *si = arg;
>> +    SigpInfo *si = arg.host_ptr;
>>      struct kvm_s390_irq irq = {
>>          .type = KVM_S390_SIGP_STOP,
>>      };
>> @@ -1501,10 +1501,10 @@ static int kvm_s390_store_status(S390CPU *cpu, 
>> hwaddr addr, bool store_arch)
>>      return 0;
>>  }
>>
>> -static void sigp_stop_and_store_status(CPUState *cs, void *arg)
>> +static void sigp_stop_and_store_status(CPUState *cs, run_on_cpu_data arg)
>>  {
>>      S390CPU *cpu = S390_CPU(cs);
>> -    SigpInfo *si = arg;
>> +    SigpInfo *si = arg.host_ptr;
>>      struct kvm_s390_irq irq = {
>>          .type = KVM_S390_SIGP_STOP,
>>      };
>> @@ -1529,10 +1529,10 @@ static void sigp_stop_and_store_status(CPUState *cs, 
>> void *arg)
>>      si->cc = SIGP_CC_ORDER_CODE_ACCEPTED;
>>  }
>>
>> -static void sigp_store_status_at_address(CPUState *cs, void *arg)
>> +static void sigp_store_status_at_address(CPUState *cs, run_on_cpu_data arg)
>>  {
>>      S390CPU *cpu = S390_CPU(cs);
>> -    SigpInfo *si = arg;
>> +    SigpInfo *si = arg.host_ptr;
>>      uint32_t address = si->param & 0x7ffffe00u;
>>
>>      /* cpu has to be stopped */
>> @@ -1550,10 +1550,10 @@ static void sigp_store_status_at_address(CPUState 
>> *cs, void *arg)
>>      si->cc = SIGP_CC_ORDER_CODE_ACCEPTED;
>>  }
>>
>> -static void sigp_store_adtl_status(CPUState *cs, void *arg)
>> +static void sigp_store_adtl_status(CPUState *cs, run_on_cpu_data arg)
>>  {
>>      S390CPU *cpu = S390_CPU(cs);
>> -    SigpInfo *si = arg;
>> +    SigpInfo *si = arg.host_ptr;
>>
>>      if (!s390_has_feat(S390_FEAT_VECTOR)) {
>>          set_sigp_status(si, SIGP_STAT_INVALID_ORDER);
>> @@ -1581,10 +1581,10 @@ static void sigp_store_adtl_status(CPUState *cs, 
>> void *arg)
>>      si->cc = SIGP_CC_ORDER_CODE_ACCEPTED;
>>  }
>>
>> -static void sigp_restart(CPUState *cs, void *arg)
>> +static void sigp_restart(CPUState *cs, run_on_cpu_data arg)
>>  {
>>      S390CPU *cpu = S390_CPU(cs);
>> -    SigpInfo *si = arg;
>> +    SigpInfo *si = arg.host_ptr;
>>      struct kvm_s390_irq irq = {
>>          .type = KVM_S390_RESTART,
>>      };
>> @@ -1612,11 +1612,11 @@ int kvm_s390_cpu_restart(S390CPU *cpu)
>>      return 0;
>>  }
>>
>> -static void sigp_initial_cpu_reset(CPUState *cs, void *arg)
>> +static void sigp_initial_cpu_reset(CPUState *cs, run_on_cpu_data arg)
>>  {
>>      S390CPU *cpu = S390_CPU(cs);
>>      S390CPUClass *scc = S390_CPU_GET_CLASS(cpu);
>> -    SigpInfo *si = arg;
>> +    SigpInfo *si = arg.host_ptr;
>>
>>      cpu_synchronize_state(cs);
>>      scc->initial_cpu_reset(cs);
>> @@ -1624,11 +1624,11 @@ static void sigp_initial_cpu_reset(CPUState *cs, 
>> void *arg)
>>      si->cc = SIGP_CC_ORDER_CODE_ACCEPTED;
>>  }
>>
>> -static void sigp_cpu_reset(CPUState *cs, void *arg)
>> +static void sigp_cpu_reset(CPUState *cs, run_on_cpu_data arg)
>>  {
>>      S390CPU *cpu = S390_CPU(cs);
>>      S390CPUClass *scc = S390_CPU_GET_CLASS(cpu);
>> -    SigpInfo *si = arg;
>> +    SigpInfo *si = arg.host_ptr;
>>
>>      cpu_synchronize_state(cs);
>>      scc->cpu_reset(cs);
>> @@ -1636,10 +1636,10 @@ static void sigp_cpu_reset(CPUState *cs, void *arg)
>>      si->cc = SIGP_CC_ORDER_CODE_ACCEPTED;
>>  }
>>
>> -static void sigp_set_prefix(CPUState *cs, void *arg)
>> +static void sigp_set_prefix(CPUState *cs, run_on_cpu_data arg)
>>  {
>>      S390CPU *cpu = S390_CPU(cs);
>> -    SigpInfo *si = arg;
>> +    SigpInfo *si = arg.host_ptr;
>>      uint32_t addr = si->param & 0x7fffe000u;
>>
>>      cpu_synchronize_state(cs);
>>
> 




reply via email to

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