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 <ben@bens.haus> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Tested-by: Ben Schneider <ben@bens.haus> Reviewed-by: Sughosh Ganu <sughosh.ganu@linaro.org>
This commit is contained in:

committed by
Tom Rini

parent
244e61fbb7
commit
67be24906f
2
fs/fs.c
2
fs/fs.c
@@ -554,7 +554,7 @@ static int fs_read_lmb_check(const char *filename, ulong addr, loff_t offset,
|
||||
|
||||
lmb_dump_all();
|
||||
|
||||
if (lmb_alloc_addr(addr, read_len, LMB_NONE) == addr)
|
||||
if (!lmb_alloc_addr(addr, read_len, LMB_NONE))
|
||||
return 0;
|
||||
|
||||
log_err("** Reading file would overwrite reserved memory **\n");
|
||||
|
Reference in New Issue
Block a user