@@ -3969,9 +3969,6 @@ static int con_font_get(struct vc_data *vc, struct console_font_op *op)
39693969 int rc = - EINVAL ;
39703970 int c ;
39713971
3972- if (vc -> vc_mode != KD_TEXT )
3973- return - EINVAL ;
3974-
39753972 if (op -> data ) {
39763973 font .data = kmalloc (max_font_size , GFP_KERNEL );
39773974 if (!font .data )
@@ -3980,7 +3977,9 @@ static int con_font_get(struct vc_data *vc, struct console_font_op *op)
39803977 font .data = NULL ;
39813978
39823979 console_lock ();
3983- if (vc -> vc_sw -> con_font_get )
3980+ if (vc -> vc_mode != KD_TEXT )
3981+ rc = - EINVAL ;
3982+ else if (vc -> vc_sw -> con_font_get )
39843983 rc = vc -> vc_sw -> con_font_get (vc , & font );
39853984 else
39863985 rc = - ENOSYS ;
@@ -4062,7 +4061,9 @@ static int con_font_set(struct vc_data *vc, struct console_font_op *op)
40624061 if (IS_ERR (font .data ))
40634062 return PTR_ERR (font .data );
40644063 console_lock ();
4065- if (vc -> vc_sw -> con_font_set )
4064+ if (vc -> vc_mode != KD_TEXT )
4065+ rc = - EINVAL ;
4066+ else if (vc -> vc_sw -> con_font_set )
40664067 rc = vc -> vc_sw -> con_font_set (vc , & font , op -> flags );
40674068 else
40684069 rc = - ENOSYS ;
@@ -4078,8 +4079,6 @@ static int con_font_default(struct vc_data *vc, struct console_font_op *op)
40784079 char * s = name ;
40794080 int rc ;
40804081
4081- if (vc -> vc_mode != KD_TEXT )
4082- return - EINVAL ;
40834082
40844083 if (!op -> data )
40854084 s = NULL ;
@@ -4089,6 +4088,10 @@ static int con_font_default(struct vc_data *vc, struct console_font_op *op)
40894088 name [MAX_FONT_NAME - 1 ] = 0 ;
40904089
40914090 console_lock ();
4091+ if (vc -> vc_mode != KD_TEXT ) {
4092+ console_unlock ();
4093+ return - EINVAL ;
4094+ }
40924095 if (vc -> vc_sw -> con_font_default )
40934096 rc = vc -> vc_sw -> con_font_default (vc , & font , s );
40944097 else
@@ -4106,11 +4109,11 @@ static int con_font_copy(struct vc_data *vc, struct console_font_op *op)
41064109 int con = op -> height ;
41074110 int rc ;
41084111
4109- if (vc -> vc_mode != KD_TEXT )
4110- return - EINVAL ;
41114112
41124113 console_lock ();
4113- if (!vc -> vc_sw -> con_font_copy )
4114+ if (vc -> vc_mode != KD_TEXT )
4115+ rc = - EINVAL ;
4116+ else if (!vc -> vc_sw -> con_font_copy )
41144117 rc = - ENOSYS ;
41154118 else if (con < 0 || !vc_cons_allocated (con ))
41164119 rc = - ENOTTY ;
0 commit comments