28f5afdb85
time that we really want to do this is when a bus reset causes the sequencer to be reset and the kernel driver now handles this case. Remove some reordering in the select2 routine that wasn't necessary. It was an experimental fix for a race condition I fixed elsewhere, and confused the code flow. Don't bother looping on a parity error in the mesgout loop since we can't see parity errors on out phases. Clean up the mesgin_identify code. In the old days, we "snooped" for tag messages and used this as an indicator of whether or not the target was using tagged transactions. This forced the sequencer to ack the identify before determining if a valid SCB matched the target meaning that an abort message to handle this case might not be seen before the target entered a data phase. Since we can determin the "tagged-ness" of a target by looking it up in the array of busy targets (recently introduced), we can determine this up front simplifying the search code as well as ensuring we can follow the SCSI specs method for rejecting a reselection. When an SCB is placed on the free list, set its SCB_TAG to SCB_LIST_NULL. This makes it much easier for the kernel driver to find active SCBs on the card during error recovery. |
||
---|---|---|
.. | ||
aicasm | ||
aic7xxx_asm.1 | ||
aic7xxx_asm.c | ||
aic7xxx_reg.h | ||
aic7xxx.seq | ||
aicasm.c |