mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
If we get interrupted during a data phase and the DMA engine is still
pumping data despite our scsi data counters being at 0, something has gone massively wrong. The consequence of happily ignoring this is more DMA phase errors and a disk full of spammed sectors. Instead, panic on the first occurance to hopefully limit the damage. MFC After: 3 days
This commit is contained in:
parent
7d60dc524b
commit
4bd55c43ea
1 changed files with 6 additions and 0 deletions
|
|
@ -2228,6 +2228,11 @@ again:
|
|||
* a DATA transfer. Print a diagnostic
|
||||
* if the DMA counter and TC bit
|
||||
* appear to be out of sync.
|
||||
*
|
||||
* XXX This is fatal and usually means that
|
||||
* the DMA engine is hopelessly out of
|
||||
* sync with reality. A disk is likely
|
||||
* getting spammed at this point.
|
||||
*/
|
||||
device_printf(sc->sc_dev, "!TC on DATA XFER"
|
||||
" [intr %x, stat %x, step %d]"
|
||||
|
|
@ -2237,6 +2242,7 @@ again:
|
|||
sc->sc_espstep,
|
||||
sc->sc_prevphase,
|
||||
ecb ? ecb->dleft : -1);
|
||||
panic("esp: unrecoverable DMA error");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue