DRY code in uvm_swap_io() for the write loop
This commit is contained in:
parent
0fa7c5a899
commit
f5a755e60c
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: uvm_swap.c,v 1.191 2020/05/21 16:50:25 riastradh Exp $ */
|
/* $NetBSD: uvm_swap.c,v 1.192 2020/05/22 11:54:05 jdolecek Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1995, 1996, 1997, 2009 Matthew R. Green
|
* Copyright (c) 1995, 1996, 1997, 2009 Matthew R. Green
|
||||||
@ -30,7 +30,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: uvm_swap.c,v 1.191 2020/05/21 16:50:25 riastradh Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: uvm_swap.c,v 1.192 2020/05/22 11:54:05 jdolecek Exp $");
|
||||||
|
|
||||||
#include "opt_uvmhist.h"
|
#include "opt_uvmhist.h"
|
||||||
#include "opt_compat_netbsd.h"
|
#include "opt_compat_netbsd.h"
|
||||||
@ -1914,25 +1914,19 @@ uvm_swap_io(struct vm_page **pps, int startslot, int npages, int flags)
|
|||||||
KASSERT(sdp->swd_encinit);
|
KASSERT(sdp->swd_encinit);
|
||||||
mutex_exit(&uvm_swap_data_lock);
|
mutex_exit(&uvm_swap_data_lock);
|
||||||
|
|
||||||
if (swap_encrypt) {
|
for (i = 0; i < npages; i++) {
|
||||||
for (i = 0; i < npages; i++) {
|
int s = startslot + i;
|
||||||
int s = startslot + i;
|
KDASSERT(swapdrum_sdp_is(s, sdp));
|
||||||
KDASSERT(swapdrum_sdp_is(s, sdp));
|
KASSERT(s >= sdp->swd_drumoffset);
|
||||||
KASSERT(s >= sdp->swd_drumoffset);
|
s -= sdp->swd_drumoffset;
|
||||||
s -= sdp->swd_drumoffset;
|
KASSERT(s < sdp->swd_drumsize);
|
||||||
KASSERT(s < sdp->swd_drumsize);
|
|
||||||
|
if (swap_encrypt) {
|
||||||
uvm_swap_encryptpage(sdp,
|
uvm_swap_encryptpage(sdp,
|
||||||
(void *)(kva + (vsize_t)i*PAGE_SIZE), s);
|
(void *)(kva + (vsize_t)i*PAGE_SIZE), s);
|
||||||
atomic_or_32(&sdp->swd_encmap[s/32],
|
atomic_or_32(&sdp->swd_encmap[s/32],
|
||||||
__BIT(s%32));
|
__BIT(s%32));
|
||||||
}
|
} else {
|
||||||
} else {
|
|
||||||
for (i = 0; i < npages; i++) {
|
|
||||||
int s = startslot + i;
|
|
||||||
KDASSERT(swapdrum_sdp_is(s, sdp));
|
|
||||||
KASSERT(s >= sdp->swd_drumoffset);
|
|
||||||
s -= sdp->swd_drumoffset;
|
|
||||||
KASSERT(s < sdp->swd_drumsize);
|
|
||||||
atomic_and_32(&sdp->swd_encmap[s/32],
|
atomic_and_32(&sdp->swd_encmap[s/32],
|
||||||
~__BIT(s%32));
|
~__BIT(s%32));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user