author: Yadi.hu <yadi.hu@windriver.com> 2014-12-10 10:32:09 +0800
committer: Minda Chen <minda.chen@starfivetech.com> 2023-11-06 19:24:52 +0800
commit: f39aa40a92b3cc6749463638c68503ff04bf8022
parent: 7bf110becd54c507a4d4534c8ee6e85564f15211
Commit Summary:
Diffstat:
1 file changed, 6 insertions, 0 deletions
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
index efa402025031..59487ee9fd61 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -400,6 +400,9 @@ do_translation_fault(unsigned long addr, unsigned int fsr,
if (addr < TASK_SIZE)
return do_page_fault(addr, fsr, regs);
+ if (interrupts_enabled(regs))
+ local_irq_enable();
+
if (user_mode(regs))
goto bad_area;
@@ -470,6 +473,9 @@ do_translation_fault(unsigned long addr, unsigned int fsr,
static int
do_sect_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
{
+ if (interrupts_enabled(regs))
+ local_irq_enable();
+
do_bad_area(addr, fsr, regs);
return 0;
}