-diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
-index 32e8c5a..8020453 100644
---- a/scripts/kconfig/Makefile
-+++ b/scripts/kconfig/Makefile
-@@ -24,6 +24,11 @@ oldconfig: $(obj)/conf
- silentoldconfig: $(obj)/conf
- $< -s $(Kconfig)
-
-+nonint_oldconfig: $(obj)/conf
-+ $< -b $(Kconfig)
-+loose_nonint_oldconfig: $(obj)/conf
-+ $< -B $(Kconfig)
-+
- # Create new linux.pot file
- # Adjust charset to UTF-8 in .po file to accept UTF-8 in Kconfig files
- # The symlink is used to repair a deficiency in arch/um
-diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
-index fda6313..ed33b66 100644
---- a/scripts/kconfig/conf.c
-+++ b/scripts/kconfig/conf.c
-@@ -22,6 +22,8 @@
+diff -Nurp linux-2.6.22.noarch.orig/scripts/kconfig/conf.c linux-2.6.22.noarch/scripts/kconfig/conf.c
+--- linux-2.6.22.noarch.orig/scripts/kconfig/conf.c 2007-10-11 20:51:33.000000000 +0200
++++ linux-2.6.22.noarch/scripts/kconfig/conf.c 2007-10-11 20:56:30.000000000 +0200
+@@ -21,6 +21,8 @@ enum {
ask_all,
ask_new,
ask_silent,
set_default,
set_yes,
set_mod,
-@@ -39,6 +41,8 @@
+@@ -37,6 +39,8 @@ static struct menu *rootEntry;
static char nohelp_text[] = N_("Sorry, no help available for this option yet.\n");
+static int return_value = 0;
+
- static const char *get_help(struct menu *menu)
+ static void strip(char *str)
{
- if (menu_has_help(menu))
-@@ -359,7 +363,10 @@
-
- switch (prop->type) {
- case P_MENU:
-- if (input_mode == ask_silent && rootEntry != menu) {
-+ if ((input_mode == ask_silent ||
-+ input_mode == dont_ask ||
-+ input_mode == dont_ask_dont_tell) &&
-+ rootEntry != menu) {
- check_conf(menu);
- return;
- }
-@@ -417,12 +424,21 @@
- if (sym && !sym_has_value(sym)) {
- if (sym_is_changable(sym) ||
- (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)) {
-+ if (input_mode == dont_ask ||
-+ input_mode == dont_ask_dont_tell) {
-+ if (input_mode == dont_ask &&
-+ sym->name && !sym_is_choice_value(sym)) {
-+ fprintf(stderr,"CONFIG_%s\n",sym->name);
-+ ++return_value;
-+ }
-+ } else {
+ char *p = str;
+@@ -103,6 +107,13 @@ static int conf_askvalue(struct symbol *
+ fflush(stdout);
+ fgets(line, 128, stdin);
+ return 1;
++ case dont_ask:
++ if (!sym_has_value(sym)) {
++ fprintf(stderr, "CONFIG_%s\n", sym->name);
++ return_value++;
++ }
++ case dont_ask_dont_tell:
++ return 1;
+ case set_default:
+ printf("%s\n", def);
+ return 1;
+@@ -349,6 +360,11 @@ static int conf_choice(struct menu *menu
+ printf("?");
+ printf("]: ");
+ switch (input_mode) {
++ case dont_ask:
++ case dont_ask_dont_tell:
++ cnt = def;
++ printf("%d\n", cnt);
++ break;
+ case ask_new:
+ case ask_silent:
+ if (!is_new) {
+@@ -485,6 +501,10 @@ static void check_conf(struct menu *menu
if (!conf_cnt++)
printf(_("*\n* Restart config...\n*\n"));
rootEntry = menu_get_parent_menu(menu);
++ if (input_mode == dont_ask
++ || input_mode == dont_ask_dont_tell)
++ fprintf(stderr,"CONFIG_%s\n",sym->name);
++ else
conf(rootEntry);
}
}
-+ }
-
- for (child = menu->list; child; child = child->next)
- check_conf(child);
-@@ -438,7 +454,7 @@
- bindtextdomain(PACKAGE, LOCALEDIR);
- textdomain(PACKAGE);
-
-- while ((opt = getopt(ac, av, "osdD:nmyrh")) != -1) {
-+ while ((opt = getopt(ac, av, "osbBdD:nmyrh")) != -1) {
- switch (opt) {
+@@ -504,6 +524,12 @@ int main(int ac, char **av)
case 'o':
- input_mode = ask_silent;
-@@ -447,6 +463,12 @@
- input_mode = ask_silent;
- sync_kconfig = 1;
+ input_mode = ask_new;
break;
+ case 'b':
+ input_mode = dont_ask;
+ case 'B':
+ input_mode = dont_ask_dont_tell;
+ break;
- case 'd':
- input_mode = set_default;
- break;
-@@ -510,6 +532,8 @@
- case ask_silent:
+ case 's':
+ input_mode = ask_silent;
+ valid_stdin = isatty(0) && isatty(1) && isatty(2);
+@@ -570,6 +596,8 @@ int main(int ac, char **av)
+ }
case ask_all:
case ask_new:
+ case dont_ask:
conf_read(NULL);
break;
case set_no:
-@@ -571,12 +595,16 @@
- conf(&rootmenu);
- input_mode = ask_silent;
- /* fall through */
-+ case dont_ask:
-+ case dont_ask_dont_tell:
- case ask_silent:
- /* Update until a loop caused no more changes */
- do {
- conf_cnt = 0;
- check_conf(&rootmenu);
-- } while (conf_cnt);
-+ } while (conf_cnt &&
-+ (input_mode != dont_ask &&
-+ input_mode != dont_ask_dont_tell));
- break;
+@@ -616,7 +644,8 @@ int main(int ac, char **av)
+ do {
+ conf_cnt = 0;
+ check_conf(&rootmenu);
+- } while (conf_cnt);
++ } while (conf_cnt && (input_mode != dont_ask
++ && input_mode != dont_ask_dont_tell));
+ if (conf_write(NULL)) {
+ fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n"));
+ return 1;
+@@ -627,5 +656,5 @@ skip_check:
+ return 1;
}
-@@ -598,5 +626,5 @@
- exit(1);
- }
- }
- return 0;
+ return return_value;
}
+diff -Nurp linux-2.6.22.noarch.orig/scripts/kconfig/Makefile linux-2.6.22.noarch/scripts/kconfig/Makefile
+--- linux-2.6.22.noarch.orig/scripts/kconfig/Makefile 2007-07-09 01:32:17.000000000 +0200
++++ linux-2.6.22.noarch/scripts/kconfig/Makefile 2007-10-11 20:52:11.000000000 +0200
+@@ -22,6 +22,11 @@ oldconfig: $(obj)/conf
+ silentoldconfig: $(obj)/conf
+ $< -s arch/$(ARCH)/Kconfig
+
++nonint_oldconfig: $(obj)/conf
++ $< -b arch/$(ARCH)/Kconfig
++loose_nonint_oldconfig: $(obj)/conf
++ $< -B arch/$(ARCH)/Kconfig
++
+ update-po-config: $(obj)/kxgettext
+ xgettext --default-domain=linux \
+ --add-comments --keyword=_ --keyword=N_ \