net: gianfar: correctly determine the number of queue groups
PATCH 1/1 net: gianfar: correctly determine the number of queue groups
eTSEC of-nodes may have children which are not queue-group nodes. For example new-style fixed-phy declarations. These where incorrectly assumed to be additional queue-groups.
Change the search to filter out any nodes which are not queue-groups, or have been disabled.
Signed-off-by Tobias Waldekranz <[email protected]>
--- drivers/net/ethernet/freescale/gianfar.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-)
drivers/net/ethernet/freescale/gianfar.c +17 -2
@@ -747,6 +747,18 @@ static int gfar_parse_group(struct device_node *np,return 0 ; } +static int gfar_of_group_count (struct device_node *np) +{ +struct device_node *child; +int num =0 ; + +for_each_available_child_of_node (np, child) +if (!of_node_cmp (child->name,"queue-group" )) + num++; + +return num; +} +static int gfar_of_init (struct platform_device *ofdev,struct net_device **pdev) {const char *model;
@@ -784,7 +796,7 @@ static int gfar_of_init(struct platform_device *ofdev, struct net_device **pdev) num_rx_qs =1 ; }else {/* MQ_MG_MODE */ /* get the actual number of supported groups */ -unsigned int num_grps =of_get_available_child_count (np); +unsigned int num_grps =gfar_of_group_count (np);if (num_grps ==0 || num_grps >MAXGROUPS ) { dev_err(&ofdev->dev, "Invalid # of int groups(%d)\n",
@@ -851,7 +863,10 @@ static int gfar_of_init(struct platform_device *ofdev, struct net_device **pdev)/* Parse and initialize group specific information */ if (priv->mode ==MQ_MG_MODE ) { -for_each_child_of_node (np, child) { +for_each_available_child_of_node (np, child) { +if (of_node_cmp (child->name,"queue-group" )) +continue ; + err =gfar_parse_group (child, priv, model);if (err) goto err_grp_init;
Signature · 1 line
1.8.4.357.g8d83871.dirty
From: Tobias Waldekranz <[email protected]>
Date: Thu, 5 Mar 2015 14:48:23 +0100
Quoted 8 lines
eTSEC of-nodes may have children which are not queue-group nodes. For example new-style fixed-phy declarations. These where incorrectly assumed to be additional queue-groups.
Change the search to filter out any nodes which are not queue-groups, or have been disabled.
Signed-off-by Tobias Waldekranz <[email protected]>
Applied, thanks.