From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f74.google.com (mail-ej1-f74.google.com [209.85.218.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 49AD33CCA19 for ; Mon, 8 Jun 2026 16:55:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.74 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780937758; cv=none; b=fIlm9Ly3+FLiIwbtcKCb6nT4vknCVzBaRO3uo6epKKjtPnsEwU5hUhNvi9mY0w9NoCklPgX9XFV2CNyTjJhB3gChgtjkB40aAWc9bRthoawIJd+RkWFcWXKDhzBSze8way9WxTARB4RuNo+ofoVRug6Xtci7Dx7J0gjJAoh0jLY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780937758; c=relaxed/simple; bh=0uDN3QQnJUA3aH554YozVv/EwKFw4ZPiSxTZl6xsMyA=; h=Date:Mime-Version:Message-ID:Subject:From:To:Cc:Content-Type; b=bFYbjD8xHhUMKNDhdTyrPpe5hKOOx9s8UwQP/+2z4dbx+2X2Np+9jE8xi7F2b5hNkJc9EFza3WJvYX+1xRwVNa5eIfCAr1Dmyl07BgEMfXeeuAnUpzWuh3+/XCZZQZossDtGLe8Mte0Sw2Uiuv5Tx5vQwKsYaywjXWtK878dadA= 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=LpRShrhn; arc=none smtp.client-ip=209.85.218.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="LpRShrhn" Received: by mail-ej1-f74.google.com with SMTP id a640c23a62f3a-beb86e54b79so322736666b.1 for ; Mon, 08 Jun 2026 09:55:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1780937756; x=1781542556; darn=vger.kernel.org; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=NJFUZ3g9aKS+Y4VWSkImzVqj/8GtScBQXmsXxxvJoCg=; b=LpRShrhn/worVaiM7wEN5f3DZTKi6lLOJ0GnLCPCjpvobTtTdUBeKaoxjVYS/Pnm0Q hJBEYdIlLX3XeClrDBY0QKVVoJqNnpEDoOrAbmfxPKHE3IdgnUPqO33cmlGGElPxLcwW RIwkXlxblVLVXehnVw5kBQNWi9fI5PCVK/8/1pdo8XAJ448VrEwpkUd2mIhergOY1akC LihMXo611OnyFmp8hu3jnLwlHHZZHOoCof9ecUymB+9jePzZ8XosJAjzSFSj4XZe9K8w JmtamZfimS8ZGTnUoskpQ+9o8o9XwXbv96UlzZYMMdHJjsxAG1aTB31dWC9wOjeyWEnd +l7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780937756; x=1781542556; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=NJFUZ3g9aKS+Y4VWSkImzVqj/8GtScBQXmsXxxvJoCg=; b=h468gMeSGjEtNG5BvCA2Gueryk0LkaUO1uTVgZ/lEuN+YeeNvcJLQYvAHNudHMc+e5 cNnnNHyhbQGaMMkIdRY2qgEdCjHLmM1QtIU0+jVROBWlZYL2gNLOl87sBOOgnBmeTmxq 4W1i41E32D5FGka0B6GPiKvwQUCffTSmp71+ejvE8j9IwWXchu+5usGI2UH3vjn2kveX worsoU4+7vIJar21nKZZrFOM4QhURYl0L2kqaTa9PRGnFAjXupDxdu+rivuiqNZ9vfoF M5KcRJ9GtO1sQjy2HfoB/T9zcgSCF8r5nSPX1GhG1mNRIUGWBQjUeC2kwmM8++3PRef+ +Tjw== X-Forwarded-Encrypted: i=1; AFNElJ+zndnEeydZeK5p2FmGfKWqNXliJvRxpsPUS72NnzLLgAzHkftebwpwtY2Loeu1+yG4lzt4d0QRIkFSp+c=@vger.kernel.org X-Gm-Message-State: AOJu0Ywnccm76YC1wEP1ruh8phs3m5FnV4ybYDmi6DvFba4gFO1KLW6e RKCDiVAVIp3Jp1a1SvUaqIIDmds89NVcegVwI9mur1zY75ghtajZKFsraKbbfARLXE6uS1vmE8s QWKh34IRL9OZdyMfF2LzYtt7F9iW5oQ== X-Received: from ejmj9.prod.google.com ([2002:a17:906:4309:b0:beb:4344:f63b]) (user=sebastianene job=prod-delivery.src-stubby-dispatcher) by 2002:a17:906:5a62:b0:bd5:405c:7964 with SMTP id a640c23a62f3a-bf3752e703amr582230166b.48.1780937755139; Mon, 08 Jun 2026 09:55:55 -0700 (PDT) Date: Mon, 8 Jun 2026 16:55:42 +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.54.0.1064.gd145956f57-goog Message-ID: <20260608165549.1479409-1-sebastianene@google.com> Subject: [PATCH v2 0/7] KVM: arm64: Forward FFA_NOTIFICATION* 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-Type: text/plain; charset="UTF-8" Remove the FFA_NOTIFICATION* calls from the blocklist used by the pKVM FF-A proxy. This restriction was preventing the use of asynchronous signaling mechanisms defined by the Arm FF-A specification to communicate with the secure services. While these calls are markes as optional, there is no reason why the hypervisor proxy would block them because: 1. Host is the Sole Non-Secure Endpoint: The Host operates as the only Non-Secure VM ID (VM ID 0) recognized by the Secure World. Because all forwarded notifications are inherently attributed to the Host by the SPMC, there is no risk of VM ID spoofing originating from the Normal World. 2. No Memory Pointers or Addresses: The FFA_NOTIFICATION_* ABIs operate strictly via register-based parameters, passing only VM IDs, VCPU IDs, flags, and bitmaps. Because these calls do not contain memory addresses, offsets, or pointers, forwarding them doesn't pose a risk of memory-based confused deputy attack (e.g., tricking the SPMC into overwriting protected memory). While the pKVM proxy behaves as a relayer, it doesn't currently have its own FF-A ID(only the host has the ID 0). The behavior of the setup flow is covered by the spec in the: '10.9 Notification support without a Hypervisor'. --- Changes in v2: - enforce the MBZ/SBZ fields - split the calls into separate patches - rebase on 7.1-rc7 Link to v1: https://lore.kernel.org/all/20260501114447.2389222-2-sebastianene@google.com/ Sebastian Ene (7): KVM: arm64: Support FFA_NOTIFICATION_BITMAP_CREATE in host handler KVM: arm64: Support FFA_NOTIFICATION_BITMAP_DESTROY in host handler KVM: arm64: Support FFA_NOTIFICATION_BIND in host handler KVM: arm64: Support FFA_NOTIFICATION_UNBIND in host handler KVM: arm64: Support FFA_NOTIFICATION_SET in host handler KVM: arm64: Support FFA_NOTIFICATION_GET in host handler KVM: arm64: Support FFA_NOTIFICATION_INFO_GET in host handler arch/arm64/kvm/hyp/nvhe/ffa.c | 190 ++++++++++++++++++++++++++++++++-- 1 file changed, 182 insertions(+), 8 deletions(-) -- 2.54.0.1064.gd145956f57-goog