RE: [patch net] net: fec: fix compile with CONFIG_M5272

From: Andy Duan
Date: Mon Dec 05 2016 - 13:45:34 EST


From: Nikita Yushchenko <nikita.yoush@xxxxxxxxxxxxxxxxxx> Sent: Sunday, December 04, 2016 11:18 PM
>To: David S. Miller <davem@xxxxxxxxxxxxx>; Andy Duan
><fugang.duan@xxxxxxx>; Troy Kisky <troy.kisky@xxxxxxxxxxxxxxxxxxx>;
>Andrew Lunn <andrew@xxxxxxx>; Eric Nelson <eric@xxxxxxxxxx>; Philippe
>Reynes <tremyfr@xxxxxxxxx>; Johannes Berg <johannes@xxxxxxxxxxxxxxxx>;
>netdev@xxxxxxxxxxxxxxx
>Cc: Chris Healy <cphealy@xxxxxxxxx>; Fabio Estevam
><fabio.estevam@xxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx; Nikita
>Yushchenko <nikita.yoush@xxxxxxxxxxxxxxxxxx>
>Subject: [patch net] net: fec: fix compile with CONFIG_M5272
>
>Commit 4dfb80d18d05 ("net: fec: cache statistics while device is down")
>introduced unconditional statistics-related actions.
>
>However, when driver is compiled with CONFIG_M5272, staticsics-related
>definitions do not exist, which results into build errors.
>
>Fix that by adding needed #if !defined(CONFIG_M5272).
>
>Fixes: 4dfb80d18d05 ("net: fec: cache statistics while device is down")
>Signed-off-by: Nikita Yushchenko <nikita.yoush@xxxxxxxxxxxxxxxxxx>
>---
> drivers/net/ethernet/freescale/fec_main.c | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)
>
>diff --git a/drivers/net/ethernet/freescale/fec_main.c
>b/drivers/net/ethernet/freescale/fec_main.c
>index 6a20c24a2003..89e902767abb 100644
>--- a/drivers/net/ethernet/freescale/fec_main.c
>+++ b/drivers/net/ethernet/freescale/fec_main.c
>@@ -2884,7 +2884,9 @@ fec_enet_close(struct net_device *ndev)
> if (fep->quirks & FEC_QUIRK_ERR006687)
> imx6q_cpuidle_fec_irqs_unused();
>
>+#if !defined(CONFIG_M5272)
> fec_enet_update_ethtool_stats(ndev);
>+#endif
It is better to define fec_enet_update_ethtool_stats() for CONFIG_M5272 like static void fec_enet_update_ethtool_stats(struct net_device *dev){}, or directly return in .fec_enet_update_ethtool_stats():
@@ -2315,6 +2315,10 @@ static void fec_enet_update_ethtool_stats(struct net_device *dev)
struct fec_enet_private *fep = netdev_priv(dev);
int i;

+#if defined(CONFIG_M5272)
+ return;
+#endif
+
>
> fec_enet_clk_enable(ndev, false);
> pinctrl_pm_select_sleep_state(&fep->pdev->dev);
>@@ -3192,7 +3194,9 @@ static int fec_enet_init(struct net_device *ndev)
>
> fec_restart(ndev);
>
>+#if !defined(CONFIG_M5272)
> fec_enet_update_ethtool_stats(ndev);
>+#endif
>
ditto

> return 0;
> }
>@@ -3292,9 +3296,11 @@ fec_probe(struct platform_device *pdev)
> fec_enet_get_queue_num(pdev, &num_tx_qs, &num_rx_qs);
>
> /* Init network device */
>- ndev = alloc_etherdev_mqs(sizeof(struct fec_enet_private) +
>- ARRAY_SIZE(fec_stats) * sizeof(u64),
>- num_tx_qs, num_rx_qs);
>+ ndev = alloc_etherdev_mqs(sizeof(struct fec_enet_private) #if
>+!defined(CONFIG_M5272)
>+ + ARRAY_SIZE(fec_stats) * sizeof(u64)
>#endif
>+ , num_tx_qs, num_rx_qs);
> if (!ndev)
> return -ENOMEM;
>
>--
>2.1.4