On Wed, 13 Nov 2024 13:15:35 -0800
BTW, the following changes were needed to make it work for me:
diff --git a/kernel/unwind/sframe.c b/kernel/unwind/sframe.c
index 933e47696e29..ca4ef0b72772 100644
--- a/kernel/unwind/sframe.c
+++ b/kernel/unwind/sframe.c
@@ -73,15 +73,15 @@ static int find_fde(struct sframe_section *sec, unsigned long ip,
struct sframe_fde *fde)
{
struct sframe_fde __user *first, *last, *found = NULL;
- u32 ip_off, func_off_low = 0, func_off_high = -1;
+ s32 ip_off, func_off_low = INT_MIN, func_off_high = INT_MAX;
ip_off = ip - sec->sframe_addr;
first = (void __user *)sec->fdes_addr;
- last = first + sec->fdes_nr;
+ last = first + sec->fdes_nr - 1;
while (first <= last) {
struct sframe_fde __user *mid;
- u32 func_off;
+ s32 func_off;
mid = first + ((last - first) / 2);