diff options
Diffstat (limited to 'scripts/kconfig/symbol.c')
-rw-r--r-- | scripts/kconfig/symbol.c | 11 |
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 | } |
758 | out: | 758 | out: |
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 | } |