for kernel version <= 3.3, linux/init.h doesnt include linux/types.h, so we include it here.