Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

module: remove EXPORT_SYMBOL_GPL_FUTURE

As far as I can tell this has never been used at all, and certainly
not any time recently.

Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jessica Yu <jeyu@kernel.org>

authored by

Christoph Hellwig and committed by
Jessica Yu
f1c3d73e 00cc2c1c

+5 -65
+2 -2
arch/x86/tools/relocs.c
··· 61 61 "(__iommu_table|__apicdrivers|__smp_locks)(|_end)|" 62 62 "__(start|end)_pci_.*|" 63 63 "__(start|end)_builtin_fw|" 64 - "__(start|stop)___ksymtab(|_gpl|_unused|_unused_gpl|_gpl_future)|" 65 - "__(start|stop)___kcrctab(|_gpl|_unused|_unused_gpl|_gpl_future)|" 64 + "__(start|stop)___ksymtab(|_gpl|_unused|_unused_gpl)|" 65 + "__(start|stop)___kcrctab(|_gpl|_unused|_unused_gpl)|" 66 66 "__(start|stop)___param|" 67 67 "__(start|stop)___modver|" 68 68 "__(start|stop)___bug_table|"
-14
include/asm-generic/vmlinux.lds.h
··· 495 495 __stop___ksymtab_unused_gpl = .; \ 496 496 } \ 497 497 \ 498 - /* Kernel symbol table: GPL-future-only symbols */ \ 499 - __ksymtab_gpl_future : AT(ADDR(__ksymtab_gpl_future) - LOAD_OFFSET) { \ 500 - __start___ksymtab_gpl_future = .; \ 501 - KEEP(*(SORT(___ksymtab_gpl_future+*))) \ 502 - __stop___ksymtab_gpl_future = .; \ 503 - } \ 504 - \ 505 498 /* Kernel symbol table: Normal symbols */ \ 506 499 __kcrctab : AT(ADDR(__kcrctab) - LOAD_OFFSET) { \ 507 500 __start___kcrctab = .; \ ··· 521 528 __start___kcrctab_unused_gpl = .; \ 522 529 KEEP(*(SORT(___kcrctab_unused_gpl+*))) \ 523 530 __stop___kcrctab_unused_gpl = .; \ 524 - } \ 525 - \ 526 - /* Kernel symbol table: GPL-future-only symbols */ \ 527 - __kcrctab_gpl_future : AT(ADDR(__kcrctab_gpl_future) - LOAD_OFFSET) { \ 528 - __start___kcrctab_gpl_future = .; \ 529 - KEEP(*(SORT(___kcrctab_gpl_future+*))) \ 530 - __stop___kcrctab_gpl_future = .; \ 531 531 } \ 532 532 \ 533 533 /* Kernel symbol table: strings */ \
-1
include/linux/export.h
··· 157 157 158 158 #define EXPORT_SYMBOL(sym) _EXPORT_SYMBOL(sym, "") 159 159 #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl") 160 - #define EXPORT_SYMBOL_GPL_FUTURE(sym) _EXPORT_SYMBOL(sym, "_gpl_future") 161 160 #define EXPORT_SYMBOL_NS(sym, ns) __EXPORT_SYMBOL(sym, "", #ns) 162 161 #define EXPORT_SYMBOL_NS_GPL(sym, ns) __EXPORT_SYMBOL(sym, "_gpl", #ns) 163 162
-5
include/linux/module.h
··· 411 411 412 412 bool async_probe_requested; 413 413 414 - /* symbols that will be GPL-only in the near future. */ 415 - const struct kernel_symbol *gpl_future_syms; 416 - const s32 *gpl_future_crcs; 417 - unsigned int num_gpl_future_syms; 418 - 419 414 /* Exception table */ 420 415 unsigned int num_exentries; 421 416 struct exception_table_entry *extable;
+2 -27
kernel/module.c
··· 408 408 extern const struct kernel_symbol __stop___ksymtab[]; 409 409 extern const struct kernel_symbol __start___ksymtab_gpl[]; 410 410 extern const struct kernel_symbol __stop___ksymtab_gpl[]; 411 - extern const struct kernel_symbol __start___ksymtab_gpl_future[]; 412 - extern const struct kernel_symbol __stop___ksymtab_gpl_future[]; 413 411 extern const s32 __start___kcrctab[]; 414 412 extern const s32 __start___kcrctab_gpl[]; 415 - extern const s32 __start___kcrctab_gpl_future[]; 416 413 #ifdef CONFIG_UNUSED_SYMBOLS 417 414 extern const struct kernel_symbol __start___ksymtab_unused[]; 418 415 extern const struct kernel_symbol __stop___ksymtab_unused[]; ··· 431 434 enum mod_license { 432 435 NOT_GPL_ONLY, 433 436 GPL_ONLY, 434 - WILL_BE_GPL_ONLY, 435 437 } license; 436 438 bool unused; 437 439 }; ··· 454 458 { 455 459 struct find_symbol_arg *fsa = data; 456 460 457 - if (!fsa->gplok) { 458 - if (syms->license == GPL_ONLY) 459 - return false; 460 - if (syms->license == WILL_BE_GPL_ONLY && fsa->warn) { 461 - pr_warn("Symbol %s is being used by a non-GPL module, " 462 - "which will not be allowed in the future\n", 463 - fsa->name); 464 - } 465 - } 461 + if (!fsa->gplok && syms->license == GPL_ONLY) 462 + return false; 466 463 467 464 #ifdef CONFIG_UNUSED_SYMBOLS 468 465 if (syms->unused && fsa->warn) { ··· 539 550 { __start___ksymtab_gpl, __stop___ksymtab_gpl, 540 551 __start___kcrctab_gpl, 541 552 GPL_ONLY, false }, 542 - { __start___ksymtab_gpl_future, __stop___ksymtab_gpl_future, 543 - __start___kcrctab_gpl_future, 544 - WILL_BE_GPL_ONLY, false }, 545 553 #ifdef CONFIG_UNUSED_SYMBOLS 546 554 { __start___ksymtab_unused, __stop___ksymtab_unused, 547 555 __start___kcrctab_unused, ··· 565 579 { mod->gpl_syms, mod->gpl_syms + mod->num_gpl_syms, 566 580 mod->gpl_crcs, 567 581 GPL_ONLY, false }, 568 - { mod->gpl_future_syms, 569 - mod->gpl_future_syms + mod->num_gpl_future_syms, 570 - mod->gpl_future_crcs, 571 - WILL_BE_GPL_ONLY, false }, 572 582 #ifdef CONFIG_UNUSED_SYMBOLS 573 583 { mod->unused_syms, 574 584 mod->unused_syms + mod->num_unused_syms, ··· 2274 2292 } arr[] = { 2275 2293 { mod->syms, mod->num_syms }, 2276 2294 { mod->gpl_syms, mod->num_gpl_syms }, 2277 - { mod->gpl_future_syms, mod->num_gpl_future_syms }, 2278 2295 #ifdef CONFIG_UNUSED_SYMBOLS 2279 2296 { mod->unused_syms, mod->num_unused_syms }, 2280 2297 { mod->unused_gpl_syms, mod->num_unused_gpl_syms }, ··· 3289 3308 sizeof(*mod->gpl_syms), 3290 3309 &mod->num_gpl_syms); 3291 3310 mod->gpl_crcs = section_addr(info, "__kcrctab_gpl"); 3292 - mod->gpl_future_syms = section_objs(info, 3293 - "__ksymtab_gpl_future", 3294 - sizeof(*mod->gpl_future_syms), 3295 - &mod->num_gpl_future_syms); 3296 - mod->gpl_future_crcs = section_addr(info, "__kcrctab_gpl_future"); 3297 3311 3298 3312 #ifdef CONFIG_UNUSED_SYMBOLS 3299 3313 mod->unused_syms = section_objs(info, "__ksymtab_unused", ··· 3482 3506 #ifdef CONFIG_MODVERSIONS 3483 3507 if ((mod->num_syms && !mod->crcs) 3484 3508 || (mod->num_gpl_syms && !mod->gpl_crcs) 3485 - || (mod->num_gpl_future_syms && !mod->gpl_future_crcs) 3486 3509 #ifdef CONFIG_UNUSED_SYMBOLS 3487 3510 || (mod->num_unused_syms && !mod->unused_crcs) 3488 3511 || (mod->num_unused_gpl_syms && !mod->unused_gpl_crcs)
+1 -12
scripts/mod/modpost.c
··· 44 44 45 45 enum export { 46 46 export_plain, export_unused, export_gpl, 47 - export_unused_gpl, export_gpl_future, export_unknown 47 + export_unused_gpl, export_unknown 48 48 }; 49 49 50 50 /* In kernel, this size is defined in linux/module.h; ··· 304 304 { .str = "EXPORT_UNUSED_SYMBOL", .export = export_unused }, 305 305 { .str = "EXPORT_SYMBOL_GPL", .export = export_gpl }, 306 306 { .str = "EXPORT_UNUSED_SYMBOL_GPL", .export = export_unused_gpl }, 307 - { .str = "EXPORT_SYMBOL_GPL_FUTURE", .export = export_gpl_future }, 308 307 { .str = "(unknown)", .export = export_unknown }, 309 308 }; 310 309 ··· 368 369 return export_gpl; 369 370 else if (strstarts(secname, "___ksymtab_unused_gpl+")) 370 371 return export_unused_gpl; 371 - else if (strstarts(secname, "___ksymtab_gpl_future+")) 372 - return export_gpl_future; 373 372 else 374 373 return export_unknown; 375 374 } ··· 382 385 return export_gpl; 383 386 else if (sec == elf->export_unused_gpl_sec) 384 387 return export_unused_gpl; 385 - else if (sec == elf->export_gpl_future_sec) 386 - return export_gpl_future; 387 388 else 388 389 return export_unknown; 389 390 } ··· 591 596 info->export_gpl_sec = i; 592 597 else if (strcmp(secname, "__ksymtab_unused_gpl") == 0) 593 598 info->export_unused_gpl_sec = i; 594 - else if (strcmp(secname, "__ksymtab_gpl_future") == 0) 595 - info->export_gpl_future_sec = i; 596 599 597 600 if (sechdrs[i].sh_type == SHT_SYMTAB) { 598 601 unsigned int sh_link_idx; ··· 2144 2151 case export_unused_gpl: 2145 2152 error("GPL-incompatible module %s.ko uses GPL-only symbol marked UNUSED '%s'\n", 2146 2153 m, s); 2147 - break; 2148 - case export_gpl_future: 2149 - warn("GPL-incompatible module %s.ko uses future GPL-only symbol '%s'\n", 2150 - m, s); 2151 2154 break; 2152 2155 case export_plain: 2153 2156 case export_unused:
-1
scripts/mod/modpost.h
··· 142 142 Elf_Section export_unused_sec; 143 143 Elf_Section export_gpl_sec; 144 144 Elf_Section export_unused_gpl_sec; 145 - Elf_Section export_gpl_future_sec; 146 145 char *strtab; 147 146 char *modinfo; 148 147 unsigned int modinfo_len;
-2
scripts/module.lds.S
··· 13 13 __ksymtab_gpl 0 : { *(SORT(___ksymtab_gpl+*)) } 14 14 __ksymtab_unused 0 : { *(SORT(___ksymtab_unused+*)) } 15 15 __ksymtab_unused_gpl 0 : { *(SORT(___ksymtab_unused_gpl+*)) } 16 - __ksymtab_gpl_future 0 : { *(SORT(___ksymtab_gpl_future+*)) } 17 16 __kcrctab 0 : { *(SORT(___kcrctab+*)) } 18 17 __kcrctab_gpl 0 : { *(SORT(___kcrctab_gpl+*)) } 19 18 __kcrctab_unused 0 : { *(SORT(___kcrctab_unused+*)) } 20 19 __kcrctab_unused_gpl 0 : { *(SORT(___kcrctab_unused_gpl+*)) } 21 - __kcrctab_gpl_future 0 : { *(SORT(___kcrctab_gpl_future+*)) } 22 20 23 21 .init_array 0 : ALIGN(8) { *(SORT(.init_array.*)) *(.init_array) } 24 22
-1
tools/include/linux/export.h
··· 3 3 4 4 #define EXPORT_SYMBOL(sym) 5 5 #define EXPORT_SYMBOL_GPL(sym) 6 - #define EXPORT_SYMBOL_GPL_FUTURE(sym) 7 6 #define EXPORT_UNUSED_SYMBOL(sym) 8 7 #define EXPORT_UNUSED_SYMBOL_GPL(sym) 9 8