Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932230AbdGLQwM (ORCPT ); Wed, 12 Jul 2017 12:52:12 -0400 Received: from gateway32.websitewelcome.com ([192.185.145.111]:26814 "EHLO gateway32.websitewelcome.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932106AbdGLQwL (ORCPT ); Wed, 12 Jul 2017 12:52:11 -0400 Date: Wed, 12 Jul 2017 11:51:44 -0500 Message-ID: <20170712115144.Horde.FbWJCF3tLLNmzrIfChEYUVc@gator4166.hostgator.com> From: "Gustavo A. R. Silva" To: Patrice CHOTARD Cc: Linus Walleij , linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] pinctrl: st: constify gpio_chip structure References: <20170711181519.GA20001@embeddedgus> In-Reply-To: User-Agent: Horde Application Framework 5 Content-Type: text/plain; charset=utf-8; format=flowed; DelSp=Yes MIME-Version: 1.0 Content-Disposition: inline X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator4166.hostgator.com X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - embeddedor.com X-BWhitelist: no X-Source-IP: 108.167.133.22 X-Exim-ID: 1dVKrY-002b3s-Ep X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: gator4166.hostgator.com [108.167.133.22]:37425 X-Source-Auth: garsilva@embeddedor.com X-Email-Count: 1 X-Source-Cap: Z3V6aWRpbmU7Z3V6aWRpbmU7Z2F0b3I0MTY2Lmhvc3RnYXRvci5jb20= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2040 Lines: 85 Hi Patrice, Quoting Patrice CHOTARD : > Hi Gustavo > > On 07/11/2017 08:15 PM, Gustavo A. R. Silva wrote: >> This structure is only used to copy into other structure, so declare >> it as const. >> >> This issue was detected using Coccinelle and the following semantic patch: >> >> @r disable optional_qualifier@ >> identifier i; >> position p; >> @@ >> static struct gpio_chip i@p = { ... }; >> >> @ok@ >> identifier r.i; >> expression e; >> position p; >> @@ >> e = i@p; >> >> @bad@ >> position p != {r.p,ok.p}; >> identifier r.i; >> struct gpio_chip e; >> @@ >> e@i@p >> >> @depends on !bad disable optional_qualifier@ >> identifier r.i; >> @@ >> static >> +const >> struct gpio_chip i = { ... }; >> >> In the following log you can see a significant difference in the code size >> and data segment, hence in the dec segment. This log is the output >> of the size command, before and after the code change: >> >> before: >> text data bss dec hex filename >> 21671 3632 128 25431 6357 drivers/pinctrl/pinctrl-st.o >> >> after: >> text data bss dec hex filename >> 21366 3576 128 25070 61ee drivers/pinctrl/pinctrl-st.o >> >> Signed-off-by: Gustavo A. R. Silva >> --- >> drivers/pinctrl/pinctrl-st.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/pinctrl/pinctrl-st.c b/drivers/pinctrl/pinctrl-st.c >> index 3ae8066..5d4789d 100644 >> --- a/drivers/pinctrl/pinctrl-st.c >> +++ b/drivers/pinctrl/pinctrl-st.c >> @@ -1442,7 +1442,7 @@ static void st_gpio_irqmux_handler(struct >> irq_desc *desc) >> chained_irq_exit(chip, desc); >> } >> >> -static struct gpio_chip st_gpio_template = { >> +static const struct gpio_chip st_gpio_template = { >> .request = gpiochip_generic_request, >> .free = gpiochip_generic_free, >> .get = st_gpio_get, >> > > Acked-by: Patrice Chotard > > Thanks Glad to help. :) Thanks -- Gustavo A. R. Silva