Messages in this thread | | | Date | Mon, 28 Feb 2000 20:14:44 -0800 (PST) | From | Andre Hedrick <> | Subject | Re: oops in init_gendisk() (2.3.48) |
| |
On Tue, 29 Feb 2000, Richard Gooch wrote:
> > DRAT..............Richard, please check for NULL assignment possiblitiies > > in the ATA/IDE sub-system > > This is one of the "incestuous" natures that ATA/IDE has that Linus > > referred to in the past.......... :-( > > Can you elaborate on this, please?
In general, the two hwif's of a given pci-device must know about each other. This is because some hardware designs serialize, share, or some other thing with the ISR.
Some of the IDE-PCI detection code verifies if the interface is enabled or disabled in the BIOS. Thus you can have the case where the primary is disabled in the BIOS but the secondary is set and used for the ATAPI hardware.
> > > which works out (I think) to line 745 in ide-probe.c > > > sprintf (name, "ide/host%d/bus%d/target%d/lun%d", > > > hwif->channel ? hwif->mate->index : hwif->index, > > > hwif->channel, unit, 0); > > > > > > probably hwif->mate == NULL. > > > > You NAIL that nasty!!!!!! > > So could you explain under what conditions (hwif->mate == NULL) ?
As above:
primary-hwif is disabled but secondary-hwif is enabled
(primary)hwif == NULL (primary)hwif->mate != NULL (secondary)hwif != NULL (secondary)hwif->mate == NULL
The loop looks like:
(primary)hwif == (secondary)hwif->mate (secondary)hwif == (primary)hwif->mate
(primary)hwif->mate == (secondary)hwif (secondary)hwif->mate == (primary)hwif
Is this clear?
Andre Hedrick The Linux ATA/IDE guy
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |