aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2010-07-03 18:02:26 -0400
committerFrederic Weisbecker <fweisbec@gmail.com>2010-07-09 09:40:32 -0400
commit5e3d20a68f63fc5a310687d81956c3b96e488b84 (patch)
tree576da563442772fe7a492589c1e08c422ff02b1c
parent815c4163b6c8ebf8152f42b0a5fd015cfdcedc78 (diff)
init: Remove the BKL from startup code
I have shown by code review that no driver takes the BKL at init time any more, so whatever the init code was locking against is no longer there and it is now safe to remove the BKL there. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Steven Rostedt <rostedt@goodmis> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
-rw-r--r--init/main.c5
-rw-r--r--kernel/trace/trace.c8
2 files changed, 0 insertions, 13 deletions
diff --git a/init/main.c b/init/main.c
index a42fdf4aeba..9b34c1b8d76 100644
--- a/init/main.c
+++ b/init/main.c
@@ -444,7 +444,6 @@ static noinline void __init_refok rest_init(void)
444 kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns); 444 kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns);
445 rcu_read_unlock(); 445 rcu_read_unlock();
446 complete(&kthreadd_done); 446 complete(&kthreadd_done);
447 unlock_kernel();
448 447
449 /* 448 /*
450 * The boot idle thread must execute schedule() 449 * The boot idle thread must execute schedule()
@@ -565,7 +564,6 @@ asmlinkage void __init start_kernel(void)
565 * Interrupts are still disabled. Do necessary setups, then 564 * Interrupts are still disabled. Do necessary setups, then
566 * enable them 565 * enable them
567 */ 566 */
568 lock_kernel();
569 tick_init(); 567 tick_init();
570 boot_cpu_init(); 568 boot_cpu_init();
571 page_address_init(); 569 page_address_init();
@@ -829,7 +827,6 @@ static noinline int init_post(void)
829 /* need to finish all async __init code before freeing the memory */ 827 /* need to finish all async __init code before freeing the memory */
830 async_synchronize_full(); 828 async_synchronize_full();
831 free_initmem(); 829 free_initmem();
832 unlock_kernel();
833 mark_rodata_ro(); 830 mark_rodata_ro();
834 system_state = SYSTEM_RUNNING; 831 system_state = SYSTEM_RUNNING;
835 numa_default_policy(); 832 numa_default_policy();
@@ -869,8 +866,6 @@ static int __init kernel_init(void * unused)
869 * Wait until kthreadd is all set-up. 866 * Wait until kthreadd is all set-up.
870 */ 867 */
871 wait_for_completion(&kthreadd_done); 868 wait_for_completion(&kthreadd_done);
872 lock_kernel();
873
874 /* 869 /*
875 * init can allocate pages on any node 870 * init can allocate pages on any node
876 */ 871 */
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 086d3631680..8047ca5a823 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -734,13 +734,6 @@ __acquires(kernel_lock)
734 return -1; 734 return -1;
735 } 735 }
736 736
737 /*
738 * When this gets called we hold the BKL which means that
739 * preemption is disabled. Various trace selftests however
740 * need to disable and enable preemption for successful tests.
741 * So we drop the BKL here and grab it after the tests again.
742 */
743 unlock_kernel();
744 mutex_lock(&trace_types_lock); 737 mutex_lock(&trace_types_lock);
745 738
746 tracing_selftest_running = true; 739 tracing_selftest_running = true;
@@ -822,7 +815,6 @@ __acquires(kernel_lock)
822#endif 815#endif
823 816
824 out_unlock: 817 out_unlock:
825 lock_kernel();
826 return ret; 818 return ret;
827} 819}
828 820