Re: [PATCH V3 1/2] irq: Track the interrupt timings

From: Shreyas B Prabhu
Date: Mon Feb 22 2016 - 09:49:29 EST


Hi Daniel,

On 02/16/2016 09:13 PM, Daniel Lezcano wrote:
> diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c
> index 0ccd028..577686b 100644
> --- a/kernel/irq/irqdesc.c
> +++ b/kernel/irq/irqdesc.c
> @@ -174,6 +174,9 @@ static struct irq_desc *alloc_desc(int irq, int node, struct module *owner)
> if (alloc_masks(desc, gfp, node))
> goto err_kstat;
>
> + if (alloc_timings(desc))
> + goto err_mask;
> +
> raw_spin_lock_init(&desc->lock);
> lockdep_set_class(&desc->lock, &irq_desc_lock_class);
> init_rcu_head(&desc->rcu);
> @@ -182,6 +185,8 @@ static struct irq_desc *alloc_desc(int irq, int node, struct module *owner)
>
> return desc;
>
> +err_mask:
> + free_masks(desc);
> err_kstat:
> free_percpu(desc->kstat_irqs);
> err_desc:
> @@ -220,6 +225,11 @@ static void free_desc(unsigned int irq)
> * the child interrupts.
> */
> call_rcu(&desc->rcu, delayed_free_desc);
> +
> + free_timings(desc);
> + free_masks(desc);
> + free_percpu(desc->kstat_irqs);
> + kfree(desc);
> }

I think this is a rebase error. If I am not wrong, instead of this you
need to add free_timings(desc) to delayed_free_desc.

Thanks,
Shreyas