Re: [PATCH] mm/ioremap: Pass pgprot_t to ioremap_prot() instead of unsigned long
Catalin Marinas <[email protected]>
| Newsgroups | gmane.linux.ports.sh.devel,gmane.linux.kernel.mm,gmane.linux.ports.arm.kernel,gmane.linux.kernel.arc,gmane.linux.ports.riscv,gmane.linux.ports.ppc64.devel,gmane.linux.ports.parisc,gmane.linux.ports.mips,gmane.linux.kernel.cross-arch,gmane.linux.kernel |
|---|---|
| Message-ID | <[email protected]> |
On Tue, Feb 18, 2025 at 03:49:54PM +0530, Anshuman Khandual wrote: > From: Ryan Roberts <[email protected]> > > ioremap_prot() currently accepts pgprot_val parameter as an unsigned long, > thus implicitly assuming that pgprot_val and pgprot_t could never be bigger > than unsigned long. But this assumption soon will not be true on arm64 when > using D128 pgtables. In 128 bit page table configuration, unsigned long is > 64 bit, but pgprot_t is 128 bit. > > Passing platform abstracted pgprot_t argument is better as compared to size > based data types. Let's change the parameter to directly pass pgprot_t like > another similar helper generic_ioremap_prot(). > > Without this change in place, D128 configuration does not work on arm64 as > the top 64 bits gets silently stripped when passing the protection value to > this function. > > Cc: Andrew Morton <[email protected]> > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > Signed-off-by: Ryan Roberts <[email protected]> > Co-developed-by: Anshuman Khandual <[email protected]> > Signed-off-by: Anshuman Khandual <[email protected]> For arm64: Acked-by: Catalin Marinas <[email protected]>