]> git.baikalelectronics.ru Git - kernel.git/commitdiff
interconnect: imx: fix max_node_id
authorPeng Fan <peng.fan@nxp.com>
Sun, 3 Jul 2022 09:11:26 +0000 (17:11 +0800)
committerGeorgi Djakov <djakov@kernel.org>
Fri, 15 Jul 2022 14:53:04 +0000 (17:53 +0300)
max_node_id not equal to the ARRAY_SIZE of node array, need increase 1,
otherwise xlate will fail for the last entry. And rename max_node_id
to num_nodes to reflect the reality.

Fixes: b6d08f3226570 ("interconnect: Add imx core driver")
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Link: https://lore.kernel.org/r/20220703091132.1412063-5-peng.fan@oss.nxp.com
Signed-off-by: Georgi Djakov <djakov@kernel.org>
drivers/interconnect/imx/imx.c

index 249ca25d1d556e3a86d360fb2746aca43904e9b3..4406ec45fa90f9b142f5bb1830811e6411f004b1 100644 (file)
@@ -234,16 +234,16 @@ int imx_icc_register(struct platform_device *pdev,
        struct device *dev = &pdev->dev;
        struct icc_onecell_data *data;
        struct icc_provider *provider;
-       int max_node_id;
+       int num_nodes;
        int ret;
 
        /* icc_onecell_data is indexed by node_id, unlike nodes param */
-       max_node_id = get_max_node_id(nodes, nodes_count);
-       data = devm_kzalloc(dev, struct_size(data, nodes, max_node_id),
+       num_nodes = get_max_node_id(nodes, nodes_count) + 1;
+       data = devm_kzalloc(dev, struct_size(data, nodes, num_nodes),
                            GFP_KERNEL);
        if (!data)
                return -ENOMEM;
-       data->num_nodes = max_node_id;
+       data->num_nodes = num_nodes;
 
        provider = devm_kzalloc(dev, sizeof(*provider), GFP_KERNEL);
        if (!provider)