The ether_crc were converted to use the crc32 library in 2.5. The conversion is incorrect: crc32_le and _be are about the bit order in which the bits are processed: _le means least significant bit first, _be msb first. ethernet is always lsb first. ether_crc means the output should be in the cpu bit order [msb in bit 31], ether_crc_le means the output should be with msb in bit 0: that what crc32_le usually generates. The attached patch is tested with winbond-840, natsemi and 8139too, i.e. ether_crc works. ether_crc_le generates the same output as the inline functions from 2.4.18, but it's untested due to lack of nics. Could someone test it on a nic that uses ether_crc_le? -- Manfred