|
@@ -206,7 +206,7 @@ unsigned long segv(struct faultinfo fi, unsigned long ip, int is_user,
|
|
int is_write = FAULT_WRITE(fi);
|
|
int is_write = FAULT_WRITE(fi);
|
|
unsigned long address = FAULT_ADDRESS(fi);
|
|
unsigned long address = FAULT_ADDRESS(fi);
|
|
|
|
|
|
- if (regs)
|
|
|
|
|
|
+ if (!is_user && regs)
|
|
current->thread.segv_regs = container_of(regs, struct pt_regs, regs);
|
|
current->thread.segv_regs = container_of(regs, struct pt_regs, regs);
|
|
|
|
|
|
if (!is_user && (address >= start_vm) && (address < end_vm)) {
|
|
if (!is_user && (address >= start_vm) && (address < end_vm)) {
|