Re: [PATCH 09/11] ahci: convert to new EH

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

 



Jeff Garzik wrote:
Tejun Heo wrote:
Convert AHCI to new EH.  Unfortunately, ICH7 AHCI reacts badly if IRQ
mask is diddled during operation.  So, freezing is implemented by
unconditionally clearing interrupt conditions while frozen.

For standard BMDMA hardware, you -absolutely must- stop DMA, before doing -anything- else, including EH/recovery.

This sort of scenario will be quite common. I would recommend doing so on sata_sil, sata_promise, ...


AHCI problem seems to be my honest mistake. I misinterpreted device failures as HBA failures. For ahci and sata_sil24, making them forget about pending commands take time, so it's awkward to do while freezing. And, as they are pretty modern controllers, I expect them to do the right thing when IRQ mask is diddled with.

For more traditional BMDMA controllers, I agree with you. I'll turn off BMDMA in bmdma_freeze() before setting nIEN. But, for sata_sil, I wanna leave it as it is. The code is tested on sil3112 and 3114 and both work fine. It's not always possible but I wanna avoid adding code which isn't necessary to LLDDs. After a while, nobody would remember why the code is there and people will assume sata_sil needs it, which isn't true.

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