uml: tidy fault code
Tidying in preparation for the segfault register dumping patch which follows. void * pointers are changed to union uml_pt_regs *. This makes the types match reality, except in arch_fixup, which is changed to operate on a union uml_pt_regs. This fixes a bug in the call from segv_handler, which passes a union uml_pt_regs, to segv, which expects to pass a struct sigcontext to arch_fixup. Whitespace and other style fixes. There's also a errno printk fix. Signed-off-by: Jeff Dike <jdike@linux.intel.com> Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
ccdddb5787
commit
5d86456d38
@@ -4,20 +4,24 @@
|
||||
* Licensed under the GPL
|
||||
*/
|
||||
|
||||
#include "user.h"
|
||||
#include "sysdep/ptrace.h"
|
||||
|
||||
int arch_fixup(unsigned long address, void *sc_ptr)
|
||||
/* These two are from asm-um/uaccess.h and linux/module.h, check them. */
|
||||
struct exception_table_entry
|
||||
{
|
||||
/* XXX search_exception_tables() */
|
||||
unsigned long insn;
|
||||
unsigned long fixup;
|
||||
};
|
||||
|
||||
const struct exception_table_entry *search_exception_tables(unsigned long add);
|
||||
int arch_fixup(unsigned long address, union uml_pt_regs *regs)
|
||||
{
|
||||
const struct exception_table_entry *fixup;
|
||||
|
||||
fixup = search_exception_tables(address);
|
||||
if(fixup != 0){
|
||||
UPT_IP(regs) = fixup->fixup;
|
||||
return(1);
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
|
||||
/* Overrides for Emacs so that we follow Linus's tabbing style.
|
||||
* Emacs will notice this stuff at the end of the file and automatically
|
||||
* adjust the settings for this buffer only. This must remain at the end
|
||||
* of the file.
|
||||
* ---------------------------------------------------------------------------
|
||||
* Local variables:
|
||||
* c-file-style: "linux"
|
||||
* End:
|
||||
*/
|
||||
|
Reference in New Issue
Block a user