Bug 180195 - aic7xxx and aic79xx Drivers Don't Support 16-byte CDBs
Summary: aic7xxx and aic79xx Drivers Don't Support 16-byte CDBs
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: kernel
Version: 4.0
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
: ---
Assignee: Chip Coldwell
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks: 181409
TreeView+ depends on / blocked
 
Reported: 2006-02-06 18:29 UTC by Jason McCormick
Modified: 2007-11-30 22:07 UTC (History)
2 users (show)

Fixed In Version: RHSA-2006-0575
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-08-10 22:04:56 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
Add 16-byte CDB support to the aic7xxx and aic79xx drivers (1011 bytes, patch)
2006-02-14 22:23 UTC, Jason McCormick
no flags Details | Diff


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2006:0575 0 normal SHIPPED_LIVE Important: Updated kernel packages available for Red Hat Enterprise Linux 4 Update 4 2006-08-10 04:00:00 UTC

Description Jason McCormick 2006-02-06 18:29:20 UTC
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:

Comment 1 Jason McCormick 2006-02-14 22:22:59 UTC
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.

Comment 2 Jason McCormick 2006-02-14 22:23:46 UTC
Created attachment 124649 [details]
Add 16-byte CDB support to the aic7xxx and aic79xx drivers

Comment 4 Jason McCormick 2006-02-15 15:01:19 UTC
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.

Comment 6 Tom Coughlan 2006-02-15 15:33:12 UTC
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.


Comment 7 Jason McCormick 2006-02-15 15:38:37 UTC
Too bad.  Guess I'll have to rebuild kernels for another release cycle.  Please
let me know when you need some testing.

Comment 9 Chip Coldwell 2006-02-15 16:24:54 UTC
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


Comment 10 Bob Johnson 2006-04-11 16:37:32 UTC
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.

Comment 11 Jason McCormick 2006-04-11 17:27:00 UTC
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.

Comment 15 Jason Baron 2006-05-09 17:24:11 UTC
committed in stream U4 build 35. A test kernel with this patch is available from
http://people.redhat.com/~jbaron/rhel4/


Comment 18 Red Hat Bugzilla 2006-08-10 22:04:58 UTC
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



Note You need to log in before you can comment on or make changes to this bug.