diff options
author | 2013-10-20 09:44:17 +0000 | |
---|---|---|
committer | 2013-10-20 09:44:17 +0000 | |
commit | bb6f96804b1b920fbf98c38c85b0c1398e33e403 (patch) | |
tree | 621504f64feb6f201dcf2641b69a761ce1b4fb96 /sys/kern/subr_hibernate.c | |
parent | SMEP (on Ivy Bridge and later CPUs) require page protections that include (diff) | |
download | wireguard-openbsd-bb6f96804b1b920fbf98c38c85b0c1398e33e403.tar.xz wireguard-openbsd-bb6f96804b1b920fbf98c38c85b0c1398e33e403.zip |
Flush the cache after bouncing the inflate page to the piglet.
Fixes resume time stream corruption seen on x230 with large (16GB)
unhibernation
Diffstat (limited to 'sys/kern/subr_hibernate.c')
-rw-r--r-- | sys/kern/subr_hibernate.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/kern/subr_hibernate.c b/sys/kern/subr_hibernate.c index 03eb09e1884..a2c8d03ebc6 100644 --- a/sys/kern/subr_hibernate.c +++ b/sys/kern/subr_hibernate.c @@ -1,4 +1,4 @@ -/* $OpenBSD: subr_hibernate.c,v 1.62 2013/10/20 09:27:39 mlarkin Exp $ */ +/* $OpenBSD: subr_hibernate.c,v 1.63 2013/10/20 09:44:17 mlarkin Exp $ */ /* * Copyright (c) 2011 Ariane van der Steldt <ariane@stack.nl> @@ -1316,6 +1316,7 @@ hibernate_copy_chunk_to_piglet(paddr_t img_cur, vaddr_t piglet, size_t size) src += ct; dest += ct; } + wbinvd(); /* Copy remaining pages */ while (src < size + img_cur) { @@ -1327,6 +1328,9 @@ hibernate_copy_chunk_to_piglet(paddr_t img_cur, vaddr_t piglet, size_t size) src += ct; dest += ct; } + + hibernate_flush(); + wbinvd(); } /* |