u-boot: remove driver lookup loop from env_save()
authorNicholas Faustini <nicholas.faustini@azcomtech.com>
Mon, 23 Jul 2018 08:01:07 +0000 (10:01 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 30 Jul 2018 11:18:47 +0000 (07:18 -0400)
commitd30ba2315ae3dbb886187b6871e9d35b0fb03a11
treed3982433a85a57e5e6061668d83b5dd6065ae193
parentb8448051dfc26eb2f15e905f00f8edbd1da7dfb9
u-boot: remove driver lookup loop from env_save()

When called with ENVOP_SAVE, env_get_location() only returns the
gd->env_load_location variable without actually checking for
the environment location and priority.

This behaviour causes env_save() to fall into an infinite loop when
the low-level drv->save() call fails.

The env_save() function should not loop through the environment
location list but it should save the environment into the location
stored in gd->env_load_location by the last env_load() call.

Signed-off-by: Nicholas Faustini <nicholas.faustini@azcomtech.com>
Reviewed-by: Simon Goldschmidt <sgoldschmidt@de.pepperl-fuchs.com>
env/env.c
include/asm-generic/global_data.h