aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/Kbuild.include5
-rw-r--r--scripts/Makefile.lib5
-rwxr-xr-x[-rw-r--r--]scripts/bloat-o-meter0
-rwxr-xr-x[-rw-r--r--]scripts/checkstack.pl0
-rw-r--r--scripts/gen_initramfs_list.sh225
-rw-r--r--scripts/kconfig/conf.c24
-rw-r--r--scripts/kconfig/confdata.c2
-rw-r--r--scripts/kconfig/lxdialog/checklist.c19
-rw-r--r--scripts/kconfig/lxdialog/menubox.c19
-rw-r--r--scripts/mod/modpost.c15
-rwxr-xr-x[-rw-r--r--]scripts/namespace.pl0
-rwxr-xr-x[-rw-r--r--]scripts/show_delta0
-rwxr-xr-xscripts/ver_linux4
13 files changed, 194 insertions, 124 deletions
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index 59620b1554e0..b0d067be7390 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -87,6 +87,11 @@ cc-ifversion = $(shell if [ $(call cc-version, $(CC)) $(1) $(2) ]; then \
87# $(Q)$(MAKE) $(build)=dir 87# $(Q)$(MAKE) $(build)=dir
88build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj 88build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj
89 89
90# Prefix -I with $(srctree) if it is not an absolute path
91addtree = $(if $(filter-out -I/%,$(1)),$(patsubst -I%,-I$(srctree)/%,$(1))) $(1)
92# Find all -I options and call addtree
93flags = $(foreach o,$($(1)),$(if $(filter -I%,$(o)),$(call addtree,$(o)),$(o)))
94
90# If quiet is set, only print short version of command 95# If quiet is set, only print short version of command
91cmd = @$(echo-cmd) $(cmd_$(1)) 96cmd = @$(echo-cmd) $(cmd_$(1))
92 97
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 550798f57da5..2cb4935e85d1 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -99,11 +99,6 @@ __a_flags = $(_a_flags)
99__cpp_flags = $(_cpp_flags) 99__cpp_flags = $(_cpp_flags)
100else 100else
101 101
102# Prefix -I with $(srctree) if it is not an absolute path
103addtree = $(if $(filter-out -I/%,$(1)),$(patsubst -I%,-I$(srctree)/%,$(1))) $(1)
104# Find all -I options and call addtree
105flags = $(foreach o,$($(1)),$(if $(filter -I%,$(o)),$(call addtree,$(o)),$(o)))
106
107# -I$(obj) locates generated .h files 102# -I$(obj) locates generated .h files
108# $(call addtree,-I$(obj)) locates .h files in srctree, from generated .c files 103# $(call addtree,-I$(obj)) locates .h files in srctree, from generated .c files
109# and locates generated .h files 104# and locates generated .h files
diff --git a/scripts/bloat-o-meter b/scripts/bloat-o-meter
index 75f21d843c1d..75f21d843c1d 100644..100755
--- a/scripts/bloat-o-meter
+++ b/scripts/bloat-o-meter
diff --git a/scripts/checkstack.pl b/scripts/checkstack.pl
index dadfa20ffec0..dadfa20ffec0 100644..100755
--- a/scripts/checkstack.pl
+++ b/scripts/checkstack.pl
diff --git a/scripts/gen_initramfs_list.sh b/scripts/gen_initramfs_list.sh
index 6d411169bfa6..56b3bed1108f 100644
--- a/scripts/gen_initramfs_list.sh
+++ b/scripts/gen_initramfs_list.sh
@@ -1,22 +1,55 @@
1#!/bin/bash 1#!/bin/bash
2# Copyright (C) Martin Schlemmer <azarah@nosferatu.za.org> 2# Copyright (C) Martin Schlemmer <azarah@nosferatu.za.org>
3# Released under the terms of the GNU GPL 3# Copyright (c) 2006 Sam Ravnborg <sam@ravnborg.org>
4#
5# Generate a newline separated list of entries from the file/directory
6# supplied as an argument.
7#
8# If a file/directory is not supplied then generate a small dummy file.
9# 4#
10# The output is suitable for gen_init_cpio built from usr/gen_init_cpio.c. 5# Released under the terms of the GNU GPL
11# 6#
7# Generate a cpio packed initramfs. It uses gen_init_cpio to generate
8# the cpio archive, and gzip to pack it.
9# The script may also be used to generate the inputfile used for gen_init_cpio
10# This script assumes that gen_init_cpio is located in usr/ directory
11
12# error out on errors
13set -e
14
15usage() {
16cat << EOF
17Usage:
18$0 [-o <file>] [-u <uid>] [-g <gid>] {-d | <cpio_source>} ...
19 -o <file> Create gzipped initramfs file named <file> using
20 gen_init_cpio and gzip
21 -u <uid> User ID to map to user ID 0 (root).
22 <uid> is only meaningful if <cpio_source>
23 is a directory.
24 -g <gid> Group ID to map to group ID 0 (root).
25 <gid> is only meaningful if <cpio_source>
26 is a directory.
27 <cpio_source> File list or directory for cpio archive.
28 If <cpio_source> is a .cpio file it will be used
29 as direct input to initramfs.
30 -d Output the default cpio list.
31
32All options except -o and -l may be repeated and are interpreted
33sequentially and immediately. -u and -g states are preserved across
34<cpio_source> options so an explicit "-u 0 -g 0" is required
35to reset the root/group mapping.
36EOF
37}
38
39list_default_initramfs() {
40 # echo usr/kinit/kinit
41 :
42}
12 43
13default_initramfs() { 44default_initramfs() {
14 cat <<-EOF 45 cat <<-EOF >> ${output}
15 # This is a very simple, default initramfs 46 # This is a very simple, default initramfs
16 47
17 dir /dev 0755 0 0 48 dir /dev 0755 0 0
18 nod /dev/console 0600 0 0 c 5 1 49 nod /dev/console 0600 0 0 c 5 1
19 dir /root 0700 0 0 50 dir /root 0700 0 0
51 # file /kinit usr/kinit/kinit 0755 0 0
52 # slink /init kinit 0755 0 0
20 EOF 53 EOF
21} 54}
22 55
@@ -42,18 +75,28 @@ filetype() {
42 return 0 75 return 0
43} 76}
44 77
78list_print_mtime() {
79 :
80}
81
45print_mtime() { 82print_mtime() {
46 local argv1="$1"
47 local my_mtime="0" 83 local my_mtime="0"
48 84
49 if [ -e "${argv1}" ]; then 85 if [ -e "$1" ]; then
50 my_mtime=$(find "${argv1}" -printf "%T@\n" | sort -r | head -n 1) 86 my_mtime=$(find "$1" -printf "%T@\n" | sort -r | head -n 1)
51 fi 87 fi
52 88
53 echo "# Last modified: ${my_mtime}" 89 echo "# Last modified: ${my_mtime}" >> ${output}
54 echo 90 echo "" >> ${output}
91}
92
93list_parse() {
94 echo "$1 \\"
55} 95}
56 96
97# for each file print a line in following format
98# <filetype> <name> <path to file> <octal mode> <uid> <gid>
99# for links, devices etc the format differs. See gen_init_cpio for details
57parse() { 100parse() {
58 local location="$1" 101 local location="$1"
59 local name="${location/${srcdir}//}" 102 local name="${location/${srcdir}//}"
@@ -99,80 +142,112 @@ parse() {
99 ;; 142 ;;
100 esac 143 esac
101 144
102 echo "${str}" 145 echo "${str}" >> ${output}
103 146
104 return 0 147 return 0
105} 148}
106 149
107usage() { 150unknown_option() {
108 printf "Usage:\n" 151 printf "ERROR: unknown option \"$arg\"\n" >&2
109 printf "$0 [ [-u <root_uid>] [-g <root_gid>] [-d | <cpio_source>] ] . . .\n" 152 printf "If the filename validly begins with '-', " >&2
110 printf "\n" 153 printf "then it must be prefixed\n" >&2
111 printf -- "-u <root_uid> User ID to map to user ID 0 (root).\n" 154 printf "by './' so that it won't be interpreted as an option." >&2
112 printf " <root_uid> is only meaningful if <cpio_source>\n" 155 printf "\n" >&2
113 printf " is a directory.\n" 156 usage >&2
114 printf -- "-g <root_gid> Group ID to map to group ID 0 (root).\n" 157 exit 1
115 printf " <root_gid> is only meaningful if <cpio_source>\n" 158}
116 printf " is a directory.\n" 159
117 printf "<cpio_source> File list or directory for cpio archive.\n" 160list_header() {
118 printf " If <cpio_source> is not provided then a\n" 161 echo "deps_initramfs := \\"
119 printf " a default list will be output.\n" 162}
120 printf -- "-d Output the default cpio list. If no <cpio_source>\n" 163
121 printf " is given then the default cpio list will be output.\n" 164header() {
122 printf "\n" 165 printf "\n#####################\n# $1\n" >> ${output}
123 printf "All options may be repeated and are interpreted sequentially\n" 166}
124 printf "and immediately. -u and -g states are preserved across\n" 167
125 printf "<cpio_source> options so an explicit \"-u 0 -g 0\" is required\n" 168# process one directory (incl sub-directories)
126 printf "to reset the root/group mapping.\n" 169dir_filelist() {
170 ${dep_list}header "$1"
171
172 srcdir=$(echo "$1" | sed -e 's://*:/:g')
173 dirlist=$(find "${srcdir}" -printf "%p %m %U %G\n" 2>/dev/null)
174
175 # If $dirlist is only one line, then the directory is empty
176 if [ "$(echo "${dirlist}" | wc -l)" -gt 1 ]; then
177 ${dep_list}print_mtime "$1"
178
179 echo "${dirlist}" | \
180 while read x; do
181 ${dep_list}parse ${x}
182 done
183 fi
127} 184}
128 185
129build_list() { 186# if only one file is specified and it is .cpio file then use it direct as fs
130 printf "\n#####################\n# $cpio_source\n" 187# if a directory is specified then add all files in given direcotry to fs
131 188# if a regular file is specified assume it is in gen_initramfs format
132 if [ -f "$cpio_source" ]; then 189input_file() {
133 print_mtime "$cpio_source" 190 source="$1"
134 cat "$cpio_source" 191 if [ -f "$1" ]; then
135 elif [ -d "$cpio_source" ]; then 192 ${dep_list}header "$1"
136 srcdir=$(echo "$cpio_source" | sed -e 's://*:/:g') 193 is_cpio="$(echo "$1" | sed 's/^.*\.cpio/cpio/')"
137 dirlist=$(find "${srcdir}" -printf "%p %m %U %G\n" 2>/dev/null) 194 if [ $2 -eq 0 -a ${is_cpio} == "cpio" ]; then
138 195 cpio_file=$1
139 # If $dirlist is only one line, then the directory is empty 196 [ ! -z ${dep_list} ] && echo "$1"
140 if [ "$(echo "${dirlist}" | wc -l)" -gt 1 ]; then 197 return 0
141 print_mtime "$cpio_source" 198 fi
142 199 if [ -z ${dep_list} ]; then
143 echo "${dirlist}" | \ 200 print_mtime "$1" >> ${output}
144 while read x; do 201 cat "$1" >> ${output}
145 parse ${x}
146 done
147 else 202 else
148 # Failsafe in case directory is empty 203 grep ^file "$1" | cut -d ' ' -f 3
149 default_initramfs
150 fi 204 fi
205 elif [ -d "$1" ]; then
206 dir_filelist "$1"
151 else 207 else
152 echo " $0: Cannot open '$cpio_source'" >&2 208 echo " ${prog}: Cannot open '$1'" >&2
153 exit 1 209 exit 1
154 fi 210 fi
155} 211}
156 212
157 213prog=$0
158root_uid=0 214root_uid=0
159root_gid=0 215root_gid=0
216dep_list=
217cpio_file=
218cpio_list=
219output="/dev/stdout"
220output_file=""
160 221
222arg="$1"
223case "$arg" in
224 "-l") # files included in initramfs - used by kbuild
225 dep_list="list_"
226 shift
227 ;;
228 "-o") # generate gzipped cpio image named $1
229 shift
230 output_file="$1"
231 cpio_list="$(mktemp ${TMPDIR:-/tmp}/cpiolist.XXXXXX)"
232 output=${cpio_list}
233 shift
234 ;;
235esac
161while [ $# -gt 0 ]; do 236while [ $# -gt 0 ]; do
162 arg="$1" 237 arg="$1"
163 shift 238 shift
164 case "$arg" in 239 case "$arg" in
165 "-u") 240 "-u") # map $1 to uid=0 (root)
166 root_uid="$1" 241 root_uid="$1"
167 shift 242 shift
168 ;; 243 ;;
169 "-g") 244 "-g") # map $1 to gid=0 (root)
170 root_gid="$1" 245 root_gid="$1"
171 shift 246 shift
172 ;; 247 ;;
173 "-d") 248 "-d") # display default initramfs list
174 default_list="$arg" 249 default_list="$arg"
175 default_initramfs 250 ${dep_list}default_initramfs
176 ;; 251 ;;
177 "-h") 252 "-h")
178 usage 253 usage
@@ -181,23 +256,27 @@ while [ $# -gt 0 ]; do
181 *) 256 *)
182 case "$arg" in 257 case "$arg" in
183 "-"*) 258 "-"*)
184 printf "ERROR: unknown option \"$arg\"\n" >&2 259 unknown_option
185 printf "If the filename validly begins with '-', then it must be prefixed\n" >&2
186 printf "by './' so that it won't be interpreted as an option." >&2
187 printf "\n" >&2
188 usage >&2
189 exit 1
190 ;; 260 ;;
191 *) 261 *) # input file/dir - process it
192 cpio_source="$arg" 262 input_file "$arg" "$#"
193 build_list
194 ;; 263 ;;
195 esac 264 esac
196 ;; 265 ;;
197 esac 266 esac
198done 267done
199 268
200# spit out the default cpio list if a source hasn't been specified 269# If output_file is set we will generate cpio archive and gzip it
201[ -z "$cpio_source" -a -z "$default_list" ] && default_initramfs 270# we are carefull to delete tmp files
202 271if [ ! -z ${output_file} ]; then
272 if [ -z ${cpio_file} ]; then
273 cpio_tfile="$(mktemp ${TMPDIR:-/tmp}/cpiofile.XXXXXX)"
274 usr/gen_init_cpio ${cpio_list} > ${cpio_tfile}
275 else
276 cpio_tfile=${cpio_file}
277 fi
278 rm ${cpio_list}
279 cat ${cpio_tfile} | gzip -f -9 - > ${output_file}
280 [ -z ${cpio_file} ] && rm ${cpio_tfile}
281fi
203exit 0 282exit 0
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index 10eeae53d827..8012d1076876 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -5,6 +5,7 @@
5 5
6#include <ctype.h> 6#include <ctype.h>
7#include <stdlib.h> 7#include <stdlib.h>
8#include <stdio.h>
8#include <string.h> 9#include <string.h>
9#include <unistd.h> 10#include <unistd.h>
10#include <time.h> 11#include <time.h>
@@ -63,20 +64,6 @@ static void check_stdin(void)
63 } 64 }
64} 65}
65 66
66static char *fgets_check_stream(char *s, int size, FILE *stream)
67{
68 char *ret = fgets(s, size, stream);
69
70 if (ret == NULL && feof(stream)) {
71 printf(_("aborted!\n\n"));
72 printf(_("Console input is closed. "));
73 printf(_("Run 'make oldconfig' to update configuration.\n\n"));
74 exit(1);
75 }
76
77 return ret;
78}
79
80static void conf_askvalue(struct symbol *sym, const char *def) 67static void conf_askvalue(struct symbol *sym, const char *def)
81{ 68{
82 enum symbol_type type = sym_get_type(sym); 69 enum symbol_type type = sym_get_type(sym);
@@ -114,7 +101,7 @@ static void conf_askvalue(struct symbol *sym, const char *def)
114 check_stdin(); 101 check_stdin();
115 case ask_all: 102 case ask_all:
116 fflush(stdout); 103 fflush(stdout);
117 fgets_check_stream(line, 128, stdin); 104 fgets(line, 128, stdin);
118 return; 105 return;
119 case set_default: 106 case set_default:
120 printf("%s\n", def); 107 printf("%s\n", def);
@@ -328,8 +315,7 @@ static int conf_choice(struct menu *menu)
328 printf("%*s%s\n", indent - 1, "", menu_get_prompt(menu)); 315 printf("%*s%s\n", indent - 1, "", menu_get_prompt(menu));
329 def_sym = sym_get_choice_value(sym); 316 def_sym = sym_get_choice_value(sym);
330 cnt = def = 0; 317 cnt = def = 0;
331 line[0] = '0'; 318 line[0] = 0;
332 line[1] = 0;
333 for (child = menu->list; child; child = child->next) { 319 for (child = menu->list; child; child = child->next) {
334 if (!menu_is_visible(child)) 320 if (!menu_is_visible(child))
335 continue; 321 continue;
@@ -370,7 +356,7 @@ static int conf_choice(struct menu *menu)
370 check_stdin(); 356 check_stdin();
371 case ask_all: 357 case ask_all:
372 fflush(stdout); 358 fflush(stdout);
373 fgets_check_stream(line, 128, stdin); 359 fgets(line, 128, stdin);
374 strip(line); 360 strip(line);
375 if (line[0] == '?') { 361 if (line[0] == '?') {
376 printf("\n%s\n", menu->sym->help ? 362 printf("\n%s\n", menu->sym->help ?
@@ -546,7 +532,7 @@ int main(int ac, char **av)
546 break; 532 break;
547 case 'h': 533 case 'h':
548 case '?': 534 case '?':
549 printf("%s [-o|-s] config\n", av[0]); 535 fprintf(stderr, "See README for usage info\n");
550 exit(0); 536 exit(0);
551 } 537 }
552 } 538 }
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index 1b8882ddbc74..1b5df589f3ae 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -325,7 +325,7 @@ int conf_read(const char *name)
325 sym->flags |= e->right.sym->flags & SYMBOL_NEW; 325 sym->flags |= e->right.sym->flags & SYMBOL_NEW;
326 } 326 }
327 327
328 sym_change_count = conf_warnings && conf_unsaved; 328 sym_change_count = conf_warnings || conf_unsaved;
329 329
330 return 0; 330 return 0;
331} 331}
diff --git a/scripts/kconfig/lxdialog/checklist.c b/scripts/kconfig/lxdialog/checklist.c
index db07ae73e051..be0200e9cdaf 100644
--- a/scripts/kconfig/lxdialog/checklist.c
+++ b/scripts/kconfig/lxdialog/checklist.c
@@ -196,8 +196,8 @@ int dialog_checklist(const char *title, const char *prompt, int height,
196 196
197 print_buttons(dialog, height, width, 0); 197 print_buttons(dialog, height, width, 0);
198 198
199 wnoutrefresh(list);
200 wnoutrefresh(dialog); 199 wnoutrefresh(dialog);
200 wnoutrefresh(list);
201 doupdate(); 201 doupdate();
202 202
203 while (key != ESC) { 203 while (key != ESC) {
@@ -225,12 +225,11 @@ int dialog_checklist(const char *title, const char *prompt, int height,
225 } 225 }
226 scroll--; 226 scroll--;
227 print_item(list, items[scroll * 3 + 1], status[scroll], 0, TRUE); 227 print_item(list, items[scroll * 3 + 1], status[scroll], 0, TRUE);
228 wnoutrefresh(list);
229
230 print_arrows(dialog, choice, item_no, 228 print_arrows(dialog, choice, item_no,
231 scroll, box_y, box_x + check_x + 5, list_height); 229 scroll, box_y, box_x + check_x + 5, list_height);
232 230
233 wrefresh(dialog); 231 wnoutrefresh(dialog);
232 wrefresh(list);
234 233
235 continue; /* wait for another key press */ 234 continue; /* wait for another key press */
236 } else 235 } else
@@ -252,12 +251,12 @@ int dialog_checklist(const char *title, const char *prompt, int height,
252 scroll++; 251 scroll++;
253 print_item(list, items[(scroll + max_choice - 1) * 3 + 1], 252 print_item(list, items[(scroll + max_choice - 1) * 3 + 1],
254 status[scroll + max_choice - 1], max_choice - 1, TRUE); 253 status[scroll + max_choice - 1], max_choice - 1, TRUE);
255 wnoutrefresh(list);
256 254
257 print_arrows(dialog, choice, item_no, 255 print_arrows(dialog, choice, item_no,
258 scroll, box_y, box_x + check_x + 5, list_height); 256 scroll, box_y, box_x + check_x + 5, list_height);
259 257
260 wrefresh(dialog); 258 wnoutrefresh(dialog);
259 wrefresh(list);
261 260
262 continue; /* wait for another key press */ 261 continue; /* wait for another key press */
263 } else 262 } else
@@ -271,8 +270,8 @@ int dialog_checklist(const char *title, const char *prompt, int height,
271 choice = i; 270 choice = i;
272 print_item(list, items[(scroll + choice) * 3 + 1], 271 print_item(list, items[(scroll + choice) * 3 + 1],
273 status[scroll + choice], choice, TRUE); 272 status[scroll + choice], choice, TRUE);
274 wnoutrefresh(list); 273 wnoutrefresh(dialog);
275 wrefresh(dialog); 274 wrefresh(list);
276 } 275 }
277 continue; /* wait for another key press */ 276 continue; /* wait for another key press */
278 } 277 }
@@ -306,8 +305,8 @@ int dialog_checklist(const char *title, const char *prompt, int height,
306 print_item(list, items[(scroll + i) * 3 + 1], 305 print_item(list, items[(scroll + i) * 3 + 1],
307 status[scroll + i], i, i == choice); 306 status[scroll + i], i, i == choice);
308 } 307 }
309 wnoutrefresh(list); 308 wnoutrefresh(dialog);
310 wrefresh(dialog); 309 wrefresh(list);
311 310
312 for (i = 0; i < item_no; i++) 311 for (i = 0; i < item_no; i++)
313 if (status[i]) 312 if (status[i])
diff --git a/scripts/kconfig/lxdialog/menubox.c b/scripts/kconfig/lxdialog/menubox.c
index 09512b544375..bf8052f4fd4a 100644
--- a/scripts/kconfig/lxdialog/menubox.c
+++ b/scripts/kconfig/lxdialog/menubox.c
@@ -58,8 +58,7 @@
58 58
59#include "dialog.h" 59#include "dialog.h"
60 60
61#define ITEM_IDENT 1 /* Indent of menu entries. Fixed for all menus */ 61static int menu_width, item_x;
62static int menu_width;
63 62
64/* 63/*
65 * Print menu item 64 * Print menu item
@@ -70,7 +69,7 @@ static void do_print_item(WINDOW * win, const char *item, int choice,
70 int j; 69 int j;
71 char *menu_item = malloc(menu_width + 1); 70 char *menu_item = malloc(menu_width + 1);
72 71
73 strncpy(menu_item, item, menu_width - ITEM_IDENT); 72 strncpy(menu_item, item, menu_width - item_x);
74 menu_item[menu_width] = 0; 73 menu_item[menu_width] = 0;
75 j = first_alpha(menu_item, "YyNnMmHh"); 74 j = first_alpha(menu_item, "YyNnMmHh");
76 75
@@ -87,13 +86,13 @@ static void do_print_item(WINDOW * win, const char *item, int choice,
87 wclrtoeol(win); 86 wclrtoeol(win);
88#endif 87#endif
89 wattrset(win, selected ? item_selected_attr : item_attr); 88 wattrset(win, selected ? item_selected_attr : item_attr);
90 mvwaddstr(win, choice, ITEM_IDENT, menu_item); 89 mvwaddstr(win, choice, item_x, menu_item);
91 if (hotkey) { 90 if (hotkey) {
92 wattrset(win, selected ? tag_key_selected_attr : tag_key_attr); 91 wattrset(win, selected ? tag_key_selected_attr : tag_key_attr);
93 mvwaddch(win, choice, ITEM_IDENT + j, menu_item[j]); 92 mvwaddch(win, choice, item_x + j, menu_item[j]);
94 } 93 }
95 if (selected) { 94 if (selected) {
96 wmove(win, choice, ITEM_IDENT + 1); 95 wmove(win, choice, item_x + 1);
97 } 96 }
98 free(menu_item); 97 free(menu_item);
99 wrefresh(win); 98 wrefresh(win);
@@ -227,6 +226,8 @@ int dialog_menu(const char *title, const char *prompt, int height, int width,
227 draw_box(dialog, box_y, box_x, menu_height + 2, menu_width + 2, 226 draw_box(dialog, box_y, box_x, menu_height + 2, menu_width + 2,
228 menubox_border_attr, menubox_attr); 227 menubox_border_attr, menubox_attr);
229 228
229 item_x = (menu_width - 70) / 2;
230
230 /* Set choice to default item */ 231 /* Set choice to default item */
231 for (i = 0; i < item_no; i++) 232 for (i = 0; i < item_no; i++)
232 if (strcmp(current, items[i * 2]) == 0) 233 if (strcmp(current, items[i * 2]) == 0)
@@ -263,10 +264,10 @@ int dialog_menu(const char *title, const char *prompt, int height, int width,
263 wnoutrefresh(menu); 264 wnoutrefresh(menu);
264 265
265 print_arrows(dialog, item_no, scroll, 266 print_arrows(dialog, item_no, scroll,
266 box_y, box_x + ITEM_IDENT + 1, menu_height); 267 box_y, box_x + item_x + 1, menu_height);
267 268
268 print_buttons(dialog, height, width, 0); 269 print_buttons(dialog, height, width, 0);
269 wmove(menu, choice, ITEM_IDENT + 1); 270 wmove(menu, choice, item_x + 1);
270 wrefresh(menu); 271 wrefresh(menu);
271 272
272 while (key != ESC) { 273 while (key != ESC) {
@@ -349,7 +350,7 @@ int dialog_menu(const char *title, const char *prompt, int height, int width,
349 print_item(scroll + choice, choice, TRUE); 350 print_item(scroll + choice, choice, TRUE);
350 351
351 print_arrows(dialog, item_no, scroll, 352 print_arrows(dialog, item_no, scroll,
352 box_y, box_x + ITEM_IDENT + 1, menu_height); 353 box_y, box_x + item_x + 1, menu_height);
353 354
354 wnoutrefresh(dialog); 355 wnoutrefresh(dialog);
355 wrefresh(menu); 356 wrefresh(menu);
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 0b92ddff26fd..cd00e9f07589 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -492,17 +492,19 @@ static int strrcmp(const char *s, const char *sub)
492 * These functions may often be marked __init and we do not want to 492 * These functions may often be marked __init and we do not want to
493 * warn here. 493 * warn here.
494 * the pattern is identified by: 494 * the pattern is identified by:
495 * tosec = .init.text | .exit.text 495 * tosec = .init.text | .exit.text | .init.data
496 * fromsec = .data 496 * fromsec = .data
497 * atsym = *_driver, *_ops, *_probe, *probe_one 497 * atsym = *_driver, *_template, *_sht, *_ops, *_probe, *probe_one
498 **/ 498 **/
499static int secref_whitelist(const char *tosec, const char *fromsec, 499static int secref_whitelist(const char *tosec, const char *fromsec,
500 const char *atsym) 500 const char *atsym)
501{ 501{
502 int f1 = 1, f2 = 1; 502 int f1 = 1, f2 = 1;
503 const char **s; 503 const char **s;
504 const char *pat2sym[] = { 504 const char *pat2sym[] = {
505 "_driver", 505 "_driver",
506 "_template", /* scsi uses *_template a lot */
507 "_sht", /* scsi also used *_sht to some extent */
506 "_ops", 508 "_ops",
507 "_probe", 509 "_probe",
508 "_probe_one", 510 "_probe_one",
@@ -522,7 +524,8 @@ static int secref_whitelist(const char *tosec, const char *fromsec,
522 524
523 /* Check for pattern 2 */ 525 /* Check for pattern 2 */
524 if ((strcmp(tosec, ".init.text") != 0) && 526 if ((strcmp(tosec, ".init.text") != 0) &&
525 (strcmp(tosec, ".exit.text") != 0)) 527 (strcmp(tosec, ".exit.text") != 0) &&
528 (strcmp(tosec, ".init.data") != 0))
526 f2 = 0; 529 f2 = 0;
527 if (strcmp(fromsec, ".data") != 0) 530 if (strcmp(fromsec, ".data") != 0)
528 f2 = 0; 531 f2 = 0;
@@ -658,7 +661,7 @@ static void warn_sec_mismatch(const char *modname, const char *fromsec,
658 warn("%s - Section mismatch: reference to %s:%s from %s " 661 warn("%s - Section mismatch: reference to %s:%s from %s "
659 "before '%s' (at offset -0x%llx)\n", 662 "before '%s' (at offset -0x%llx)\n",
660 modname, secname, refsymname, fromsec, 663 modname, secname, refsymname, fromsec,
661 elf->strtab + before->st_name, 664 elf->strtab + after->st_name,
662 (long long)r.r_offset); 665 (long long)r.r_offset);
663 } else { 666 } else {
664 warn("%s - Section mismatch: reference to %s:%s from %s " 667 warn("%s - Section mismatch: reference to %s:%s from %s "
@@ -820,6 +823,7 @@ static int exit_section(const char *name)
820 * For our future {in}sanity, add a comment that this is the ppc .opd 823 * For our future {in}sanity, add a comment that this is the ppc .opd
821 * section, not the ia64 .opd section. 824 * section, not the ia64 .opd section.
822 * ia64 .opd should not point to discarded sections. 825 * ia64 .opd should not point to discarded sections.
826 * [.rodata] like for .init.text we ignore .rodata references -same reason
823 **/ 827 **/
824static int exit_section_ref_ok(const char *name) 828static int exit_section_ref_ok(const char *name)
825{ 829{
@@ -829,6 +833,7 @@ static int exit_section_ref_ok(const char *name)
829 ".exit.text", 833 ".exit.text",
830 ".exit.data", 834 ".exit.data",
831 ".init.text", 835 ".init.text",
836 ".rodata",
832 ".opd", /* See comment [OPD] */ 837 ".opd", /* See comment [OPD] */
833 ".toc1", /* used by ppc64 */ 838 ".toc1", /* used by ppc64 */
834 ".altinstructions", 839 ".altinstructions",
diff --git a/scripts/namespace.pl b/scripts/namespace.pl
index f34373853ef8..f34373853ef8 100644..100755
--- a/scripts/namespace.pl
+++ b/scripts/namespace.pl
diff --git a/scripts/show_delta b/scripts/show_delta
index 48a706ab3d0c..48a706ab3d0c 100644..100755
--- a/scripts/show_delta
+++ b/scripts/show_delta
diff --git a/scripts/ver_linux b/scripts/ver_linux
index beb43ef7f761..84999f69773d 100755
--- a/scripts/ver_linux
+++ b/scripts/ver_linux
@@ -39,10 +39,10 @@ tune2fs 2>&1 | grep "^tune2fs" | sed 's/,//' | awk \
39fsck.jfs -V 2>&1 | grep version | sed 's/,//' | awk \ 39fsck.jfs -V 2>&1 | grep version | sed 's/,//' | awk \
40'NR==1 {print "jfsutils ", $3}' 40'NR==1 {print "jfsutils ", $3}'
41 41
42reiserfsck -V 2>&1 | grep reiserfsck | awk \ 42reiserfsck -V 2>&1 | grep ^reiserfsck | awk \
43'NR==1{print "reiserfsprogs ", $2}' 43'NR==1{print "reiserfsprogs ", $2}'
44 44
45fsck.reiser4 -V 2>&1 | grep fsck.reiser4 | awk \ 45fsck.reiser4 -V 2>&1 | grep ^fsck.reiser4 | awk \
46'NR==1{print "reiser4progs ", $2}' 46'NR==1{print "reiser4progs ", $2}'
47 47
48xfs_db -V 2>&1 | grep version | awk \ 48xfs_db -V 2>&1 | grep version | awk \