diff --git a/usr/kinit/resume/resume.c b/usr/kinit/resume/resume.c
index 13143c6..80099f9 100644
--- a/usr/kinit/resume/resume.c
+++ b/usr/kinit/resume/resume.c
@@ -11,15 +11,15 @@
 
 static __noreturn usage(void)
 {
-	fprintf(stderr, "Usage: %s /dev/<resumedevice>\n", progname);
+	fprintf(stderr, "Usage: %s /dev/<resumedevice> [offset]\n", progname);
 	exit(1);
 }
 
 int main(int argc, char *argv[], char *envp[])
 {
 	progname = argv[0];
-	if (argc != 2)
+	if (argc < 2 || argc > 3)
 		usage();
 
-	return resume(argv[1]);
+	return resume(argv[1], (argc > 2) ? strtoull(argv[2], NULL, 0) : 0ULL);
 }
diff --git a/usr/kinit/resume/resume.h b/usr/kinit/resume/resume.h
index bf55f1b..5fb929f 100644
--- a/usr/kinit/resume/resume.h
+++ b/usr/kinit/resume/resume.h
@@ -2,6 +2,6 @@
 #define RESUME_H
 
 int do_resume(int argc, char *argv[]);
-int resume(const char *resume_file);
+int resume(const char *resume_file, unsigned long long resume_offset);
 
 #endif /* RESUME_H */
diff --git a/usr/kinit/resume/resumelib.c b/usr/kinit/resume/resumelib.c
index f4c5693..12ef984 100644
--- a/usr/kinit/resume/resumelib.c
+++ b/usr/kinit/resume/resumelib.c
@@ -23,6 +23,7 @@
 {
 	const char *resume_file = CONFIG_PM_STD_PARTITION;
 	const char *resume_arg;
+	unsigned long long resume_offset;
 
 	resume_arg = get_arg(argc, argv, "resume=");
 	resume_file = resume_arg ? resume_arg : resume_file;
@@ -30,15 +31,18 @@
 	if (!resume_file[0])
 		return 0;
 
+	resume_arg = get_arg(argc, argv, "resume_offset=");
+	resume_offset = resume_arg ? strtoull(resume_arg, NULL, 0) : 0ULL;
+
 	/* Fix: we either should consider reverting the device back to
 	   ordinary swap, or (better) put that code into swapon */
 	/* Noresume requested */
 	if (get_flag(argc, argv, "noresume"))
 		return 0;
-	return resume(resume_file);
+	return resume(resume_file, resume_offset);
 }
 
-int resume(const char *resume_file)
+int resume(const char *resume_file, unsigned long long resume_offset)
 {
 	dev_t resume_device;
 	int powerfd = -1;
@@ -55,8 +59,10 @@
 	if ((powerfd = open("/sys/power/resume", O_WRONLY)) < 0)
 		goto fail_r;
 
-	len = snprintf(device_string, sizeof device_string, "%u:%u",
-		       major(resume_device), minor(resume_device));
+	len = snprintf(device_string, sizeof device_string,
+		       "%u:%u:%llu",
+		       major(resume_device), minor(resume_device),
+		       resume_offset);
 
 	/* This should never happen */
 	if (len >= sizeof device_string)
