Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760886Ab2FGO2J (ORCPT ); Thu, 7 Jun 2012 10:28:09 -0400 Received: from iolanthe.rowland.org ([192.131.102.54]:38925 "HELO iolanthe.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1760760Ab2FGO2G (ORCPT ); Thu, 7 Jun 2012 10:28:06 -0400 Date: Thu, 7 Jun 2012 10:28:05 -0400 (EDT) From: Alan Stern X-X-Sender: stern@iolanthe.rowland.org To: Stefani Seibold cc: Greg KH , , , , Subject: Re: [PATCH 04/11] remove usb_interface pointer In-Reply-To: <1339069895.12066.10.camel@wall-e> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1178 Lines: 30 On Thu, 7 Jun 2012, Stefani Seibold wrote: > I tried to implement your idea to kick away the usb_device pointer, but > i think it is impossible. The skel_delete() function needs the > usb_device pointer for calling usb_put, which is called from > skel_disconnect() or skel_release(). Does skel_delete() really need to call usb_put_dev()? I suspect that the driver doesn't need to take a reference to either the device or the interface. > A call of interface_to_usbdev(dev->intf) results in a udev pointer, but > this pointer is only valid if it was called trough kref_put() from > skel_disconnect(). > > For an already opened devices, the call will come from skel_release() > and in this case the interface pointer could be already owned by an > other driver and no more longer handle by the skeleton driver. > > So i think we need both. If skel_delete is changed then we don't need the usb_device pointer. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/