[U-Boot-Users] [PATCH] fs: make the static array to dynamic allocation

Kumar Gala galak at kernel.crashing.org
Thu Jun 26 17:17:10 CEST 2008


On Jun 26, 2008, at 9:50 AM, Dave Liu wrote:

> Current fat.c have three 64KB static array, it makes
> the BSS section larger.
> Change the static to dynamic allocation.
>
> Signed-off-by: Dave Liu <daveliu at freescale.com>
> ---
> fs/fat/fat.c |   38 +++++++++++++++++++++++++++++++++++---
> 1 files changed, 35 insertions(+), 3 deletions(-)
>
> diff --git a/fs/fat/fat.c b/fs/fat/fat.c
> index 49c78ed..8e054a6 100644
> --- a/fs/fat/fat.c
> +++ b/fs/fat/fat.c
> @@ -28,6 +28,7 @@
> #include <common.h>
> #include <config.h>
> #include <fat.h>
> +#include <malloc.h>
> #include <asm/byteorder.h>
> #include <part.h>
>
> @@ -65,6 +66,37 @@ int disk_read (__u32 startblock, __u32 getsize,  
> __u8 * bufptr)
> 	return -1;
> }
>
> +__u8 *get_vfatname_block;
> +__u8 *get_dentfromdir_block;
> +__u8 *do_fat_read_block;
> +static int fat_mem_done = 0;
> +static int fat_memory_alloc(void)
> +{
> +	if (fat_mem_done)
> +		return 0;
> +
> +	get_vfatname_block = (__u8 *)malloc(MAX_CLUSTSIZE);

do you really need the cast?
>
> +	if (!get_vfatname_block) {
> +		printf("alloc get_vfatname_block failed\n\r");
> +		return -1;
> +	}
> +
> +	get_dentfromdir_block = (__u8 *)malloc(MAX_CLUSTSIZE);

ditto.
>
> +	if (!get_dentfromdir_block) {
> +		printf("alloc get_dentfromdir_block failed\n\r");
> +		return -1;
> +	}
> +
> +	do_fat_read_block = (__u8 *)malloc(MAX_CLUSTSIZE);

ditto
>
> +	if (!do_fat_read_block) {
> +		printf("alloc do_fat_read_block failed\n\r");
> +		return -1;
> +	}
> +
> +	fat_mem_done = 1;
> +
> +	return 0;
> +}

- k




More information about the U-Boot mailing list