Browse Source

Kernel: Ignore MADV_SET_NONVOLATILE if already non-volatile

Just return 0 right away without changing any region flags.
Andreas Kling 5 năm trước cách đây
mục cha
commit
72ec2fae6e
1 tập tin đã thay đổi với 2 bổ sung0 xóa
  1. 2 0
      Kernel/Process.cpp

+ 2 - 0
Kernel/Process.cpp

@@ -358,6 +358,8 @@ int Process::sys$madvise(void* address, size_t size, int advice)
         if (!region->vmobject().is_purgeable())
         if (!region->vmobject().is_purgeable())
             return -EPERM;
             return -EPERM;
         auto& vmobject = static_cast<PurgeableVMObject&>(region->vmobject());
         auto& vmobject = static_cast<PurgeableVMObject&>(region->vmobject());
+        if (!vmobject.is_volatile())
+            return 0;
         vmobject.set_volatile(false);
         vmobject.set_volatile(false);
         bool was_purged = vmobject.was_purged();
         bool was_purged = vmobject.was_purged();
         vmobject.set_was_purged(false);
         vmobject.set_was_purged(false);