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

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

 



Tejun Heo wrote:
> Alan Cox wrote:
>>> 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.
> 
> Right, the attached patch fixed it so it must have been the controller
> latching the IRQ.
> 
>> 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.
> 
> Agreed.  I think we should use disable/enable_irq for all controller
> which don't have proper IRQ masking mechanism (NIEN doesn't count) for
> both reliability and so that we move PIO out of irq handler.  Jeff,
> this has come up quite a few times now, what do you think?

OSDL bz#10884 seems to suffer similar problem.  The patch fixes it.

  http://bugzilla.kernel.org/show_bug.cgi?id=10884

We definitely need to do something about it.

-- 
tejun
--
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