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. ****