From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20060202 Fedora/1.0.7-1.2.fc4 Firefox/1.0.7 Description of problem: The aic7xxx and aic79xx drivers shipping with AS4 are very old and do not contain recent enhancements found in Adaptec's released driver versions. My specific problem with the RH-shipped drivers is that they don't support 16-byte commands to SCSI devices. This is a problem with the latest version of TSM (IBM's Tivoli Systems Manager Backup) in combination with SDLT600 drives. Various SCSI commands (such as ICE and WORM commands) fail in TSM, rendering the devices unusable by TSM. The 16-byte CDB support being the issue was revealed by an IBM test tool for TSM. Inspection of the drivers contained in the kernel show that the latest AS4 kernel has releases 6.2.36 (for aic7xxx) and 1.3.11 (for aic79xx). Adaptec has released subsequent versions of their drivers that contain various fixes as well as 16-byte CDB support. The latest versions are 6.3.11 for aic7xxx and 2.0.15 for aic79xx. 16-byte CDB support was added in June 2004. Please update the driver for the next kernel release. I tried to compile the Adaptec-provided driver but it appears to rely on the SCSI subsystem as it existed in older kernels before the SCSI subsystem was reorganized in later 2.6 kernels (scsi.h vs scsi/scsi_host.h, etc.) and won't compile properly. I tried hand-fixing it, but it became too complex for me to solve. Version-Release number of selected component (if applicable): kernel-2.6.9-22.0.2.EL (and smp) How reproducible: Always Steps to Reproduce: 1. Execute a SCSI command that uses a 16-byte CDB Actual Results: Error in TSM Expected Results: Tape drive should be detected and work. Additional info:
I've found this bug in kernel.org -> http://bugzilla.kernel.org/show_bug.cgi?id=5755 that seems like it would fix the problem. I tried installing the Source RPM, getting the code out of drivers/scsi/aic7xxx and building it as an external module: make -C /usr/src/2.6.9-22.0.2.ELsmp M=$PWD modules and there are many compile errors. I guess I don't see why code that is in the source RPM doesn't compile against the module doing a kbuild. In any case, I've created a patch that should provide 16-byte CDB support. I've inserted this patch into the specfile for the latest kernel source rpm, change the release string and rebuilt the kernel. This appears to work fine (e.g. initial hardware tests with 16-byte CDBs seem promising). I'm not sure where my failure in building the module out-of-tree is. (Advice on this side topic would be appreciated though...). In any event it seems likely this patch is all that's necessary to solve this problem.
Created attachment 124649 [details] Add 16-byte CDB support to the aic7xxx and aic79xx drivers
Our TSM admin ran this setup (patched kernel, drives, TSM) through all of its diagnostics and his performance tests and everything worked fine. It seems like this does in fact work. Let me know if there's anything further I/we can do to get this fix into U3.
It is too late for U3. That's been frozen for weeks. This does look like something we can do for U4. We will be asking you to test a U4 beta, to confirm that it works as expected.
Too bad. Guess I'll have to rebuild kernels for another release cycle. Please let me know when you need some testing.
I submitted a patch for the kernel.org bugzilla (5755). The only risks I can see are that there might be Adaptec HBAs supported by the driver that don't support 16-byte CDBs. If the patch gets accepted upstream there should be no trouble putting it in U4. Chip
This issue is on Red Hat Engineering's list of planned work items for the upcoming Red Hat Enterprise Linux 4.4 release. Engineering resources have been assigned and barring unforeseen circumstances, Red Hat intends to include this item in the 4.4 release.
Terrific. Do you know if it's going to be an intergration of the latest Adaptec code or just a patch? I'm just curious. Thanks.
committed in stream U4 build 35. A test kernel with this patch is available from http://people.redhat.com/~jbaron/rhel4/
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2006-0575.html