Skip to content

Commit

Permalink
vt: ioctl, switch VT_IS_IN_USE and VT_BUSY to inlines
Browse files Browse the repository at this point in the history
commit e587e8f upstream.

These two were macros. Switch them to static inlines, so that it's more
understandable what they are doing.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20200219073951.16151-2-jslaby@suse.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Jiri Slaby authored and Greg Kroah-Hartman committed Apr 2, 2020
1 parent 3f0e221 commit 270db03
Showing 1 changed file with 22 additions and 7 deletions.
29 changes: 22 additions & 7 deletions drivers/tty/vt/vt_ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,25 @@
#include <linux/selection.h>

char vt_dont_switch;
extern struct tty_driver *console_driver;

#define VT_IS_IN_USE(i) (console_driver->ttys[i] && console_driver->ttys[i]->count)
#define VT_BUSY(i) (VT_IS_IN_USE(i) || i == fg_console || vc_is_sel(vc_cons[i].d))
static inline bool vt_in_use(unsigned int i)
{
extern struct tty_driver *console_driver;

return console_driver->ttys[i] && console_driver->ttys[i]->count;
}

static inline bool vt_busy(int i)
{
if (vt_in_use(i))
return true;
if (i == fg_console)
return true;
if (vc_is_sel(vc_cons[i].d))
return true;

return false;
}

/*
* Console (vt and kd) routines, as defined by USL SVR4 manual, and by
Expand Down Expand Up @@ -289,7 +304,7 @@ static int vt_disallocate(unsigned int vc_num)
int ret = 0;

console_lock();
if (VT_BUSY(vc_num))
if (vt_busy(vc_num))
ret = -EBUSY;
else if (vc_num)
vc = vc_deallocate(vc_num);
Expand All @@ -311,7 +326,7 @@ static void vt_disallocate_all(void)

console_lock();
for (i = 1; i < MAX_NR_CONSOLES; i++)
if (!VT_BUSY(i))
if (!vt_busy(i))
vc[i] = vc_deallocate(i);
else
vc[i] = NULL;
Expand Down Expand Up @@ -648,7 +663,7 @@ int vt_ioctl(struct tty_struct *tty,
state = 1; /* /dev/tty0 is always open */
for (i = 0, mask = 2; i < MAX_NR_CONSOLES && mask;
++i, mask <<= 1)
if (VT_IS_IN_USE(i))
if (vt_in_use(i))
state |= mask;
ret = put_user(state, &vtstat->v_state);
}
Expand All @@ -661,7 +676,7 @@ int vt_ioctl(struct tty_struct *tty,
case VT_OPENQRY:
/* FIXME: locking ? - but then this is a stupid API */
for (i = 0; i < MAX_NR_CONSOLES; ++i)
if (! VT_IS_IN_USE(i))
if (!vt_in_use(i))
break;
uival = i < MAX_NR_CONSOLES ? (i+1) : -1;
goto setint;
Expand Down

0 comments on commit 270db03

Please sign in to comment.