Hello Sascha, On Wed, Mar 11, 2020 at 03:27:46PM +0100, Sascha Hauer wrote: > +/** > + * slice_acquired: test if a slice is acquired > + * @slice: The slice to test > + * > + * This tests if a slice is acquired. Returns true if it is, false otherwise > + */ > +bool slice_acquired(struct slice *slice) > +{ > + struct slice_entry *se; > + int acquired = slice->acquired; > + bool ret = false; > + > + if (acquired > 0) > + return true; > + > + if (acquired < 0) { > + pr_err("Recursive dependency detected in slice %s\n", > + slice_name(slice)); > + panic("Cannot continue"); > + } > + > + slice->acquired = -1; > + > + list_for_each_entry(se, &slice->deps, list) > + if (slice_acquired(se->slice)) { > + ret = true; > + break; > + } > + > + slice->acquired = acquired; no need to restore slice->acquire from acquired since acquired must have been zero if we reach this line. Best regards, Daniel -- Dipl.-Math. Daniel Glöckner, emlix GmbH, http://www.emlix.com Fon +49 551 30664-0, Fax +49 551 30664-11, Gothaer Platz 3, 37083 Göttingen, Germany Sitz der Gesellschaft: Göttingen, Amtsgericht Göttingen HR B 3160 Geschäftsführung: Heike Jordan, Dr. Uwe Kracke Ust-IdNr.: DE 205 198 055 emlix - your embedded linux partner _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox