From nobody Sat Jun 20 13:05:37 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 3E13A4534A7 for ; Tue, 16 Jun 2026 15:42: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=1781624527; cv=none; b=tWzcggCW6tODcfb/hV+AwmXQy231T/FRwn3lqbyXevSEtZVIg1TKkmZf8gXLg5xN4IPkoqAtFGdztOvour31ssvyP2N0cA5cVrV6f6qYIYeTu44ucGkVtySmPlVcS+plT7F4YGV9Mvt7JJL4Ohxx+8e+s/vJK/2TpIvJQK6Cwbw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781624527; c=relaxed/simple; bh=+EPAm01oMZR6vmeTgpUHROfcf1fZOMGaAY6f3ecYeus=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=TBW28fHgqbvxA+vmGsr7rBADAt9ye99P8+gDnJqumpNw8BTi6bSJAPfz3EmjNyHbTjxqy+HXPC+ozrI1u0RWXsQ9hX+PCycZTAb2O1ioRh0R7fqefnxsZ+v+4VVIqZRM2D9Znj0IjWtjreUDV4XRE9hPWrnUFj156HcWILBYAQk= 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=ojqX0nys; 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="ojqX0nys" Received: by mail-wm1-f73.google.com with SMTP id 5b1f17b1804b1-490e547f3cfso49807115e9.3 for ; Tue, 16 Jun 2026 08:42:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1781624524; x=1782229324; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=Y5yEFgPXn8B9bdRFZCXWSa8UhuAuZNwO3v29Jko7dXc=; b=ojqX0nysL9dasUS8vZdkxBWHd4xZd09RSS8HHrSA3paynYl42AkXKDMBuL800XzQvG VaeuzhaiTyjS8L98VNt3bHxS8ObCiniZiu4hzGUqZ8rCiBxpnQm52rmL+3iWua89j8zE XTmd6vI9HzDIR0D1Ep7KQKNzYnqao9HPd9eipbTvFgOr8pV786bPCshyvH6lyGLgCN4a cz/KPrxCNANLjj6CsBBQjX77H9PK0KbTrnhZsoTeRkA/SoNRJIse3j1fIDgeAlhaU6H/ gFd/jU0kdkAjf2qg0+lrfEn6EW3HzsItYYBqYQIGoc4rpcvfHw3S0DaoklYlsMMctzK9 Od2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781624524; x=1782229324; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Y5yEFgPXn8B9bdRFZCXWSa8UhuAuZNwO3v29Jko7dXc=; b=jQwb6X2lTbmFZpLC52486ywEd2mIXhZwBOBgswmWcgAnKhWM0utz9nrRxEWnUGI3AM Ut9cFPDUCQ6/06gG+bs+7hMkWJrtN8GrUOOWezGnr2bV/8YOu2NTSnXBHcRAZapao9SM 1+5p171vMrz8Of1VL8ovKIS5j7S6idFBdlhC0c/DAXyZzIPE5gomi2lIvhBK8YwlQSdq 457It/Qlr5kN576jaBmRkl0nMn6ACLK1kNFmbofIwiVZezUP0GvoZVCO5Gn4d+8SHa4/ yGNHsK3UcO7OqB1obGCxfbhB0rew2jG3VsY3LVllbMXT6YdW06K42aHtWE2+bWYsdT8n PiYA== X-Forwarded-Encrypted: i=1; AFNElJ/Og+WjonRS6oOu+DmBf61cswu8nSxzEW76AQlETvDgYwonpNd7PoeRM2wyUnl/0rSFnbBr6Kk0BqyQgIY=@vger.kernel.org X-Gm-Message-State: AOJu0YxK2pzDgIIZ8elumSlQsVz/DcnpHD3jAD5OxCTwqlZ9M1NQ9TxY XARM373PUY2Wvd7ou0tS6xbnMtzwjCvzgjFZzXbTqhR8aPZJ5EB4Bfhvu+74QkLl85fgJl950BA TLgywN2SjzUn9btZ5YKUNEdwnMnoSkA== X-Received: from wmxa14-n1.prod.google.com ([2002:a05:600d:644e:10b0:490:b555:8215]) (user=sebastianene job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:33a9:b0:492:2f59:4969 with SMTP id 5b1f17b1804b1-492333ca3c3mr224855e9.22.1781624524184; Tue, 16 Jun 2026 08:42:04 -0700 (PDT) Date: Tue, 16 Jun 2026 15:41:43 +0000 In-Reply-To: <20260616154149.2763214-1-sebastianene@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260616154149.2763214-1-sebastianene@google.com> X-Mailer: git-send-email 2.54.0.1136.gdb2ca164c4-goog Message-ID: <20260616154149.2763214-2-sebastianene@google.com> Subject: [PATCH v4 1/7] KVM: arm64: Enforce strict SBZ checks in the FF-A proxy From: Sebastian Ene To: catalin.marinas@arm.com, maz@kernel.org, oupton@kernel.org, will@kernel.org Cc: joey.gouly@arm.com, korneld@google.com, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, android-kvm@google.com, mrigendra.chaubey@gmail.com, perlarsen@google.com, sebastianene@google.com, suzuki.poulose@arm.com, vdonnefort@google.com, yuzenghui@huawei.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Introduce a helper method ffa_check_unused_args_sbz to enforce strict arguments checking when the hypervisor acts as a relayer between the host and Trustzone. Signed-off-by: Sebastian Ene --- arch/arm64/kvm/hyp/nvhe/ffa.c | 47 +++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/arch/arm64/kvm/hyp/nvhe/ffa.c b/arch/arm64/kvm/hyp/nvhe/ffa.c index 1af722771178..c64c704f22f8 100644 --- a/arch/arm64/kvm/hyp/nvhe/ffa.c +++ b/arch/arm64/kvm/hyp/nvhe/ffa.c @@ -71,6 +71,18 @@ static u32 hyp_ffa_version; static bool has_version_negotiated; static hyp_spinlock_t version_lock; =20 +static bool ffa_check_unused_args_sbz(struct kvm_cpu_context *ctxt, int fi= rst_reg) +{ + int reg; + + for (reg =3D first_reg; reg <=3D 17; reg++) { + if (cpu_reg(ctxt, reg)) + return true; + } + + return false; +} + static void ffa_to_smccc_error(struct arm_smccc_1_2_regs *res, u64 ffa_err= no) { *res =3D (struct arm_smccc_1_2_regs) { @@ -239,6 +251,11 @@ static void do_ffa_rxtx_map(struct arm_smccc_1_2_regs = *res, int ret =3D 0; void *rx_virt, *tx_virt; =20 + if (ffa_check_unused_args_sbz(ctxt, 4)) { + ret =3D FFA_RET_INVALID_PARAMETERS; + goto out; + } + if (npages !=3D (KVM_FFA_MBOX_NR_PAGES * PAGE_SIZE) / FFA_PAGE_SIZE) { ret =3D FFA_RET_INVALID_PARAMETERS; goto out; @@ -315,6 +332,11 @@ static void do_ffa_rxtx_unmap(struct arm_smccc_1_2_reg= s *res, DECLARE_REG(u32, id, ctxt, 1); int ret =3D 0; =20 + if (ffa_check_unused_args_sbz(ctxt, 2)) { + ret =3D FFA_RET_INVALID_PARAMETERS; + goto out; + } + if (id !=3D HOST_FFA_ID) { ret =3D FFA_RET_INVALID_PARAMETERS; goto out; @@ -421,6 +443,11 @@ static void do_ffa_mem_frag_tx(struct arm_smccc_1_2_re= gs *res, int ret =3D FFA_RET_INVALID_PARAMETERS; u32 nr_ranges; =20 + if (ffa_check_unused_args_sbz(ctxt, 5)) { + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); + return; + } + if (fraglen > KVM_FFA_MBOX_NR_PAGES * PAGE_SIZE) goto out; =20 @@ -482,6 +509,11 @@ static void __do_ffa_mem_xfer(const u64 func_id, u32 offset, nr_ranges, checked_offset; int ret =3D 0; =20 + if (ffa_check_unused_args_sbz(ctxt, 5)) { + ret =3D FFA_RET_INVALID_PARAMETERS; + goto out; + } + if (addr_mbz || npages_mbz || fraglen > len || fraglen > KVM_FFA_MBOX_NR_PAGES * PAGE_SIZE) { ret =3D FFA_RET_INVALID_PARAMETERS; @@ -581,6 +613,11 @@ static void do_ffa_mem_reclaim(struct arm_smccc_1_2_re= gs *res, int ret =3D 0; u64 handle; =20 + if (ffa_check_unused_args_sbz(ctxt, 4)) { + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); + return; + } + handle =3D PACK_HANDLE(handle_lo, handle_hi); =20 hyp_spin_lock(&host_buffers.lock); @@ -769,6 +806,11 @@ static void do_ffa_version(struct arm_smccc_1_2_regs *= res, { DECLARE_REG(u32, ffa_req_version, ctxt, 1); =20 + if (ffa_check_unused_args_sbz(ctxt, 2)) { + res->a0 =3D FFA_RET_NOT_SUPPORTED; + return; + } + if (FFA_MAJOR_VERSION(ffa_req_version) !=3D 1) { res->a0 =3D FFA_RET_NOT_SUPPORTED; return; @@ -818,6 +860,11 @@ static void do_ffa_part_get(struct arm_smccc_1_2_regs = *res, DECLARE_REG(u32, flags, ctxt, 5); u32 count, partition_sz, copy_sz; =20 + if (ffa_check_unused_args_sbz(ctxt, 6)) { + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); + return; + } + hyp_spin_lock(&host_buffers.lock); if (!host_buffers.rx) { ffa_to_smccc_res(res, FFA_RET_BUSY); --=20 2.54.0.1136.gdb2ca164c4-goog From nobody Sat Jun 20 13:05:37 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 781AE4657CC for ; Tue, 16 Jun 2026 15:42:09 +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=1781624530; cv=none; b=W/YLh6zMHaGqwXGtGL/fuCXdrbP8kmt7IO9c7vB9JSMOn1H7lAmbkyO3/ZBbcTIkeGnP6g0DvjUyi7g6yidFSJ7NkanMKiKdt2HXvO7KFlTll8O515l2hHjTg+9iD4c8wsRGhJx+xENMPh0pnPJi4egPpTQTO/p2ZnmcJtKRdKg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781624530; c=relaxed/simple; bh=0hMGdSg0LxWwUQvbPAP4+IuVhVENpwMcOzxYp4w0soI=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=t7C4ug7qnrgzoJAVDWnHn0If3V68KGM6grZtB1UFIpBHd3b5tV3NKRfFxcL0zyzb6KNvtRSLdG3sHjEyEoU++0MzRttddhgyfwPwkEFUL8/O9NQ+JCmFFC6aIKdpSZOe8ikkGr4EzMoV5wiIIA9Sqa8yclHLekf1Mr2o0XD/7+Y= 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=mmXSMl2e; 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="mmXSMl2e" Received: by mail-wm1-f73.google.com with SMTP id 5b1f17b1804b1-490cc1ae292so26873535e9.1 for ; Tue, 16 Jun 2026 08:42:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1781624528; x=1782229328; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=HDCvszfTGrfPrRQcbamAtNu8DMm5bIYeuf9FwhpYcNM=; b=mmXSMl2eMGYCYrvGbL0IC1mBX/EsmjN6tc7+mJwT1+TDDtZ3DYUtNnvkNd//ObuXYP nMEpbkhHDj5lmPd2XSm6i4y++kLjqzYJmIABdqLTWGcVs697AxLPMGReerczDitWdxKL k182FLAR+5A/yJVg5yEzghoS8cPZROAcXv3QBNkiG2hoW4+gTF5IF2KXncAshUO2leAp UvYR7gKa3Y06tcYvhDtRC8rr8xM+ASrHlU2LERQVrgoSWNr+rM/1Y0kByHN5ugnpEVac cT2084aIYSc4eDX+NSO8Mz1eJCXbmO8Y8szBrKityRVmOXMZVk4/Me2eUh3KLLeM7qWM ymOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781624528; x=1782229328; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=HDCvszfTGrfPrRQcbamAtNu8DMm5bIYeuf9FwhpYcNM=; b=Z2jj0QBHz6D19xSfb8C8l62zAFOx85HXts4dhfP6YfZeXG4Q/oemMI6y852JAKxA65 nLDyIydBgIglDyNdcz37ewcX/teLASCqKIPgqfpO4tk7u1MfcKYI4MS8szIphptx97I0 ljURWBHD6cvTHQpY2/VQ85SfMGAqzTl8PGzw5C3FEKbZJtLef8J0EiLis4faQrb85ikH 9Z3qmd8ge2aDQeG06uYZRcY5xQLf7MclocvPKdsExaKxAUPc4VSyHmRlFAe9ck0tSLUs SgJkp2iNQ5oiL9P0n/gtfWIrLHFos2rtbfINg8DEFjgWn6JcSFDhtVXa33cIpmFwTIm+ OANw== X-Forwarded-Encrypted: i=1; AFNElJ8aLpsr8L+lTqX5gSgfkCoaugN8VE+7+KFHdeHz9dKWPIkrFzBE5j76JCKks54dipxGbzgpog3qBPoknL4=@vger.kernel.org X-Gm-Message-State: AOJu0Yyx8GTnoKEwowOCKfas44e+kXynTX8szUfdhw8LdVQKpDWk09qm G0gbPFosWPgouMfR9beMWhQn4MDS9nrd6g2OZ1Hg9SpX9HU4aIUj3vc/bk57TMm+0SF+r+XYOrY hkNHBCoUuVO2FM30mnjLFtZHEFNG5lQ== X-Received: from wmpt39.prod.google.com ([2002:a05:600c:32a7:b0:490:b8a9:c86]) (user=sebastianene job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:5248:b0:489:32b:ac0b with SMTP id 5b1f17b1804b1-492332d2c22mr2868755e9.6.1781624527303; Tue, 16 Jun 2026 08:42:07 -0700 (PDT) Date: Tue, 16 Jun 2026 15:41:44 +0000 In-Reply-To: <20260616154149.2763214-1-sebastianene@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260616154149.2763214-1-sebastianene@google.com> X-Mailer: git-send-email 2.54.0.1136.gdb2ca164c4-goog Message-ID: <20260616154149.2763214-3-sebastianene@google.com> Subject: [PATCH v4 2/7] KVM: arm64: Forward FFA_NOTIFICATION_BITMAP calls to Trustzone From: Sebastian Ene To: catalin.marinas@arm.com, maz@kernel.org, oupton@kernel.org, will@kernel.org Cc: joey.gouly@arm.com, korneld@google.com, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, android-kvm@google.com, mrigendra.chaubey@gmail.com, perlarsen@google.com, sebastianene@google.com, suzuki.poulose@arm.com, vdonnefort@google.com, yuzenghui@huawei.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Allow FF-A notification bitmap messages to be forwarded to Trustzone from the host kernel driver enforce checking for SBZ fields. Signed-off-by: Sebastian Ene --- arch/arm64/kvm/hyp/nvhe/ffa.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/arch/arm64/kvm/hyp/nvhe/ffa.c b/arch/arm64/kvm/hyp/nvhe/ffa.c index c64c704f22f8..a72f6d4b62f0 100644 --- a/arch/arm64/kvm/hyp/nvhe/ffa.c +++ b/arch/arm64/kvm/hyp/nvhe/ffa.c @@ -713,8 +713,6 @@ static bool ffa_call_supported(u64 func_id) case FFA_MEM_DONATE: case FFA_MEM_RETRIEVE_REQ: /* Optional notification interfaces added in FF-A 1.1 */ - case FFA_NOTIFICATION_BITMAP_CREATE: - case FFA_NOTIFICATION_BITMAP_DESTROY: case FFA_NOTIFICATION_BIND: case FFA_NOTIFICATION_UNBIND: case FFA_NOTIFICATION_SET: @@ -909,6 +907,27 @@ static void do_ffa_part_get(struct arm_smccc_1_2_regs = *res, hyp_spin_unlock(&host_buffers.lock); } =20 +static void do_ffa_notif_bitmap(struct arm_smccc_1_2_regs *res, + struct kvm_cpu_context *ctxt) +{ + DECLARE_REG(u32, func_id, ctxt, 0); + DECLARE_REG(u32, vmid, ctxt, 1); + struct arm_smccc_1_2_regs *args; + + if (ffa_check_unused_args_sbz(ctxt, func_id =3D=3D FFA_NOTIFICATION_BITMA= P_CREATE ? 3 : 2)) { + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); + return; + } + + if (vmid !=3D HOST_FFA_ID) { + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); + return; + } + + args =3D (void *)&ctxt->regs.regs[0]; + hyp_smccc_1_2_smc(args, res); +} + bool kvm_host_ffa_handler(struct kvm_cpu_context *host_ctxt, u32 func_id) { struct arm_smccc_1_2_regs res; @@ -967,6 +986,10 @@ bool kvm_host_ffa_handler(struct kvm_cpu_context *host= _ctxt, u32 func_id) case FFA_PARTITION_INFO_GET: do_ffa_part_get(&res, host_ctxt); goto out_handled; + case FFA_NOTIFICATION_BITMAP_CREATE: + case FFA_NOTIFICATION_BITMAP_DESTROY: + do_ffa_notif_bitmap(&res, host_ctxt); + goto out_handled; } =20 if (ffa_call_supported(func_id)) --=20 2.54.0.1136.gdb2ca164c4-goog From nobody Sat Jun 20 13:05:37 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 1FEFA466B52 for ; Tue, 16 Jun 2026 15:42:12 +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=1781624534; cv=none; b=r+TOoMBWg/7MPHTWy9+2uA9vfDX5nDzUtpGO0dhMdonHBKBAYzhftRDx0Cv7iKMItkVAHILjxt2OpFdJYMnKLKQP18kokPQVc7t0HrbALm2m6VDSCrtP7siKOVhIUwf2eJPr2fYJatHHhx7qufICqxD666cJjPtPSTbSoQ773aY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781624534; c=relaxed/simple; bh=wwyBxT7BxvbWIoa11wxvc9tE42KGmuMi8OH5wpEcHg8=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=hf4aHLHqDRf9MUPZNw8LJoYaXweDlLMK0D7eCy/e0aPjY8KSW2fsCqWKoNFHHlPHKPF22qObdBNdE0YCMAuyD4w1MaeqN2xAbQ/vttaZbWYysvxVJYLLHVi/tpH7jHd425q1v+fRdBONHMXuBK38zFk+JdzzIef2swjyKo9FWE0= 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=RYEpvDrY; 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="RYEpvDrY" Received: by mail-wm1-f73.google.com with SMTP id 5b1f17b1804b1-490ace40f13so20563665e9.3 for ; Tue, 16 Jun 2026 08:42:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1781624531; x=1782229331; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=edc7Ld3Q1CWSVNPfr5TXV9CytVBJ6mK62PgjuDOMsL0=; b=RYEpvDrY1i9A5RMkdQFrFtikNCkEBbhiKVe6GSPDUuoyM7s5+zaei5bd+AToRvK4rg zezFIr0c7t8doOvXa7Dm5Ju39AIfQCS9XLAzLkKtFB38RxS08LcTPS2Uek7KOCEaE/+m bqwTkjN22Bd2zqay7ycw7FDOj8mlcQ6A49asNu/xuvhvJgzpJJILRvDHGjvAhjTd77rp z7cM/YVXfrw6PuVk2G+8p/xP/UoUk/p+V6yBrQqZ3bvP7XSfxvemkflIHnAYQe3TUfyZ w6OY7n2X0U6aDUiwxIUBtBTi5Q8TR3aYhx1aI+dGptcZRWDcxSJNEFvdgd2HvfADTeXF VVVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781624531; x=1782229331; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=edc7Ld3Q1CWSVNPfr5TXV9CytVBJ6mK62PgjuDOMsL0=; b=C/Qw5oCsWISd94DxEtisYwjAiW2GbR9yo/ezWQGvcEPXt09fWkHHrMtl2/JiTQUJ3G H1DV6iXD88Rt+3QdmXA/7AEWbNg74FQX1A+Q7K0iV0X5tcUnwSfNDsd/ds2mKURvDHXm iA0d18rZ7W8Fbb38+0Tf78EsxV7sNOuu3IyFQFHIwrxslHUndt8GHzEPFi5H63QmoMIa MX7bKZqF724ao07DnJupimWI9oMvqfN39hLRr/beEtZcmvTpiFzvkyCnyvlEZpnnaJ7L ctFq83Obd7VgAWxdit9o/Qdhr4GCXqPceKmKOEDJbavFEBGxdU2T6vBDuKAojGnNdfuU 6M7w== X-Forwarded-Encrypted: i=1; AFNElJ+dtjc4AdJm5BW3QNi1fZQrbsO9c3YkVrg7lxSC1Whj0UXYeYrkHi9uN3pCvjPh5h16hy/xVksjwvS0CNI=@vger.kernel.org X-Gm-Message-State: AOJu0YyspI1QKWYaDyB6XUZkYAWnYrykNK6NfqmuysLULNSTh8EUCZPn FnZO5ICD5CisWiuN+1L2a3pLUh6klO3UR5yeVSqmfv6xeMzC5WJLK7bQYx+asdwUQL5tc68LJc+ CIo+Gs3/q2TisfzGnQ6PT45oEyRY3/A== X-Received: from wmv21.prod.google.com ([2002:a05:600c:26d5:b0:48a:79a9:335c]) (user=sebastianene job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:8a1b:20b0:48e:7854:1608 with SMTP id 5b1f17b1804b1-492333ecc7fmr75895e9.25.1781624531168; Tue, 16 Jun 2026 08:42:11 -0700 (PDT) Date: Tue, 16 Jun 2026 15:41:45 +0000 In-Reply-To: <20260616154149.2763214-1-sebastianene@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260616154149.2763214-1-sebastianene@google.com> X-Mailer: git-send-email 2.54.0.1136.gdb2ca164c4-goog Message-ID: <20260616154149.2763214-4-sebastianene@google.com> Subject: [PATCH v4 3/7] KVM: arm64: Support FFA_NOTIFICATION_BIND in host handler From: Sebastian Ene To: catalin.marinas@arm.com, maz@kernel.org, oupton@kernel.org, will@kernel.org Cc: joey.gouly@arm.com, korneld@google.com, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, android-kvm@google.com, mrigendra.chaubey@gmail.com, perlarsen@google.com, sebastianene@google.com, suzuki.poulose@arm.com, vdonnefort@google.com, yuzenghui@huawei.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Verify the arguments of the FF-A notification bind call and forward the message to Trustzone. Signed-off-by: Sebastian Ene --- arch/arm64/kvm/hyp/nvhe/ffa.c | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/arch/arm64/kvm/hyp/nvhe/ffa.c b/arch/arm64/kvm/hyp/nvhe/ffa.c index a72f6d4b62f0..1f38ad008675 100644 --- a/arch/arm64/kvm/hyp/nvhe/ffa.c +++ b/arch/arm64/kvm/hyp/nvhe/ffa.c @@ -42,6 +42,8 @@ */ #define HOST_FFA_ID 0 =20 +#define FFA_NOTIF_RECEIVER_ENDP_MASK GENMASK(15, 0) + /* * A buffer to hold the maximum descriptor size we can see from the host, * which is required when the SPMD returns a fragmented FFA_MEM_RETRIEVE_R= ESP @@ -713,7 +715,6 @@ static bool ffa_call_supported(u64 func_id) case FFA_MEM_DONATE: case FFA_MEM_RETRIEVE_REQ: /* Optional notification interfaces added in FF-A 1.1 */ - case FFA_NOTIFICATION_BIND: case FFA_NOTIFICATION_UNBIND: case FFA_NOTIFICATION_SET: case FFA_NOTIFICATION_GET: @@ -928,6 +929,32 @@ static void do_ffa_notif_bitmap(struct arm_smccc_1_2_r= egs *res, hyp_smccc_1_2_smc(args, res); } =20 +static void do_ffa_notif_bind(struct arm_smccc_1_2_regs *res, + struct kvm_cpu_context *ctxt) +{ + DECLARE_REG(u32, endp_id, ctxt, 1); + DECLARE_REG(u32, flags, ctxt, 2); + struct arm_smccc_1_2_regs *args; + + if (ffa_check_unused_args_sbz(ctxt, 5)) { + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); + return; + } + + if (FIELD_GET(FFA_NOTIF_RECEIVER_ENDP_MASK, endp_id) !=3D HOST_FFA_ID) { + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); + return; + } + + if (flags > 1) { + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); + return; + } + + args =3D (void *)&ctxt->regs.regs[0]; + hyp_smccc_1_2_smc(args, res); +} + bool kvm_host_ffa_handler(struct kvm_cpu_context *host_ctxt, u32 func_id) { struct arm_smccc_1_2_regs res; @@ -990,6 +1017,9 @@ bool kvm_host_ffa_handler(struct kvm_cpu_context *host= _ctxt, u32 func_id) case FFA_NOTIFICATION_BITMAP_DESTROY: do_ffa_notif_bitmap(&res, host_ctxt); goto out_handled; + case FFA_NOTIFICATION_BIND: + do_ffa_notif_bind(&res, host_ctxt); + goto out_handled; } =20 if (ffa_call_supported(func_id)) --=20 2.54.0.1136.gdb2ca164c4-goog From nobody Sat Jun 20 13:05:37 2026 Received: from mail-wr1-f74.google.com (mail-wr1-f74.google.com [209.85.221.74]) (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 1128244E02C for ; Tue, 16 Jun 2026 15:42:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781624537; cv=none; b=dquO4p+z+ZPTMI+idCU5QNMaaSr+FnvtHUQfPqAHTP3x/y4EJKpyMpmowENPtXMh0zu6fh5JU9dt8alTQ7jaIIuLPd8qevolITPSSHgNp6enjiS29pJoc/RDUSaSD86zWqh5DSWi0NmMqY3l1F5cd1qR1a/Faq7xq3bc9fcyNRM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781624537; c=relaxed/simple; bh=zptgevR25CiCiySQHvfLxICZuFBXFFtymGqkQC9bt6w=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=GlluWrXmHFam5lQadk8MmL9lqko3VPhp6TgzOxfVq9hnVxdGw8T766v8/EIGfwWdBcNm0CxcvePyTK0tdkjxna0Wdp/nnLl1RF03RB/QmJnrcnAcwMb3MzY8UgHnl63jXWc/BEbzcJtYF+t0tjvjoVEDJOvGxOYQFW26NTQk4Pc= 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=emxIK7f5; arc=none smtp.client-ip=209.85.221.74 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="emxIK7f5" Received: by mail-wr1-f74.google.com with SMTP id ffacd0b85a97d-461a15b716fso476324f8f.2 for ; Tue, 16 Jun 2026 08:42:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1781624534; x=1782229334; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=wKil37HAzALzonWw/7fqaOm1BrpCO8SF3FKst/evun4=; b=emxIK7f5TgZYeuHXSItwOQYE51VoihMeRB7WYduaGv0g2a0wwdZkCyDGeXHZ98orFK QFbBCsrD1d+/TERE8CHlx2PhS7ugvdnezaiyB3ttlzep+Oi4KLya3vGwvTr11sZquO0+ bQiDgz5jIiQApjOVhzwfbVtSiRKYPCyu8LPz2sm3aCCN1LUdR8eIgNUn/3v4yB6F7H0B IbNqvFcOtQ+Nzz8vTMILhaex3hfw6lKRb+e6zdoxJp2obLOJcd7V3WsEuoeyjsMLx+ne +qXyGNxCklr9NiT7YiuNrLJycQMUkXO5lUgJ3zZmH9KtXsFlDy06xXzTH0D6L33jkVo0 mxvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781624534; x=1782229334; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=wKil37HAzALzonWw/7fqaOm1BrpCO8SF3FKst/evun4=; b=BnDENA/R45lF/x4KmHJaRjdk+Ca3B8A88KqW+r/nHEi61QQ/n0RiJHTMiquXYSx/Qi D4FB4h4nI7reaxb4KL7C3Z/O40E64tThX2FIiE7IourdgVOFLM8HstoOUGMH9P0VHT04 TPmywt+4ZE/o2W7B0nPLMiYENSQHO4dXRfo2I6ehftK3U4vUeFRwX7SCJ0IJqeIsiwDw KwdXv8cXwzxlU+/T6iExHqex5Hj6dASE10UGIBy7AdufWAqGRlcdD9SnEWC1vnrnaDNN Hi4bsiQRvSYP/MGXZWVI5TBGl6iWdz/BEA1yFKBguKQJWuuxfzQviijpiBKVOaQVTp1T P9JQ== X-Forwarded-Encrypted: i=1; AFNElJ9rXdLxT82h3XtIPGjLN4ECYByKxSc8Z/dUBLete5lOuJ2JrIaYrt6K5BTWKjWlszRbyW4l2zGYhUoxBa0=@vger.kernel.org X-Gm-Message-State: AOJu0YyRB/YdzRZLo2Eq8E6VKEY5O9fImgCs0FQKhf9ulW44YBVAj+V8 JfGxB8YLPmSN/IUphf3SjbeuNA0JWRS7m91qEdHfVN5g2w9/o41LyzjZbFRTRfLY3uYikx6ZsGS LUj9r2disag2RXBeo987G6jyaYNOltg== X-Received: from wmxb10-n1.prod.google.com ([2002:a05:600d:844a:10b0:490:bb60:cdf4]) (user=sebastianene job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:c0c8:b0:490:b446:fb8 with SMTP id 5b1f17b1804b1-492333af102mr792995e9.11.1781624534173; Tue, 16 Jun 2026 08:42:14 -0700 (PDT) Date: Tue, 16 Jun 2026 15:41:46 +0000 In-Reply-To: <20260616154149.2763214-1-sebastianene@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260616154149.2763214-1-sebastianene@google.com> X-Mailer: git-send-email 2.54.0.1136.gdb2ca164c4-goog Message-ID: <20260616154149.2763214-5-sebastianene@google.com> Subject: [PATCH v4 4/7] KVM: arm64: Support FFA_NOTIFICATION_UNBIND in host handler From: Sebastian Ene To: catalin.marinas@arm.com, maz@kernel.org, oupton@kernel.org, will@kernel.org Cc: joey.gouly@arm.com, korneld@google.com, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, android-kvm@google.com, mrigendra.chaubey@gmail.com, perlarsen@google.com, sebastianene@google.com, suzuki.poulose@arm.com, vdonnefort@google.com, yuzenghui@huawei.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Verify the arguments of the FF-A notification unbind call and forward the message to Trustzone. Signed-off-by: Sebastian Ene --- arch/arm64/kvm/hyp/nvhe/ffa.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/arch/arm64/kvm/hyp/nvhe/ffa.c b/arch/arm64/kvm/hyp/nvhe/ffa.c index 1f38ad008675..adf8680f3266 100644 --- a/arch/arm64/kvm/hyp/nvhe/ffa.c +++ b/arch/arm64/kvm/hyp/nvhe/ffa.c @@ -715,7 +715,6 @@ static bool ffa_call_supported(u64 func_id) case FFA_MEM_DONATE: case FFA_MEM_RETRIEVE_REQ: /* Optional notification interfaces added in FF-A 1.1 */ - case FFA_NOTIFICATION_UNBIND: case FFA_NOTIFICATION_SET: case FFA_NOTIFICATION_GET: case FFA_NOTIFICATION_INFO_GET: @@ -955,6 +954,27 @@ static void do_ffa_notif_bind(struct arm_smccc_1_2_reg= s *res, hyp_smccc_1_2_smc(args, res); } =20 +static void do_ffa_notif_unbind(struct arm_smccc_1_2_regs *res, + struct kvm_cpu_context *ctxt) +{ + DECLARE_REG(u32, endp_id, ctxt, 1); + DECLARE_REG(u32, reserved, ctxt, 2); + struct arm_smccc_1_2_regs *args; + + if (ffa_check_unused_args_sbz(ctxt, 5) || reserved) { + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); + return; + } + + if (FIELD_GET(FFA_NOTIF_RECEIVER_ENDP_MASK, endp_id) !=3D HOST_FFA_ID) { + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); + return; + } + + args =3D (void *)&ctxt->regs.regs[0]; + hyp_smccc_1_2_smc(args, res); +} + bool kvm_host_ffa_handler(struct kvm_cpu_context *host_ctxt, u32 func_id) { struct arm_smccc_1_2_regs res; @@ -1020,6 +1040,9 @@ bool kvm_host_ffa_handler(struct kvm_cpu_context *hos= t_ctxt, u32 func_id) case FFA_NOTIFICATION_BIND: do_ffa_notif_bind(&res, host_ctxt); goto out_handled; + case FFA_NOTIFICATION_UNBIND: + do_ffa_notif_unbind(&res, host_ctxt); + goto out_handled; } =20 if (ffa_call_supported(func_id)) --=20 2.54.0.1136.gdb2ca164c4-goog From nobody Sat Jun 20 13:05:37 2026 Received: from mail-wm1-f74.google.com (mail-wm1-f74.google.com [209.85.128.74]) (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 4FCB244DB61 for ; Tue, 16 Jun 2026 15:42:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781624540; cv=none; b=cTFt4loX8Pdw6hTmoksCvtAZeNr4I9lNTQ41YkTi8TZaABnAExR6S5tw/S3Ys4waUgpi7BACummCc3tZ/ATaIC//smnS3cIZOPii7CnlDDcORfBC8vsYF9PKZQ1IxasIhRlxHwNqRpx5EA/J8pOmgmwFUtm9IPDyKuo2uY9C+8I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781624540; c=relaxed/simple; bh=lA/h6XsMWZh0DggBMdLI+bQY/FwTAx2utdxY8hELFlM=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=JwSpjtv4jqVaraUf2FrmpamUK6xFbhNml/3sudMzZ1boNcutiJ0VKDQejWOtOAYhVBV1hCh8aEd9AdnoDX3pi1sPWW+VysylLx29FPFZQ92Jsb8Cdi44Q+lVrGWGeMUY8362677JlejuQO5Owc+TFoHrd/NYR/+sUp+hB/4UJqQ= 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=P0zoOIe8; arc=none smtp.client-ip=209.85.128.74 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="P0zoOIe8" Received: by mail-wm1-f74.google.com with SMTP id 5b1f17b1804b1-490dad70f95so48414545e9.3 for ; Tue, 16 Jun 2026 08:42:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1781624537; x=1782229337; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=kCFbezIeGawe2Un5+cxPY6PY3SKM8v7J2hVjyNVIFYQ=; b=P0zoOIe8+31YWSl5zhVrLebvoS2e0wdlIfOY4wsoWpNjvjeIKKI4iyY8KTx1TiDkQE zkU/PTRsLB6F5YYfqFrB6gaCvuVDc/sDHwmofizDmK8d/zGWB0M5WEMkQgW+oQ7c/cKq BTJGG3IUXiUkw+Mm2NrLRw4Ytr77MAAPO93jou42DVVQBucVyIr2YjbOBLGuQdCwOaGF Y13hxPEKEqtpNyCKNAXmmwBZUJyhy9trs6AQ+iMtaaUOfvzBlZ0+TEuqezyl2TbielyX zKh7nnEOQLMDUHzVx49W1f5dk6mmWfs55bm81gUTmctbB0XL9k7qyG2h4lGP0ltzrIT3 12qA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781624537; x=1782229337; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=kCFbezIeGawe2Un5+cxPY6PY3SKM8v7J2hVjyNVIFYQ=; b=VZwFpY4YR7KNnA7lI/0RKAesN0xJbt7X1Ir1Fh4U6qItvAe6N42rivYQaWP72Le99o DIw5VY4VfmHh1Dt4tgw+G98wdMuzc70Wr2F3+91idgx5dlMFlHb7MkeXcyn/4keYia8I gcyUeCIXTPOKU+mS8Yk776oUI8y+LEPCnIWwJP40kGq3wjDVj8iLe4JKtauhadr0ptRS cqsyS7LowyG/DFRkSns+oZmKZg6LUPdYe8ie+/5hGLkoUHNct2HovmT7P/7VcO+3xDaw k1gUCcmGINb0dGq4Zo6ZphzMgovVSIQ5nHPr2zsWZMbQspy7EjRVxsXHKzxgGCYdkxP1 Kt5w== X-Forwarded-Encrypted: i=1; AFNElJ8+ER9hjaFG8JHE1HRpnmbEdMob20fTds5Izk72H8/IZtFJRzdcQ2PHgVNcY7q//+ho85Vw+Qqb+bQ+DLI=@vger.kernel.org X-Gm-Message-State: AOJu0Yy4/mELOcebMs7XaUX2ivnLlT7mKTnCeW5pZhBmR27q/65v9gP8 6P/tgbc5Yis5R2aXy6BKoNMQTtnqrRrkVCDeMsz59cFv83xDFbn/Rt6rmYzXlq85KqV1GcRMIjP XA9Iam+A4qwTX2PM/NUzE7UHLxcVNhg== X-Received: from wmf9.prod.google.com ([2002:a05:600c:2289:b0:490:3def:63b9]) (user=sebastianene job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:c08b:b0:490:bb20:de64 with SMTP id 5b1f17b1804b1-4923339fd46mr929915e9.5.1781624536623; Tue, 16 Jun 2026 08:42:16 -0700 (PDT) Date: Tue, 16 Jun 2026 15:41:47 +0000 In-Reply-To: <20260616154149.2763214-1-sebastianene@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260616154149.2763214-1-sebastianene@google.com> X-Mailer: git-send-email 2.54.0.1136.gdb2ca164c4-goog Message-ID: <20260616154149.2763214-6-sebastianene@google.com> Subject: [PATCH v4 5/7] KVM: arm64: Support FFA_NOTIFICATION_SET in host handler From: Sebastian Ene To: catalin.marinas@arm.com, maz@kernel.org, oupton@kernel.org, will@kernel.org Cc: joey.gouly@arm.com, korneld@google.com, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, android-kvm@google.com, mrigendra.chaubey@gmail.com, perlarsen@google.com, sebastianene@google.com, suzuki.poulose@arm.com, vdonnefort@google.com, yuzenghui@huawei.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Allow FF-A notification SET messages to be proxied from the pKVM hypervisor to Trustzone and enforce MBZ/SBZ fields. Signed-off-by: Sebastian Ene --- arch/arm64/kvm/hyp/nvhe/ffa.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/arch/arm64/kvm/hyp/nvhe/ffa.c b/arch/arm64/kvm/hyp/nvhe/ffa.c index adf8680f3266..fdf1e5fb6726 100644 --- a/arch/arm64/kvm/hyp/nvhe/ffa.c +++ b/arch/arm64/kvm/hyp/nvhe/ffa.c @@ -43,6 +43,7 @@ #define HOST_FFA_ID 0 =20 #define FFA_NOTIF_RECEIVER_ENDP_MASK GENMASK(15, 0) +#define FFA_NOTIF_SENDER_ENDP_MASK GENMASK(31, 16) =20 /* * A buffer to hold the maximum descriptor size we can see from the host, @@ -715,7 +716,6 @@ static bool ffa_call_supported(u64 func_id) case FFA_MEM_DONATE: case FFA_MEM_RETRIEVE_REQ: /* Optional notification interfaces added in FF-A 1.1 */ - case FFA_NOTIFICATION_SET: case FFA_NOTIFICATION_GET: case FFA_NOTIFICATION_INFO_GET: /* Optional interfaces added in FF-A 1.2 */ @@ -975,6 +975,32 @@ static void do_ffa_notif_unbind(struct arm_smccc_1_2_r= egs *res, hyp_smccc_1_2_smc(args, res); } =20 +static void do_ffa_notif_set(struct arm_smccc_1_2_regs *res, + struct kvm_cpu_context *ctxt) +{ + DECLARE_REG(u32, endp_id, ctxt, 1); + DECLARE_REG(u32, flags, ctxt, 2); + struct arm_smccc_1_2_regs *args; + + if (FIELD_GET(FFA_NOTIF_SENDER_ENDP_MASK, endp_id) !=3D HOST_FFA_ID) { + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); + return; + } + + if (ffa_check_unused_args_sbz(ctxt, 5)) { + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); + return; + } + + if (flags & GENMASK(15, 2)) { + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); + return; + } + + args =3D (void *)&ctxt->regs.regs[0]; + hyp_smccc_1_2_smc(args, res); +} + bool kvm_host_ffa_handler(struct kvm_cpu_context *host_ctxt, u32 func_id) { struct arm_smccc_1_2_regs res; @@ -1043,6 +1069,9 @@ bool kvm_host_ffa_handler(struct kvm_cpu_context *hos= t_ctxt, u32 func_id) case FFA_NOTIFICATION_UNBIND: do_ffa_notif_unbind(&res, host_ctxt); goto out_handled; + case FFA_NOTIFICATION_SET: + do_ffa_notif_set(&res, host_ctxt); + goto out_handled; } =20 if (ffa_call_supported(func_id)) --=20 2.54.0.1136.gdb2ca164c4-goog From nobody Sat Jun 20 13:05:37 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 112DC44E04A for ; Tue, 16 Jun 2026 15:42:20 +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=1781624542; cv=none; b=LBiCSEu3jws9zzeZw2JQY+YmYyCQTat8poSEMWVDR9tVuF7Xby0yQ2PlT6sT6AAwyMdybdhaj5VekD43hXp2dsBLlvJ/Zb1iwfXVeATWlflGiMo4KvOAMEm8D8UGqygPOPKR9R7J59QuIW1s7+ZCMddteBfAmQCqNGrDtUbJl3c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781624542; c=relaxed/simple; bh=13Ul7XISNDju5zRITjTtjr87pKIgUC6qrEq8vBeAHK0=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=nI8hzyuWlP/xIpY0zbK2JKudoeLsHlO4B/WrYgCNTB5KEJuPQScLmPL5K1Pmt933mUQ20JUTr2E2sO9EKbtwMG52k/DKF5UVyCyV17lYASwadz804TalqD0vX4HDE1iV4IoMKYhqRqhKw6LGq4jov/h0kFJwsdSPlmzGv4ybwK8= 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=IqR9voQN; 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="IqR9voQN" Received: by mail-wm1-f73.google.com with SMTP id 5b1f17b1804b1-490b37e1f47so34549365e9.0 for ; Tue, 16 Jun 2026 08:42:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1781624539; x=1782229339; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=OOaGjTb4ag+IPG6k0DLB6nE7+R/nX4tnydOkOxde2U4=; b=IqR9voQNPDCZF3CoFEH7wdop/d3a+X/lYFQhj0vecoqn+V8xRu44XhrlCSXedSLVa0 dUmbs3tb15uALDC7P8QKRNasG9gXM8ZB7Odsk8uNPAW6Zjgcp3BLGUd4nr0Gn7gBjFlI 7bvV7n4D8ncrF1ImamUGirNTCUvg80YyB4oWv7iSKMoFiwwtlGF0gH24onnR2rhh9pgX NzS8Z1Rafj5MkUvy1Bs6jSdKxOYdE6cwj12HLVPT/P2Yv+9EOXbvnNjNHpZqmD1bJBCe WUTKyfLuSn43hhcKtph9araFu52kPFrHUN8c4Gq3EewYLjWigIWHYa7cDxUBVI5jFJLb 8V2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781624539; x=1782229339; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=OOaGjTb4ag+IPG6k0DLB6nE7+R/nX4tnydOkOxde2U4=; b=lvP00sOF6xzyDiqdCRx3uPRcEZt4qMxFi7Bbx3AGO4T0Tcp/lu4RdTBkf9pf/ddkkN Ec+h/R7TQvcT42TpANMoZeCFD0ZgN3TC+LXwG6soAGDWEckjnWA0It4UpjcFyzRGYE9r yiOEThmaf8CzGYn21J4eHotHvEXoafj9+il4ZZV+JGLqCdoAw5ngZWZjGddeg6Xbn2HL VroIokLgVqhHN2x11RZ5Y16XEshXTsjsIZzOOuYxkf2NsN8ZLIaPW5vSBXs+3Na4iGUk Qw/q3NXfDhHJA8KYc0XAbiyQ04PMYuq1L6puuyYT0YmDUwaFM0s2jkHHGUXXBVzU9p5j pHNw== X-Forwarded-Encrypted: i=1; AFNElJ8yIOSSZ8o87vPvQpeG+mydmKP9K+HSM6EglpPvzJkwoKeGUHGV865q/3eLOGwVkCzvwA02aVVwexlMOVU=@vger.kernel.org X-Gm-Message-State: AOJu0Yy4u3dJOF95RzEGhegzCM8dzGpD3JDasIZAZ9g8aKzrHrjD2zop O3fAJXZq3a8w2A1bxnzDJQ59Rr4Jk/tK5M9tJcu3S1YKT/MzQ5IxthlqZx9A+nI+ajWOArzFG+F kUWjcvUjKMHmO6YAtgBhVjxHQy4JcUw== X-Received: from wmxb4-n2.prod.google.com ([2002:a05:600d:8444:20b0:490:4477:50d3]) (user=sebastianene job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:628c:b0:48e:6db3:ff2e with SMTP id 5b1f17b1804b1-492333a8f49mr1025675e9.15.1781624538850; Tue, 16 Jun 2026 08:42:18 -0700 (PDT) Date: Tue, 16 Jun 2026 15:41:48 +0000 In-Reply-To: <20260616154149.2763214-1-sebastianene@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260616154149.2763214-1-sebastianene@google.com> X-Mailer: git-send-email 2.54.0.1136.gdb2ca164c4-goog Message-ID: <20260616154149.2763214-7-sebastianene@google.com> Subject: [PATCH v4 6/7] KVM: arm64: Support FFA_NOTIFICATION_GET in host handler From: Sebastian Ene To: catalin.marinas@arm.com, maz@kernel.org, oupton@kernel.org, will@kernel.org Cc: joey.gouly@arm.com, korneld@google.com, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, android-kvm@google.com, mrigendra.chaubey@gmail.com, perlarsen@google.com, sebastianene@google.com, suzuki.poulose@arm.com, vdonnefort@google.com, yuzenghui@huawei.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Allow FF-A notification GET messages to be proxied from the pKVM hypervisor to Trustzone and enforce MBZ/SBZ fields. Signed-off-by: Sebastian Ene --- arch/arm64/kvm/hyp/nvhe/ffa.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/arch/arm64/kvm/hyp/nvhe/ffa.c b/arch/arm64/kvm/hyp/nvhe/ffa.c index fdf1e5fb6726..de4794338388 100644 --- a/arch/arm64/kvm/hyp/nvhe/ffa.c +++ b/arch/arm64/kvm/hyp/nvhe/ffa.c @@ -716,7 +716,6 @@ static bool ffa_call_supported(u64 func_id) case FFA_MEM_DONATE: case FFA_MEM_RETRIEVE_REQ: /* Optional notification interfaces added in FF-A 1.1 */ - case FFA_NOTIFICATION_GET: case FFA_NOTIFICATION_INFO_GET: /* Optional interfaces added in FF-A 1.2 */ case FFA_MSG_SEND_DIRECT_REQ2: /* Optional per 7.5.1 */ @@ -1001,6 +1000,32 @@ static void do_ffa_notif_set(struct arm_smccc_1_2_re= gs *res, hyp_smccc_1_2_smc(args, res); } =20 +static void do_ffa_notif_get(struct arm_smccc_1_2_regs *res, + struct kvm_cpu_context *ctxt) +{ + DECLARE_REG(u32, endp_id, ctxt, 1); + DECLARE_REG(u32, flags, ctxt, 2); + struct arm_smccc_1_2_regs *args; + + if (FIELD_GET(FFA_NOTIF_RECEIVER_ENDP_MASK, endp_id) !=3D HOST_FFA_ID) { + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); + return; + } + + if (ffa_check_unused_args_sbz(ctxt, 3)) { + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); + return; + } + + if (flags & GENMASK(31, 4)) { + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); + return; + } + + args =3D (void *)&ctxt->regs.regs[0]; + hyp_smccc_1_2_smc(args, res); +} + bool kvm_host_ffa_handler(struct kvm_cpu_context *host_ctxt, u32 func_id) { struct arm_smccc_1_2_regs res; @@ -1072,6 +1097,9 @@ bool kvm_host_ffa_handler(struct kvm_cpu_context *hos= t_ctxt, u32 func_id) case FFA_NOTIFICATION_SET: do_ffa_notif_set(&res, host_ctxt); goto out_handled; + case FFA_NOTIFICATION_GET: + do_ffa_notif_get(&res, host_ctxt); + goto out_handled; } =20 if (ffa_call_supported(func_id)) --=20 2.54.0.1136.gdb2ca164c4-goog From nobody Sat Jun 20 13:05:37 2026 Received: from mail-ed1-f74.google.com (mail-ed1-f74.google.com [209.85.208.74]) (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 96A6644E052 for ; Tue, 16 Jun 2026 15:42:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781624544; cv=none; b=DGviC8Hv5QXq7KAPY/Pf+9i4tucAwsQsxneB5Ws0WcEYQaEX0x8eFWoNId3pDLtGbgQSq/3mqrK19nrmCudPPhusEgW7YjhkZlyoU7yKj5Vk3Pl3yH1Yf2uKvNV1tJ4RpFIUPaWrRA8coBsUEXUkoZOKEjSh4A4LzvVPp4+x2HM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781624544; c=relaxed/simple; bh=CFhOdFUCwLNs8cLZxgMkjlbDmUmznFvMU9YSNUAy6Js=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=p8DS+w7t1T/FmaHa+ocNmtTcZW9pUgD1xKP2KkNlw8vW+vzWLZOCHrbm5VFjKV8W4Op5gDF3udenQ6fWL2KfuLpzILP20gmG1OSctAbkESM6bh4VZSIoTz98L3YDK9HeKZlZ+3mAv/n4sf4c2xg42TNXz4XdBfKJ5w7Q5CoiMls= 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=H5BatDTP; arc=none smtp.client-ip=209.85.208.74 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="H5BatDTP" Received: by mail-ed1-f74.google.com with SMTP id 4fb4d7f45d1cf-68bd951b4bfso4435860a12.2 for ; Tue, 16 Jun 2026 08:42:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1781624542; x=1782229342; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=ougsD+RhXFLaa2VDqlr9/ENvAMMCUbH7DpXmssZWL6k=; b=H5BatDTPTvT0iIiGLqxNe/x308CE/PASZhqneBSEnuTYhJaNtWIhhXWI8/h8DzzLMa JKjy3GJMwJA6aSodDi7A/XOP13XnczZDUlPMUiYiab4YwqiIBLfFDBMqLXQrgWbNPDZO zB+RKA+wWDtQxk7K8MPIrSLWpStoxWtdw+vQzd4ZUPzDXYeEcNIN18Cdg9u6EK2EpxrF 1Cx350jyceHdB1XJDsU5iW2WJi0q7KXfJ3tXyK6L3blFjvvQnw1kthPlQCx8R9dBilNH N8QTEB0NWBxWL0xtnsAEAwNlacLw0ATjlPo6yh4VwH6EB7yzf8xRdR2+ZQyVjilXjjRT PQCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781624542; x=1782229342; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ougsD+RhXFLaa2VDqlr9/ENvAMMCUbH7DpXmssZWL6k=; b=pActA8mbMKsLTWAI4fC7qeWJoG5BtS4hb5M4GNemR/pZmXIAynDphax5lZKw0SCeim Um0kW/ggxEdpIlqW2va3VXmdteOaswi48WkTf1K/TW8iVsOFR1GCKNbpdITblsW9tdL7 7ixiKZWuxhG6sssbnCIVshdYpMQlfml6WNv7euXcVLAUzW9sTuuwmHvs1B9rNHVzi/tK IeWFCvTphjS0LOXwmEGD0L1GO8AwVR1QA85GmmmW03yK+aM6oCzF9vmNNtV5yXCdIGb6 sec7/W/JUSZ3xxUCV+qcZr9+ZFtg1NqPiVY7tmmN0DOYXle/lAwi4lWw01ddw2ixOs4v 4gUA== X-Forwarded-Encrypted: i=1; AFNElJ8GR6FU+lPSU+GWkHU//z2t7+Wp9Yb74h2fNjYuiXpc8BePhf5TVBV0KUyiJwkxd5uorbFA3Oo1PSIWQDw=@vger.kernel.org X-Gm-Message-State: AOJu0Yxs1CyL6zTHawUTKWvgxmiAX89dhPFjV2uSQclTATlAGjfRx0Od DbMs8Z1BVEDymukO++dvNqsmhO8ruNi9s12/rngYT5qLgqHijXJCWWZte+YM12qFiAbrVSnoFSG Y5mfiChOiNDJ0HtCu1WdoMfi4l9u5fw== X-Received: from edxf19.prod.google.com ([2002:a05:6402:14d3:b0:695:4685:bee5]) (user=sebastianene job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6402:5202:b0:689:816a:5367 with SMTP id 4fb4d7f45d1cf-693c696b2e2mr7055459a12.0.1781624541532; Tue, 16 Jun 2026 08:42:21 -0700 (PDT) Date: Tue, 16 Jun 2026 15:41:49 +0000 In-Reply-To: <20260616154149.2763214-1-sebastianene@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260616154149.2763214-1-sebastianene@google.com> X-Mailer: git-send-email 2.54.0.1136.gdb2ca164c4-goog Message-ID: <20260616154149.2763214-8-sebastianene@google.com> Subject: [PATCH v4 7/7] KVM: arm64: Support FFA_NOTIFICATION_INFO_GET in host handler From: Sebastian Ene To: catalin.marinas@arm.com, maz@kernel.org, oupton@kernel.org, will@kernel.org Cc: joey.gouly@arm.com, korneld@google.com, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, android-kvm@google.com, mrigendra.chaubey@gmail.com, perlarsen@google.com, sebastianene@google.com, suzuki.poulose@arm.com, vdonnefort@google.com, yuzenghui@huawei.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Allow the host to query the FF-A notifiction status and proxy the info get message to Trustzone. Make sure that the SBZ fields are enforced. Signed-off-by: Sebastian Ene --- arch/arm64/kvm/hyp/nvhe/ffa.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/arch/arm64/kvm/hyp/nvhe/ffa.c b/arch/arm64/kvm/hyp/nvhe/ffa.c index de4794338388..ffb6d44b5010 100644 --- a/arch/arm64/kvm/hyp/nvhe/ffa.c +++ b/arch/arm64/kvm/hyp/nvhe/ffa.c @@ -715,8 +715,6 @@ static bool ffa_call_supported(u64 func_id) case FFA_RXTX_MAP: case FFA_MEM_DONATE: case FFA_MEM_RETRIEVE_REQ: - /* Optional notification interfaces added in FF-A 1.1 */ - case FFA_NOTIFICATION_INFO_GET: /* Optional interfaces added in FF-A 1.2 */ case FFA_MSG_SEND_DIRECT_REQ2: /* Optional per 7.5.1 */ case FFA_MSG_SEND_DIRECT_RESP2: /* Optional per 7.5.1 */ @@ -1026,6 +1024,20 @@ static void do_ffa_notif_get(struct arm_smccc_1_2_re= gs *res, hyp_smccc_1_2_smc(args, res); } =20 +static void do_ffa_notif_info_get(struct arm_smccc_1_2_regs *res, + struct kvm_cpu_context *ctxt) +{ + struct arm_smccc_1_2_regs *args; + + if (ffa_check_unused_args_sbz(ctxt, 1)) { + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); + return; + } + + args =3D (void *)&ctxt->regs.regs[0]; + hyp_smccc_1_2_smc(args, res); +} + bool kvm_host_ffa_handler(struct kvm_cpu_context *host_ctxt, u32 func_id) { struct arm_smccc_1_2_regs res; @@ -1100,6 +1112,9 @@ bool kvm_host_ffa_handler(struct kvm_cpu_context *hos= t_ctxt, u32 func_id) case FFA_NOTIFICATION_GET: do_ffa_notif_get(&res, host_ctxt); goto out_handled; + case FFA_NOTIFICATION_INFO_GET: + do_ffa_notif_info_get(&res, host_ctxt); + goto out_handled; } =20 if (ffa_call_supported(func_id)) --=20 2.54.0.1136.gdb2ca164c4-goog