From b92383663a3ab5126177563f6971ebeb9b10b404 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Mon, 4 Apr 2022 14:25:28 +0300 Subject: [PATCH] linux-headers-5.4.0-3.19 --- Makefile | 2 +- arch/e2k/include/asm/kvm/proc_context_types.h | 2 +- arch/e2k/include/asm/kvm/process.h | 5 ++ arch/e2k/include/asm/kvm/trap_table.h | 5 ++ arch/e2k/include/asm/trap_def.h | 89 ++++++++++--------- 5 files changed, 57 insertions(+), 46 deletions(-) diff --git a/Makefile b/Makefile index 3c35ae6..eb07ef5 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ VERSION = 5 PATCHLEVEL = 4 SUBLEVEL = 170 -EXTRAVERSION = -3.18 +EXTRAVERSION = -3.19 NAME = Kleptomaniac Octopus # *DOCUMENTATION* diff --git a/arch/e2k/include/asm/kvm/proc_context_types.h b/arch/e2k/include/asm/kvm/proc_context_types.h index 3e37eb2..024de2f 100644 --- a/arch/e2k/include/asm/kvm/proc_context_types.h +++ b/arch/e2k/include/asm/kvm/proc_context_types.h @@ -12,7 +12,7 @@ typedef struct kvm_proc_ctxt_hw_stacks { size_t d_stack_sz; bool protected; u64 gst_mkctxt_trampoline; - void *ps_frames; + e2k_mem_ps_t *ps_frames; e2k_mem_crs_t *cs_frames; } kvm_proc_ctxt_hw_stacks_t; diff --git a/arch/e2k/include/asm/kvm/process.h b/arch/e2k/include/asm/kvm/process.h index f672d21..7ac5bde 100644 --- a/arch/e2k/include/asm/kvm/process.h +++ b/arch/e2k/include/asm/kvm/process.h @@ -329,6 +329,11 @@ host_exit_to_usermode_loop(struct pt_regs *regs, bool syscall, bool has_signal) SAVE_GUEST_KERNEL_GREGS_COPY_TO(k_gregs, g_gregs, false); \ }) +#define SET_PREEMPT_CNT_GUEST_KERNEL_GREGS_COPY(__gti, val) \ +({ \ + __gti->gk_gregs.g[SMP_CPU_ID_GREGS_PAIRS_INDEX].base = val; \ +}) + #ifdef CONFIG_SMP #define RESTORE_GUEST_KERNEL_GREGS_COPY_FROM(__k_gregs, __g_gregs, \ only_kernel) \ diff --git a/arch/e2k/include/asm/kvm/trap_table.h b/arch/e2k/include/asm/kvm/trap_table.h index 90af49d..901c80b 100644 --- a/arch/e2k/include/asm/kvm/trap_table.h +++ b/arch/e2k/include/asm/kvm/trap_table.h @@ -701,6 +701,11 @@ pass_the_trap_to_guest(struct pt_regs *regs, return 0; } } + if (trap_no == exc_instr_debug_num || + trap_no == exc_data_debug_num) { + /* debug trap on host, handle by host */ + return 0; + } if (kvm_vcpu_in_hypercall(vcpu)) { /* the trap on host, so handles it by host */ return 0; diff --git a/arch/e2k/include/asm/trap_def.h b/arch/e2k/include/asm/trap_def.h index 9b00bd7..fc842c4 100644 --- a/arch/e2k/include/asm/trap_def.h +++ b/arch/e2k/include/asm/trap_def.h @@ -26,51 +26,53 @@ * Trap Info Register: the numbers of exceptions */ -#define exc_illegal_opcode_num 0 /* 00 */ -#define exc_priv_action_num 1 /* 01 */ -#define exc_fp_disabled_num 2 /* 02 */ -#define exc_fp_stack_u_num 3 /* 03 */ -#define exc_d_interrupt_num 4 /* 04 */ -#define exc_diag_ct_cond_num 5 /* 05 */ -#define exc_diag_instr_addr_num 6 /* 06 */ -#define exc_illegal_instr_addr_num 7 /* 07 */ -#define exc_instr_debug_num 8 /* 08 */ -#define exc_window_bounds_num 9 /* 09 */ -#define exc_user_stack_bounds_num 10 /* 10 */ -#define exc_proc_stack_bounds_num 11 /* 11 */ -#define exc_chain_stack_bounds_num 12 /* 12 */ -#define exc_fp_stack_o_num 13 /* 13 */ -#define exc_diag_cond_num 14 /* 14 */ -#define exc_diag_operand_num 15 /* 15 */ -#define exc_illegal_operand_num 16 /* 16 */ -#define exc_array_bounds_num 17 /* 17 */ -#define exc_access_rights_num 18 /* 18 */ -#define exc_addr_not_aligned_num 19 /* 19 */ -#define exc_instr_page_miss_num 20 /* 20 */ -#define exc_instr_page_prot_num 21 /* 21 */ -#define exc_ainstr_page_miss_num 22 /* 22 */ -#define exc_ainstr_page_prot_num 23 /* 23 */ -#define exc_last_wish_num 24 /* 24 */ -#define exc_base_not_aligned_num 25 /* 25 */ -#define exc_software_trap_num 26 /* 26 */ +#define exc_illegal_opcode_num 0 +#define exc_priv_action_num 1 +#define exc_fp_disabled_num 2 +#define exc_fp_stack_u_num 3 +#define exc_d_interrupt_num 4 +#define exc_diag_ct_cond_num 5 +#define exc_diag_instr_addr_num 6 +#define exc_illegal_instr_addr_num 7 +#define exc_instr_debug_num 8 +#define exc_window_bounds_num 9 +#define exc_user_stack_bounds_num 10 +#define exc_proc_stack_bounds_num 11 +#define exc_chain_stack_bounds_num 12 +#define exc_fp_stack_o_num 13 +#define exc_diag_cond_num 14 +#define exc_diag_operand_num 15 +#define exc_illegal_operand_num 16 +#define exc_array_bounds_num 17 +#define exc_access_rights_num 18 +#define exc_addr_not_aligned_num 19 +#define exc_instr_page_miss_num 20 +#define exc_instr_page_prot_num 21 +#define exc_ainstr_page_miss_num 22 +#define exc_ainstr_page_prot_num 23 +#define exc_last_wish_num 24 +#define exc_base_not_aligned_num 25 +#define exc_software_trap_num 26 -#define exc_data_debug_num 28 /* 28 */ -#define exc_data_page_num 29 /* 29 */ +#define exc_data_debug_num 28 +#define exc_data_page_num 29 -#define exc_recovery_point_num 31 /* 31 */ -#define exc_interrupt_num 32 /* 32 */ -#define exc_nm_interrupt_num 33 /* 33 */ -#define exc_div_num 34 /* 34 */ -#define exc_fp_num 35 /* 35 */ -#define exc_mem_lock_num 36 /* 36 */ -#define exc_mem_lock_as_num 37 /* 37 */ -#define exc_data_error_num 38 /* 38 */ -#define exc_mem_error_out_cpu_num 38 /* 38 */ -#define exc_mem_error_MAU_num 39 /* 39 */ -#define exc_mem_error_L2_num 40 /* 40 */ -#define exc_mem_error_L1_35_num 41 /* 41 */ -#define exc_mem_error_L1_02_num 42 /* 42 */ -#define exc_mem_error_ICACHE_num 43 /* 43 */ +#define core_dump_num 30 + +#define exc_recovery_point_num 31 +#define exc_interrupt_num 32 +#define exc_nm_interrupt_num 33 +#define exc_div_num 34 +#define exc_fp_num 35 +#define exc_mem_lock_num 36 +#define exc_mem_lock_as_num 37 +#define exc_data_error_num 38 +#define exc_mem_error_out_cpu_num 38 +#define exc_mem_error_MAU_num 39 +#define exc_mem_error_L2_num 40 +#define exc_mem_error_L1_35_num 41 +#define exc_mem_error_L1_02_num 42 +#define exc_mem_error_ICACHE_num 43 #define exc_max_num 43 @@ -79,7 +81,6 @@ #define exc_mova_ch_2_num 54 /* [54] TIR.aa.[2] */ #define exc_mova_ch_3_num 55 /* [55] TIR.aa.[3] */ -#define core_dump_num 38 /* 38 */ #define masked_hw_stack_bounds_num 60 /* hardware stacks bounds */ /* trap is occured but masked */