| .. | .. |
|---|
| 21 | 21 | REST_32VRS(0,r4,r3) |
|---|
| 22 | 22 | blr |
|---|
| 23 | 23 | EXPORT_SYMBOL(load_vr_state) |
|---|
| 24 | +_ASM_NOKPROBE_SYMBOL(load_vr_state); /* used by restore_math */ |
|---|
| 24 | 25 | |
|---|
| 25 | 26 | /* |
|---|
| 26 | 27 | * Store VMX state into memory, including VSCR. |
|---|
| .. | .. |
|---|
| 66 | 67 | #ifdef CONFIG_PPC32 |
|---|
| 67 | 68 | mfspr r5,SPRN_SPRG_THREAD /* current task's THREAD (phys) */ |
|---|
| 68 | 69 | oris r9,r9,MSR_VEC@h |
|---|
| 70 | +#ifdef CONFIG_VMAP_STACK |
|---|
| 71 | + tovirt(r5, r5) |
|---|
| 72 | +#endif |
|---|
| 69 | 73 | #else |
|---|
| 70 | 74 | ld r4,PACACURRENT(r13) |
|---|
| 71 | 75 | addi r5,r4,THREAD /* Get THREAD */ |
|---|
| 72 | 76 | oris r12,r12,MSR_VEC@h |
|---|
| 73 | 77 | std r12,_MSR(r1) |
|---|
| 74 | 78 | #endif |
|---|
| 75 | | - /* Don't care if r4 overflows, this is desired behaviour */ |
|---|
| 76 | | - lbz r4,THREAD_LOAD_VEC(r5) |
|---|
| 77 | | - addi r4,r4,1 |
|---|
| 79 | + li r4,1 |
|---|
| 78 | 80 | stb r4,THREAD_LOAD_VEC(r5) |
|---|
| 79 | 81 | addi r6,r5,THREAD_VRSTATE |
|---|
| 80 | 82 | li r4,1 |
|---|
| .. | .. |
|---|
| 85 | 87 | REST_32VRS(0,r4,r6) |
|---|
| 86 | 88 | /* restore registers and return */ |
|---|
| 87 | 89 | blr |
|---|
| 90 | +_ASM_NOKPROBE_SYMBOL(load_up_altivec) |
|---|
| 88 | 91 | |
|---|
| 89 | 92 | /* |
|---|
| 90 | 93 | * save_altivec(tsk) |
|---|
| .. | .. |
|---|
| 130 | 133 | /* enable use of VSX after return */ |
|---|
| 131 | 134 | oris r12,r12,MSR_VSX@h |
|---|
| 132 | 135 | std r12,_MSR(r1) |
|---|
| 133 | | - b fast_exception_return |
|---|
| 136 | + b fast_interrupt_return |
|---|
| 134 | 137 | |
|---|
| 135 | 138 | #endif /* CONFIG_VSX */ |
|---|
| 136 | 139 | |
|---|