mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-12 04:15:21 +02:00
mm/cma: drop incorrect alignment check in cma_init_reserved_mem
commitb174f139bd
upstream. cma_init_reserved_mem uses IS_ALIGNED to check if the size represented by one bit in the cma allocation bitmask is aligned with CMA_MIN_ALIGNMENT_BYTES (pageblock size). However, this is too strict, as this will fail if order_per_bit > pageblock_order, which is a valid configuration. We could check IS_ALIGNED both ways, but since both numbers are powers of two, no check is needed at all. Link: https://lkml.kernel.org/r/20240404162515.527802-1-fvdl@google.com Fixes:de9e14eebf
("drivers: dma-contiguous: add initialization from device tree") Signed-off-by: Frank van der Linden <fvdl@google.com> Acked-by: David Hildenbrand <david@redhat.com> Cc: Marek Szyprowski <m.szyprowski@samsung.com> Cc: Muchun Song <muchun.song@linux.dev> Cc: Roman Gushchin <roman.gushchin@linux.dev> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
3e64c37fe3
commit
f317e97da9
4
mm/cma.c
4
mm/cma.c
|
@ -187,10 +187,6 @@ int __init cma_init_reserved_mem(phys_addr_t base, phys_addr_t size,
|
||||||
if (!size || !memblock_is_region_reserved(base, size))
|
if (!size || !memblock_is_region_reserved(base, size))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
/* alignment should be aligned with order_per_bit */
|
|
||||||
if (!IS_ALIGNED(CMA_MIN_ALIGNMENT_PAGES, 1 << order_per_bit))
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
/* ensure minimal alignment required by mm core */
|
/* ensure minimal alignment required by mm core */
|
||||||
if (!IS_ALIGNED(base | size, CMA_MIN_ALIGNMENT_BYTES))
|
if (!IS_ALIGNED(base | size, CMA_MIN_ALIGNMENT_BYTES))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user