Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932405AbcKNOjS (ORCPT ); Mon, 14 Nov 2016 09:39:18 -0500 Received: from mga05.intel.com ([192.55.52.43]:51995 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751496AbcKNOjQ (ORCPT ); Mon, 14 Nov 2016 09:39:16 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,638,1473145200"; d="scan'208";a="1068240055" Date: Mon, 14 Nov 2016 16:39:10 +0200 From: Heikki Krogerus To: Greg KH Cc: Guenter Roeck , Oliver Neukum , Felipe Balbi , Bin Gao , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Subject: Re: [PATHCv10 1/2] usb: USB Type-C connector class Message-ID: <20161114143910.GE22706@kuha.fi.intel.com> References: <20160919111657.22127-1-heikki.krogerus@linux.intel.com> <20160919111657.22127-2-heikki.krogerus@linux.intel.com> <20161114095148.GA10306@kroah.com> <20161114123235.GD22706@kuha.fi.intel.com> <20161114141123.GA21395@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20161114141123.GA21395@kroah.com> User-Agent: Mutt/1.7.1 (2016-10-04) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 896 Lines: 27 On Mon, Nov 14, 2016 at 03:11:23PM +0100, Greg KH wrote: > On Mon, Nov 14, 2016 at 02:32:35PM +0200, Heikki Krogerus wrote: > > > > +static void __exit typec_exit(void) > > > > +{ > > > > + class_unregister(&typec_class); > > > > > > You forgot to clean up your idr :( > > > > Sorry, what idr? The port ids get removed in typec_release(). > > You have a static idr structure in the driver, right? You have to clean > it up when your code is going away so that it will free any memory it > had allocated with a call to idr_destroy() on module exit. Ok. Regarding the DEVICE_ATTR* macros. So I have attributes with same names for different device types. I may be able to identify the device types and deal with the correct attribute based on that, but for example the attribute "active" with alternate modes is writable, but with cables it's not. How do I handle those? Thanks, -- heikki