Follow to 1.3.100 IDE error

Michael J. Greger (greger@f183-158.net.wisc.edu)
Sat, 11 May 1996 23:38:44 -0500 (CDT)


This is a little follow up to my previous post. I think that I have found
the error. Seems to be quite obvious...

in ide.c:

static void save_match (ide_hwif_t *hwif, ide_hwif_t *new, ide_hwif_t **match)
{
ide_hwif_t *m = *match;

if (m && m->hwgroup && m->hwgroup != new->hwgroup) {
if (!new->hwgroup)
return;
printk("%s: potential irq problem with %s and %s\n", hwif->name, }

if (m->irq != hwif->irq) /* don't undo a prior perfect match */
^^^ Error!!!!!
*match = new;
}

In the marked line, 'm' may still be initialized to NULL. I'm not sure on
the fix... It probably should be a simple m && m->irq or !m || m->irq.
But since i'm no expert on the kernel...

Anxiously awaiting 101...

Mike