https://bugs.freedesktop.org/show_bug.cgi?id=98417
--- Comment #7 from Adam J. Richter adam_richter2004@yahoo.com --- Agreeing with the previous comments that this is probably not a TTM problem, I want to pass along that I have observed what is probably the same problem, but with many kernel modules unrelated to TTM and graphics.
I think it might be possible to work around the problem by disabling CONFIG_MODVERSIONS, but just have not had the time to try that yet.
I suspect that this has something to do with the changes in symbol exports that occurred in linux 4.9-rc1, which you can see if you do something like:
diff -pruN linux-{4.8,4.9-rc1}/arch/x86/lib
The symbols that I have had trouble with, such as memset, are ones that have had export declarations added to assembler sources (.S files). I see that the entry for memset in the generated file Module.symvers is different.
In Linux 4.8, it looks like this: 0xfb578fc5 memset vmlinux EXPORT_SYMBOL
In Linux 4.9-rc1, it looks like this: 0x00000000 memset vmlinux EXPORT_SYMBOL
As you can see, the first field, which I believe is some sort of checksum of the C function declaration, is all zeroes for memset in Linux 4.9-rc1.
I am still looking into this, but I am posting now because I may need to set this task aside for a day or two and didn't want to delay in passing along information that I think might be helpful in resolving your problem.