From patchwork Fri Aug 30 13:01:44 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Will Deacon X-Patchwork-Id: 13785088 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 56241CA0FED for ; Fri, 30 Aug 2024 13:03:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=ZJU0XO03R3EqJvM6NDsF5Z6Sx2/en+R+KVScv6SKee0=; b=pZrYVmg1Hb2R4FAJqhBI0lFnWc bICrnctfpmaRow3R7poqwVQ7kKE4Z74WVo8yxrqe/FHU1+uqFonpGQ8g4tbcjEDBLKgP6bE39e+HO RkWDOW8acqA83mqIEAgYsU4M4K/zTGH7E/lskoNnt7CdyarpIvG8W2/pnQ7moS9C0VxEOB7XbvjMO qmjIMro6bYk1tj0hWDz1/r4w5/ob8J6L8Tnv9WvysnO3nYJnMXapcpixcJP8q4JGyXq/LqpFzPr28 4oty1K9xpM3G7KSCuTCmixJ9mGiZzbedSImeae0yqs3aShk92w1IN6NsqooUAk/PbImhMwGN5W1yf UI5rYVKg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sk1Hz-00000006K8d-1JLs; Fri, 30 Aug 2024 13:03:43 +0000 Received: from sin.source.kernel.org ([2604:1380:40e1:4800::1]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sk1GL-00000006JdW-1AFw for linux-arm-kernel@lists.infradead.org; Fri, 30 Aug 2024 13:02:02 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 121AACE1E00; Fri, 30 Aug 2024 13:01:59 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E7B81C4CEC9; Fri, 30 Aug 2024 13:01:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1725022917; bh=A+3W/LHx+l+LB0DUctIiW8vpIgMQ4ADYQ24vstES/1U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jXzcZLQ4FATCLyGSVz4aePHhhgBTP/jIdSrJF+DjEMXKFsf+ks5MLKwCOgbazI6XY bRM8Cmpnz04fGEtkgIFzrZAn6hiaqLIRf1knmeKWTvA1KO81l7VJ11mrGVF+f6AcFX CTAlBTNTE2gF8WVZQrxNl+ONABzCYq3rqcp4ikisklBs4Z0kO4T+iLMACEO1clyawP hhRrK3nuGEhm5BCfy1wTnxDhmbfqT+px50tcmuYW+aAhGClbyImWa2jKNrgYW6JOxJ CiX9q4AmFFM2cM0nOYv4dfAESWp0xkWDH3dviUDPcHFhJkkB9c3pvGwUuywNhlXixd V6XDGeJeG5yOA== From: Will Deacon To: linux-arm-kernel@lists.infradead.org Cc: Will Deacon , Sudeep Holla , Catalin Marinas , Lorenzo Pieralisi , Suzuki Poulose , Steven Price , Oliver Upton , Marc Zyngier , linux-coco@lists.linux.dev Subject: [PATCH v2 1/7] firmware/smccc: Call arch-specific hook on discovering KVM services Date: Fri, 30 Aug 2024 14:01:44 +0100 Message-Id: <20240830130150.8568-2-will@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20240830130150.8568-1-will@kernel.org> References: <20240830130150.8568-1-will@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240830_060201_516768_3A662284 X-CRM114-Status: UNSURE ( 9.98 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Marc Zyngier arm64 will soon require its own callback to initialise services that are only available on this architecture. Introduce a hook that can be overloaded by the architecture. Signed-off-by: Marc Zyngier Signed-off-by: Will Deacon --- arch/arm/include/asm/hypervisor.h | 2 ++ arch/arm64/include/asm/hypervisor.h | 4 ++++ drivers/firmware/smccc/kvm_guest.c | 2 ++ 3 files changed, 8 insertions(+) diff --git a/arch/arm/include/asm/hypervisor.h b/arch/arm/include/asm/hypervisor.h index bd61502b9715..8a648e506540 100644 --- a/arch/arm/include/asm/hypervisor.h +++ b/arch/arm/include/asm/hypervisor.h @@ -7,4 +7,6 @@ void kvm_init_hyp_services(void); bool kvm_arm_hyp_service_available(u32 func_id); +static inline void kvm_arch_init_hyp_services(void) { }; + #endif diff --git a/arch/arm64/include/asm/hypervisor.h b/arch/arm64/include/asm/hypervisor.h index 0ae427f352c8..8cab2ab535b7 100644 --- a/arch/arm64/include/asm/hypervisor.h +++ b/arch/arm64/include/asm/hypervisor.h @@ -7,4 +7,8 @@ void kvm_init_hyp_services(void); bool kvm_arm_hyp_service_available(u32 func_id); +static inline void kvm_arch_init_hyp_services(void) +{ +}; + #endif diff --git a/drivers/firmware/smccc/kvm_guest.c b/drivers/firmware/smccc/kvm_guest.c index 89a68e7eeaa6..f3319be20b36 100644 --- a/drivers/firmware/smccc/kvm_guest.c +++ b/drivers/firmware/smccc/kvm_guest.c @@ -39,6 +39,8 @@ void __init kvm_init_hyp_services(void) pr_info("hypervisor services detected (0x%08lx 0x%08lx 0x%08lx 0x%08lx)\n", res.a3, res.a2, res.a1, res.a0); + + kvm_arch_init_hyp_services(); } bool kvm_arm_hyp_service_available(u32 func_id)