Bug 18911 - kernel won't detect (some) SCSI card
Summary: kernel won't detect (some) SCSI card
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: kernel (Show other bugs)
(Show other bugs)
Version: 7.0
Hardware: i386 Linux
Target Milestone: ---
Assignee: Michael K. Johnson
QA Contact: Brock Organ
Depends On:
TreeView+ depends on / blocked
Reported: 2000-10-11 19:06 UTC by Michael Tokarev
Modified: 2007-04-18 16:29 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2000-10-19 15:51:38 UTC
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
`lspci -v' output (big) (2.10 KB, text/plain)
2000-10-14 23:08 UTC, Michael Tokarev
no flags Details

Description Michael Tokarev 2000-10-11 19:06:58 UTC
Kernel shipped in 7.0 (2.2.16-22) won't detect my AIC7880 scsi card.
When it boots, it says something like (not exactly):

 scanning scsi hosts...
 0 scsi hosts found

The same symptom is with 2.2.16-21 (did not tried 2.2.16-24 yet).
What's interesting is that this is a problem related to particular
releases of 2.2.16 kernel.  2.2.16-3 will boot just fine (and display
a lot of messages about found disks between above lines), and 2.2.17
(vanilla) will too.  Something between -3 and -21 was broken.
This problem is reproduceable on many my machines with different
hardware (but all have some variants of aic7... adapters).

When it won't detect my adapter, it will ask about block-major-8
module when accessing scsi devices.  This is also just funny, as this
"module" (sd.o) is built-in to kernel (not a module really).

For now, I have a workaround (a hack really) -- I placed
"alias block-major-8 aic7xxx" to modules.conf, and aic loads
when scsi device accessed first time.  This is really a hack,
but it works... :)

Comment 1 Alan Cox 2000-10-14 22:28:44 UTC
Moving this to the installer. The fact that loading the module by hand works
says that the kernel is fine but the installer is perhaps missing a specific PCI
id. Can you provide an lspci -v of the problem box and attach it to the bug ?

Comment 2 Michael Tokarev 2000-10-14 22:49:16 UTC
I don't think that this belongs to installer.  I didn't used it at
all! -- what I really did when setted up my machines is attached
empty disk, cfdisk it, mke2fs, mkdir ../var/lib/rpm, rpm --initdb,
and then rpm -i --root=.. many packages.  This way _all_ my machines
was set up, and this was _faster_ than using installer (i didn't
tried 7.0, and probably will newer try it).  Thus, I ever don't have
pcitools (pciutils?), kudzu etc -- only the bare minimum of software
that is really ised (all machines are servers, and stability&
security is a high requirement).

Also, it seemed to be irrelevant -- I have scsi_hostadapter=aic7xxx
in modules.conf, and kernel always tried to load this pseudomodule
when detecting scsi cards.  And this works fine win 2.2.16-3 kernel,
and with vanilla 2.2.17.  There is no "missing" PCI id -- that id
isn't used at all (or should be), line in modules.conf is sufficient.
If redhat changed the kernel so that it ignores line in modules.conf,
than again it is bug in kernel, now introduced by redhat.  But I don't
think that this was made by design.

So -- excuse me please but I move this back to kernel bugs...

BTW, probably I should not report this as rh7.0 bug, as I does not
use "vanilla" rh release -- maybe this should belong to rawhide
(that _is_ used here...).

Comment 3 Michael Tokarev 2000-10-14 23:06:19 UTC
To be honest.  Here are `lspci -v' output from two machines
(I installed just pciutils package).  One is small (here in
full) and one is large, attached.

00:00.0 Host bridge: Intel Corporation 440LX/EX - 82443LX/EX Host bridge (rev
        Flags: bus master, medium devsel, latency 64
        Memory at e4000000 (32-bit, prefetchable)
        Capabilities: [a0] AGP version 1.0

00:01.0 PCI bridge: Intel Corporation 440LX/EX - 82443LX/EX AGP bridge (rev 03)
(prog-if 00 [Normal decode])
        Flags: bus master, 66Mhz, medium devsel, latency 64
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=64

00:04.0 ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 02)
        Flags: bus master, medium devsel, latency 0

00:04.1 IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 01) (prog-if 80
        Flags: bus master, medium devsel, latency 32
        I/O ports at d800

00:04.2 USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 01) (prog-if 00
        Flags: bus master, medium devsel, latency 32
        I/O ports at d400

00:04.3 Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 02)
        Flags: medium devsel

00:0a.0 Ethernet controller: 3Com Corporation 3c590 10BaseT [Vortex]
        Flags: bus master, medium devsel, latency 248, IRQ 3
        I/O ports at d000

00:0b.0 SCSI storage controller: Adaptec AIC-7881U
        Flags: bus master, medium devsel, latency 32, IRQ 12
        I/O ports at b800
        Memory at e3000000 (32-bit, non-prefetchable)

00:0c.0 VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 01) (prog-if 00
        Subsystem: S3 Inc. ViRGE/DX
        Flags: bus master, medium devsel, latency 32, IRQ 11
        Memory at dc000000 (32-bit, non-prefetchable)
        Expansion ROM at 000c0000 [disabled]

Comment 4 Michael Tokarev 2000-10-14 23:08:45 UTC
Created attachment 4165 [details]
`lspci -v' output (big)

Comment 5 Michael Tokarev 2000-10-14 23:20:48 UTC
BTW, how kernel can depend on some pci id that is missing from
some place?  I'm curious.  Normally kernel detects this controllers
(both machines from that those two lspci outputs provided wont
boot with 2.2.16-2{1,2} kernels) when booted, _before_ it ever
tried to mount root, before autodetecting (possible) raid arrays
etc.  One of the machines (never one with big lspci output)
boots from ide disk now, so there is no ever initrd used.  Where
_kernel_ can look to some pci id that was missing from installer
_before_ it ever tried to mount root filesystem?!?!  (And how it
can look to some user-space place?)

Comment 6 Michael Tokarev 2000-10-14 23:26:25 UTC
Oops, my great sorry.  Kernel can't load any module if root isn't mounted...
My bad.  So it will try to detect/load that module after it has root mounted.
But still before executing init.  Anyway, if I set up say floppy disk with
initrd, it should boot.  Without missing pci ids...

Comment 7 Michael Tokarev 2000-10-19 15:51:32 UTC
My apologizes to everyone.  I'm bad.  The kernels I used that detects this 
controllers have aic7xxx driver compiled in.  Thus, controller was detected
by the driver on boot before any initializing.  Standard kernels if used with
initrd also detects this when explicitly loading the driver from within
initrd.  I'm sorry.

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