From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752478AbdAYWQU (ORCPT ); Wed, 25 Jan 2017 17:16:20 -0500 Received: from mout.kundenserver.de ([212.227.17.13]:58608 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751562AbdAYWQS (ORCPT ); Wed, 25 Jan 2017 17:16:18 -0500 From: Arnd Bergmann To: Armin Schindler , Karsten Keil Cc: Arnd Bergmann , "David S. Miller" , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] [net-next] ISDN: eicon: reduce stack size of sig_ind function Date: Wed, 25 Jan 2017 23:15:53 +0100 Message-Id: <20170125221607.1102271-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:RwKT6rUsaRYSVoni9lZBsKuijvpdXHiZ+FYzxx9OKEE2URuEr9B k00MoJLol5tXbHfiEMyCXHDdee5Wd4+YkWjtgoKgMs304a4FxeQJky+jZddSjxPbReQZgOu MUvH4Bo1MQfsRhg/7U7EGrB2k2Ej3M7wJh/lkn7EjvxFvHTaMHH/kggM+9MAhDMQhRLvUU5 tof5zdpRa/SLg8Q848X0Q== X-UI-Out-Filterresults: notjunk:1;V01:K0:1UKtqUYZhFA=:rpnrhOCcRTJLeXinzh5JgP 31n+OirWsdVUKhUSgEwjmx+7enAA8vfOpKRQM4i/X2sZiTqHTmlp6ZO+XQKENM2DqK7dD/ynA SjnAnC39j3lTXCBMHiXUtj7VUlPOtHgkSyt9F4YC8dYhGZWSBJB55zSNl/8RiU50lwH6uz2SE KNqGLd1zG5tAjKaO0PS/MdK0pav10UV4Z2X+zdcNkNpFK4YxRamMR+f3XKt7cJFgW4IOUnYu8 t2dwD+yoFvq8C5pdrtS1JGaHKu7ERQwqQ9km3M/CwQdvD6IhZHlcXvMP+qx26ydijy3u7BqiP rnfwhXJosrmwqjGNoYsWC6JKJIICXS+1W+EUGcnPXWkyNvXfyLM2AvTYoxy0wSSPXKE1ItawN u5hCRkgzRk0uHjPn08jIFPIWbqww0BfAi+l2a3PSGYg7sBlOyXSOfsl4joMbfldJIn1UI5B2M c8B//hWr/WYTfFlPsSXPfzlovVCzpAKwNLQYG56w5v583vvaquDAyXyF23LTJct51tTiYZT1v 1WW8NAzgDkRhZEy7EydU9ZnSQj6cDnlJh6yEoIiK/vCppDhTm/MT4ndjZnFsGSg/sONMcFuye TwBnK6RewkhHv8jcwrerxuc+SHcCQ7UnkwPKK/1ssxoaYKZaijL/0I1GpIrQ4i6OcjCtr3qiK FWIh+fb7EIJMb56gguHtv2dQs+GaZaXLBPh3ygDorNbkdlShmnk4aPhEvZDctI7m9GXM= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org I noticed that this function uses a lot of kernel stack when the "latent entropy" plugin is enabled: drivers/isdn/hardware/eicon/message.c: In function 'sig_ind': drivers/isdn/hardware/eicon/message.c:6113:1: error: the frame size of 1168 bytes is larger than 1152 bytes [-Werror=frame-larger-than=] We currently don't warn about this, as we raise the warning limit to 2048 bytes in mainline, but I'd like to lower that limit again in the future, and this function can easily be changed to be more efficient and avoid that warning, by making some of its local variables 'const'. Signed-off-by: Arnd Bergmann --- drivers/isdn/hardware/eicon/message.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/isdn/hardware/eicon/message.c b/drivers/isdn/hardware/eicon/message.c index 1a1d99704fe6..5dcfa2913ceb 100644 --- a/drivers/isdn/hardware/eicon/message.c +++ b/drivers/isdn/hardware/eicon/message.c @@ -147,7 +147,7 @@ static word plci_remove_check(PLCI *); static void listen_check(DIVA_CAPI_ADAPTER *); static byte AddInfo(byte **, byte **, byte *, byte *); static byte getChannel(API_PARSE *); -static void IndParse(PLCI *, word *, byte **, byte); +static void IndParse(PLCI *, const word *, byte **, byte); static byte ie_compare(byte *, byte *); static word find_cip(DIVA_CAPI_ADAPTER *, byte *, byte *); static word CPN_filter_ok(byte *cpn, DIVA_CAPI_ADAPTER *, word); @@ -4858,7 +4858,7 @@ static void sig_ind(PLCI *plci) /* included before the ESC_MSGTYPE and MAXPARMSIDS has to be incremented */ /* SMSG is situated at the end because its 0 (for compatibility reasons */ /* (see Info_Mask Bit 4, first IE. then the message type) */ - word parms_id[] = + static const word parms_id[] = {MAXPARMSIDS, CPN, 0xff, DSA, OSA, BC, LLC, HLC, ESC_CAUSE, DSP, DT, CHA, UUI, CONG_RR, CONG_RNR, ESC_CHI, KEY, CHI, CAU, ESC_LAW, RDN, RDX, CONN_NR, RIN, NI, CAI, ESC_CR, @@ -4866,12 +4866,12 @@ static void sig_ind(PLCI *plci) /* 14 FTY repl by ESC_CHI */ /* 18 PI repl by ESC_LAW */ /* removed OAD changed to 0xff for future use, OAD is multiIE now */ - word multi_fac_id[] = {1, FTY}; - word multi_pi_id[] = {1, PI}; - word multi_CiPN_id[] = {1, OAD}; - word multi_ssext_id[] = {1, ESC_SSEXT}; + static const word multi_fac_id[] = {1, FTY}; + static const word multi_pi_id[] = {1, PI}; + static const word multi_CiPN_id[] = {1, OAD}; + static const word multi_ssext_id[] = {1, ESC_SSEXT}; - word multi_vswitch_id[] = {1, ESC_VSWITCH}; + static const word multi_vswitch_id[] = {1, ESC_VSWITCH}; byte *cau; word ncci; @@ -8924,7 +8924,7 @@ static void listen_check(DIVA_CAPI_ADAPTER *a) /* functions for all parameters sent in INDs */ /*------------------------------------------------------------------*/ -static void IndParse(PLCI *plci, word *parms_id, byte **parms, byte multiIEsize) +static void IndParse(PLCI *plci, const word *parms_id, byte **parms, byte multiIEsize) { word ploc; /* points to current location within packet */ byte w; -- 2.9.0