Re: [PATCH] uio: Destroy uio_idr on module exit

From: Johannes Thumshirn
Date: Thu Jul 09 2015 - 02:48:55 EST


Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> writes:

> 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
>> <mcgrof@xxxxxxxx>)
>> <SmPL>
>> @ 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);
>> }
>>
>> </SmPL>
>>
>> Signed-off-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
>
> 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.
>

Can you tell me which? I've send overall 13 patches for this (no series
as get_maintainers.pl for the series spit out > 30 Recipients so I
refused to send spam).

Maybe/probably I forgot one (or two).

Johannes

--
Johannes Thumshirn Storage
jthumshirn@xxxxxxx +49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 NÃrnberg
GF: F. ImendÃrffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG NÃrnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/