aboutsummaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-06-26 18:07:37 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-06-26 18:07:37 -0400
commit8d7804a2f03dbd34940fcb426450c730adf29dae (patch)
tree749f33776e38f734b81c2a93275b6bf76e96f74e /init
parentd87823813fe498fdd47894bd28e460a9dee8d771 (diff)
parent0e6c861f73ec42ab5c89fda9892f2173c7aaf6cf (diff)
Merge tag 'driver-core-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core updates from Greg KH: "Here is the driver core / firmware changes for 4.2-rc1. A number of small changes all over the place in the driver core, and in the firmware subsystem. Nothing really major, full details in the shortlog. Some of it is a bit of churn, given that the platform driver probing changes was found to not work well, so they were reverted. All of these have been in linux-next for a while with no reported issues" * tag 'driver-core-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (31 commits) Revert "base/platform: Only insert MEM and IO resources" Revert "base/platform: Continue on insert_resource() error" Revert "of/platform: Use platform_device interface" Revert "base/platform: Remove code duplication" firmware: add missing kfree for work on async call fs: sysfs: don't pass count == 0 to bin file readers base:dd - Fix for typo in comment to function driver_deferred_probe_trigger(). base/platform: Remove code duplication of/platform: Use platform_device interface base/platform: Continue on insert_resource() error base/platform: Only insert MEM and IO resources firmware: use const for remaining firmware names firmware: fix possible use after free on name on asynchronous request firmware: check for file truncation on direct firmware loading firmware: fix __getname() missing failure check drivers: of/base: move of_init to driver_init drivers/base: cacheinfo: fix annoying typo when DT nodes are absent sysfs: disambiguate between "error code" and "failure" in comments driver-core: fix build for !CONFIG_MODULES driver-core: make __device_attach() static ...
Diffstat (limited to 'init')
-rw-r--r--init/main.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/init/main.c b/init/main.c
index 2a89545e0a5d..c599aea23bb1 100644
--- a/init/main.c
+++ b/init/main.c
@@ -235,7 +235,8 @@ static int __init loglevel(char *str)
235early_param("loglevel", loglevel); 235early_param("loglevel", loglevel);
236 236
237/* Change NUL term back to "=", to make "param" the whole string. */ 237/* Change NUL term back to "=", to make "param" the whole string. */
238static int __init repair_env_string(char *param, char *val, const char *unused) 238static int __init repair_env_string(char *param, char *val,
239 const char *unused, void *arg)
239{ 240{
240 if (val) { 241 if (val) {
241 /* param=val or param="val"? */ 242 /* param=val or param="val"? */
@@ -252,14 +253,15 @@ static int __init repair_env_string(char *param, char *val, const char *unused)
252} 253}
253 254
254/* Anything after -- gets handed straight to init. */ 255/* Anything after -- gets handed straight to init. */
255static int __init set_init_arg(char *param, char *val, const char *unused) 256static int __init set_init_arg(char *param, char *val,
257 const char *unused, void *arg)
256{ 258{
257 unsigned int i; 259 unsigned int i;
258 260
259 if (panic_later) 261 if (panic_later)
260 return 0; 262 return 0;
261 263
262 repair_env_string(param, val, unused); 264 repair_env_string(param, val, unused, NULL);
263 265
264 for (i = 0; argv_init[i]; i++) { 266 for (i = 0; argv_init[i]; i++) {
265 if (i == MAX_INIT_ARGS) { 267 if (i == MAX_INIT_ARGS) {
@@ -276,9 +278,10 @@ static int __init set_init_arg(char *param, char *val, const char *unused)
276 * Unknown boot options get handed to init, unless they look like 278 * Unknown boot options get handed to init, unless they look like
277 * unused parameters (modprobe will find them in /proc/cmdline). 279 * unused parameters (modprobe will find them in /proc/cmdline).
278 */ 280 */
279static int __init unknown_bootoption(char *param, char *val, const char *unused) 281static int __init unknown_bootoption(char *param, char *val,
282 const char *unused, void *arg)
280{ 283{
281 repair_env_string(param, val, unused); 284 repair_env_string(param, val, unused, NULL);
282 285
283 /* Handle obsolete-style parameters */ 286 /* Handle obsolete-style parameters */
284 if (obsolete_checksetup(param)) 287 if (obsolete_checksetup(param))
@@ -410,7 +413,8 @@ static noinline void __init_refok rest_init(void)
410} 413}
411 414
412/* Check for early params. */ 415/* Check for early params. */
413static int __init do_early_param(char *param, char *val, const char *unused) 416static int __init do_early_param(char *param, char *val,
417 const char *unused, void *arg)
414{ 418{
415 const struct obs_kernel_param *p; 419 const struct obs_kernel_param *p;
416 420
@@ -429,7 +433,8 @@ static int __init do_early_param(char *param, char *val, const char *unused)
429 433
430void __init parse_early_options(char *cmdline) 434void __init parse_early_options(char *cmdline)
431{ 435{
432 parse_args("early options", cmdline, NULL, 0, 0, 0, do_early_param); 436 parse_args("early options", cmdline, NULL, 0, 0, 0, NULL,
437 do_early_param);
433} 438}
434 439
435/* Arch code calls this early on, or if not, just before other parsing. */ 440/* Arch code calls this early on, or if not, just before other parsing. */
@@ -535,10 +540,10 @@ asmlinkage __visible void __init start_kernel(void)
535 after_dashes = parse_args("Booting kernel", 540 after_dashes = parse_args("Booting kernel",
536 static_command_line, __start___param, 541 static_command_line, __start___param,
537 __stop___param - __start___param, 542 __stop___param - __start___param,
538 -1, -1, &unknown_bootoption); 543 -1, -1, NULL, &unknown_bootoption);
539 if (!IS_ERR_OR_NULL(after_dashes)) 544 if (!IS_ERR_OR_NULL(after_dashes))
540 parse_args("Setting init args", after_dashes, NULL, 0, -1, -1, 545 parse_args("Setting init args", after_dashes, NULL, 0, -1, -1,
541 set_init_arg); 546 NULL, set_init_arg);
542 547
543 jump_label_init(); 548 jump_label_init();
544 549
@@ -848,7 +853,7 @@ static void __init do_initcall_level(int level)
848 initcall_command_line, __start___param, 853 initcall_command_line, __start___param,
849 __stop___param - __start___param, 854 __stop___param - __start___param,
850 level, level, 855 level, level,
851 &repair_env_string); 856 NULL, &repair_env_string);
852 857
853 for (fn = initcall_levels[level]; fn < initcall_levels[level+1]; fn++) 858 for (fn = initcall_levels[level]; fn < initcall_levels[level+1]; fn++)
854 do_one_initcall(*fn); 859 do_one_initcall(*fn);