sync with upstream.
sync with upstream.
tweak kernelmodule to work with kernel > 3.4