Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[cascardo/linux.git] / tools / perf / util / symbol.c
index be84f7a..0783311 100644 (file)
@@ -186,7 +186,7 @@ void symbols__fixup_end(struct rb_root *symbols)
                curr = rb_entry(nd, struct symbol, rb_node);
 
                if (prev->end == prev->start && prev->end != curr->start)
-                       prev->end = curr->start - 1;
+                       prev->end = curr->start;
        }
 
        /* Last entry */
@@ -207,7 +207,7 @@ void __map_groups__fixup_end(struct map_groups *mg, enum map_type type)
        for (nd = rb_next(prevnd); nd; nd = rb_next(nd)) {
                prev = curr;
                curr = rb_entry(nd, struct map, rb_node);
-               prev->end = curr->start - 1;
+               prev->end = curr->start;
        }
 
        /*
@@ -229,7 +229,7 @@ struct symbol *symbol__new(u64 start, u64 len, u8 binding, const char *name)
                sym = ((void *)sym) + symbol_conf.priv_size;
 
        sym->start   = start;
-       sym->end     = len ? start + len - 1 : start;
+       sym->end     = len ? start + len : start;
        sym->binding = binding;
        sym->namelen = namelen - 1;
 
@@ -325,7 +325,7 @@ static struct symbol *symbols__find(struct rb_root *symbols, u64 ip)
 
                if (ip < s->start)
                        n = n->rb_left;
-               else if (ip > s->end)
+               else if (ip >= s->end)
                        n = n->rb_right;
                else
                        return s;