[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