Re: [PATCH] dmaengine: iop-adma: make array 'handler' static const, makes object smaller

From: Colin Ian King
Date: Wed Sep 25 2019 - 16:46:53 EST


On 25/09/2019 21:43, Vinod Koul wrote:
> On 05-09-19, 17:37, Colin King wrote:
>> From: Colin Ian King <colin.king@xxxxxxxxxxxxx>
>>
>> Don't populate the array 'handler' on the stack but instead make it
>> static const. Makes the object code smaller by 80 bytes.
>>
>> Before:
>> text data bss dec hex filename
>> 38225 9084 64 47373 b90d drivers/dma/iop-adma.o
>>
>> After:
>> text data bss dec hex filename
>> 38081 9148 64 47293 b8bd drivers/dma/iop-adma.o
>>
>> (gcc version 9.2.1, amd64)
>>
>> Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
>> ---
>> drivers/dma/iop-adma.c | 8 +++++---
>> 1 file changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/dma/iop-adma.c b/drivers/dma/iop-adma.c
>> index a3f942a6a946..4dc5478fc156 100644
>> --- a/drivers/dma/iop-adma.c
>> +++ b/drivers/dma/iop-adma.c
>> @@ -1359,9 +1359,11 @@ static int iop_adma_probe(struct platform_device *pdev)
>> iop_adma_device_clear_err_status(iop_chan);
>>
>> for (i = 0; i < 3; i++) {
>> - irq_handler_t handler[] = { iop_adma_eot_handler,
>> - iop_adma_eoc_handler,
>> - iop_adma_err_handler };
>> + static const irq_handler_t handler[] = {
>> + iop_adma_eot_handler,
>> + iop_adma_eoc_handler,
>> + iop_adma_err_handler
>
> would it not be more apt to declare the handler outside the loop!

Originally yes, but now it's static, no.

>
>> + };
>> int irq = platform_get_irq(pdev, i);
>> if (irq < 0) {
>> ret = -ENXIO;
>> --
>> 2.20.1
>