Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
mm: restrict gfp mask in mpage_alloc
Sergey has reported that we might hit BUG_ON in new_slab() because unrestricted gfp mask used for the readahead purposes contains incompatible flags (__GFP_HIGHMEM in his case): [ 429.191962] gfp: 2 [ 429.192634] ------------[ cut here ]------------ [ 429.193281] kernel BUG at mm/slub.c:1616! [...] [ 429.217369] [<ffffffff811ca221>] bio_alloc_bioset+0xbd/0x1b1 [ 429.218013] [<ffffffff81148078>] mpage_alloc+0x28/0x7b [ 429.218650] [<ffffffff8114856a>] do_mpage_readpage+0x43d/0x545 [ 429.219282] [<ffffffff81148767>] mpage_readpages+0xf5/0x152 Make sure that mpage_alloc always restricts the mask to GFP_KERNEL subset. This is what was done before "mm, memcg: use consistent gfp flags during readahead" explicitly by mapping_gfp_constraint(mapping, GFP_KERNEL) in mpage_readpages. Link: http://lkml.kernel.org/r/20160610074223.GC32285@dhcp22.suse.cz Reported-by: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com> Signed-off-by: Michal Hocko <mhocko@suse.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- Loading branch information