]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mm-gup-fix-potential-pgmap-refcnt-leak-in-__gup_device_huge-fix
authorAndrew Morton <akpm@linux-foundation.org>
Mon, 23 Aug 2021 23:59:09 +0000 (09:59 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Wed, 25 Aug 2021 23:33:42 +0000 (09:33 +1000)
simplify, cleanup

Cc: Miaohe Lin <linmiaohe@huawei.com>
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Jan Kara <jack@suse.cz>
Cc: John Hubbard <jhubbard@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
mm/gup.c

index 94f886562688cca6cc94d933e2fd82b4f03ff164..41fd86ec362c0dad5c250236d94cc54abcf1bf42 100644 (file)
--- a/mm/gup.c
+++ b/mm/gup.c
@@ -2247,14 +2247,13 @@ static int __gup_device_huge(unsigned long pfn, unsigned long addr,
                pgmap = get_dev_pagemap(pfn, pgmap);
                if (unlikely(!pgmap)) {
                        undo_dev_pagemap(nr, nr_start, flags, pages);
-                       return 0;
+                       break;
                }
                SetPageReferenced(page);
                pages[*nr] = page;
                if (unlikely(!try_grab_page(page, flags))) {
                        undo_dev_pagemap(nr, nr_start, flags, pages);
-                       put_dev_pagemap(pgmap);
-                       return 0;
+                       break;
                }
                (*nr)++;
                pfn++;