Hi Wolfgang, > Dear Lukasz Majewski, > > In message <[email protected]> > you wrote: > > The current approach set the initial value of crc32 calculation to > > zero, which is correct for calculating checksum of the whole chunk > > of data. > ... > > + if (*output) > > + memcpy(&crc, output, sizeof(crc)); > > + > > + crc = crc32_wd(crc, input, ilen, chunk_sz); > > crc = htonl(crc); > > memcpy(output, &crc, sizeof(crc)); > > You can actually remove the "if (*output)" because output has always > to be a non-null pointer, as we're going to store the result there.
I think, that the above statement would be correct if I had checked the if (output). The problem here is that *output refers to uint8 and only first/last byte is checked. This is obviously wrong. You are right that this check is not needed. > > Which means that you cannot use this to implicitly initialize crc =0, > whichin turn means you MUST add porper initialization to all callers > of that function. Ok. > > Best regards, > > Wolfgang Denk > -- Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

