The kernel already has (at least) one fast CRC16 implementation, in the IRDA drivers. This can be called from whereever, saving the need to do it again.

Cheers