Hi I am writing some framework for my kernel drivers. I delegated to framework the code which is common amongs all kernel drivers. So my framework module core.c has none probe, remove functions. It has also none module_init, module_exit functions at those are not needed. 1.) When I do modprobe of my core.ko I got error: 15.092976] testframework_core: module license 'unspecified' taints kernel. [ 15.129532] testframework_core : Unknown symbol regmap_write (err 0) [ 15.129554] testframework_core : Unknown symbol devm_kmalloc (err 0) [ 15.129573] rstctl_core testframework_core : Unknown symbol of_property_read_variable_u32_array (err 0) [ 15.129598] testframework_core : Unknown symbol sysfs_remove_groups (err 0) etc So I suppose I need to put in my core.c line: MODULE_LICENSE("GPL v2"); at the end of file in order to get rid of above problems. I will check if it helps. However when I am looking at build-in frameworks in linux kernel nobody put line: MODULE_LICENSE("GPL v2"); So why I have to and for example here: https://elixir.bootlin.com/linux/latest/source/drivers/reset/core.c there is none such line and everything works? This is what I completely don't understand. My framework is external module, maybe this is the reason???