Commit 40316c1f authored by Jesper Nilsson's avatar Jesper Nilsson

CRIS v10: Fix bug where error returns didn't restore irqs in mm/fault.c

Don't return when we're inside local_irq_disable(), use goto exit instead.
Also, cleanup some whitespace errors.
parent 5712e4df
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* Low level bus fault handler * Low level bus fault handler
* *
* *
* Copyright (C) 2000, 2001 Axis Communications AB * Copyright (C) 2000-2007 Axis Communications AB
* *
* Authors: Bjorn Wesen * Authors: Bjorn Wesen
* *
...@@ -84,12 +84,13 @@ handle_mmu_bus_fault(struct pt_regs *regs) ...@@ -84,12 +84,13 @@ handle_mmu_bus_fault(struct pt_regs *regs)
local_irq_disable(); local_irq_disable();
pmd = (pmd_t *)(pgd + pgd_index(address)); pmd = (pmd_t *)(pgd + pgd_index(address));
if (pmd_none(*pmd)) if (pmd_none(*pmd))
return; goto exit;
pte = *pte_offset_kernel(pmd, address); pte = *pte_offset_kernel(pmd, address);
if (!pte_present(pte)) if (!pte_present(pte))
return; goto exit;
*R_TLB_SELECT = select; *R_TLB_SELECT = select;
*R_TLB_HI = cause; *R_TLB_HI = cause;
*R_TLB_LO = pte_val(pte); *R_TLB_LO = pte_val(pte);
exit:
local_irq_restore(flags); local_irq_restore(flags);
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment