diff options
Diffstat (limited to 'drivers/char/vt.c')
| -rw-r--r-- | drivers/char/vt.c | 13 | 
1 files changed, 4 insertions, 9 deletions
diff --git a/drivers/char/vt.c b/drivers/char/vt.c index d9113b4c76e..404f4c1ee43 100644 --- a/drivers/char/vt.c +++ b/drivers/char/vt.c @@ -89,6 +89,7 @@  #include <linux/mutex.h>  #include <linux/vt_kern.h>  #include <linux/selection.h> +#include <linux/smp_lock.h>  #include <linux/tiocl.h>  #include <linux/kbd_kern.h>  #include <linux/consolemap.h> @@ -769,14 +770,12 @@ int vc_allocate(unsigned int currcons)	/* return 0 on success */  	    visual_init(vc, currcons, 1);  	    if (!*vc->vc_uni_pagedir_loc)  		con_set_default_unimap(vc); -	    if (!vc->vc_kmalloced) -		vc->vc_screenbuf = kmalloc(vc->vc_screenbuf_size, GFP_KERNEL); +	    vc->vc_screenbuf = kmalloc(vc->vc_screenbuf_size, GFP_KERNEL);  	    if (!vc->vc_screenbuf) {  		kfree(vc);  		vc_cons[currcons].d = NULL;  		return -ENOMEM;  	    } -	    vc->vc_kmalloced = 1;  	    vc_init(vc, vc->vc_rows, vc->vc_cols, 1);  	    vcs_make_sysfs(currcons);  	    atomic_notifier_call_chain(&vt_notifier_list, VT_ALLOCATE, ¶m); @@ -912,10 +911,8 @@ static int vc_do_resize(struct tty_struct *tty, struct vc_data *vc,  	if (new_scr_end > new_origin)  		scr_memsetw((void *)new_origin, vc->vc_video_erase_char,  			    new_scr_end - new_origin); -	if (vc->vc_kmalloced) -		kfree(vc->vc_screenbuf); +	kfree(vc->vc_screenbuf);  	vc->vc_screenbuf = newscreen; -	vc->vc_kmalloced = 1;  	vc->vc_screenbuf_size = new_screen_size;  	set_origin(vc); @@ -994,8 +991,7 @@ void vc_deallocate(unsigned int currcons)  		vc->vc_sw->con_deinit(vc);  		put_pid(vc->vt_pid);  		module_put(vc->vc_sw->owner); -		if (vc->vc_kmalloced) -			kfree(vc->vc_screenbuf); +		kfree(vc->vc_screenbuf);  		if (currcons >= MIN_NR_CONSOLES)  			kfree(vc);  		vc_cons[currcons].d = NULL; @@ -2880,7 +2876,6 @@ static int __init con_init(void)  		INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK);  		visual_init(vc, currcons, 1);  		vc->vc_screenbuf = kzalloc(vc->vc_screenbuf_size, GFP_NOWAIT); -		vc->vc_kmalloced = 0;  		vc_init(vc, vc->vc_rows, vc->vc_cols,  			currcons || !vc->vc_sw->con_save_screen);  	}  |