[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