This is an automated email from the ASF dual-hosted git repository. ccollins pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
commit f36eb4ea7ef452a40aa287fd819cb8bab79bf876 Author: Christopher Collins <ccoll...@apache.org> AuthorDate: Thu Nov 1 14:35:30 2018 -0700 hw/battery: Lock mutex in `battery_init()` Prevent race condition when two tasks call `battery_init()`. --- hw/battery/src/battery.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hw/battery/src/battery.c b/hw/battery/src/battery.c index 4e09570..c8d4fc0 100644 --- a/hw/battery/src/battery.c +++ b/hw/battery/src/battery.c @@ -791,11 +791,14 @@ battery_init(struct os_dev *dev, void *arg) OS_DEV_SETHANDLERS(dev, battery_open, battery_close); + os_mutex_pend(&battery_manager.bm_lock, OS_WAIT_FOREVER); for (i = 0; i < BATTERY_MAX_COUNT; ++i) { if (battery_manager.bm_batteries[i] == NULL) { break; } } + os_mutex_release(&battery_manager.bm_lock); + assert(i < BATTERY_MAX_COUNT); battery_manager.bm_batteries[i] = bat;