On Wed, Feb 23, 2011 at 08:36:49PM -0800, Andres Salomon wrote: > On Wed, 23 Feb 2011 21:06:38 -0700 > Grant Likely <grant.likely@xxxxxxxxxxxx> wrote: > > > > If the pkg2path hook isn't set and we're not sparc, we fall back to > > > dp->name. That sucks, but I don't know of a better way to do > > > things. > > > > More that sucks, it is just plain *wrong*. :-) > > > > so, to sum up, of_pdt_build_tree goes through the following process: > > > > 1) dp = of_pdt_create_node > > - dp->name = of_pdt_get_one_property(node, "name"); /* name w/o > > addr */ > > > > 2) (SPARC) dp->path_component_name = build_path_component(dp); > > - format <node name>@<address> > > - uses dp->name value > > - not on OLPC > > Also: > - returns only the node name, not the full path > - implemented differently depending upon bus type (see > pci_path_component/sbus_path_component/ebus_path_component/ambapp_path_component) > - sparc32 implemented differently versus sparc64 > > > > > 3) dp->full_name = of_pdt_build_full_name(dp) > > - (SPARC) use dp->path_component_name > > - (OLPC) depend on value from of_pdt_try_pkg2path(node); > > - (others) fake it with an incorrect value? > > > > Am I correct? > > No. > > (others) use of_pdt_try_pkg2path Regardless, in all cases the semantics are absolutely clear; all platforms *must* have a reliable way of obtaining the full path and the path_component_name. It it doesn't then it is fundamentally broken. > The reason why we fall back to dp->name is because I don't know what > other architectures out there might not have package-to-path. I'm > perfectly fine with falling back to a WARN or BUG. Respin to fallback on WARN() and bail out. I'd be okay with merging a patch that does that. Falling back to dp->name is absolutely incorrect. I agree that API refinements can be deferred to 2.6.39. g. -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html