From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Elliot Berman <quic_eberman@quicinc.com>
Cc: Bjorn Andersson <quic_bjorande@quicinc.com>,
Murali Nalajala <quic_mnalajal@quicinc.com>,
Trilok Soni <quic_tsoni@quicinc.com>,
Srivatsa Vaddagiri <quic_svaddagi@quicinc.com>,
Carl van Schaik <quic_cvanscha@quicinc.com>,
Prakruthi Deepak Heragu <quic_pheragu@quicinc.com>,
Andy Gross <agross@kernel.org>,
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
Jassi Brar <jassisinghbrar@gmail.com>,
linux-arm-kernel@lists.infradead.org,
Mark Rutland <mark.rutland@arm.com>,
Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
Sudeep Holla <sudeep.holla@arm.com>,
Marc Zyngier <maz@kernel.org>, Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Jonathan Corbet <corbet@lwn.net>, Will Deacon <will@kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Arnd Bergmann <arnd@arndb.de>,
devicetree@vger.kernel.org, linux-doc@vger.kernel.org,
linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 06/13] virt: gunyah: Identify hypervisor version
Date: Tue, 11 Oct 2022 08:13:21 +0200 [thread overview]
Message-ID: <Y0UJgcc0+AEbHTIM@kroah.com> (raw)
In-Reply-To: <20221011000840.289033-7-quic_eberman@quicinc.com>
On Mon, Oct 10, 2022 at 05:08:33PM -0700, Elliot Berman wrote:
> Export the version of Gunyah which is reported via the hyp_identify
> hypercall. Increments of the major API version indicate possibly
> backwards incompatible changes. Export the hypervisor identity so that
> Gunyah drivers can act according to the major API version.
>
> Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
> ---
> MAINTAINERS | 1 +
> drivers/virt/Makefile | 1 +
> drivers/virt/gunyah/Makefile | 2 ++
> drivers/virt/gunyah/gunyah.c | 41 ++++++++++++++++++++++++++++++++++++
> include/asm-generic/gunyah.h | 3 +++
> 5 files changed, 48 insertions(+)
> create mode 100644 drivers/virt/gunyah/Makefile
> create mode 100644 drivers/virt/gunyah/gunyah.c
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index ed2bc98c3818..c5458aeec023 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -8884,6 +8884,7 @@ M: Elliot Berman <quic_eberman@quicinc.com>
> M: Murali Nalajala <quic_mnalajal@quicinc.com>
> L: linux-arm-msm@vger.kernel.org
> S: Supported
> +F: Documentation/ABI/testing/sysfs-hypervisor-gunyah
That file is not in this patch :(
> F: Documentation/devicetree/bindings/firmware/gunyah-hypervisor.yaml
> F: Documentation/virt/gunyah/
> F: arch/arm64/gunyah/
> diff --git a/drivers/virt/Makefile b/drivers/virt/Makefile
> index 093674e05c40..10b87f934730 100644
> --- a/drivers/virt/Makefile
> +++ b/drivers/virt/Makefile
> @@ -11,3 +11,4 @@ obj-$(CONFIG_NITRO_ENCLAVES) += nitro_enclaves/
> obj-$(CONFIG_ACRN_HSM) += acrn/
> obj-$(CONFIG_EFI_SECRET) += coco/efi_secret/
> obj-$(CONFIG_SEV_GUEST) += coco/sev-guest/
> +obj-$(CONFIG_GUNYAH) += gunyah/
> diff --git a/drivers/virt/gunyah/Makefile b/drivers/virt/gunyah/Makefile
> new file mode 100644
> index 000000000000..dc081e2dc02b
> --- /dev/null
> +++ b/drivers/virt/gunyah/Makefile
> @@ -0,0 +1,2 @@
> +gunyah-y += gunyah.o
> +obj-$(CONFIG_GUNYAH) += gunyah.o
> diff --git a/drivers/virt/gunyah/gunyah.c b/drivers/virt/gunyah/gunyah.c
> new file mode 100644
> index 000000000000..2893a56f3dfc
> --- /dev/null
> +++ b/drivers/virt/gunyah/gunyah.c
> @@ -0,0 +1,41 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +/*
> + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
> + */
> +
> +#define pr_fmt(fmt) "gunyah: " fmt
> +
> +#include <linux/module.h>
> +#include <linux/printk.h>
> +#include <linux/init.h>
> +#include <asm-generic/gunyah.h>
> +
> +struct gh_hypercall_hyp_identify_resp gunyah_api;
> +EXPORT_SYMBOL(gunyah_api);
EXPORT_SYMBOL_GPL()? I have to ask.
But why is it exported at all? No one is using it in this patch.
> +
> +static int __init gunyah_init(void)
> +{
> + u32 uid[4];
> +
> + gh_hypercall_get_uid(uid);
> +
> + if (!(gh_uid_matches(GUNYAH, uid) || gh_uid_matches(QC_HYP, uid)))
> + return 0;
Why return success if this is not true? Shouldn't you return an error
and fail to load?
> +
> + gh_hypercall_hyp_identify(&gunyah_api);
> +
> + pr_info("Running under Gunyah hypervisor %llx/v%lld\n",
> + GH_API_INFO_VARIANT(gunyah_api.api_info),
> + GH_API_INFO_API_VERSION(gunyah_api.api_info));
> +
> + return 0;
> +}
> +arch_initcall(gunyah_init);
> +
> +static void __exit gunyah_exit(void)
> +{
> +}
> +module_exit(gunyah_exit);
Why do you need a module_exit() call?
> +
> +MODULE_LICENSE("GPL");
> +MODULE_DESCRIPTION("Gunyah Hypervisor Driver");
What will cause this module to be properly automatically loaded? I do
not see that happening here at all.
> diff --git a/include/asm-generic/gunyah.h b/include/asm-generic/gunyah.h
> index 86eb59e203ef..8f9d4c649ba8 100644
> --- a/include/asm-generic/gunyah.h
> +++ b/include/asm-generic/gunyah.h
> @@ -85,6 +85,8 @@ static inline int gh_remap_error(int gh_error)
> ((uid)[0] == prefix ## _UID0 && (uid)[1] == prefix ## _UID1 && \
> (uid)[2] == prefix ## _UID2 && (uid)[3] == prefix ## _UID3)
>
> +#define GUNYAH_API_V1 1
You do not use this define anywhere in this patch.
> +
> #define GH_API_INFO_API_VERSION(x) (((x) >> 0) & 0x3fff)
> #define GH_API_INFO_BIG_ENDIAN(x) (((x) >> 14) & 1)
> #define GH_API_INFO_IS_64BIT(x) (((x) >> 15) & 1)
> @@ -103,6 +105,7 @@ struct gh_hypercall_hyp_identify_resp {
> u64 api_info;
> u64 flags[3];
> };
> +extern struct gh_hypercall_hyp_identify_resp gunyah_api;
Again, not used.
thanks,
greg k-h
next prev parent reply other threads:[~2022-10-11 6:12 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-11 0:08 [PATCH v5 00/13] Drivers for gunyah hypervisor Elliot Berman
2022-10-11 0:08 ` [PATCH v5 01/13] docs: gunyah: Introduce Gunyah Hypervisor Elliot Berman
2022-10-11 9:36 ` Bagas Sanjaya
2022-10-11 0:08 ` [PATCH v5 02/13] dt-bindings: Add binding for gunyah hypervisor Elliot Berman
2022-10-12 15:56 ` Rob Herring
2022-10-13 23:58 ` Elliot Berman
2022-10-26 21:16 ` Rob Herring
2022-10-27 16:17 ` Elliot Berman
2022-10-27 19:55 ` Krzysztof Kozlowski
2022-11-01 3:19 ` Elliot Berman
2022-11-02 18:47 ` Krzysztof Kozlowski
2022-10-11 0:08 ` [PATCH v5 03/13] gunyah: Common types and error codes for Gunyah hypercalls Elliot Berman
2022-10-11 7:21 ` Greg Kroah-Hartman
2022-10-11 18:21 ` Elliot Berman
2022-10-11 18:48 ` Greg Kroah-Hartman
2022-10-11 18:50 ` Trilok Soni
2022-10-11 19:01 ` Greg Kroah-Hartman
2022-10-11 0:08 ` [PATCH v5 04/13] arm64: smccc: Include alternative-macros.h Elliot Berman
2022-10-11 7:22 ` Greg Kroah-Hartman
2022-10-11 22:45 ` Elliot Berman
2022-10-11 0:08 ` [PATCH v5 05/13] virt: gunyah: Add hypercalls to identify Gunyah Elliot Berman
2022-10-11 6:22 ` [PATCH v5 5/13] " Jiri Slaby
2022-10-12 21:31 ` [PATCH v5 05/13] " Dmitry Baryshkov
2022-10-11 0:08 ` [PATCH v5 06/13] virt: gunyah: Identify hypervisor version Elliot Berman
2022-10-11 6:13 ` Greg Kroah-Hartman [this message]
2022-10-13 23:00 ` Elliot Berman
2022-10-14 7:36 ` Greg Kroah-Hartman
2022-10-12 22:45 ` kernel test robot
2022-10-11 0:08 ` [PATCH v5 07/13] mailbox: Allow direct registration to a channel Elliot Berman
2022-10-11 0:08 ` [PATCH v5 08/13] virt: gunyah: msgq: Add hypercalls to send and receive messages Elliot Berman
2022-10-11 0:08 ` [PATCH v5 09/13] mailbox: Add Gunyah message queue mailbox Elliot Berman
2022-10-12 21:47 ` Dmitry Baryshkov
2022-10-13 22:32 ` Elliot Berman
2022-10-17 8:43 ` Dmitry Baryshkov
2022-10-11 0:08 ` [PATCH v5 10/13] gunyah: rsc_mgr: Add resource manager RPC core Elliot Berman
2022-10-12 22:52 ` Dmitry Baryshkov
2022-10-13 22:32 ` Elliot Berman
2022-10-17 8:37 ` Dmitry Baryshkov
2022-10-11 0:08 ` [PATCH v5 11/13] gunyah: rsc_mgr: Add RPC for console services Elliot Berman
2022-10-11 0:08 ` [PATCH v5 12/13] gunyah: rsc_mgr: Add subdevices bus Elliot Berman
2022-10-11 0:08 ` [PATCH v5 13/13] tty: gunyah: Add tty console driver for RM Console Services Elliot Berman
2022-10-11 6:02 ` Jiri Slaby
2022-10-11 11:09 ` Arnd Bergmann
2022-10-11 22:04 ` Elliot Berman
2022-10-12 6:55 ` Greg Kroah-Hartman
2022-10-13 20:54 ` Elliot Berman
2022-10-14 7:38 ` Greg Kroah-Hartman
2022-10-11 18:22 ` Elliot Berman
2022-10-11 22:04 ` Elliot Berman
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=Y0UJgcc0+AEbHTIM@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=agross@kernel.org \
--cc=arnd@arndb.de \
--cc=catalin.marinas@arm.com \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.baryshkov@linaro.org \
--cc=jassisinghbrar@gmail.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=mark.rutland@arm.com \
--cc=maz@kernel.org \
--cc=quic_bjorande@quicinc.com \
--cc=quic_cvanscha@quicinc.com \
--cc=quic_eberman@quicinc.com \
--cc=quic_mnalajal@quicinc.com \
--cc=quic_pheragu@quicinc.com \
--cc=quic_svaddagi@quicinc.com \
--cc=quic_tsoni@quicinc.com \
--cc=robh+dt@kernel.org \
--cc=sudeep.holla@arm.com \
--cc=will@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).