diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-04-26 18:36:27 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-04-26 18:36:27 -0400 |
commit | 82b769063598d01a8b24abf250a53f8b437e09f1 (patch) | |
tree | 107a5d88d19f138b69945f50026e787034e1c6f9 | |
parent | ebcf596d89f9686308db768e527a22165831b473 (diff) | |
parent | 05ef1b79d46347f94d9a78214cc745046c03e45a (diff) |
Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
Pull arch/tile fixes from Chris Metcalf:
"One change fixes a platform-independent bug about environment var
handling in the boot command line. The other is a trivial
tile-specific bug fix to avoid a link-time warning."
* 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
arch/tile: fix a couple of functions that should be __init
init: fix bug where environment vars can't be passed via boot args
-rw-r--r-- | arch/tile/include/asm/pci.h | 4 | ||||
-rw-r--r-- | arch/tile/kernel/pci.c | 4 | ||||
-rw-r--r-- | init/main.c | 25 |
3 files changed, 17 insertions, 16 deletions
diff --git a/arch/tile/include/asm/pci.h b/arch/tile/include/asm/pci.h index 5d5a635530bd..32e6cbe8dff3 100644 --- a/arch/tile/include/asm/pci.h +++ b/arch/tile/include/asm/pci.h | |||
@@ -47,8 +47,8 @@ struct pci_controller { | |||
47 | */ | 47 | */ |
48 | #define PCI_DMA_BUS_IS_PHYS 1 | 48 | #define PCI_DMA_BUS_IS_PHYS 1 |
49 | 49 | ||
50 | int __devinit tile_pci_init(void); | 50 | int __init tile_pci_init(void); |
51 | int __devinit pcibios_init(void); | 51 | int __init pcibios_init(void); |
52 | 52 | ||
53 | static inline void pci_iounmap(struct pci_dev *dev, void __iomem *addr) {} | 53 | static inline void pci_iounmap(struct pci_dev *dev, void __iomem *addr) {} |
54 | 54 | ||
diff --git a/arch/tile/kernel/pci.c b/arch/tile/kernel/pci.c index a1bb59eecc18..b56d12bf5900 100644 --- a/arch/tile/kernel/pci.c +++ b/arch/tile/kernel/pci.c | |||
@@ -141,7 +141,7 @@ static int __devinit tile_init_irqs(int controller_id, | |||
141 | * | 141 | * |
142 | * Returns the number of controllers discovered. | 142 | * Returns the number of controllers discovered. |
143 | */ | 143 | */ |
144 | int __devinit tile_pci_init(void) | 144 | int __init tile_pci_init(void) |
145 | { | 145 | { |
146 | int i; | 146 | int i; |
147 | 147 | ||
@@ -287,7 +287,7 @@ static void __devinit fixup_read_and_payload_sizes(void) | |||
287 | * The controllers have been set up by the time we get here, by a call to | 287 | * The controllers have been set up by the time we get here, by a call to |
288 | * tile_pci_init. | 288 | * tile_pci_init. |
289 | */ | 289 | */ |
290 | int __devinit pcibios_init(void) | 290 | int __init pcibios_init(void) |
291 | { | 291 | { |
292 | int i; | 292 | int i; |
293 | 293 | ||
diff --git a/init/main.c b/init/main.c index 9d454f09f3b1..44b2433334c7 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -225,13 +225,9 @@ static int __init loglevel(char *str) | |||
225 | 225 | ||
226 | early_param("loglevel", loglevel); | 226 | early_param("loglevel", loglevel); |
227 | 227 | ||
228 | /* | 228 | /* Change NUL term back to "=", to make "param" the whole string. */ |
229 | * Unknown boot options get handed to init, unless they look like | 229 | static int __init repair_env_string(char *param, char *val) |
230 | * unused parameters (modprobe will find them in /proc/cmdline). | ||
231 | */ | ||
232 | static int __init unknown_bootoption(char *param, char *val) | ||
233 | { | 230 | { |
234 | /* Change NUL term back to "=", to make "param" the whole string. */ | ||
235 | if (val) { | 231 | if (val) { |
236 | /* param=val or param="val"? */ | 232 | /* param=val or param="val"? */ |
237 | if (val == param+strlen(param)+1) | 233 | if (val == param+strlen(param)+1) |
@@ -243,6 +239,16 @@ static int __init unknown_bootoption(char *param, char *val) | |||
243 | } else | 239 | } else |
244 | BUG(); | 240 | BUG(); |
245 | } | 241 | } |
242 | return 0; | ||
243 | } | ||
244 | |||
245 | /* | ||
246 | * Unknown boot options get handed to init, unless they look like | ||
247 | * unused parameters (modprobe will find them in /proc/cmdline). | ||
248 | */ | ||
249 | static int __init unknown_bootoption(char *param, char *val) | ||
250 | { | ||
251 | repair_env_string(param, val); | ||
246 | 252 | ||
247 | /* Handle obsolete-style parameters */ | 253 | /* Handle obsolete-style parameters */ |
248 | if (obsolete_checksetup(param)) | 254 | if (obsolete_checksetup(param)) |
@@ -732,11 +738,6 @@ static char *initcall_level_names[] __initdata = { | |||
732 | "late parameters", | 738 | "late parameters", |
733 | }; | 739 | }; |
734 | 740 | ||
735 | static int __init ignore_unknown_bootoption(char *param, char *val) | ||
736 | { | ||
737 | return 0; | ||
738 | } | ||
739 | |||
740 | static void __init do_initcall_level(int level) | 741 | static void __init do_initcall_level(int level) |
741 | { | 742 | { |
742 | extern const struct kernel_param __start___param[], __stop___param[]; | 743 | extern const struct kernel_param __start___param[], __stop___param[]; |
@@ -747,7 +748,7 @@ static void __init do_initcall_level(int level) | |||
747 | static_command_line, __start___param, | 748 | static_command_line, __start___param, |
748 | __stop___param - __start___param, | 749 | __stop___param - __start___param, |
749 | level, level, | 750 | level, level, |
750 | ignore_unknown_bootoption); | 751 | repair_env_string); |
751 | 752 | ||
752 | for (fn = initcall_levels[level]; fn < initcall_levels[level+1]; fn++) | 753 | for (fn = initcall_levels[level]; fn < initcall_levels[level+1]; fn++) |
753 | do_one_initcall(*fn); | 754 | do_one_initcall(*fn); |