summaryrefslogtreecommitdiff
path: root/drivers/tty/vt/consolemap.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/tty/vt/consolemap.c')
-rw-r--r--drivers/tty/vt/consolemap.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/drivers/tty/vt/consolemap.c b/drivers/tty/vt/consolemap.c
index cbdc73605148..456aed3f717c 100644
--- a/drivers/tty/vt/consolemap.c
+++ b/drivers/tty/vt/consolemap.c
@@ -531,24 +531,23 @@ con_insert_unipair(struct uni_pagedict *p, u_short unicode, u_short fontpos)
/* Caller must hold the lock */
static int con_do_clear_unimap(struct vc_data *vc)
{
- struct uni_pagedict *p, *q;
+ struct uni_pagedict *old = *vc->vc_uni_pagedir_loc;
- p = *vc->vc_uni_pagedir_loc;
- if (!p || --p->refcount) {
- q = kzalloc(sizeof(*p), GFP_KERNEL);
- if (!q) {
- if (p)
- p->refcount++;
+ if (!old || --old->refcount) {
+ struct uni_pagedict *new = kzalloc(sizeof(*new), GFP_KERNEL);
+ if (!new) {
+ if (old)
+ old->refcount++;
return -ENOMEM;
}
- q->refcount=1;
- *vc->vc_uni_pagedir_loc = q;
+ new->refcount = 1;
+ *vc->vc_uni_pagedir_loc = new;
} else {
- if (p == dflt)
+ if (old == dflt)
dflt = NULL;
- p->refcount++;
- p->sum = 0;
- con_release_unimap(p);
+ old->refcount++;
+ old->sum = 0;
+ con_release_unimap(old);
}
return 0;
}