]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
fbcon: introduce for_each_registered_fb() helper
authorYisheng Xie <ysxie@foxmail.com>
Tue, 24 Jul 2018 17:11:26 +0000 (19:11 +0200)
committerBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Tue, 24 Jul 2018 17:11:26 +0000 (19:11 +0200)
Following pattern is often used:

 for (i = 0; i < FB_MAX; i++) {
        if (registered_fb[i]) {
                ...
        }
 }

Therefore, as Andy's suggestion, for_each_registered_fb() helper can
be introduced to make the code easier to read and write by reducing
indentation level. It also saves few lines of code in each occurrence.

This patch convert all part here at the same time.

Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Yisheng Xie <ysxie@foxmail.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: David Lechner <david@lechnology.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
drivers/video/fbdev/core/fbcon.c
drivers/video/fbdev/core/fbmem.c
include/linux/fb.h

index 5fb156bdcf4e5450f0d8e0348010dadee09bd05f..e30d3a138c97b7c7a9be333cc778d6e9e469004c 100644 (file)
@@ -2234,8 +2234,8 @@ static int fbcon_switch(struct vc_data *vc)
         *
         * info->currcon = vc->vc_num;
         */
-       for (i = 0; i < FB_MAX; i++) {
-               if (registered_fb[i] != NULL && registered_fb[i]->fbcon_par) {
+       for_each_registered_fb(i) {
+               if (registered_fb[i]->fbcon_par) {
                        struct fbcon_ops *o = registered_fb[i]->fbcon_par;
 
                        o->currcon = vc->vc_num;
@@ -3124,11 +3124,9 @@ static int fbcon_fb_unregistered(struct fb_info *info)
        if (idx == info_idx) {
                info_idx = -1;
 
-               for (i = 0; i < FB_MAX; i++) {
-                       if (registered_fb[i] != NULL) {
-                               info_idx = i;
-                               break;
-                       }
+               for_each_registered_fb(i) {
+                       info_idx = i;
+                       break;
                }
        }
 
@@ -3609,10 +3607,8 @@ static int fbcon_output_notifier(struct notifier_block *nb,
        deferred_takeover = false;
        logo_shown = FBCON_LOGO_DONTSHOW;
 
-       for (i = 0; i < FB_MAX; i++) {
-               if (registered_fb[i])
-                       fbcon_fb_registered(registered_fb[i]);
-       }
+       for_each_registered_fb(i)
+               fbcon_fb_registered(registered_fb[i]);
 
        return NOTIFY_OK;
 }
@@ -3638,11 +3634,9 @@ static void fbcon_start(void)
 
                console_lock();
 
-               for (i = 0; i < FB_MAX; i++) {
-                       if (registered_fb[i] != NULL) {
-                               info_idx = i;
-                               break;
-                       }
+               for_each_registered_fb(i) {
+                       info_idx = i;
+                       break;
                }
 
                do_fbcon_takeover(0);
@@ -3669,15 +3663,12 @@ static void fbcon_exit(void)
        kfree((void *)softback_buf);
        softback_buf = 0UL;
 
-       for (i = 0; i < FB_MAX; i++) {
+       for_each_registered_fb(i) {
                int pending = 0;
 
                mapped = 0;
                info = registered_fb[i];
 
-               if (info == NULL)
-                       continue;
-
                if (info->queue.func)
                        pending = cancel_work_sync(&info->queue);
                DPRINTK("fbcon: %s pending work\n", (pending ? "canceled" :
index 609438d2465b288f831eb086b9d0ef982bb5ddef..645c6ac932d669648db290fa0ae718657608adfb 100644 (file)
@@ -1593,10 +1593,8 @@ static int do_remove_conflicting_framebuffers(struct apertures_struct *a,
        int i, ret;
 
        /* check all firmware fbs and kick off if the base addr overlaps */
-       for (i = 0 ; i < FB_MAX; i++) {
+       for_each_registered_fb(i) {
                struct apertures_struct *gen_aper;
-               if (!registered_fb[i])
-                       continue;
 
                if (!(registered_fb[i]->flags & FBINFO_MISC_FIRMWARE))
                        continue;
index aa74a228bb92ec90885ce57f0957b1d8f58903e4..fd31e6f24b8d575b35960aa4bc384c5c5ba941b9 100644 (file)
@@ -650,6 +650,10 @@ extern struct fb_info *registered_fb[FB_MAX];
 extern int num_registered_fb;
 extern struct class *fb_class;
 
+#define for_each_registered_fb(i)              \
+       for (i = 0; i < FB_MAX; i++)            \
+               if (!registered_fb[i]) {} else
+
 extern int lock_fb_info(struct fb_info *info);
 
 static inline void unlock_fb_info(struct fb_info *info)