Bug 101281

Summary: FATAL: modpost: GPL-incompatible module fglrx.ko uses GPL-only symbol 'cpu_tlbstate'
Product: Drivers Reporter: Drake Donahue (donahue95)
Component: Video(Other)Assignee: drivers_video-other
Status: NEW ---    
Severity: blocking CC: jeremy.william.murphy, my, o01eg
Priority: P1    
Hardware: x86-64   
OS: Linux   
Kernel Version: 4 Subsystem:
Regression: No Bisected commit-id:

Description Drake Donahue 2015-07-09 17:07:18 UTC
After a successful compile, installing of the fglrx (ati-driver) is blocked:

LD [M]  /var/tmp/portage/x11-drivers/ati-drivers-15.1/work/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.o
  Building modules, stage 2.
  MODPOST 1 modules
FATAL: modpost: GPL-incompatible module fglrx.ko uses GPL-only symbol 'cpu_tlbstate'
scripts/Makefile.modpost:90: recipe for target '__modpost' failed

GPL-only symbol 'cpu_tlbstate' is invoked in kernel-4*/arch/x86/mm/init.c by "DEFINE_PER_CPU_SHARED_ALIGNED(struct tlb_state, cpu_tlbstate) = {
#ifdef CONFIG_SMP
	.active_mm = &init_mm,
	.state = 0,
#endif
	.cr4 = ~0UL,	/* fail hard if we screw up cr4 shadow initialization */
};
EXPORT_SYMBOL_GPL(cpu_tlbstate);"

kernel-3.18.6 did not include any reference to cpu_tlbstate in .

The block can be corrected simply by changing 
EXPORT_SYMBOL_GPL(cpu_tlbstate);
 to 
EXPORT_SYMBOL(cpu_tlbstate);
in all kernel-4 /arch/x86/mm/init.c

Bug 96841 performed a similar service for nvidia users.