From e39c5ad541830cecbd331f877ef43ded738a9251 Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Mon, 23 Sep 2013 16:27:17 +0800 Subject: [PATCH] discover: Don't register multiple boot_timeout waiters Rather than adding another timeout waiter, just override handler->default_boot_option and extend the timeout a little. Signed-off-by: Jeremy Kerr --- discover/device-handler.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/discover/device-handler.c b/discover/device-handler.c index f9d2dbf..02ae688 100644 --- a/discover/device-handler.c +++ b/discover/device-handler.c @@ -372,8 +372,14 @@ static void set_default(struct device_handler *handler, cur_prio = default_option_priority( handler->default_boot_option); - if (new_prio >= cur_prio) - return; + if (new_prio < cur_prio) { + handler->default_boot_option = opt; + /* extend the timeout a little, so the user sees some + * indication of the change */ + handler->sec_to_boot += 2; + } + + return; } handler->sec_to_boot = config_get()->autoboot_timeout_sec; -- 2.39.2