|
@@ -107,7 +107,6 @@ void bust_spinlocks(int yes)
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
|
* Find out which address space caused the exception.
|
|
* Find out which address space caused the exception.
|
|
|
- * Access register mode is impossible, ignore space == 3.
|
|
|
|
|
*/
|
|
*/
|
|
|
static inline enum fault_type get_fault_type(struct pt_regs *regs)
|
|
static inline enum fault_type get_fault_type(struct pt_regs *regs)
|
|
|
{
|
|
{
|
|
@@ -132,6 +131,10 @@ static inline enum fault_type get_fault_type(struct pt_regs *regs)
|
|
|
}
|
|
}
|
|
|
return VDSO_FAULT;
|
|
return VDSO_FAULT;
|
|
|
}
|
|
}
|
|
|
|
|
+ if (trans_exc_code == 1) {
|
|
|
|
|
+ /* access register mode, not used in the kernel */
|
|
|
|
|
+ return USER_FAULT;
|
|
|
|
|
+ }
|
|
|
/* home space exception -> access via kernel ASCE */
|
|
/* home space exception -> access via kernel ASCE */
|
|
|
return KERNEL_FAULT;
|
|
return KERNEL_FAULT;
|
|
|
}
|
|
}
|