diff options
| author | Ilias Apalodimas <[email protected]> | 2025-03-14 12:57:02 +0200 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2025-03-24 11:12:33 -0600 |
| commit | 67be24906feb6efecce70cd5bfdc2ba8f06d3d5b (patch) | |
| tree | e56ec2da79f287a6568eae8a040046d6afa0be0a /include/lmb.h | |
| parent | 244e61fbb7f5045e4e187024f7ae80434c952145 (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/lmb.h')
| -rw-r--r-- | include/lmb.h | 6 |
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); } /** |
