summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorIlias Apalodimas <[email protected]>2025-03-14 12:57:02 +0200
committerTom Rini <[email protected]>2025-03-24 11:12:33 -0600
commit67be24906feb6efecce70cd5bfdc2ba8f06d3d5b (patch)
treee56ec2da79f287a6568eae8a040046d6afa0be0a /include
parent244e61fbb7f5045e4e187024f7ae80434c952145 (diff)
lmb: change the return code on lmb_alloc_addr()
Ben reports a failure to boot the kernel on hardware that starts its physical memory from 0x0. The reason is that lmb_alloc_addr(), which is supposed to reserve a specific address, takes the address as the first argument, but then also returns the address for success or failure and treats 0 as a failure. Since we already know the address change the prototype to return an int. Reported-by: Ben Schneider <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]> Tested-by: Ben Schneider <[email protected]> Reviewed-by: Sughosh Ganu <[email protected]>
Diffstat (limited to 'include')
-rw-r--r--include/lmb.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/include/lmb.h b/include/lmb.h
index 09297a4f530..0d316c64c0a 100644
--- a/include/lmb.h
+++ b/include/lmb.h
@@ -135,9 +135,9 @@ phys_addr_t lmb_alloc_base(phys_size_t size, ulong align, phys_addr_t max_addr,
* parameter. The base parameter is used to specify the base address
* of the requested region.
*
- * Return: Base address on success, 0 on error.
+ * Return: 0 on success -1 on error
*/
-phys_addr_t lmb_alloc_addr(phys_addr_t base, phys_size_t size, u32 flags);
+int lmb_alloc_addr(phys_addr_t base, phys_size_t size, u32 flags);
/**
* lmb_is_reserved_flags() - Test if address is in reserved region with flag
@@ -175,7 +175,7 @@ void lmb_pop(struct lmb *store);
static inline int lmb_read_check(phys_addr_t addr, phys_size_t len)
{
- return lmb_alloc_addr(addr, len, LMB_NONE) == addr ? 0 : -1;
+ return lmb_alloc_addr(addr, len, LMB_NONE);
}
/**