Bug 8284

Summary: Potential Linux 6.1 Adaptec SCSI driver problem with PPR messaging
Product: [Retired] Red Hat Linux Reporter: carl_j_white
Component: kernelAssignee: Doug Ledford <dledford>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.1CC: carl_j_white, stevek
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2003-04-14 17:59:31 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description carl_j_white 2000-01-08 00:06:23 UTC
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,
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:
      if ( (buffer[2] & SCSI_VERSION_BITS) == 3)
      if (( (buffer[2] & SCSI_VERSION_BITS) == 3) &&
          (p->features & AHC_ULTRA3) )

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
aic7xxx.c, line 5646-5649:
   /* p->features == 0x04F6 for the Adaptec 2940U2W */
   if( !(p->features & AHC_ULTRA3) )
      reject = TRUE;

Carl J. White III
Firmware Development Engineer
Seagate Technology
10323 West Reno Avenue
P.O. Box 12313
Oklahoma City, OK 73157

Comment 1 Stephen John Smoogen 2003-01-24 00:04:18 UTC
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?

Comment 2 Jay Turner 2003-04-14 17:59:31 UTC
Closing out due to bit-rot.