The Linux SCSI interface driver "aic7xxx.c" may have a potential problem with PPR (Parallel Protocol Request) messaging. (SCSI Parallel Interface-3 specification T10/1302D,Rev 12, Section 16.3.10.1) The driver attempts to send a PPR message but rejects the reply from the target. The driver detects that a SCSI-3 target is present and sends a PPR message. However, it rejects the reply because the Adaptec SCSI card ID does not indicate that PPR messaging is supported. This problem only appears when the target supports PPR messaging and the Adaptec SCSI interface card does not support PPR messaging. Potential Solutions Solution 1: The driver should not send a PPR message if PPR messaging is not supported by the Adaptec SCSI interface card present. An alternate method of negotiation should be attempted for Adaptec SCSI interface cards that do not support PPR messaging. aic7xxx.c, line 2944: change if ( (buffer[2] & SCSI_VERSION_BITS) == 3) to if (( (buffer[2] & SCSI_VERSION_BITS) == 3) && (p->features & AHC_ULTRA3) ) Solution2: Determine the Adaptec SCSI interface cards support PPR messaging and only attempt PPR messaging when both the Adaptec SCSI interface card support PPR messaging and the target supports PPR messaging. Testing that has been performed on an Adaptec 2940U2W(AIC7890) appears to support PPR messaging if the following 3 lines of code are removed from the driver. aic7xxx.c, line 5646-5649: /* p->features == 0x04F6 for the Adaptec 2940U2W */ if( !(p->features & AHC_ULTRA3) ) { reject = TRUE; break; } Carl J. White III Firmware Development Engineer Seagate Technology 10323 West Reno Avenue P.O. Box 12313 Oklahoma City, OK 73157 (405)577-3963 carl_j_white.com
There have been substantial changes in the Adaptec driver since the Red Hat Linux 6.1 release. Does this problem still occur in 8.0/Phoebe betas?
Closing out due to bit-rot.