From patchwork Fri Nov 20 21:49:56 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oliver Neukum X-Patchwork-Id: 61834 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id nAKLnvsI028989 for ; Fri, 20 Nov 2009 21:49:57 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753928AbZKTVtt (ORCPT ); Fri, 20 Nov 2009 16:49:49 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755051AbZKTVtt (ORCPT ); Fri, 20 Nov 2009 16:49:49 -0500 Received: from smtp-out002.kontent.com ([81.88.40.216]:56214 "EHLO smtp-out002.kontent.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753928AbZKTVts (ORCPT ); Fri, 20 Nov 2009 16:49:48 -0500 Received: from vanamonde.localnet (p549A1E87.dip0.t-ipconnect.de [84.154.30.135]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: neukum_org@smtp-out002.kontent.com) by smtp-out002.kontent.com (Postfix) with ESMTPSA id 8A6105986356; Fri, 20 Nov 2009 22:49:54 +0100 (CET) From: Oliver Neukum To: Dmitry Torokhov Subject: Re: [patch]race between disconnect and open in usbtouchscreen Date: Fri, 20 Nov 2009 22:49:56 +0100 User-Agent: KMail/1.12.2 (Linux/2.6.32-rc6-0.1-default; KDE/4.3.1; x86_64; ; ) Cc: linux-usb@vger.kernel.org, linux-input@vger.kernel.org, Ondrej Zary , Jiri Kosina , Daniel Ritz References: <200911202213.47916.oliver@neukum.org> <20091120212259.GC16447@core.coreip.homeip.net> In-Reply-To: <20091120212259.GC16447@core.coreip.homeip.net> MIME-Version: 1.0 Message-Id: <200911202249.56591.oliver@neukum.org> Sender: linux-input-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org diff --git a/drivers/input/touchscreen/usbtouchscreen.c b/drivers/input/touchscreen/usbtouchscreen.c index 68ece58..eddb628 100644 --- a/drivers/input/touchscreen/usbtouchscreen.c +++ b/drivers/input/touchscreen/usbtouchscreen.c @@ -1087,7 +1087,7 @@ static void usbtouch_disconnect(struct usb_interface *intf) dbg("%s - usbtouch is initialized, cleaning up", __func__); usb_set_intfdata(intf, NULL); - usb_kill_urb(usbtouch->irq); + /* this will stop IO via close */ input_unregister_device(usbtouch->input); usb_free_urb(usbtouch->irq); usbtouch_free_buffers(interface_to_usbdev(intf), usbtouch);