Re: [PATCH v2 2/2] Input: amikbd - Allocate temporary keymap buffer on the stack

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Nov 30, 2014 at 10:30:20AM +0100, Geert Uytterhoeven wrote:
> Allocate the temporary buffer needed for initialization of the console
> keyboard maps (512 bytes, as NR_KEYS = 256) on the stack instead of
> statically, to reduce kernel size.
> 
> add/remove: 0/1 grow/shrink: 0/0 up/down: 0/-512 (-512)
> function                                     old     new   delta
> temp_map                                     512       -    -512

So because it is marked __initdata and is placed into a separate
section we have to allocate the space in the image?

Anyway, applied both, thank you.

> 
> Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
> ---
> v2:
>   - Allocate temp_map[] on the stack instead of using kmalloc().
> ---
>  drivers/input/keyboard/amikbd.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/input/keyboard/amikbd.c b/drivers/input/keyboard/amikbd.c
> index 4f81e65d9e35cb7d..60580d8104b9f970 100644
> --- a/drivers/input/keyboard/amikbd.c
> +++ b/drivers/input/keyboard/amikbd.c
> @@ -147,10 +147,10 @@ static unsigned char amikbd_keycode[0x78] __initdata = {
>  
>  static void __init amikbd_init_console_keymaps(void)
>  {
> +	unsigned short temp_map[NR_KEYS];
>  	int i, j;
>  
>  	for (i = 0; i < MAX_NR_KEYMAPS; i++) {
> -		static u_short temp_map[NR_KEYS] __initdata;
>  		if (!key_maps[i])
>  			continue;
>  		memset(temp_map, 0, sizeof(temp_map));
> -- 
> 1.9.1
> 

-- 
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux