aboutsummaryrefslogtreecommitdiffstats
path: root/0016-consolemap.c-move-assignment-out-of-if-block.patch
diff options
Diffstat (limited to '0016-consolemap.c-move-assignment-out-of-if-block.patch')
-rw-r--r--0016-consolemap.c-move-assignment-out-of-if-block.patch144
1 files changed, 144 insertions, 0 deletions
diff --git a/0016-consolemap.c-move-assignment-out-of-if-block.patch b/0016-consolemap.c-move-assignment-out-of-if-block.patch
new file mode 100644
index 00000000000000..fe46005f72d102
--- /dev/null
+++ b/0016-consolemap.c-move-assignment-out-of-if-block.patch
@@ -0,0 +1,144 @@
+From 63b51628e8140adabb1a3d4ece779f2a432ab948 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Wed, 29 Apr 2015 16:22:12 +0200
+Subject: [PATCH 16/36] consolemap.c: move assignment out of if () block
+
+We should not be doing assignments within an if () block
+so fix up the code to not do this.
+
+change was created using Coccinelle.
+
+CC: Jiri Slaby <jslaby@suse.cz>
+CC: Takashi Iwai <tiwai@suse.de>
+CC: Imre Deak <imre.deak@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/tty/vt/consolemap.c | 60 ++++++++++++++++++++++++++++-----------------
+ 1 file changed, 37 insertions(+), 23 deletions(-)
+
+diff --git a/drivers/tty/vt/consolemap.c b/drivers/tty/vt/consolemap.c
+index 59b25e039968..c8c91f0476a2 100644
+--- a/drivers/tty/vt/consolemap.c
++++ b/drivers/tty/vt/consolemap.c
+@@ -261,19 +261,22 @@ u16 inverse_translate(struct vc_data *conp, int glyph, int use_unicode)
+ int m;
+ if (glyph < 0 || glyph >= MAX_GLYPH)
+ return 0;
+- else if (!(p = *conp->vc_uni_pagedir_loc))
+- return glyph;
+- else if (use_unicode) {
+- if (!p->inverse_trans_unicode)
++ else {
++ p = *conp->vc_uni_pagedir_loc;
++ if (!p)
+ return glyph;
+- else
+- return p->inverse_trans_unicode[glyph];
+- } else {
+- m = inv_translate[conp->vc_num];
+- if (!p->inverse_translations[m])
+- return glyph;
+- else
+- return p->inverse_translations[m][glyph];
++ else if (use_unicode) {
++ if (!p->inverse_trans_unicode)
++ return glyph;
++ else
++ return p->inverse_trans_unicode[glyph];
++ } else {
++ m = inv_translate[conp->vc_num];
++ if (!p->inverse_translations[m])
++ return glyph;
++ else
++ return p->inverse_translations[m][glyph];
++ }
+ }
+ }
+ EXPORT_SYMBOL_GPL(inverse_translate);
+@@ -397,7 +400,8 @@ static void con_release_unimap(struct uni_pagedir *p)
+
+ if (p == dflt) dflt = NULL;
+ for (i = 0; i < 32; i++) {
+- if ((p1 = p->uni_pgdir[i]) != NULL) {
++ p1 = p->uni_pgdir[i];
++ if (p1 != NULL) {
+ for (j = 0; j < 32; j++)
+ kfree(p1[j]);
+ kfree(p1);
+@@ -473,14 +477,16 @@ con_insert_unipair(struct uni_pagedir *p, u_short unicode, u_short fontpos)
+ int i, n;
+ u16 **p1, *p2;
+
+- if (!(p1 = p->uni_pgdir[n = unicode >> 11])) {
++ p1 = p->uni_pgdir[n = unicode >> 11];
++ if (!p1) {
+ p1 = p->uni_pgdir[n] = kmalloc(32*sizeof(u16 *), GFP_KERNEL);
+ if (!p1) return -ENOMEM;
+ for (i = 0; i < 32; i++)
+ p1[i] = NULL;
+ }
+
+- if (!(p2 = p1[n = (unicode >> 6) & 0x1f])) {
++ p2 = p1[n = (unicode >> 6) & 0x1f];
++ if (!p2) {
+ p2 = p1[n] = kmalloc(64*sizeof(u16), GFP_KERNEL);
+ if (!p2) return -ENOMEM;
+ memset(p2, 0xff, 64*sizeof(u16)); /* No glyphs for the characters (yet) */
+@@ -569,10 +575,12 @@ int con_set_unimap(struct vc_data *vc, ushort ct, struct unipair __user *list)
+ * entries from "p" (old) to "q" (new).
+ */
+ l = 0; /* unicode value */
+- for (i = 0; i < 32; i++)
+- if ((p1 = p->uni_pgdir[i]))
+- for (j = 0; j < 32; j++)
+- if ((p2 = p1[j])) {
++ for (i = 0; i < 32; i++) {
++ p1 = p->uni_pgdir[i];
++ if (p1)
++ for (j = 0; j < 32; j++) {
++ p2 = p1[j];
++ if (p2) {
+ for (k = 0; k < 64; k++, l++)
+ if (p2[k] != 0xffff) {
+ /*
+@@ -593,9 +601,11 @@ int con_set_unimap(struct vc_data *vc, ushort ct, struct unipair __user *list)
+ /* Account for row of 64 empty entries */
+ l += 64;
+ }
++ }
+ else
+ /* Account for empty table */
+ l += 32 * 64;
++ }
+
+ /*
+ * Finished copying font table, set vc_uni_pagedir to new table
+@@ -735,10 +745,12 @@ int con_get_unimap(struct vc_data *vc, ushort ct, ushort __user *uct, struct uni
+ ect = 0;
+ if (*vc->vc_uni_pagedir_loc) {
+ p = *vc->vc_uni_pagedir_loc;
+- for (i = 0; i < 32; i++)
+- if ((p1 = p->uni_pgdir[i]))
+- for (j = 0; j < 32; j++)
+- if ((p2 = *(p1++)))
++ for (i = 0; i < 32; i++) {
++ p1 = p->uni_pgdir[i];
++ if (p1)
++ for (j = 0; j < 32; j++) {
++ p2 = *(p1++);
++ if (p2)
+ for (k = 0; k < 64; k++) {
+ if (*p2 < MAX_GLYPH && ect++ < ct) {
+ __put_user((u_short)((i<<11)+(j<<6)+k),
+@@ -749,6 +761,8 @@ int con_get_unimap(struct vc_data *vc, ushort ct, ushort __user *uct, struct uni
+ }
+ p2++;
+ }
++ }
++ }
+ }
+ __put_user(ect, uct);
+ console_unlock();
+--
+2.3.7
+