summaryrefslogtreecommitdiff
path: root/Documentation/vfio-mediated-device.txt
diff options
context:
space:
mode:
authorKan Liang <kan.liang@intel.com>2017-08-02 23:32:27 +0300
committerLinus Torvalds <torvalds@linux-foundation.org>2017-08-03 03:16:13 +0300
commit1ee1c3f5b5cff959e0ac95a125bd15eaf88cc638 (patch)
tree18e5ee0fe0ccf7960c9e09eb51d968098fd420f1 /Documentation/vfio-mediated-device.txt
parent5a18b64e3f02125be1c0ef777501ae38aafe2a24 (diff)
downloadlinux-1ee1c3f5b5cff959e0ac95a125bd15eaf88cc638.tar.xz
mm: allow page_cache_get_speculative in interrupt context
Kernel panic when calling the IRQ-safe __get_user_pages_fast in NMI handler. The bug was introduced by commit 2947ba054a4d ("x86/mm/gup: Switch GUP to the generic get_user_page_fast() implementation"). The original x86 __get_user_page_fast used plain get_page() or page_ref_add(). However, the generic __get_user_page_fast uses page_cache_get_speculative(), which has VM_BUG_ON(in_interrupt()). There is no reason to prevent page_cache_get_speculative from using in interrupt context. According to the author, putting a BUG_ON there is just because the code is not verifying correctness of interrupt races. I did some tests in interrupt context. There is no issue found. Removing VM_BUG_ON(in_interrupt()) for page_cache_get_speculative(). Link: http://lkml.kernel.org/r/1501609146-59730-1-git-send-email-kan.liang@intel.com Fixes: 2947ba054a4d ("x86/mm/gup: Switch GUP to the generic get_user_page_fast() implementation") Signed-off-by: Kan Liang <kan.liang@intel.com> Cc: Jens Axboe <axboe@fb.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Ying Huang <ying.huang@intel.com> Cc: Nicholas Piggin <npiggin@gmail.com> Cc: Ingo Molnar <mingo@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'Documentation/vfio-mediated-device.txt')
0 files changed, 0 insertions, 0 deletions