From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) (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 E557135C1B7 for ; Tue, 16 Jun 2026 12:42:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781613763; cv=none; b=Iit4TmijNc6BKehcA70sDcP/PYZSa/xNzzbh3Wm8vzJGdl/JlTUaTyEnSgPyXqtd8P8Eo7Fi1w79iQW6ZxEx3SGdqtT4y5LW3RNbZ/w8ud2xaowV1Sjun2bk/Q02Vf4xlbxkYbP9p63y5A152F02JayHcCfFBCgma156/o8cd5Y= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781613763; c=relaxed/simple; bh=S/14zLWy1OEcuI4mR72n4fdjjZexwK9+L/T7STtQPr8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=Z4/7e58q0NsO3/b/vVeuoDgGaYDaDir9xdGDvxzGdDbAdPZpRLc4LOXhzQs9SOzlQWo26qSRiupOjyRXQ4hqxWn/dS2EOeCwfwluWXym/sATNV2rhsnyVqkCElz/xhX/eKUC2LQLd2/iML5Jjv2uAGvCrediBNLt6+Q/elxFhFs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=Jg5An1Sm; arc=none smtp.client-ip=209.85.218.53 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=google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="Jg5An1Sm" Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-bec3f69d343so658445166b.0 for ; Tue, 16 Jun 2026 05:42:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1781613760; x=1782218560; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=KlKBLad2Erh4BtAqk3Be7oRe/1BCOSeCPkKHDyyOPcs=; b=Jg5An1Sm4NBMQy66ZXi+DnV3oedzR2dWVgK2KWotak4fz/iR46y0FYAPBqbHQxueRN WfoA6OF4ubZ58dxI7DS41Fg5BPBlyshYgYVS7QA3aDvt7L09GeOSiMGbZPsu5nO9Tbbc 4fFx44xIAKmglGCMDzG50Gg3H3AR0tibD3M4D7Y4YEZi1BMffBXBIOn6XVQM9oyvDpTl CoFV2/OVwFp8ZW0/49uANUN6E8UK0nT2ZX2+6+Pp949It0GCxpP6by6Oz/rEo4Jih5E7 zg4UYbTZLBsK3GelIByZwtYPpo+lvOLVG9NpFiDziLlxnqb4UMxJpx8vJyt1Hi3q2CqG twgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781613760; x=1782218560; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KlKBLad2Erh4BtAqk3Be7oRe/1BCOSeCPkKHDyyOPcs=; b=kXcsSywDBAMIG+ZItBNCQZQVxOyGmRLhzVJWoDHTe90477IvGyf8GXt6TdMeaeZ7BT rHhUU2mEQK3QL1HoHv3WcdOZHLFe9oxv+9XBmMHGeZWw/n4GzFJa+V4D7jTDweW8OMZT bL+PpVm0UbEJG4jms2F2n13AeRG/uU9cBnbwNlPX1ePswWs7lkvPsVPAvt5GS/v/VQJq QJLJK3oVH/gnypkFCfkRxj6vp1jZh+pDWDYBq2gec9iuq2yKsKYDvedFgz+/w79XZkoR zykU3jEyZ4A/yFIf7aReTmwm7eBLeps9FFBXhRwzb0YZ1HPEKElU5sAyDzGySqc7LwWA SaFA== X-Forwarded-Encrypted: i=1; AFNElJ8f7peelZ7hTwWYmHlJ8KTuRya5eJRYMWdplj03by6DarzhcmYgePqWODyf17OjyJXZAoLX7IfANC7BTMs=@vger.kernel.org X-Gm-Message-State: AOJu0YyKx4lA5UiwzZgHoTUt557v/+Oc6Y+DZPW2KG4x3gcALazPvChd ZCDSYRiJv03g8lXXxaGnMNOtbC2jYW5llZ46N4hNNrpcgs3BakM6UblIIp4dot26eA== X-Gm-Gg: Acq92OEFpW/KHqbk3UOlFYpHPstB6rYxRhMsHjbyEcZuvcowJau2GQO5Mb4rU+bJ5qc S/wtBxi0MiWxJUzlZ4hy/7906TfRrbAS2lMQwZm9GxfutvJpWjfyYPmIJFz+2eDnysZEWmLEUiV h/iwet5w9Qakj2CHcWlV2cePXw+cEOY/+GL+u359Ja2jMU44QvAVk425KJQBZqL0xsw9Q8rZEkt +wIvAknVJY5MjivyvNv5gwQoSyI3V13LZ1TMnCJVrxOtwlqnVI/iy+aFPJDGSTCBvEdm5QU7otm GWpSUV9akh3/gqHz+/o+EMIUM6I9X6y1eQl7Ig4BIbiFVvjceJUWdV4OWsuT8tPO8+MV8yJAAAb dHhEKckAoNN7Or/ymTs/eDNkphBtGMmcNXlrWGVk6kKtnqHei1MbL3wKZWI2HLIJDzb4r2FGjhZ ItwG8IIFpx5jTaRlu16JYzZ7s9Ql9KwyqhQBFMtJkqSptzxCX6QnAx94CeOGZcoUQ/SSs= X-Received: by 2002:a17:907:ab8:b0:bf3:e968:bf99 with SMTP id a640c23a62f3a-bff49921dfcmr500315166b.10.1781613759630; Tue, 16 Jun 2026 05:42:39 -0700 (PDT) Received: from google.com (135.91.155.104.bc.googleusercontent.com. [104.155.91.135]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bfdb8e1db3esm637694466b.56.2026.06.16.05.42.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jun 2026 05:42:39 -0700 (PDT) Date: Tue, 16 Jun 2026 13:42:35 +0100 From: Vincent Donnefort To: Sebastian Ene Cc: catalin.marinas@arm.com, maz@kernel.org, oupton@kernel.org, will@kernel.org, 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, suzuki.poulose@arm.com, yuzenghui@huawei.com Subject: Re: [PATCH v3 2/7] KVM: arm64: Forward FFA_NOTIFICATION_BITMAP calls to Trustzone Message-ID: References: <20260616105417.2578670-1-sebastianene@google.com> <20260616105417.2578670-4-sebastianene@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260616105417.2578670-4-sebastianene@google.com> On Tue, Jun 16, 2026 at 10:54:10AM +0000, Sebastian Ene wrote: > 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 | 28 ++++++++++++++++++++++++++-- > 1 file changed, 26 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/kvm/hyp/nvhe/ffa.c b/arch/arm64/kvm/hyp/nvhe/ffa.c > index c723a21006aa..dc7496ec295f 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,28 @@ static void do_ffa_part_get(struct arm_smccc_1_2_regs *res, > hyp_spin_unlock(&host_buffers.lock); > } > > +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; > + u32 idx_unused_args = func_id == FFA_NOTIFICATION_BITMAP_CREATE ? 3 : 2; nit: should probably better expressed as a int as this is the type in the ffa_check_unused_args_sbz proto. Perhaps you can even fold that directly into the ffa_check_unused_args_sbz() call? > + > + if (ffa_check_unused_args_sbz(ctxt, idx_unused_args)) { > + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); > + return; > + } > + > + if (vmid != HOST_FFA_ID) { > + ffa_to_smccc_res(res, FFA_RET_INVALID_PARAMETERS); > + return; > + } > + > + args = (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 +987,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; > } > > if (ffa_call_supported(func_id)) > -- > 2.54.0.1136.gdb2ca164c4-goog >