On 29/07/2026 1:36 pm, Pedro Falcato wrote: > On Mon, Jul 27, 2026 at 05:47:00PM +0100, Muhammad Usama Anjum wrote: >> A leaf PMD is being read through ptep_get() by treating the PMD address >> as PTE-sized table storage. ptep_get() now accepts hw_pte_t *, so update >> the cast accordingly. >> >> pte_offset_kernel() also returns hw_pte_t *. Get pte_t value by calling >> ptep_get(). >> >> Signed-off-by: Muhammad Usama Anjum <[email protected]> >> --- >> drivers/misc/sgi-gru/grufault.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/misc/sgi-gru/grufault.c >> b/drivers/misc/sgi-gru/grufault.c >> index 3557d78ee47a2..ff89d34ad2aa4 100644 >> --- a/drivers/misc/sgi-gru/grufault.c >> +++ b/drivers/misc/sgi-gru/grufault.c >> @@ -228,10 +228,10 @@ static int atomic_pte_lookup(struct vm_area_struct >> *vma, unsigned long vaddr, >> goto err; >> #ifdef CONFIG_X86_64 >> if (unlikely(pmd_leaf(*pmdp))) >> - pte = ptep_get((pte_t *)pmdp); >> + pte = ptep_get((hw_pte_t *)pmdp); >> else >> #endif >> - pte = *pte_offset_kernel(pmdp, vaddr); >> + pte = ptep_get(pte_offset_kernel(pmdp, vaddr)); >> >> if (unlikely(!pte_present(pte) || >> (write && (!pte_write(pte) || !pte_dirty(pte))))) > > This code is super, super broken. Can we remove this ASAP? For starters, > we're using is_vm_hugetlb_page() to detect page shift, the code does not > grab refs on the pages, uses pte_offset_kernel() on user page tables, > does not handle PUD-level hugepages, does not handle PMD-level hugepages on > !x86_64, > does not hold page table locks nor check for pte table retraction, etc > > I don't think I need to go on. This and parisc both have dead code. I'll send separate patches to remove dead code.
-- Thanks, Usama
