linux/mm
Mike Kravetz e32905e573 userfaultfd: hugetlbfs: fix new flag usage in error path
In commit d6995da311 ("hugetlb: use page.private for hugetlb specific
page flags") the use of PagePrivate to indicate a reservation count
should be restored at free time was changed to the hugetlb specific flag
HPageRestoreReserve.  Changes to a userfaultfd error path as well as a
VM_BUG_ON() in remove_inode_hugepages() were overlooked.

Users could see incorrect hugetlb reserve counts if they experience an
error with a UFFDIO_COPY operation.  Specifically, this would be the
result of an unlikely copy_huge_page_from_user error.  There is not an
increased chance of hitting the VM_BUG_ON.

Link: https://lkml.kernel.org/r/20210521233952.236434-1-mike.kravetz@oracle.com
Fixes: d6995da311 ("hugetlb: use page.private for hugetlb specific page flags")
Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com>
Reviewed-by: Mina Almasry <almasry.mina@google.com>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Muchun Song <songmuchun@bytedance.com>
Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Miaohe Lin <linmiaohe@huawei.com>
Cc: Mina Almasry <almasrymina@google.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2021-05-22 15:09:07 -10:00
..
kasan mm: fix typos in comments 2021-05-07 00:26:35 -07:00
kfence mm: fix typos in comments 2021-05-07 00:26:35 -07:00
backing-dev.c
balloon_compaction.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
cleancache.c
cma_debug.c
cma_sysfs.c
cma.c
cma.h
compaction.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
debug_page_ref.c
debug_vm_pgtable.c
debug.c
dmapool.c
early_ioremap.c
fadvise.c
failslab.c
filemap.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
frontswap.c mm/mempool: minor coding style tweaks 2021-05-05 11:27:27 -07:00
gup_test.c
gup_test.h
gup.c Revert "mm/gup: check page posion status for coredump." 2021-05-22 15:09:07 -10:00
highmem.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
hmm.c
huge_memory.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
hugetlb_cgroup.c
hugetlb.c mm/hugetlb: fix cow where page writtable in child 2021-05-14 19:41:32 -07:00
hwpoison-inject.c
init-mm.c
internal.h Revert "mm/gup: check page posion status for coredump." 2021-05-22 15:09:07 -10:00
interval_tree.c
io-mapping.c
ioremap.c mm/ioremap: fix iomap_max_page_shift 2021-05-14 19:41:32 -07:00
Kconfig
Kconfig.debug
khugepaged.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
kmemleak.c
ksm.c ksm: revert "use GET_KSM_PAGE_NOLOCK to get ksm page in remove_rmap_item_from_tree()" 2021-05-14 19:41:32 -07:00
list_lru.c
maccess.c
madvise.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
Makefile
mapping_dirty_helpers.c
memblock.c
memcontrol.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
memfd.c
memory_hotplug.c mm/mempool: minor coding style tweaks 2021-05-05 11:27:27 -07:00
memory-failure.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
memory.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
mempolicy.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
mempool.c mm/mempool: minor coding style tweaks 2021-05-05 11:27:27 -07:00
memremap.c
memtest.c
migrate.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
mincore.c
mlock.c mm/mempool: minor coding style tweaks 2021-05-05 11:27:27 -07:00
mm_init.c
mmap_lock.c
mmap.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
mmu_gather.c
mmu_notifier.c
mmzone.c
mprotect.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
mremap.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
msync.c
nommu.c mm/vmalloc: remove vwrite() 2021-05-07 00:26:34 -07:00
oom_kill.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
page_alloc.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
page_counter.c
page_ext.c
page_idle.c
page_io.c
page_isolation.c
page_owner.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
page_poison.c
page_reporting.c
page_reporting.h
page_vma_mapped.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
page-writeback.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
pagewalk.c
percpu-internal.h mm: fix typos in comments 2021-05-07 00:26:35 -07:00
percpu-km.c
percpu-stats.c
percpu-vm.c
percpu.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
pgalloc-track.h mm: fix typos in comments 2021-05-07 00:26:35 -07:00
pgtable-generic.c
process_vm_access.c mm/process_vm_access.c: remove duplicate include 2021-05-05 11:27:27 -07:00
ptdump.c
readahead.c
rmap.c mm: fix some typos and code style problems 2021-05-07 00:26:33 -07:00
rodata_test.c
shmem.c userfaultfd: release page in error path to avoid BUG_ON 2021-05-14 19:41:32 -07:00
shuffle.c
shuffle.h mm/shuffle: fix section mismatch warning 2021-05-22 15:09:07 -10:00
slab_common.c mm, slub: move slub_debug static key enabling outside slab_mutex 2021-05-14 19:41:32 -07:00
slab.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
slab.h
slob.c
slub.c kasan: slab: always reset the tag in get_freepointer_safe() 2021-05-22 15:09:07 -10:00
sparse-vmemmap.c
sparse.c mm/mempool: minor coding style tweaks 2021-05-05 11:27:27 -07:00
swap_cgroup.c
swap_slots.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
swap_state.c mm: fix some typos and code style problems 2021-05-07 00:26:33 -07:00
swap.c mm: fix some typos and code style problems 2021-05-07 00:26:33 -07:00
swapfile.c mm/mempool: minor coding style tweaks 2021-05-05 11:27:27 -07:00
truncate.c
usercopy.c
userfaultfd.c userfaultfd: hugetlbfs: fix new flag usage in error path 2021-05-22 15:09:07 -10:00
util.c
vmacache.c
vmalloc.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
vmpressure.c
vmscan.c mm/mempool: minor coding style tweaks 2021-05-05 11:27:27 -07:00
vmstat.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
workingset.c
z3fold.c mm: fix some typos and code style problems 2021-05-07 00:26:33 -07:00
zbud.c
zpool.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
zsmalloc.c mm: fix typos in comments 2021-05-07 00:26:35 -07:00
zswap.c mm/zswap.c: switch from strlcpy to strscpy 2021-05-05 11:27:27 -07:00