lkml.org 
[lkml]   [2022]   [Jul]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v3] ARM: Fix MAX_DMA_ADDRESS overflow
From
On 7/6/22 13:33, Florian Fainelli wrote:
> Commit 26f09e9b3a06 ("mm/memblock: add memblock memory allocation apis")
> added a check to determine whether arm_dma_zone_size is exceeding the
> amount of kernel virtual address space available between the upper 4GB
> virtual address limit and PAGE_OFFSET in order to provide a suitable
> definition of MAX_DMA_ADDRESS that should fit within the 32-bit virtual
> address space. The quantity used for comparison was off by a missing
> trailing 0, leading to MAX_DMA_ADDRESS to be overflowing a 32-bit
> quantity.
>
> This was caught thanks to CONFIG_DEBUG_VIRTUAL on the bcm2711 platform
> where we define a dma_zone_size of 1GB and we have a PAGE_OFFSET value
> of 0xc000_0000 (CONFIG_VMSPLIT_3G) leading to MAX_DMA_ADDRESS being
> 0x1_0000_0000 which overflows the unsigned long type used throughout
> __pa() and then __virt_addr_valid(). Because the virtual address passed
> to __virt_addr_valid() would now be 0, the function would loudly warn
> and flood the kernel log, thus making the platform unable to boot
> properly.
>
> Fixes: 26f09e9b3a06 ("mm/memblock: add memblock memory allocation apis")
> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>

Shall I send this to RMK's patch system?
--
Florian

\
 
 \ /
  Last update: 2022-07-14 01:30    [W:0.054 / U:1.096 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site