Messages in this thread | | | Subject | Re: [PATCH 01/11] irqchip/gic-v3-its: Free collection mapping on device teardown | Date | Fri, 08 Nov 2019 16:34:15 +0109 | From | Marc Zyngier <> |
| |
Hi Zenghui,
On 2019-11-08 14:09, Zenghui Yu wrote: > Hi Marc, > > On 2019/11/6 0:22, Marc Zyngier wrote: >> Somehow, we forgot to free the collection mapping when tearing down >> a device, hence slowly leaking mapping arrays as devices get removed >> from the system. That is, almost never. >> Just to be safe, properly free the array on device teardown. >> Signed-off-by: Marc Zyngier <maz@kernel.org> >> --- >> drivers/irqchip/irq-gic-v3-its.c | 1 + >> 1 file changed, 1 insertion(+) >> diff --git a/drivers/irqchip/irq-gic-v3-its.c >> b/drivers/irqchip/irq-gic-v3-its.c >> index 787e8eec9a7f..07d0bde60e16 100644 >> --- a/drivers/irqchip/irq-gic-v3-its.c >> +++ b/drivers/irqchip/irq-gic-v3-its.c >> @@ -2471,6 +2471,7 @@ static void its_free_device(struct its_device >> *its_dev) >> raw_spin_lock_irqsave(&its_dev->its->lock, flags); >> list_del(&its_dev->entry); >> raw_spin_unlock_irqrestore(&its_dev->its->lock, flags); >> + kfree(its_dev->event_map.col_map); > > I agreed that this is the appropriate place to free the collection > mapping (act as the counterpart of the allocation which happened in > its_create_device). But as pointed out by Heyi [1], this will > introduce a double free issue. We'd better also drop the kfree() > in its_irq_domain_free() in this patch? > > (I find that it had been dropped in the last patch in your > irq/gic-5.5-wip branch, but maybe better here.)
Ah, that hunk is in a separate patch that I wasn't really planning to send for this round. Let me fix the series (again) and resend it...
Thanks for the heads up,
M. -- Jazz is not dead. It just smells funny...
| |