#endif
 
 #ifdef CONFIG_TRACE_BRANCH_PROFILING
-#define LIKELY_PROFILE()       VMLINUX_SYMBOL(__start_likely_profile) = .;   \
-                               *(_ftrace_likely)                             \
-                               VMLINUX_SYMBOL(__stop_likely_profile) = .;    \
-                               VMLINUX_SYMBOL(__start_unlikely_profile) = .; \
-                               *(_ftrace_unlikely)                           \
-                               VMLINUX_SYMBOL(__stop_unlikely_profile) = .;
+#define LIKELY_PROFILE()       VMLINUX_SYMBOL(__start_annotated_branch_profile) = .; \
+                               *(_ftrace_annotated_branch)                           \
+                               VMLINUX_SYMBOL(__stop_annotated_branch_profile) = .;
 #else
 #define LIKELY_PROFILE()
 #endif
 
 #define likely_notrace(x)      __builtin_expect(!!(x), 1)
 #define unlikely_notrace(x)    __builtin_expect(!!(x), 0)
 
-#define likely_check(x) ({                                             \
+#define __branch_check__(x, expect) ({                                 \
                        int ______r;                                    \
                        static struct ftrace_branch_data                \
                                __attribute__((__aligned__(4)))         \
-                               __attribute__((section("_ftrace_likely"))) \
+                               __attribute__((section("_ftrace_annotated_branch"))) \
                                ______f = {                             \
                                .func = __func__,                       \
                                .file = __FILE__,                       \
                                .line = __LINE__,                       \
                        };                                              \
                        ______r = likely_notrace(x);                    \
-                       ftrace_likely_update(&______f, ______r, 1);     \
-                       ______r;                                        \
-               })
-#define unlikely_check(x) ({                                           \
-                       int ______r;                                    \
-                       static struct ftrace_branch_data                \
-                               __attribute__((__aligned__(4)))         \
-                               __attribute__((section("_ftrace_unlikely"))) \
-                               ______f = {                             \
-                               .func = __func__,                       \
-                               .file = __FILE__,                       \
-                               .line = __LINE__,                       \
-                       };                                              \
-                       ______r = unlikely_notrace(x);                  \
-                       ftrace_likely_update(&______f, ______r, 0);     \
+                       ftrace_likely_update(&______f, ______r, expect); \
                        ______r;                                        \
                })
 
  * written by Daniel Walker.
  */
 # ifndef likely
-#  define likely(x)    (__builtin_constant_p(x) ? !!(x) : likely_check(x))
+#  define likely(x)    (__builtin_constant_p(x) ? !!(x) : __branch_check__(x, 1))
 # endif
 # ifndef unlikely
-#  define unlikely(x)  (__builtin_constant_p(x) ? !!(x) : unlikely_check(x))
+#  define unlikely(x)  (__builtin_constant_p(x) ? !!(x) : __branch_check__(x, 0))
 # endif
 #else
 # define likely(x)     __builtin_expect(!!(x), 1)
 
          This tracer profiles all the the likely and unlikely macros
          in the kernel. It will display the results in:
 
-         /debugfs/tracing/profile_likely
-         /debugfs/tracing/profile_unlikely
+         /debugfs/tracing/profile_annotated_branch
 
          Note: this will add a significant overhead, only turn this
          on if you need to profile the system's use of these macros.
 
        .show           = t_show,
 };
 
-static int tracing_likely_open(struct inode *inode, struct file *file)
+static int tracing_branch_open(struct inode *inode, struct file *file)
 {
        int ret;
 
        return ret;
 }
 
-static struct file_operations tracing_likely_fops = {
-       .open           = tracing_likely_open,
+static const struct file_operations tracing_branch_fops = {
+       .open           = tracing_branch_open,
        .read           = seq_read,
        .llseek         = seq_lseek,
 };
 
-extern unsigned long __start_likely_profile[];
-extern unsigned long __stop_likely_profile[];
-extern unsigned long __start_unlikely_profile[];
-extern unsigned long __stop_unlikely_profile[];
+extern unsigned long __start_annotated_branch_profile[];
+extern unsigned long __stop_annotated_branch_profile[];
 
-static struct ftrace_pointer ftrace_likely_pos = {
-       .start                  = __start_likely_profile,
-       .stop                   = __stop_likely_profile,
-};
-
-static struct ftrace_pointer ftrace_unlikely_pos = {
-       .start                  = __start_unlikely_profile,
-       .stop                   = __stop_unlikely_profile,
+static const struct ftrace_pointer ftrace_annotated_branch_pos = {
+       .start                  = __start_annotated_branch_profile,
+       .stop                   = __stop_annotated_branch_profile,
 };
 
 static __init int ftrace_branch_init(void)
 
        d_tracer = tracing_init_dentry();
 
-       entry = debugfs_create_file("profile_likely", 0444, d_tracer,
-                                   &ftrace_likely_pos,
-                                   &tracing_likely_fops);
-       if (!entry)
-               pr_warning("Could not create debugfs 'profile_likely' entry\n");
-
-       entry = debugfs_create_file("profile_unlikely", 0444, d_tracer,
-                                   &ftrace_unlikely_pos,
-                                   &tracing_likely_fops);
+       entry = debugfs_create_file("profile_annotated_branch", 0444, d_tracer,
+                                   &ftrace_annotated_branch_pos,
+                                   &tracing_branch_fops);
        if (!entry)
-               pr_warning("Could not create debugfs"
-                          " 'profile_unlikely' entry\n");
+               pr_warning("Could not create debugfs "
+                          "'profile_annotatet_branch' entry\n");
 
        return 0;
 }