fix: madvise changes only the first one of vm_ranges

Change-Id: I83248c1162e28c3c24ca5f6b0933e1a8ca434d6b
Fujitsu: POSTK_DEBUG_TEMP_FIX_37
Refs: #1351
This commit is contained in:
Ken Sato
2019-08-23 15:35:31 +09:00
parent 0615a0b00b
commit 5d6715078f
8 changed files with 296 additions and 9 deletions

View File

@@ -4674,7 +4674,7 @@ change_attr_process_memory_range(struct process_vm *vm,
prev = previous_process_memory_range(vm, range);
if(!prev)
prev = range;
for (addr = start; addr < end; addr = range->end) {
for (addr = start; addr < end; addr = range->start) {
if (range->start < addr) {
if((error = split_process_memory_range(vm, range, addr, &range))) {
break;
@@ -4686,21 +4686,13 @@ change_attr_process_memory_range(struct process_vm *vm,
}
}
#ifdef POSTK_DEBUG_TEMP_FIX_37
if((error = change_proc(range, arg)) != 0){
#else
if(!(error = change_proc(range, arg))){
#endif /*POSTK_DEBUG_TEMP_FIX_37*/
break;
}
range = next_process_memory_range(vm, range);
}
#ifdef POSTK_DEBUG_TEMP_FIX_37
if(error == 0){
#else
if(error){
#endif /*POSTK_DEBUG_TEMP_FIX_37*/
next = next_process_memory_range(vm, range);
if(!next)
next = range;