Re: 2.6.25 md oops during boot.

From: Neil Brown
Date: Wed Jun 04 2008 - 19:12:22 EST


On Wednesday June 4, davej@xxxxxxxxxx wrote:
> Hi Neil,
> Here's an odd one.
> https://bugzilla.redhat.com/show_bug.cgi?id=442204
>
> Slightly old (.25-rc8-git7), but I don't recall anything changing between
> then and .25 final that could explain this.
>
> Dave

Hi Dave.

Yes, Odd.

It appear that sysfs_addrm_start is being called with parent_sd == NULL.

That implies that sysfs_create_dir is being given a kobj where
->parent is non-NULL, and ->parent->sd is NULL.

So kobject_add is being given a parent with a NULL ->sd.

So in bind_rdev_to_array, mddev->kobj.sd is NULL.

So in md_probe, either kobject_init_and_add is failing
to set up ->sd properly (which should result in an error message
"md: cannot register md0/md - name in use"
) or alloc_disk is failing.


The most likely scenario is that alloc_disk is failing, so the
md_probe call in autorun_devices (line 3804 of md.c) fails.
The following mddev_find creates a new mddev which is not properly
initialised and gets used.

I wouldn't say this is a likely scenario as it requires (I think)
kmalloc failure very early in boot. But I cannot see any other
possible cause.

I'll see about getting the error paths handled better.

NeilBrown
--
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/