]> Git Repo - linux.git/commit - mm/vmalloc.c
mm/vmalloc.c: fix kernel BUG at mm/vmalloc.c:512!
authorUladzislau Rezki (Sony) <[email protected]>
Tue, 5 Mar 2019 23:45:59 +0000 (15:45 -0800)
committerLinus Torvalds <[email protected]>
Wed, 6 Mar 2019 05:07:17 +0000 (21:07 -0800)
commitafd07389d3f4933c7f7817a92fb5e053d59a3182
treed95c81abeb0907711f93c9cbdb66ca8e4e26e4d0
parent677dc9731b54dccaaadbdcea18f8eecc95cee832
mm/vmalloc.c: fix kernel BUG at mm/vmalloc.c:512!

One of the vmalloc stress test case triggers the kernel BUG():

  <snip>
  [60.562151] ------------[ cut here ]------------
  [60.562154] kernel BUG at mm/vmalloc.c:512!
  [60.562206] invalid opcode: 0000 [#1] PREEMPT SMP PTI
  [60.562247] CPU: 0 PID: 430 Comm: vmalloc_test/0 Not tainted 4.20.0+ #161
  [60.562293] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014
  [60.562351] RIP: 0010:alloc_vmap_area+0x36f/0x390
  <snip>

it can happen due to big align request resulting in overflowing of
calculated address, i.e.  it becomes 0 after ALIGN()'s fixup.

Fix it by checking if calculated address is within vstart/vend range.

Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Uladzislau Rezki (Sony) <[email protected]>
Reviewed-by: Andrew Morton <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Joel Fernandes <[email protected]>
Cc: Matthew Wilcox <[email protected]>
Cc: Michal Hocko <[email protected]>
Cc: Oleksiy Avramchenko <[email protected]>
Cc: Steven Rostedt <[email protected]>
Cc: Tejun Heo <[email protected]>
Cc: Thomas Garnier <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
mm/vmalloc.c
This page took 0.050239 seconds and 4 git commands to generate.