Bug report

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I encounter a wierd problem when testing my cell-phone via usb-redirect.

Test environment:
Client OS: win7-32bit
VM OS:  win7-32bit

Tool-chain:
zadig-2.1 (use libusbk)
usbredir-0.7
spice-gtk-0.27 (use gtk-2.0)
virt-viewer-0.6 (use gtk-2.0)

Test device:
IPhone 5s
Google Nexus 3

Problem:
It seems that almost all USB device can be redirected successfully included cellphone. However, when my IPhone
appeared in the VM OS, I can double click the phone icon, see its storage card. Then, I clicked 'Trust' button on my phone. Then, the whole window of remote-viewer is stuck, and cannot be closed normally( one way to close it is kill the process from task manager).
The same problem can be reproduced on Android phone, take my Nexus 3 as an example. The phone screen is locked with pattern lock before redirect, and unlock it after redirect. Then, remote-viewer is stuck.

Accidentally, I found a way to fix the bug. I add a printf in the beginning of usbredir_handle_msg() function, as below:
static void usbredir_handle_msg(SpiceChannel *c, SpiceMsgIn *in)
{
    SpiceUsbredirChannel *channel = SPICE_USBREDIR_CHANNEL(c);
    SpiceUsbredirChannelPrivate *priv = channel->priv;
    device_error_data data;
    int r, size;
    uint8_t *buf;

    g_return_if_fail(priv->host != NULL);

    /* No recursion allowed! */
    g_return_if_fail(priv->read_buf == NULL);

    buf = spice_msg_in_raw(in, &size);
    priv->read_buf = buf;
    priv->read_buf_size = size;

    printf("msg\n");

    r = usbredirhost_read_guest_data(priv->host);

I don't know why it works. And I try to use sleep(0) to instead, it doesn't work. Then, use sleep(1), it works, but decreased the performance of handling usb message.

Br,
Dean
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/spice-devel

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]