*/
 static DEFINE_MUTEX(hvc_structs_mutex);
 
-/* Mutex to serialize hvc_open */
-static DEFINE_MUTEX(hvc_open_mutex);
 /*
  * This value is used to assign a tty->index value to a hvc_struct based
  * upon order of exposure via hvc_probe(), when we can not match it to
  */
 static int hvc_open(struct tty_struct *tty, struct file * filp)
 {
-       struct hvc_struct *hp;
+       struct hvc_struct *hp = tty->driver_data;
        unsigned long flags;
        int rc = 0;
 
-       mutex_lock(&hvc_open_mutex);
-
-       hp = tty->driver_data;
-       if (!hp) {
-               rc = -EIO;
-               goto out;
-       }
-
        spin_lock_irqsave(&hp->port.lock, flags);
        /* Check and then increment for fast path open. */
        if (hp->port.count++ > 0) {
                spin_unlock_irqrestore(&hp->port.lock, flags);
                hvc_kick();
-               goto out;
+               return 0;
        } /* else count == 0 */
        spin_unlock_irqrestore(&hp->port.lock, flags);
 
        /* Force wakeup of the polling thread */
        hvc_kick();
 
-out:
-       mutex_unlock(&hvc_open_mutex);
        return rc;
 }