From: "David Hildenbrand (Arm)" <david@kernel.org>
To: Kefeng Wang <wangkefeng.wang@huawei.com>,
Andrew Morton <akpm@linux-foundation.org>
Cc: Zi Yan <ziy@nvidia.com>, Matthew Brost <matthew.brost@intel.com>,
Joshua Hahn <joshua.hahnjy@gmail.com>,
Rakie Kim <rakie.kim@sk.com>, Byungchul Park <byungchul@sk.com>,
Gregory Price <gourry@gourry.net>,
Ying Huang <ying.huang@linux.alibaba.com>,
Alistair Popple <apopple@nvidia.com>,
linux-mm@kvack.org
Subject: Re: [PATCH] mm: migrate_device: fix pte_pfn/pte_dirty called on non-present PTE
Date: Tue, 7 Jul 2026 09:04:52 +0200 [thread overview]
Message-ID: <2e749bbc-86d1-4a10-9809-4777bb5061e7@kernel.org> (raw)
In-Reply-To: <9beedaa7-0896-4aa2-810e-26042476e7a7@huawei.com>
On 7/7/26 03:28, Kefeng Wang wrote:
>
>
> On 7/7/2026 2:30 AM, David Hildenbrand (Arm) wrote:
>> On 7/6/26 13:19, Kefeng Wang wrote:
>>> pte_pfn() and pte_dirty() have undefined behaviour when called on a
>>> non-present PTE. In migrate_vma_collect_pmd(), these functions may be
>>> invoked on non-present entries (e.g., swap PTEs), leading to potential
>>
>> Certainly not real swap PTEs, as the previous function handling is
>>
>> if (!pte_present(pte)) {
>> ...
>> if (!softleaf_is_device_private(entry))
>> goto next;
>>
>> Only device-private entries?
>
> Yes,device-private entries.
>
>>
>>
>>> crashes from pte_pfn() or incorrect dirty folio accounting from
>>> pte_dirty(). Fix both by guarding with pte_present() checks.
>>>
>>> Fixes: fd35ca3d12cc ("mm/migrate_device.c: copy pte dirty bit to page")
>>> Fixes: a3589e1d5fe3 ("mm/migrate_device.c: add missing flush_cache_page()")
>>
>> I suspected device-private code, but indeed, these seem to be added afterwards.
>>
>> But a3589e1d5fe3 only moved the flush_cache_page()? So that one seems wrong.
>
> I couldn't find a more suitable commit, before a3589e1d5fe3, the
> flush_cache_page() only called under anon_exclusive, not a device
> private entry, so there is no issue. This is the reason why I chose
> this commit.
What makes you believe device-private entries wouldn't have PAE set?
This likely goes back to initial support for device-private.
--
Cheers,
David
next prev parent reply other threads:[~2026-07-07 7:05 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-06 11:19 [PATCH] mm: migrate_device: fix pte_pfn/pte_dirty called on non-present PTE Kefeng Wang
2026-07-06 18:01 ` Andrew Morton
2026-07-07 1:45 ` Zi Yan
2026-07-07 8:00 ` Kefeng Wang
2026-07-07 20:54 ` Zi Yan
2026-07-06 18:30 ` David Hildenbrand (Arm)
2026-07-07 1:28 ` Kefeng Wang
2026-07-07 7:04 ` David Hildenbrand (Arm) [this message]
2026-07-07 9:33 ` Kefeng Wang
2026-07-07 13:03 ` David Hildenbrand (Arm)
2026-07-07 14:20 ` Kefeng Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2e749bbc-86d1-4a10-9809-4777bb5061e7@kernel.org \
--to=david@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=apopple@nvidia.com \
--cc=byungchul@sk.com \
--cc=gourry@gourry.net \
--cc=joshua.hahnjy@gmail.com \
--cc=linux-mm@kvack.org \
--cc=matthew.brost@intel.com \
--cc=rakie.kim@sk.com \
--cc=wangkefeng.wang@huawei.com \
--cc=ying.huang@linux.alibaba.com \
--cc=ziy@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.