Re: [tip:x86/apic] genirq: Prevent crash in irq_move_irq()

From: Jiang Liu
Date: Tue Jun 16 2015 - 04:25:18 EST


On 2015/6/16 16:12, Thomas Gleixner wrote:
>
>
> On Tue, 16 Jun 2015, Jiang Liu wrote:
>
>> On 2015/6/16 15:31, tip-bot for Jiang Liu wrote:
>>> Commit-ID: 458526ec81d755dfaa17f3d863302afe6fbefca0
>>> Gitweb: http://git.kernel.org/tip/458526ec81d755dfaa17f3d863302afe6fbefca0
>>> Author: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
>>> AuthorDate: Mon, 1 Jun 2015 16:05:11 +0800
>>> Committer: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
>>> CommitDate: Tue, 16 Jun 2015 09:23:28 +0200
>>>
>>> genirq: Prevent crash in irq_move_irq()
>>>
>>> The functions irq_move_irq() and irq_move_masked_irq() expect that the
>>> caller passes the top-level irq_data to them when hierarchical
>>> irqdomains are enabled. But that's not true when called from
>>> apic_ack_edge(), which results in a null pointer dereference by
>>> idata->chip->irq_mask(idata).
>>>
>>> Instead of fixing callers to passing top-level irq_data, we rather
>>> change irq_move_irq()/irq_move_masked_irq() to accept any irq_data.
>>>
>>> Fixes: 52f518a3a7c 'x86/MSI: Use hierarchical irqdomains to manage MSI interrupts'
>> Hi Thomas,
>> This patch has dependency on patch "[Patch v3 01/36] genirq:
>> Enhance irq_data_to_desc() to support hierarchy irqdomain" in the
>> same patch set, otherwise irq_data_to_desc(idata) may return invalid
>> irq_desc and may cause memory crash.
>
> That's why you should not mix bug fixes with performance improvement series.
Yes, it's a lesson. I always fall into troubles when managing several
inter-dependent patch sets at the same time.
Thanks!
Gerry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/