qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v5 2/4] spapr: Implement H_PROD


From: Nicholas Piggin
Subject: Re: [Qemu-devel] [PATCH v5 2/4] spapr: Implement H_PROD
Date: Wed, 17 Jul 2019 21:06:15 +1000
User-agent: astroid/0.14.0 (https://github.com/astroidmail/astroid)

Cédric Le Goater's on July 17, 2019 8:16 pm:
> On 17/07/2019 07:39, Nicholas Piggin wrote:
>> H_PROD is added, and H_CEDE is modified to test the prod bit
>> according to PAPR.
>> 
>> Signed-off-by: Nicholas Piggin <address@hidden>
>> ---
>>  hw/ppc/spapr_hcall.c | 29 +++++++++++++++++++++++++++++
>>  1 file changed, 29 insertions(+)
>> 
>> diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c
>> index e615881ac4..8b208ab259 100644
>> --- a/hw/ppc/spapr_hcall.c
>> +++ b/hw/ppc/spapr_hcall.c
>> @@ -1050,14 +1050,41 @@ static target_ulong h_cede(PowerPCCPU *cpu, 
>> SpaprMachineState *spapr,
>>  {
>>      CPUPPCState *env = &cpu->env;
>>      CPUState *cs = CPU(cpu);
>> +    SpaprCpuState *spapr_cpu = spapr_cpu_state(cpu);
>>  
>>      env->msr |= (1ULL << MSR_EE);
>>      hreg_compute_hflags(env);
>> +
>> +    if (spapr_cpu->prod) {
>> +        spapr_cpu->prod = false;
>> +        return H_SUCCESS;
>> +    }
>> +
>>      if (!cpu_has_work(cs)) {
>>          cs->halted = 1;
>>          cs->exception_index = EXCP_HLT;
>>          cs->exit_request = 1;
>>      }
>> +
>> +    return H_SUCCESS;
>> +}
>> +
>> +static target_ulong h_prod(PowerPCCPU *cpu, SpaprMachineState *spapr,
>> +                           target_ulong opcode, target_ulong *args)
>> +{
>> +    target_long target = args[0];
>> +    CPUState *cs;
>> +    SpaprCpuState *spapr_cpu = spapr_cpu_state(cpu);
> 
> shouldn't we grab the SpaprCpuState of 'target' instead ?  

Yes we should, good catch.

Thanks,
Nick



reply via email to

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