aboutsummaryrefslogtreecommitdiffstats
path: root/extras/recipes-kernel/linux/linux-omap/linus/0029-kconfig-fix-undesirable-side-effect-of-adding-visibl.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extras/recipes-kernel/linux/linux-omap/linus/0029-kconfig-fix-undesirable-side-effect-of-adding-visibl.patch')
-rw-r--r--extras/recipes-kernel/linux/linux-omap/linus/0029-kconfig-fix-undesirable-side-effect-of-adding-visibl.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/extras/recipes-kernel/linux/linux-omap/linus/0029-kconfig-fix-undesirable-side-effect-of-adding-visibl.patch b/extras/recipes-kernel/linux/linux-omap/linus/0029-kconfig-fix-undesirable-side-effect-of-adding-visibl.patch
new file mode 100644
index 00000000..c1af0112
--- /dev/null
+++ b/extras/recipes-kernel/linux/linux-omap/linus/0029-kconfig-fix-undesirable-side-effect-of-adding-visibl.patch
@@ -0,0 +1,49 @@
+From 38f5b0c391281eded0e6e5b2bc75a28ae72d0abe Mon Sep 17 00:00:00 2001
+From: Jan Beulich <JBeulich@novell.com>
+Date: Thu, 9 Dec 2010 08:11:38 +0000
+Subject: [PATCH 29/65] kconfig: fix undesirable side effect of adding "visible" menu attribute
+
+This lead to non-selected, non-user-selectable options to be written
+out to .config. This is not only pointless, but also preventing the
+user to be prompted should any of those options eventually become
+visible (e.g. by de-selecting the *_AUTO options the "visible"
+attribute was added for.
+
+Furthermore it is quite logical for the "visible" attribute of a menu
+to control the visibility of all contained prompts, which is what the
+patch does.
+
+Signed-off-by: Jan Beulich <jbeulich@novell.com>
+Signed-off-by: Michal Marek <mmarek@suse.cz>
+---
+ scripts/kconfig/menu.c | 14 ++++++++++++++
+ 1 files changed, 14 insertions(+), 0 deletions(-)
+
+diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
+index b9d9aa1..5f77dcb 100644
+--- a/scripts/kconfig/menu.c
++++ b/scripts/kconfig/menu.c
+@@ -140,6 +140,20 @@ struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *e
+ }
+ if (current_entry->prompt && current_entry != &rootmenu)
+ prop_warn(prop, "prompt redefined");
++
++ /* Apply all upper menus' visibilities to actual prompts. */
++ if(type == P_PROMPT) {
++ struct menu *menu = current_entry;
++
++ while ((menu = menu->parent) != NULL) {
++ if (!menu->visibility)
++ continue;
++ prop->visible.expr
++ = expr_alloc_and(prop->visible.expr,
++ menu->visibility);
++ }
++ }
++
+ current_entry->prompt = prop;
+ }
+ prop->text = prompt;
+--
+1.6.6.1
+