diff options
author | Maxim Polyakov <m.polyakov@yadro.com> | 2019-07-08 12:13:18 +0300 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2019-10-08 14:31:09 +0800 |
commit | 5f8321eb6479113a09c771c49e6781571ec8e2e2 (patch) | |
tree | edcc42f2f5747c52f3e63ceac0da149ed5dfaccb /discover | |
parent | 1088a8ab532bfe008a714613497909d19bcfb8c4 (diff) | |
download | talos-petitboot-5f8321eb6479113a09c771c49e6781571ec8e2e2.tar.gz talos-petitboot-5f8321eb6479113a09c771c49e6781571ec8e2e2.zip |
discover/platform-powerpc: return the actual mailbox size
get_ipmi_boot_mailbox_block() should return the actual size
of the received IPMI mailbox data
Signed-off-by: Maxim Polyakov <m.polyakov@yadro.com>
Diffstat (limited to 'discover')
-rw-r--r-- | discover/platform-powerpc.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/discover/platform-powerpc.c b/discover/platform-powerpc.c index 1e33bf1..c874560 100644 --- a/discover/platform-powerpc.c +++ b/discover/platform-powerpc.c @@ -473,12 +473,7 @@ static int get_ipmi_boot_mailbox_block(struct platform_powerpc *platform, return -1; } - if (resp_len == 4) { - pb_debug_fn("block %hu empty\n", block); - return 0; - } - - blocksize = sizeof(resp) - 4; + blocksize = resp_len - 4; pb_debug_fn("Mailbox block %hu returns only %zu bytes in block\n", block, blocksize); @@ -512,6 +507,12 @@ static int get_ipmi_boot_mailbox_block(struct platform_powerpc *platform, return -1; } + if (!blocksize) { + pb_debug_fn("block %hu empty\n", block); + return 0; + } + + memcpy(buf, &resp[4], blocksize); return blocksize; |