diff options
Diffstat (limited to 'arch/m68k/kernel')
-rw-r--r-- | arch/m68k/kernel/setup.c | 1 | ||||
-rw-r--r-- | arch/m68k/kernel/sys_m68k.c | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/arch/m68k/kernel/setup.c b/arch/m68k/kernel/setup.c index 5f010dd76..7a6637a2e 100644 --- a/arch/m68k/kernel/setup.c +++ b/arch/m68k/kernel/setup.c @@ -111,6 +111,7 @@ long m68k_serial_console_init(void); #endif #ifdef CONFIG_HEARTBEAT void (*mach_heartbeat) (int) = NULL; +EXPORT_SYMBOL(mach_heartbeat); #endif #ifdef CONFIG_M68K_L2_CACHE void (*mach_l2_flush) (int) = NULL; diff --git a/arch/m68k/kernel/sys_m68k.c b/arch/m68k/kernel/sys_m68k.c index 46ddcc1a0..8e9c89716 100644 --- a/arch/m68k/kernel/sys_m68k.c +++ b/arch/m68k/kernel/sys_m68k.c @@ -143,7 +143,6 @@ asmlinkage long sys_mmap64(struct mmap_arg_struct64 *arg) if ((a.offset >> PAGE_SHIFT) != pgoff) return -EINVAL; - down(¤t->mm->mmap_sem); lock_kernel(); if (!(a.flags & MAP_ANONYMOUS)) { error = -EBADF; @@ -153,12 +152,13 @@ asmlinkage long sys_mmap64(struct mmap_arg_struct64 *arg) } a.flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); + down(¤t->mm->mmap_sem); error = do_mmap_pgoff(file, a.addr, a.len, a.prot, a.flags, pgoff); + up(¤t->mm->mmap_sem); if (file) fput(file); out: unlock_kernel(); - up(¤t->mm->mmap_sem); return error; } #endif |