The commit is pushed to "branch-rh8-4.18.0-240.1.1.vz8.5.x-ovz" and will appear 
at https://src.openvz.org/scm/ovz/vzkernel.git
after rh8-4.18.0-240.1.1.vz8.5.37
------>
commit 89007a75bae83a6aa02cd69ed82d495a75abba3a
Author: Valeriy Vdovin <[email protected]>
Date:   Wed Jun 9 15:16:03 2021 +0300

    Revert "ve/tty: vt -- Implement per VE support for console and terminals"
    
    The code that implements per-container tty (vtty driver) should be reverted,
    because vzctl does not use it anymore and relies on the fact that vtty
    driver is not present.
    
    This reverts commit bc6c9bdf8869b5f7ea3484cee68596c8f1e2d87f.
    
    https://jira.sw.ru/browse/PSBM-83150
    Signed-off-by: Valeriy Vdovin <[email protected]>
---
 drivers/tty/n_tty.c  |   6 -
 drivers/tty/pty.c    | 543 ---------------------------------------------------
 drivers/tty/tty_io.c |  28 ---
 include/linux/tty.h  |   1 -
 include/linux/ve.h   |  13 --
 kernel/ve/vecalls.c  |   3 -
 6 files changed, 594 deletions(-)

diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
index 2f042b65a101..3ad460219fd6 100644
--- a/drivers/tty/n_tty.c
+++ b/drivers/tty/n_tty.c
@@ -49,7 +49,6 @@
 #include <linux/module.h>
 #include <linux/ratelimit.h>
 #include <linux/vmalloc.h>
-#include <linux/ve.h>
 
 
 /* number of characters left in xmit buffer before select has we have room */
@@ -2323,12 +2322,7 @@ static ssize_t n_tty_write(struct tty_struct *tty, 
struct file *file,
                        retval = -ERESTARTSYS;
                        break;
                }
-#ifdef CONFIG_VE
-               if (tty_hung_up_p(file) ||
-                   (tty->link && !tty->link->count && 
!vtty_is_master(tty->link))) {
-#else
                if (tty_hung_up_p(file) || (tty->link && !tty->link->count)) {
-#endif
                        retval = -EIO;
                        break;
                }
diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c
index 75633be9e412..b0e2c4847a5d 100644
--- a/drivers/tty/pty.c
+++ b/drivers/tty/pty.c
@@ -949,553 +949,10 @@ static void __init unix98_pty_init(void)
 static inline void unix98_pty_init(void) { }
 #endif
 
-#if defined(CONFIG_VE)
-
-/*
- * VTTY architecture overview.
- *
- * With VTTY we make /dev/console and /dev/tty[X] virtualized
- * per container (note the real names may vary because the
- * kernel itself uses major:minor numbers to distinguish
- * devices and doesn't care how they are named inside /dev.
- * /dev/console stands for TTYAUX_MAJOR:1 while /dev/tty[X]
- * stands for TTY_MAJOR:[0:12]. That said from inside of
- * VTTY /dev/console is the same as /dev/tty0.
- *
- * For every container here is a tty map represented by
- * vtty_map_t. It carries @veid of VE and associated slave
- * tty peers.
- *
- * map
- *  veid -> CTID
- *    vttys -> [ 0 ]
- *               `- @slave -> link -> @master
- *             [ 1 ]
- *               `- @slave -> link -> @master
- */
-
-#include <linux/ve.h>
-#include <linux/file.h>
-#include <linux/anon_inodes.h>
-
-static struct tty_driver *vttym_driver;
-static struct tty_driver *vttys_driver;
-static DEFINE_IDR(vtty_idr);
-
-static struct file_operations vtty_fops;
-
-#define vtty_match_index(idx)  ((idx) >= 0 && (idx) < MAX_NR_VTTY_CONSOLES)
-
-bool vtty_is_master(struct tty_struct *tty)
-{
-       return tty->driver == vttym_driver;
-}
-
-typedef struct {
-       envid_t                 veid;
-       struct tty_struct       *vttys[MAX_NR_VTTY_CONSOLES];
-} vtty_map_t;
-
-static vtty_map_t *vtty_map_lookup(envid_t veid)
-{
-       lockdep_assert_held(&tty_mutex);
-       return idr_find(&vtty_idr, veid);
-}
-
-static void vtty_map_set(vtty_map_t *map, struct tty_struct *tty)
-{
-       lockdep_assert_held(&tty_mutex);
-       WARN_ON(map->vttys[tty->index]);
-
-       tty->driver_data = tty->link->driver_data = map;
-       map->vttys[tty->index] = tty;
-}
-
-static void vtty_map_free(vtty_map_t *map)
-{
-       lockdep_assert_held(&tty_mutex);
-       idr_remove(&vtty_idr, map->veid);
-       kfree(map);
-}
-
-static void vtty_map_clear(struct tty_struct *tty)
-{
-       vtty_map_t *map = tty->driver_data;
-
-       lockdep_assert_held(&tty_mutex);
-       if (map) {
-               struct tty_struct *p = map->vttys[tty->index];
-               int i;
-
-               WARN_ON(p != (tty->driver == vttys_driver ? tty : tty->link));
-               map->vttys[tty->index] = NULL;
-               tty->driver_data = tty->link->driver_data = NULL;
-
-               for (i = 0; i < MAX_NR_VTTY_CONSOLES; i++) {
-                       if (map->vttys[i])
-                               break;
-               }
-
-               if (i >= MAX_NR_VTTY_CONSOLES)
-                       vtty_map_free(map);
-       }
-}
-
-static vtty_map_t *vtty_map_alloc(envid_t veid)
-{
-       vtty_map_t *map = kzalloc(sizeof(*map), GFP_KERNEL);
-
-       lockdep_assert_held(&tty_mutex);
-       if (map) {
-               map->veid = veid;
-               veid = idr_alloc(&vtty_idr, map, veid, veid + 1, GFP_KERNEL);
-               if (veid < 0) {
-                       kfree(map);
-                       return ERR_PTR(veid);
-               }
-       } else
-               map = ERR_PTR(-ENOMEM);
-       return map;
-}
-
-/*
- * vttys are never supposed to be opened from inside
- * of VE0 except special ioctl call, so treat zero as
- * "unused" sign.
- */
-static envid_t vtty_context_veid;
-
-static void vtty_set_context(envid_t veid)
-{
-       lockdep_assert_held(&tty_mutex);
-       WARN_ON(!veid);
-       vtty_context_veid = veid;
-}
-
-static void vtty_drop_context(void)
-{
-       lockdep_assert_held(&tty_mutex);
-       vtty_context_veid = 0;
-}
-
-static envid_t vtty_get_context(void)
-{
-       lockdep_assert_held(&tty_mutex);
-       return vtty_context_veid ?: get_exec_env()->veid;
-}
-
-static struct tty_struct *vtty_lookup(struct tty_driver *driver,
-                                     struct file *filp, int idx)
-{
-       vtty_map_t *map = vtty_map_lookup(vtty_get_context());
-       struct tty_struct *tty;
-
-       if (!vtty_match_index(idx))
-               return ERR_PTR(-EIO);
-
-       /*
-        * Nothing ever been opened yet, allocate a new
-        * tty map together with both peers from the scratch
-        * in install procedure.
-        */
-       if (!map)
-               return NULL;
-
-       tty = map->vttys[idx];
-       if (tty) {
-               if (driver == vttym_driver)
-                       tty = tty->link;
-               WARN_ON(!tty);
-       }
-       return tty;
-}
-
-static void vtty_standard_install(struct tty_driver *driver,
-                                 struct tty_struct *tty)
-{
-       tty_init_termios(tty);
-       tty_driver_kref_get(driver);
-       tty_port_init(tty->port);
-       tty->port->itty = tty;
-}
-
-static struct tty_struct *vtty_install_peer(struct tty_driver *driver,
-                                           struct tty_port *port, int index)
-{
-       struct tty_struct *tty;
-
-       tty = alloc_tty_struct(driver, index);
-       if (!tty)
-               return ERR_PTR(-ENOMEM);
-
-       tty->port = port;
-       vtty_standard_install(driver, tty);
-       return tty;
-}
-
-static int vtty_install(struct tty_driver *driver, struct tty_struct *tty)
-{
-       envid_t veid = vtty_get_context();
-       struct tty_port *peer_port;
-       struct tty_struct *peer;
-       vtty_map_t *map;
-       int ret;
-
-       WARN_ON_ONCE(driver != vttys_driver);
-
-       map = vtty_map_lookup(veid);
-       if (!map) {
-               map = vtty_map_alloc(veid);
-               if (IS_ERR(map))
-                       return PTR_ERR(map);
-       }
-
-       tty->port = kzalloc(sizeof(*tty->port), GFP_KERNEL);
-       peer_port = kzalloc(sizeof(*peer_port), GFP_KERNEL);
-       if (!tty->port || !peer_port) {
-               ret = -ENOMEM;
-               goto err_free;
-       }
-
-       peer = vtty_install_peer(vttym_driver, peer_port, tty->index);
-       if (IS_ERR(peer)) {
-               ret = PTR_ERR(peer);
-               goto err_free;
-       }
-
-       vtty_standard_install(vttys_driver, tty);
-       tty->count++;
-
-       tty->link = peer;
-       peer->link = tty;
-
-       vtty_map_set(map, tty);
-       return 0;
-
-err_free:
-       kfree(tty->port);
-       kfree(peer_port);
-       return ret;
-}
-
-static int vtty_open(struct tty_struct *tty, struct file *filp)
-{
-       set_bit(TTY_THROTTLED, &tty->flags);
-       return 0;
-}
-
-static void vtty_close(struct tty_struct *tty, struct file *filp)
-{
-       if (tty->count <= (tty->driver == vttys_driver) ? 2 : 1) {
-               wake_up_interruptible(&tty->read_wait);
-               wake_up_interruptible(&tty->write_wait);
-
-               wake_up_interruptible(&tty->link->read_wait);
-               wake_up_interruptible(&tty->link->write_wait);
-       }
-}
-
-static void vtty_shutdown(struct tty_struct *tty)
-{
-       vtty_map_clear(tty);
-}
-
-static int vtty_write(struct tty_struct *tty,
-                     const unsigned char *buf, int count)
-{
-       struct tty_struct *peer = tty->link;
-
-       if (tty->stopped)
-               return 0;
-
-       if (count > 0) {
-               count = tty_insert_flip_string(peer->port, buf, count);
-               if (count) {
-                       tty_flip_buffer_push(peer->port);
-                       tty_wakeup(tty);
-               } else {
-                       /*
-                        * Flush the slave reader if noone
-                        * is actually hooked on. Otherwise
-                        * wait until reader fetch all data.
-                        */
-                       if (peer->count <
-                           (tty->driver == vttym_driver) ? 2 : 1)
-                               tty_perform_flush(peer, TCIFLUSH);
-               }
-       }
-
-       return count;
-}
-
-static int vtty_write_room(struct tty_struct *tty)
-{
-       struct tty_struct *peer = tty->link;
-
-       if (tty->stopped)
-               return 0;
-
-       if (peer->count <
-           (tty->driver == vttym_driver) ? 2 : 1)
-               return 2048;
-
-       tty_buffer_space_avail(peer->port);
-}
-
-static void vtty_remove(struct tty_driver *driver, struct tty_struct *tty)
-{
-}
-
-static int vtty_resize(struct tty_struct *tty, struct winsize *ws)
-{
-       if (tty->driver == vttym_driver)
-               return pty_resize(tty, ws);
-       return tty_do_resize(tty, ws);
-}
-
-static const struct tty_operations vtty_ops = {
-       .lookup         = vtty_lookup,
-       .install        = vtty_install,
-       .open           = vtty_open,
-       .close          = vtty_close,
-       .shutdown       = vtty_shutdown,
-       .cleanup        = pty_cleanup,
-       .write          = vtty_write,
-       .write_room     = vtty_write_room,
-       .chars_in_buffer= pty_chars_in_buffer,
-       .set_termios    = pty_set_termios,
-       .unthrottle     = pty_unthrottle,
-       .flush_buffer   = pty_flush_buffer,
-       .remove         = vtty_remove,
-       .resize         = vtty_resize,
-};
-
-struct tty_driver *vtty_console_driver(int *index)
-{
-       *index = 0;
-       return vttys_driver;
-}
-
-struct tty_driver *vtty_driver(dev_t dev, int *index)
-{
-       if (MAJOR(dev) == TTY_MAJOR &&
-           MINOR(dev) <= MAX_NR_VTTY_CONSOLES) {
-               if (MINOR(dev))
-                       *index = MINOR(dev) - 1;
-               else
-                       *index = 0;
-               return vttys_driver;
-       }
-       return NULL;
-}
-
-void vtty_release_init(struct tty_struct *tty, struct tty_struct *o_tty)
-{
-       int pty_master, tty_closing, o_tty_closing;
-
-       if (tty->driver != vttym_driver &&
-           tty->driver != vttys_driver)
-               return;
-
-       set_bit(TTY_VTTY_BUSY, &tty->flags);
-       clear_bit(TTY_VTTY_BUSY, &tty->flags);
-
-       pty_master = (tty->driver == vttym_driver);
-
-       tty_closing = tty->count <= 1;
-       o_tty_closing = o_tty && (o_tty->count <= (pty_master ? 1 : 0));
-
-       /*
-        * Do not close master while slave is active.
-        */
-       if (!o_tty_closing && pty_master) {
-               set_bit(TTY_VTTY_BUSY, &tty->flags);
-               tty->count++;
-       }
-
-       /*
-        * Do not close master if we've closing
-        * not the last slave even if there is no
-        * readers on the master.
-        */
-       if (o_tty_closing && !tty_closing && !pty_master) {
-               set_bit(TTY_VTTY_BUSY, &o_tty->flags);
-               o_tty->count++;
-       }
-}
-
-void vtty_release_fini(struct tty_struct *tty, struct tty_struct *o_tty)
-{
-       if (test_bit(TTY_VTTY_BUSY, &tty->flags)) {
-               clear_bit(TTY_VTTY_BUSY, &tty->flags);
-               tty->count--;
-       }
-
-       if (o_tty && test_bit(TTY_VTTY_BUSY, &o_tty->flags)) {
-               clear_bit(TTY_VTTY_BUSY, &o_tty->flags);
-               o_tty->count--;
-       }
-}
-
-static int __init vtty_init(void)
-{
-#define VTTY_DRIVER_ALLOC_FLAGS                        \
-       (TTY_DRIVER_REAL_RAW            |       \
-        TTY_DRIVER_RESET_TERMIOS       |       \
-        TTY_DRIVER_DYNAMIC_DEV         |       \
-        TTY_DRIVER_INSTALLED           |       \
-        TTY_DRIVER_DEVPTS_MEM)
-
-       vttym_driver = tty_alloc_driver(MAX_NR_VTTY_CONSOLES,
-                                       VTTY_DRIVER_ALLOC_FLAGS);
-       if (IS_ERR(vttym_driver))
-               panic(pr_fmt("Can't allocate master vtty driver\n"));
-
-       vttys_driver = tty_alloc_driver(MAX_NR_VTTY_CONSOLES,
-                                       VTTY_DRIVER_ALLOC_FLAGS);
-       if (IS_ERR(vttys_driver))
-               panic(pr_fmt("Can't allocate slave vtty driver\n"));
-
-       vttym_driver->driver_name               = "vtty_master";
-       vttym_driver->name                      = "vttym";
-       vttym_driver->name_base                 = 0;
-       vttym_driver->major                     = 0;
-       vttym_driver->minor_start               = 0;
-       vttym_driver->type                      = TTY_DRIVER_TYPE_PTY;
-       vttym_driver->subtype                   = PTY_TYPE_MASTER;
-       vttym_driver->init_termios              = tty_std_termios;
-       vttym_driver->init_termios.c_iflag      = 0;
-       vttym_driver->init_termios.c_oflag      = 0;
-
-       /* 38400 boud rate, 8 bit char size, enable receiver */
-       vttym_driver->init_termios.c_cflag      = B38400 | CS8 | CREAD;
-       vttym_driver->init_termios.c_lflag      = 0;
-       tty_set_operations(vttym_driver, &vtty_ops);
-
-       vttys_driver->driver_name               = "vtty_slave";
-       vttys_driver->name                      = "vttys";
-       vttys_driver->name_base                 = 0;
-       vttys_driver->major                     = 0;
-       vttys_driver->minor_start               = 0;
-       vttys_driver->type                      = TTY_DRIVER_TYPE_PTY;
-       vttys_driver->subtype                   = PTY_TYPE_SLAVE;
-       vttys_driver->init_termios              = tty_std_termios;
-       vttys_driver->init_termios.c_cflag      = B38400 | CS8 | CREAD;
-       tty_set_operations(vttys_driver, &vtty_ops);
-
-       if (tty_register_driver(vttym_driver))
-               panic(pr_fmt("Can't register master vtty driver\n"));
-
-       if (tty_register_driver(vttys_driver))
-               panic(pr_fmt("Can't register slave vtty driver\n"));
-
-       tty_default_fops(&vtty_fops);
-       return 0;
-}
-
-int vtty_open_master(envid_t veid, int idx)
-{
-       struct tty_struct *tty;
-       struct file *file;
-       char devname[64];
-       int fd, ret;
-
-       if (!vtty_match_index(idx))
-               return -EIO;
-
-       fd = get_unused_fd_flags(0);
-       if (fd < 0)
-               return fd;
-
-       snprintf(devname, sizeof(devname), "v%utty%d", veid, idx);
-       file = anon_inode_getfile(devname, &vtty_fops, NULL, O_RDWR);
-       if (IS_ERR(file)) {
-               ret = PTR_ERR(file);
-               goto err_put_unused_fd;
-       }
-       nonseekable_open(NULL, file);
-
-       ret = tty_alloc_file(file);
-       if (ret)
-               goto err_fput;
-
-       /*
-        * Opening comes from ve0 context so
-        * setup VE's context until master fetched.
-        * This is done under @tty_mutex so noone
-        * else would access it while we're holding
-        * the lock.
-        */
-       mutex_lock(&tty_mutex);
-       vtty_set_context(veid);
-
-       tty = vtty_lookup(vttym_driver, NULL, idx);
-       if (!tty ||
-           (test_bit(TTY_OTHER_CLOSED, &tty->flags) ||
-            test_bit(TTY_OTHER_CLOSED, &tty->link->flags))) {
-               /*
-                * The previous connection is about to
-                * be closed so drop it from the map and
-                * allocate a new one.
-                */
-               if (tty)
-                       vtty_map_clear(tty);
-               tty = tty_init_dev(vttys_driver, idx);
-               if (IS_ERR(tty))
-                       goto err_install;
-               tty->count--;
-               tty_unlock(tty);
-               tty = tty->link;
-       }
-
-       /* One master at a time */
-       if (tty->count >= 1) {
-               ret = -EBUSY;
-               goto err_install;
-       }
-
-       vtty_drop_context();
-
-       /* FIXME: code will be dropped anyway
-        * WARN_ON(!test_bit(TTY_LDISC, &tty->flags));
-        */
-
-       /*
-        * We're the master peer so increment
-        * slave counter as well.
-        */
-       tty_add_file(tty, file);
-       tty->count++;
-       tty->link->count++;
-       fd_install(fd, file);
-       vtty_open(tty, file);
-
-       mutex_unlock(&tty_mutex);
-       ret = fd;
-out:
-       return ret;
-
-err_install:
-       vtty_drop_context();
-       mutex_unlock(&tty_mutex);
-       tty_free_file(file);
-err_fput:
-       file->f_op = NULL;
-       fput(file);
-err_put_unused_fd:
-       put_unused_fd(fd);
-       goto out;
-}
-EXPORT_SYMBOL(vtty_open_master);
-#else
-static void vtty_init(void) { };
-#endif /* CONFIG_VE */
-
 static int __init pty_init(void)
 {
        legacy_pty_init();
        unix98_pty_init();
-       vtty_init();
        return 0;
 }
 device_initcall(pty_init);
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index 1bd5a9d4e416..d003244ca1eb 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -106,7 +106,6 @@
 
 #include <linux/kmod.h>
 #include <linux/nsproxy.h>
-#include <linux/ve.h>
 
 #undef TTY_DEBUG_HANGUP
 #ifdef TTY_DEBUG_HANGUP
@@ -1675,8 +1674,6 @@ int tty_release(struct inode *inode, struct file *filp)
        /* If tty is pty master, lock the slave pty (stable lock order) */
        tty_lock_slave(o_tty);
 
-       vtty_release_init(tty, o_tty);
-
        /*
         * Sanity check: if tty->count is going to zero, there shouldn't be
         * any waiters on tty->read_wait or tty->write_wait.  We test the
@@ -1767,7 +1764,6 @@ int tty_release(struct inode *inode, struct file *filp)
        /* check whether both sides are closing ... */
        final = !tty->count && !(o_tty && o_tty->count);
 
-       vtty_release_fini(tty, o_tty);
        tty_unlock_slave(o_tty);
        tty_unlock(tty);
 
@@ -1836,19 +1832,6 @@ static struct tty_driver *tty_lookup_driver(dev_t 
device, struct file *filp,
 {
        struct tty_driver *driver;
 
-#ifdef CONFIG_VE
-       struct ve_struct *ve = get_exec_env();
-
-       if (!ve_is_super(ve)) {
-               driver = vtty_driver(device, index);
-               if (driver) {
-                       if (MINOR(device) == 0)
-                               filp->f_flags |= O_NOCTTY;
-                       return tty_driver_kref_get(driver);
-               }
-       }
-#endif
-
        switch (device) {
 #ifdef CONFIG_VT
        case MKDEV(TTY_MAJOR, 0): {
@@ -1860,17 +1843,6 @@ static struct tty_driver *tty_lookup_driver(dev_t 
device, struct file *filp,
 #endif
        case MKDEV(TTYAUX_MAJOR, 1): {
                struct tty_driver *console_driver = console_device(index);
- #ifdef CONFIG_VE
-               if (!ve_is_super(ve)) {
-                       console_driver = vtty_console_driver(index);
-                       /*
-                        * Reset fops, sometimes there might be
-                        * console_fops picked from inode->i_cdev
-                        * in chrdev_open()
-                        */
-                       filp->f_op = &tty_fops;
-               }
- #endif
                if (console_driver) {
                        driver = tty_driver_kref_get(console_driver);
                        if (driver && filp) {
diff --git a/include/linux/tty.h b/include/linux/tty.h
index e24cc899f1ec..808fbfe86f85 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -367,7 +367,6 @@ struct tty_file_private {
 #define TTY_HUPPED             18      /* Post driver->hangup() */
 #define TTY_HUPPING            19      /* Hangup in progress */
 #define TTY_LDISC_HALTED       22      /* Line discipline is halted */
-#define TTY_VTTY_BUSY          23      /* Mark tty as busy for VE sake */
 
 /* Values for tty->flow_change */
 #define TTY_THROTTLE_SAFE 1
diff --git a/include/linux/ve.h b/include/linux/ve.h
index 42883b4b898a..7d6837fef8c6 100644
--- a/include/linux/ve.h
+++ b/include/linux/ve.h
@@ -21,9 +21,6 @@ struct nsproxy;
 struct veip_struct;
 struct user_namespace;
 struct super_block;
-struct tty_driver;
-struct tty_struct;
-struct cn_private;
 
 struct ve_struct {
        struct cgroup_subsys_state      css;
@@ -165,16 +162,6 @@ void ve_exit_ns(struct pid_namespace *ns);
 bool ve_check_trusted_exec(struct file *file, struct filename *name);
 bool ve_check_trusted_mmap(struct file *file);
 
-#ifdef CONFIG_TTY
-#define MAX_NR_VTTY_CONSOLES   (12)
-extern struct tty_driver *vtty_driver(dev_t dev, int *index);
-extern struct tty_driver *vtty_console_driver(int *index);
-extern int vtty_open_master(envid_t veid, int idx);
-extern void vtty_release_init(struct tty_struct *tty, struct tty_struct 
*o_tty);
-extern void vtty_release_fini(struct tty_struct *tty, struct tty_struct 
*o_tty);
-extern bool vtty_is_master(struct tty_struct *tty);
-#endif /* CONFIG_TTY */
-
 static inline struct ve_struct *css_to_ve(struct cgroup_subsys_state *css)
 {
        return css ? container_of(css, struct ve_struct, css) : NULL;
diff --git a/kernel/ve/vecalls.c b/kernel/ve/vecalls.c
index f1cc04ee82da..dcda8c0753c8 100644
--- a/kernel/ve/vecalls.c
+++ b/kernel/ve/vecalls.c
@@ -367,9 +367,6 @@ static int ve_configure(envid_t veid, unsigned int key,
        struct ve_struct *ve;
        int err = -ENOKEY;
 
-       if (key == VE_CONFIGURE_OPEN_TTY)
-               return vtty_open_master(veid, val);
-
        ve = get_ve_by_id(veid);
        if (!ve)
                return -EINVAL;
_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to