[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <29dc78ee-1eaa-7e3d-f28c-07a6b60ed2b2@quicinc.com>
Date: Tue, 10 Jan 2023 09:55:10 -0800
From: Elliot Berman <quic_eberman@...cinc.com>
To: Alex Elder <elder@...aro.org>,
Bjorn Andersson <quic_bjorande@...cinc.com>,
Murali Nalajala <quic_mnalajal@...cinc.com>
CC: Trilok Soni <quic_tsoni@...cinc.com>,
Srivatsa Vaddagiri <quic_svaddagi@...cinc.com>,
Carl van Schaik <quic_cvanscha@...cinc.com>,
Prakruthi Deepak Heragu <quic_pheragu@...cinc.com>,
Arnd Bergmann <arnd@...db.de>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Jonathan Corbet <corbet@....net>,
"Bagas Sanjaya" <bagasdotme@...il.com>,
Catalin Marinas <catalin.marinas@....com>,
Will Deacon <will@...nel.org>,
Jassi Brar <jassisinghbrar@...il.com>,
"Sudeep Holla" <sudeep.holla@....com>,
Mark Rutland <mark.rutland@....com>,
"Lorenzo Pieralisi" <lpieralisi@...nel.org>,
Dmitry Baryshkov <dmitry.baryshkov@...aro.org>,
<linux-arm-msm@...r.kernel.org>, <devicetree@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <linux-doc@...r.kernel.org>,
<linux-arm-kernel@...ts.infradead.org>,
<linux-acpi@...r.kernel.org>
Subject: Re: [PATCH v8 03/28] gunyah: Common types and error codes for Gunyah
hypercalls
On 1/9/2023 1:34 PM, Alex Elder wrote:
> On 12/19/22 4:58 PM, Elliot Berman wrote:
>> Add architecture-independent standard error codes, types, and macros for
>> Gunyah hypercalls.
>>
>> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
>> Signed-off-by: Elliot Berman <quic_eberman@...cinc.com>
>> ---
>> MAINTAINERS | 1 +
>> include/linux/gunyah.h | 74 ++++++++++++++++++++++++++++++++++++++++++
>> 2 files changed, 75 insertions(+)
>> create mode 100644 include/linux/gunyah.h
>>
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index f32320a9efa4..74e76e0ab14d 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -8941,6 +8941,7 @@ L: linux-arm-msm@...r.kernel.org
>> S: Supported
>> F: Documentation/devicetree/bindings/firmware/gunyah-hypervisor.yaml
>> F: Documentation/virt/gunyah/
>> +F: include/linux/gunyah.h
>> HABANALABS PCI DRIVER
>> M: Oded Gabbay <ogabbay@...nel.org>
>> diff --git a/include/linux/gunyah.h b/include/linux/gunyah.h
>> new file mode 100644
>> index 000000000000..824e20a11d27
>> --- /dev/null
>> +++ b/include/linux/gunyah.h
>> @@ -0,0 +1,74 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +/*
>> + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights
>> reserved.
>> + */
>> +
>> +#ifndef _GUNYAH_H
>
> Maybe use _LINUX_GUNYAH_H?
>
Ack.
>> +#define _GUNYAH_H
>> +
>> +#include <linux/types.h>
>
> Why is types.h included?
>
> U64_MAX is defined in <linux/limits.h> (in case that's why).
Ack.
>
> Otherwise this just defines a fixed API exposed by Gunyah
> so there's not much more for me to comment on.
>
> -Alex
>
>> +#include <linux/errno.h>
>> +
>> +/* Common Gunyah macros */
>> +#define GH_CAPID_INVAL U64_MAX
>> +#define GH_VMID_ROOT_VM 0xff
>> +
>> +#define GH_ERROR_OK 0
>> +
>> +#define GH_ERROR_UNIMPLEMENTED -1
>> +#define GH_ERROR_RETRY -2
>> +
>> +#define GH_ERROR_ARG_INVAL 1
>> +#define GH_ERROR_ARG_SIZE 2
>> +#define GH_ERROR_ARG_ALIGN 3
>> +
>> +#define GH_ERROR_NOMEM 10
>> +
>> +#define GH_ERROR_ADDR_OVFL 20
>> +#define GH_ERROR_ADDR_UNFL 21
>> +#define GH_ERROR_ADDR_INVAL 22
>> +
>> +#define GH_ERROR_DENIED 30
>> +#define GH_ERROR_BUSY 31
>> +#define GH_ERROR_IDLE 32
>> +
>> +#define GH_ERROR_IRQ_BOUND 40
>> +#define GH_ERROR_IRQ_UNBOUND 41
>> +
>> +#define GH_ERROR_CSPACE_CAP_NULL 50
>> +#define GH_ERROR_CSPACE_CAP_REVOKED 51
>> +#define GH_ERROR_CSPACE_WRONG_OBJ_TYPE 52
>> +#define GH_ERROR_CSPACE_INSUF_RIGHTS 53
>> +#define GH_ERROR_CSPACE_FULL 54
>> +
>> +#define GH_ERROR_MSGQUEUE_EMPTY 60
>> +#define GH_ERROR_MSGQUEUE_FULL 61
>> +
>> +static inline int gh_remap_error(int gh_error)
>> +{
>> + switch (gh_error) {
>> + case GH_ERROR_OK:
>> + return 0;
>> + case GH_ERROR_NOMEM:
>> + return -ENOMEM;
>> + case GH_ERROR_DENIED:
>> + case GH_ERROR_CSPACE_CAP_NULL:
>> + case GH_ERROR_CSPACE_CAP_REVOKED:
>> + case GH_ERROR_CSPACE_WRONG_OBJ_TYPE:
>> + case GH_ERROR_CSPACE_INSUF_RIGHTS:
>> + case GH_ERROR_CSPACE_FULL:
>> + return -EACCES;
>> + case GH_ERROR_BUSY:
>> + case GH_ERROR_IDLE:
>> + return -EBUSY;
>> + case GH_ERROR_IRQ_BOUND:
>> + case GH_ERROR_IRQ_UNBOUND:
>> + case GH_ERROR_MSGQUEUE_FULL:
>> + case GH_ERROR_MSGQUEUE_EMPTY:
>> + return -EPERM;
>> + default:
>> + return -EINVAL;
>> + }
>> +}
>> +
>> +#endif
>
Powered by blists - more mailing lists