Re: [PATCH 8/8] libata: ack more unsolicited INTRQ

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

 



> Even if the unsolicited irq happens, maybe the current code has
> good chance to handle it?
> e.g. ata_irq_task() already reads the status before data transfer,
> thus possibly clearing some of unsolicited irqs.
> e.g. maybe the data transfer in the workqueue is quick enough?

Probably not given the PIO cycle time.

> If yes, hopefully the ATA_PFLAG_HSM_WQ is soon cleared, and
> then the interrupt handler can come in ack the irq. (Much the same
> way when the irq handler encounters "early irq" by bad devices.)

We seem to have three classes of controller here

- Those that need IRQs off for transfers anyway (eg ancient VIA)
- Those that we must not touch the status bits for but can otherwise
  behave sanely (Some PIIX, ICH and possibly some others)
- Those that behave sanely

The first lot are really "No change" and not found on SMP boxes anyway
The final ones would I think work with your patch (some testing required)

The best I can see that we could do with the Intel ones would be to use
disable_irq/enable_irq, especially as they are rarely found in native
mode so usually have a private IRQ. The only problem is that we must
disable_irq before we take the other locks otherwise we can deadlock in
disable_irq waiting for the irq handlers to finish while the IRQ handler
is trying to take the lock so never does.


-
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