mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-08 19:11:53 +00:00
bootstd: Adjust code ordering to work around compiler quirk
At present when debugging is off, bootdev_find_in_blk() sometimes fails to find a valid bootflow, e.g. with virtio. Accessing the 'blk' variable later in the function seems to correct it. Move the 'ret' check before the debug statement and set the block device again aftewards, to work around this. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
f9fb57c691
commit
1aabe4ef2b
1 changed files with 3 additions and 2 deletions
|
@ -174,6 +174,8 @@ int bootdev_find_in_blk(struct udevice *dev, struct udevice *blk,
|
|||
} else {
|
||||
ret = fs_set_blk_dev_with_part(desc, bflow->part);
|
||||
bflow->state = BOOTFLOWST_PART;
|
||||
if (ret)
|
||||
return log_msg_ret("fs", ret);
|
||||
|
||||
/* Use an #ifdef due to info.sys_ind */
|
||||
#ifdef CONFIG_DOS_PARTITION
|
||||
|
@ -181,8 +183,7 @@ int bootdev_find_in_blk(struct udevice *dev, struct udevice *blk,
|
|||
blk->name, bflow->part, info.sys_ind,
|
||||
ret ? -1 : fs_get_type());
|
||||
#endif
|
||||
if (ret)
|
||||
return log_msg_ret("fs", ret);
|
||||
bflow->blk = blk;
|
||||
bflow->state = BOOTFLOWST_FS;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue