nmi_backtrace: generate one-line reports for idle cpus
[cascardo/linux.git] / mm / madvise.c
index 07427d3..93fb63e 100644 (file)
@@ -707,10 +707,12 @@ SYSCALL_DEFINE3(madvise, unsigned long, start, size_t, len_in, int, behavior)
                return error;
 
        write = madvise_need_mmap_write(behavior);
-       if (write)
-               down_write(&current->mm->mmap_sem);
-       else
+       if (write) {
+               if (down_write_killable(&current->mm->mmap_sem))
+                       return -EINTR;
+       } else {
                down_read(&current->mm->mmap_sem);
+       }
 
        /*
         * If the interval [start,end) covers some unmapped address