Commit 6364d391 authored by Jiri Slaby's avatar Jiri Slaby Committed by Greg Kroah-Hartman
Browse files

tty/vt: consolemap: make con_get_unimap() more readable



The indentation is completely broken in con_get_unimap(). Reorder the
code using "if (!cond) continue;"s so that the code makes sense. Switch
also the "p" assignment and add a short path using goto. This makes the
code readable again.

Reviewed-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20220607104946.18710-14-jslaby@suse.cz


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 6e4e8d74
Loading
Loading
Loading
Loading
+22 −16
Original line number Diff line number Diff line
@@ -768,7 +768,8 @@ EXPORT_SYMBOL(con_copy_unimap);
 *	Read the console unicode data for this console. Called from the ioctl
 *	handlers.
 */
int con_get_unimap(struct vc_data *vc, ushort ct, ushort __user *uct, struct unipair __user *list)
int con_get_unimap(struct vc_data *vc, ushort ct, ushort __user *uct,
		struct unipair __user *list)
{
	int i, j, k, ret = 0;
	ushort ect;
@@ -783,27 +784,32 @@ int con_get_unimap(struct vc_data *vc, ushort ct, ushort __user *uct, struct uni
	console_lock();

	ect = 0;
	if (*vc->vc_uni_pagedir_loc) {
	p = *vc->vc_uni_pagedir_loc;
	if (!p)
		goto unlock;

	for (i = 0; i < UNI_DIRS; i++) {
		p1 = p->uni_pgdir[i];
		if (p1)
		if (!p1)
			continue;

		for (j = 0; j < UNI_DIR_ROWS; j++) {
			p2 = *(p1++);
			if (p2)
			if (!p2)
				continue;

			for (k = 0; k < UNI_ROW_GLYPHS; k++, p2++) {
				if (*p2 >= MAX_GLYPH)
					continue;
				if (ect < ct) {
						unilist[ect].unicode =
							UNI(i, j, k);
					unilist[ect].unicode = UNI(i, j, k);
					unilist[ect].fontpos = *p2;
				}
				ect++;
			}
		}
	}
	}
unlock:
	console_unlock();
	if (copy_to_user(list, unilist, min(ect, ct) * sizeof(*unilist)))
		ret = -EFAULT;