On 4/24/2022 3:45 PM, Muchun Song wrote:
On Sun, Apr 24, 2022 at 02:33:19PM +0800, Baolin Wang wrote:
Missed calling flush_cache_range() before removing the sharing PMD entrires,
otherwise data consistence issue may be occurred on some architectures whose
caches are strict and require a virtual–>physical translation to exist for
a virtual address. Thus add it.
Fixes: 6dfeaff93be1 ("hugetlb/userfaultfd: unshare all pmds for hugetlbfs when register wp")
Signed-off-by: Baolin Wang <baolin.wang@xxxxxxxxxxxxxxxxx>
CONFIG_ARCH_WANT_HUGE_PMD_SHARE is only definded on riscv, arm64 and
x86. All of them do not have a VIVT cache. In others words,
flush_cache_range() is null on those architectures. So I suspect
in practice this does not cause any issue. It is better to
clarify this in commit log.
Yes, just from code inspection and to keep same behaviors when unmapping
sharing PMD entrires in case more architectures can support
CONFIG_ARCH_WANT_HUGE_PMD_SHARE in future. Will update the commit
message in next version.
Anyway:
Reviewed-by: Muchun Song <songmuchun@xxxxxxxxxxxxx>
Thanks.