From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f202.google.com (mail-pf1-f202.google.com [209.85.210.202]) (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 B2D533A1695 for ; Thu, 16 Apr 2026 23:23:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.202 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776381821; cv=none; b=gvDlwUiUIelJJwynFC1HkR6bWSrjZfoVm8XPTbW5LDSbxafFdy0xh7bd7nfPjy+nPCVLi21gzGQy+iz+v3kRAYFAszI2qlP7COce1xaRUMJCNOkGwhiLzRRkG4q/jFoojLghLTYarKWEgb9gp2Ium29O3gXEAwGTr0wN4nFj4Ag= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776381821; c=relaxed/simple; bh=F9hu7bNzeCBOlvwlFHXUfWgAmqd09v8gpi7nWJIWB7M=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=I7mEZ7vfxmdpSFfU15DhI+XAZNOJPs+UhtxjLcTJSnFg6SxU+8vMKvxTiEe19tLhRfLHHNoM2yJH8Ptxb2d0En0BEo5AdSY0CBAz5E4/WOLV/rFaKn9MKAr0KIMTFMXRhnPWEMR86iW7lyogsDvqPxu+ZcaDKZKR5U8clTeWDTM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=Ox3Eeemb; arc=none smtp.client-ip=209.85.210.202 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--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="Ox3Eeemb" Received: by mail-pf1-f202.google.com with SMTP id d2e1a72fcca58-82f6b0a7164so265698b3a.0 for ; Thu, 16 Apr 2026 16:23:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1776381820; x=1776986620; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=dmXOa8CgzaXjhBu8qlmeOtW0FfPQWyidUD9n4wlGJ1o=; b=Ox3Eeembh3AWL6N/FtayZCxSNuQO35OIwSZKYu7fB35TIgU7JtHCHfDNgoDTT+EHbX nRHe1JyCX4KMqvzT4wnK6IhetYPFQAGYNkfRwiUwzFFQmZfGno3HGl5Ak3ti6WR9wbVe HSOK15XLPp3x3BJQ4nN+PLeU/M0cWSL4njY0vEWAZkjTIo0gNRzLndNM6fvT+fyuMh5R 9OQ2osAuD92lDpsmezO0pq5CR45qDykzRZLbtXPM0JZ2RLtYSaaZE7gZ9EaqdKVHnlZU eBzJ+IDOyTVhEOtvjzMCbG/U8Hag8EmpwXUbNiPco0LfHQLY3NrXh4VqSP+wA107zOJw SYHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776381820; x=1776986620; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=dmXOa8CgzaXjhBu8qlmeOtW0FfPQWyidUD9n4wlGJ1o=; b=iG/nzW/+hSLvMTfoH5JKwpplCegpXc4JLLUyBG8gdFZGmwTUYffQDcyvtVdwVh0Jbw 8Yhlun3DjlK8aQQf1e5k8vLqFjo8K9vR1PZRqw04BNSLZm+nKGQSvgdNAcV3/nDk1NW3 b+PetC+aemL0YdqcaAbPKJEglwchVCRHA6EdInZDjctGVt+G85V8oQMA2OLEnGRiIvfl XpXO5mTx7yw3Un0cJ07TsIIaQTRmLdRX5j8g3WxfDcJF/xX3cDsNfh/VjcU8bvu1WVNX AgBQ7RHkoE1uDrA9OVZbIDPkZDlPQllRPOQzrclK2IPOxeVWiZ/y0k4NpAditx9LixmU ZEzQ== X-Forwarded-Encrypted: i=1; AFNElJ+uwNV/2QEmyTlQTQUrkwpelTUeReGyUt98PVlFaODF6NhrONl9yYYzCdRHbr0qspGQATmIaV7C3lNgcss=@vger.kernel.org X-Gm-Message-State: AOJu0Yw0ElaOQg5BllYckrSiVh2GbK+mhaLtAsfcE5BpyIKr7norjB1z eh75ggsZB0crUE65rlb2+cIrPC+8qQi0Sbc7F4IL0TKJEcB5Ua4M90vgnLdGwfk5ebTuEanPmP4 /n/zLBw== X-Received: from pfwp27.prod.google.com ([2002:a05:6a00:26db:b0:82f:5a4:a02c]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:391c:b0:82f:250b:9f1b with SMTP id d2e1a72fcca58-82f8c8c299dmr257458b3a.23.1776381819591; Thu, 16 Apr 2026 16:23:39 -0700 (PDT) Reply-To: Sean Christopherson Date: Thu, 16 Apr 2026 16:23:23 -0700 In-Reply-To: <20260416232329.3408497-1-seanjc@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260416232329.3408497-1-seanjc@google.com> X-Mailer: git-send-email 2.54.0.rc1.513.gad8abe7a5a-goog Message-ID: <20260416232329.3408497-2-seanjc@google.com> Subject: [PATCH v3 1/7] crypto/ccp: hoist kernel part of SNP_PLATFORM_STATUS From: Sean Christopherson To: Sean Christopherson , Paolo Bonzini , Ashish Kalra , Tom Lendacky , John Allen Cc: kvm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, Herbert Xu , Tycho Andersen Content-Type: text/plain; charset="UTF-8" From: Tycho Andersen ...to its own function. This way it can be used when the kernel needs access to the platform status regardless of the INIT state of the firmware. No functional change intended. Cc: Herbert Xu Signed-off-by: Tycho Andersen (AMD) Signed-off-by: Sean Christopherson --- drivers/crypto/ccp/sev-dev.c | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/drivers/crypto/ccp/sev-dev.c b/drivers/crypto/ccp/sev-dev.c index aebf4dad545e..64fc402f58df 100644 --- a/drivers/crypto/ccp/sev-dev.c +++ b/drivers/crypto/ccp/sev-dev.c @@ -2367,7 +2367,8 @@ static int sev_ioctl_do_pdh_export(struct sev_issue_cmd *argp, bool writable) return ret; } -static int sev_ioctl_do_snp_platform_status(struct sev_issue_cmd *argp) +static int __sev_do_snp_platform_status(struct sev_user_data_snp_status *status, + int *error) { struct sev_device *sev = psp_master->sev_data; struct sev_data_snp_addr buf; @@ -2375,9 +2376,6 @@ static int sev_ioctl_do_snp_platform_status(struct sev_issue_cmd *argp) void *data; int ret; - if (!argp->data) - return -EINVAL; - status_page = alloc_page(GFP_KERNEL_ACCOUNT); if (!status_page) return -ENOMEM; @@ -2400,7 +2398,7 @@ static int sev_ioctl_do_snp_platform_status(struct sev_issue_cmd *argp) } buf.address = __psp_pa(data); - ret = __sev_do_cmd_locked(SEV_CMD_SNP_PLATFORM_STATUS, &buf, &argp->error); + ret = __sev_do_cmd_locked(SEV_CMD_SNP_PLATFORM_STATUS, &buf, error); if (sev->snp_initialized) { /* @@ -2415,15 +2413,32 @@ static int sev_ioctl_do_snp_platform_status(struct sev_issue_cmd *argp) if (ret) goto cleanup; - if (copy_to_user((void __user *)argp->data, data, - sizeof(struct sev_user_data_snp_status))) - ret = -EFAULT; + memcpy(status, data, sizeof(*status)); cleanup: __free_pages(status_page, 0); return ret; } +static int sev_ioctl_do_snp_platform_status(struct sev_issue_cmd *argp) +{ + struct sev_user_data_snp_status status; + int ret; + + if (!argp->data) + return -EINVAL; + + ret = __sev_do_snp_platform_status(&status, &argp->error); + if (ret < 0) + return ret; + + if (copy_to_user((void __user *)argp->data, &status, + sizeof(struct sev_user_data_snp_status))) + ret = -EFAULT; + + return ret; +} + static int sev_ioctl_do_snp_commit(struct sev_issue_cmd *argp) { struct sev_device *sev = psp_master->sev_data; -- 2.54.0.rc1.513.gad8abe7a5a-goog