qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [usb] call destroy for usb devices upon removal from gu


From: Fabrice Bellard
Subject: Re: [Qemu-devel] [usb] call destroy for usb devices upon removal from guest
Date: Tue, 18 Jul 2006 23:36:42 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20040913

Hi,

Calling dev->handle_reset() is redundant with usb_attach(port, NULL) and is also incorrect because dev->handle_reset is a private helper for the usb devices (the real message is USB_DETACH).

Regards,

Fabrice.

Lonnie Mendez wrote:
lo list.  I have found the old diff to be incorrect on many levels.  New
diff has additionally cleanup code for the linux redirector.  Please see
the attached patch for solution.


------------------------------------------------------------------------

--- qemu/vl.c   2006-07-17 03:16:38.191157512 -0500
+++ qemu/vl.c   2006-07-17 03:18:13.402683160 -0500
@@ -3781,6 +3781,7 @@
 {
     USBPort *port;
     USBPort **lastp;
+    USBDevice *dev;
     int bus_num, addr;
     const char *p;
@@ -3805,8 +3806,10 @@
     if (!port)
         return -1;
+ dev = port->dev;
     *lastp = port->next;
     usb_attach(port, NULL);
+    dev->handle_reset(dev, 1);
     port->next = free_usb_ports;
     free_usb_ports = port;
     return 0;
--- qemu/usb-linux.c    2006-06-26 16:00:51.000000000 -0500
+++ qemu/usb-linux.c    2006-07-17 03:32:28.427699600 -0500
@@ -59,6 +59,14 @@
static void usb_host_handle_reset(USBDevice *dev, int destroy)
 {
+    USBHostDevice *s = (USBHostDevice *)dev;
+ + if (destroy) {
+        if (s->fd >= 0)
+            close(s->fd);
+        qemu_free(s);
+        return;
+    }
 #if 0
     USBHostDevice *s = (USBHostDevice *)dev;
     /* USBDEVFS_RESET, but not the first time as it has already be


------------------------------------------------------------------------

_______________________________________________
Qemu-devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/qemu-devel





reply via email to

[Prev in Thread] Current Thread [Next in Thread]