From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (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 A334B44DB64 for ; Tue, 4 Aug 2026 10:14:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785838483; cv=none; b=mZ9Cb2auiJyI9XCV2+MKDMaKwfpUs7UkMRspUBJ3JI8/n1+/+ks+ZBwHuPsGV5MhQga/2kt7sMc9fkWD2umWXbxxWRdMXEYPw3GTzkjkUb5csUhKlH/JjFqrLns4sc8+DtgRHIysd8qNm+xtxn9DBnNOX2/JKsyCJclkeovePwI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785838483; c=relaxed/simple; bh=VXPAoIW83Gi8vWtsC4pBFBAvmVVdxni+SOUAWNR1d44=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=h0sOMtWGcj0p8tp4Nm6NnUXTAyzULy6pNIE57wxOvQot8jTjbuZp78wREViy1s0R5mWLmxBDEsOLoponTBLcsLTdaRAQYdDT0K8J9YfqwfMYW+GqRqcblPbUBypWYyxpkO2pEU9OgEXVDV3ONc0hZZsq0YTiiU4VdZuhTuJRv74= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=starlabs.systems; spf=pass smtp.mailfrom=starlabs.systems; dkim=pass (2048-bit key) header.d=starlabs-systems.20251104.gappssmtp.com header.i=@starlabs-systems.20251104.gappssmtp.com header.b=ulSPlOdj; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=starlabs.systems Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=starlabs.systems Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=starlabs-systems.20251104.gappssmtp.com header.i=@starlabs-systems.20251104.gappssmtp.com header.b="ulSPlOdj" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-4954aff6088so27457825e9.3 for ; Tue, 04 Aug 2026 03:14:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=starlabs-systems.20251104.gappssmtp.com; s=20251104; t=1785838480; x=1786443280; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=JgsWhoUDU2owmdTdKUwdWJEOQz43lQL+3XxnY2PyCXU=; b=ulSPlOdjYovJqadc5ZuPJp4our2JyyUBwzxf0Dm8+vy/ZVLD+fd5MVTs5r0YRg6xfE gTGXf4+P439TiFzUnOODxw3bSY9LuSrpLBeYZgfdPDMxDOfT4Fh7D1cVO5BjTR7CR3pG Ezr5q7DhZ3ndqW2E0LKCezOhUEAQkfOHrpZAoPQ1yYZbnC7xnk1SNyUXQHX8g88CK1Ii 80T8Rpq9P8XyT6Q2WIXfUr5f9L4CIPKlOBLHwN3jKA0TB3Eeo6wdxGYKHpfikROai/q5 isxNoQQp6b+tOF/moMu7+ZIFpw8lg1nrtkLsXKpwNW+JSVfzst/rYN9whpeDrOPZcmI9 s8Cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785838480; x=1786443280; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=JgsWhoUDU2owmdTdKUwdWJEOQz43lQL+3XxnY2PyCXU=; b=nzZGCOOMNVU10R5xbp3gJdCpLZi/KBLS17CuKadsIc+oeL9BENjqwHr8cNXfpQ1R8r 3ILaluJjUrhm5KG38Y0uW1T2TmLePn1fv87OSGwr/dsp3ekkVs+4El5hrRziIKVKb6U0 2Rj2J5hFdaf8sy2K1KXmRyX+vuPLh+HLf6CGh1cy9FCFXPxi4XCl0ODhXZL+KpvF3X6T xjSJlYcM3vxouuBtzsf9GXSVOJUEVVFp6nk1jIw6pi0fYiFBhfbVxlvrwPLpxr6duWdJ tCy2dM3QnEBkm8Te4HbFW/0tFe1Hzej0M6wMcoP1+/T1EsYKZt1AMTImI0Xc8NPI9sW0 Ubdg== X-Forwarded-Encrypted: i=1; AHgh+RrR1rgKVPE8Q7PxyH2lWTCHtfRarD0Z9ZdCvBcad6W3A40hWFivNhPavq9P5bi4yLlXJJ06lOGYDGeM91I=@vger.kernel.org X-Gm-Message-State: AOJu0YxlSswhd+T7wLrzeUFTrgWxykmzi0DvF3QGpb4WSmqZwHWFOEKU 5s0h77iSmtNDUqb8VqNjbMKejIFET7OYQXtfpiu/8Zjie049c/yam4CxCbPR145YWw== X-Gm-Gg: AR+sD13xNaa+v6HxguDEu4znd1iM7/7XGKfEf9NkbJfABJOTv6StRkNsnbd4ryxPgtM NNIHWnoUCgUv7Jvf4+VLURORApWNBdbvY2QwKfJ/jNDQie5tfe4ezyZWTgmpnVNQnbrnXZ5CQe5 iH6nVd8M5CCpTbjDSWcUoD70ui0uJ/J4wNS1Jq5c15DNjFl1ZNjUCb4PHpS6c4A8+RawyTlUyWV xE2MGS5I3Z4bCA3JSwhqPvNiLTmRvp1zpC27KONt+e3IzsfuxtxvWLmloR2hPsTj+RnUlfnrx38 AZxd5XPT7RLmWFjrClhedSoX8qI63aSO17XxmBNYeXAA0CmWmGKXzZxPM51JkjwOKHADdSxdyuY J0WcdTTgUEMiWSgxpn11kNw9HYt7nwys99uru+KtqxAcnzayni4cfB9rBrCMm1iNYRvT3cVIuUD ROKEGpJyO+WzOzP1Kz/sD3xR7xCVXf6NlA6WI+hMA2Bp+QeVtSTKdpI6zenhMaYuXd9PM5kNANb 8gHdyPsbx0vNuWK/hQt69rgFIoLeFsR X-Received: by 2002:a05:600c:5494:b0:493:bfad:9d99 with SMTP id 5b1f17b1804b1-4980c679d64mr312201035e9.13.1785838479939; Tue, 04 Aug 2026 03:14:39 -0700 (PDT) Received: from horizon.localdomain ([216.128.28.240]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4994a0f7bf4sm73248805e9.11.2026.08.04.03.14.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Aug 2026 03:14:39 -0700 (PDT) From: Sean Rhodes To: linux-pm@vger.kernel.org Cc: "Rafael J. Wysocki" , Len Brown , Pavel Machek , Sean Rhodes , Evan Green , linux-kernel@vger.kernel.org, Xueqin Luo , Jens Axboe , Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , linux-block@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH v2 0/4] PM: hibernate: encrypted snapshots under lockdown Date: Tue, 4 Aug 2026 11:14:33 +0100 Message-ID: X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit v1 was sent as an RFC. This version keeps TPM policy and seed unsealing in early userspace, while the kernel encrypts and authenticates the uswsusp image from a locked seed. The stack adds the snapshot_seed ABI, permits the snapshot device under lockdown only once encryption is enabled, documents the userspace flow, and restricts lockdown-time block writes to the active encrypted snapshot image/header path. Changes in v2: - Keep raw writes to active swap blocked under lockdown. - Track encrypted snapshot bytes and header writes before allowing lockdown-time image writes. - Only split the encrypted stream at the metadata boundary when a user key switch is used. - Return -EFAULT for userspace copy failures. - Document resume meta_size handling. Tested on StarFighter MTL with a TPM-sealed seed: encrypted uswsusp suspend/resume completed and restored the image. Also tested with lockdown enabled through the encrypted snapshot device path. Evan Green (1): PM: hibernate: add seed-wrapped encrypted snapshots Sean Rhodes (3): PM: hibernate: permit encrypted snapshot device under lockdown PM: hibernate: document encrypted snapshot seed ABI PM: hibernate: harden encrypted snapshot write path Documentation/ABI/testing/sysfs-power | 14 + Documentation/power/userland-swsusp.rst | 20 + block/fops.c | 55 +- include/linux/suspend.h | 22 + include/linux/swap.h | 16 + include/uapi/linux/suspend_ioctls.h | 31 +- kernel/power/Kconfig | 15 + kernel/power/Makefile | 1 + kernel/power/hibernate.c | 32 + kernel/power/power.h | 4 + kernel/power/snapenc.c | 940 ++++++++++++++++++++++++ kernel/power/snapshot.c | 5 + kernel/power/swap.c | 98 +++ kernel/power/user.c | 247 ++++++- kernel/power/user.h | 151 ++++ mm/swapfile.c | 32 + 16 files changed, 1651 insertions(+), 32 deletions(-) create mode 100644 kernel/power/snapenc.c create mode 100644 kernel/power/user.h