Hi, David, For the Makefile, you should follow the pattern which is common in Linux Kernel Ethernet drivers, for example, http://lxr.free-electrons.com/source/drivers/net/ethernet/intel/i40e/Makefile or http://lxr.free-electrons.com/source/drivers/net/ethernet/mellanox/mlx5/core/Makefile
Don't think that I ever saw usage of "-j" in a kernel module Makefile; apart from it, "-j4" is specific to one platform with a given number of cores, and of course there can be platforms with many more cores, for which it is less suitable. You can pass the "-j" when running "make" from the command line, there is no justification to put it in a Makefile: >+all: >+ $(MAKE) -j4 CC=$(CC) -C $(BUILD_DIR) M=$(PWD) modules >+ >+dox: .doxygen >+ @doxygen $< >+ >+clean: >+ $(MAKE) -j4 -C $(BUILD_DIR) M=$(PWD) clean Don't think I ever encountered load/unload targets in Linux Kernel Makefiles (not talking about out of tree projects): >+load: >+ insmod ./$(TARGET).ko >+ >+unload: >+ rmmod ./$(TARGET).ko Regards, Rami Rosen