Commit 10ac8688 authored by Yisheng Xie's avatar Yisheng Xie Committed by Bartlomiej Zolnierkiewicz
Browse files

fbcon: introduce for_each_registered_fb() helper



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: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarYisheng Xie <ysxie@foxmail.com>
Acked-by: default avatarHans de Goede <hdegoede@redhat.com>
Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: David Lechner <david@lechnology.com>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
parent 4a1208c5
Loading
Loading
Loading
Loading
+11 −20
Original line number Diff line number Diff line
@@ -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,13 +3124,11 @@ 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) {
		for_each_registered_fb(i) {
			info_idx = i;
			break;
		}
	}
	}

	if (info_idx != -1) {
		for (i = first_fb_vc; i <= last_fb_vc; i++) {
@@ -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])
	for_each_registered_fb(i)
		fbcon_fb_registered(registered_fb[i]);
	}

	return NOTIFY_OK;
}
@@ -3638,12 +3634,10 @@ static void fbcon_start(void)

		console_lock();

		for (i = 0; i < FB_MAX; i++) {
			if (registered_fb[i] != NULL) {
		for_each_registered_fb(i) {
			info_idx = i;
			break;
		}
		}

		do_fbcon_takeover(0);
		console_unlock();
@@ -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" :
+1 −3
Original line number Diff line number Diff line
@@ -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;
+4 −0
Original line number Diff line number Diff line
@@ -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)