summaryrefslogtreecommitdiffstats
path: root/lib/test_xarray.c
diff options
context:
space:
mode:
authorMatthew Wilcox <willy@infradead.org>2018-11-16 15:19:13 -0500
committerMatthew Wilcox <willy@infradead.org>2018-11-17 12:07:53 -0500
commit0e40de0338d005f73d46898a21544cd26f01b4ce (patch)
tree219460210db66a66308167398ddc320252e30047 /lib/test_xarray.c
parentfda490d39fc0668d92e170d95c11e35a010019aa (diff)
downloadlinux-0e40de0338d005f73d46898a21544cd26f01b4ce.tar.bz2
dax: Fix huge page faults
Using xas_load() with a PMD-sized xa_state would work if either a PMD-sized entry was present or a PTE sized entry was present in the first 64 entries (of the 512 PTEs in a PMD on x86). If there was no PTE in the first 64 entries, grab_mapping_entry() would believe there were no entries present, allocate a PMD-sized entry and overwrite the PTE in the page cache. Use xas_find_conflict() instead which turns out to simplify both get_unlocked_entry() and grab_mapping_entry(). Also remove a WARN_ON_ONCE from grab_mapping_entry() as it will have already triggered in get_unlocked_entry(). Fixes: cfc93c6c6c96 ("dax: Convert dax_insert_pfn_mkwrite to XArray") Signed-off-by: Matthew Wilcox <willy@infradead.org>
Diffstat (limited to 'lib/test_xarray.c')
0 files changed, 0 insertions, 0 deletions