Martin Michlmayr wrote:
* Larry Finger <Larry.Finger@xxxxxxxxxxxx> [2008-08-20 14:34]:
Please do the following, which will require the package containing
objdump. First of all, do the command
objdump -d -l drivers/ide/ide-core.o > ide_core.dump
Next, open ide_core.dump with less or your favorite editor and search for
the start of init_irq. Note that address. Add your offset of 0x18D to that
value and find the instruction at that address. Move up in the file until
you find a line that looks like
/home/finger/linux-2.6/drivers/ide/ide-probe.c:1054
Hey Larry,
The dump file doesn't contain any line numbers. See the attached
file.
I think the error is in hwif_to_node with dev set to NULL in the
dereference of dev->bus. This inline routine is called from the
following code fragment from ide-probe.c:
if (match) {
hwgroup = match->hwgroup;
hwif->hwgroup = hwgroup;
/*
* Link us into the hwgroup.
* This must be done early, do ensure that
unexpected_intr
* can find the hwif and prevent irq storms.
* No drives are attached to the new hwif, choose_drive
* can't do anything stupid (yet).
* Add ourself as the 2nd entry to the hwgroup->hwif
* linked list, the first entry is the hwif that owns
* hwgroup->handler - do not change that.
*/
spin_lock_irq(&ide_lock);
hwif->next = hwgroup->hwif->next;
hwgroup->hwif->next = hwif;
BUG_ON(hwif->next == hwif);
spin_unlock_irq(&ide_lock);
} else {
hwgroup = kmalloc_node(sizeof(*hwgroup),
GFP_KERNEL|__GFP_ZERO,
hwif_to_node(hwif));
The line above triggers the fault.
I don't know enough about the code to figure the rest out, but I
expect that the experts will.
Did this work with precious versions? If so, it should be posted as a
regression.
Larry
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html