Currently if we take hypervisor facility unavaliable (from 0xf80/0x4f80) we mark it as an OS facility unavaliable (0xf60) as the two share the same code path. The becomes a problem in facility_unavailable_exception() as we aren't able to see the hypervisor facility unavailable exceptions. Below fixes this by duplication the required macros.
Unified · Split
| @@ -848,7 +848,7 @@ hv_facility_unavailable_relon_trampoline: · 847 unmodified lines | ||
| 848 | 848 | . = 0x4f80 |
| 849 | 849 | SET_SCRATCH0(r13) |
| 850 | 850 | EXCEPTION_PROLOG_0(PACA_EXGEN) |
| 851 | − b facility_unavailable_relon_hv | |
| 851 | + b hv_facility_unavailable_relon_hv | |
| 852 | 852 | |
| 853 | 853 | STD_RELON_EXCEPTION_PSERIES(0x5300, 0x1300, instruction_breakpoint) |
| 854 | 854 | #ifdef CONFIG_PPC_DENORMALISATION |
| @@ -1175,6 +1175,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_VSX) · 320 unmodified lines | ||
| 1175 | 1175 | b .ret_from_except |
| 1176 | 1176 | |
| 1177 | 1177 | STD_EXCEPTION_COMMON(0xf60, facility_unavailable, .facility_unavailable_exception) |
| 1178 | + STD_EXCEPTION_COMMON(0xf80, hv_facility_unavailable, .facility_unavailable_exception) | |
| 1178 | 1179 | |
| 1179 | 1180 | .align 7 |
| 1180 | 1181 | .globl __end_handlers |
| @@ -1188,7 +1189,7 @@ __end_handlers: · 7 unmodified lines | ||
| 1188 | 1189 | STD_RELON_EXCEPTION_PSERIES_OOL(0xf20, altivec_unavailable) |
| 1189 | 1190 | STD_RELON_EXCEPTION_PSERIES_OOL(0xf40, vsx_unavailable) |
| 1190 | 1191 | STD_RELON_EXCEPTION_PSERIES_OOL(0xf60, facility_unavailable) |
| 1191 | − STD_RELON_EXCEPTION_HV_OOL(0xf80, facility_unavailable) | |
| 1192 | + STD_RELON_EXCEPTION_HV_OOL(0xf80, hv_facility_unavailable) | |
| 1192 | 1193 | |
| 1193 | 1194 | #if defined(CONFIG_PPC_PSERIES) || defined(CONFIG_PPC_POWERNV) |
| 1194 | 1195 | /* |