Patchwork [v2] qxl: allow QXL_IO_LOG also in vga

login
register
mail settings
Submitter Alon Levy
Date June 24, 2011, 1:02 p.m.
Message ID <1308920577-31569-5-git-send-email-alevy@redhat.com>
Download mbox | patch
Permalink /patch/101793/
State New
Headers show

Comments

Alon Levy - June 24, 2011, 1:02 p.m.
The driver may change us to vga mode and still issue a QXL_IO_LOG,
which we can easily support.
---
 hw/qxl.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Gerd Hoffmann - June 29, 2011, 9:22 a.m.
Hi,

> The driver may change us to vga mode and still issue a QXL_IO_LOG,
> which we can easily support.

> @@ -1001,9 +1001,9 @@ static void ioport_write(void *opaque, uint32_t addr, uint32_t val)
> -    case QXL_IO_LOG:
>       case QXL_IO_CREATE_PRIMARY_ASYNC:
>       case QXL_IO_UPDATE_IRQ:
> +    case QXL_IO_LOG:
>           break;

That is a NOP, and it also doesn't apply.  It isn't the only patch which 
doesn't apply cleanly, looks like your series isn't based on 
upstream/master ...

cheers,
   Gerd
Alon Levy - June 29, 2011, 9:31 a.m.
On Wed, Jun 29, 2011 at 11:22:05AM +0200, Gerd Hoffmann wrote:
>   Hi,
> 
> >The driver may change us to vga mode and still issue a QXL_IO_LOG,
> >which we can easily support.
> 
> >@@ -1001,9 +1001,9 @@ static void ioport_write(void *opaque, uint32_t addr, uint32_t val)
> >-    case QXL_IO_LOG:
> >      case QXL_IO_CREATE_PRIMARY_ASYNC:
> >      case QXL_IO_UPDATE_IRQ:
> >+    case QXL_IO_LOG:
> >          break;
> 
> That is a NOP, and it also doesn't apply.  It isn't the only patch
> which doesn't apply cleanly, looks like your series isn't based on
> upstream/master ...

Yeah, my bad. I did something wierd, and missed this. I'll send a v3. Do you have other comments?

Unrelated, but have you looked at the async patches that I sent, and yonit's comments?
 - (me) catch EINTR and EAGAIN in async thread read
 - (yonit) reset surfaces count and surfaces when doing destroy_all

And I think there were some others I forget.

> 
> cheers,
>   Gerd
Gerd Hoffmann - June 29, 2011, 10:02 a.m.
Hi,

> Yeah, my bad. I did something wierd, and missed this. I'll send a v3. Do you have other comments?

I stopped looking after figuring stuff doesn't apply to master.

> Unrelated, but have you looked at the async patches that I sent, and yonit's comments?
>   - (me) catch EINTR and EAGAIN in async thread read
>   - (yonit) reset surfaces count and surfaces when doing destroy_all

http://cgit.freedesktop.org/spice/qemu/log/?h=bz700134 is what I 
currently have.  Some of your patches are in there already.

cheers,
   Gerd
Alon Levy - June 29, 2011, 11:43 a.m.
On Wed, Jun 29, 2011 at 12:02:30PM +0200, Gerd Hoffmann wrote:
>   Hi,
> 
> >Yeah, my bad. I did something wierd, and missed this. I'll send a v3. Do you have other comments?
> 
> I stopped looking after figuring stuff doesn't apply to master.
> 
> >Unrelated, but have you looked at the async patches that I sent, and yonit's comments?
> >  - (me) catch EINTR and EAGAIN in async thread read
> >  - (yonit) reset surfaces count and surfaces when doing destroy_all
> 
> http://cgit.freedesktop.org/spice/qemu/log/?h=bz700134 is what I
> currently have.  Some of your patches are in there already.

I tried rebasing on that, testing showed there was a deadlock, you can't reuse wlock for
track_command since it is called from interface_get_command, called from red_worker, which
may be during update_area, which already took the wlock. Adding a separate track_lock will
probably work.

> 
> cheers,
>   Gerd
>

Patch

diff --git a/hw/qxl.c b/hw/qxl.c
index 5266707..96f9c55 100644
--- a/hw/qxl.c
+++ b/hw/qxl.c
@@ -1001,9 +1001,9 @@  static void ioport_write(void *opaque, uint32_t addr, uint32_t val)
     case QXL_IO_MEMSLOT_ADD_ASYNC:
     case QXL_IO_MEMSLOT_DEL:
     case QXL_IO_CREATE_PRIMARY:
-    case QXL_IO_LOG:
     case QXL_IO_CREATE_PRIMARY_ASYNC:
     case QXL_IO_UPDATE_IRQ:
+    case QXL_IO_LOG:
         break;
     default:
         if (d->mode == QXL_MODE_NATIVE || d->mode == QXL_MODE_COMPAT)