diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-22 19:02:13 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-22 19:02:13 -0400 |
commit | 5d4e2d08e7fdf7339f84a1c670d296a77e02f881 (patch) | |
tree | 1c419660defa56191091dfdf50fdb57a72009173 /init | |
parent | fb2123fad3b499f0898835b19dbb93b18d27ee98 (diff) | |
parent | 94ca629e40eb7e997be21d8065c25e4f3797b03f (diff) |
Merge tag 'driver-core-3.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core updates from Greg Kroah-Hartman:
"Here's the driver core, and other driver subsystems, pull request for
the 3.5-rc1 merge window.
Outside of a few minor driver core changes, we ended up with the
following different subsystem and core changes as well, due to
interdependancies on the driver core:
- hyperv driver updates
- drivers/memory being created and some drivers moved into it
- extcon driver subsystem created out of the old Android staging
switch driver code
- dynamic debug updates
- printk rework, and /dev/kmsg changes
All of this has been tested in the linux-next releases for a few weeks
with no reported problems.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>"
Fix up conflicts in drivers/extcon/extcon-max8997.c where git noticed
that a patch to the deleted drivers/misc/max8997-muic.c driver needs to
be applied to this one.
* tag 'driver-core-3.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (90 commits)
uio_pdrv_genirq: get irq through platform resource if not set otherwise
memory: tegra{20,30}-mc: Remove empty *_remove()
printk() - isolate KERN_CONT users from ordinary complete lines
sysfs: get rid of some lockdep false positives
Drivers: hv: util: Properly handle version negotiations.
Drivers: hv: Get rid of an unnecessary check in vmbus_prep_negotiate_resp()
memory: tegra{20,30}-mc: Use dev_err_ratelimited()
driver core: Add dev_*_ratelimited() family
Driver Core: don't oops with unregistered driver in driver_find_device()
printk() - restore prefix/timestamp printing for multi-newline strings
printk: add stub for prepend_timestamp()
ARM: tegra30: Make MC optional in Kconfig
ARM: tegra20: Make MC optional in Kconfig
ARM: tegra30: MC: Remove unnecessary BUG*()
ARM: tegra20: MC: Remove unnecessary BUG*()
printk: correctly align __log_buf
ARM: tegra30: Add Tegra Memory Controller(MC) driver
ARM: tegra20: Add Tegra Memory Controller(MC) driver
printk() - restore timestamp printing at console output
printk() - do not merge continuation lines of different threads
...
Diffstat (limited to 'init')
-rw-r--r-- | init/main.c | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/init/main.c b/init/main.c index cb54cd3dbf05..1ca6b32c4828 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -226,7 +226,7 @@ static int __init loglevel(char *str) | |||
226 | early_param("loglevel", loglevel); | 226 | early_param("loglevel", loglevel); |
227 | 227 | ||
228 | /* Change NUL term back to "=", to make "param" the whole string. */ | 228 | /* Change NUL term back to "=", to make "param" the whole string. */ |
229 | static int __init repair_env_string(char *param, char *val) | 229 | static int __init repair_env_string(char *param, char *val, const char *unused) |
230 | { | 230 | { |
231 | if (val) { | 231 | if (val) { |
232 | /* param=val or param="val"? */ | 232 | /* param=val or param="val"? */ |
@@ -246,9 +246,9 @@ static int __init repair_env_string(char *param, char *val) | |||
246 | * Unknown boot options get handed to init, unless they look like | 246 | * Unknown boot options get handed to init, unless they look like |
247 | * unused parameters (modprobe will find them in /proc/cmdline). | 247 | * unused parameters (modprobe will find them in /proc/cmdline). |
248 | */ | 248 | */ |
249 | static int __init unknown_bootoption(char *param, char *val) | 249 | static int __init unknown_bootoption(char *param, char *val, const char *unused) |
250 | { | 250 | { |
251 | repair_env_string(param, val); | 251 | repair_env_string(param, val, unused); |
252 | 252 | ||
253 | /* Handle obsolete-style parameters */ | 253 | /* Handle obsolete-style parameters */ |
254 | if (obsolete_checksetup(param)) | 254 | if (obsolete_checksetup(param)) |
@@ -385,7 +385,7 @@ static noinline void __init_refok rest_init(void) | |||
385 | } | 385 | } |
386 | 386 | ||
387 | /* Check for early params. */ | 387 | /* Check for early params. */ |
388 | static int __init do_early_param(char *param, char *val) | 388 | static int __init do_early_param(char *param, char *val, const char *unused) |
389 | { | 389 | { |
390 | const struct obs_kernel_param *p; | 390 | const struct obs_kernel_param *p; |
391 | 391 | ||
@@ -725,14 +725,14 @@ static initcall_t *initcall_levels[] __initdata = { | |||
725 | }; | 725 | }; |
726 | 726 | ||
727 | static char *initcall_level_names[] __initdata = { | 727 | static char *initcall_level_names[] __initdata = { |
728 | "early parameters", | 728 | "early", |
729 | "core parameters", | 729 | "core", |
730 | "postcore parameters", | 730 | "postcore", |
731 | "arch parameters", | 731 | "arch", |
732 | "subsys parameters", | 732 | "subsys", |
733 | "fs parameters", | 733 | "fs", |
734 | "device parameters", | 734 | "device", |
735 | "late parameters", | 735 | "late", |
736 | }; | 736 | }; |
737 | 737 | ||
738 | static void __init do_initcall_level(int level) | 738 | static void __init do_initcall_level(int level) |
@@ -745,7 +745,7 @@ static void __init do_initcall_level(int level) | |||
745 | static_command_line, __start___param, | 745 | static_command_line, __start___param, |
746 | __stop___param - __start___param, | 746 | __stop___param - __start___param, |
747 | level, level, | 747 | level, level, |
748 | repair_env_string); | 748 | &repair_env_string); |
749 | 749 | ||
750 | for (fn = initcall_levels[level]; fn < initcall_levels[level+1]; fn++) | 750 | for (fn = initcall_levels[level]; fn < initcall_levels[level+1]; fn++) |
751 | do_one_initcall(*fn); | 751 | do_one_initcall(*fn); |
@@ -755,8 +755,13 @@ static void __init do_initcalls(void) | |||
755 | { | 755 | { |
756 | int level; | 756 | int level; |
757 | 757 | ||
758 | for (level = 0; level < ARRAY_SIZE(initcall_levels) - 1; level++) | 758 | for (level = 0; level < ARRAY_SIZE(initcall_levels) - 1; level++) { |
759 | pr_info("initlevel:%d=%s, %d registered initcalls\n", | ||
760 | level, initcall_level_names[level], | ||
761 | (int) (initcall_levels[level+1] | ||
762 | - initcall_levels[level])); | ||
759 | do_initcall_level(level); | 763 | do_initcall_level(level); |
764 | } | ||
760 | } | 765 | } |
761 | 766 | ||
762 | /* | 767 | /* |