lib: crc32: add functionality to combine two crc32{, c}s in GF(2)
authorDaniel Borkmann <dborkman@redhat.com>
Wed, 30 Oct 2013 10:50:49 +0000 (11:50 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 Nov 2013 04:04:56 +0000 (23:04 -0500)
commit6e95fcaa42e5078ac265964deebed597f9eae07a
tree36e2b8bc15a615772015ef62c0bdda8047711321
parentd921e049a02c7bd6ddf8f5e72303ca336009556d
lib: crc32: add functionality to combine two crc32{, c}s in GF(2)

This patch adds a combinator to merge two or more crc32{,c}s
into a new one. This is useful for checksum computations of
fragmented skbs that use crc32/crc32c as checksums.

The arithmetics for combining both in the GF(2) was taken and
slightly modified from zlib. Only passing two crcs is insufficient
as two crcs and the length of the second piece is needed for
merging. The code is made generic, so that only polynomials
need to be passed for crc32_le resp. crc32c_le.

Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/crc32.h
lib/crc32.c