aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/kconfig/symbol.c
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/kconfig/symbol.c')
-rw-r--r--scripts/kconfig/symbol.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/scripts/kconfig/symbol.c b/scripts/kconfig/symbol.c
index affa52f5c651..10d96c4188dd 100644
--- a/scripts/kconfig/symbol.c
+++ b/scripts/kconfig/symbol.c
@@ -731,12 +731,12 @@ struct symbol *sym_check_deps(struct symbol *sym)
731 struct symbol *sym2; 731 struct symbol *sym2;
732 struct property *prop; 732 struct property *prop;
733 733
734 if (sym->flags & SYMBOL_CHECK_DONE)
735 return NULL;
736 if (sym->flags & SYMBOL_CHECK) { 734 if (sym->flags & SYMBOL_CHECK) {
737 printf("Warning! Found recursive dependency: %s", sym->name); 735 printf("Warning! Found recursive dependency: %s", sym->name);
738 return sym; 736 return sym;
739 } 737 }
738 if (sym->flags & SYMBOL_CHECKED)
739 return NULL;
740 740
741 sym->flags |= (SYMBOL_CHECK | SYMBOL_CHECKED); 741 sym->flags |= (SYMBOL_CHECK | SYMBOL_CHECKED);
742 sym2 = sym_check_expr_deps(sym->rev_dep.expr); 742 sym2 = sym_check_expr_deps(sym->rev_dep.expr);
@@ -756,8 +756,13 @@ struct symbol *sym_check_deps(struct symbol *sym)
756 goto out; 756 goto out;
757 } 757 }
758out: 758out:
759 if (sym2) 759 if (sym2) {
760 printf(" %s", sym->name); 760 printf(" %s", sym->name);
761 if (sym2 == sym) {
762 printf("\n");
763 sym2 = NULL;
764 }
765 }
761 sym->flags &= ~SYMBOL_CHECK; 766 sym->flags &= ~SYMBOL_CHECK;
762 return sym2; 767 return sym2;
763} 768}