[U-Boot] [PATCH v2] lib:crc32: Allow setting of the initial crc32 value
Lukasz Majewski
l.majewski at samsung.com
Wed May 7 12:17:26 CEST 2014
Hi Marek,
> On Wednesday, May 07, 2014 at 08:10:20 AM, Lukasz Majewski wrote:
>
> [...]
>
> > --- a/lib/crc32.c
> > +++ b/lib/crc32.c
> > @@ -255,9 +255,12 @@ uint32_t ZEXPORT crc32_wd (uint32_t crc,
> > void crc32_wd_buf(const unsigned char *input, unsigned int ilen,
> > unsigned char *output, unsigned int chunk_sz)
> > {
> > - uint32_t crc;
> > + uint32_t crc = 0;
> >
> > - crc = crc32_wd(0, input, ilen, chunk_sz);
> > + if (*output)
> > + memcpy(&crc, output, sizeof(crc));
>
> Won't some sort of put_unaligned() work here ? The $crc is uint32_t
> afterall, so it might be a jiff faster.
We are concerned here with the use case of copying 4 bytes from
unaligned buffer defined on some architectures.
I suppose, that the performance would be the same for both.
However, since memcpy() is already used in this function, I would
prefer to use it here.
> Please correct me if I'm
> wrong.
>
> > +
> > + crc = crc32_wd(crc, input, ilen, chunk_sz);
> > crc = htonl(crc);
> > memcpy(output, &crc, sizeof(crc));
> > }
>
> Best regards,
> Marek Vasut
--
Best regards,
Lukasz Majewski
Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
More information about the U-Boot
mailing list