提交 2c95523c 编写于 作者: L Linus Torvalds

Merge branch 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild

Pull kbuild fixes from Michal Marek:
 "There is one fix for a kbuild regression, plus three kconfig fixes for
  bugs that have alway been there, but are simple enough to be fixed in
  an -rc"

* 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
  kconfig/menu.c: fix multiple references to expressions in menu_add_prop()
  mconf: handle keys in empty dialogs
  kbuild: Don't assume dts files live in arch/*/boot/dts
  scripts/config: fix assignment of parameters for short version of --*-after options
...@@ -264,7 +264,7 @@ $(obj)/%.dtb.S: $(obj)/%.dtb ...@@ -264,7 +264,7 @@ $(obj)/%.dtb.S: $(obj)/%.dtb
quiet_cmd_dtc = DTC $@ quiet_cmd_dtc = DTC $@
cmd_dtc = $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ cmd_dtc = $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
$(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 \ $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 \
-i $(srctree)/arch/$(SRCARCH)/boot/dts $(DTC_FLAGS) \ -i $(dir $<) $(DTC_FLAGS) \
-d $(depfile).dtc $(dtc-tmp) ; \ -d $(depfile).dtc $(dtc-tmp) ; \
cat $(depfile).pre $(depfile).dtc > $(depfile) cat $(depfile).pre $(depfile).dtc > $(depfile)
......
...@@ -105,7 +105,7 @@ while [ "$1" != "" ] ; do ...@@ -105,7 +105,7 @@ while [ "$1" != "" ] ; do
;; ;;
--refresh) --refresh)
;; ;;
--*-after) --*-after|-E|-D|-M)
checkarg "$1" checkarg "$1"
A=$ARG A=$ARG
checkarg "$2" checkarg "$2"
......
...@@ -303,10 +303,11 @@ int dialog_menu(const char *title, const char *prompt, ...@@ -303,10 +303,11 @@ int dialog_menu(const char *title, const char *prompt,
} }
} }
if (i < max_choice || if (item_count() != 0 &&
(i < max_choice ||
key == KEY_UP || key == KEY_DOWN || key == KEY_UP || key == KEY_DOWN ||
key == '-' || key == '+' || key == '-' || key == '+' ||
key == KEY_PPAGE || key == KEY_NPAGE) { key == KEY_PPAGE || key == KEY_NPAGE)) {
/* Remove highligt of current item */ /* Remove highligt of current item */
print_item(scroll + choice, choice, FALSE); print_item(scroll + choice, choice, FALSE);
......
...@@ -670,11 +670,12 @@ static void conf(struct menu *menu, struct menu *active_menu) ...@@ -670,11 +670,12 @@ static void conf(struct menu *menu, struct menu *active_menu)
active_menu, &s_scroll); active_menu, &s_scroll);
if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL) if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL)
break; break;
if (item_count() != 0) {
if (!item_activate_selected()) if (!item_activate_selected())
continue; continue;
if (!item_tag()) if (!item_tag())
continue; continue;
}
submenu = item_data(); submenu = item_data();
active_menu = item_data(); active_menu = item_data();
if (submenu) if (submenu)
......
...@@ -146,11 +146,24 @@ struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *e ...@@ -146,11 +146,24 @@ struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *e
struct menu *menu = current_entry; struct menu *menu = current_entry;
while ((menu = menu->parent) != NULL) { while ((menu = menu->parent) != NULL) {
struct expr *dup_expr;
if (!menu->visibility) if (!menu->visibility)
continue; continue;
/*
* Do not add a reference to the
* menu's visibility expression but
* use a copy of it. Otherwise the
* expression reduction functions
* will modify expressions that have
* multiple references which can
* cause unwanted side effects.
*/
dup_expr = expr_copy(menu->visibility);
prop->visible.expr prop->visible.expr
= expr_alloc_and(prop->visible.expr, = expr_alloc_and(prop->visible.expr,
menu->visibility); dup_expr);
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册