2.4.23 IDE hang on boot with two single-channel controllers
From: Jeremy Jackson
Date: Sun Jan 25 2004 - 19:43:34 EST
Hi All,
kdb shows proc_ide_create() stuck in a loop when booting on a Compaq
Armada 7730MT while attached to the docking station.
This is a unique IDE hardware setup. Channel ide0's controller is in
the laptop, while ide1 is a separate controller (pci device) in the
docking station and is not always present.
This seems to be triggering a bug in ide-proc.c:
void proc_ide_create(void)
{
#ifdef CONFIG_BLK_DEV_IDEPCI
ide_pci_host_proc_t *p = ide_pci_host_proc_list;
#endif /* CONFIG_BLK_DEV_IDEPCI */
proc_ide_root = proc_mkdir("ide", 0);
if (!proc_ide_root) return;
create_proc_ide_interfaces();
create_proc_read_entry("drivers", 0, proc_ide_root,
proc_ide_read_drivers, NULL);
#ifdef CONFIG_BLK_DEV_IDEPCI
while (p != NULL) <------------------- INFINITE LOOP HERE
{
if (p->name != NULL && p->set == 1 && p->get_info != NULL)
{
p->parent = proc_ide_root;
create_proc_info_entry(p->name, 0, p->parent,
p->get_info);
p->set = 2;
}
p = p->next;
}
#endif /* CONFIG_BLK_DEV_IDEPCI */
}
I'm not sure if the problem is in the loop or bad data being setup
before it starts.
Assistance fixing it would be appreciated.
Regards,
Jeremy Jackson
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/