From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759085AbbGHRYe (ORCPT ); Wed, 8 Jul 2015 13:24:34 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:34079 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752327AbbGHRYb (ORCPT ); Wed, 8 Jul 2015 13:24:31 -0400 Date: Wed, 8 Jul 2015 10:24:30 -0700 From: Greg Kroah-Hartman To: Johannes Thumshirn Cc: "Hans J. Koch" , linux-kernel@vger.kernel.org Subject: Re: [PATCH] uio: Destroy uio_idr on module exit Message-ID: <20150708172430.GA14727@kroah.com> References: <1436369086-31231-1-git-send-email-jthumshirn@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1436369086-31231-1-git-send-email-jthumshirn@suse.de> User-Agent: Mutt/1.5.23+89 (0255b37be491) (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jul 08, 2015 at 05:24:46PM +0200, Johannes Thumshirn wrote: > Destroy uio_idr on module exit, reclaiming the allocated memory. > > This was detected by the following semantic patch (written by Luis Rodriguez > ) > > @ defines_module_init @ > declarer name module_init, module_exit; > declarer name DEFINE_IDR; > identifier init; > @@ > > module_init(init); > > @ defines_module_exit @ > identifier exit; > @@ > > module_exit(exit); > > @ declares_idr depends on defines_module_init && defines_module_exit @ > identifier idr; > @@ > > DEFINE_IDR(idr); > > @ on_exit_calls_destroy depends on declares_idr && defines_module_exit @ > identifier declares_idr.idr, defines_module_exit.exit; > @@ > > exit(void) > { > ... > idr_destroy(&idr); > ... > } > > @ missing_module_idr_destroy depends on declares_idr && defines_module_exit && !on_exit_calls_destroy @ > identifier declares_idr.idr, defines_module_exit.exit; > @@ > > exit(void) > { > ... > +idr_destroy(&idr); > } > > > > Signed-off-by: Johannes Thumshirn Nice work. Shouldn't we do the same thing for ida_destroy() as well? I see 4 USB drivers that need this same fix for that structure. thanks, greg k-h