Hi all, I'm working on a kernel module and noticed that sometimes my changes to certain header files don't affect the module's srcversion hash. This matters because tools like dkms will refuse to upgrade a module if the new hash is the same as the one currently installed. The files being ignored are those that are not (however indirectly) included by a .c placed in the same directory. In my case, I have a header which is included by several .c files placed in other directories; changes to this header won't affect the final srcversion hash. The cause of this seems to be this check in sumversion.c: /* Check if this file is in same dir as objfile */ if ((strstr(line, dir)+strlen(dir)-1) == strrchr(line, '/')) { if (!parse_file(line, md)) { warn("could not open %s: %s\n", line, strerror(errno)); goto out_file; } } I'm not sure what's the rationale behind this check, not whether this behavior is documented anywhere.