On Sat, Jul 31, 2021 at 10:50:57AM +0800, Liang Wang wrote: > The physical address may exceed 32 bits on 32-bit systems with > more than 32 bits of physcial address,use PFN_PHYS() in devmem_is_allowed(), > or the physical address may overflow and be truncated. > We found this bug when mapping a high addresses through devmem tool, > when CONFIG_STRICT_DEVMEM is enabled on the ARM with ARM_LPAE and devmem > is used to map a high address that is not in the iomem address range, > an unexpected error indicating no permission is returned. > > This bug was initially introduced from v2.6.37, and the function was moved > to lib when v5.11. > > Cc: Luis Chamberlain <mcgrof@xxxxxxxxxx> > Fixes: 087aaffcdf9c ("ARM: implement CONFIG_STRICT_DEVMEM by disabling access to RAM via /dev/mem") > Fixes: 527701eda5f1 ("lib: Add a generic version of devmem_is_allowed()") > Cc: stable@xxxxxxxxxxxxxxx # v2.6.37 > Signed-off-by: Liang Wang <wangliang101@xxxxxxxxxx> Reviewed-by: Luis Chamberlain <mcgrof@xxxxxxxxxx> Luis