kernel: update 4.4 to 4.4.83
[openwrt/openwrt.git] / target / linux / mediatek / patches-4.9 / 0094-net-affinity.patch
1 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
2 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
3 @@ -2459,15 +2459,23 @@ static int mtk_probe(struct platform_dev
4 goto err_deinit_hw;
5 }
6
7 + for (i = 0; i < 3; i++) {
8 + int cpu = i % num_online_cpus();
9 +
10 + cpumask_set_cpu(cpu, &eth->affinity_mask[i]);
11 + }
12 +
13 err = devm_request_irq(eth->dev, eth->irq[1], mtk_handle_irq_tx, 0,
14 dev_name(eth->dev), eth);
15 if (err)
16 goto err_free_dev;
17 + irq_set_affinity_hint(eth->irq[1], &eth->affinity_mask[1]);
18
19 err = devm_request_irq(eth->dev, eth->irq[2], mtk_handle_irq_rx, 0,
20 dev_name(eth->dev), eth);
21 if (err)
22 goto err_free_dev;
23 + irq_set_affinity_hint(eth->irq[2], &eth->affinity_mask[2]);
24
25 err = mtk_mdio_init(eth);
26 if (err)
27 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
28 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
29 @@ -539,6 +539,7 @@ struct mtk_eth {
30 struct net_device *netdev[MTK_MAX_DEVS];
31 struct mtk_mac *mac[MTK_MAX_DEVS];
32 int irq[3];
33 + cpumask_t affinity_mask[3];
34 u32 msg_enable;
35 unsigned long sysclk;
36 struct regmap *ethsys;