From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39199) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VTpYc-0003nz-Kj for qemu-devel@nongnu.org; Wed, 09 Oct 2013 04:55:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VTpYW-00037v-BW for qemu-devel@nongnu.org; Wed, 09 Oct 2013 04:55:50 -0400 Received: from mx1.redhat.com ([209.132.183.28]:58943) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VTpYV-00037Y-Pk for qemu-devel@nongnu.org; Wed, 09 Oct 2013 04:55:44 -0400 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r998tfGg017410 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 9 Oct 2013 04:55:41 -0400 Message-ID: <1381308939.12583.27.camel@nilsson.home.kraxel.org> From: Gerd Hoffmann Date: Wed, 09 Oct 2013 10:55:39 +0200 In-Reply-To: <1381262298-3241-4-git-send-email-hdegoede@redhat.com> References: <1381262298-3241-1-git-send-email-hdegoede@redhat.com> <1381262298-3241-4-git-send-email-hdegoede@redhat.com> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 03/13] usb-host-libusb: Detach kernel drivers earlier List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Hans de Goede Cc: qemu-devel@nongnu.org On Di, 2013-10-08 at 21:58 +0200, Hans de Goede wrote: > If we detach the kernel drivers on the first set_config, then they will > be still attached when the device gets its initial reset. Causing the drivers > to re-initialize the device after the reset, dirtying the device state. > @@ -1051,7 +1055,6 @@ static void usb_host_set_config(USBHostDevice *s, int config, USBPacket *p) > trace_usb_host_set_config(s->bus_num, s->addr, config); > > usb_host_release_interfaces(s); > - usb_host_detach_kernel(s); > rc = libusb_set_configuration(s->dh, config); > if (rc != 0) { > usb_host_libusb_error("libusb_set_configuration", rc); Sure we can safely remove the detach_kernel here? Assuming we have a device with multiple configurations, each configuration has a different set of interfaces, guest switches from one config to another. Do we correctly unbind kernel / claim interfaces then? Handling this correctly was the reason to do the kernel unbind in response to the guests set_config instead of host_open btw, although I can see the issues the late unbind introduces. cheers, Gerd