ppc/vof: Fix Coverity issues
commit14c7e06e722af6f5459ab92bae3023bb336fa497
authorAlexey Kardashevskiy <aik@ozlabs.ru>
Tue, 20 Jul 2021 05:07:26 +0000 (20 15:07 +1000)
committerDavid Gibson <david@gibson.dropbear.id.au>
Thu, 29 Jul 2021 00:59:49 +0000 (29 10:59 +1000)
tree9185c55770b44a2f070579bc15ae48af05a88e81
parent2d1154bd95a8bfea30cc59de8e080e5a016a9bee
ppc/vof: Fix Coverity issues

Coverity reported issues which are caused by mixing of signed return codes
from DTC and unsigned return codes of the client interface.

This introduces PROM_ERROR and makes distinction between the error types.

This fixes NEGATIVE_RETURNS, OVERRUN issues reported by Coverity.

This adds a comment about the return parameters number in the VOF hcall.
The reason for such counting is to keep the numbers look the same in
vof_client_handle() and the Linux (an OF client).

vmc->client_architecture_support() returns target_ulong and we want to
propagate this to the client (for example H_MULTI_THREADS_ACTIVE).
The VOF path to do_client_architecture_support() needs chopping off
the top 32bit but SLOF's H_CAS does not; and either way the return values
are either 0 or 32bit negative error code. For now this chops
the top 32bits.

This makes "claim" fail if the allocated address is above 4GB as
the client interface is 32bit. This still allows claiming memory above
4GB as potentially initrd can be put there and the client can read
the address from the FDT's "available" property.

Fixes: CID 14581391458138145813714581331458132
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Message-Id: <20210720050726.2737405-1-aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
hw/ppc/trace-events
hw/ppc/vof.c
include/hw/ppc/vof.h