On Tue, Jan 14, 2020 at 06:10:43PM +0100, Laszlo Ersek wrote: > On 01/14/20 10:25, Gerd Hoffmann wrote: > > Call find_prio("HALT") only once, on first is_bootprio_strict() call. > > Store the result in a variable and reuse it on subsequent calls. > > > > Signed-off-by: Gerd Hoffmann <kra...@redhat.com> > > --- > > src/boot.c | 6 +++++- > > 1 file changed, 5 insertions(+), 1 deletion(-) > > > > diff --git a/src/boot.c b/src/boot.c > > index 5182ab426b9f..afeb36a3319a 100644 > > --- a/src/boot.c > > +++ b/src/boot.c > > @@ -297,7 +297,11 @@ find_prio(const char *glob) > > > > u8 is_bootprio_strict(void) > > { > > - return find_prio("HALT") >= 0; > > + static int prio_halt = -2; > > + > > + if (prio_halt == -2) > > + prio_halt = find_prio("HALT"); > > + return prio_halt >= 0; > > } > > > > int bootprio_find_pci_device(struct pci_device *pci) > > > > General question. Is it safe to use static variables in this file with > initializers, i.e. without assigning their initial values through > statements?
I'm not aware of any issues with that. It should work. > What happens at reset? In particular, the "bootorder" fw_cfg file may > change across reset. (I'm not certain if specifically "HALT" can change > in "bootorder" across reset.) On a SeaBIOS reset it should get reset to -2 as far as I'm aware. -Kevin _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-le...@seabios.org