All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Xiaoming Ni <nixiaoming@huawei.com>
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
	linux-kernel@vger.kernel.org,
	Luis Chamberlain <mcgrof@kernel.org>
Subject: [mcgrof-next:20211117-sysctl-cleanups-all-set-04 22/36] kernel/printk/printk.c:3205:2: error: implicit declaration of function 'printk_sysctl_init'
Date: Thu, 18 Nov 2021 12:21:36 +0800	[thread overview]
Message-ID: <202111181227.amZoxZqg-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 5792 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git 20211117-sysctl-cleanups-all-set-04
head:   3559bb8939dd93c96215ab179d868c5fdc167335
commit: 99f50ec2e9ced923150fa9f7d6d9a5f767cba59c [22/36] printk: move printk sysctl to printk/sysctl.c
config: arm-randconfig-r012-20211118 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project c46becf500df2a7fb4b4fce16178a036c344315a)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git/commit/?id=99f50ec2e9ced923150fa9f7d6d9a5f767cba59c
        git remote add mcgrof-next https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git
        git fetch --no-tags mcgrof-next 20211117-sysctl-cleanups-all-set-04
        git checkout 99f50ec2e9ced923150fa9f7d6d9a5f767cba59c
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=arm 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All error/warnings (new ones prefixed by >>):

   kernel/printk/printk.c:175:5: warning: no previous prototype for function 'devkmsg_sysctl_set_loglvl' [-Wmissing-prototypes]
   int devkmsg_sysctl_set_loglvl(struct ctl_table *table, int write,
       ^
   kernel/printk/printk.c:175:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int devkmsg_sysctl_set_loglvl(struct ctl_table *table, int write,
   ^
   static 
>> kernel/printk/printk.c:3205:2: error: implicit declaration of function 'printk_sysctl_init' [-Werror,-Wimplicit-function-declaration]
           printk_sysctl_init();
           ^
   kernel/printk/printk.c:3205:2: note: did you mean 'printk_late_init'?
   kernel/printk/printk.c:3174:19: note: 'printk_late_init' declared here
   static int __init printk_late_init(void)
                     ^
   1 warning and 1 error generated.
--
>> kernel/printk/sysctl.c:47:13: error: use of undeclared identifier 'printk_delay_msec'
                   .data           = &printk_delay_msec,
                                      ^
>> kernel/printk/sysctl.c:59:19: error: use of undeclared identifier 'devkmsg_sysctl_set_loglvl'
                   .proc_handler   = devkmsg_sysctl_set_loglvl,
                                     ^
>> kernel/printk/sysctl.c:63:13: error: use of undeclared identifier 'dmesg_restrict'; did you mean 'kptr_restrict'?
                   .data           = &dmesg_restrict,
                                      ^~~~~~~~~~~~~~
                                      kptr_restrict
   include/linux/printk.h:324:12: note: 'kptr_restrict' declared here
   extern int kptr_restrict;
              ^
>> kernel/printk/sysctl.c:82:13: warning: no previous prototype for function 'printk_sysctl_init' [-Wmissing-prototypes]
   void __init printk_sysctl_init(void)
               ^
   kernel/printk/sysctl.c:82:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void __init printk_sysctl_init(void)
   ^
   static 
   1 warning and 3 errors generated.


vim +/printk_sysctl_init +3205 kernel/printk/printk.c

  3159	
  3160	/*
  3161	 * Some boot consoles access data that is in the init section and which will
  3162	 * be discarded after the initcalls have been run. To make sure that no code
  3163	 * will access this data, unregister the boot consoles in a late initcall.
  3164	 *
  3165	 * If for some reason, such as deferred probe or the driver being a loadable
  3166	 * module, the real console hasn't registered yet at this point, there will
  3167	 * be a brief interval in which no messages are logged to the console, which
  3168	 * makes it difficult to diagnose problems that occur during this time.
  3169	 *
  3170	 * To mitigate this problem somewhat, only unregister consoles whose memory
  3171	 * intersects with the init section. Note that all other boot consoles will
  3172	 * get unregistered when the real preferred console is registered.
  3173	 */
  3174	static int __init printk_late_init(void)
  3175	{
  3176		struct console *con;
  3177		int ret;
  3178	
  3179		for_each_console(con) {
  3180			if (!(con->flags & CON_BOOT))
  3181				continue;
  3182	
  3183			/* Check addresses that might be used for enabled consoles. */
  3184			if (init_section_intersects(con, sizeof(*con)) ||
  3185			    init_section_contains(con->write, 0) ||
  3186			    init_section_contains(con->read, 0) ||
  3187			    init_section_contains(con->device, 0) ||
  3188			    init_section_contains(con->unblank, 0) ||
  3189			    init_section_contains(con->data, 0)) {
  3190				/*
  3191				 * Please, consider moving the reported consoles out
  3192				 * of the init section.
  3193				 */
  3194				pr_warn("bootconsole [%s%d] uses init memory and must be disabled even before the real one is ready\n",
  3195					con->name, con->index);
  3196				unregister_console(con);
  3197			}
  3198		}
  3199		ret = cpuhp_setup_state_nocalls(CPUHP_PRINTK_DEAD, "printk:dead", NULL,
  3200						console_cpu_notify);
  3201		WARN_ON(ret < 0);
  3202		ret = cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "printk:online",
  3203						console_cpu_notify, NULL);
  3204		WARN_ON(ret < 0);
> 3205		printk_sysctl_init();
  3206		return 0;
  3207	}
  3208	late_initcall(printk_late_init);
  3209	

---
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: 33365 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [mcgrof-next:20211117-sysctl-cleanups-all-set-04 22/36] kernel/printk/printk.c:3205:2: error: implicit declaration of function 'printk_sysctl_init'
Date: Thu, 18 Nov 2021 12:21:36 +0800	[thread overview]
Message-ID: <202111181227.amZoxZqg-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 5912 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git 20211117-sysctl-cleanups-all-set-04
head:   3559bb8939dd93c96215ab179d868c5fdc167335
commit: 99f50ec2e9ced923150fa9f7d6d9a5f767cba59c [22/36] printk: move printk sysctl to printk/sysctl.c
config: arm-randconfig-r012-20211118 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project c46becf500df2a7fb4b4fce16178a036c344315a)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git/commit/?id=99f50ec2e9ced923150fa9f7d6d9a5f767cba59c
        git remote add mcgrof-next https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git
        git fetch --no-tags mcgrof-next 20211117-sysctl-cleanups-all-set-04
        git checkout 99f50ec2e9ced923150fa9f7d6d9a5f767cba59c
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=arm 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All error/warnings (new ones prefixed by >>):

   kernel/printk/printk.c:175:5: warning: no previous prototype for function 'devkmsg_sysctl_set_loglvl' [-Wmissing-prototypes]
   int devkmsg_sysctl_set_loglvl(struct ctl_table *table, int write,
       ^
   kernel/printk/printk.c:175:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int devkmsg_sysctl_set_loglvl(struct ctl_table *table, int write,
   ^
   static 
>> kernel/printk/printk.c:3205:2: error: implicit declaration of function 'printk_sysctl_init' [-Werror,-Wimplicit-function-declaration]
           printk_sysctl_init();
           ^
   kernel/printk/printk.c:3205:2: note: did you mean 'printk_late_init'?
   kernel/printk/printk.c:3174:19: note: 'printk_late_init' declared here
   static int __init printk_late_init(void)
                     ^
   1 warning and 1 error generated.
--
>> kernel/printk/sysctl.c:47:13: error: use of undeclared identifier 'printk_delay_msec'
                   .data           = &printk_delay_msec,
                                      ^
>> kernel/printk/sysctl.c:59:19: error: use of undeclared identifier 'devkmsg_sysctl_set_loglvl'
                   .proc_handler   = devkmsg_sysctl_set_loglvl,
                                     ^
>> kernel/printk/sysctl.c:63:13: error: use of undeclared identifier 'dmesg_restrict'; did you mean 'kptr_restrict'?
                   .data           = &dmesg_restrict,
                                      ^~~~~~~~~~~~~~
                                      kptr_restrict
   include/linux/printk.h:324:12: note: 'kptr_restrict' declared here
   extern int kptr_restrict;
              ^
>> kernel/printk/sysctl.c:82:13: warning: no previous prototype for function 'printk_sysctl_init' [-Wmissing-prototypes]
   void __init printk_sysctl_init(void)
               ^
   kernel/printk/sysctl.c:82:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void __init printk_sysctl_init(void)
   ^
   static 
   1 warning and 3 errors generated.


vim +/printk_sysctl_init +3205 kernel/printk/printk.c

  3159	
  3160	/*
  3161	 * Some boot consoles access data that is in the init section and which will
  3162	 * be discarded after the initcalls have been run. To make sure that no code
  3163	 * will access this data, unregister the boot consoles in a late initcall.
  3164	 *
  3165	 * If for some reason, such as deferred probe or the driver being a loadable
  3166	 * module, the real console hasn't registered yet at this point, there will
  3167	 * be a brief interval in which no messages are logged to the console, which
  3168	 * makes it difficult to diagnose problems that occur during this time.
  3169	 *
  3170	 * To mitigate this problem somewhat, only unregister consoles whose memory
  3171	 * intersects with the init section. Note that all other boot consoles will
  3172	 * get unregistered when the real preferred console is registered.
  3173	 */
  3174	static int __init printk_late_init(void)
  3175	{
  3176		struct console *con;
  3177		int ret;
  3178	
  3179		for_each_console(con) {
  3180			if (!(con->flags & CON_BOOT))
  3181				continue;
  3182	
  3183			/* Check addresses that might be used for enabled consoles. */
  3184			if (init_section_intersects(con, sizeof(*con)) ||
  3185			    init_section_contains(con->write, 0) ||
  3186			    init_section_contains(con->read, 0) ||
  3187			    init_section_contains(con->device, 0) ||
  3188			    init_section_contains(con->unblank, 0) ||
  3189			    init_section_contains(con->data, 0)) {
  3190				/*
  3191				 * Please, consider moving the reported consoles out
  3192				 * of the init section.
  3193				 */
  3194				pr_warn("bootconsole [%s%d] uses init memory and must be disabled even before the real one is ready\n",
  3195					con->name, con->index);
  3196				unregister_console(con);
  3197			}
  3198		}
  3199		ret = cpuhp_setup_state_nocalls(CPUHP_PRINTK_DEAD, "printk:dead", NULL,
  3200						console_cpu_notify);
  3201		WARN_ON(ret < 0);
  3202		ret = cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "printk:online",
  3203						console_cpu_notify, NULL);
  3204		WARN_ON(ret < 0);
> 3205		printk_sysctl_init();
  3206		return 0;
  3207	}
  3208	late_initcall(printk_late_init);
  3209	

---
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: 33365 bytes --]

             reply	other threads:[~2021-11-18  4:22 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-18  4:21 kernel test robot [this message]
2021-11-18  4:21 ` [mcgrof-next:20211117-sysctl-cleanups-all-set-04 22/36] kernel/printk/printk.c:3205:2: error: implicit declaration of function 'printk_sysctl_init' kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202111181227.amZoxZqg-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=mcgrof@kernel.org \
    --cc=nixiaoming@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.