summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2017-01-09 23:50:57 +0100
committerRichard Braun <rbraun@sceen.net>2017-01-09 23:50:57 +0100
commit35e2775c9f05fbe1d5e938de2ecf3416ea149bb1 (patch)
treef2cf1f4ee02c8dab06b74ab27ba988f5d2e651c1 /test
parent3d0c4b2710debdf6666ba58d6bf8b5e1371243db (diff)
x86/pmap: report pmap update failures
Update the test_vm_page_fill module accordingly. The vm_kmem module needs to be reworked in order to correctly handle failures.
Diffstat (limited to 'test')
-rw-r--r--test/test_vm_page_fill.c30
1 files changed, 19 insertions, 11 deletions
diff --git a/test/test_vm_page_fill.c b/test/test_vm_page_fill.c
index ef32a2d8..dc25ba8a 100644
--- a/test/test_vm_page_fill.c
+++ b/test/test_vm_page_fill.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016 Richard Braun.
+ * Copyright (c) 2016-2017 Richard Braun.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -57,12 +57,16 @@ test_write_pages(void)
VM_ADV_DEFAULT, 0);
error = vm_map_enter(kernel_map, &va, PAGE_SIZE, 0, flags, NULL, 0);
error_check(error, __func__);
- pmap_enter(kernel_pmap, va, vm_page_to_pa(page),
- VM_PROT_READ | VM_PROT_WRITE, 0);
- pmap_update(kernel_pmap);
+ error = pmap_enter(kernel_pmap, va, vm_page_to_pa(page),
+ VM_PROT_READ | VM_PROT_WRITE, 0);
+ error_check(error, __func__);
+ error = pmap_update(kernel_pmap);
+ error_check(error, __func__);
memset((void *)va, test_pattern, PAGE_SIZE);
- pmap_remove(kernel_pmap, va, &test_cpumap);
- pmap_update(kernel_pmap);
+ error = pmap_remove(kernel_pmap, va, &test_cpumap);
+ error_check(error, __func__);
+ error = pmap_update(kernel_pmap);
+ error_check(error, __func__);
vm_map_remove(kernel_map, va, va + PAGE_SIZE);
list_insert_tail(&test_pages, &page->node);
@@ -85,12 +89,16 @@ test_reset_pages(void)
VM_ADV_DEFAULT, 0);
error = vm_map_enter(kernel_map, &va, PAGE_SIZE, 0, flags, NULL, 0);
error_check(error, __func__);
- pmap_enter(kernel_pmap, va, vm_page_to_pa(page),
- VM_PROT_READ | VM_PROT_WRITE, 0);
- pmap_update(kernel_pmap);
+ error = pmap_enter(kernel_pmap, va, vm_page_to_pa(page),
+ VM_PROT_READ | VM_PROT_WRITE, 0);
+ error_check(error, __func__);
+ error = pmap_update(kernel_pmap);
+ error_check(error, __func__);
memset((void *)va, 0, PAGE_SIZE);
- pmap_remove(kernel_pmap, va, &test_cpumap);
- pmap_update(kernel_pmap);
+ error = pmap_remove(kernel_pmap, va, &test_cpumap);
+ error_check(error, __func__);
+ error = pmap_update(kernel_pmap);
+ error_check(error, __func__);
vm_map_remove(kernel_map, va, va + PAGE_SIZE);
vm_page_free(page, 0);