From nobody Tue Nov 11 05:44:14 2025 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=none (zoho.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org ARC-Seal: i=1; a=rsa-sha256; t=1569918415; cv=none; d=zoho.com; s=zohoarc; b=SVoBSs0OEM8N2C3t3ZDfwR+Vrw9kDRgL4PAJdds032HdaRUbs/lNMSlges8F0Nbby9nnNZ7EvUwhIhnbqSKjC5Dh9HE4JiC1PNkGBpQH6fcmes4XYiNx5d/zBS+7hG+gpRxF4GcZB/egIERyyxC4E+6DA7Kq0cvjonUhfBoo1uc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569918415; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To:ARC-Authentication-Results; bh=1goN9c5AwPvZufdVy6Ya6vs0JstIhDmDlWrF8+C5/ig=; b=Ov/eKWV1c7nWKUVD+P9mP0GSAG989kGs/dbBRXEwhN1nYrjGk5LVvQABjSdgubqQ5QcvOrJatx/WWFGrduiu9q1l3Ou2q6ENLNFZhpfSAnuTy7vLrT+HjrPqMSYxV40EIsSs+Je/4dNHkixpb+ZNrP0iIYiR2gsqZTG9xul5Prw= ARC-Authentication-Results: i=1; mx.zoho.com; spf=none (zoho.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1569918415433194.0281793777449; Tue, 1 Oct 2019 01:26:55 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iFDTY-0007Fh-Hl; Tue, 01 Oct 2019 08:25:40 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iFDTX-0007FR-Bc for xen-devel@lists.xenproject.org; Tue, 01 Oct 2019 08:25:39 +0000 Received: from mx1.suse.de (unknown [195.135.220.15]) by localhost (Halon) with ESMTPS id 0bb576ba-e425-11e9-96f4-12813bfff9fa; Tue, 01 Oct 2019 08:25:37 +0000 (UTC) Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id D0FC3AF9F; Tue, 1 Oct 2019 08:25:36 +0000 (UTC) X-Inumbo-ID: 0bb576ba-e425-11e9-96f4-12813bfff9fa X-Virus-Scanned: by amavisd-new at test-mx.suse.de From: Juergen Gross To: xen-devel@lists.xenproject.org, x86@kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Date: Tue, 1 Oct 2019 10:25:34 +0200 Message-Id: <20191001082534.12067-1-jgross@suse.com> X-Mailer: git-send-email 2.16.4 Subject: [Xen-devel] [PATCH] xen/efi: have a common runtime setup function X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , Stefano Stabellini , Catalin Marinas , Russell King , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Boris Ostrovsky , Will Deacon , Thomas Gleixner MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Today the EFI runtime functions are setup in architecture specific code (x86 and arm), with the functions themselves living in drivers/xen as they are not architecture dependent. As the setup is exactly the same for arm and x86 move the setup to drivers/xen, too. This at once removes the need to make the single functions global visible. Signed-off-by: Juergen Gross Reviewed-by: Jan Beulich --- arch/arm/include/asm/xen/xen-ops.h | 6 --- arch/arm/xen/Makefile | 1 - arch/arm/xen/efi.c | 30 ------------- arch/arm/xen/enlighten.c | 1 - arch/arm64/include/asm/xen/xen-ops.h | 7 --- arch/arm64/xen/Makefile | 1 - arch/x86/xen/efi.c | 16 +------ drivers/xen/efi.c | 85 ++++++++++++++++++++------------= ---- include/xen/xen-ops.h | 25 +---------- 9 files changed, 50 insertions(+), 122 deletions(-) delete mode 100644 arch/arm/include/asm/xen/xen-ops.h delete mode 100644 arch/arm/xen/efi.c delete mode 100644 arch/arm64/include/asm/xen/xen-ops.h diff --git a/arch/arm/include/asm/xen/xen-ops.h b/arch/arm/include/asm/xen/= xen-ops.h deleted file mode 100644 index ec154e719b11..000000000000 --- a/arch/arm/include/asm/xen/xen-ops.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _ASM_XEN_OPS_H -#define _ASM_XEN_OPS_H - -void xen_efi_runtime_setup(void); - -#endif /* _ASM_XEN_OPS_H */ diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile index 7ed28982c4c3..c32d04713ba0 100644 --- a/arch/arm/xen/Makefile +++ b/arch/arm/xen/Makefile @@ -1,3 +1,2 @@ # SPDX-License-Identifier: GPL-2.0-only obj-y :=3D enlighten.o hypercall.o grant-table.o p2m.o mm.o -obj-$(CONFIG_XEN_EFI) +=3D efi.o diff --git a/arch/arm/xen/efi.c b/arch/arm/xen/efi.c deleted file mode 100644 index cb2aaf98e243..000000000000 --- a/arch/arm/xen/efi.c +++ /dev/null @@ -1,30 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -/* - * Copyright (c) 2015, Linaro Limited, Shannon Zhao - */ - -#include -#include -#include - -/* Set XEN EFI runtime services function pointers. Other fields of struct = efi, - * e.g. efi.systab, will be set like normal EFI. - */ -void __init xen_efi_runtime_setup(void) -{ - efi.get_time =3D xen_efi_get_time; - efi.set_time =3D xen_efi_set_time; - efi.get_wakeup_time =3D xen_efi_get_wakeup_time; - efi.set_wakeup_time =3D xen_efi_set_wakeup_time; - efi.get_variable =3D xen_efi_get_variable; - efi.get_next_variable =3D xen_efi_get_next_variable; - efi.set_variable =3D xen_efi_set_variable; - efi.set_variable_nonblocking =3D xen_efi_set_variable; - efi.query_variable_info =3D xen_efi_query_variable_info; - efi.query_variable_info_nonblocking =3D xen_efi_query_variable_info; - efi.update_capsule =3D xen_efi_update_capsule; - efi.query_capsule_caps =3D xen_efi_query_capsule_caps; - efi.get_next_high_mono_count =3D xen_efi_get_next_high_mono_count; - efi.reset_system =3D xen_efi_reset_system; -} -EXPORT_SYMBOL_GPL(xen_efi_runtime_setup); diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c index 1e57692552d9..99f955a5b694 100644 --- a/arch/arm/xen/enlighten.c +++ b/arch/arm/xen/enlighten.c @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include diff --git a/arch/arm64/include/asm/xen/xen-ops.h b/arch/arm64/include/asm/= xen/xen-ops.h deleted file mode 100644 index e6e784051932..000000000000 --- a/arch/arm64/include/asm/xen/xen-ops.h +++ /dev/null @@ -1,7 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef _ASM_XEN_OPS_H -#define _ASM_XEN_OPS_H - -void xen_efi_runtime_setup(void); - -#endif /* _ASM_XEN_OPS_H */ diff --git a/arch/arm64/xen/Makefile b/arch/arm64/xen/Makefile index a4fc65f3928d..b66215e8658e 100644 --- a/arch/arm64/xen/Makefile +++ b/arch/arm64/xen/Makefile @@ -1,4 +1,3 @@ # SPDX-License-Identifier: GPL-2.0-only xen-arm-y +=3D $(addprefix ../../arm/xen/, enlighten.o grant-table.o p2m.o= mm.o) obj-y :=3D xen-arm.o hypercall.o -obj-$(CONFIG_XEN_EFI) +=3D $(addprefix ../../arm/xen/, efi.o) diff --git a/arch/x86/xen/efi.c b/arch/x86/xen/efi.c index 7e3eb70f411a..a04551ee5568 100644 --- a/arch/x86/xen/efi.c +++ b/arch/x86/xen/efi.c @@ -57,21 +57,7 @@ static efi_system_table_t __init *xen_efi_probe(void) return NULL; =20 /* Here we know that Xen runs on EFI platform. */ - - efi.get_time =3D xen_efi_get_time; - efi.set_time =3D xen_efi_set_time; - efi.get_wakeup_time =3D xen_efi_get_wakeup_time; - efi.set_wakeup_time =3D xen_efi_set_wakeup_time; - efi.get_variable =3D xen_efi_get_variable; - efi.get_next_variable =3D xen_efi_get_next_variable; - efi.set_variable =3D xen_efi_set_variable; - efi.set_variable_nonblocking =3D xen_efi_set_variable; - efi.query_variable_info =3D xen_efi_query_variable_info; - efi.query_variable_info_nonblocking =3D xen_efi_query_variable_info; - efi.update_capsule =3D xen_efi_update_capsule; - efi.query_capsule_caps =3D xen_efi_query_capsule_caps; - efi.get_next_high_mono_count =3D xen_efi_get_next_high_mono_count; - efi.reset_system =3D xen_efi_reset_system; + xen_efi_runtime_setup(); =20 efi_systab_xen.tables =3D info->cfg.addr; efi_systab_xen.nr_tables =3D info->cfg.nent; diff --git a/drivers/xen/efi.c b/drivers/xen/efi.c index 89d60f8e3c18..ffbdaa9f4a45 100644 --- a/drivers/xen/efi.c +++ b/drivers/xen/efi.c @@ -40,7 +40,7 @@ =20 #define efi_data(op) (op.u.efi_runtime_call) =20 -efi_status_t xen_efi_get_time(efi_time_t *tm, efi_time_cap_t *tc) +static efi_status_t xen_efi_get_time(efi_time_t *tm, efi_time_cap_t *tc) { struct xen_platform_op op =3D INIT_EFI_OP(get_time); =20 @@ -61,9 +61,8 @@ efi_status_t xen_efi_get_time(efi_time_t *tm, efi_time_ca= p_t *tc) =20 return efi_data(op).status; } -EXPORT_SYMBOL_GPL(xen_efi_get_time); =20 -efi_status_t xen_efi_set_time(efi_time_t *tm) +static efi_status_t xen_efi_set_time(efi_time_t *tm) { struct xen_platform_op op =3D INIT_EFI_OP(set_time); =20 @@ -75,10 +74,10 @@ efi_status_t xen_efi_set_time(efi_time_t *tm) =20 return efi_data(op).status; } -EXPORT_SYMBOL_GPL(xen_efi_set_time); =20 -efi_status_t xen_efi_get_wakeup_time(efi_bool_t *enabled, efi_bool_t *pend= ing, - efi_time_t *tm) +static efi_status_t xen_efi_get_wakeup_time(efi_bool_t *enabled, + efi_bool_t *pending, + efi_time_t *tm) { struct xen_platform_op op =3D INIT_EFI_OP(get_wakeup_time); =20 @@ -98,9 +97,8 @@ efi_status_t xen_efi_get_wakeup_time(efi_bool_t *enabled,= efi_bool_t *pending, =20 return efi_data(op).status; } -EXPORT_SYMBOL_GPL(xen_efi_get_wakeup_time); =20 -efi_status_t xen_efi_set_wakeup_time(efi_bool_t enabled, efi_time_t *tm) +static efi_status_t xen_efi_set_wakeup_time(efi_bool_t enabled, efi_time_t= *tm) { struct xen_platform_op op =3D INIT_EFI_OP(set_wakeup_time); =20 @@ -117,11 +115,10 @@ efi_status_t xen_efi_set_wakeup_time(efi_bool_t enabl= ed, efi_time_t *tm) =20 return efi_data(op).status; } -EXPORT_SYMBOL_GPL(xen_efi_set_wakeup_time); =20 -efi_status_t xen_efi_get_variable(efi_char16_t *name, efi_guid_t *vendor, - u32 *attr, unsigned long *data_size, - void *data) +static efi_status_t xen_efi_get_variable(efi_char16_t *name, efi_guid_t *v= endor, + u32 *attr, unsigned long *data_size, + void *data) { struct xen_platform_op op =3D INIT_EFI_OP(get_variable); =20 @@ -141,11 +138,10 @@ efi_status_t xen_efi_get_variable(efi_char16_t *name,= efi_guid_t *vendor, =20 return efi_data(op).status; } -EXPORT_SYMBOL_GPL(xen_efi_get_variable); =20 -efi_status_t xen_efi_get_next_variable(unsigned long *name_size, - efi_char16_t *name, - efi_guid_t *vendor) +static efi_status_t xen_efi_get_next_variable(unsigned long *name_size, + efi_char16_t *name, + efi_guid_t *vendor) { struct xen_platform_op op =3D INIT_EFI_OP(get_next_variable_name); =20 @@ -165,11 +161,10 @@ efi_status_t xen_efi_get_next_variable(unsigned long = *name_size, =20 return efi_data(op).status; } -EXPORT_SYMBOL_GPL(xen_efi_get_next_variable); =20 -efi_status_t xen_efi_set_variable(efi_char16_t *name, efi_guid_t *vendor, - u32 attr, unsigned long data_size, - void *data) +static efi_status_t xen_efi_set_variable(efi_char16_t *name, efi_guid_t *v= endor, + u32 attr, unsigned long data_size, + void *data) { struct xen_platform_op op =3D INIT_EFI_OP(set_variable); =20 @@ -186,11 +181,10 @@ efi_status_t xen_efi_set_variable(efi_char16_t *name,= efi_guid_t *vendor, =20 return efi_data(op).status; } -EXPORT_SYMBOL_GPL(xen_efi_set_variable); =20 -efi_status_t xen_efi_query_variable_info(u32 attr, u64 *storage_space, - u64 *remaining_space, - u64 *max_variable_size) +static efi_status_t xen_efi_query_variable_info(u32 attr, u64 *storage_spa= ce, + u64 *remaining_space, + u64 *max_variable_size) { struct xen_platform_op op =3D INIT_EFI_OP(query_variable_info); =20 @@ -208,9 +202,8 @@ efi_status_t xen_efi_query_variable_info(u32 attr, u64 = *storage_space, =20 return efi_data(op).status; } -EXPORT_SYMBOL_GPL(xen_efi_query_variable_info); =20 -efi_status_t xen_efi_get_next_high_mono_count(u32 *count) +static efi_status_t xen_efi_get_next_high_mono_count(u32 *count) { struct xen_platform_op op =3D INIT_EFI_OP(get_next_high_monotonic_count); =20 @@ -221,10 +214,9 @@ efi_status_t xen_efi_get_next_high_mono_count(u32 *cou= nt) =20 return efi_data(op).status; } -EXPORT_SYMBOL_GPL(xen_efi_get_next_high_mono_count); =20 -efi_status_t xen_efi_update_capsule(efi_capsule_header_t **capsules, - unsigned long count, unsigned long sg_list) +static efi_status_t xen_efi_update_capsule(efi_capsule_header_t **capsules, + unsigned long count, unsigned long sg_list) { struct xen_platform_op op =3D INIT_EFI_OP(update_capsule); =20 @@ -241,11 +233,9 @@ efi_status_t xen_efi_update_capsule(efi_capsule_header= _t **capsules, =20 return efi_data(op).status; } -EXPORT_SYMBOL_GPL(xen_efi_update_capsule); =20 -efi_status_t xen_efi_query_capsule_caps(efi_capsule_header_t **capsules, - unsigned long count, u64 *max_size, - int *reset_type) +static efi_status_t xen_efi_query_capsule_caps(efi_capsule_header_t **caps= ules, + unsigned long count, u64 *max_size, int *reset_type) { struct xen_platform_op op =3D INIT_EFI_OP(query_capsule_capabilities); =20 @@ -264,10 +254,9 @@ efi_status_t xen_efi_query_capsule_caps(efi_capsule_he= ader_t **capsules, =20 return efi_data(op).status; } -EXPORT_SYMBOL_GPL(xen_efi_query_capsule_caps); =20 -void xen_efi_reset_system(int reset_type, efi_status_t status, - unsigned long data_size, efi_char16_t *data) +static void xen_efi_reset_system(int reset_type, efi_status_t status, + unsigned long data_size, efi_char16_t *data) { switch (reset_type) { case EFI_RESET_COLD: @@ -281,4 +270,26 @@ void xen_efi_reset_system(int reset_type, efi_status_t= status, BUG(); } } -EXPORT_SYMBOL_GPL(xen_efi_reset_system); + +/* + * Set XEN EFI runtime services function pointers. Other fields of struct = efi, + * e.g. efi.systab, will be set like normal EFI. + */ +void __init xen_efi_runtime_setup(void) +{ + efi.get_time =3D xen_efi_get_time; + efi.set_time =3D xen_efi_set_time; + efi.get_wakeup_time =3D xen_efi_get_wakeup_time; + efi.set_wakeup_time =3D xen_efi_set_wakeup_time; + efi.get_variable =3D xen_efi_get_variable; + efi.get_next_variable =3D xen_efi_get_next_variable; + efi.set_variable =3D xen_efi_set_variable; + efi.set_variable_nonblocking =3D xen_efi_set_variable; + efi.query_variable_info =3D xen_efi_query_variable_info; + efi.query_variable_info_nonblocking =3D xen_efi_query_variable_info; + efi.update_capsule =3D xen_efi_update_capsule; + efi.query_capsule_caps =3D xen_efi_query_capsule_caps; + efi.get_next_high_mono_count =3D xen_efi_get_next_high_mono_count; + efi.reset_system =3D xen_efi_reset_system; +} +EXPORT_SYMBOL_GPL(xen_efi_runtime_setup); diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h index 98b30c1613b2..d89969aa9942 100644 --- a/include/xen/xen-ops.h +++ b/include/xen/xen-ops.h @@ -212,30 +212,7 @@ int xen_xlate_map_ballooned_pages(xen_pfn_t **pfns, vo= id **vaddr, =20 bool xen_running_on_version_or_later(unsigned int major, unsigned int mino= r); =20 -efi_status_t xen_efi_get_time(efi_time_t *tm, efi_time_cap_t *tc); -efi_status_t xen_efi_set_time(efi_time_t *tm); -efi_status_t xen_efi_get_wakeup_time(efi_bool_t *enabled, efi_bool_t *pend= ing, - efi_time_t *tm); -efi_status_t xen_efi_set_wakeup_time(efi_bool_t enabled, efi_time_t *tm); -efi_status_t xen_efi_get_variable(efi_char16_t *name, efi_guid_t *vendor, - u32 *attr, unsigned long *data_size, - void *data); -efi_status_t xen_efi_get_next_variable(unsigned long *name_size, - efi_char16_t *name, efi_guid_t *vendor); -efi_status_t xen_efi_set_variable(efi_char16_t *name, efi_guid_t *vendor, - u32 attr, unsigned long data_size, - void *data); -efi_status_t xen_efi_query_variable_info(u32 attr, u64 *storage_space, - u64 *remaining_space, - u64 *max_variable_size); -efi_status_t xen_efi_get_next_high_mono_count(u32 *count); -efi_status_t xen_efi_update_capsule(efi_capsule_header_t **capsules, - unsigned long count, unsigned long sg_list); -efi_status_t xen_efi_query_capsule_caps(efi_capsule_header_t **capsules, - unsigned long count, u64 *max_size, - int *reset_type); -void xen_efi_reset_system(int reset_type, efi_status_t status, - unsigned long data_size, efi_char16_t *data); +void xen_efi_runtime_setup(void); =20 =20 #ifdef CONFIG_PREEMPT --=20 2.16.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel