Major Changes and Enhancements from 2.05.05 (Native driver RHEL 3)
• Performance enhancements were made.
• Added code to check for QAS enabled or disabled in SCSI Port Page 0. Ultra 320 negotiations will reflect the QAS setting in SCSI Port Page 0.
• Added code to obtain IOC Page 2 data in order to provide Volume data in Target Info Data returned by an IOCTL request.
• Fixed Target Info code to prevent overrunning the data buffer length provided by the application. Also fixed that code to include checking for the last id on the IOC.
• Added code in the data underrun response processing to return an error code if no data was transferred.
• If a data underrun condition exists and the amount of data transferred is less than the command’s underflow amount, an error status is returned rather than a good status. This prevents a false good status from being returned and allows the upper SCSI layer to retry the command if needed.
• A “for” loop replaces a “while loop during adapter detection. This prevents a possible infinite loop during initialization.
• If the SCSI layer requests an abort or bus reset for an IO that is not currently running, an error status is returned and the scsi_done call is not performed. This prevents problems when the IO has completed before the abort or bus reset is received.
• Added the following sequence to allow the ID of a SAF-TE device to be stored in IOC Page 4. Step 1): Gather full INQ data; 2) If 56 bytes are available, and the INQ data indicates SCSI Processor, check for SAF-TE device; 3) If #2 indicates SAF-TE device, add this ID to IOC Page 4; 4) If #2 has insufficient INQ data, check for SCSI Processor, if true make this the SAF-TE device ID stored in IOC Page 4; 5) #4 is only true if command line option SAF-TE:1 is in effect.
• In conjunction with the above, if kernel 2.5 or 2.6 is in effect, the first INQ will always be 36 bytes. If the kernel determines its okay, then the driver may ask for additional INQ up to 256 bytes and do so immediately after the initial INQ. This data may be parsed to determine if the device at that ID is a SAF-TE device that should have its ID stored in IOC Page 4.