Based on the following two reasones, we could simplify the calculation:
  - If the number after roundup count is not power of 2, we would
    definitely have more than 1 empty page with a higher order.
  - get_count_order() just return current order, so one lower order
    could meet the requirement.
The calculation could be simplified by lower one order level when pages
are not power of 2.
Link: https://lkml.kernel.org/r/20200831031104.23322-5-richard.weiyang@linux.alibaba.com
Signed-off-by: Wei Yang <richard.weiyang@linux.alibaba.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
 static int ftrace_allocate_records(struct ftrace_page *pg, int count)
 {
        int order;
-       int cnt;
+       int pages, cnt;
 
        if (WARN_ON(!count))
                return -EINVAL;
 
-       order = get_count_order(DIV_ROUND_UP(count, ENTRIES_PER_PAGE));
+       pages = DIV_ROUND_UP(count, ENTRIES_PER_PAGE);
+       order = get_count_order(pages);
 
        /*
         * We want to fill as much as possible. No more than a page
         * may be empty.
         */
-       while ((PAGE_SIZE << order) / ENTRY_SIZE >= count + ENTRIES_PER_PAGE)
+       if (!is_power_of_2(pages))
                order--;
 
  again: