diff options
author | Henry Burns <henryburns@google.com> | 2019-08-24 17:54:37 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-08-29 08:30:25 +0200 |
commit | 764fa2f4ff59591fd04b504f8f8fb46ec16641a9 (patch) | |
tree | 5af858452aa74f03ef41275f0892ac10cf48986f /mm/page_alloc.c | |
parent | 641c1d8396dcbc6277e07bee9e4a07f392e91e9c (diff) | |
download | linux-stable-764fa2f4ff59591fd04b504f8f8fb46ec16641a9.tar.gz linux-stable-764fa2f4ff59591fd04b504f8f8fb46ec16641a9.tar.bz2 linux-stable-764fa2f4ff59591fd04b504f8f8fb46ec16641a9.zip |
mm/z3fold.c: fix race between migration and destruction
commit d776aaa9895eb6eb770908e899cb7f5bd5025b3c upstream.
In z3fold_destroy_pool() we call destroy_workqueue(&pool->compact_wq).
However, we have no guarantee that migration isn't happening in the
background at that time.
Migration directly calls queue_work_on(pool->compact_wq), if destruction
wins that race we are using a destroyed workqueue.
Link: http://lkml.kernel.org/r/20190809213828.202833-1-henryburns@google.com
Signed-off-by: Henry Burns <henryburns@google.com>
Cc: Vitaly Wool <vitalywool@gmail.com>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Jonathan Adams <jwadams@google.com>
Cc: Henry Burns <henrywolfeburns@gmail.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'mm/page_alloc.c')
0 files changed, 0 insertions, 0 deletions