[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [6352] Fix character devices after DisplayState refacto
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [6352] Fix character devices after DisplayState refactoring |
Date: |
Sun, 18 Jan 2009 15:09:33 +0100 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
On Sat, Jan 17, 2009 at 11:11:26PM +0100, Stefan Weil wrote:
> Anthony Liguori schrieb:
> > Revision: 6352
> > http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6352
> > Author: aliguori
> > Date: 2009-01-16 20:23:27 +0000 (Fri, 16 Jan 2009)
> >
> > Log Message:
> > -----------
> > Fix character devices after DisplayState refactoring
> >
> > The DisplayState refactoring changed the machine init function to create a
> > DisplayState for each VGA device instead of being passed an existing
> > DisplayState. This change is critical to enable multiple graphics device
> > support.
> >
> > Unfortunately, the serial/parallel/console code is structured today to run
> > before machine init to fill out the CharDriverState table which the
> > machine
> > init function uses to determine whether to create the required devices.
> >
> > Since a 'vc' is a type of CharDriverState, the CharDriverState code
> > requires
> > that a DisplayState exist before it runs creating a circular dependency.
> >
> > To fix this, this splits the creation of the initial CharDriverState from
> > the initialization of the text console. We can then in a second step
> > associate
> > a DisplayState with all TextConsoles. This allows us to create the
> > CharDriverState's first, machine init, then associate the TextConsoles
> > with
> > a DisplayState.
> >
> > This code screams for more cleanup.
>
> Yes, it screams for more cleanups.
>
> MIPS Malta also no longer works, same reason as for the serial code:
>
> Malta creates a character device during machine init and writes some
> characters to it.
> This is now impossible because qemu_chr_printf can no longer be called
> before text_consoles_set_display was called.
>
I have committed a fix in revision 6365. It is a bit ugly, don't
hesistate to commit a better fix.
--
.''`. Aurelien Jarno | GPG: 1024D/F1BCDB73
: :' : Debian developer | Electrical Engineer
`. `' address@hidden | address@hidden
`- people.debian.org/~aurel32 | www.aurel32.net