Skip to content

Commit

Permalink
ide: Fix irq flags madness
Browse files Browse the repository at this point in the history
commit ec1a123 (IDE: pass IRQ flags to the IDE core) introduced the
bogosity of passing unfiltered resource->flags to the irq_flags which
are used for request_irq. It results in random bits set (especially
IORESOURCE_IRQ which maps to IRQF_PER_CPU).

Filter the bits proper.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Thomas Gleixner authored and David S. Miller committed Aug 4, 2011
1 parent 288d5ab commit 89e9aad
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion drivers/ide/ide_platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include <linux/module.h>
#include <linux/ata_platform.h>
#include <linux/platform_device.h>
#include <linux/interrupt.h>
#include <linux/io.h>

static void __devinit plat_ide_setup_ports(struct ide_hw *hw,
Expand Down Expand Up @@ -95,7 +96,10 @@ static int __devinit plat_ide_probe(struct platform_device *pdev)
plat_ide_setup_ports(&hw, base, alt_base, pdata, res_irq->start);
hw.dev = &pdev->dev;

d.irq_flags = res_irq->flags;
d.irq_flags = res_irq->flags & IRQF_TRIGGER_MASK;
if (res_irq->flags & IORESOURCE_IRQ_SHAREABLE)
d.irq_flags |= IRQF_SHARED;

if (mmio)
d.host_flags |= IDE_HFLAG_MMIO;

Expand Down

0 comments on commit 89e9aad

Please sign in to comment.