![]() The Undef abort handler in the kernel reads the undefined instruction from user space. If the page table was modified from another CPU, the user access could fail and do_page_fault() will be executed with interrupts disabled. This can potentially deadlock on ARM11MPCore or on Cortex-A15 with erratum 798181 workaround enabled (both implying IPI for TLB maintenance with page table lock held). This patch enables the IRQs in __und_usr before attempting to read the instruction from user space. CRs-Fixed: 685372 Change-Id: Id6dc049b923b577373d38bb66a8404711c1a60f5 Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Tested-by: Arun KS <getarunks@gmail.com> Cc: Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ryan Mallon <rmallon@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Git-commit: 1417a6b8dc4db73055be9a3aa288b050e9dc06ab Git-repo: git://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git Signed-off-by: Kishan Kumar <kishank@codeaurora.org> |
||
---|---|---|
.. | ||
Makefile | ||
entry.S | ||
vfp.h | ||
vfpdouble.c | ||
vfphw.S | ||
vfpinstr.h | ||
vfpmodule.c | ||
vfpsingle.c |