On Tue, 18 Jun 2019 20:17:04 +0530
"Naveen N. Rao" <naveen.n....@linux.vnet.ibm.com> wrote:

> @@ -1551,7 +1551,7 @@ unsigned long ftrace_location_range(unsigned long 
> start, unsigned long end)
>       key.flags = end;        /* overload flags, as it is unsigned long */
>  
>       for (pg = ftrace_pages_start; pg; pg = pg->next) {
> -             if (end < pg->records[0].ip ||
> +             if (end <= pg->records[0].ip ||

This breaks the algorithm. "end" is inclusive. That is, if you look for
a single byte, where "start" and "end" are the same, and it happens to
be the first ip on the pg page, it will be skipped, and not found.

-- Steve

>                   start >= (pg->records[pg->index - 1].ip + MCOUNT_INSN_SIZE))
>                       continue;
>               rec = bsearch(&key, pg->records, pg->index,

Reply via email to