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] [day] [month] [year] [list]
Message-ID: <3cf7c02e-d77f-48cd-bd03-69d71f8cf92b@redhat.com>
Date: Tue, 30 Sep 2025 11:51:39 +0200
From: David Hildenbrand <david@...hat.com>
To: Ankur Arora <ankur.a.arora@...cle.com>
Cc: linux-kernel@...r.kernel.org, linux-mm@...ck.org, x86@...nel.org,
 akpm@...ux-foundation.org, bp@...en8.de, dave.hansen@...ux.intel.com,
 hpa@...or.com, mingo@...hat.com, mjguzik@...il.com, luto@...nel.org,
 peterz@...radead.org, acme@...nel.org, namhyung@...nel.org,
 tglx@...utronix.de, willy@...radead.org, raghavendra.kt@....com,
 boris.ostrovsky@...cle.com, konrad.wilk@...cle.com
Subject: Re: [PATCH v7 12/16] arm: mm: define clear_user_highpages()


>>> assumes one of the following:
>>>     1. clear_user_highpages is defined by the architecture or,
>>>     2. HIGHMEM => arch defines clear_user_highpage or clear_user_page
>>>     3. !HIGHMEM => arch defines clear_user_pages or clear_user_page
>>> Case 2 is fine, since ARM has clear_user_highpage().
>>> Case 3 runs into a problem since ARM doesn't have clear_user_pages()
>>> or clear_user_page() (it does have the second, but only with !CONFIG_MMU).
>>
>> I think we should look into having a generic fallback version in common code
>> instead for that case, and not require the arch to implement such a loop around
>> clear_user_highpage().
> 
> So, as you suggested, I moved clear_user_pages() to mm/utils.c and
> conditioned it on clear_user_page() also existing.
> 
>    #if defined(clear_user_page) && !defined(clear_user_pages)
>    void clear_user_pages(void *addr, unsigned long vaddr, struct page *page,
>                          unsigned int npages) {
>                        ...
>    }
>    #endif
> 
> That fixed this issue as well since there's no more bogus reference to
> clear_user_page().

I'll have to see the resulting code to comment on details, but if we can handle it in
common code, all good.

> 
> Are there cases in which (TRANSPARENT_HUGEPAGE || HUGETLB) might be enabled
> on ARM?

Arm has

arch/arm/Kconfig:       select HAVE_ARCH_TRANSPARENT_HUGEPAGE if ARM_LPAE

and supports hugetlb. So yes on both.

-- 
Cheers

David / dhildenb


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ