card->num_links = num_links;
        link = card->dai_link;
 
-       dlc = devm_kzalloc(dev, 2 * sizeof(*dlc), GFP_KERNEL);
-       if (!dlc)
-               return -ENOMEM;
+       for_each_child_of_node(dev->of_node, np) {
+               dlc = devm_kzalloc(dev, 2 * sizeof(*dlc), GFP_KERNEL);
+               if (!dlc)
+                       return -ENOMEM;
 
-       link->cpus      = &dlc[0];
-       link->platforms = &dlc[1];
+               link->cpus      = &dlc[0];
+               link->platforms = &dlc[1];
 
-       link->num_cpus          = 1;
-       link->num_platforms     = 1;
+               link->num_cpus          = 1;
+               link->num_platforms     = 1;
 
-       for_each_child_of_node(dev->of_node, np) {
                cpu = of_get_child_by_name(np, "cpu");
                platform = of_get_child_by_name(np, "platform");
                codec = of_get_child_by_name(np, "codec");