From 5f8321eb6479113a09c771c49e6781571ec8e2e2 Mon Sep 17 00:00:00 2001 From: Maxim Polyakov Date: Mon, 8 Jul 2019 12:13:18 +0300 Subject: 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 --- discover/platform-powerpc.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'discover') 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; -- cgit v1.2.1