[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4aab9d3b-6ca6-01c5-f840-459f945c7577@huawei.com>
Date: Fri, 20 Nov 2020 11:52:09 +0000
From: John Garry <john.garry@...wei.com>
To: Thomas Gleixner <tglx@...utronix.de>, <gregkh@...uxfoundation.org>,
<rafael@...nel.org>, <martin.petersen@...cle.com>,
<jejb@...ux.ibm.com>
CC: <linuxarm@...wei.com>, <linux-scsi@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <maz@...nel.org>
Subject: Re: [PATCH v2 1/3] genirq/affinity: Add irq_update_affinity_desc()
Hi Thomas,
>> Just mentioning a couple of things here, which could be a clue to what
>> is going on:
>> - the device is behind mbigen secondary irq controller
>> - the flow in the LLDD is to allocate all 128 interrupts during probe,
>> but we only register handlers for a subset with device managed API
> Right, but if the driver is removed then the interrupts should be
> deallocated, right?
>
When removing the driver we just call free_irq(), which removes the
handler and disables the interrupt.
But about the irq_desc, this is created when the mapping is created in
irq_create_fwspec_mapping(), and I don't see this being torn down in the
driver removal, so persistent in that regard.
So for pci msi I can see that we free the irq_desc in pci_disable_msi()
-> free_msi_irqs() -> msi_domain_free_irqs() ...
So what I am missing here?
Thanks,
John
Powered by blists - more mailing lists