All of lore.kernel.org
 help / color / mirror / Atom feed
From: Harsh Prateek Bora <harshpb@linux.ibm.com>
To: Peter Maydell <peter.maydell@linaro.org>,
	Nicholas Piggin <npiggin@gmail.com>
Cc: qemu-devel@nongnu.org, qemu-ppc@nongnu.org,
	Daniel Henrique Barboza <danielhb413@gmail.com>,
	Michael Neuling <mikey@neuling.org>
Subject: Re: [PULL 35/38] spapr: nested: Introduce H_GUEST_[GET|SET]_STATE hcalls.
Date: Wed, 27 Mar 2024 11:11:10 +0530	[thread overview]
Message-ID: <1bc2bb17-23a5-4b36-a11b-bc7384a54a1d@linux.ibm.com> (raw)
In-Reply-To: <CAFEAcA9dLHYvY7-zCntKFZGr1VJUW6b3y5UqFAq-XN8zgVe2WQ@mail.gmail.com>



On 3/26/24 21:32, Peter Maydell wrote:
> On Tue, 12 Mar 2024 at 17:11, Nicholas Piggin <npiggin@gmail.com> wrote:
>>
>> From: Harsh Prateek Bora <harshpb@linux.ibm.com>
>>
>> Introduce the nested PAPR hcalls:
>>      - H_GUEST_GET_STATE which is used to get state of a nested guest or
>>        a guest VCPU. The value field for each element in the request is
>>        destination to be updated to reflect current state on success.
>>      - H_GUEST_SET_STATE which is used to modify the state of a guest or
>>        a guest VCPU. On success, guest (or its VCPU) state shall be
>>        updated as per the value field for the requested element(s).
>>
>> Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
>> Signed-off-by: Michael Neuling <mikey@neuling.org>
>> Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
>> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> 
> Hi; Coverity points out a problem with this code (CID 1540008, 1540009):
> 
> 
> 
>> +static target_ulong h_guest_getset_state(PowerPCCPU *cpu,
>> +                                         SpaprMachineState *spapr,
>> +                                         target_ulong *args,
>> +                                         bool set)
>> +{
>> +    target_ulong flags = args[0];
>> +    target_ulong lpid = args[1];
>> +    target_ulong vcpuid = args[2];
>> +    target_ulong buf = args[3];
>> +    target_ulong buflen = args[4];
>> +    struct guest_state_request gsr;
>> +    SpaprMachineStateNestedGuest *guest;
>> +
>> +    guest = spapr_get_nested_guest(spapr, lpid);
>> +    if (!guest) {
>> +        return H_P2;
>> +    }
>> +    gsr.buf = buf;
>> +    assert(buflen <= GSB_MAX_BUF_SIZE);
>> +    gsr.len = buflen;
>> +    gsr.flags = 0;
>> +    if (flags & H_GUEST_GETSET_STATE_FLAG_GUEST_WIDE) {
> 
> flags is a target_ulong, which means it might only be 32 bits.
> But H_GUEST_GETSET_STATE_FLAG_GUEST_WIDE has a bit set in the
> upper 32 bits only. So Coverity complains about this condition
> being always-zero and the body of the if being dead code.
> 
> What was the intention here?

Hi Peter,
Ideally this is intended to be running on a ppc64 where target_ulong
should be uint64_t. I guess same holds true for existing nested-hv code
as well.

Hi Nick,
Do you think keeping both nested APIs (i.e. entire spapr_nested.c)
within #ifdef TARGET_PPC64 would be a better choice here?

regards,
Harsh

> 
>> +        gsr.flags |= GUEST_STATE_REQUEST_GUEST_WIDE;
>> +    }
>> +    if (flags & !H_GUEST_GETSET_STATE_FLAG_GUEST_WIDE) {
>> +        return H_PARAMETER; /* flag not supported yet */
>> +    }
>> +
>> +    if (set) {
>> +        gsr.flags |= GUEST_STATE_REQUEST_SET;
>> +    }
>> +    return map_and_getset_state(cpu, guest, vcpuid, &gsr);
>> +}
> 
> thanks
> -- PMM


  reply	other threads:[~2024-03-27  5:42 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-12 16:58 [PULL 00/38] ppc-for-9.0-2 queue Nicholas Piggin
2024-03-12 16:58 ` [PULL 01/38] target/ppc: Fix GDB SPR regnum indexing Nicholas Piggin
2024-03-12 16:58 ` [PULL 02/38] target/ppc: Prevent supervisor from modifying MSR[ME] Nicholas Piggin
2024-03-12 16:58 ` [PULL 03/38] spapr: set MSR[ME] and MSR[FP] on client entry Nicholas Piggin
2024-03-12 16:58 ` [PULL 04/38] ppc: Drop support for POWER9 and POWER10 DD1 chips Nicholas Piggin
2024-03-12 16:58 ` [PULL 05/38] target/ppc: POWER10 does not have transactional memory Nicholas Piggin
2024-03-12 16:58 ` [PULL 06/38] ppc/spapr|pnv: Remove SAO from pa-features Nicholas Piggin
2024-03-12 16:58 ` [PULL 07/38] ppc/spapr: Remove copy-paste " Nicholas Piggin
2024-03-12 16:58 ` [PULL 08/38] ppc/spapr: Adjust ibm,pa-features for POWER9 Nicholas Piggin
2024-03-12 16:58 ` [PULL 09/38] ppc/spapr: Add pa-features for POWER10 machines Nicholas Piggin
2024-03-12 16:58 ` [PULL 10/38] ppc/pnv: Permit ibm,pa-features set per machine variant Nicholas Piggin
2024-03-12 16:58 ` [PULL 11/38] ppc/pnv: Set POWER9, POWER10 ibm,pa-features bits Nicholas Piggin
2024-03-12 16:58 ` [PULL 12/38] MAINTAINERS: Remove myself as reviewer from PPC Nicholas Piggin
2024-03-12 16:58 ` [PULL 13/38] docs: Deprecate the pseries-2.12 machines Nicholas Piggin
2024-03-12 16:58 ` [PULL 14/38] docs/system/ppc: Document running Linux on AmigaNG machines Nicholas Piggin
2024-03-12 16:58 ` [PULL 15/38] target/ppc: Move add and subf type fixed-point arithmetic instructions to decodetree Nicholas Piggin
2024-03-12 16:58 ` [PULL 16/38] target/ppc: Add power10 pmu SPRs Nicholas Piggin
2024-03-12 16:58 ` [PULL 17/38] ppc/pnv: Improve pervasive topology calculation for big-core Nicholas Piggin
2024-03-12 16:58 ` [PULL 18/38] target/ppc: Use env_cpu for cpu_abort in excp_helper Nicholas Piggin
2024-03-12 16:58 ` [PULL 19/38] target/ppc: Readability improvements in exception handlers Nicholas Piggin
2024-03-12 16:58 ` [PULL 20/38] target/ppc: Add gen_exception_err_nip() function Nicholas Piggin
2024-03-12 16:58 ` [PULL 21/38] target/ppc: Clean up ifdefs in excp_helper.c, part 1 Nicholas Piggin
2024-03-12 16:58 ` [PULL 22/38] target/ppc: Clean up ifdefs in excp_helper.c, part 2 Nicholas Piggin
2024-03-12 16:58 ` [PULL 23/38] target/ppc: Clean up ifdefs in excp_helper.c, part 3 Nicholas Piggin
2024-03-12 16:58 ` [PULL 24/38] target/ppc: Remove interrupt handler wrapper functions Nicholas Piggin
2024-03-12 16:58 ` [PULL 25/38] spapr: nested: register nested-hv api hcalls only for cap-nested-hv Nicholas Piggin
2024-03-12 16:58 ` [PULL 26/38] spapr: nested: move nested part of spapr_get_pate into spapr_nested.c Nicholas Piggin
2024-03-12 16:58 ` [PULL 27/38] spapr: nested: Introduce SpaprMachineStateNested to store related info Nicholas Piggin
2024-03-12 16:58 ` [PULL 28/38] spapr: nested: keep nested-hv related code restricted to its API Nicholas Piggin
2024-03-12 16:58 ` [PULL 29/38] spapr: nested: Document Nested PAPR API Nicholas Piggin
2024-03-12 16:58 ` [PULL 30/38] spapr: nested: Introduce H_GUEST_[GET|SET]_CAPABILITIES hcalls Nicholas Piggin
2024-03-12 16:58 ` [PULL 31/38] spapr: nested: Introduce H_GUEST_[CREATE|DELETE] hcalls Nicholas Piggin
2024-03-12 16:58 ` [PULL 32/38] spapr: nested: Introduce H_GUEST_CREATE_VCPU hcall Nicholas Piggin
2024-03-12 16:58 ` [PULL 33/38] spapr: nested: Extend nested_ppc_state for nested PAPR API Nicholas Piggin
2024-03-12 16:58 ` [PULL 34/38] spapr: nested: Initialize the GSB elements lookup table Nicholas Piggin
2024-03-12 16:58 ` [PULL 35/38] spapr: nested: Introduce H_GUEST_[GET|SET]_STATE hcalls Nicholas Piggin
2024-03-26 16:02   ` Peter Maydell
2024-03-27  5:41     ` Harsh Prateek Bora [this message]
2024-03-27  8:05       ` Thomas Huth
2024-03-28 15:25       ` Peter Maydell
2024-03-29  3:53         ` Harsh Prateek Bora
2024-03-12 16:58 ` [PULL 36/38] spapr: nested: Use correct source for parttbl info for nested PAPR API Nicholas Piggin
2024-03-12 16:58 ` [PULL 37/38] spapr: nested: Introduce H_GUEST_RUN_VCPU hcall Nicholas Piggin
2024-03-12 16:58 ` [PULL 38/38] spapr: nested: Introduce cap-nested-papr for Nested PAPR API Nicholas Piggin
2024-03-12 19:29 ` [PULL 00/38] ppc-for-9.0-2 queue Bernhard Beschow
2024-03-13 15:10 ` Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1bc2bb17-23a5-4b36-a11b-bc7384a54a1d@linux.ibm.com \
    --to=harshpb@linux.ibm.com \
    --cc=danielhb413@gmail.com \
    --cc=mikey@neuling.org \
    --cc=npiggin@gmail.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.