lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <zpp2ztak5c5e5kies6er4mioolsjpufxgizcrjf2erk4fxryox@dvnbkls725wu>
Date: Wed, 3 Sep 2025 08:52:05 +1000
From: Alistair Popple <apopple@...dia.com>
To: David Hildenbrand <david@...hat.com>
Cc: linux-mm@...ck.org, akpm@...ux-foundation.org, osalvador@...e.de, 
	jgg@...pe.ca, jhubbard@...dia.com, peterx@...hat.com, 
	linux-kernel@...r.kernel.org, dan.j.williams@...el.com
Subject: Re: [PATCH 1/2] mm/gup: Remove dead pgmap refcounting code

On 2025-09-02 at 17:46 +1000, David Hildenbrand <david@...hat.com> wrote...
> On 02.09.25 07:14, Alistair Popple wrote:
> > Prior to aed877c2b425 ("device/dax: properly refcount device dax pages
> 
> "to commit aed877c2b425" ...
> 
> > when mapping") ZONE_DEVICE pages were not fully reference counted when
> > mapped into user page tables. Instead GUP would take a reference on the
> > associated pgmap to ensure the results of pfn_to_page() remained valid.
> > 
> > This is no longer required and most of the code was removed by
> > fd2825b0760a ("mm/gup: remove pXX_devmap usage from get_user_pages()").
> 
> "by commit fd2825b0760a"
> 
> Otherwise checkpatch complains.

Aha! Clearly I was tired ... I saw the checkpatch spew but couldn't figure out
what it was trying to tell me other than I was wrong :).

Anyway the kernel test bot tells me I missed a call site so will fix both these
issues and respin. Thanks!

> > Finish cleaning this up by removing the dead calls to put_dev_pagemap()
> > and the temporary context struct.
> 
> [...]
> 
> >   {
> > @@ -661,7 +656,7 @@ static inline bool can_follow_write_pud(pud_t pud, struct page *page,
> >   static struct page *follow_huge_pud(struct vm_area_struct *vma,
> >   				    unsigned long addr, pud_t *pudp,
> > -				    int flags, struct follow_page_context *ctx)
> > +				    int flags, unsigned long *page_mask)
> >   {
> >   	struct mm_struct *mm = vma->vm_mm;
> >   	struct page *page;
> > @@ -688,7 +683,7 @@ static struct page *follow_huge_pud(struct vm_area_struct *vma,
> >   	if (ret)
> >   		page = ERR_PTR(ret);
> >   	else
> > -		ctx->page_mask = HPAGE_PUD_NR - 1;
> > +		*page_mask = HPAGE_PUD_NR - 1;
> 
> At some point we should remove that page_mask thingy as well and handle it
> like gup-fast: let follow_* will in the array directly.
> 
> 
> Lovely
> 
> Acked-by: David Hildenbrand <david@...hat.com>
> 
> -- 
> Cheers
> 
> David / dhildenb
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ