OSDN Git Service

dm/verity_fec: Use GFP aware reed solomon init
authorThomas Gleixner <tglx@linutronix.de>
Sun, 22 Apr 2018 16:23:47 +0000 (18:23 +0200)
committerKees Cook <keescook@chromium.org>
Wed, 25 Apr 2018 02:50:05 +0000 (19:50 -0700)
commiteb366989aa42e688b525929a0ff67ac047df7ee3
treefa6af5069b4b4388c1178663f23f97c34decc38d
parent83a530e1610ab996e59c0941db6cc72f763dddbd
dm/verity_fec: Use GFP aware reed solomon init

Allocations from the rs_pool can invoke init_rs() from the mempool
allocation callback. This is problematic in fec_alloc_bufs() which invokes
mempool_alloc() with GFP_NOIO to prevent a swap deadlock because init_rs()
uses GFP_KERNEL allocations.

Switch it to init_rs_gfp() and invoke it with the gfp_t flags which are
handed in from the allocator.

Note: This is not a problem today because the rs control struct is shared
between the instances and its created when the mempool is initialized. But
the upcoming changes which switch to a rs_control struct per instance to
embed decoder buffers will trigger the swap vs. GFP_KERNEL issue.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Mike Snitzer <snitzer@redhat.com>
Cc: Alasdair Kergon <agk@redhat.com>
Cc: Neil Brown <neilb@suse.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
drivers/md/dm-verity-fec.c