Unified · Split
| @@ -557,9 +557,16 @@ ENTRY(__switch_to) · 556 unmodified lines | ||
| 557 | 557 | ldmia r4, {r4 - sl, fp, ip, lr} @ Load all regs saved previously |
| 558 | 558 | #ifdef CONFIG_VMAP_STACK |
| 559 | 559 | @ |
| 560 | − @ Do a dummy read from the new stack while running from the old one so | |
| 561 | − @ that we can rely on do_translation_fault() to fix up any stale PMD | |
| 562 | − @ entries covering the vmalloc region. | |
| 560 | + @ For a non-lazy mm switch, check_vmalloc_seq() has ensured that | |
| 561 | + @ that the active mm's page tables have mappings for the prev | |
| 562 | + @ task's stack and the next task's stack. | |
| 563 | + @ | |
| 564 | + @ For a lazy mm switch the active mm's page tables have mappings | |
| 565 | + @ for the prev task's stack but might not have mappings for the | |
| 566 | + @ new task's stack. Do a dummy read from the new stack while | |
| 567 | + @ running from the old stack so that we can rely on | |
| 568 | + @ do_translation_fault() to populate missing PMD entries covering the | |
| 569 | + @ new task's stack in the old task's page tables. | |
| 563 | 570 | @ |
| 564 | 571 | ldr r2, [ip] |
| 565 | 572 | #ifdef CONFIG_KASAN_VMALLOC |
| @@ -8,8 +8,6 @@ · 7 unmodified lines | ||
| 8 | 8 | * |
| 9 | 9 | * These are the low level assembler for performing cache and TLB |
| 10 | 10 | * functions on the arm920. |
| 11 | − * | |
| 12 | − * CONFIG_CPU_ARM920_CPU_IDLE -> nohlt | |
| 13 | 11 | */ |
| 14 | 12 | #include <linux/linkage.h> |
| 15 | 13 | #include <linux/init.h> |
| @@ -9,8 +9,6 @@ · 8 unmodified lines | ||
| 9 | 9 | * |
| 10 | 10 | * These are the low level assembler for performing cache and TLB |
| 11 | 11 | * functions on the arm922. |
| 12 | − * | |
| 13 | − * CONFIG_CPU_ARM922_CPU_IDLE -> nohlt | |
| 14 | 12 | */ |
| 15 | 13 | #include <linux/linkage.h> |
| 16 | 14 | #include <linux/init.h> |
| @@ -15,8 +15,6 @@ · 14 unmodified lines | ||
| 15 | 15 | * These are the low level assembler for performing cache and TLB |
| 16 | 16 | * functions on the arm925. |
| 17 | 17 | * |
| 18 | − * CONFIG_CPU_ARM925_CPU_IDLE -> nohlt | |
| 19 | − * | |
| 20 | 18 | * Some additional notes based on deciphering the TI TRM on OMAP-5910: |
| 21 | 19 | * |
| 22 | 20 | * NOTE1: The TI925T Configuration Register bit "D-cache clean and flush |
| @@ -8,8 +8,6 @@ · 7 unmodified lines | ||
| 8 | 8 | * |
| 9 | 9 | * These are the low level assembler for performing cache and TLB |
| 10 | 10 | * functions on the arm926. |
| 11 | − * | |
| 12 | − * CONFIG_CPU_ARM926_CPU_IDLE -> nohlt | |
| 13 | 11 | */ |
| 14 | 12 | #include <linux/linkage.h> |
| 15 | 13 | #include <linux/init.h> |
| @@ -1649,24 +1649,16 @@ out: · 1648 unmodified lines | ||
| 1649 | 1649 | |
| 1650 | 1650 | return ret; |
| 1651 | 1651 | } |
| 1652 | − | |
| 1652 | +late_initcall(run_all_tests); | |
| 1653 | 1653 | |
| 1654 | 1654 | /* |
| 1655 | 1655 | * Module setup |
| 1656 | 1656 | */ |
| 1657 | 1657 | |
| 1658 | −#ifdef MODULE | |
| 1659 | − | |
| 1660 | 1658 | static void __exit kprobe_test_exit(void) |
| 1661 | 1659 | { |
| 1662 | 1660 | } |
| 1663 | − | |
| 1664 | −module_init(run_all_tests) | |
| 1665 | 1661 | module_exit(kprobe_test_exit) |
| 1666 | −MODULE_LICENSE("GPL"); | |
| 1667 | 1662 | |
| 1668 | −#else /* !MODULE */ | |
| 1669 | − | |
| 1670 | −late_initcall(run_all_tests); | |
| 1671 | − | |
| 1672 | −#endif | |
| 1663 | +MODULE_DESCRIPTION("Test code for ARM kprobes"); | |
| 1664 | +MODULE_LICENSE("GPL"); | |