Make sure you have compiled the module against the right kernel headers, with the right compiler and options, etc. Otherwise, it could use definitions of kernel data structures which don't agree with the running kernel, since these structures are configuration and compiler dependent. This is an easy way to cause kernel crashes. It helps catch the errors from mismatching modules by refusing to load these modules. Compression hurts rather than helps for encrypted traffic, which can not be compressed.
Compression needs buffering some amount of data, which causes additional delay.