Revision 196a7784 hw/qxl.c

b/hw/qxl.c
666 666
    dprint(d, 1, "%s: start%s\n", __FUNCTION__,
667 667
           loadvm ? " (loadvm)" : "");
668 668

  
669
    qemu_mutex_unlock_iothread();
670 669
    d->ssd.worker->reset_cursor(d->ssd.worker);
671 670
    d->ssd.worker->reset_image_cache(d->ssd.worker);
672
    qemu_mutex_lock_iothread();
673 671
    qxl_reset_surfaces(d);
674 672
    qxl_reset_memslots(d);
675 673

  
......
799 797
{
800 798
    dprint(d, 1, "%s:\n", __FUNCTION__);
801 799
    d->mode = QXL_MODE_UNDEFINED;
802
    qemu_mutex_unlock_iothread();
803 800
    d->ssd.worker->destroy_surfaces(d->ssd.worker);
804
    qemu_mutex_lock_iothread();
805 801
    memset(&d->guest_surfaces.cmds, 0, sizeof(d->guest_surfaces.cmds));
806 802
}
807 803

  
......
870 866
    dprint(d, 1, "%s\n", __FUNCTION__);
871 867

  
872 868
    d->mode = QXL_MODE_UNDEFINED;
873
    qemu_mutex_unlock_iothread();
874 869
    d->ssd.worker->destroy_primary_surface(d->ssd.worker, 0);
875
    qemu_mutex_lock_iothread();
876 870
}
877 871

  
878 872
static void qxl_set_mode(PCIQXLDevice *d, int modenr, int loadvm)
......
942 936
    case QXL_IO_UPDATE_AREA:
943 937
    {
944 938
        QXLRect update = d->ram->update_area;
945
        qemu_mutex_unlock_iothread();
946 939
        d->ssd.worker->update_area(d->ssd.worker, d->ram->update_surface,
947 940
                                   &update, NULL, 0, 0);
948
        qemu_mutex_lock_iothread();
949 941
        break;
950 942
    }
951 943
    case QXL_IO_NOTIFY_CMD:

Also available in: Unified diff