Messages in this thread | | | Date | Thu, 26 Sep 2019 12:09:35 +0300 | From | "Kirill A. Shutemov" <> | Subject | Re: [PATCH 1/3] mm, page_owner: fix off-by-one error in __set_page_owner_handle() |
| |
On Wed, Sep 25, 2019 at 04:30:50PM +0200, Vlastimil Babka wrote: > As noted by Kirill, commit 7e2f2a0cd17c ("mm, page_owner: record page owner for > each subpage") has introduced an off-by-one error in __set_page_owner_handle() > when looking up page_ext for subpages. As a result, the head page page_owner > info is set twice, while for the last tail page, it's not set at all. > > Fix this and also make the code more efficient by advancing the page_ext > pointer we already have, instead of calling lookup_page_ext() for each subpage. > Since the full size of struct page_ext is not known at compile time, we can't > use a simple page_ext++ statement, so introduce a page_ext_next() inline > function for that. > > Reported-by: Kirill A. Shutemov <kirill@shutemov.name> > Fixes: 7e2f2a0cd17c ("mm, page_owner: record page owner for each subpage") > Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
-- Kirill A. Shutemov
| |