From: Alberto Garcia Date: Mon, 9 Mar 2026 17:39:42 +0000 (+0100) Subject: PM: hibernate: return -ENODATA if the snapshot image is not loaded X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2b27ea5b644d7da9bc84f4539e53d1b31c601566;p=thirdparty%2Fkernel%2Flinux.git PM: hibernate: return -ENODATA if the snapshot image is not loaded snapshot_image_loaded() is used in both the in-kernel and the userspace restore path to ensure that the snapshot image has been completely loaded. However the latter path returns -EPERM in such situations, which is meant for cases where the operation is neither write-only nor ready. This patch updates the check so the returned error code is -ENODATA in both cases. Suggested-by: Brian Geffon Signed-off-by: Alberto Garcia Acked-by: Brian Geffon Link: https://patch.msgid.link/8cfda38659c623f5392f3458cb32504ffd556a74.1773075892.git.berto@igalia.com Signed-off-by: Rafael J. Wysocki --- diff --git a/kernel/power/user.c b/kernel/power/user.c index 4401cfe26e5c9..be77f3556bd7d 100644 --- a/kernel/power/user.c +++ b/kernel/power/user.c @@ -322,11 +322,14 @@ static long snapshot_ioctl(struct file *filp, unsigned int cmd, error = snapshot_write_finalize(&data->handle); if (error) break; - if (data->mode != O_WRONLY || !data->frozen || - !snapshot_image_loaded(&data->handle)) { + if (data->mode != O_WRONLY || !data->frozen) { error = -EPERM; break; } + if (!snapshot_image_loaded(&data->handle)) { + error = -ENODATA; + break; + } error = hibernation_restore(data->platform_support); break;