Re: partition sysfs OOPS in current GIT

From: David Miller
Date: Wed Feb 06 2008 - 23:06:21 EST



Greg, I'm pretty sure I know what's happening.

For whatever reason we're invoking dev_attr_show() on attribute_group
objects.

The reason it probably only crashes on sparc64 is because perhaps at
that dev_attr->show offset on x86 there are zero bytes there instead
of a pointer, so the NULL check here in dev_attr_show() masks the bug.

The problem with all of this "container_of() this", "container_of()
that" is that we lose real type checking. So unless we add magic
cookies to verify or other hacks, functions never really know if the
container they are being passed really is a subset object of the type
they expect.

Can you read the code instead of asking more information from me to
try and figure out why the attribute showing paths might be
misconfigured for these block device objects after the changeset in
question? I can do this, but you're more likely to find the problem
quickly than I am.

I redid the bisect to make sure it absolutely was that specific
changeset, and it is.

Thanks.
--
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/