aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2015-12-21 03:10:05 -0500
committerVineet Gupta <vgupta@synopsys.com>2015-12-21 03:31:25 -0500
commit6d0d506012c93d3393b8d3d0cac62e46e541c5b6 (patch)
tree2731ac132e4506d3cd63e80554ded66038ceba6e
parent2d64affc92d6281d2eca4faad326b981773bf040 (diff)
ARC: dw2 unwind: Don't bail for CIE.version != 1
The rudimentary CIE.version == 3 handling is already present in code (for return address register specification) Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
-rw-r--r--arch/arc/kernel/unwind.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/arch/arc/kernel/unwind.c b/arch/arc/kernel/unwind.c
index 9f9ecc15556e..f34599abe182 100644
--- a/arch/arc/kernel/unwind.c
+++ b/arch/arc/kernel/unwind.c
@@ -600,9 +600,6 @@ static signed fde_pointer_type(const u32 *cie)
600 const u8 *ptr = (const u8 *)(cie + 2); 600 const u8 *ptr = (const u8 *)(cie + 2);
601 unsigned version = *ptr; 601 unsigned version = *ptr;
602 602
603 if (version != 1)
604 return -1; /* unsupported */
605
606 if (*++ptr) { 603 if (*++ptr) {
607 const char *aug; 604 const char *aug;
608 const u8 *end = (const u8 *)(cie + 1) + *cie; 605 const u8 *end = (const u8 *)(cie + 1) + *cie;
@@ -1014,9 +1011,7 @@ int arc_unwind(struct unwind_frame_info *frame)
1014 ptr = (const u8 *)(cie + 2); 1011 ptr = (const u8 *)(cie + 2);
1015 end = (const u8 *)(cie + 1) + *cie; 1012 end = (const u8 *)(cie + 1) + *cie;
1016 frame->call_frame = 1; 1013 frame->call_frame = 1;
1017 if ((state.version = *ptr) != 1) 1014 if (*++ptr) {
1018 cie = NULL; /* unsupported version */
1019 else if (*++ptr) {
1020 /* check if augmentation size is first (thus present) */ 1015 /* check if augmentation size is first (thus present) */
1021 if (*ptr == 'z') { 1016 if (*ptr == 'z') {
1022 while (++ptr < end && *ptr) { 1017 while (++ptr < end && *ptr) {