[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <54227166.7010901@linux.intel.com>
Date: Wed, 24 Sep 2014 15:23:18 +0800
From: Jiang Liu <jiang.liu@...ux.intel.com>
To: Yasuaki Ishimatsu <isimatu.yasuaki@...fujitsu.com>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>,
"H. Peter Anvin" <hpa@...or.com>,
"Rafael J. Wysocki" <rjw@...ysocki.net>,
Bjorn Helgaas <bhelgaas@...gle.com>,
Randy Dunlap <rdunlap@...radead.org>,
Yinghai Lu <yinghai@...nel.org>,
Borislav Petkov <bp@...en8.de>,
Grant Likely <grant.likely@...aro.org>,
Marc Zyngier <marc.zyngier@....com>
CC: Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Tony Luck <tony.luck@...el.com>,
Joerg Roedel <joro@...tes.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
x86@...nel.org, linux-kernel@...r.kernel.org,
linux-pci@...r.kernel.org, linux-acpi@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org
Subject: Re: [RFC Part2 v1 01/21] irqdomain: Introduce new interfaces to support
hierarchy irqdomains
On 2014/9/24 14:55, Yasuaki Ishimatsu wrote:
> (2014/09/11 23:03), Jiang Liu wrote:
>> +static void irq_domain_free_irq_data(unsigned int virq, unsigned int nr_irqs)
>> +{
>> + int i;
>> + struct irq_data *irq_data, *tmp;
>> +
>> + for (i = 0; i < nr_irqs; i++) {
>
>> + irq_data = irq_get_irq_data(virq + i);
>> + tmp = irq_data->parent_data;
>
> Why don't you care NULL condition?
Yeah, there's an explicitly assumption that, irq_get_irq_data()
always return valid pointer once we have allocated the irq number
and associated irq_desc. If preferred, I will add a check here.
>
>> + irq_data->parent_data = NULL;
>> + irq_data->domain = NULL;
>> +
>> + while (tmp) {
>> + irq_data = tmp;
>> + tmp = tmp->parent_data;
>> + kfree(irq_data);
>> + }
>> + }
>> +}
>> +
>> +static int irq_domain_alloc_irq_data(struct irq_domain *domain,
>> + unsigned int virq, unsigned int nr_irqs)
>> +{
>> + int i;
>> + struct irq_data *irq_data;
>> + struct irq_domain *parent;
>> +
>> + /* The outmost irq_data is embedded in struct irq_desc */
>> + for (i = 0; i < nr_irqs; i++) {
>
>
>> + irq_data = irq_get_irq_data(virq + i);
>> + irq_data->domain = domain;
>
> ditto.
Seems as above.
Regards!
Gerry
>
> Thanks,
> Yasuaki Ishimatsu
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists