diff options
author | OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> | 2021-03-12 21:07:37 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2021-03-13 11:27:30 -0800 |
commit | 184cee516f3e24019a08ac8eb5c7cf04c00933cb (patch) | |
tree | d9f5e41fdfdfdc86143d8ff60e58f1bb835ebdfe /lib/ashldi3.c | |
parent | 4eae4efa2c299f85b7ebfbeeda56c19c5eba2768 (diff) | |
download | linux-184cee516f3e24019a08ac8eb5c7cf04c00933cb.tar.bz2 |
mm/highmem.c: fix zero_user_segments() with start > end
zero_user_segments() is used from __block_write_begin_int(), for example
like the following
zero_user_segments(page, 4096, 1024, 512, 918)
But new the zero_user_segments() implementation for for HIGHMEM +
TRANSPARENT_HUGEPAGE doesn't handle "start > end" case correctly, and hits
BUG_ON(). (we can fix __block_write_begin_int() instead though, it is the
old and multiple usage)
Also it calls kmap_atomic() unnecessarily while start == end == 0.
Link: https://lkml.kernel.org/r/87v9ab60r4.fsf@mail.parknet.co.jp
Fixes: 0060ef3b4e6d ("mm: support THPs in zero_user_segments")
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib/ashldi3.c')
0 files changed, 0 insertions, 0 deletions