On Wed, Apr 16, 2014 at 4:23 PM, delicious quinoa <delicious.quinoa@xxxxxxxxx> wrote: > On Thu, Apr 3, 2014 at 3:40 PM, delicious quinoa > <delicious.quinoa@xxxxxxxxx> wrote: >> On Fri, Mar 28, 2014 at 1:27 PM, delicious quinoa >> <delicious.quinoa@xxxxxxxxx> wrote: >>> On Tue, Mar 18, 2014 at 4:55 PM, Pantelis Antoniou >>> <pantelis.antoniou@xxxxxxxxxxxx> wrote: >>>> The following patchset introduces Device Tree overlays, a method >>>> of dynamically altering the kernel's live Device Tree, along with >>>> a generic interface to use it in a board agnostic manner. [snip] >>> I can get a NULL pointer when I apply and remove an overlay and the >>> conditions are right. The overlay applies correctly. The crash is >>> when I do the rmdir. My overlay is: >>> >>> /dts-v1/; >>> /plugin/; >>> / { >>> fragment@0 { >>> target-path="/soc"; >>> __overlay__ { >>> #address-cells = <1>; >>> #size-cells = <1>; >>> agpio0: agpio0 { >>> compatible = "altr,pio-1.0"; >>> reg = <0xff210040 0x10>; >> >> Added some printks and got a bit further with debug. If I leave this >> as-is, the platform device has 2 resources. We get the NULL pointer in >> __release_resource() when releasing the first one (reg). If I remove >> this one line ('reg =') the crash goes away. So in this case, we are >> ok when releasing an irq resource but get a NULL pointer when removing >> a reg resource. Don't know why at this point. > > The crash is confirmed on v4 patches as well. The immediate cause of the crash: > > static int __release_resource(struct resource *old) > { > struct resource *tmp, **p; > > p = &old->parent->child; > for (;;) { > tmp = *p; <===kablooey > ... > > when __release_resource() is called for the reg resource, it does 'p = > &olde->parent->child' and then crashes when it does 'tmp = *p'. > > Root cause: It appears that there isn't any code in drivers/of/ that > eventually calls __request_resource() or __insert_resource() so the > resource's parents/sibling pointers are never initialized. Maybe I'm > missing some patches or something. It's probably related to this issue: https://groups.google.com/forum/#!topic/fa.linux.kernel/CTx1ReiOjnQ http://www.mail-archive.com/linuxppc-dev@xxxxxxxxxxxxxxxx/msg63678.html Rob -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html