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. --
| Alan Cox | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg Kroah-Hartman | [PATCH 007/196] Chinese: add translation of stable_kernel_rules.txt |
| Eric W. Biederman | Re: [net-2.6.24][patch 2/2] Dynamically allocate the loopback device |
| Rafael J. Wysocki | Re: -mm merge plans for 2.6.23 |
git: | |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
| David Miller | [GIT]: Networking |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
