From: Peng Fan <[email protected]>

Convert open-coded if/else with set_bit/clear_bit the assign_bit API.

Done with Coccinelle semantic patch:
    // set_bit -> clear_bit => assign_bit

    @@
    expression cond, bit, addr;
    @@

    -if (cond)
    -        set_bit(bit, addr);
    -else
    -        clear_bit(bit, addr);
    +assign_bit(bit, addr, cond);

    // clear_bit -> set_bit => assign_bit

    @@
    expression cond, bit, addr;
    @@

    -if (cond)
    -        clear_bit(bit, addr);
    -else
    -        set_bit(bit, addr);
    +assign_bit(bit, addr, !cond);

    // __set_bit -> __clear_bit => __assign_bit

    @@
    expression cond, bit, addr;
    @@

    -if (cond)
    -        __set_bit(bit, addr);
    -else
    -        __clear_bit(bit, addr);
    +__assign_bit(bit, addr, cond);

    // __clear_bit -> __set_bit => __assign_bit

    @@
    expression cond, bit, addr;
    @@

    -if (cond)
    -        __clear_bit(bit, addr);
    -else
    -        __set_bit(bit, addr);
    +__assign_bit(bit, addr, !cond);

Signed-off-by: Peng Fan <[email protected]>
---
 kernel/trace/trace_events.c         | 12 ++++--------
 kernel/trace/trace_events_trigger.c | 11 +++--------
 kernel/trace/trace_events_user.c    |  5 +----
 3 files changed, 8 insertions(+), 20 deletions(-)

diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index 30c0ddf90887..72a210da67d6 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -859,10 +859,8 @@ static int __ftrace_event_enable_disable(struct 
trace_event_file *file,
                        WARN_ON_ONCE(ret);
                }
                /* If in soft mode, just set the SOFT_DISABLE_BIT, else clear 
it */
-               if (soft_mode)
-                       set_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &file->flags);
-               else
-                       clear_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, 
&file->flags);
+               assign_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &file->flags,
+                          soft_mode);
                break;
        case 1:
                /*
@@ -4273,10 +4271,8 @@ struct event_probe_data {
 
 static void update_event_probe(struct event_probe_data *data)
 {
-       if (data->enable)
-               clear_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &data->file->flags);
-       else
-               set_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &data->file->flags);
+       assign_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &data->file->flags,
+                  !data->enable);
 }
 
 static void
diff --git a/kernel/trace/trace_events_trigger.c 
b/kernel/trace/trace_events_trigger.c
index 4d2fde996c0f..3b5e14fd0dd9 100644
--- a/kernel/trace/trace_events_trigger.c
+++ b/kernel/trace/trace_events_trigger.c
@@ -674,10 +674,7 @@ void update_cond_flag(struct trace_event_file *file)
                }
        }
 
-       if (set_cond)
-               set_bit(EVENT_FILE_FL_TRIGGER_COND_BIT, &file->flags);
-       else
-               clear_bit(EVENT_FILE_FL_TRIGGER_COND_BIT, &file->flags);
+       assign_bit(EVENT_FILE_FL_TRIGGER_COND_BIT, &file->flags, set_cond);
 }
 
 /**
@@ -1673,10 +1670,8 @@ event_enable_trigger(struct event_trigger_data *data,
 {
        struct enable_trigger_data *enable_data = data->private_data;
 
-       if (enable_data->enable)
-               clear_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, 
&enable_data->file->flags);
-       else
-               set_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, 
&enable_data->file->flags);
+       assign_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &enable_data->file->flags,
+                  !enable_data->enable);
 }
 
 static bool
diff --git a/kernel/trace/trace_events_user.c b/kernel/trace/trace_events_user.c
index f658c3a77aa7..055894cb999c 100644
--- a/kernel/trace/trace_events_user.c
+++ b/kernel/trace/trace_events_user.c
@@ -590,10 +590,7 @@ static int user_event_enabler_write(struct user_event_mm 
*mm,
        ptr = kaddr + (uaddr & ~PAGE_MASK);
 
        /* Update bit atomically, user tracers must be atomic as well */
-       if (enabler->event && enabler->event->status)
-               set_bit(bit, ptr);
-       else
-               clear_bit(bit, ptr);
+       assign_bit(bit, ptr, enabler->event && enabler->event->status);
 
        kunmap_local(kaddr);
        unpin_user_pages_dirty_lock(&page, 1, true);
-- 
2.51.0


Reply via email to