From nobody Wed Apr 1 20:37:30 2026 Received: from mail-wm1-f73.google.com (mail-wm1-f73.google.com [209.85.128.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 733DA402B81 for ; Wed, 1 Apr 2026 12:32:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775046727; cv=none; b=h7RmJ5YgjBq6N9IXekYp5gB3L93ymUym3kx6XsHSWq7eL2gTSlm2aQ2yqGb2oTGY8xb1qR7RqnUl4b7r+X+1Mp8duDr+XPw0Ok9hvNceKxSu0CVteE+/T2vbSkYmmNyF1fDsfsw+TjiQJcC6HYDSUyrn7JbBjN/VZivo9X1+o0c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775046727; c=relaxed/simple; bh=G4Yao6fDuq2DLugPKChKu/hAScXxcgM0sObQSmU35Ww=; h=Date:Mime-Version:Message-ID:Subject:From:To:Cc:Content-Type; b=hUi7BIRtDAKhRFUtagG3V78huDMPYNKzlT6RAlMbwPLucX38awGj1U+pzj3YespT1vjbiUvk+7fs1rUUxhTyHmOdeLMLkVo4hznhgD3mLUOxsuWjKto3dsxNXLk6v4Hf62mEGzvPW0Cm77ClP3K5MXTfCSFn0aCaHclZKlF3uLo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--sebastianene.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=rmItPCYC; arc=none smtp.client-ip=209.85.128.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--sebastianene.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="rmItPCYC" Received: by mail-wm1-f73.google.com with SMTP id 5b1f17b1804b1-4887f8a8df3so9628945e9.0 for ; Wed, 01 Apr 2026 05:32:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1775046725; x=1775651525; darn=vger.kernel.org; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=wm1IdxU+STCksWGBkUITwVrqTDoqeENYUSliBBXIr30=; b=rmItPCYCwxkCBsbwrS0iY1T9xri1FAS0/TC04X1iV0YTwv+v3tPzMJ6lruyxo+UT2X NK3MSNQ8IgukwLHMbcfgjune4dBDD+9kralU7fu9XcM0ecbEPbqJsd6kAoS/0co4kL4r WsIKWL5uaXksVAr2QIz/mJT4/DAMdR2STAzOepRvYpdl2vb5P2AQzIRN++5rDqLddDPh XQS7zmrJgXi18COAm1dBgFN4ogH0x4iLpJ9/OZuSABUqVQ8r9ThFuc0IaNCkYAX31NoF h6bjvAdUOgXaQAlWKfts/8r1IEVn9aXBmaDHGIjYUrx1JOBG8D7dudsxriaeIJr0wBRp h5gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775046725; x=1775651525; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=wm1IdxU+STCksWGBkUITwVrqTDoqeENYUSliBBXIr30=; b=E4vujWFdsVRaJbi2gNKWWdIMnyJozYJzznBgRVx6Lz/oI+Bp0sBH+c4GmhHVZ9Huca lyuco002bb6lC7mdODvg1D9IIaMzV7Z8SUKvZX4mAO7jTv3GPDNQIJbNutw9mDBxvXSU O1Koy/96wVoTjIsSkptycCVkCFtNSSgju898AWMcGf5xNKSodBIfwvwLesPvNp9Oc+z1 6PwP4UyeJJQudEy8n2U3eUkQ26eeg8EWsAH6kMpx3Ekl9B7hG0ZGgxfoo5g8iw9cmWJV xoksZtvqmekst5FDkEmy8wm92MEvVPDm0SuDByMgfQdnNA/0EuT6Aq+ClU5GL9BIurNK w4pg== X-Forwarded-Encrypted: i=1; AJvYcCWlc69xQrTYQxrFchROV6oo+ZA5RWa+ozZaDEk5Jx9iUoG9zCWL0jhmPBRs/ejQqcUpZ62KNXHpgWkn5jo=@vger.kernel.org X-Gm-Message-State: AOJu0Ywlec8HMenJJ4IxbIDINMvaj747sUxnAMFKHuatudcT4U7k+g13 wgXpYwPLoJhiTDvCFUSZeD/WA+zDiKSFfsxrTpXLDMl6Rfom2h+4MRLF20UJHdgQF2l3B2mdeVE zy+RmPCxPLNF4bkeOhGSuM8Hx9+J8QQ== X-Received: from wmba9.prod.google.com ([2002:a05:600c:6dc9:b0:487:201c:8d57]) (user=sebastianene job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:354a:b0:485:49c5:8eb7 with SMTP id 5b1f17b1804b1-4888359205dmr51064615e9.22.1775046724497; Wed, 01 Apr 2026 05:32:04 -0700 (PDT) Date: Wed, 1 Apr 2026 12:32:01 +0000 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 X-Mailer: git-send-email 2.53.0.1185.g05d4b7b318-goog Message-ID: <20260401123201.389906-1-sebastianene@google.com> Subject: [PATCH] KVM: arm64: Pass a 64bit function-id in the SMC handlers From: Sebastian Ene To: catalin.marinas@arm.com, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, android-kvm@google.com Cc: joey.gouly@arm.com, korneld@google.com, maz@kernel.org, mrigendra.chaubey@gmail.com, oupton@kernel.org, perlarsen@google.com, sebastianene@google.com, suzuki.poulose@arm.com, will@kernel.org, yuzenghui@huawei.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make the SMC handlers accept a 64bit value for the function-id to keep it uniform with the rest of the code and prevent a u64 -> u32 -> u64 conversion as it currently happens when we handle PSCI. Signed-off-by: Sebastian Ene --- arch/arm64/include/asm/kvm_hyp.h | 2 +- arch/arm64/kvm/hyp/include/nvhe/ffa.h | 2 +- arch/arm64/kvm/hyp/nvhe/ffa.c | 2 +- arch/arm64/kvm/hyp/nvhe/psci-relay.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm64/include/asm/kvm_hyp.h b/arch/arm64/include/asm/kvm_= hyp.h index 76ce2b94bd97..c9976425a85c 100644 --- a/arch/arm64/include/asm/kvm_hyp.h +++ b/arch/arm64/include/asm/kvm_hyp.h @@ -119,7 +119,7 @@ void __sve_restore_state(void *sve_pffr, u32 *fpsr, int= restore_ffr); =20 u64 __guest_enter(struct kvm_vcpu *vcpu); =20 -bool kvm_host_psci_handler(struct kvm_cpu_context *host_ctxt, u32 func_id); +bool kvm_host_psci_handler(struct kvm_cpu_context *host_ctxt, u64 func_id); =20 #ifdef __KVM_NVHE_HYPERVISOR__ void __noreturn __hyp_do_panic(struct kvm_cpu_context *host_ctxt, u64 spsr, diff --git a/arch/arm64/kvm/hyp/include/nvhe/ffa.h b/arch/arm64/kvm/hyp/inc= lude/nvhe/ffa.h index 146e0aebfa1c..21afca11ae0b 100644 --- a/arch/arm64/kvm/hyp/include/nvhe/ffa.h +++ b/arch/arm64/kvm/hyp/include/nvhe/ffa.h @@ -12,6 +12,6 @@ #define FFA_MAX_FUNC_NUM 0xFF =20 int hyp_ffa_init(void *pages); -bool kvm_host_ffa_handler(struct kvm_cpu_context *host_ctxt, u32 func_id); +bool kvm_host_ffa_handler(struct kvm_cpu_context *host_ctxt, u64 func_id); =20 #endif /* __KVM_HYP_FFA_H */ diff --git a/arch/arm64/kvm/hyp/nvhe/ffa.c b/arch/arm64/kvm/hyp/nvhe/ffa.c index 94161ea1cd60..87e6d36f120a 100644 --- a/arch/arm64/kvm/hyp/nvhe/ffa.c +++ b/arch/arm64/kvm/hyp/nvhe/ffa.c @@ -862,7 +862,7 @@ static void do_ffa_part_get(struct arm_smccc_1_2_regs *= res, hyp_spin_unlock(&host_buffers.lock); } =20 -bool kvm_host_ffa_handler(struct kvm_cpu_context *host_ctxt, u32 func_id) +bool kvm_host_ffa_handler(struct kvm_cpu_context *host_ctxt, u64 func_id) { struct arm_smccc_1_2_regs res; =20 diff --git a/arch/arm64/kvm/hyp/nvhe/psci-relay.c b/arch/arm64/kvm/hyp/nvhe= /psci-relay.c index c3e196fb8b18..79f390057c19 100644 --- a/arch/arm64/kvm/hyp/nvhe/psci-relay.c +++ b/arch/arm64/kvm/hyp/nvhe/psci-relay.c @@ -278,7 +278,7 @@ static unsigned long psci_1_0_handler(u64 func_id, stru= ct kvm_cpu_context *host_ } } =20 -bool kvm_host_psci_handler(struct kvm_cpu_context *host_ctxt, u32 func_id) +bool kvm_host_psci_handler(struct kvm_cpu_context *host_ctxt, u64 func_id) { unsigned long ret; =20 --=20 2.53.0.1185.g05d4b7b318-goog