UPSTREAM: vendorcode/siemens: Ensure a given info block is available for a field

While searching for a field in all blocks ensure that the checked block
is available and can be used. In this way a field can be retrieved from
every block and not just the first one.

BUG=None
BRANCH=None
TEST=None

Signed-off-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-on: https://review.coreboot.org/17670
Tested-by: build bot (Jenkins)
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>

Change-Id: Idbd7656ab0664763cb065f5e817193ad1d9e0871
Reviewed-on: https://chromium-review.googlesource.com/417091
Commit-Ready: Furquan Shaikh <furquan@chromium.org>
Tested-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Werner Zeh 2016-12-01 10:53:14 +01:00 committed by chrome-bot
parent 5a7e617031
commit 1a7b17c54f

View file

@ -396,7 +396,8 @@ static uint32_t hwilib_read_bytes (const struct param_info *param, uint8_t *dst,
return 0;
/* Take the first valid block to get the parameter from */
do {
if ((param->pos[i].len) && (param->pos[i].offset)) {
if ((param->pos[i].len) && (param->pos[i].offset) &&
(blk_ptr[param->pos[i].blk_type])) {
blk = blk_ptr[param->pos[i].blk_type];
break;
}