Red Hat Bugzilla – Bug 60944
Aic7xxx Driver Stale - Should be version 6.2.5
Last modified: 2007-11-30 17:06:51 EST
From Bugzilla Helper:
User-Agent: Mozilla/4.76 [en] (X11; U; FreeBSD 4.4-STABLE i386)
Description of problem:
The 6.2.1 version of the aic7xxx driver in AS-beta1 is
woefully out of date. The current version is 6.2.5
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. extract the kernel-source distribution for AS-beta1
2. See that the version in drivers/scsi/aic7xxx/aic7xxx_osm.h is
Several issues have been addressed since version 6.2.1 and I would
strongly urge for this driver to be upgraded. I will attach a patch
to this bug once I've completed the port of the latest driver to
the kernel shipping in this beta.
I doubt there's time left for changes :(
Created attachment 48664 [details]
Patch to upgrade Pensacola Beta1 to aic7xxx v6.2.5
Installation of Beta1 fails on a Supermicro P3TDE6 with aic7xxx_old. You
have to do the "expert noprobe" trick to get setup. I believe this is due
to the termination bug in aic7xxx_old (doesn't understand STPWLEVEL setting
in the serial eeprom).
Since aic7xxx is not the default driver loaded, it would seem that there is
very little risk in upgrading the driver.
This version of the driver exhibits the same bug as the 6.2.1 version of the
driver. Kernel logs attached. To reproduct, dd if=/dev/zero of=testfile
bs=1024k count=2k. Machine is a 4xP3 with 5GB of RAM, filesystem is ext3 on a
12 disk raid0.
Created attachment 48707 [details]
The problem in the trace is that the external memory on this particular card
is "flakey". If you look at the trace, we are trying to determine if SCB
242 (0xF2) is currently active. During normal driver operation, the read of
the tag from this SCB location returns 0xFF, which means the SCB is not in
use. However, the ahc_dump_card_state() routine, which dumps information for
all SCBs, we see the expected value 0xF2. So why doesn't this fail with
aic7xxx_old? The older driver uses a slightly different SCB layout and may
never access this particular area in a way that would allow it to notice
that SCB data is sometimes "corrupted".
I will start a regression right now on an aic3940AUW (I don't have a narrow
version of this card), to *attempt* to verify that this issue is local to
your card. This will be in a dual Pentium 4/Serverworks box that should
allow me to easily saturate the card to exercise all of the SCB memory.
Unlikely to be a hardware problem as the old aic7xxx driver works flawlessly.
External SCB ram is disabled by default in aic7xxx_old. You might want
to try enabling it in your system with the "scbram" aic7xxx module
Created attachment 50804 [details]
Patch to disable external SCB ram on the aic7895
Can you try applying the patch I just attached to this bug in addition
to the patch to upgrade to 6.2.5 and rerun your test? The last patch
disables external SCB ram for your controller just as aic7xxx_old does.
It also includes a fix for 1480 cardbus detach.
Fixed in AS2.1 errata kernel-2.4.9-e.8, released on 7/29.