Question: This is my dmesg error:

```
[10678.069113] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
[10678.069119] ata1.00: irq_stat 0x40000001
[10678.069124] ata1.00: failed command: FLUSH CACHE EXT
[10678.069134] ata1.00: cmd ea/00:00:00:00:00/00:00:00:00:00/a0 tag 0
[10678.069136]          res 51/04:00:34:cf:f3/00:00:00:00:00/a3 Emask 0x1 (device error)
[10678.069141] ata1.00: status: { DRDY ERR }
[10678.069145] ata1.00: error: { ABRT }
[10678.076036] ata1.00: configured for UDMA/100
[10678.076046] ata1: EH complete

```

And this is my lspci, <http://pastebin.com/XbMPSV26> . How can I fix this?

This happens randomly, and lasts a few seconds, and is extremely annoying.

Answer: 
Your system is momentarily hanging because a (most likely) disk fault is causing all kinds of interrupt errors and ATA errors. 

You *could* investigate further but if i were you, i'd just double check all the connections of that storage unit (which seems to be using an IDE 40pin or IDE 44pin flat cable) and if they're not visibly damaged, just replace the hard drive.
This error is most likely related to spread centrum clocking (SSC) out of boundery on the sata bus. there are far too many dwords accumulated during the slow period to practically buffer for release in the fast periods. However sata supports downspreading, there should be an option in your BIOS to turn SSC off and drives like those from WD have a SSC disable jumper (normaly open), try tweaking see if it helps.   

It helped me out to get rid of those { DRDY ERR } and { ABRT } errors once.