Introduction - If you have any usage issues, please Google them yourself
what is particularly stupid in the original driver is the arch-dependant member sizes. This leads to CONFIG_COMPAT breakage, since 32bit userspace will lay out the structure members differently than the 64bit kernel.