Re: [PATCH #upstraem-fixes] ata_piix: detect and clear spurious IRQs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> circumstances, during resume SRST, the drive would raise the IRQ line
> regardless of NIEN and will stay that way for several seconds, thus
> triggering nobody cared.  Other than detecting and clearing the
> spurious IRQ, there just isn't much driver can do to work around
> problems like this.

There is. It also means your patch isn't sufficient - if that IRQ had
been level triggered you'd have hung the box solid.

The old IDE code makes use of disable_irq/enable_irq (and really ought to
make use of on chip private IRQ mask bits as first choice but doesn't).

Sounds to me like there are two things we can do to help

Make the nIEN masking via a helper that can on suitable chips also mask
on chip.

Make use of disable_irq_nosync() in the case of devices that ignore nIEN
in the IRQ handler, setting a flag then re-enable it when the driver
path completes the reset and the bit goes clear.

We need to start using enable/disable_irq and/or local chip IRQ masking
for PIO in some places anyway.

Alan
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux