diff options
author | Richard Braun <rbraun@sceen.net> | 2017-01-09 23:50:57 +0100 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2017-01-09 23:50:57 +0100 |
commit | 35e2775c9f05fbe1d5e938de2ecf3416ea149bb1 (patch) | |
tree | f2cf1f4ee02c8dab06b74ab27ba988f5d2e651c1 /test | |
parent | 3d0c4b2710debdf6666ba58d6bf8b5e1371243db (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.c | 30 |
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); |