The function uses too vague variable names like i, j, k for iterators, p,
q, p1, p2 for pointers etc.
Rename all these, so that it is clear what is going on:
- dict: for dictionaries.
- d, r, g: for dir, row, glyph iterators -- these are unsigned now.
- dir, row: for directory and row pointers.
- glyph: for the glyph.
- and so on...
This is a lot of shuffling, but the result pays off, IMO.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20220607104946.18710-24-jslaby@suse.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
/* 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;
}