Skip to content
  • George Spelvin's avatar
    lib: crc32: Greatly shrink CRC combining code · 6d514b4e
    George Spelvin authored
    
    
    There's no need for a full 32x32 matrix, when rows before the last are
    just shifted copies of the rows after them.
    
    There's still room for improvement (especially on X86 processors with
    CRC32 and PCLMUL instructions), but this is a large step in the
    right direction [which is in particular useful for its current user,
    namely SCTP checksumming over multiple skb frags[] entries, i.e. in
    IPVS balancing when other CRC32 offloads are not available].
    
    The internal primitive is now called crc32_generic_shift and takes one
    less argument; the XOR with crc2 is done in inline wrappers.
    
    Signed-off-by: default avatarGeorge Spelvin <linux@horizon.com>
    Signed-off-by: default avatarDaniel Borkmann <dborkman@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6d514b4e