[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 0/2] hw: Delay timer_new() from init to realize to avoid memleaks
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH 0/2] hw: Delay timer_new() from init to realize to avoid memleaks |
Date: |
Sat, 15 Feb 2020 16:47:04 +0100 |
After reviewing various patches from Pan Nengyuan fixing errors
reported Huawei's Euler Robot, I wrote this tiny coccinelle script
to find all occurences of this pattern:
@ match @
identifier instance_init;
typedef Object;
identifier obj;
expression val, scale;
identifier clock_type, callback, opaque;
position pos;
@@
static void instance_init(Object *obj)
{
<...
(
val = timer_new@pos(clock_type, scale, callback, opaque);
|
val = timer_new_ns@pos(clock_type, callback, opaque);
|
val = timer_new_us@pos(clock_type, callback, opaque);
|
val = timer_new_ms@pos(clock_type, callback, opaque);
)
...>
}
@ script:python @
f << match.instance_init;
p << match.pos;
@@
print "check %s:%s:%s in %s()" % (p[0].file, p[0].line, p[0].column, f)
The script produces:
$ docker run --rm -v $PWD:$PWD -w $PWD philmd/coccinelle \
--macro-file scripts/cocci-macro-file.h \
--sp-file scripts/coccinelle/init_timer_new.cocci
init_defs_builtins: /usr/lib/coccinelle/standard.h
init_defs: scripts/cocci-macro-file.h
check hw/ipmi/ipmi_bmc_extern.c:505:24 in ipmi_bmc_extern_init()
check hw/misc/mos6522.c:489:25 in mos6522_init()
check hw/rtc/pl031.c:194:15 in pl031_init()
check hw/arm/pxa2xx.c:1137:19 in pxa2xx_rtc_init()
check target/s390x/cpu.c:283:8 in s390_cpu_initfn()
check hw/sd/sd.c:2061:26 in sd_instance_init()
check hw/arm/spitz.c:527:18 in spitz_keyboard_init()
check hw/arm/strongarm.c:402:19 in strongarm_rtc_init()
check hw/arm/strongarm.c:1244:26 in strongarm_uart_init()
Pan fixed most of the occurences. This series fixes the last two.
Philippe Mathieu-Daudé (2):
hw/ipmi/bmc: Delay timer_new_ns() from init to realize to avoid
memleaks
hw/sd/sd: Delay timer_new_ns() from init to realize to avoid memleaks
hw/ipmi/ipmi_bmc_extern.c | 12 ++++++++++--
hw/sd/sd.c | 12 ++++++++++--
2 files changed, 20 insertions(+), 4 deletions(-)
--
2.21.1
- [PATCH 0/2] hw: Delay timer_new() from init to realize to avoid memleaks,
Philippe Mathieu-Daudé <=
- [PATCH 2/2] hw/sd/sd: Delay timer_new_ns() from init to realize to avoid memleaks, Philippe Mathieu-Daudé, 2020/02/15
- [PATCH 1/2] hw/ipmi/bmc: Delay timer_new_ns() from init to realize to avoid memleaks, Philippe Mathieu-Daudé, 2020/02/15
- Re: [PATCH 1/2] hw/ipmi/bmc: Delay timer_new_ns() from init to realize to avoid memleaks, Corey Minyard, 2020/02/16
- Re: [PATCH 1/2] hw/ipmi/bmc: Delay timer_new_ns() from init to realize to avoid memleaks, Peter Maydell, 2020/02/17
- Re: [PATCH 1/2] hw/ipmi/bmc: Delay timer_new_ns() from init to realize to avoid memleaks, Philippe Mathieu-Daudé, 2020/02/17
- Re: [PATCH 1/2] hw/ipmi/bmc: Delay timer_new_ns() from init to realize to avoid memleaks, Peter Maydell, 2020/02/17
- Re: [PATCH 1/2] hw/ipmi/bmc: Delay timer_new_ns() from init to realize to avoid memleaks, Philippe Mathieu-Daudé, 2020/02/17
- Re: [PATCH 1/2] hw/ipmi/bmc: Delay timer_new_ns() from init to realize to avoid memleaks, Peter Maydell, 2020/02/17
- Re: [PATCH 1/2] hw/ipmi/bmc: Delay timer_new_ns() from init to realize to avoid memleaks, Philippe Mathieu-Daudé, 2020/02/17