On 11/14/2012 09:15 AM, Paul Mackerras wrote:
> Commit bdb498c20040 "TTY: hvc_console, add tty install" took the port
> refcounting out of hvc_open()/hvc_close(), but failed to remove the
> kref_put() and tty_kref_put() calls in hvc_hangup() that were there to
> remove the extra references that hvc_open() had taken.
> 
> The result was that doing a vhangup() when the current terminal was
> a hvc_console, then closing the current terminal, would end up calling
> destroy_hvc_struct() and making the port disappear entirely.  This
> meant that Fedora 17 systems would boot up but then not display the
> login prompt on the console, and attempts to open /dev/hvc0 would
> give a "No such device" error.
> 
> This fixes it by removing the extra kref_put() and tty_kref_put() calls.

Oh yeah. Thanks.

Acked-by: Jiri Slaby <jsl...@suse.cz>

> Signed-off-by: Paul Mackerras <pau...@samba.org>
> Cc: sta...@vger.kernel.org
> ---
>  drivers/tty/hvc/hvc_console.c |    7 -------
>  1 file changed, 7 deletions(-)
> 
> diff --git a/drivers/tty/hvc/hvc_console.c b/drivers/tty/hvc/hvc_console.c
> index a5dec1c..13ee53b 100644
> --- a/drivers/tty/hvc/hvc_console.c
> +++ b/drivers/tty/hvc/hvc_console.c
> @@ -424,7 +424,6 @@ static void hvc_hangup(struct tty_struct *tty)
>  {
>       struct hvc_struct *hp = tty->driver_data;
>       unsigned long flags;
> -     int temp_open_count;
>  
>       if (!hp)
>               return;
> @@ -444,7 +443,6 @@ static void hvc_hangup(struct tty_struct *tty)
>               return;
>       }
>  
> -     temp_open_count = hp->port.count;
>       hp->port.count = 0;
>       spin_unlock_irqrestore(&hp->port.lock, flags);
>       tty_port_tty_set(&hp->port, NULL);
> @@ -453,11 +451,6 @@ static void hvc_hangup(struct tty_struct *tty)
>  
>       if (hp->ops->notifier_hangup)
>               hp->ops->notifier_hangup(hp, hp->data);
> -
> -     while(temp_open_count) {
> -             --temp_open_count;
> -             tty_port_put(&hp->port);
> -     }
>  }
>  
>  /*
> 


-- 
js
suse labs
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to