On Thursday 05 January 2012 13:44:57 David Wagner wrote:
> --- a/tools/mkenvimage.c
> +++ b/tools/mkenvimage.c
> 
>               filesize = txt_file_stat.st_size;
> -             /* Read the raw input file and transform it */
> -             filebuf = malloc(sizeof(*envptr) * filesize);
> -             ret = read(txt_fd, filebuf, sizeof(*envptr) * filesize);
> -             if (ret != sizeof(*envptr) * filesize) {
> -                     fprintf(stderr, "Can't read the whole input file\n");
> +
> +             filebuf = mmap(NULL, sizeof(*envptr) * filesize, PROT_READ,
> +                            MAP_PRIVATE, txt_fd, 0);
> +             ret = close(txt_fd);
> +             if (filebuf == MAP_FAILED) {
> +                     fprintf(stderr, "mmap (%ld bytes) failed: %s\n",
> +                                     sizeof(*envptr) * filesize,
> +                                     strerror(errno));
>                       return EXIT_FAILURE;
>               }
> -             ret = close(txt_fd);

seems like the mmap() failure shouldn't be fatal.  just have it fallback to 
the normal read()/write() logic.
-mike

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to