hc
2023-11-06 e3e12f52b214121840b44c91de5b3e5af5d3eb84
kernel/arch/arm/mm/fault.c
....@@ -439,6 +439,9 @@
439439 if (addr < TASK_SIZE)
440440 return do_page_fault(addr, fsr, regs);
441441
442
+ if (interrupts_enabled(regs))
443
+ local_irq_enable();
444
+
442445 if (user_mode(regs))
443446 goto bad_area;
444447
....@@ -506,6 +509,9 @@
506509 static int
507510 do_sect_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
508511 {
512
+ if (interrupts_enabled(regs))
513
+ local_irq_enable();
514
+
509515 do_bad_area(addr, fsr, regs);
510516 return 0;
511517 }