|
|
@@ -317,9 +317,21 @@ static int get_hbp_len(u8 hbp_len)
|
|
|
case ARM_BREAKPOINT_LEN_2:
|
|
|
len_in_bytes = 2;
|
|
|
break;
|
|
|
+ case ARM_BREAKPOINT_LEN_3:
|
|
|
+ len_in_bytes = 3;
|
|
|
+ break;
|
|
|
case ARM_BREAKPOINT_LEN_4:
|
|
|
len_in_bytes = 4;
|
|
|
break;
|
|
|
+ case ARM_BREAKPOINT_LEN_5:
|
|
|
+ len_in_bytes = 5;
|
|
|
+ break;
|
|
|
+ case ARM_BREAKPOINT_LEN_6:
|
|
|
+ len_in_bytes = 6;
|
|
|
+ break;
|
|
|
+ case ARM_BREAKPOINT_LEN_7:
|
|
|
+ len_in_bytes = 7;
|
|
|
+ break;
|
|
|
case ARM_BREAKPOINT_LEN_8:
|
|
|
len_in_bytes = 8;
|
|
|
break;
|
|
|
@@ -381,9 +393,21 @@ int arch_bp_generic_fields(struct arch_hw_breakpoint_ctrl ctrl,
|
|
|
case ARM_BREAKPOINT_LEN_2:
|
|
|
*gen_len = HW_BREAKPOINT_LEN_2;
|
|
|
break;
|
|
|
+ case ARM_BREAKPOINT_LEN_3:
|
|
|
+ *gen_len = HW_BREAKPOINT_LEN_3;
|
|
|
+ break;
|
|
|
case ARM_BREAKPOINT_LEN_4:
|
|
|
*gen_len = HW_BREAKPOINT_LEN_4;
|
|
|
break;
|
|
|
+ case ARM_BREAKPOINT_LEN_5:
|
|
|
+ *gen_len = HW_BREAKPOINT_LEN_5;
|
|
|
+ break;
|
|
|
+ case ARM_BREAKPOINT_LEN_6:
|
|
|
+ *gen_len = HW_BREAKPOINT_LEN_6;
|
|
|
+ break;
|
|
|
+ case ARM_BREAKPOINT_LEN_7:
|
|
|
+ *gen_len = HW_BREAKPOINT_LEN_7;
|
|
|
+ break;
|
|
|
case ARM_BREAKPOINT_LEN_8:
|
|
|
*gen_len = HW_BREAKPOINT_LEN_8;
|
|
|
break;
|
|
|
@@ -427,9 +451,21 @@ static int arch_build_bp_info(struct perf_event *bp)
|
|
|
case HW_BREAKPOINT_LEN_2:
|
|
|
info->ctrl.len = ARM_BREAKPOINT_LEN_2;
|
|
|
break;
|
|
|
+ case HW_BREAKPOINT_LEN_3:
|
|
|
+ info->ctrl.len = ARM_BREAKPOINT_LEN_3;
|
|
|
+ break;
|
|
|
case HW_BREAKPOINT_LEN_4:
|
|
|
info->ctrl.len = ARM_BREAKPOINT_LEN_4;
|
|
|
break;
|
|
|
+ case HW_BREAKPOINT_LEN_5:
|
|
|
+ info->ctrl.len = ARM_BREAKPOINT_LEN_5;
|
|
|
+ break;
|
|
|
+ case HW_BREAKPOINT_LEN_6:
|
|
|
+ info->ctrl.len = ARM_BREAKPOINT_LEN_6;
|
|
|
+ break;
|
|
|
+ case HW_BREAKPOINT_LEN_7:
|
|
|
+ info->ctrl.len = ARM_BREAKPOINT_LEN_7;
|
|
|
+ break;
|
|
|
case HW_BREAKPOINT_LEN_8:
|
|
|
info->ctrl.len = ARM_BREAKPOINT_LEN_8;
|
|
|
break;
|