From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751889AbdBBOvF (ORCPT ); Thu, 2 Feb 2017 09:51:05 -0500 Received: from mout.kundenserver.de ([212.227.126.187]:60987 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751665AbdBBOvC (ORCPT ); Thu, 2 Feb 2017 09:51:02 -0500 From: Arnd Bergmann To: "David S. Miller" Cc: Arnd Bergmann , Yisen Zhuang , Salil Mehta , Kejian Yan , Daode Huang , Qianqian Xie , Sheng Li , lipeng , Philippe Reynes , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] [net-next] hns_enet: use cpumask_var_t for on-stack mask Date: Thu, 2 Feb 2017 15:49:24 +0100 Message-Id: <20170202145017.3761604-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:KFTA3u5RLd9OYxOOHyVRSrPCXiZOrklrSuANpk5ioAKw81Cj2T9 yLO98gBDd3CIJF0cwvhQhgFrjJMeOQI/kQJyFp5NqOlKcl6Qc1vZaQaw6Cznh5iAv59bcqm fBUq0tGPNp/EK7RkR4X/i0ptqkineOEUU7kRKqyY3kwmuDhVbjzFsI/lZe/J2AaY/ZY6ym6 IufOnTPe6nxsgilnyN/hg== X-UI-Out-Filterresults: notjunk:1;V01:K0:Ezdcw/JARNQ=:ZcsXHJWjnmGY1LAluvX3L2 LkAtqGFsi3v6fLtmayWJUaCg0Jul451V76yGSoBJojnioCArAQerxdQt+failM3xF0Am1Tjv3 Y8dIViPu1sYsX9URydDcGTHXaPCjNBQUh2WaF04Dm9RIhAlD+9oRvNo5R20LY0GMRVBrsMDml bU9KlA+brcaCKuqL+eE98vQQXR6nsRXpQYJVur/a9R2d5m6nA5WwKp46WZXIXsVnV2lP1ljxw 4aLp7kxLwC/eBQ8A4hSKHPHJfYgxWVpM+js3vHnXwxdnCxGVS0Z1vf0RHAPBW91AnDhp6j7Ve tHJa0qhKad5z86ZP+e81y1QBtI5XF2qqZTOn7bHQeGGWPcON5a7DawwkB83ymOuReCrWZQqGw YdTBwC6eyUW6SJopJYI4tOY4Bn47jZ+Uqxu0dgbDywjscRlJFPemZ+PHhzBRNRtxQxqR+DFyZ WU5qf43x4Piu4imrNE8ysUxf/FbjgN1FEXgCoAhmCzE5UKl4F7Oi4ia4r5ko0LnSZuoqukgbU Du6t2FNOyPqH9TKIktNv0hpX4SB2KniKeomT7koIf7oAQsrseYH40xYD934vIFR3lUPOib7+k 0nZHXJUFA9Focy/ZbQFcwdVrJurXIoaSDU04MFC6NenMk8vI4Emchxi8KcVD35O4hKvkvT9uf w7RRGpupnv9Rfmb1Bsr5MenUlx+UMQxKkm2i/R/8pMD9MJE1QiCuz9nMRnhFXIdXcf9I= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On large SMP builds, we can run into a build warning: drivers/net/ethernet/hisilicon/hns/hns_enet.c: In function 'hns_set_irq_affinity.isra.27': drivers/net/ethernet/hisilicon/hns/hns_enet.c:1242:1: warning: the frame size of 1032 bytes is larger than 1024 bytes [-Wframe-larger-than=] The solution here is to use cpumask_var_t, which can use dynamic allocation when CONFIG_CPUMASK_OFFSTACK is enabled. Signed-off-by: Arnd Bergmann --- drivers/net/ethernet/hisilicon/hns/hns_enet.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/drivers/net/ethernet/hisilicon/hns/hns_enet.c b/drivers/net/ethernet/hisilicon/hns/hns_enet.c index f7b75e96c1c3..fefe371e5907 100644 --- a/drivers/net/ethernet/hisilicon/hns/hns_enet.c +++ b/drivers/net/ethernet/hisilicon/hns/hns_enet.c @@ -1202,43 +1202,48 @@ static void hns_set_irq_affinity(struct hns_nic_priv *priv) struct hns_nic_ring_data *rd; int i; int cpu; - cpumask_t mask; + cpumask_var_t mask; + + if (!alloc_cpumask_var(&mask, GFP_KERNEL)) + return; /*diffrent irq banlance for 16core and 32core*/ if (h->q_num == num_possible_cpus()) { for (i = 0; i < h->q_num * 2; i++) { rd = &priv->ring_data[i]; if (cpu_online(rd->queue_index)) { - cpumask_clear(&mask); + cpumask_clear(mask); cpu = rd->queue_index; - cpumask_set_cpu(cpu, &mask); + cpumask_set_cpu(cpu, mask); (void)irq_set_affinity_hint(rd->ring->irq, - &mask); + mask); } } } else { for (i = 0; i < h->q_num; i++) { rd = &priv->ring_data[i]; if (cpu_online(rd->queue_index * 2)) { - cpumask_clear(&mask); + cpumask_clear(mask); cpu = rd->queue_index * 2; - cpumask_set_cpu(cpu, &mask); + cpumask_set_cpu(cpu, mask); (void)irq_set_affinity_hint(rd->ring->irq, - &mask); + mask); } } for (i = h->q_num; i < h->q_num * 2; i++) { rd = &priv->ring_data[i]; if (cpu_online(rd->queue_index * 2 + 1)) { - cpumask_clear(&mask); + cpumask_clear(mask); cpu = rd->queue_index * 2 + 1; - cpumask_set_cpu(cpu, &mask); + cpumask_set_cpu(cpu, mask); (void)irq_set_affinity_hint(rd->ring->irq, - &mask); + mask); } } } + + free_cpumask_var(mask); } static int hns_nic_init_irq(struct hns_nic_priv *priv) -- 2.9.0