Skip to content

Commit

Permalink
[PATCH] UML: add generic BUG support
Browse files Browse the repository at this point in the history
The BUG changes in -mm3 need some arch support.  This patch adds the UML
support needed.  For the most part, it was stolen from the underlying
architecture.  The exception is the kernel eip < PAGE_OFFSET test, which is
wrong for skas mode UMLs.

Signed-off-by: Jeff Dike <[email protected]>
Cc: Jeremy Fitzhardinge <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
cfd-36 authored and Linus Torvalds committed Dec 8, 2006
1 parent c31a0bf commit e182c96
Show file tree
Hide file tree
Showing 6 changed files with 50 additions and 3 deletions.
5 changes: 5 additions & 0 deletions arch/um/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@ config GENERIC_CALIBRATE_DELAY
bool
default y

config GENERIC_BUG
bool
default y
depends on BUG

# Used in kernel/irq/manage.c and include/linux/irq.h
config IRQ_RELEASE_METHOD
bool
Expand Down
2 changes: 1 addition & 1 deletion arch/um/sys-i386/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
obj-y = bugs.o checksum.o delay.o fault.o ksyms.o ldt.o ptrace.o \
obj-y = bug.o bugs.o checksum.o delay.o fault.o ksyms.o ldt.o ptrace.o \
ptrace_user.o setjmp.o signal.o sigcontext.o syscalls.o sysrq.o \
sys_call_table.o tls.o

Expand Down
20 changes: 20 additions & 0 deletions arch/um/sys-i386/bug.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/*
* Copyright (C) 2006 Jeff Dike ([email protected])
* Licensed under the GPL V2
*/

#include <linux/uaccess.h>

/* Mostly copied from i386/x86_86 - eliminated the eip < PAGE_OFFSET because
* that's not relevent in skas mode.
*/

int is_valid_bugaddr(unsigned long eip)
{
unsigned short ud2;

if (probe_kernel_address((unsigned short __user *)eip, ud2))
return 0;

return ud2 == 0x0b0f;
}
2 changes: 1 addition & 1 deletion arch/um/sys-x86_64/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Licensed under the GPL
#

obj-y = bugs.o delay.o fault.o ldt.o mem.o ptrace.o ptrace_user.o \
obj-y = bug.o bugs.o delay.o fault.o ldt.o mem.o ptrace.o ptrace_user.o \
setjmp.o sigcontext.o signal.o syscalls.o syscall_table.o sysrq.o \
ksyms.o tls.o

Expand Down
20 changes: 20 additions & 0 deletions arch/um/sys-x86_64/bug.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/*
* Copyright (C) 2006 Jeff Dike ([email protected])
* Licensed under the GPL V2
*/

#include <linux/uaccess.h>

/* Mostly copied from i386/x86_86 - eliminated the eip < PAGE_OFFSET because
* that's not relevent in skas mode.
*/

int is_valid_bugaddr(unsigned long eip)
{
unsigned short ud2;

if (probe_kernel_address((unsigned short __user *)eip, ud2))
return 0;

return ud2 == 0x0b0f;
}
4 changes: 3 additions & 1 deletion include/asm-um/bug.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#ifndef __UM_BUG_H
#define __UM_BUG_H
#include <asm-generic/bug.h>

#include <asm/arch/bug.h>

#endif

0 comments on commit e182c96

Please sign in to comment.