diff options
author | WANG Cong <xiyou.wangcong@gmail.com> | 2014-02-13 14:46:28 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-02-14 15:49:55 -0500 |
commit | 1c213bd24ad04f4430031d20d740d7783162b099 (patch) | |
tree | eb42b8d216e89008065634185fd6a5fcce5ec4e9 /drivers/net/ethernet/marvell | |
parent | ed1acc8cd8c22efa919da8d300bab646e01c2dce (diff) |
net: introduce netdev_alloc_pcpu_stats() for drivers
There are many drivers calling alloc_percpu() to allocate pcpu stats
and then initializing ->syncp. So just introduce a helper function for them.
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/marvell')
-rw-r--r-- | drivers/net/ethernet/marvell/mvneta.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c index f418f4f20f94..12c6a66e54d1 100644 --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c | |||
@@ -2784,7 +2784,6 @@ static int mvneta_probe(struct platform_device *pdev) | |||
2784 | const char *mac_from; | 2784 | const char *mac_from; |
2785 | int phy_mode; | 2785 | int phy_mode; |
2786 | int err; | 2786 | int err; |
2787 | int cpu; | ||
2788 | 2787 | ||
2789 | /* Our multiqueue support is not complete, so for now, only | 2788 | /* Our multiqueue support is not complete, so for now, only |
2790 | * allow the usage of the first RX queue | 2789 | * allow the usage of the first RX queue |
@@ -2845,18 +2844,12 @@ static int mvneta_probe(struct platform_device *pdev) | |||
2845 | } | 2844 | } |
2846 | 2845 | ||
2847 | /* Alloc per-cpu stats */ | 2846 | /* Alloc per-cpu stats */ |
2848 | pp->stats = alloc_percpu(struct mvneta_pcpu_stats); | 2847 | pp->stats = netdev_alloc_pcpu_stats(struct mvneta_pcpu_stats); |
2849 | if (!pp->stats) { | 2848 | if (!pp->stats) { |
2850 | err = -ENOMEM; | 2849 | err = -ENOMEM; |
2851 | goto err_unmap; | 2850 | goto err_unmap; |
2852 | } | 2851 | } |
2853 | 2852 | ||
2854 | for_each_possible_cpu(cpu) { | ||
2855 | struct mvneta_pcpu_stats *stats; | ||
2856 | stats = per_cpu_ptr(pp->stats, cpu); | ||
2857 | u64_stats_init(&stats->syncp); | ||
2858 | } | ||
2859 | |||
2860 | dt_mac_addr = of_get_mac_address(dn); | 2853 | dt_mac_addr = of_get_mac_address(dn); |
2861 | if (dt_mac_addr) { | 2854 | if (dt_mac_addr) { |
2862 | mac_from = "device tree"; | 2855 | mac_from = "device tree"; |