Skip to content

Commit

Permalink
parisc: optimize variable initialization in do_page_fault
Browse files Browse the repository at this point in the history
The attached change defers the initialization of the variables tsk, mm
and flags until they are needed. As a result, the code won't crash if a
kernel probe is done with a corrupt context and the code will be better
optimized.

Signed-off-by: John David Anglin  <dave.anglin@bell.net>
Signed-off-by: Helge Deller <deller@gmx.de>
  • Loading branch information
John David Anglin authored and Helge Deller committed Oct 13, 2013
1 parent 59b33f1 commit 2d8b22d
Showing 1 changed file with 10 additions and 5 deletions.
15 changes: 10 additions & 5 deletions arch/parisc/mm/fault.c
Original file line number Diff line number Diff line change
Expand Up @@ -171,20 +171,25 @@ void do_page_fault(struct pt_regs *regs, unsigned long code,
unsigned long address)
{
struct vm_area_struct *vma, *prev_vma;
struct task_struct *tsk = current;
struct mm_struct *mm = tsk->mm;
struct task_struct *tsk;
struct mm_struct *mm;
unsigned long acc_type;
int fault;
unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
unsigned int flags;

if (in_atomic() || !mm)
if (in_atomic())
goto no_context;

tsk = current;
mm = tsk->mm;
if (!mm)
goto no_context;

flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
if (user_mode(regs))
flags |= FAULT_FLAG_USER;

acc_type = parisc_acctyp(code, regs->iir);

if (acc_type & VM_WRITE)
flags |= FAULT_FLAG_WRITE;
retry:
Expand Down

0 comments on commit 2d8b22d

Please sign in to comment.