* [hnaz-linux-mm:master 168/421] init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
@ 2020-08-01 22:25 ` kernel test robot
0 siblings, 0 replies; 15+ messages in thread
From: kernel test robot @ 2020-08-01 22:25 UTC (permalink / raw)
To: Andrey Konovalov
Cc: kbuild-all, Johannes Weiner, Andrew Morton, Linux Memory Management List
[-- Attachment #1: Type: text/plain, Size: 19548 bytes --]
tree: https://github.com/hnaz/linux-mm master
head: 2932a9e66c580f3c8d95ec27716d437198fb4c94
commit: 7c0265f304de3c3acd02d0015b56a076357bcce3 [168/421] kasan, arm64: don't instrument functions that enable kasan
config: x86_64-randconfig-r036-20200802 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce (this is a W=1 build):
git checkout 7c0265f304de3c3acd02d0015b56a076357bcce3
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
ld: init/main.o: in function `start_kernel':
>> init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
vim +1012 init/main.c
53c99bd665a2649 Martin Schwidefsky 2018-08-31 829
7c0265f304de3c3 Andrey Konovalov 2020-08-01 830 asmlinkage __visible __no_sanitize_address void __init start_kernel(void)
^1da177e4c3f415 Linus Torvalds 2005-04-16 831 {
dd4d9fecbeba893 Fabian Frederick 2014-08-08 832 char *command_line;
dd4d9fecbeba893 Fabian Frederick 2014-08-08 833 char *after_dashes;
033ab7f8e5c655f Andrew Morton 2006-06-30 834
d4311ff1a8da48d Aaron Tomlin 2014-09-12 835 set_task_stack_end_magic(&init_task);
73839c5b2eacc15 Ming Lei 2011-11-17 836 smp_setup_processor_id();
3ac7fe5a4aab409 Thomas Gleixner 2008-04-30 837 debug_objects_early_init();
420594296838fdc Ingo Molnar 2008-02-14 838
ddbcc7e8e50aefe Paul Menage 2007-10-18 839 cgroup_init_early();
fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 840
fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 841 local_irq_disable();
2ce802f62ba32a7 Tejun Heo 2011-01-20 842 early_boot_irqs_disabled = true;
fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 843
^1da177e4c3f415 Linus Torvalds 2005-04-16 844 /*
^1da177e4c3f415 Linus Torvalds 2005-04-16 845 * Interrupts are still disabled. Do necessary setups, then
1b3b3b49b996140 Viresh Kumar 2017-03-23 846 * enable them.
^1da177e4c3f415 Linus Torvalds 2005-04-16 847 */
44fd22992cb76dc Stas Sergeev 2006-03-23 848 boot_cpu_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 849 page_address_init();
ea676e846a8171b Andrew Morton 2013-04-29 850 pr_notice("%s", linux_banner);
e6b1db98cf4d54d Matthew Garrett 2019-08-19 851 early_security_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 852 setup_arch(&command_line);
7495e0926fdf302 Steven Rostedt (VMware 2020-02-04 853) setup_boot_config(command_line);
30d7e0d466b3ac0 Alon Bar-Lev 2007-02-12 854 setup_command_line(command_line);
e0982e90cd1ecf5 Mike Travis 2008-03-26 855 setup_nr_cpu_ids();
d6647bdf98a0de1 Tejun Heo 2009-07-21 856 setup_per_cpu_areas();
44fd22992cb76dc Stas Sergeev 2006-03-23 857 smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
b5b1404d0815894 Linus Torvalds 2018-08-12 858 boot_cpu_hotplug_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 859
72675e131eb418c Michal Hocko 2017-09-06 860 build_all_zonelists(NULL);
83b519e8b9572c3 Pekka Enberg 2009-06-10 861 page_alloc_init();
83b519e8b9572c3 Pekka Enberg 2009-06-10 862
51887d03aca101a Masami Hiramatsu 2020-01-11 863 pr_notice("Kernel command line: %s\n", saved_command_line);
6041186a32585fc Dan Williams 2019-04-18 864 /* parameters may set static keys */
6041186a32585fc Dan Williams 2019-04-18 865 jump_label_init();
83b519e8b9572c3 Pekka Enberg 2009-06-10 866 parse_early_param();
51e158c12aca3c9 Rusty Russell 2014-04-28 867 after_dashes = parse_args("Booting kernel",
51e158c12aca3c9 Rusty Russell 2014-04-28 868 static_command_line, __start___param,
83b519e8b9572c3 Pekka Enberg 2009-06-10 869 __stop___param - __start___param,
ecc8617053e0a97 Luis R. Rodriguez 2015-03-30 870 -1, -1, NULL, &unknown_bootoption);
3438cf549d2f3ee Daniel Thompson 2014-11-11 871 if (!IS_ERR_OR_NULL(after_dashes))
51e158c12aca3c9 Rusty Russell 2014-04-28 872 parse_args("Setting init args", after_dashes, NULL, 0, -1, -1,
ecc8617053e0a97 Luis R. Rodriguez 2015-03-30 873 NULL, set_init_arg);
1319916209ce8f5 Masami Hiramatsu 2020-01-11 874 if (extra_init_args)
1319916209ce8f5 Masami Hiramatsu 2020-01-11 875 parse_args("Setting extra init args", extra_init_args,
1319916209ce8f5 Masami Hiramatsu 2020-01-11 876 NULL, 0, -1, -1, NULL, set_init_arg);
97ce2c88f9ad42e Jeremy Fitzhardinge 2011-10-12 877
83b519e8b9572c3 Pekka Enberg 2009-06-10 878 /*
83b519e8b9572c3 Pekka Enberg 2009-06-10 879 * These use large bootmem allocations and must precede
83b519e8b9572c3 Pekka Enberg 2009-06-10 880 * kmem_cache_init()
83b519e8b9572c3 Pekka Enberg 2009-06-10 881 */
162a7e7500f9664 Mike Travis 2011-05-24 882 setup_log_buf(0);
83b519e8b9572c3 Pekka Enberg 2009-06-10 883 vfs_caches_init_early();
83b519e8b9572c3 Pekka Enberg 2009-06-10 884 sort_main_extable();
83b519e8b9572c3 Pekka Enberg 2009-06-10 885 trap_init();
444f478f65c7ca4 Pekka Enberg 2009-06-11 886 mm_init();
de03c72cfce5b26 KOSAKI Motohiro 2011-05-24 887
f631718de3ca24a Steven Rostedt (VMware 2017-03-03 888) ftrace_init();
f631718de3ca24a Steven Rostedt (VMware 2017-03-03 889)
e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 890) /* trace_printk can be enabled here */
e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 891) early_trace_init();
e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 892)
^1da177e4c3f415 Linus Torvalds 2005-04-16 893 /*
^1da177e4c3f415 Linus Torvalds 2005-04-16 894 * Set up the scheduler prior starting any interrupts (such as the
^1da177e4c3f415 Linus Torvalds 2005-04-16 895 * timer interrupt). Full topology setup happens at smp_init()
^1da177e4c3f415 Linus Torvalds 2005-04-16 896 * time - but meanwhile we still have a functioning scheduler.
^1da177e4c3f415 Linus Torvalds 2005-04-16 897 */
^1da177e4c3f415 Linus Torvalds 2005-04-16 898 sched_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 899 /*
^1da177e4c3f415 Linus Torvalds 2005-04-16 900 * Disable preemption - early bootup scheduling is extremely
^1da177e4c3f415 Linus Torvalds 2005-04-16 901 * fragile until we cpu_idle() for the first time.
^1da177e4c3f415 Linus Torvalds 2005-04-16 902 */
^1da177e4c3f415 Linus Torvalds 2005-04-16 903 preempt_disable();
dd4d9fecbeba893 Fabian Frederick 2014-08-08 904 if (WARN(!irqs_disabled(),
dd4d9fecbeba893 Fabian Frederick 2014-08-08 905 "Interrupts were enabled *very* early, fixing it\n"))
c4a68306b9c0939 Ard van Breemen 2007-01-05 906 local_irq_disable();
0a835c4f090af2c Matthew Wilcox 2016-12-20 907 radix_tree_init();
3347fa0928210d9 Tejun Heo 2016-09-16 908
7d229c668a114e8 Tal Shorer 2017-11-03 909 /*
7d229c668a114e8 Tal Shorer 2017-11-03 910 * Set up housekeeping before setting up workqueues to allow the unbound
7d229c668a114e8 Tal Shorer 2017-11-03 911 * workqueue to take non-housekeeping into account.
7d229c668a114e8 Tal Shorer 2017-11-03 912 */
7d229c668a114e8 Tal Shorer 2017-11-03 913 housekeeping_init();
7d229c668a114e8 Tal Shorer 2017-11-03 914
3347fa0928210d9 Tejun Heo 2016-09-16 915 /*
3347fa0928210d9 Tejun Heo 2016-09-16 916 * Allow workqueue creation and work item queueing/cancelling
3347fa0928210d9 Tejun Heo 2016-09-16 917 * early. Work item execution depends on kthreads and starts after
3347fa0928210d9 Tejun Heo 2016-09-16 918 * workqueue_init().
3347fa0928210d9 Tejun Heo 2016-09-16 919 */
3347fa0928210d9 Tejun Heo 2016-09-16 920 workqueue_init_early();
3347fa0928210d9 Tejun Heo 2016-09-16 921
^1da177e4c3f415 Linus Torvalds 2005-04-16 922 rcu_init();
5f893b2639b21ff Steven Rostedt (Red Hat 2014-12-12 923)
e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 924) /* Trace events are available after this */
5f893b2639b21ff Steven Rostedt (Red Hat 2014-12-12 925) trace_init();
5f893b2639b21ff Steven Rostedt (Red Hat 2014-12-12 926)
4e37958d1288ce9 Steven Rostedt (VMware 2018-03-26 927) if (initcall_debug)
4e37958d1288ce9 Steven Rostedt (VMware 2018-03-26 928) initcall_debug_enable();
4e37958d1288ce9 Steven Rostedt (VMware 2018-03-26 929)
65f382fd0c8fa48 Frederic Weisbecker 2013-07-11 930 context_tracking_init();
0b8f1efad30bd58 Yinghai Lu 2008-12-05 931 /* init some links before init_ISA_irqs() */
0b8f1efad30bd58 Yinghai Lu 2008-12-05 932 early_irq_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 933 init_IRQ();
ad2b13536ace08d Thomas Gleixner 2013-03-05 934 tick_init();
d6dd50e07c5bec0 Linus Torvalds 2014-10-13 935 rcu_init_nohz();
^1da177e4c3f415 Linus Torvalds 2005-04-16 936 init_timers();
c0a3132963db68f Thomas Gleixner 2006-01-09 937 hrtimers_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 938 softirq_init();
ad596171ed635c5 John Stultz 2006-06-26 939 timekeeping_init();
d55535232c3dbde Kees Cook 2019-04-19 940
d55535232c3dbde Kees Cook 2019-04-19 941 /*
d55535232c3dbde Kees Cook 2019-04-19 942 * For best initial stack canary entropy, prepare it after:
d55535232c3dbde Kees Cook 2019-04-19 943 * - setup_arch() for any UEFI RNG entropy and boot cmdline access
d55535232c3dbde Kees Cook 2019-04-19 944 * - timekeeping_init() for ktime entropy used in rand_initialize()
d55535232c3dbde Kees Cook 2019-04-19 945 * - rand_initialize() to get any arch-specific entropy like RDRAND
d55535232c3dbde Kees Cook 2019-04-19 946 * - add_latent_entropy() to get any latent entropy
d55535232c3dbde Kees Cook 2019-04-19 947 * - adding command line entropy
d55535232c3dbde Kees Cook 2019-04-19 948 */
d55535232c3dbde Kees Cook 2019-04-19 949 rand_initialize();
d55535232c3dbde Kees Cook 2019-04-19 950 add_latent_entropy();
d55535232c3dbde Kees Cook 2019-04-19 951 add_device_randomness(command_line, strlen(command_line));
d55535232c3dbde Kees Cook 2019-04-19 952 boot_init_stack_canary();
d55535232c3dbde Kees Cook 2019-04-19 953
88fecaa27f398d9 John Stultz 2006-07-03 954 time_init();
9e6302056f8029f Stephane Eranian 2013-04-03 955 perf_event_init();
93e028148fce0be Heiko Carstens 2006-07-03 956 profile_init();
d8ad7d1123a960c Takao Indoh 2011-03-29 957 call_function_init();
f91eb62f71b31e6 Steven Rostedt 2013-04-29 958 WARN(!irqs_disabled(), "Interrupts were enabled early\n");
c3bc8fd637a9623 Joel Fernandes (Google 2018-07-30 959)
2ce802f62ba32a7 Tejun Heo 2011-01-20 960 early_boot_irqs_disabled = false;
93e028148fce0be Heiko Carstens 2006-07-03 961 local_irq_enable();
dcce284a259373f Benjamin Herrenschmidt 2009-06-18 962
7e85ee0c1d15ca5 Pekka Enberg 2009-06-12 963 kmem_cache_init_late();
^1da177e4c3f415 Linus Torvalds 2005-04-16 964
^1da177e4c3f415 Linus Torvalds 2005-04-16 965 /*
^1da177e4c3f415 Linus Torvalds 2005-04-16 966 * HACK ALERT! This is early. We're enabling the console before
^1da177e4c3f415 Linus Torvalds 2005-04-16 967 * we've done PCI setups etc, and console_init() must be aware of
^1da177e4c3f415 Linus Torvalds 2005-04-16 968 * this. But we do want output early, in case something goes wrong.
^1da177e4c3f415 Linus Torvalds 2005-04-16 969 */
^1da177e4c3f415 Linus Torvalds 2005-04-16 970 console_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 971 if (panic_later)
499a4584d7f817d Tetsuo Handa 2014-01-23 972 panic("Too many boot %s vars at `%s'", panic_later,
499a4584d7f817d Tetsuo Handa 2014-01-23 973 panic_param);
fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 974
c3bc8fd637a9623 Joel Fernandes (Google 2018-07-30 975) lockdep_init();
fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 976
9a11b49a805665e Ingo Molnar 2006-07-03 977 /*
9a11b49a805665e Ingo Molnar 2006-07-03 978 * Need to run this when irqs are enabled, because it wants
9a11b49a805665e Ingo Molnar 2006-07-03 979 * to self-test [hard/soft]-irqs on/off lock inversion bugs
9a11b49a805665e Ingo Molnar 2006-07-03 980 * too:
9a11b49a805665e Ingo Molnar 2006-07-03 981 */
9a11b49a805665e Ingo Molnar 2006-07-03 982 locking_selftest();
9a11b49a805665e Ingo Molnar 2006-07-03 983
c7753208a94c73d Tom Lendacky 2017-07-17 984 /*
c7753208a94c73d Tom Lendacky 2017-07-17 985 * This needs to be called before any devices perform DMA
c7753208a94c73d Tom Lendacky 2017-07-17 986 * operations that might use the SWIOTLB bounce buffers. It will
c7753208a94c73d Tom Lendacky 2017-07-17 987 * mark the bounce buffers as decrypted so that their usage will
c7753208a94c73d Tom Lendacky 2017-07-17 988 * not cause "plain-text" data to be decrypted when accessed.
c7753208a94c73d Tom Lendacky 2017-07-17 989 */
c7753208a94c73d Tom Lendacky 2017-07-17 990 mem_encrypt_init();
c7753208a94c73d Tom Lendacky 2017-07-17 991
^1da177e4c3f415 Linus Torvalds 2005-04-16 992 #ifdef CONFIG_BLK_DEV_INITRD
^1da177e4c3f415 Linus Torvalds 2005-04-16 993 if (initrd_start && !initrd_below_start_ok &&
bd673c7c3b1681d Geert Uytterhoeven 2008-07-29 994 page_to_pfn(virt_to_page((void *)initrd_start)) < min_low_pfn) {
ea676e846a8171b Andrew Morton 2013-04-29 995 pr_crit("initrd overwritten (0x%08lx < 0x%08lx) - disabling it.\n",
bd673c7c3b1681d Geert Uytterhoeven 2008-07-29 996 page_to_pfn(virt_to_page((void *)initrd_start)),
bd673c7c3b1681d Geert Uytterhoeven 2008-07-29 997 min_low_pfn);
^1da177e4c3f415 Linus Torvalds 2005-04-16 998 initrd_start = 0;
^1da177e4c3f415 Linus Torvalds 2005-04-16 999 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 1000 #endif
e7c8d5c9955a4d2 Christoph Lameter 2005-06-21 1001 setup_per_cpu_pageset();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1002 numa_policy_init();
9c71206d060d4e8 Dou Liyang 2017-09-13 1003 acpi_early_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1004 if (late_time_init)
^1da177e4c3f415 Linus Torvalds 2005-04-16 1005 late_time_init();
857baa87b6422bc Pavel Tatashin 2018-07-19 1006 sched_clock_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1007 calibrate_delay();
95846ecf9dac508 Gargi Sharma 2017-11-17 1008 pid_idr_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1009 anon_vma_init();
11520e5e7c1855f Linus Torvalds 2012-12-15 1010 #ifdef CONFIG_X86
83e68189745ad93 Matt Fleming 2012-11-14 1011 if (efi_enabled(EFI_RUNTIME_SERVICES))
11520e5e7c1855f Linus Torvalds 2012-12-15 @1012 efi_enter_virtual_mode();
11520e5e7c1855f Linus Torvalds 2012-12-15 1013 #endif
b235beea9e996a4 Linus Torvalds 2016-06-24 1014 thread_stack_cache_init();
d84f4f992cbd76e David Howells 2008-11-14 1015 cred_init();
ff691f6e03815dc Heinrich Schuchardt 2015-04-16 1016 fork_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1017 proc_caches_init();
3ea056c50476f87 Alexey Dobriyan 2018-04-10 1018 uts_ns_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1019 buffer_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1020 key_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1021 security_init();
0b4b3827db386ec Jason Wessel 2010-05-20 1022 dbg_late_init();
4248b0da460839e Mel Gorman 2015-08-06 1023 vfs_caches_init();
62906027091f1d0 Nicholas Piggin 2016-12-25 1024 pagecache_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1025 signals_init();
0965232035cfa59 Alexey Dobriyan 2018-04-10 1026 seq_file_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1027 proc_root_init();
e149ed2b805fefd Al Viro 2014-11-01 1028 nsfs_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1029 cpuset_init();
695df2132cfe378 Zefan Li 2015-03-04 1030 cgroup_init();
c757249af152c59 Shailabh Nagar 2006-07-14 1031 taskstats_init_early();
ca74e92b4698276 Shailabh Nagar 2006-07-14 1032 delayacct_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1033
4fc19708b165c1c Nadav Amit 2019-04-26 1034 poking_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1035 check_bugs();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1036
b064a8fa77dfead Rafael J. Wysocki 2015-06-10 1037 acpi_subsystem_init();
e7ff3a47630d951 Thomas Gleixner 2016-12-09 1038 arch_post_acpi_subsys_init();
6ae6996a466e14b Feng Tang 2009-08-14 1039 sfi_init_late();
dfd402a4c4baae4 Marco Elver 2019-11-14 1040 kcsan_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1041
^1da177e4c3f415 Linus Torvalds 2005-04-16 1042 /* Do the rest non-__init'ed, we're now alive */
53c99bd665a2649 Martin Schwidefsky 2018-08-31 1043 arch_call_rest_init();
a9a3ed1eff3601b Borislav Petkov 2020-04-22 1044
a9a3ed1eff3601b Borislav Petkov 2020-04-22 1045 prevent_tail_call_optimization();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1046 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 1047
:::::: The code at line 1012 was first introduced by commit
:::::: 11520e5e7c1855fc3bf202bb3be35a39d9efa034 Revert "x86-64/efi: Use EFI to deal with platform wall clock (again)"
:::::: TO: Linus Torvalds <torvalds@linux-foundation.org>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 31731 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* [hnaz-linux-mm:master 168/421] init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
@ 2020-08-01 22:25 ` kernel test robot
0 siblings, 0 replies; 15+ messages in thread
From: kernel test robot @ 2020-08-01 22:25 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 19796 bytes --]
tree: https://github.com/hnaz/linux-mm master
head: 2932a9e66c580f3c8d95ec27716d437198fb4c94
commit: 7c0265f304de3c3acd02d0015b56a076357bcce3 [168/421] kasan, arm64: don't instrument functions that enable kasan
config: x86_64-randconfig-r036-20200802 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce (this is a W=1 build):
git checkout 7c0265f304de3c3acd02d0015b56a076357bcce3
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
ld: init/main.o: in function `start_kernel':
>> init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
vim +1012 init/main.c
53c99bd665a2649 Martin Schwidefsky 2018-08-31 829
7c0265f304de3c3 Andrey Konovalov 2020-08-01 830 asmlinkage __visible __no_sanitize_address void __init start_kernel(void)
^1da177e4c3f415 Linus Torvalds 2005-04-16 831 {
dd4d9fecbeba893 Fabian Frederick 2014-08-08 832 char *command_line;
dd4d9fecbeba893 Fabian Frederick 2014-08-08 833 char *after_dashes;
033ab7f8e5c655f Andrew Morton 2006-06-30 834
d4311ff1a8da48d Aaron Tomlin 2014-09-12 835 set_task_stack_end_magic(&init_task);
73839c5b2eacc15 Ming Lei 2011-11-17 836 smp_setup_processor_id();
3ac7fe5a4aab409 Thomas Gleixner 2008-04-30 837 debug_objects_early_init();
420594296838fdc Ingo Molnar 2008-02-14 838
ddbcc7e8e50aefe Paul Menage 2007-10-18 839 cgroup_init_early();
fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 840
fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 841 local_irq_disable();
2ce802f62ba32a7 Tejun Heo 2011-01-20 842 early_boot_irqs_disabled = true;
fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 843
^1da177e4c3f415 Linus Torvalds 2005-04-16 844 /*
^1da177e4c3f415 Linus Torvalds 2005-04-16 845 * Interrupts are still disabled. Do necessary setups, then
1b3b3b49b996140 Viresh Kumar 2017-03-23 846 * enable them.
^1da177e4c3f415 Linus Torvalds 2005-04-16 847 */
44fd22992cb76dc Stas Sergeev 2006-03-23 848 boot_cpu_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 849 page_address_init();
ea676e846a8171b Andrew Morton 2013-04-29 850 pr_notice("%s", linux_banner);
e6b1db98cf4d54d Matthew Garrett 2019-08-19 851 early_security_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 852 setup_arch(&command_line);
7495e0926fdf302 Steven Rostedt (VMware 2020-02-04 853) setup_boot_config(command_line);
30d7e0d466b3ac0 Alon Bar-Lev 2007-02-12 854 setup_command_line(command_line);
e0982e90cd1ecf5 Mike Travis 2008-03-26 855 setup_nr_cpu_ids();
d6647bdf98a0de1 Tejun Heo 2009-07-21 856 setup_per_cpu_areas();
44fd22992cb76dc Stas Sergeev 2006-03-23 857 smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
b5b1404d0815894 Linus Torvalds 2018-08-12 858 boot_cpu_hotplug_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 859
72675e131eb418c Michal Hocko 2017-09-06 860 build_all_zonelists(NULL);
83b519e8b9572c3 Pekka Enberg 2009-06-10 861 page_alloc_init();
83b519e8b9572c3 Pekka Enberg 2009-06-10 862
51887d03aca101a Masami Hiramatsu 2020-01-11 863 pr_notice("Kernel command line: %s\n", saved_command_line);
6041186a32585fc Dan Williams 2019-04-18 864 /* parameters may set static keys */
6041186a32585fc Dan Williams 2019-04-18 865 jump_label_init();
83b519e8b9572c3 Pekka Enberg 2009-06-10 866 parse_early_param();
51e158c12aca3c9 Rusty Russell 2014-04-28 867 after_dashes = parse_args("Booting kernel",
51e158c12aca3c9 Rusty Russell 2014-04-28 868 static_command_line, __start___param,
83b519e8b9572c3 Pekka Enberg 2009-06-10 869 __stop___param - __start___param,
ecc8617053e0a97 Luis R. Rodriguez 2015-03-30 870 -1, -1, NULL, &unknown_bootoption);
3438cf549d2f3ee Daniel Thompson 2014-11-11 871 if (!IS_ERR_OR_NULL(after_dashes))
51e158c12aca3c9 Rusty Russell 2014-04-28 872 parse_args("Setting init args", after_dashes, NULL, 0, -1, -1,
ecc8617053e0a97 Luis R. Rodriguez 2015-03-30 873 NULL, set_init_arg);
1319916209ce8f5 Masami Hiramatsu 2020-01-11 874 if (extra_init_args)
1319916209ce8f5 Masami Hiramatsu 2020-01-11 875 parse_args("Setting extra init args", extra_init_args,
1319916209ce8f5 Masami Hiramatsu 2020-01-11 876 NULL, 0, -1, -1, NULL, set_init_arg);
97ce2c88f9ad42e Jeremy Fitzhardinge 2011-10-12 877
83b519e8b9572c3 Pekka Enberg 2009-06-10 878 /*
83b519e8b9572c3 Pekka Enberg 2009-06-10 879 * These use large bootmem allocations and must precede
83b519e8b9572c3 Pekka Enberg 2009-06-10 880 * kmem_cache_init()
83b519e8b9572c3 Pekka Enberg 2009-06-10 881 */
162a7e7500f9664 Mike Travis 2011-05-24 882 setup_log_buf(0);
83b519e8b9572c3 Pekka Enberg 2009-06-10 883 vfs_caches_init_early();
83b519e8b9572c3 Pekka Enberg 2009-06-10 884 sort_main_extable();
83b519e8b9572c3 Pekka Enberg 2009-06-10 885 trap_init();
444f478f65c7ca4 Pekka Enberg 2009-06-11 886 mm_init();
de03c72cfce5b26 KOSAKI Motohiro 2011-05-24 887
f631718de3ca24a Steven Rostedt (VMware 2017-03-03 888) ftrace_init();
f631718de3ca24a Steven Rostedt (VMware 2017-03-03 889)
e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 890) /* trace_printk can be enabled here */
e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 891) early_trace_init();
e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 892)
^1da177e4c3f415 Linus Torvalds 2005-04-16 893 /*
^1da177e4c3f415 Linus Torvalds 2005-04-16 894 * Set up the scheduler prior starting any interrupts (such as the
^1da177e4c3f415 Linus Torvalds 2005-04-16 895 * timer interrupt). Full topology setup happens at smp_init()
^1da177e4c3f415 Linus Torvalds 2005-04-16 896 * time - but meanwhile we still have a functioning scheduler.
^1da177e4c3f415 Linus Torvalds 2005-04-16 897 */
^1da177e4c3f415 Linus Torvalds 2005-04-16 898 sched_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 899 /*
^1da177e4c3f415 Linus Torvalds 2005-04-16 900 * Disable preemption - early bootup scheduling is extremely
^1da177e4c3f415 Linus Torvalds 2005-04-16 901 * fragile until we cpu_idle() for the first time.
^1da177e4c3f415 Linus Torvalds 2005-04-16 902 */
^1da177e4c3f415 Linus Torvalds 2005-04-16 903 preempt_disable();
dd4d9fecbeba893 Fabian Frederick 2014-08-08 904 if (WARN(!irqs_disabled(),
dd4d9fecbeba893 Fabian Frederick 2014-08-08 905 "Interrupts were enabled *very* early, fixing it\n"))
c4a68306b9c0939 Ard van Breemen 2007-01-05 906 local_irq_disable();
0a835c4f090af2c Matthew Wilcox 2016-12-20 907 radix_tree_init();
3347fa0928210d9 Tejun Heo 2016-09-16 908
7d229c668a114e8 Tal Shorer 2017-11-03 909 /*
7d229c668a114e8 Tal Shorer 2017-11-03 910 * Set up housekeeping before setting up workqueues to allow the unbound
7d229c668a114e8 Tal Shorer 2017-11-03 911 * workqueue to take non-housekeeping into account.
7d229c668a114e8 Tal Shorer 2017-11-03 912 */
7d229c668a114e8 Tal Shorer 2017-11-03 913 housekeeping_init();
7d229c668a114e8 Tal Shorer 2017-11-03 914
3347fa0928210d9 Tejun Heo 2016-09-16 915 /*
3347fa0928210d9 Tejun Heo 2016-09-16 916 * Allow workqueue creation and work item queueing/cancelling
3347fa0928210d9 Tejun Heo 2016-09-16 917 * early. Work item execution depends on kthreads and starts after
3347fa0928210d9 Tejun Heo 2016-09-16 918 * workqueue_init().
3347fa0928210d9 Tejun Heo 2016-09-16 919 */
3347fa0928210d9 Tejun Heo 2016-09-16 920 workqueue_init_early();
3347fa0928210d9 Tejun Heo 2016-09-16 921
^1da177e4c3f415 Linus Torvalds 2005-04-16 922 rcu_init();
5f893b2639b21ff Steven Rostedt (Red Hat 2014-12-12 923)
e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 924) /* Trace events are available after this */
5f893b2639b21ff Steven Rostedt (Red Hat 2014-12-12 925) trace_init();
5f893b2639b21ff Steven Rostedt (Red Hat 2014-12-12 926)
4e37958d1288ce9 Steven Rostedt (VMware 2018-03-26 927) if (initcall_debug)
4e37958d1288ce9 Steven Rostedt (VMware 2018-03-26 928) initcall_debug_enable();
4e37958d1288ce9 Steven Rostedt (VMware 2018-03-26 929)
65f382fd0c8fa48 Frederic Weisbecker 2013-07-11 930 context_tracking_init();
0b8f1efad30bd58 Yinghai Lu 2008-12-05 931 /* init some links before init_ISA_irqs() */
0b8f1efad30bd58 Yinghai Lu 2008-12-05 932 early_irq_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 933 init_IRQ();
ad2b13536ace08d Thomas Gleixner 2013-03-05 934 tick_init();
d6dd50e07c5bec0 Linus Torvalds 2014-10-13 935 rcu_init_nohz();
^1da177e4c3f415 Linus Torvalds 2005-04-16 936 init_timers();
c0a3132963db68f Thomas Gleixner 2006-01-09 937 hrtimers_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 938 softirq_init();
ad596171ed635c5 John Stultz 2006-06-26 939 timekeeping_init();
d55535232c3dbde Kees Cook 2019-04-19 940
d55535232c3dbde Kees Cook 2019-04-19 941 /*
d55535232c3dbde Kees Cook 2019-04-19 942 * For best initial stack canary entropy, prepare it after:
d55535232c3dbde Kees Cook 2019-04-19 943 * - setup_arch() for any UEFI RNG entropy and boot cmdline access
d55535232c3dbde Kees Cook 2019-04-19 944 * - timekeeping_init() for ktime entropy used in rand_initialize()
d55535232c3dbde Kees Cook 2019-04-19 945 * - rand_initialize() to get any arch-specific entropy like RDRAND
d55535232c3dbde Kees Cook 2019-04-19 946 * - add_latent_entropy() to get any latent entropy
d55535232c3dbde Kees Cook 2019-04-19 947 * - adding command line entropy
d55535232c3dbde Kees Cook 2019-04-19 948 */
d55535232c3dbde Kees Cook 2019-04-19 949 rand_initialize();
d55535232c3dbde Kees Cook 2019-04-19 950 add_latent_entropy();
d55535232c3dbde Kees Cook 2019-04-19 951 add_device_randomness(command_line, strlen(command_line));
d55535232c3dbde Kees Cook 2019-04-19 952 boot_init_stack_canary();
d55535232c3dbde Kees Cook 2019-04-19 953
88fecaa27f398d9 John Stultz 2006-07-03 954 time_init();
9e6302056f8029f Stephane Eranian 2013-04-03 955 perf_event_init();
93e028148fce0be Heiko Carstens 2006-07-03 956 profile_init();
d8ad7d1123a960c Takao Indoh 2011-03-29 957 call_function_init();
f91eb62f71b31e6 Steven Rostedt 2013-04-29 958 WARN(!irqs_disabled(), "Interrupts were enabled early\n");
c3bc8fd637a9623 Joel Fernandes (Google 2018-07-30 959)
2ce802f62ba32a7 Tejun Heo 2011-01-20 960 early_boot_irqs_disabled = false;
93e028148fce0be Heiko Carstens 2006-07-03 961 local_irq_enable();
dcce284a259373f Benjamin Herrenschmidt 2009-06-18 962
7e85ee0c1d15ca5 Pekka Enberg 2009-06-12 963 kmem_cache_init_late();
^1da177e4c3f415 Linus Torvalds 2005-04-16 964
^1da177e4c3f415 Linus Torvalds 2005-04-16 965 /*
^1da177e4c3f415 Linus Torvalds 2005-04-16 966 * HACK ALERT! This is early. We're enabling the console before
^1da177e4c3f415 Linus Torvalds 2005-04-16 967 * we've done PCI setups etc, and console_init() must be aware of
^1da177e4c3f415 Linus Torvalds 2005-04-16 968 * this. But we do want output early, in case something goes wrong.
^1da177e4c3f415 Linus Torvalds 2005-04-16 969 */
^1da177e4c3f415 Linus Torvalds 2005-04-16 970 console_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 971 if (panic_later)
499a4584d7f817d Tetsuo Handa 2014-01-23 972 panic("Too many boot %s vars at `%s'", panic_later,
499a4584d7f817d Tetsuo Handa 2014-01-23 973 panic_param);
fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 974
c3bc8fd637a9623 Joel Fernandes (Google 2018-07-30 975) lockdep_init();
fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 976
9a11b49a805665e Ingo Molnar 2006-07-03 977 /*
9a11b49a805665e Ingo Molnar 2006-07-03 978 * Need to run this when irqs are enabled, because it wants
9a11b49a805665e Ingo Molnar 2006-07-03 979 * to self-test [hard/soft]-irqs on/off lock inversion bugs
9a11b49a805665e Ingo Molnar 2006-07-03 980 * too:
9a11b49a805665e Ingo Molnar 2006-07-03 981 */
9a11b49a805665e Ingo Molnar 2006-07-03 982 locking_selftest();
9a11b49a805665e Ingo Molnar 2006-07-03 983
c7753208a94c73d Tom Lendacky 2017-07-17 984 /*
c7753208a94c73d Tom Lendacky 2017-07-17 985 * This needs to be called before any devices perform DMA
c7753208a94c73d Tom Lendacky 2017-07-17 986 * operations that might use the SWIOTLB bounce buffers. It will
c7753208a94c73d Tom Lendacky 2017-07-17 987 * mark the bounce buffers as decrypted so that their usage will
c7753208a94c73d Tom Lendacky 2017-07-17 988 * not cause "plain-text" data to be decrypted when accessed.
c7753208a94c73d Tom Lendacky 2017-07-17 989 */
c7753208a94c73d Tom Lendacky 2017-07-17 990 mem_encrypt_init();
c7753208a94c73d Tom Lendacky 2017-07-17 991
^1da177e4c3f415 Linus Torvalds 2005-04-16 992 #ifdef CONFIG_BLK_DEV_INITRD
^1da177e4c3f415 Linus Torvalds 2005-04-16 993 if (initrd_start && !initrd_below_start_ok &&
bd673c7c3b1681d Geert Uytterhoeven 2008-07-29 994 page_to_pfn(virt_to_page((void *)initrd_start)) < min_low_pfn) {
ea676e846a8171b Andrew Morton 2013-04-29 995 pr_crit("initrd overwritten (0x%08lx < 0x%08lx) - disabling it.\n",
bd673c7c3b1681d Geert Uytterhoeven 2008-07-29 996 page_to_pfn(virt_to_page((void *)initrd_start)),
bd673c7c3b1681d Geert Uytterhoeven 2008-07-29 997 min_low_pfn);
^1da177e4c3f415 Linus Torvalds 2005-04-16 998 initrd_start = 0;
^1da177e4c3f415 Linus Torvalds 2005-04-16 999 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 1000 #endif
e7c8d5c9955a4d2 Christoph Lameter 2005-06-21 1001 setup_per_cpu_pageset();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1002 numa_policy_init();
9c71206d060d4e8 Dou Liyang 2017-09-13 1003 acpi_early_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1004 if (late_time_init)
^1da177e4c3f415 Linus Torvalds 2005-04-16 1005 late_time_init();
857baa87b6422bc Pavel Tatashin 2018-07-19 1006 sched_clock_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1007 calibrate_delay();
95846ecf9dac508 Gargi Sharma 2017-11-17 1008 pid_idr_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1009 anon_vma_init();
11520e5e7c1855f Linus Torvalds 2012-12-15 1010 #ifdef CONFIG_X86
83e68189745ad93 Matt Fleming 2012-11-14 1011 if (efi_enabled(EFI_RUNTIME_SERVICES))
11520e5e7c1855f Linus Torvalds 2012-12-15 @1012 efi_enter_virtual_mode();
11520e5e7c1855f Linus Torvalds 2012-12-15 1013 #endif
b235beea9e996a4 Linus Torvalds 2016-06-24 1014 thread_stack_cache_init();
d84f4f992cbd76e David Howells 2008-11-14 1015 cred_init();
ff691f6e03815dc Heinrich Schuchardt 2015-04-16 1016 fork_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1017 proc_caches_init();
3ea056c50476f87 Alexey Dobriyan 2018-04-10 1018 uts_ns_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1019 buffer_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1020 key_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1021 security_init();
0b4b3827db386ec Jason Wessel 2010-05-20 1022 dbg_late_init();
4248b0da460839e Mel Gorman 2015-08-06 1023 vfs_caches_init();
62906027091f1d0 Nicholas Piggin 2016-12-25 1024 pagecache_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1025 signals_init();
0965232035cfa59 Alexey Dobriyan 2018-04-10 1026 seq_file_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1027 proc_root_init();
e149ed2b805fefd Al Viro 2014-11-01 1028 nsfs_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1029 cpuset_init();
695df2132cfe378 Zefan Li 2015-03-04 1030 cgroup_init();
c757249af152c59 Shailabh Nagar 2006-07-14 1031 taskstats_init_early();
ca74e92b4698276 Shailabh Nagar 2006-07-14 1032 delayacct_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1033
4fc19708b165c1c Nadav Amit 2019-04-26 1034 poking_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1035 check_bugs();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1036
b064a8fa77dfead Rafael J. Wysocki 2015-06-10 1037 acpi_subsystem_init();
e7ff3a47630d951 Thomas Gleixner 2016-12-09 1038 arch_post_acpi_subsys_init();
6ae6996a466e14b Feng Tang 2009-08-14 1039 sfi_init_late();
dfd402a4c4baae4 Marco Elver 2019-11-14 1040 kcsan_init();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1041
^1da177e4c3f415 Linus Torvalds 2005-04-16 1042 /* Do the rest non-__init'ed, we're now alive */
53c99bd665a2649 Martin Schwidefsky 2018-08-31 1043 arch_call_rest_init();
a9a3ed1eff3601b Borislav Petkov 2020-04-22 1044
a9a3ed1eff3601b Borislav Petkov 2020-04-22 1045 prevent_tail_call_optimization();
^1da177e4c3f415 Linus Torvalds 2005-04-16 1046 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 1047
:::::: The code@line 1012 was first introduced by commit
:::::: 11520e5e7c1855fc3bf202bb3be35a39d9efa034 Revert "x86-64/efi: Use EFI to deal with platform wall clock (again)"
:::::: TO: Linus Torvalds <torvalds@linux-foundation.org>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 31731 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [hnaz-linux-mm:master 168/421] init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
2020-08-01 22:25 ` kernel test robot
(?)
@ 2020-08-03 15:37 ` Andrey Konovalov
-1 siblings, 0 replies; 15+ messages in thread
From: Andrey Konovalov @ 2020-08-03 15:37 UTC (permalink / raw)
To: Ard Biesheuvel, linux-efi, Dmitry Vyukov, Alexander Potapenko,
kasan-dev, Andrey Ryabinin
Cc: kbuild-all, Johannes Weiner, Andrew Morton,
Linux Memory Management List, kernel test robot
On Sun, Aug 2, 2020 at 12:25 AM kernel test robot <lkp@intel.com> wrote:
>
> tree: https://github.com/hnaz/linux-mm master
> head: 2932a9e66c580f3c8d95ec27716d437198fb4c94
> commit: 7c0265f304de3c3acd02d0015b56a076357bcce3 [168/421] kasan, arm64: don't instrument functions that enable kasan
> config: x86_64-randconfig-r036-20200802 (attached as .config)
> compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
> reproduce (this is a W=1 build):
> git checkout 7c0265f304de3c3acd02d0015b56a076357bcce3
> # save the attached .config to linux build tree
> make W=1 ARCH=x86_64
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>):
>
> ld: init/main.o: in function `start_kernel':
> >> init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
Hm, I can reproduce the issue, but I don't understand why it happens.
+EFI and KASAN people, maybe someone has an idea.
This is the guilty patch:
https://github.com/hnaz/linux-mm/commit/7c0265f304de3c3acd02d0015b56a076357bcce3
The issue is only with efi_enter_virtual_mode() AFAIU, not with any of
the other functions.
Thanks!
>
> vim +1012 init/main.c
>
> 53c99bd665a2649 Martin Schwidefsky 2018-08-31 829
> 7c0265f304de3c3 Andrey Konovalov 2020-08-01 830 asmlinkage __visible __no_sanitize_address void __init start_kernel(void)
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 831 {
> dd4d9fecbeba893 Fabian Frederick 2014-08-08 832 char *command_line;
> dd4d9fecbeba893 Fabian Frederick 2014-08-08 833 char *after_dashes;
> 033ab7f8e5c655f Andrew Morton 2006-06-30 834
> d4311ff1a8da48d Aaron Tomlin 2014-09-12 835 set_task_stack_end_magic(&init_task);
> 73839c5b2eacc15 Ming Lei 2011-11-17 836 smp_setup_processor_id();
> 3ac7fe5a4aab409 Thomas Gleixner 2008-04-30 837 debug_objects_early_init();
> 420594296838fdc Ingo Molnar 2008-02-14 838
> ddbcc7e8e50aefe Paul Menage 2007-10-18 839 cgroup_init_early();
> fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 840
> fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 841 local_irq_disable();
> 2ce802f62ba32a7 Tejun Heo 2011-01-20 842 early_boot_irqs_disabled = true;
> fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 843
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 844 /*
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 845 * Interrupts are still disabled. Do necessary setups, then
> 1b3b3b49b996140 Viresh Kumar 2017-03-23 846 * enable them.
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 847 */
> 44fd22992cb76dc Stas Sergeev 2006-03-23 848 boot_cpu_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 849 page_address_init();
> ea676e846a8171b Andrew Morton 2013-04-29 850 pr_notice("%s", linux_banner);
> e6b1db98cf4d54d Matthew Garrett 2019-08-19 851 early_security_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 852 setup_arch(&command_line);
> 7495e0926fdf302 Steven Rostedt (VMware 2020-02-04 853) setup_boot_config(command_line);
> 30d7e0d466b3ac0 Alon Bar-Lev 2007-02-12 854 setup_command_line(command_line);
> e0982e90cd1ecf5 Mike Travis 2008-03-26 855 setup_nr_cpu_ids();
> d6647bdf98a0de1 Tejun Heo 2009-07-21 856 setup_per_cpu_areas();
> 44fd22992cb76dc Stas Sergeev 2006-03-23 857 smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
> b5b1404d0815894 Linus Torvalds 2018-08-12 858 boot_cpu_hotplug_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 859
> 72675e131eb418c Michal Hocko 2017-09-06 860 build_all_zonelists(NULL);
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 861 page_alloc_init();
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 862
> 51887d03aca101a Masami Hiramatsu 2020-01-11 863 pr_notice("Kernel command line: %s\n", saved_command_line);
> 6041186a32585fc Dan Williams 2019-04-18 864 /* parameters may set static keys */
> 6041186a32585fc Dan Williams 2019-04-18 865 jump_label_init();
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 866 parse_early_param();
> 51e158c12aca3c9 Rusty Russell 2014-04-28 867 after_dashes = parse_args("Booting kernel",
> 51e158c12aca3c9 Rusty Russell 2014-04-28 868 static_command_line, __start___param,
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 869 __stop___param - __start___param,
> ecc8617053e0a97 Luis R. Rodriguez 2015-03-30 870 -1, -1, NULL, &unknown_bootoption);
> 3438cf549d2f3ee Daniel Thompson 2014-11-11 871 if (!IS_ERR_OR_NULL(after_dashes))
> 51e158c12aca3c9 Rusty Russell 2014-04-28 872 parse_args("Setting init args", after_dashes, NULL, 0, -1, -1,
> ecc8617053e0a97 Luis R. Rodriguez 2015-03-30 873 NULL, set_init_arg);
> 1319916209ce8f5 Masami Hiramatsu 2020-01-11 874 if (extra_init_args)
> 1319916209ce8f5 Masami Hiramatsu 2020-01-11 875 parse_args("Setting extra init args", extra_init_args,
> 1319916209ce8f5 Masami Hiramatsu 2020-01-11 876 NULL, 0, -1, -1, NULL, set_init_arg);
> 97ce2c88f9ad42e Jeremy Fitzhardinge 2011-10-12 877
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 878 /*
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 879 * These use large bootmem allocations and must precede
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 880 * kmem_cache_init()
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 881 */
> 162a7e7500f9664 Mike Travis 2011-05-24 882 setup_log_buf(0);
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 883 vfs_caches_init_early();
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 884 sort_main_extable();
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 885 trap_init();
> 444f478f65c7ca4 Pekka Enberg 2009-06-11 886 mm_init();
> de03c72cfce5b26 KOSAKI Motohiro 2011-05-24 887
> f631718de3ca24a Steven Rostedt (VMware 2017-03-03 888) ftrace_init();
> f631718de3ca24a Steven Rostedt (VMware 2017-03-03 889)
> e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 890) /* trace_printk can be enabled here */
> e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 891) early_trace_init();
> e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 892)
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 893 /*
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 894 * Set up the scheduler prior starting any interrupts (such as the
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 895 * timer interrupt). Full topology setup happens at smp_init()
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 896 * time - but meanwhile we still have a functioning scheduler.
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 897 */
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 898 sched_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 899 /*
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 900 * Disable preemption - early bootup scheduling is extremely
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 901 * fragile until we cpu_idle() for the first time.
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 902 */
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 903 preempt_disable();
> dd4d9fecbeba893 Fabian Frederick 2014-08-08 904 if (WARN(!irqs_disabled(),
> dd4d9fecbeba893 Fabian Frederick 2014-08-08 905 "Interrupts were enabled *very* early, fixing it\n"))
> c4a68306b9c0939 Ard van Breemen 2007-01-05 906 local_irq_disable();
> 0a835c4f090af2c Matthew Wilcox 2016-12-20 907 radix_tree_init();
> 3347fa0928210d9 Tejun Heo 2016-09-16 908
> 7d229c668a114e8 Tal Shorer 2017-11-03 909 /*
> 7d229c668a114e8 Tal Shorer 2017-11-03 910 * Set up housekeeping before setting up workqueues to allow the unbound
> 7d229c668a114e8 Tal Shorer 2017-11-03 911 * workqueue to take non-housekeeping into account.
> 7d229c668a114e8 Tal Shorer 2017-11-03 912 */
> 7d229c668a114e8 Tal Shorer 2017-11-03 913 housekeeping_init();
> 7d229c668a114e8 Tal Shorer 2017-11-03 914
> 3347fa0928210d9 Tejun Heo 2016-09-16 915 /*
> 3347fa0928210d9 Tejun Heo 2016-09-16 916 * Allow workqueue creation and work item queueing/cancelling
> 3347fa0928210d9 Tejun Heo 2016-09-16 917 * early. Work item execution depends on kthreads and starts after
> 3347fa0928210d9 Tejun Heo 2016-09-16 918 * workqueue_init().
> 3347fa0928210d9 Tejun Heo 2016-09-16 919 */
> 3347fa0928210d9 Tejun Heo 2016-09-16 920 workqueue_init_early();
> 3347fa0928210d9 Tejun Heo 2016-09-16 921
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 922 rcu_init();
> 5f893b2639b21ff Steven Rostedt (Red Hat 2014-12-12 923)
> e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 924) /* Trace events are available after this */
> 5f893b2639b21ff Steven Rostedt (Red Hat 2014-12-12 925) trace_init();
> 5f893b2639b21ff Steven Rostedt (Red Hat 2014-12-12 926)
> 4e37958d1288ce9 Steven Rostedt (VMware 2018-03-26 927) if (initcall_debug)
> 4e37958d1288ce9 Steven Rostedt (VMware 2018-03-26 928) initcall_debug_enable();
> 4e37958d1288ce9 Steven Rostedt (VMware 2018-03-26 929)
> 65f382fd0c8fa48 Frederic Weisbecker 2013-07-11 930 context_tracking_init();
> 0b8f1efad30bd58 Yinghai Lu 2008-12-05 931 /* init some links before init_ISA_irqs() */
> 0b8f1efad30bd58 Yinghai Lu 2008-12-05 932 early_irq_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 933 init_IRQ();
> ad2b13536ace08d Thomas Gleixner 2013-03-05 934 tick_init();
> d6dd50e07c5bec0 Linus Torvalds 2014-10-13 935 rcu_init_nohz();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 936 init_timers();
> c0a3132963db68f Thomas Gleixner 2006-01-09 937 hrtimers_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 938 softirq_init();
> ad596171ed635c5 John Stultz 2006-06-26 939 timekeeping_init();
> d55535232c3dbde Kees Cook 2019-04-19 940
> d55535232c3dbde Kees Cook 2019-04-19 941 /*
> d55535232c3dbde Kees Cook 2019-04-19 942 * For best initial stack canary entropy, prepare it after:
> d55535232c3dbde Kees Cook 2019-04-19 943 * - setup_arch() for any UEFI RNG entropy and boot cmdline access
> d55535232c3dbde Kees Cook 2019-04-19 944 * - timekeeping_init() for ktime entropy used in rand_initialize()
> d55535232c3dbde Kees Cook 2019-04-19 945 * - rand_initialize() to get any arch-specific entropy like RDRAND
> d55535232c3dbde Kees Cook 2019-04-19 946 * - add_latent_entropy() to get any latent entropy
> d55535232c3dbde Kees Cook 2019-04-19 947 * - adding command line entropy
> d55535232c3dbde Kees Cook 2019-04-19 948 */
> d55535232c3dbde Kees Cook 2019-04-19 949 rand_initialize();
> d55535232c3dbde Kees Cook 2019-04-19 950 add_latent_entropy();
> d55535232c3dbde Kees Cook 2019-04-19 951 add_device_randomness(command_line, strlen(command_line));
> d55535232c3dbde Kees Cook 2019-04-19 952 boot_init_stack_canary();
> d55535232c3dbde Kees Cook 2019-04-19 953
> 88fecaa27f398d9 John Stultz 2006-07-03 954 time_init();
> 9e6302056f8029f Stephane Eranian 2013-04-03 955 perf_event_init();
> 93e028148fce0be Heiko Carstens 2006-07-03 956 profile_init();
> d8ad7d1123a960c Takao Indoh 2011-03-29 957 call_function_init();
> f91eb62f71b31e6 Steven Rostedt 2013-04-29 958 WARN(!irqs_disabled(), "Interrupts were enabled early\n");
> c3bc8fd637a9623 Joel Fernandes (Google 2018-07-30 959)
> 2ce802f62ba32a7 Tejun Heo 2011-01-20 960 early_boot_irqs_disabled = false;
> 93e028148fce0be Heiko Carstens 2006-07-03 961 local_irq_enable();
> dcce284a259373f Benjamin Herrenschmidt 2009-06-18 962
> 7e85ee0c1d15ca5 Pekka Enberg 2009-06-12 963 kmem_cache_init_late();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 964
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 965 /*
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 966 * HACK ALERT! This is early. We're enabling the console before
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 967 * we've done PCI setups etc, and console_init() must be aware of
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 968 * this. But we do want output early, in case something goes wrong.
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 969 */
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 970 console_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 971 if (panic_later)
> 499a4584d7f817d Tetsuo Handa 2014-01-23 972 panic("Too many boot %s vars at `%s'", panic_later,
> 499a4584d7f817d Tetsuo Handa 2014-01-23 973 panic_param);
> fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 974
> c3bc8fd637a9623 Joel Fernandes (Google 2018-07-30 975) lockdep_init();
> fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 976
> 9a11b49a805665e Ingo Molnar 2006-07-03 977 /*
> 9a11b49a805665e Ingo Molnar 2006-07-03 978 * Need to run this when irqs are enabled, because it wants
> 9a11b49a805665e Ingo Molnar 2006-07-03 979 * to self-test [hard/soft]-irqs on/off lock inversion bugs
> 9a11b49a805665e Ingo Molnar 2006-07-03 980 * too:
> 9a11b49a805665e Ingo Molnar 2006-07-03 981 */
> 9a11b49a805665e Ingo Molnar 2006-07-03 982 locking_selftest();
> 9a11b49a805665e Ingo Molnar 2006-07-03 983
> c7753208a94c73d Tom Lendacky 2017-07-17 984 /*
> c7753208a94c73d Tom Lendacky 2017-07-17 985 * This needs to be called before any devices perform DMA
> c7753208a94c73d Tom Lendacky 2017-07-17 986 * operations that might use the SWIOTLB bounce buffers. It will
> c7753208a94c73d Tom Lendacky 2017-07-17 987 * mark the bounce buffers as decrypted so that their usage will
> c7753208a94c73d Tom Lendacky 2017-07-17 988 * not cause "plain-text" data to be decrypted when accessed.
> c7753208a94c73d Tom Lendacky 2017-07-17 989 */
> c7753208a94c73d Tom Lendacky 2017-07-17 990 mem_encrypt_init();
> c7753208a94c73d Tom Lendacky 2017-07-17 991
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 992 #ifdef CONFIG_BLK_DEV_INITRD
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 993 if (initrd_start && !initrd_below_start_ok &&
> bd673c7c3b1681d Geert Uytterhoeven 2008-07-29 994 page_to_pfn(virt_to_page((void *)initrd_start)) < min_low_pfn) {
> ea676e846a8171b Andrew Morton 2013-04-29 995 pr_crit("initrd overwritten (0x%08lx < 0x%08lx) - disabling it.\n",
> bd673c7c3b1681d Geert Uytterhoeven 2008-07-29 996 page_to_pfn(virt_to_page((void *)initrd_start)),
> bd673c7c3b1681d Geert Uytterhoeven 2008-07-29 997 min_low_pfn);
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 998 initrd_start = 0;
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 999 }
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1000 #endif
> e7c8d5c9955a4d2 Christoph Lameter 2005-06-21 1001 setup_per_cpu_pageset();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1002 numa_policy_init();
> 9c71206d060d4e8 Dou Liyang 2017-09-13 1003 acpi_early_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1004 if (late_time_init)
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1005 late_time_init();
> 857baa87b6422bc Pavel Tatashin 2018-07-19 1006 sched_clock_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1007 calibrate_delay();
> 95846ecf9dac508 Gargi Sharma 2017-11-17 1008 pid_idr_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1009 anon_vma_init();
> 11520e5e7c1855f Linus Torvalds 2012-12-15 1010 #ifdef CONFIG_X86
> 83e68189745ad93 Matt Fleming 2012-11-14 1011 if (efi_enabled(EFI_RUNTIME_SERVICES))
> 11520e5e7c1855f Linus Torvalds 2012-12-15 @1012 efi_enter_virtual_mode();
> 11520e5e7c1855f Linus Torvalds 2012-12-15 1013 #endif
> b235beea9e996a4 Linus Torvalds 2016-06-24 1014 thread_stack_cache_init();
> d84f4f992cbd76e David Howells 2008-11-14 1015 cred_init();
> ff691f6e03815dc Heinrich Schuchardt 2015-04-16 1016 fork_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1017 proc_caches_init();
> 3ea056c50476f87 Alexey Dobriyan 2018-04-10 1018 uts_ns_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1019 buffer_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1020 key_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1021 security_init();
> 0b4b3827db386ec Jason Wessel 2010-05-20 1022 dbg_late_init();
> 4248b0da460839e Mel Gorman 2015-08-06 1023 vfs_caches_init();
> 62906027091f1d0 Nicholas Piggin 2016-12-25 1024 pagecache_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1025 signals_init();
> 0965232035cfa59 Alexey Dobriyan 2018-04-10 1026 seq_file_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1027 proc_root_init();
> e149ed2b805fefd Al Viro 2014-11-01 1028 nsfs_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1029 cpuset_init();
> 695df2132cfe378 Zefan Li 2015-03-04 1030 cgroup_init();
> c757249af152c59 Shailabh Nagar 2006-07-14 1031 taskstats_init_early();
> ca74e92b4698276 Shailabh Nagar 2006-07-14 1032 delayacct_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1033
> 4fc19708b165c1c Nadav Amit 2019-04-26 1034 poking_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1035 check_bugs();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1036
> b064a8fa77dfead Rafael J. Wysocki 2015-06-10 1037 acpi_subsystem_init();
> e7ff3a47630d951 Thomas Gleixner 2016-12-09 1038 arch_post_acpi_subsys_init();
> 6ae6996a466e14b Feng Tang 2009-08-14 1039 sfi_init_late();
> dfd402a4c4baae4 Marco Elver 2019-11-14 1040 kcsan_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1041
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1042 /* Do the rest non-__init'ed, we're now alive */
> 53c99bd665a2649 Martin Schwidefsky 2018-08-31 1043 arch_call_rest_init();
> a9a3ed1eff3601b Borislav Petkov 2020-04-22 1044
> a9a3ed1eff3601b Borislav Petkov 2020-04-22 1045 prevent_tail_call_optimization();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1046 }
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1047
>
> :::::: The code at line 1012 was first introduced by commit
> :::::: 11520e5e7c1855fc3bf202bb3be35a39d9efa034 Revert "x86-64/efi: Use EFI to deal with platform wall clock (again)"
>
> :::::: TO: Linus Torvalds <torvalds@linux-foundation.org>
> :::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [hnaz-linux-mm:master 168/421] init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
@ 2020-08-03 15:37 ` Andrey Konovalov
0 siblings, 0 replies; 15+ messages in thread
From: Andrey Konovalov @ 2020-08-03 15:37 UTC (permalink / raw)
To: Ard Biesheuvel, linux-efi, Dmitry Vyukov, Alexander Potapenko,
kasan-dev, Andrey Ryabinin
Cc: kbuild-all, Johannes Weiner, Andrew Morton,
Linux Memory Management List, kernel test robot
On Sun, Aug 2, 2020 at 12:25 AM kernel test robot <lkp@intel.com> wrote:
>
> tree: https://github.com/hnaz/linux-mm master
> head: 2932a9e66c580f3c8d95ec27716d437198fb4c94
> commit: 7c0265f304de3c3acd02d0015b56a076357bcce3 [168/421] kasan, arm64: don't instrument functions that enable kasan
> config: x86_64-randconfig-r036-20200802 (attached as .config)
> compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
> reproduce (this is a W=1 build):
> git checkout 7c0265f304de3c3acd02d0015b56a076357bcce3
> # save the attached .config to linux build tree
> make W=1 ARCH=x86_64
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>):
>
> ld: init/main.o: in function `start_kernel':
> >> init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
Hm, I can reproduce the issue, but I don't understand why it happens.
+EFI and KASAN people, maybe someone has an idea.
This is the guilty patch:
https://github.com/hnaz/linux-mm/commit/7c0265f304de3c3acd02d0015b56a076357bcce3
The issue is only with efi_enter_virtual_mode() AFAIU, not with any of
the other functions.
Thanks!
>
> vim +1012 init/main.c
>
> 53c99bd665a2649 Martin Schwidefsky 2018-08-31 829
> 7c0265f304de3c3 Andrey Konovalov 2020-08-01 830 asmlinkage __visible __no_sanitize_address void __init start_kernel(void)
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 831 {
> dd4d9fecbeba893 Fabian Frederick 2014-08-08 832 char *command_line;
> dd4d9fecbeba893 Fabian Frederick 2014-08-08 833 char *after_dashes;
> 033ab7f8e5c655f Andrew Morton 2006-06-30 834
> d4311ff1a8da48d Aaron Tomlin 2014-09-12 835 set_task_stack_end_magic(&init_task);
> 73839c5b2eacc15 Ming Lei 2011-11-17 836 smp_setup_processor_id();
> 3ac7fe5a4aab409 Thomas Gleixner 2008-04-30 837 debug_objects_early_init();
> 420594296838fdc Ingo Molnar 2008-02-14 838
> ddbcc7e8e50aefe Paul Menage 2007-10-18 839 cgroup_init_early();
> fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 840
> fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 841 local_irq_disable();
> 2ce802f62ba32a7 Tejun Heo 2011-01-20 842 early_boot_irqs_disabled = true;
> fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 843
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 844 /*
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 845 * Interrupts are still disabled. Do necessary setups, then
> 1b3b3b49b996140 Viresh Kumar 2017-03-23 846 * enable them.
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 847 */
> 44fd22992cb76dc Stas Sergeev 2006-03-23 848 boot_cpu_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 849 page_address_init();
> ea676e846a8171b Andrew Morton 2013-04-29 850 pr_notice("%s", linux_banner);
> e6b1db98cf4d54d Matthew Garrett 2019-08-19 851 early_security_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 852 setup_arch(&command_line);
> 7495e0926fdf302 Steven Rostedt (VMware 2020-02-04 853) setup_boot_config(command_line);
> 30d7e0d466b3ac0 Alon Bar-Lev 2007-02-12 854 setup_command_line(command_line);
> e0982e90cd1ecf5 Mike Travis 2008-03-26 855 setup_nr_cpu_ids();
> d6647bdf98a0de1 Tejun Heo 2009-07-21 856 setup_per_cpu_areas();
> 44fd22992cb76dc Stas Sergeev 2006-03-23 857 smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
> b5b1404d0815894 Linus Torvalds 2018-08-12 858 boot_cpu_hotplug_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 859
> 72675e131eb418c Michal Hocko 2017-09-06 860 build_all_zonelists(NULL);
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 861 page_alloc_init();
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 862
> 51887d03aca101a Masami Hiramatsu 2020-01-11 863 pr_notice("Kernel command line: %s\n", saved_command_line);
> 6041186a32585fc Dan Williams 2019-04-18 864 /* parameters may set static keys */
> 6041186a32585fc Dan Williams 2019-04-18 865 jump_label_init();
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 866 parse_early_param();
> 51e158c12aca3c9 Rusty Russell 2014-04-28 867 after_dashes = parse_args("Booting kernel",
> 51e158c12aca3c9 Rusty Russell 2014-04-28 868 static_command_line, __start___param,
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 869 __stop___param - __start___param,
> ecc8617053e0a97 Luis R. Rodriguez 2015-03-30 870 -1, -1, NULL, &unknown_bootoption);
> 3438cf549d2f3ee Daniel Thompson 2014-11-11 871 if (!IS_ERR_OR_NULL(after_dashes))
> 51e158c12aca3c9 Rusty Russell 2014-04-28 872 parse_args("Setting init args", after_dashes, NULL, 0, -1, -1,
> ecc8617053e0a97 Luis R. Rodriguez 2015-03-30 873 NULL, set_init_arg);
> 1319916209ce8f5 Masami Hiramatsu 2020-01-11 874 if (extra_init_args)
> 1319916209ce8f5 Masami Hiramatsu 2020-01-11 875 parse_args("Setting extra init args", extra_init_args,
> 1319916209ce8f5 Masami Hiramatsu 2020-01-11 876 NULL, 0, -1, -1, NULL, set_init_arg);
> 97ce2c88f9ad42e Jeremy Fitzhardinge 2011-10-12 877
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 878 /*
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 879 * These use large bootmem allocations and must precede
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 880 * kmem_cache_init()
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 881 */
> 162a7e7500f9664 Mike Travis 2011-05-24 882 setup_log_buf(0);
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 883 vfs_caches_init_early();
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 884 sort_main_extable();
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 885 trap_init();
> 444f478f65c7ca4 Pekka Enberg 2009-06-11 886 mm_init();
> de03c72cfce5b26 KOSAKI Motohiro 2011-05-24 887
> f631718de3ca24a Steven Rostedt (VMware 2017-03-03 888) ftrace_init();
> f631718de3ca24a Steven Rostedt (VMware 2017-03-03 889)
> e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 890) /* trace_printk can be enabled here */
> e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 891) early_trace_init();
> e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 892)
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 893 /*
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 894 * Set up the scheduler prior starting any interrupts (such as the
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 895 * timer interrupt). Full topology setup happens at smp_init()
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 896 * time - but meanwhile we still have a functioning scheduler.
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 897 */
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 898 sched_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 899 /*
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 900 * Disable preemption - early bootup scheduling is extremely
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 901 * fragile until we cpu_idle() for the first time.
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 902 */
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 903 preempt_disable();
> dd4d9fecbeba893 Fabian Frederick 2014-08-08 904 if (WARN(!irqs_disabled(),
> dd4d9fecbeba893 Fabian Frederick 2014-08-08 905 "Interrupts were enabled *very* early, fixing it\n"))
> c4a68306b9c0939 Ard van Breemen 2007-01-05 906 local_irq_disable();
> 0a835c4f090af2c Matthew Wilcox 2016-12-20 907 radix_tree_init();
> 3347fa0928210d9 Tejun Heo 2016-09-16 908
> 7d229c668a114e8 Tal Shorer 2017-11-03 909 /*
> 7d229c668a114e8 Tal Shorer 2017-11-03 910 * Set up housekeeping before setting up workqueues to allow the unbound
> 7d229c668a114e8 Tal Shorer 2017-11-03 911 * workqueue to take non-housekeeping into account.
> 7d229c668a114e8 Tal Shorer 2017-11-03 912 */
> 7d229c668a114e8 Tal Shorer 2017-11-03 913 housekeeping_init();
> 7d229c668a114e8 Tal Shorer 2017-11-03 914
> 3347fa0928210d9 Tejun Heo 2016-09-16 915 /*
> 3347fa0928210d9 Tejun Heo 2016-09-16 916 * Allow workqueue creation and work item queueing/cancelling
> 3347fa0928210d9 Tejun Heo 2016-09-16 917 * early. Work item execution depends on kthreads and starts after
> 3347fa0928210d9 Tejun Heo 2016-09-16 918 * workqueue_init().
> 3347fa0928210d9 Tejun Heo 2016-09-16 919 */
> 3347fa0928210d9 Tejun Heo 2016-09-16 920 workqueue_init_early();
> 3347fa0928210d9 Tejun Heo 2016-09-16 921
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 922 rcu_init();
> 5f893b2639b21ff Steven Rostedt (Red Hat 2014-12-12 923)
> e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 924) /* Trace events are available after this */
> 5f893b2639b21ff Steven Rostedt (Red Hat 2014-12-12 925) trace_init();
> 5f893b2639b21ff Steven Rostedt (Red Hat 2014-12-12 926)
> 4e37958d1288ce9 Steven Rostedt (VMware 2018-03-26 927) if (initcall_debug)
> 4e37958d1288ce9 Steven Rostedt (VMware 2018-03-26 928) initcall_debug_enable();
> 4e37958d1288ce9 Steven Rostedt (VMware 2018-03-26 929)
> 65f382fd0c8fa48 Frederic Weisbecker 2013-07-11 930 context_tracking_init();
> 0b8f1efad30bd58 Yinghai Lu 2008-12-05 931 /* init some links before init_ISA_irqs() */
> 0b8f1efad30bd58 Yinghai Lu 2008-12-05 932 early_irq_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 933 init_IRQ();
> ad2b13536ace08d Thomas Gleixner 2013-03-05 934 tick_init();
> d6dd50e07c5bec0 Linus Torvalds 2014-10-13 935 rcu_init_nohz();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 936 init_timers();
> c0a3132963db68f Thomas Gleixner 2006-01-09 937 hrtimers_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 938 softirq_init();
> ad596171ed635c5 John Stultz 2006-06-26 939 timekeeping_init();
> d55535232c3dbde Kees Cook 2019-04-19 940
> d55535232c3dbde Kees Cook 2019-04-19 941 /*
> d55535232c3dbde Kees Cook 2019-04-19 942 * For best initial stack canary entropy, prepare it after:
> d55535232c3dbde Kees Cook 2019-04-19 943 * - setup_arch() for any UEFI RNG entropy and boot cmdline access
> d55535232c3dbde Kees Cook 2019-04-19 944 * - timekeeping_init() for ktime entropy used in rand_initialize()
> d55535232c3dbde Kees Cook 2019-04-19 945 * - rand_initialize() to get any arch-specific entropy like RDRAND
> d55535232c3dbde Kees Cook 2019-04-19 946 * - add_latent_entropy() to get any latent entropy
> d55535232c3dbde Kees Cook 2019-04-19 947 * - adding command line entropy
> d55535232c3dbde Kees Cook 2019-04-19 948 */
> d55535232c3dbde Kees Cook 2019-04-19 949 rand_initialize();
> d55535232c3dbde Kees Cook 2019-04-19 950 add_latent_entropy();
> d55535232c3dbde Kees Cook 2019-04-19 951 add_device_randomness(command_line, strlen(command_line));
> d55535232c3dbde Kees Cook 2019-04-19 952 boot_init_stack_canary();
> d55535232c3dbde Kees Cook 2019-04-19 953
> 88fecaa27f398d9 John Stultz 2006-07-03 954 time_init();
> 9e6302056f8029f Stephane Eranian 2013-04-03 955 perf_event_init();
> 93e028148fce0be Heiko Carstens 2006-07-03 956 profile_init();
> d8ad7d1123a960c Takao Indoh 2011-03-29 957 call_function_init();
> f91eb62f71b31e6 Steven Rostedt 2013-04-29 958 WARN(!irqs_disabled(), "Interrupts were enabled early\n");
> c3bc8fd637a9623 Joel Fernandes (Google 2018-07-30 959)
> 2ce802f62ba32a7 Tejun Heo 2011-01-20 960 early_boot_irqs_disabled = false;
> 93e028148fce0be Heiko Carstens 2006-07-03 961 local_irq_enable();
> dcce284a259373f Benjamin Herrenschmidt 2009-06-18 962
> 7e85ee0c1d15ca5 Pekka Enberg 2009-06-12 963 kmem_cache_init_late();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 964
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 965 /*
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 966 * HACK ALERT! This is early. We're enabling the console before
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 967 * we've done PCI setups etc, and console_init() must be aware of
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 968 * this. But we do want output early, in case something goes wrong.
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 969 */
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 970 console_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 971 if (panic_later)
> 499a4584d7f817d Tetsuo Handa 2014-01-23 972 panic("Too many boot %s vars at `%s'", panic_later,
> 499a4584d7f817d Tetsuo Handa 2014-01-23 973 panic_param);
> fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 974
> c3bc8fd637a9623 Joel Fernandes (Google 2018-07-30 975) lockdep_init();
> fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 976
> 9a11b49a805665e Ingo Molnar 2006-07-03 977 /*
> 9a11b49a805665e Ingo Molnar 2006-07-03 978 * Need to run this when irqs are enabled, because it wants
> 9a11b49a805665e Ingo Molnar 2006-07-03 979 * to self-test [hard/soft]-irqs on/off lock inversion bugs
> 9a11b49a805665e Ingo Molnar 2006-07-03 980 * too:
> 9a11b49a805665e Ingo Molnar 2006-07-03 981 */
> 9a11b49a805665e Ingo Molnar 2006-07-03 982 locking_selftest();
> 9a11b49a805665e Ingo Molnar 2006-07-03 983
> c7753208a94c73d Tom Lendacky 2017-07-17 984 /*
> c7753208a94c73d Tom Lendacky 2017-07-17 985 * This needs to be called before any devices perform DMA
> c7753208a94c73d Tom Lendacky 2017-07-17 986 * operations that might use the SWIOTLB bounce buffers. It will
> c7753208a94c73d Tom Lendacky 2017-07-17 987 * mark the bounce buffers as decrypted so that their usage will
> c7753208a94c73d Tom Lendacky 2017-07-17 988 * not cause "plain-text" data to be decrypted when accessed.
> c7753208a94c73d Tom Lendacky 2017-07-17 989 */
> c7753208a94c73d Tom Lendacky 2017-07-17 990 mem_encrypt_init();
> c7753208a94c73d Tom Lendacky 2017-07-17 991
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 992 #ifdef CONFIG_BLK_DEV_INITRD
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 993 if (initrd_start && !initrd_below_start_ok &&
> bd673c7c3b1681d Geert Uytterhoeven 2008-07-29 994 page_to_pfn(virt_to_page((void *)initrd_start)) < min_low_pfn) {
> ea676e846a8171b Andrew Morton 2013-04-29 995 pr_crit("initrd overwritten (0x%08lx < 0x%08lx) - disabling it.\n",
> bd673c7c3b1681d Geert Uytterhoeven 2008-07-29 996 page_to_pfn(virt_to_page((void *)initrd_start)),
> bd673c7c3b1681d Geert Uytterhoeven 2008-07-29 997 min_low_pfn);
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 998 initrd_start = 0;
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 999 }
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1000 #endif
> e7c8d5c9955a4d2 Christoph Lameter 2005-06-21 1001 setup_per_cpu_pageset();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1002 numa_policy_init();
> 9c71206d060d4e8 Dou Liyang 2017-09-13 1003 acpi_early_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1004 if (late_time_init)
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1005 late_time_init();
> 857baa87b6422bc Pavel Tatashin 2018-07-19 1006 sched_clock_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1007 calibrate_delay();
> 95846ecf9dac508 Gargi Sharma 2017-11-17 1008 pid_idr_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1009 anon_vma_init();
> 11520e5e7c1855f Linus Torvalds 2012-12-15 1010 #ifdef CONFIG_X86
> 83e68189745ad93 Matt Fleming 2012-11-14 1011 if (efi_enabled(EFI_RUNTIME_SERVICES))
> 11520e5e7c1855f Linus Torvalds 2012-12-15 @1012 efi_enter_virtual_mode();
> 11520e5e7c1855f Linus Torvalds 2012-12-15 1013 #endif
> b235beea9e996a4 Linus Torvalds 2016-06-24 1014 thread_stack_cache_init();
> d84f4f992cbd76e David Howells 2008-11-14 1015 cred_init();
> ff691f6e03815dc Heinrich Schuchardt 2015-04-16 1016 fork_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1017 proc_caches_init();
> 3ea056c50476f87 Alexey Dobriyan 2018-04-10 1018 uts_ns_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1019 buffer_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1020 key_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1021 security_init();
> 0b4b3827db386ec Jason Wessel 2010-05-20 1022 dbg_late_init();
> 4248b0da460839e Mel Gorman 2015-08-06 1023 vfs_caches_init();
> 62906027091f1d0 Nicholas Piggin 2016-12-25 1024 pagecache_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1025 signals_init();
> 0965232035cfa59 Alexey Dobriyan 2018-04-10 1026 seq_file_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1027 proc_root_init();
> e149ed2b805fefd Al Viro 2014-11-01 1028 nsfs_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1029 cpuset_init();
> 695df2132cfe378 Zefan Li 2015-03-04 1030 cgroup_init();
> c757249af152c59 Shailabh Nagar 2006-07-14 1031 taskstats_init_early();
> ca74e92b4698276 Shailabh Nagar 2006-07-14 1032 delayacct_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1033
> 4fc19708b165c1c Nadav Amit 2019-04-26 1034 poking_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1035 check_bugs();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1036
> b064a8fa77dfead Rafael J. Wysocki 2015-06-10 1037 acpi_subsystem_init();
> e7ff3a47630d951 Thomas Gleixner 2016-12-09 1038 arch_post_acpi_subsys_init();
> 6ae6996a466e14b Feng Tang 2009-08-14 1039 sfi_init_late();
> dfd402a4c4baae4 Marco Elver 2019-11-14 1040 kcsan_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1041
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1042 /* Do the rest non-__init'ed, we're now alive */
> 53c99bd665a2649 Martin Schwidefsky 2018-08-31 1043 arch_call_rest_init();
> a9a3ed1eff3601b Borislav Petkov 2020-04-22 1044
> a9a3ed1eff3601b Borislav Petkov 2020-04-22 1045 prevent_tail_call_optimization();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1046 }
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1047
>
> :::::: The code at line 1012 was first introduced by commit
> :::::: 11520e5e7c1855fc3bf202bb3be35a39d9efa034 Revert "x86-64/efi: Use EFI to deal with platform wall clock (again)"
>
> :::::: TO: Linus Torvalds <torvalds@linux-foundation.org>
> :::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [hnaz-linux-mm:master 168/421] init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
@ 2020-08-03 15:37 ` Andrey Konovalov
0 siblings, 0 replies; 15+ messages in thread
From: Andrey Konovalov @ 2020-08-03 15:37 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 21563 bytes --]
On Sun, Aug 2, 2020 at 12:25 AM kernel test robot <lkp@intel.com> wrote:
>
> tree: https://github.com/hnaz/linux-mm master
> head: 2932a9e66c580f3c8d95ec27716d437198fb4c94
> commit: 7c0265f304de3c3acd02d0015b56a076357bcce3 [168/421] kasan, arm64: don't instrument functions that enable kasan
> config: x86_64-randconfig-r036-20200802 (attached as .config)
> compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
> reproduce (this is a W=1 build):
> git checkout 7c0265f304de3c3acd02d0015b56a076357bcce3
> # save the attached .config to linux build tree
> make W=1 ARCH=x86_64
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>):
>
> ld: init/main.o: in function `start_kernel':
> >> init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
Hm, I can reproduce the issue, but I don't understand why it happens.
+EFI and KASAN people, maybe someone has an idea.
This is the guilty patch:
https://github.com/hnaz/linux-mm/commit/7c0265f304de3c3acd02d0015b56a076357bcce3
The issue is only with efi_enter_virtual_mode() AFAIU, not with any of
the other functions.
Thanks!
>
> vim +1012 init/main.c
>
> 53c99bd665a2649 Martin Schwidefsky 2018-08-31 829
> 7c0265f304de3c3 Andrey Konovalov 2020-08-01 830 asmlinkage __visible __no_sanitize_address void __init start_kernel(void)
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 831 {
> dd4d9fecbeba893 Fabian Frederick 2014-08-08 832 char *command_line;
> dd4d9fecbeba893 Fabian Frederick 2014-08-08 833 char *after_dashes;
> 033ab7f8e5c655f Andrew Morton 2006-06-30 834
> d4311ff1a8da48d Aaron Tomlin 2014-09-12 835 set_task_stack_end_magic(&init_task);
> 73839c5b2eacc15 Ming Lei 2011-11-17 836 smp_setup_processor_id();
> 3ac7fe5a4aab409 Thomas Gleixner 2008-04-30 837 debug_objects_early_init();
> 420594296838fdc Ingo Molnar 2008-02-14 838
> ddbcc7e8e50aefe Paul Menage 2007-10-18 839 cgroup_init_early();
> fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 840
> fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 841 local_irq_disable();
> 2ce802f62ba32a7 Tejun Heo 2011-01-20 842 early_boot_irqs_disabled = true;
> fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 843
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 844 /*
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 845 * Interrupts are still disabled. Do necessary setups, then
> 1b3b3b49b996140 Viresh Kumar 2017-03-23 846 * enable them.
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 847 */
> 44fd22992cb76dc Stas Sergeev 2006-03-23 848 boot_cpu_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 849 page_address_init();
> ea676e846a8171b Andrew Morton 2013-04-29 850 pr_notice("%s", linux_banner);
> e6b1db98cf4d54d Matthew Garrett 2019-08-19 851 early_security_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 852 setup_arch(&command_line);
> 7495e0926fdf302 Steven Rostedt (VMware 2020-02-04 853) setup_boot_config(command_line);
> 30d7e0d466b3ac0 Alon Bar-Lev 2007-02-12 854 setup_command_line(command_line);
> e0982e90cd1ecf5 Mike Travis 2008-03-26 855 setup_nr_cpu_ids();
> d6647bdf98a0de1 Tejun Heo 2009-07-21 856 setup_per_cpu_areas();
> 44fd22992cb76dc Stas Sergeev 2006-03-23 857 smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
> b5b1404d0815894 Linus Torvalds 2018-08-12 858 boot_cpu_hotplug_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 859
> 72675e131eb418c Michal Hocko 2017-09-06 860 build_all_zonelists(NULL);
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 861 page_alloc_init();
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 862
> 51887d03aca101a Masami Hiramatsu 2020-01-11 863 pr_notice("Kernel command line: %s\n", saved_command_line);
> 6041186a32585fc Dan Williams 2019-04-18 864 /* parameters may set static keys */
> 6041186a32585fc Dan Williams 2019-04-18 865 jump_label_init();
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 866 parse_early_param();
> 51e158c12aca3c9 Rusty Russell 2014-04-28 867 after_dashes = parse_args("Booting kernel",
> 51e158c12aca3c9 Rusty Russell 2014-04-28 868 static_command_line, __start___param,
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 869 __stop___param - __start___param,
> ecc8617053e0a97 Luis R. Rodriguez 2015-03-30 870 -1, -1, NULL, &unknown_bootoption);
> 3438cf549d2f3ee Daniel Thompson 2014-11-11 871 if (!IS_ERR_OR_NULL(after_dashes))
> 51e158c12aca3c9 Rusty Russell 2014-04-28 872 parse_args("Setting init args", after_dashes, NULL, 0, -1, -1,
> ecc8617053e0a97 Luis R. Rodriguez 2015-03-30 873 NULL, set_init_arg);
> 1319916209ce8f5 Masami Hiramatsu 2020-01-11 874 if (extra_init_args)
> 1319916209ce8f5 Masami Hiramatsu 2020-01-11 875 parse_args("Setting extra init args", extra_init_args,
> 1319916209ce8f5 Masami Hiramatsu 2020-01-11 876 NULL, 0, -1, -1, NULL, set_init_arg);
> 97ce2c88f9ad42e Jeremy Fitzhardinge 2011-10-12 877
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 878 /*
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 879 * These use large bootmem allocations and must precede
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 880 * kmem_cache_init()
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 881 */
> 162a7e7500f9664 Mike Travis 2011-05-24 882 setup_log_buf(0);
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 883 vfs_caches_init_early();
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 884 sort_main_extable();
> 83b519e8b9572c3 Pekka Enberg 2009-06-10 885 trap_init();
> 444f478f65c7ca4 Pekka Enberg 2009-06-11 886 mm_init();
> de03c72cfce5b26 KOSAKI Motohiro 2011-05-24 887
> f631718de3ca24a Steven Rostedt (VMware 2017-03-03 888) ftrace_init();
> f631718de3ca24a Steven Rostedt (VMware 2017-03-03 889)
> e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 890) /* trace_printk can be enabled here */
> e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 891) early_trace_init();
> e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 892)
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 893 /*
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 894 * Set up the scheduler prior starting any interrupts (such as the
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 895 * timer interrupt). Full topology setup happens at smp_init()
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 896 * time - but meanwhile we still have a functioning scheduler.
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 897 */
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 898 sched_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 899 /*
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 900 * Disable preemption - early bootup scheduling is extremely
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 901 * fragile until we cpu_idle() for the first time.
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 902 */
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 903 preempt_disable();
> dd4d9fecbeba893 Fabian Frederick 2014-08-08 904 if (WARN(!irqs_disabled(),
> dd4d9fecbeba893 Fabian Frederick 2014-08-08 905 "Interrupts were enabled *very* early, fixing it\n"))
> c4a68306b9c0939 Ard van Breemen 2007-01-05 906 local_irq_disable();
> 0a835c4f090af2c Matthew Wilcox 2016-12-20 907 radix_tree_init();
> 3347fa0928210d9 Tejun Heo 2016-09-16 908
> 7d229c668a114e8 Tal Shorer 2017-11-03 909 /*
> 7d229c668a114e8 Tal Shorer 2017-11-03 910 * Set up housekeeping before setting up workqueues to allow the unbound
> 7d229c668a114e8 Tal Shorer 2017-11-03 911 * workqueue to take non-housekeeping into account.
> 7d229c668a114e8 Tal Shorer 2017-11-03 912 */
> 7d229c668a114e8 Tal Shorer 2017-11-03 913 housekeeping_init();
> 7d229c668a114e8 Tal Shorer 2017-11-03 914
> 3347fa0928210d9 Tejun Heo 2016-09-16 915 /*
> 3347fa0928210d9 Tejun Heo 2016-09-16 916 * Allow workqueue creation and work item queueing/cancelling
> 3347fa0928210d9 Tejun Heo 2016-09-16 917 * early. Work item execution depends on kthreads and starts after
> 3347fa0928210d9 Tejun Heo 2016-09-16 918 * workqueue_init().
> 3347fa0928210d9 Tejun Heo 2016-09-16 919 */
> 3347fa0928210d9 Tejun Heo 2016-09-16 920 workqueue_init_early();
> 3347fa0928210d9 Tejun Heo 2016-09-16 921
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 922 rcu_init();
> 5f893b2639b21ff Steven Rostedt (Red Hat 2014-12-12 923)
> e725c731e3bb1e8 Steven Rostedt (VMware 2017-03-03 924) /* Trace events are available after this */
> 5f893b2639b21ff Steven Rostedt (Red Hat 2014-12-12 925) trace_init();
> 5f893b2639b21ff Steven Rostedt (Red Hat 2014-12-12 926)
> 4e37958d1288ce9 Steven Rostedt (VMware 2018-03-26 927) if (initcall_debug)
> 4e37958d1288ce9 Steven Rostedt (VMware 2018-03-26 928) initcall_debug_enable();
> 4e37958d1288ce9 Steven Rostedt (VMware 2018-03-26 929)
> 65f382fd0c8fa48 Frederic Weisbecker 2013-07-11 930 context_tracking_init();
> 0b8f1efad30bd58 Yinghai Lu 2008-12-05 931 /* init some links before init_ISA_irqs() */
> 0b8f1efad30bd58 Yinghai Lu 2008-12-05 932 early_irq_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 933 init_IRQ();
> ad2b13536ace08d Thomas Gleixner 2013-03-05 934 tick_init();
> d6dd50e07c5bec0 Linus Torvalds 2014-10-13 935 rcu_init_nohz();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 936 init_timers();
> c0a3132963db68f Thomas Gleixner 2006-01-09 937 hrtimers_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 938 softirq_init();
> ad596171ed635c5 John Stultz 2006-06-26 939 timekeeping_init();
> d55535232c3dbde Kees Cook 2019-04-19 940
> d55535232c3dbde Kees Cook 2019-04-19 941 /*
> d55535232c3dbde Kees Cook 2019-04-19 942 * For best initial stack canary entropy, prepare it after:
> d55535232c3dbde Kees Cook 2019-04-19 943 * - setup_arch() for any UEFI RNG entropy and boot cmdline access
> d55535232c3dbde Kees Cook 2019-04-19 944 * - timekeeping_init() for ktime entropy used in rand_initialize()
> d55535232c3dbde Kees Cook 2019-04-19 945 * - rand_initialize() to get any arch-specific entropy like RDRAND
> d55535232c3dbde Kees Cook 2019-04-19 946 * - add_latent_entropy() to get any latent entropy
> d55535232c3dbde Kees Cook 2019-04-19 947 * - adding command line entropy
> d55535232c3dbde Kees Cook 2019-04-19 948 */
> d55535232c3dbde Kees Cook 2019-04-19 949 rand_initialize();
> d55535232c3dbde Kees Cook 2019-04-19 950 add_latent_entropy();
> d55535232c3dbde Kees Cook 2019-04-19 951 add_device_randomness(command_line, strlen(command_line));
> d55535232c3dbde Kees Cook 2019-04-19 952 boot_init_stack_canary();
> d55535232c3dbde Kees Cook 2019-04-19 953
> 88fecaa27f398d9 John Stultz 2006-07-03 954 time_init();
> 9e6302056f8029f Stephane Eranian 2013-04-03 955 perf_event_init();
> 93e028148fce0be Heiko Carstens 2006-07-03 956 profile_init();
> d8ad7d1123a960c Takao Indoh 2011-03-29 957 call_function_init();
> f91eb62f71b31e6 Steven Rostedt 2013-04-29 958 WARN(!irqs_disabled(), "Interrupts were enabled early\n");
> c3bc8fd637a9623 Joel Fernandes (Google 2018-07-30 959)
> 2ce802f62ba32a7 Tejun Heo 2011-01-20 960 early_boot_irqs_disabled = false;
> 93e028148fce0be Heiko Carstens 2006-07-03 961 local_irq_enable();
> dcce284a259373f Benjamin Herrenschmidt 2009-06-18 962
> 7e85ee0c1d15ca5 Pekka Enberg 2009-06-12 963 kmem_cache_init_late();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 964
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 965 /*
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 966 * HACK ALERT! This is early. We're enabling the console before
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 967 * we've done PCI setups etc, and console_init() must be aware of
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 968 * this. But we do want output early, in case something goes wrong.
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 969 */
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 970 console_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 971 if (panic_later)
> 499a4584d7f817d Tetsuo Handa 2014-01-23 972 panic("Too many boot %s vars at `%s'", panic_later,
> 499a4584d7f817d Tetsuo Handa 2014-01-23 973 panic_param);
> fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 974
> c3bc8fd637a9623 Joel Fernandes (Google 2018-07-30 975) lockdep_init();
> fbb9ce9530fd9b6 Ingo Molnar 2006-07-03 976
> 9a11b49a805665e Ingo Molnar 2006-07-03 977 /*
> 9a11b49a805665e Ingo Molnar 2006-07-03 978 * Need to run this when irqs are enabled, because it wants
> 9a11b49a805665e Ingo Molnar 2006-07-03 979 * to self-test [hard/soft]-irqs on/off lock inversion bugs
> 9a11b49a805665e Ingo Molnar 2006-07-03 980 * too:
> 9a11b49a805665e Ingo Molnar 2006-07-03 981 */
> 9a11b49a805665e Ingo Molnar 2006-07-03 982 locking_selftest();
> 9a11b49a805665e Ingo Molnar 2006-07-03 983
> c7753208a94c73d Tom Lendacky 2017-07-17 984 /*
> c7753208a94c73d Tom Lendacky 2017-07-17 985 * This needs to be called before any devices perform DMA
> c7753208a94c73d Tom Lendacky 2017-07-17 986 * operations that might use the SWIOTLB bounce buffers. It will
> c7753208a94c73d Tom Lendacky 2017-07-17 987 * mark the bounce buffers as decrypted so that their usage will
> c7753208a94c73d Tom Lendacky 2017-07-17 988 * not cause "plain-text" data to be decrypted when accessed.
> c7753208a94c73d Tom Lendacky 2017-07-17 989 */
> c7753208a94c73d Tom Lendacky 2017-07-17 990 mem_encrypt_init();
> c7753208a94c73d Tom Lendacky 2017-07-17 991
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 992 #ifdef CONFIG_BLK_DEV_INITRD
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 993 if (initrd_start && !initrd_below_start_ok &&
> bd673c7c3b1681d Geert Uytterhoeven 2008-07-29 994 page_to_pfn(virt_to_page((void *)initrd_start)) < min_low_pfn) {
> ea676e846a8171b Andrew Morton 2013-04-29 995 pr_crit("initrd overwritten (0x%08lx < 0x%08lx) - disabling it.\n",
> bd673c7c3b1681d Geert Uytterhoeven 2008-07-29 996 page_to_pfn(virt_to_page((void *)initrd_start)),
> bd673c7c3b1681d Geert Uytterhoeven 2008-07-29 997 min_low_pfn);
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 998 initrd_start = 0;
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 999 }
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1000 #endif
> e7c8d5c9955a4d2 Christoph Lameter 2005-06-21 1001 setup_per_cpu_pageset();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1002 numa_policy_init();
> 9c71206d060d4e8 Dou Liyang 2017-09-13 1003 acpi_early_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1004 if (late_time_init)
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1005 late_time_init();
> 857baa87b6422bc Pavel Tatashin 2018-07-19 1006 sched_clock_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1007 calibrate_delay();
> 95846ecf9dac508 Gargi Sharma 2017-11-17 1008 pid_idr_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1009 anon_vma_init();
> 11520e5e7c1855f Linus Torvalds 2012-12-15 1010 #ifdef CONFIG_X86
> 83e68189745ad93 Matt Fleming 2012-11-14 1011 if (efi_enabled(EFI_RUNTIME_SERVICES))
> 11520e5e7c1855f Linus Torvalds 2012-12-15 @1012 efi_enter_virtual_mode();
> 11520e5e7c1855f Linus Torvalds 2012-12-15 1013 #endif
> b235beea9e996a4 Linus Torvalds 2016-06-24 1014 thread_stack_cache_init();
> d84f4f992cbd76e David Howells 2008-11-14 1015 cred_init();
> ff691f6e03815dc Heinrich Schuchardt 2015-04-16 1016 fork_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1017 proc_caches_init();
> 3ea056c50476f87 Alexey Dobriyan 2018-04-10 1018 uts_ns_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1019 buffer_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1020 key_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1021 security_init();
> 0b4b3827db386ec Jason Wessel 2010-05-20 1022 dbg_late_init();
> 4248b0da460839e Mel Gorman 2015-08-06 1023 vfs_caches_init();
> 62906027091f1d0 Nicholas Piggin 2016-12-25 1024 pagecache_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1025 signals_init();
> 0965232035cfa59 Alexey Dobriyan 2018-04-10 1026 seq_file_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1027 proc_root_init();
> e149ed2b805fefd Al Viro 2014-11-01 1028 nsfs_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1029 cpuset_init();
> 695df2132cfe378 Zefan Li 2015-03-04 1030 cgroup_init();
> c757249af152c59 Shailabh Nagar 2006-07-14 1031 taskstats_init_early();
> ca74e92b4698276 Shailabh Nagar 2006-07-14 1032 delayacct_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1033
> 4fc19708b165c1c Nadav Amit 2019-04-26 1034 poking_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1035 check_bugs();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1036
> b064a8fa77dfead Rafael J. Wysocki 2015-06-10 1037 acpi_subsystem_init();
> e7ff3a47630d951 Thomas Gleixner 2016-12-09 1038 arch_post_acpi_subsys_init();
> 6ae6996a466e14b Feng Tang 2009-08-14 1039 sfi_init_late();
> dfd402a4c4baae4 Marco Elver 2019-11-14 1040 kcsan_init();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1041
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1042 /* Do the rest non-__init'ed, we're now alive */
> 53c99bd665a2649 Martin Schwidefsky 2018-08-31 1043 arch_call_rest_init();
> a9a3ed1eff3601b Borislav Petkov 2020-04-22 1044
> a9a3ed1eff3601b Borislav Petkov 2020-04-22 1045 prevent_tail_call_optimization();
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1046 }
> ^1da177e4c3f415 Linus Torvalds 2005-04-16 1047
>
> :::::: The code at line 1012 was first introduced by commit
> :::::: 11520e5e7c1855fc3bf202bb3be35a39d9efa034 Revert "x86-64/efi: Use EFI to deal with platform wall clock (again)"
>
> :::::: TO: Linus Torvalds <torvalds@linux-foundation.org>
> :::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [hnaz-linux-mm:master 168/421] init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
2020-08-03 15:37 ` Andrey Konovalov
(?)
(?)
@ 2020-08-03 18:03 ` Arvind Sankar
2020-08-04 12:27 ` Andrey Konovalov
-1 siblings, 1 reply; 15+ messages in thread
From: Arvind Sankar @ 2020-08-03 18:03 UTC (permalink / raw)
To: Andrey Konovalov
Cc: Ard Biesheuvel, linux-efi, Dmitry Vyukov, Alexander Potapenko,
kasan-dev, Andrey Ryabinin, kbuild-all, Johannes Weiner,
Andrew Morton, Linux Memory Management List, kernel test robot
On Mon, Aug 03, 2020 at 05:37:32PM +0200, Andrey Konovalov wrote:
> On Sun, Aug 2, 2020 at 12:25 AM kernel test robot <lkp@intel.com> wrote:
> >
> > tree: https://github.com/hnaz/linux-mm master
> > head: 2932a9e66c580f3c8d95ec27716d437198fb4c94
> > commit: 7c0265f304de3c3acd02d0015b56a076357bcce3 [168/421] kasan, arm64: don't instrument functions that enable kasan
> > config: x86_64-randconfig-r036-20200802 (attached as .config)
> > compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
> > reproduce (this is a W=1 build):
> > git checkout 7c0265f304de3c3acd02d0015b56a076357bcce3
> > # save the attached .config to linux build tree
> > make W=1 ARCH=x86_64
> >
> > If you fix the issue, kindly add following tag as appropriate
> > Reported-by: kernel test robot <lkp@intel.com>
> >
> > All errors (new ones prefixed by >>):
> >
> > ld: init/main.o: in function `start_kernel':
> > >> init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
>
> Hm, I can reproduce the issue, but I don't understand why it happens.
>
> +EFI and KASAN people, maybe someone has an idea.
>
> This is the guilty patch:
>
> https://github.com/hnaz/linux-mm/commit/7c0265f304de3c3acd02d0015b56a076357bcce3
>
> The issue is only with efi_enter_virtual_mode() AFAIU, not with any of
> the other functions.
>
> Thanks!
>
After adding __no_sanitize_address, gcc doesn't inline efi_enabled() on
a KASAN build, even when CONFIG_EFI is disabled, and the function is
just
return false;
and so it isn't optimizing out the call to efi_enter_virtual_mode().
Making efi_enabled() __always_inline fixes this, but not sure if that is
the correct fix?
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [hnaz-linux-mm:master 168/421] init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
2020-08-03 18:03 ` Arvind Sankar
2020-08-04 12:27 ` Andrey Konovalov
@ 2020-08-04 12:27 ` Andrey Konovalov
0 siblings, 0 replies; 15+ messages in thread
From: Andrey Konovalov @ 2020-08-04 12:27 UTC (permalink / raw)
To: Arvind Sankar, Ard Biesheuvel
Cc: linux-efi, Dmitry Vyukov, Alexander Potapenko, kasan-dev,
Andrey Ryabinin, kbuild-all, Johannes Weiner, Andrew Morton,
Linux Memory Management List, kernel test robot
On Mon, Aug 3, 2020 at 8:04 PM Arvind Sankar <nivedita@alum.mit.edu> wrote:
>
> On Mon, Aug 03, 2020 at 05:37:32PM +0200, Andrey Konovalov wrote:
> > On Sun, Aug 2, 2020 at 12:25 AM kernel test robot <lkp@intel.com> wrote:
> > >
> > > tree: https://github.com/hnaz/linux-mm master
> > > head: 2932a9e66c580f3c8d95ec27716d437198fb4c94
> > > commit: 7c0265f304de3c3acd02d0015b56a076357bcce3 [168/421] kasan, arm64: don't instrument functions that enable kasan
> > > config: x86_64-randconfig-r036-20200802 (attached as .config)
> > > compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
> > > reproduce (this is a W=1 build):
> > > git checkout 7c0265f304de3c3acd02d0015b56a076357bcce3
> > > # save the attached .config to linux build tree
> > > make W=1 ARCH=x86_64
> > >
> > > If you fix the issue, kindly add following tag as appropriate
> > > Reported-by: kernel test robot <lkp@intel.com>
> > >
> > > All errors (new ones prefixed by >>):
> > >
> > > ld: init/main.o: in function `start_kernel':
> > > >> init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
> >
> > Hm, I can reproduce the issue, but I don't understand why it happens.
> >
> > +EFI and KASAN people, maybe someone has an idea.
> >
> > This is the guilty patch:
> >
> > https://github.com/hnaz/linux-mm/commit/7c0265f304de3c3acd02d0015b56a076357bcce3
> >
> > The issue is only with efi_enter_virtual_mode() AFAIU, not with any of
> > the other functions.
> >
> > Thanks!
> >
>
> After adding __no_sanitize_address, gcc doesn't inline efi_enabled() on
> a KASAN build, even when CONFIG_EFI is disabled, and the function is
> just
> return false;
> and so it isn't optimizing out the call to efi_enter_virtual_mode().
>
> Making efi_enabled() __always_inline fixes this, but not sure if that is
> the correct fix?
Ah, makes sense.
We could also do #if defined(CONFIG_X86) && defined(CONFIG_EFI) in
start_kernel().
Or provide an empty efi_enter_virtual_mode() implementation when
CONFIG_EFI isn't enabled.
Ard, WDYT?
Thanks!
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [hnaz-linux-mm:master 168/421] init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
@ 2020-08-04 12:27 ` Andrey Konovalov
0 siblings, 0 replies; 15+ messages in thread
From: Andrey Konovalov @ 2020-08-04 12:27 UTC (permalink / raw)
To: Arvind Sankar, Ard Biesheuvel
Cc: linux-efi, Dmitry Vyukov, Alexander Potapenko, kasan-dev,
Andrey Ryabinin, kbuild-all, Johannes Weiner, Andrew Morton,
Linux Memory Management List, kernel test robot
On Mon, Aug 3, 2020 at 8:04 PM Arvind Sankar <nivedita@alum.mit.edu> wrote:
>
> On Mon, Aug 03, 2020 at 05:37:32PM +0200, Andrey Konovalov wrote:
> > On Sun, Aug 2, 2020 at 12:25 AM kernel test robot <lkp@intel.com> wrote:
> > >
> > > tree: https://github.com/hnaz/linux-mm master
> > > head: 2932a9e66c580f3c8d95ec27716d437198fb4c94
> > > commit: 7c0265f304de3c3acd02d0015b56a076357bcce3 [168/421] kasan, arm64: don't instrument functions that enable kasan
> > > config: x86_64-randconfig-r036-20200802 (attached as .config)
> > > compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
> > > reproduce (this is a W=1 build):
> > > git checkout 7c0265f304de3c3acd02d0015b56a076357bcce3
> > > # save the attached .config to linux build tree
> > > make W=1 ARCH=x86_64
> > >
> > > If you fix the issue, kindly add following tag as appropriate
> > > Reported-by: kernel test robot <lkp@intel.com>
> > >
> > > All errors (new ones prefixed by >>):
> > >
> > > ld: init/main.o: in function `start_kernel':
> > > >> init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
> >
> > Hm, I can reproduce the issue, but I don't understand why it happens.
> >
> > +EFI and KASAN people, maybe someone has an idea.
> >
> > This is the guilty patch:
> >
> > https://github.com/hnaz/linux-mm/commit/7c0265f304de3c3acd02d0015b56a076357bcce3
> >
> > The issue is only with efi_enter_virtual_mode() AFAIU, not with any of
> > the other functions.
> >
> > Thanks!
> >
>
> After adding __no_sanitize_address, gcc doesn't inline efi_enabled() on
> a KASAN build, even when CONFIG_EFI is disabled, and the function is
> just
> return false;
> and so it isn't optimizing out the call to efi_enter_virtual_mode().
>
> Making efi_enabled() __always_inline fixes this, but not sure if that is
> the correct fix?
Ah, makes sense.
We could also do #if defined(CONFIG_X86) && defined(CONFIG_EFI) in
start_kernel().
Or provide an empty efi_enter_virtual_mode() implementation when
CONFIG_EFI isn't enabled.
Ard, WDYT?
Thanks!
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [hnaz-linux-mm:master 168/421] init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
@ 2020-08-04 12:27 ` Andrey Konovalov
0 siblings, 0 replies; 15+ messages in thread
From: Andrey Konovalov @ 2020-08-04 12:27 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 2090 bytes --]
On Mon, Aug 3, 2020 at 8:04 PM Arvind Sankar <nivedita@alum.mit.edu> wrote:
>
> On Mon, Aug 03, 2020 at 05:37:32PM +0200, Andrey Konovalov wrote:
> > On Sun, Aug 2, 2020 at 12:25 AM kernel test robot <lkp@intel.com> wrote:
> > >
> > > tree: https://github.com/hnaz/linux-mm master
> > > head: 2932a9e66c580f3c8d95ec27716d437198fb4c94
> > > commit: 7c0265f304de3c3acd02d0015b56a076357bcce3 [168/421] kasan, arm64: don't instrument functions that enable kasan
> > > config: x86_64-randconfig-r036-20200802 (attached as .config)
> > > compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
> > > reproduce (this is a W=1 build):
> > > git checkout 7c0265f304de3c3acd02d0015b56a076357bcce3
> > > # save the attached .config to linux build tree
> > > make W=1 ARCH=x86_64
> > >
> > > If you fix the issue, kindly add following tag as appropriate
> > > Reported-by: kernel test robot <lkp@intel.com>
> > >
> > > All errors (new ones prefixed by >>):
> > >
> > > ld: init/main.o: in function `start_kernel':
> > > >> init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
> >
> > Hm, I can reproduce the issue, but I don't understand why it happens.
> >
> > +EFI and KASAN people, maybe someone has an idea.
> >
> > This is the guilty patch:
> >
> > https://github.com/hnaz/linux-mm/commit/7c0265f304de3c3acd02d0015b56a076357bcce3
> >
> > The issue is only with efi_enter_virtual_mode() AFAIU, not with any of
> > the other functions.
> >
> > Thanks!
> >
>
> After adding __no_sanitize_address, gcc doesn't inline efi_enabled() on
> a KASAN build, even when CONFIG_EFI is disabled, and the function is
> just
> return false;
> and so it isn't optimizing out the call to efi_enter_virtual_mode().
>
> Making efi_enabled() __always_inline fixes this, but not sure if that is
> the correct fix?
Ah, makes sense.
We could also do #if defined(CONFIG_X86) && defined(CONFIG_EFI) in
start_kernel().
Or provide an empty efi_enter_virtual_mode() implementation when
CONFIG_EFI isn't enabled.
Ard, WDYT?
Thanks!
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [hnaz-linux-mm:master 168/421] init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
2020-08-04 12:27 ` Andrey Konovalov
(?)
@ 2020-08-04 12:40 ` Ard Biesheuvel
-1 siblings, 0 replies; 15+ messages in thread
From: Ard Biesheuvel @ 2020-08-04 12:40 UTC (permalink / raw)
To: Andrey Konovalov
Cc: Arvind Sankar, linux-efi, Dmitry Vyukov, Alexander Potapenko,
kasan-dev, Andrey Ryabinin, kbuild-all, Johannes Weiner,
Andrew Morton, Linux Memory Management List, kernel test robot
On Tue, 4 Aug 2020 at 14:27, Andrey Konovalov <andreyknvl@google.com> wrote:
>
> On Mon, Aug 3, 2020 at 8:04 PM Arvind Sankar <nivedita@alum.mit.edu> wrote:
> >
> > On Mon, Aug 03, 2020 at 05:37:32PM +0200, Andrey Konovalov wrote:
> > > On Sun, Aug 2, 2020 at 12:25 AM kernel test robot <lkp@intel.com> wrote:
> > > >
> > > > tree: https://github.com/hnaz/linux-mm master
> > > > head: 2932a9e66c580f3c8d95ec27716d437198fb4c94
> > > > commit: 7c0265f304de3c3acd02d0015b56a076357bcce3 [168/421] kasan, arm64: don't instrument functions that enable kasan
> > > > config: x86_64-randconfig-r036-20200802 (attached as .config)
> > > > compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
> > > > reproduce (this is a W=1 build):
> > > > git checkout 7c0265f304de3c3acd02d0015b56a076357bcce3
> > > > # save the attached .config to linux build tree
> > > > make W=1 ARCH=x86_64
> > > >
> > > > If you fix the issue, kindly add following tag as appropriate
> > > > Reported-by: kernel test robot <lkp@intel.com>
> > > >
> > > > All errors (new ones prefixed by >>):
> > > >
> > > > ld: init/main.o: in function `start_kernel':
> > > > >> init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
> > >
> > > Hm, I can reproduce the issue, but I don't understand why it happens.
> > >
> > > +EFI and KASAN people, maybe someone has an idea.
> > >
> > > This is the guilty patch:
> > >
> > > https://github.com/hnaz/linux-mm/commit/7c0265f304de3c3acd02d0015b56a076357bcce3
> > >
> > > The issue is only with efi_enter_virtual_mode() AFAIU, not with any of
> > > the other functions.
> > >
> > > Thanks!
> > >
> >
> > After adding __no_sanitize_address, gcc doesn't inline efi_enabled() on
> > a KASAN build, even when CONFIG_EFI is disabled, and the function is
> > just
> > return false;
> > and so it isn't optimizing out the call to efi_enter_virtual_mode().
> >
> > Making efi_enabled() __always_inline fixes this, but not sure if that is
> > the correct fix?
>
> Ah, makes sense.
>
> We could also do #if defined(CONFIG_X86) && defined(CONFIG_EFI) in
> start_kernel().
>
> Or provide an empty efi_enter_virtual_mode() implementation when
> CONFIG_EFI isn't enabled.
>
> Ard, WDYT?
>
The latter seems more appropriate (as a static inline in efi.h), since
we could then remove the ifdef altogether afaict.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [hnaz-linux-mm:master 168/421] init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
@ 2020-08-04 12:40 ` Ard Biesheuvel
0 siblings, 0 replies; 15+ messages in thread
From: Ard Biesheuvel @ 2020-08-04 12:40 UTC (permalink / raw)
To: Andrey Konovalov
Cc: Arvind Sankar, linux-efi, Dmitry Vyukov, Alexander Potapenko,
kasan-dev, Andrey Ryabinin, kbuild-all, Johannes Weiner,
Andrew Morton, Linux Memory Management List, kernel test robot
On Tue, 4 Aug 2020 at 14:27, Andrey Konovalov <andreyknvl@google.com> wrote:
>
> On Mon, Aug 3, 2020 at 8:04 PM Arvind Sankar <nivedita@alum.mit.edu> wrote:
> >
> > On Mon, Aug 03, 2020 at 05:37:32PM +0200, Andrey Konovalov wrote:
> > > On Sun, Aug 2, 2020 at 12:25 AM kernel test robot <lkp@intel.com> wrote:
> > > >
> > > > tree: https://github.com/hnaz/linux-mm master
> > > > head: 2932a9e66c580f3c8d95ec27716d437198fb4c94
> > > > commit: 7c0265f304de3c3acd02d0015b56a076357bcce3 [168/421] kasan, arm64: don't instrument functions that enable kasan
> > > > config: x86_64-randconfig-r036-20200802 (attached as .config)
> > > > compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
> > > > reproduce (this is a W=1 build):
> > > > git checkout 7c0265f304de3c3acd02d0015b56a076357bcce3
> > > > # save the attached .config to linux build tree
> > > > make W=1 ARCH=x86_64
> > > >
> > > > If you fix the issue, kindly add following tag as appropriate
> > > > Reported-by: kernel test robot <lkp@intel.com>
> > > >
> > > > All errors (new ones prefixed by >>):
> > > >
> > > > ld: init/main.o: in function `start_kernel':
> > > > >> init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
> > >
> > > Hm, I can reproduce the issue, but I don't understand why it happens.
> > >
> > > +EFI and KASAN people, maybe someone has an idea.
> > >
> > > This is the guilty patch:
> > >
> > > https://github.com/hnaz/linux-mm/commit/7c0265f304de3c3acd02d0015b56a076357bcce3
> > >
> > > The issue is only with efi_enter_virtual_mode() AFAIU, not with any of
> > > the other functions.
> > >
> > > Thanks!
> > >
> >
> > After adding __no_sanitize_address, gcc doesn't inline efi_enabled() on
> > a KASAN build, even when CONFIG_EFI is disabled, and the function is
> > just
> > return false;
> > and so it isn't optimizing out the call to efi_enter_virtual_mode().
> >
> > Making efi_enabled() __always_inline fixes this, but not sure if that is
> > the correct fix?
>
> Ah, makes sense.
>
> We could also do #if defined(CONFIG_X86) && defined(CONFIG_EFI) in
> start_kernel().
>
> Or provide an empty efi_enter_virtual_mode() implementation when
> CONFIG_EFI isn't enabled.
>
> Ard, WDYT?
>
The latter seems more appropriate (as a static inline in efi.h), since
we could then remove the ifdef altogether afaict.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [hnaz-linux-mm:master 168/421] init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
@ 2020-08-04 12:40 ` Ard Biesheuvel
0 siblings, 0 replies; 15+ messages in thread
From: Ard Biesheuvel @ 2020-08-04 12:40 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 2394 bytes --]
On Tue, 4 Aug 2020 at 14:27, Andrey Konovalov <andreyknvl@google.com> wrote:
>
> On Mon, Aug 3, 2020 at 8:04 PM Arvind Sankar <nivedita@alum.mit.edu> wrote:
> >
> > On Mon, Aug 03, 2020 at 05:37:32PM +0200, Andrey Konovalov wrote:
> > > On Sun, Aug 2, 2020 at 12:25 AM kernel test robot <lkp@intel.com> wrote:
> > > >
> > > > tree: https://github.com/hnaz/linux-mm master
> > > > head: 2932a9e66c580f3c8d95ec27716d437198fb4c94
> > > > commit: 7c0265f304de3c3acd02d0015b56a076357bcce3 [168/421] kasan, arm64: don't instrument functions that enable kasan
> > > > config: x86_64-randconfig-r036-20200802 (attached as .config)
> > > > compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
> > > > reproduce (this is a W=1 build):
> > > > git checkout 7c0265f304de3c3acd02d0015b56a076357bcce3
> > > > # save the attached .config to linux build tree
> > > > make W=1 ARCH=x86_64
> > > >
> > > > If you fix the issue, kindly add following tag as appropriate
> > > > Reported-by: kernel test robot <lkp@intel.com>
> > > >
> > > > All errors (new ones prefixed by >>):
> > > >
> > > > ld: init/main.o: in function `start_kernel':
> > > > >> init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
> > >
> > > Hm, I can reproduce the issue, but I don't understand why it happens.
> > >
> > > +EFI and KASAN people, maybe someone has an idea.
> > >
> > > This is the guilty patch:
> > >
> > > https://github.com/hnaz/linux-mm/commit/7c0265f304de3c3acd02d0015b56a076357bcce3
> > >
> > > The issue is only with efi_enter_virtual_mode() AFAIU, not with any of
> > > the other functions.
> > >
> > > Thanks!
> > >
> >
> > After adding __no_sanitize_address, gcc doesn't inline efi_enabled() on
> > a KASAN build, even when CONFIG_EFI is disabled, and the function is
> > just
> > return false;
> > and so it isn't optimizing out the call to efi_enter_virtual_mode().
> >
> > Making efi_enabled() __always_inline fixes this, but not sure if that is
> > the correct fix?
>
> Ah, makes sense.
>
> We could also do #if defined(CONFIG_X86) && defined(CONFIG_EFI) in
> start_kernel().
>
> Or provide an empty efi_enter_virtual_mode() implementation when
> CONFIG_EFI isn't enabled.
>
> Ard, WDYT?
>
The latter seems more appropriate (as a static inline in efi.h), since
we could then remove the ifdef altogether afaict.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [hnaz-linux-mm:master 168/421] init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
2020-08-04 12:40 ` Ard Biesheuvel
(?)
@ 2020-08-04 12:44 ` Andrey Konovalov
-1 siblings, 0 replies; 15+ messages in thread
From: Andrey Konovalov @ 2020-08-04 12:44 UTC (permalink / raw)
To: Ard Biesheuvel
Cc: Arvind Sankar, linux-efi, Dmitry Vyukov, Alexander Potapenko,
kasan-dev, Andrey Ryabinin, kbuild-all, Johannes Weiner,
Andrew Morton, Linux Memory Management List, kernel test robot
On Tue, Aug 4, 2020 at 2:41 PM Ard Biesheuvel <ardb@kernel.org> wrote:
>
> On Tue, 4 Aug 2020 at 14:27, Andrey Konovalov <andreyknvl@google.com> wrote:
> >
> > On Mon, Aug 3, 2020 at 8:04 PM Arvind Sankar <nivedita@alum.mit.edu> wrote:
> > >
> > > On Mon, Aug 03, 2020 at 05:37:32PM +0200, Andrey Konovalov wrote:
> > > > On Sun, Aug 2, 2020 at 12:25 AM kernel test robot <lkp@intel.com> wrote:
> > > > >
> > > > > tree: https://github.com/hnaz/linux-mm master
> > > > > head: 2932a9e66c580f3c8d95ec27716d437198fb4c94
> > > > > commit: 7c0265f304de3c3acd02d0015b56a076357bcce3 [168/421] kasan, arm64: don't instrument functions that enable kasan
> > > > > config: x86_64-randconfig-r036-20200802 (attached as .config)
> > > > > compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
> > > > > reproduce (this is a W=1 build):
> > > > > git checkout 7c0265f304de3c3acd02d0015b56a076357bcce3
> > > > > # save the attached .config to linux build tree
> > > > > make W=1 ARCH=x86_64
> > > > >
> > > > > If you fix the issue, kindly add following tag as appropriate
> > > > > Reported-by: kernel test robot <lkp@intel.com>
> > > > >
> > > > > All errors (new ones prefixed by >>):
> > > > >
> > > > > ld: init/main.o: in function `start_kernel':
> > > > > >> init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
> > > >
> > > > Hm, I can reproduce the issue, but I don't understand why it happens.
> > > >
> > > > +EFI and KASAN people, maybe someone has an idea.
> > > >
> > > > This is the guilty patch:
> > > >
> > > > https://github.com/hnaz/linux-mm/commit/7c0265f304de3c3acd02d0015b56a076357bcce3
> > > >
> > > > The issue is only with efi_enter_virtual_mode() AFAIU, not with any of
> > > > the other functions.
> > > >
> > > > Thanks!
> > > >
> > >
> > > After adding __no_sanitize_address, gcc doesn't inline efi_enabled() on
> > > a KASAN build, even when CONFIG_EFI is disabled, and the function is
> > > just
> > > return false;
> > > and so it isn't optimizing out the call to efi_enter_virtual_mode().
> > >
> > > Making efi_enabled() __always_inline fixes this, but not sure if that is
> > > the correct fix?
> >
> > Ah, makes sense.
> >
> > We could also do #if defined(CONFIG_X86) && defined(CONFIG_EFI) in
> > start_kernel().
> >
> > Or provide an empty efi_enter_virtual_mode() implementation when
> > CONFIG_EFI isn't enabled.
> >
> > Ard, WDYT?
> >
>
> The latter seems more appropriate (as a static inline in efi.h), since
Sent out a v2 of my patchset with this exact fix included at the same
time I received this response :)
> we could then remove the ifdef altogether afaict.
I didn't do this part. I guess this can be done as a separate patch,
and will probably require some more testing.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [hnaz-linux-mm:master 168/421] init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
@ 2020-08-04 12:44 ` Andrey Konovalov
0 siblings, 0 replies; 15+ messages in thread
From: Andrey Konovalov @ 2020-08-04 12:44 UTC (permalink / raw)
To: Ard Biesheuvel
Cc: Arvind Sankar, linux-efi, Dmitry Vyukov, Alexander Potapenko,
kasan-dev, Andrey Ryabinin, kbuild-all, Johannes Weiner,
Andrew Morton, Linux Memory Management List, kernel test robot
On Tue, Aug 4, 2020 at 2:41 PM Ard Biesheuvel <ardb@kernel.org> wrote:
>
> On Tue, 4 Aug 2020 at 14:27, Andrey Konovalov <andreyknvl@google.com> wrote:
> >
> > On Mon, Aug 3, 2020 at 8:04 PM Arvind Sankar <nivedita@alum.mit.edu> wrote:
> > >
> > > On Mon, Aug 03, 2020 at 05:37:32PM +0200, Andrey Konovalov wrote:
> > > > On Sun, Aug 2, 2020 at 12:25 AM kernel test robot <lkp@intel.com> wrote:
> > > > >
> > > > > tree: https://github.com/hnaz/linux-mm master
> > > > > head: 2932a9e66c580f3c8d95ec27716d437198fb4c94
> > > > > commit: 7c0265f304de3c3acd02d0015b56a076357bcce3 [168/421] kasan, arm64: don't instrument functions that enable kasan
> > > > > config: x86_64-randconfig-r036-20200802 (attached as .config)
> > > > > compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
> > > > > reproduce (this is a W=1 build):
> > > > > git checkout 7c0265f304de3c3acd02d0015b56a076357bcce3
> > > > > # save the attached .config to linux build tree
> > > > > make W=1 ARCH=x86_64
> > > > >
> > > > > If you fix the issue, kindly add following tag as appropriate
> > > > > Reported-by: kernel test robot <lkp@intel.com>
> > > > >
> > > > > All errors (new ones prefixed by >>):
> > > > >
> > > > > ld: init/main.o: in function `start_kernel':
> > > > > >> init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
> > > >
> > > > Hm, I can reproduce the issue, but I don't understand why it happens.
> > > >
> > > > +EFI and KASAN people, maybe someone has an idea.
> > > >
> > > > This is the guilty patch:
> > > >
> > > > https://github.com/hnaz/linux-mm/commit/7c0265f304de3c3acd02d0015b56a076357bcce3
> > > >
> > > > The issue is only with efi_enter_virtual_mode() AFAIU, not with any of
> > > > the other functions.
> > > >
> > > > Thanks!
> > > >
> > >
> > > After adding __no_sanitize_address, gcc doesn't inline efi_enabled() on
> > > a KASAN build, even when CONFIG_EFI is disabled, and the function is
> > > just
> > > return false;
> > > and so it isn't optimizing out the call to efi_enter_virtual_mode().
> > >
> > > Making efi_enabled() __always_inline fixes this, but not sure if that is
> > > the correct fix?
> >
> > Ah, makes sense.
> >
> > We could also do #if defined(CONFIG_X86) && defined(CONFIG_EFI) in
> > start_kernel().
> >
> > Or provide an empty efi_enter_virtual_mode() implementation when
> > CONFIG_EFI isn't enabled.
> >
> > Ard, WDYT?
> >
>
> The latter seems more appropriate (as a static inline in efi.h), since
Sent out a v2 of my patchset with this exact fix included at the same
time I received this response :)
> we could then remove the ifdef altogether afaict.
I didn't do this part. I guess this can be done as a separate patch,
and will probably require some more testing.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [hnaz-linux-mm:master 168/421] init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
@ 2020-08-04 12:44 ` Andrey Konovalov
0 siblings, 0 replies; 15+ messages in thread
From: Andrey Konovalov @ 2020-08-04 12:44 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 2817 bytes --]
On Tue, Aug 4, 2020 at 2:41 PM Ard Biesheuvel <ardb@kernel.org> wrote:
>
> On Tue, 4 Aug 2020 at 14:27, Andrey Konovalov <andreyknvl@google.com> wrote:
> >
> > On Mon, Aug 3, 2020 at 8:04 PM Arvind Sankar <nivedita@alum.mit.edu> wrote:
> > >
> > > On Mon, Aug 03, 2020 at 05:37:32PM +0200, Andrey Konovalov wrote:
> > > > On Sun, Aug 2, 2020 at 12:25 AM kernel test robot <lkp@intel.com> wrote:
> > > > >
> > > > > tree: https://github.com/hnaz/linux-mm master
> > > > > head: 2932a9e66c580f3c8d95ec27716d437198fb4c94
> > > > > commit: 7c0265f304de3c3acd02d0015b56a076357bcce3 [168/421] kasan, arm64: don't instrument functions that enable kasan
> > > > > config: x86_64-randconfig-r036-20200802 (attached as .config)
> > > > > compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
> > > > > reproduce (this is a W=1 build):
> > > > > git checkout 7c0265f304de3c3acd02d0015b56a076357bcce3
> > > > > # save the attached .config to linux build tree
> > > > > make W=1 ARCH=x86_64
> > > > >
> > > > > If you fix the issue, kindly add following tag as appropriate
> > > > > Reported-by: kernel test robot <lkp@intel.com>
> > > > >
> > > > > All errors (new ones prefixed by >>):
> > > > >
> > > > > ld: init/main.o: in function `start_kernel':
> > > > > >> init/main.c:1012: undefined reference to `efi_enter_virtual_mode'
> > > >
> > > > Hm, I can reproduce the issue, but I don't understand why it happens.
> > > >
> > > > +EFI and KASAN people, maybe someone has an idea.
> > > >
> > > > This is the guilty patch:
> > > >
> > > > https://github.com/hnaz/linux-mm/commit/7c0265f304de3c3acd02d0015b56a076357bcce3
> > > >
> > > > The issue is only with efi_enter_virtual_mode() AFAIU, not with any of
> > > > the other functions.
> > > >
> > > > Thanks!
> > > >
> > >
> > > After adding __no_sanitize_address, gcc doesn't inline efi_enabled() on
> > > a KASAN build, even when CONFIG_EFI is disabled, and the function is
> > > just
> > > return false;
> > > and so it isn't optimizing out the call to efi_enter_virtual_mode().
> > >
> > > Making efi_enabled() __always_inline fixes this, but not sure if that is
> > > the correct fix?
> >
> > Ah, makes sense.
> >
> > We could also do #if defined(CONFIG_X86) && defined(CONFIG_EFI) in
> > start_kernel().
> >
> > Or provide an empty efi_enter_virtual_mode() implementation when
> > CONFIG_EFI isn't enabled.
> >
> > Ard, WDYT?
> >
>
> The latter seems more appropriate (as a static inline in efi.h), since
Sent out a v2 of my patchset with this exact fix included at the same
time I received this response :)
> we could then remove the ifdef altogether afaict.
I didn't do this part. I guess this can be done as a separate patch,
and will probably require some more testing.
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2020-08-04 12:45 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-01 22:25 [hnaz-linux-mm:master 168/421] init/main.c:1012: undefined reference to `efi_enter_virtual_mode' kernel test robot
2020-08-01 22:25 ` kernel test robot
2020-08-03 15:37 ` Andrey Konovalov
2020-08-03 15:37 ` Andrey Konovalov
2020-08-03 15:37 ` Andrey Konovalov
2020-08-03 18:03 ` Arvind Sankar
2020-08-04 12:27 ` Andrey Konovalov
2020-08-04 12:27 ` Andrey Konovalov
2020-08-04 12:27 ` Andrey Konovalov
2020-08-04 12:40 ` Ard Biesheuvel
2020-08-04 12:40 ` Ard Biesheuvel
2020-08-04 12:40 ` Ard Biesheuvel
2020-08-04 12:44 ` Andrey Konovalov
2020-08-04 12:44 ` Andrey Konovalov
2020-08-04 12:44 ` Andrey Konovalov
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.