Index: sys/powerpc/powernv/platform_powernv.c =================================================================== --- sys/powerpc/powernv/platform_powernv.c +++ sys/powerpc/powernv/platform_powernv.c @@ -519,15 +519,21 @@ res = OF_getproplen(node, "ibm,associativity"); - /* If already at the root, use default domain. */ - if (res == 0) - return (0); - else if (res < 0) - /* If this node doesn't have associativity, check its parent. */ - return (powernv_node_numa_domain(platform, OF_parent(node))); + /* If this node doesn't have associativity, check its parent. */ + if (res < 0) { + node = OF_parent(node); + /* If already at the root, use default domain. */ + if (node == 0) + return (0); + return (powernv_node_numa_domain(platform, node)); + } + + KASSERT(res >= sizeof(cell_t) * (platform_associativity + 1), + ("ibm,associativity property has less than " + "platform_associativity (%d) elements", platform_associativity)); OF_getencprop(node, "ibm,associativity", - associativity, res); + associativity, sizeof(associativity)); for (i = 0; i < numa_max_domain; i++) { if (numa_domains[i] == associativity[platform_associativity])