Эх сурвалжийг харах

alpha: kill big kernel lock

All uses of the BKL on alpha are totally bogus, nothing
is really protected by this. Remove the remaining users
so we don't have to mark alpha as 'depends on BKL'.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: linux-alpha@vger.kernel.org
Signed-off-by: Matt Turner <mattst88@gmail.com>
Arnd Bergmann 14 жил өмнө
parent
commit
12e750d956

+ 0 - 5
arch/alpha/kernel/osf_sys.c

@@ -15,7 +15,6 @@
 #include <linux/kernel.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/mm.h>
 #include <linux/smp.h>
 #include <linux/smp.h>
-#include <linux/smp_lock.h>
 #include <linux/stddef.h>
 #include <linux/stddef.h>
 #include <linux/syscalls.h>
 #include <linux/syscalls.h>
 #include <linux/unistd.h>
 #include <linux/unistd.h>
@@ -69,7 +68,6 @@ SYSCALL_DEFINE4(osf_set_program_attributes, unsigned long, text_start,
 {
 {
 	struct mm_struct *mm;
 	struct mm_struct *mm;
 
 
-	lock_kernel();
 	mm = current->mm;
 	mm = current->mm;
 	mm->end_code = bss_start + bss_len;
 	mm->end_code = bss_start + bss_len;
 	mm->start_brk = bss_start + bss_len;
 	mm->start_brk = bss_start + bss_len;
@@ -78,7 +76,6 @@ SYSCALL_DEFINE4(osf_set_program_attributes, unsigned long, text_start,
 	printk("set_program_attributes(%lx %lx %lx %lx)\n",
 	printk("set_program_attributes(%lx %lx %lx %lx)\n",
 		text_start, text_len, bss_start, bss_len);
 		text_start, text_len, bss_start, bss_len);
 #endif
 #endif
-	unlock_kernel();
 	return 0;
 	return 0;
 }
 }
 
 
@@ -517,7 +514,6 @@ SYSCALL_DEFINE2(osf_proplist_syscall, enum pl_code, code,
 	long error;
 	long error;
 	int __user *min_buf_size_ptr;
 	int __user *min_buf_size_ptr;
 
 
-	lock_kernel();
 	switch (code) {
 	switch (code) {
 	case PL_SET:
 	case PL_SET:
 		if (get_user(error, &args->set.nbytes))
 		if (get_user(error, &args->set.nbytes))
@@ -547,7 +543,6 @@ SYSCALL_DEFINE2(osf_proplist_syscall, enum pl_code, code,
 		error = -EOPNOTSUPP;
 		error = -EOPNOTSUPP;
 		break;
 		break;
 	};
 	};
-	unlock_kernel();
 	return error;
 	return error;
 }
 }
 
 

+ 0 - 3
arch/alpha/kernel/traps.c

@@ -13,7 +13,6 @@
 #include <linux/sched.h>
 #include <linux/sched.h>
 #include <linux/tty.h>
 #include <linux/tty.h>
 #include <linux/delay.h>
 #include <linux/delay.h>
-#include <linux/smp_lock.h>
 #include <linux/module.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/init.h>
 #include <linux/kallsyms.h>
 #include <linux/kallsyms.h>
@@ -623,7 +622,6 @@ do_entUna(void * va, unsigned long opcode, unsigned long reg,
 		return;
 		return;
 	}
 	}
 
 
-	lock_kernel();
 	printk("Bad unaligned kernel access at %016lx: %p %lx %lu\n",
 	printk("Bad unaligned kernel access at %016lx: %p %lx %lu\n",
 		pc, va, opcode, reg);
 		pc, va, opcode, reg);
 	do_exit(SIGSEGV);
 	do_exit(SIGSEGV);
@@ -646,7 +644,6 @@ got_exception:
 	 * Yikes!  No one to forward the exception to.
 	 * Yikes!  No one to forward the exception to.
 	 * Since the registers are in a weird format, dump them ourselves.
 	 * Since the registers are in a weird format, dump them ourselves.
  	 */
  	 */
-	lock_kernel();
 
 
 	printk("%s(%d): unhandled unaligned exception\n",
 	printk("%s(%d): unhandled unaligned exception\n",
 	       current->comm, task_pid_nr(current));
 	       current->comm, task_pid_nr(current));