diff options
| author | Ingo Molnar <mingo@elte.hu> | 2008-07-28 18:07:55 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-07-28 18:07:55 -0400 |
| commit | cb28a1bbdb4790378e7366d6c9ee1d2340b84f92 (patch) | |
| tree | 316436f77dac75335fd2c3ef5f109e71606c50d3 /init | |
| parent | b6d4f7e3ef25beb8c658c97867d98883e69dc544 (diff) | |
| parent | f934fb19ef34730263e6afc01e8ec27a8a71470f (diff) | |
Merge branch 'linus' into core/generic-dma-coherent
Conflicts:
arch/x86/Kconfig
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'init')
| -rw-r--r-- | init/Kconfig | 19 | ||||
| -rw-r--r-- | init/do_mounts.c | 3 | ||||
| -rw-r--r-- | init/do_mounts.h | 1 | ||||
| -rw-r--r-- | init/do_mounts_rd.c | 37 | ||||
| -rw-r--r-- | init/initramfs.c | 22 | ||||
| -rw-r--r-- | init/main.c | 36 | ||||
| -rw-r--r-- | init/version.c | 3 |
7 files changed, 31 insertions, 90 deletions
diff --git a/init/Kconfig b/init/Kconfig index 63cdbd8bd3d5..250e02c8f8f9 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
| @@ -171,7 +171,7 @@ config BSD_PROCESS_ACCT_V3 | |||
| 171 | process and it's parent. Note that this file format is incompatible | 171 | process and it's parent. Note that this file format is incompatible |
| 172 | with previous v0/v1/v2 file formats, so you will need updated tools | 172 | with previous v0/v1/v2 file formats, so you will need updated tools |
| 173 | for processing it. A preliminary version of these tools is available | 173 | for processing it. A preliminary version of these tools is available |
| 174 | at <http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/>. | 174 | at <http://www.gnu.org/software/acct/>. |
| 175 | 175 | ||
| 176 | config TASKSTATS | 176 | config TASKSTATS |
| 177 | bool "Export task/process statistics through netlink (EXPERIMENTAL)" | 177 | bool "Export task/process statistics through netlink (EXPERIMENTAL)" |
| @@ -486,7 +486,7 @@ config PID_NS | |||
| 486 | default n | 486 | default n |
| 487 | depends on NAMESPACES && EXPERIMENTAL | 487 | depends on NAMESPACES && EXPERIMENTAL |
| 488 | help | 488 | help |
| 489 | Suport process id namespaces. This allows having multiple | 489 | Support process id namespaces. This allows having multiple |
| 490 | process with the same pid as long as they are in different | 490 | process with the same pid as long as they are in different |
| 491 | pid namespaces. This is a building block of containers. | 491 | pid namespaces. This is a building block of containers. |
| 492 | 492 | ||
| @@ -860,8 +860,8 @@ config MODULE_UNLOAD | |||
| 860 | help | 860 | help |
| 861 | Without this option you will not be able to unload any | 861 | Without this option you will not be able to unload any |
| 862 | modules (note that some modules may not be unloadable | 862 | modules (note that some modules may not be unloadable |
| 863 | anyway), which makes your kernel slightly smaller and | 863 | anyway), which makes your kernel smaller, faster |
| 864 | simpler. If unsure, say Y. | 864 | and simpler. If unsure, say Y. |
| 865 | 865 | ||
| 866 | config MODULE_FORCE_UNLOAD | 866 | config MODULE_FORCE_UNLOAD |
| 867 | bool "Forced module unloading" | 867 | bool "Forced module unloading" |
| @@ -897,16 +897,11 @@ config MODULE_SRCVERSION_ALL | |||
| 897 | will be created for all modules. If unsure, say N. | 897 | will be created for all modules. If unsure, say N. |
| 898 | 898 | ||
| 899 | config KMOD | 899 | config KMOD |
| 900 | bool "Automatic kernel module loading" | 900 | def_bool y |
| 901 | depends on MODULES | 901 | depends on MODULES |
| 902 | help | 902 | help |
| 903 | Normally when you have selected some parts of the kernel to | 903 | This is being removed soon. These days, CONFIG_MODULES |
| 904 | be created as kernel modules, you must load them (using the | 904 | implies CONFIG_KMOD, so use that instead. |
| 905 | "modprobe" command) before you can use them. If you say Y | ||
| 906 | here, some parts of the kernel will be able to load modules | ||
| 907 | automatically: when a part of the kernel needs a module, it | ||
| 908 | runs modprobe with the appropriate arguments, thereby | ||
| 909 | loading the module if it is available. If unsure, say Y. | ||
| 910 | 905 | ||
| 911 | config STOP_MACHINE | 906 | config STOP_MACHINE |
| 912 | bool | 907 | bool |
diff --git a/init/do_mounts.c b/init/do_mounts.c index a1de1bf3d6b9..3715feb8446d 100644 --- a/init/do_mounts.c +++ b/init/do_mounts.c | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | #include <linux/device.h> | 12 | #include <linux/device.h> |
| 13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
| 14 | #include <linux/fs.h> | 14 | #include <linux/fs.h> |
| 15 | #include <linux/initrd.h> | ||
| 15 | 16 | ||
| 16 | #include <linux/nfs_fs.h> | 17 | #include <linux/nfs_fs.h> |
| 17 | #include <linux/nfs_fs_sb.h> | 18 | #include <linux/nfs_fs_sb.h> |
| @@ -22,7 +23,7 @@ | |||
| 22 | int __initdata rd_doload; /* 1 = load RAM disk, 0 = don't load */ | 23 | int __initdata rd_doload; /* 1 = load RAM disk, 0 = don't load */ |
| 23 | 24 | ||
| 24 | int root_mountflags = MS_RDONLY | MS_SILENT; | 25 | int root_mountflags = MS_RDONLY | MS_SILENT; |
| 25 | char * __initdata root_device_name; | 26 | static char * __initdata root_device_name; |
| 26 | static char __initdata saved_root_name[64]; | 27 | static char __initdata saved_root_name[64]; |
| 27 | static int __initdata root_wait; | 28 | static int __initdata root_wait; |
| 28 | 29 | ||
diff --git a/init/do_mounts.h b/init/do_mounts.h index 735705d137ff..9aa968d54329 100644 --- a/init/do_mounts.h +++ b/init/do_mounts.h | |||
| @@ -11,7 +11,6 @@ void change_floppy(char *fmt, ...); | |||
| 11 | void mount_block_root(char *name, int flags); | 11 | void mount_block_root(char *name, int flags); |
| 12 | void mount_root(void); | 12 | void mount_root(void); |
| 13 | extern int root_mountflags; | 13 | extern int root_mountflags; |
| 14 | extern char *root_device_name; | ||
| 15 | 14 | ||
| 16 | static inline int create_dev(char *name, dev_t dev) | 15 | static inline int create_dev(char *name, dev_t dev) |
| 17 | { | 16 | { |
diff --git a/init/do_mounts_rd.c b/init/do_mounts_rd.c index 46dfd64ae8fb..fedef93b586f 100644 --- a/init/do_mounts_rd.c +++ b/init/do_mounts_rd.c | |||
| @@ -10,8 +10,6 @@ | |||
| 10 | 10 | ||
| 11 | #include "do_mounts.h" | 11 | #include "do_mounts.h" |
| 12 | 12 | ||
| 13 | #define BUILD_CRAMDISK | ||
| 14 | |||
| 15 | int __initdata rd_prompt = 1;/* 1 = prompt for RAM disk, 0 = don't prompt */ | 13 | int __initdata rd_prompt = 1;/* 1 = prompt for RAM disk, 0 = don't prompt */ |
| 16 | 14 | ||
| 17 | static int __init prompt_ramdisk(char *str) | 15 | static int __init prompt_ramdisk(char *str) |
| @@ -162,14 +160,8 @@ int __init rd_load_image(char *from) | |||
| 162 | goto done; | 160 | goto done; |
| 163 | 161 | ||
| 164 | if (nblocks == 0) { | 162 | if (nblocks == 0) { |
| 165 | #ifdef BUILD_CRAMDISK | ||
| 166 | if (crd_load(in_fd, out_fd) == 0) | 163 | if (crd_load(in_fd, out_fd) == 0) |
| 167 | goto successful_load; | 164 | goto successful_load; |
| 168 | #else | ||
| 169 | printk(KERN_NOTICE | ||
| 170 | "RAMDISK: Kernel does not support compressed " | ||
| 171 | "RAM disk images\n"); | ||
| 172 | #endif | ||
| 173 | goto done; | 165 | goto done; |
| 174 | } | 166 | } |
| 175 | 167 | ||
| @@ -267,8 +259,6 @@ int __init rd_load_disk(int n) | |||
| 267 | return rd_load_image("/dev/root"); | 259 | return rd_load_image("/dev/root"); |
| 268 | } | 260 | } |
| 269 | 261 | ||
| 270 | #ifdef BUILD_CRAMDISK | ||
| 271 | |||
| 272 | /* | 262 | /* |
| 273 | * gzip declarations | 263 | * gzip declarations |
| 274 | */ | 264 | */ |
| @@ -313,32 +303,11 @@ static int crd_infd, crd_outfd; | |||
| 313 | 303 | ||
| 314 | static int __init fill_inbuf(void); | 304 | static int __init fill_inbuf(void); |
| 315 | static void __init flush_window(void); | 305 | static void __init flush_window(void); |
| 316 | static void __init *malloc(size_t size); | ||
| 317 | static void __init free(void *where); | ||
| 318 | static void __init error(char *m); | 306 | static void __init error(char *m); |
| 319 | static void __init gzip_mark(void **); | ||
| 320 | static void __init gzip_release(void **); | ||
| 321 | |||
| 322 | #include "../lib/inflate.c" | ||
| 323 | 307 | ||
| 324 | static void __init *malloc(size_t size) | 308 | #define NO_INFLATE_MALLOC |
| 325 | { | ||
| 326 | return kmalloc(size, GFP_KERNEL); | ||
| 327 | } | ||
| 328 | |||
| 329 | static void __init free(void *where) | ||
| 330 | { | ||
| 331 | kfree(where); | ||
| 332 | } | ||
| 333 | |||
| 334 | static void __init gzip_mark(void **ptr) | ||
| 335 | { | ||
| 336 | } | ||
| 337 | |||
| 338 | static void __init gzip_release(void **ptr) | ||
| 339 | { | ||
| 340 | } | ||
| 341 | 309 | ||
| 310 | #include "../lib/inflate.c" | ||
| 342 | 311 | ||
| 343 | /* =========================================================================== | 312 | /* =========================================================================== |
| 344 | * Fill the input buffer. This is called only when the buffer is empty | 313 | * Fill the input buffer. This is called only when the buffer is empty |
| @@ -425,5 +394,3 @@ static int __init crd_load(int in_fd, int out_fd) | |||
| 425 | kfree(window); | 394 | kfree(window); |
| 426 | return result; | 395 | return result; |
| 427 | } | 396 | } |
| 428 | |||
| 429 | #endif /* BUILD_CRAMDISK */ | ||
diff --git a/init/initramfs.c b/init/initramfs.c index 8eeeccb328c9..644fc01ad5f0 100644 --- a/init/initramfs.c +++ b/init/initramfs.c | |||
| @@ -14,16 +14,6 @@ static void __init error(char *x) | |||
| 14 | message = x; | 14 | message = x; |
| 15 | } | 15 | } |
| 16 | 16 | ||
| 17 | static void __init *malloc(size_t size) | ||
| 18 | { | ||
| 19 | return kmalloc(size, GFP_KERNEL); | ||
| 20 | } | ||
| 21 | |||
| 22 | static void __init free(void *where) | ||
| 23 | { | ||
| 24 | kfree(where); | ||
| 25 | } | ||
| 26 | |||
| 27 | /* link hash */ | 17 | /* link hash */ |
| 28 | 18 | ||
| 29 | #define N_ALIGN(len) ((((len) + 1) & ~3) + 2) | 19 | #define N_ALIGN(len) ((((len) + 1) & ~3) + 2) |
| @@ -407,18 +397,10 @@ static long bytes_out; | |||
| 407 | 397 | ||
| 408 | static void __init flush_window(void); | 398 | static void __init flush_window(void); |
| 409 | static void __init error(char *m); | 399 | static void __init error(char *m); |
| 410 | static void __init gzip_mark(void **); | ||
| 411 | static void __init gzip_release(void **); | ||
| 412 | 400 | ||
| 413 | #include "../lib/inflate.c" | 401 | #define NO_INFLATE_MALLOC |
| 414 | 402 | ||
| 415 | static void __init gzip_mark(void **ptr) | 403 | #include "../lib/inflate.c" |
| 416 | { | ||
| 417 | } | ||
| 418 | |||
| 419 | static void __init gzip_release(void **ptr) | ||
| 420 | { | ||
| 421 | } | ||
| 422 | 404 | ||
| 423 | /* =========================================================================== | 405 | /* =========================================================================== |
| 424 | * Write the output window window[0..outcnt-1] and update crc and bytes_out. | 406 | * Write the output window window[0..outcnt-1] and update crc and bytes_out. |
diff --git a/init/main.c b/init/main.c index edeace036fd9..20fdc9884b77 100644 --- a/init/main.c +++ b/init/main.c | |||
| @@ -87,8 +87,6 @@ extern void init_IRQ(void); | |||
| 87 | extern void fork_init(unsigned long); | 87 | extern void fork_init(unsigned long); |
| 88 | extern void mca_init(void); | 88 | extern void mca_init(void); |
| 89 | extern void sbus_init(void); | 89 | extern void sbus_init(void); |
| 90 | extern void pidhash_init(void); | ||
| 91 | extern void pidmap_init(void); | ||
| 92 | extern void prio_tree_init(void); | 90 | extern void prio_tree_init(void); |
| 93 | extern void radix_tree_init(void); | 91 | extern void radix_tree_init(void); |
| 94 | extern void free_initmem(void); | 92 | extern void free_initmem(void); |
| @@ -415,6 +413,13 @@ static void __init smp_init(void) | |||
| 415 | { | 413 | { |
| 416 | unsigned int cpu; | 414 | unsigned int cpu; |
| 417 | 415 | ||
| 416 | /* | ||
| 417 | * Set up the current CPU as possible to migrate to. | ||
| 418 | * The other ones will be done by cpu_up/cpu_down() | ||
| 419 | */ | ||
| 420 | cpu = smp_processor_id(); | ||
| 421 | cpu_set(cpu, cpu_active_map); | ||
| 422 | |||
| 418 | /* FIXME: This should be done in userspace --RR */ | 423 | /* FIXME: This should be done in userspace --RR */ |
| 419 | for_each_present_cpu(cpu) { | 424 | for_each_present_cpu(cpu) { |
| 420 | if (num_online_cpus() >= setup_max_cpus) | 425 | if (num_online_cpus() >= setup_max_cpus) |
| @@ -630,9 +635,10 @@ asmlinkage void __init start_kernel(void) | |||
| 630 | 635 | ||
| 631 | #ifdef CONFIG_BLK_DEV_INITRD | 636 | #ifdef CONFIG_BLK_DEV_INITRD |
| 632 | if (initrd_start && !initrd_below_start_ok && | 637 | if (initrd_start && !initrd_below_start_ok && |
| 633 | initrd_start < min_low_pfn << PAGE_SHIFT) { | 638 | page_to_pfn(virt_to_page(initrd_start)) < min_low_pfn) { |
| 634 | printk(KERN_CRIT "initrd overwritten (0x%08lx < 0x%08lx) - " | 639 | printk(KERN_CRIT "initrd overwritten (0x%08lx < 0x%08lx) - " |
| 635 | "disabling it.\n",initrd_start,min_low_pfn << PAGE_SHIFT); | 640 | "disabling it.\n", |
| 641 | page_to_pfn(virt_to_page(initrd_start)), min_low_pfn); | ||
| 636 | initrd_start = 0; | 642 | initrd_start = 0; |
| 637 | } | 643 | } |
| 638 | #endif | 644 | #endif |
| @@ -737,13 +743,13 @@ static void __init do_one_initcall(initcall_t fn) | |||
| 737 | } | 743 | } |
| 738 | 744 | ||
| 739 | 745 | ||
| 740 | extern initcall_t __initcall_start[], __initcall_end[]; | 746 | extern initcall_t __initcall_start[], __initcall_end[], __early_initcall_end[]; |
| 741 | 747 | ||
| 742 | static void __init do_initcalls(void) | 748 | static void __init do_initcalls(void) |
| 743 | { | 749 | { |
| 744 | initcall_t *call; | 750 | initcall_t *call; |
| 745 | 751 | ||
| 746 | for (call = __initcall_start; call < __initcall_end; call++) | 752 | for (call = __early_initcall_end; call < __initcall_end; call++) |
| 747 | do_one_initcall(*call); | 753 | do_one_initcall(*call); |
| 748 | 754 | ||
| 749 | /* Make sure there is no pending stuff from the initcall sequence */ | 755 | /* Make sure there is no pending stuff from the initcall sequence */ |
| @@ -768,24 +774,12 @@ static void __init do_basic_setup(void) | |||
| 768 | do_initcalls(); | 774 | do_initcalls(); |
| 769 | } | 775 | } |
| 770 | 776 | ||
| 771 | static int __initdata nosoftlockup; | ||
| 772 | |||
| 773 | static int __init nosoftlockup_setup(char *str) | ||
| 774 | { | ||
| 775 | nosoftlockup = 1; | ||
| 776 | return 1; | ||
| 777 | } | ||
| 778 | __setup("nosoftlockup", nosoftlockup_setup); | ||
| 779 | |||
| 780 | static void __init do_pre_smp_initcalls(void) | 777 | static void __init do_pre_smp_initcalls(void) |
| 781 | { | 778 | { |
| 782 | extern int spawn_ksoftirqd(void); | 779 | initcall_t *call; |
| 783 | 780 | ||
| 784 | init_call_single_data(); | 781 | for (call = __initcall_start; call < __early_initcall_end; call++) |
| 785 | migration_init(); | 782 | do_one_initcall(*call); |
| 786 | spawn_ksoftirqd(); | ||
| 787 | if (!nosoftlockup) | ||
| 788 | spawn_softlockup_task(); | ||
| 789 | } | 783 | } |
| 790 | 784 | ||
| 791 | static void run_init_process(char *init_filename) | 785 | static void run_init_process(char *init_filename) |
diff --git a/init/version.c b/init/version.c index 9d17d70ee02d..52a8b98642b8 100644 --- a/init/version.c +++ b/init/version.c | |||
| @@ -13,10 +13,13 @@ | |||
| 13 | #include <linux/utsrelease.h> | 13 | #include <linux/utsrelease.h> |
| 14 | #include <linux/version.h> | 14 | #include <linux/version.h> |
| 15 | 15 | ||
| 16 | #ifndef CONFIG_KALLSYMS | ||
| 16 | #define version(a) Version_ ## a | 17 | #define version(a) Version_ ## a |
| 17 | #define version_string(a) version(a) | 18 | #define version_string(a) version(a) |
| 18 | 19 | ||
| 20 | extern int version_string(LINUX_VERSION_CODE); | ||
| 19 | int version_string(LINUX_VERSION_CODE); | 21 | int version_string(LINUX_VERSION_CODE); |
| 22 | #endif | ||
| 20 | 23 | ||
| 21 | struct uts_namespace init_uts_ns = { | 24 | struct uts_namespace init_uts_ns = { |
| 22 | .kref = { | 25 | .kref = { |
