AIC7850 on IWill board refuses to work since 2.0.26

Wolfgang Baudler (baudler@lulu.gsf.de)
Fri, 17 Jan 1997 12:46:58 +0100


Hi, this is an message from the AIC7xxx mailing list:

On Dec 11, 10:06am, Wolfgang Baudler wrote:
> Subject: Re: AIC7850 on IWill board refuses to work since 2.0.26
> Hello,
>
> I tried again to compile the Linux 2.0.26 kernel, but the machine still
> hangs after booting. No problems at all with Linux 2.0.25. I even
> recompiled 2.0.25, but this one still works good.
>
> I don't understand this. I looked at the changes between this two
> kernels, but I found nothing significant. In scsi.c some types are
> changed from int to long. This is all. No change in the AICxxx specific
> files.
>
> The kernel boots up to the message:
>
> VFS mounting virtual file system (or something like that)
>
> Then hangs for a about 15-20 seconds, then the message
>
> aic7xxx: (abort) Aborting scb 1, TCL = 1/0/0
>
> apears for a while, maybe again 15-20 seconds. Then
> I get screens full of different messages scrolling by fast.
> One of the first was:
>
> aic7xxx: (match_scb) comparing target channel -1/A to scb 1 / A
> aic7xxx: (reset_device) aborting SCB1, TCL = 1/0/0
>
>
> After some screens full with messages of this kind I get messages
> from ext2-fsck about missing i-nodes and such things.
>
> If I reset then and boot up with 2.0.25 again everything works
> perfectly, no corrupt file systems etc...
>
>
> I wrote this from memory, because it is not logged anywhere.
>
> Any idea what change between 2.0.25 and 2.0.26 causes this strange
> behaviour?
>
>

Because I did not get any answers concerning this problem I decided to
track down this bug myself. I exchanged every File in the 2.0.25 kernel
that changed in 2.0.26 with the 2.0.26 one and recompiled. And I finally
located the right file:

It is linux/include/linux/major.h.

There is a change at the beginning:

In kernel 2.0.25:

/* limits */

#define MAX_CHRDEV 64
#define MAX_BLKDEV 64

In kernel 2.0.26 and the following kernels up to 2.0.28:

/* limits */

#define MAX_CHRDEV 128
#define MAX_BLKDEV 128

If I change MAX_BLKDEV back to 64 everything works well again. MAX_BLKDEV is
used in linux/drivers/scsi/scsi.c.

Questions: What is the change good for? And why is the AIC7XXX-driver so
badly effected when used on 7850-Chipsets? What are the consequences of
setting this value back to 64?

My hardware configuration:

/proc/scsi/aic7xxx/0:

Adaptec AIC7xxx driver version: 4.0/3.2/4.0

Compile Options:
AIC7XXX_RESET_DELAY : 15
AIC7XXX_TWIN_SUPPORT : Enabled
AIC7XXX_TAGGED_QUEUEING: Disabled
AIC7XXX_PAGE_ENABLE : Disabled
AIC7XXX_PROC_STATS : Disabled

Adapter Configuration:
SCSI Adapter: AIC-7850
(AIC-785x chipset)
Host Bus: Single
Base IO: 0x6100
IRQ: 11
SCBs: Used 3, HW 3, Page 3
Interrupts: 3014
Serial EEPROM: False
Extended Translation: Disabled
SCSI Bus Reset: Enabled
Ultra SCSI: Disabled
Target Disconnect: Enabled

/proc/scsi:

Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: SEAGATE Model: ST43400N Rev: 1028
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 01 Lun: 00
Vendor: IBM Model: DPES-31080 Rev: S31Q
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 02 Lun: 00
Vendor: IBM Model: DPES-31080 Rev: S31Q
Type: Direct-Access ANSI SCSI revision: 02

--
-------------------------------------------------------
Wolfgang Baudler
mailto:baudler@gsf.de  Tel.: +49.89.31874463
                       Fax.: +49.89.31874243
Home-Page: http://lulu.gsf.de:8888
-------------------------------------------------------
           **** earth is a beta site. ****

-- 
-------------------------------------------------------
Wolfgang Baudler
mailto:baudler@gsf.de  Tel.: +49.89.31874463
                       Fax.: +49.89.31874243
Home-Page: http://lulu.gsf.de:8888        
-------------------------------------------------------
           **** earth is a beta site. ****