Subject: Re: [PATCH] printk: Fix warning about unused suppress_message_printing

From: kbuild test robot <[email-masked]>
Date: Tue, 10 Jul 2018 19:53:36 +0800

Hi Petr,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.18-rc4 next-20180709]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Petr-Mladek/printk-Fix-warning-about-unused-suppress_message_printing/20180710-174802
config: ia64-allnoconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 8.1.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=8.1.0 make.cross ARCH=ia64 

All errors (new ones prefixed by >>):

   kernel/printk/printk.c: In function 'console_unlock':
>> kernel/printk/printk.c:2351:7: error: implicit declaration of function 'suppress_message_printing' [-Werror=implicit-function-declaration]
      if (suppress_message_printing(msg->level)) {
          ^~~~~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +/suppress_message_printing +2351 kernel/printk/printk.c

a8199371a kernel/printk/printk.c Sergey Senozhatsky      2016-03-17  2273  
^1da177e4 kernel/printk.c        Linus Torvalds          2005-04-16  2274  /**
ac751efa6 kernel/printk.c        Torben Hohn             2011-01-25  2275   * console_unlock - unlock the console system
^1da177e4 kernel/printk.c        Linus Torvalds          2005-04-16  2276   *
ac751efa6 kernel/printk.c        Torben Hohn             2011-01-25  2277   * Releases the console_lock which the caller holds on the console system
^1da177e4 kernel/printk.c        Linus Torvalds          2005-04-16  2278   * and the console driver list.
^1da177e4 kernel/printk.c        Linus Torvalds          2005-04-16  2279   *
ac751efa6 kernel/printk.c        Torben Hohn             2011-01-25  2280   * While the console_lock was held, console output may have been buffered
ac751efa6 kernel/printk.c        Torben Hohn             2011-01-25  2281   * by printk().  If this is the case, console_unlock(); emits
ac751efa6 kernel/printk.c        Torben Hohn             2011-01-25  2282   * the output prior to releasing the lock.
^1da177e4 kernel/printk.c        Linus Torvalds          2005-04-16  2283   *
7f3a781d6 kernel/printk.c        Kay Sievers             2012-05-09  2284   * If there is output waiting, we wake /dev/kmsg and syslog() users.
^1da177e4 kernel/printk.c        Linus Torvalds          2005-04-16  2285   *
ac751efa6 kernel/printk.c        Torben Hohn             2011-01-25  2286   * console_unlock(); may be called from any context.
^1da177e4 kernel/printk.c        Linus Torvalds          2005-04-16  2287   */
ac751efa6 kernel/printk.c        Torben Hohn             2011-01-25  2288  void console_unlock(void)
^1da177e4 kernel/printk.c        Linus Torvalds          2005-04-16  2289  {
6fe29354b kernel/printk/printk.c Tejun Heo               2015-06-25  2290  	static char ext_text[CONSOLE_EXT_LOG_MAX];
704982531 kernel/printk.c        Kay Sievers             2012-07-16  2291  	static char text[LOG_LINE_MAX + PREFIX_MAX];
^1da177e4 kernel/printk.c        Linus Torvalds          2005-04-16  2292  	unsigned long flags;
8d91f8b15 kernel/printk/printk.c Tejun Heo               2016-01-15  2293  	bool do_cond_resched, retry;
^1da177e4 kernel/printk.c        Linus Torvalds          2005-04-16  2294  
557240b48 kernel/printk.c        Linus Torvalds          2006-06-19  2295  	if (console_suspended) {
bd8d7cf5b kernel/printk/printk.c Jan Kara                2014-06-04  2296  		up_console_sem();
557240b48 kernel/printk.c        Linus Torvalds          2006-06-19  2297  		return;
557240b48 kernel/printk.c        Linus Torvalds          2006-06-19  2298  	}
78944e549 kernel/printk.c        Antonino A. Daplas      2006-08-05  2299  
8d91f8b15 kernel/printk/printk.c Tejun Heo               2016-01-15  2300  	/*
257ab4431 kernel/printk/printk.c Petr Mladek             2017-03-24  2301  	 * Console drivers are called with interrupts disabled, so
8d91f8b15 kernel/printk/printk.c Tejun Heo               2016-01-15  2302  	 * @console_may_schedule should be cleared before; however, we may
8d91f8b15 kernel/printk/printk.c Tejun Heo               2016-01-15  2303  	 * end up dumping a lot of lines, for example, if called from
8d91f8b15 kernel/printk/printk.c Tejun Heo               2016-01-15  2304  	 * console registration path, and should invoke cond_resched()
8d91f8b15 kernel/printk/printk.c Tejun Heo               2016-01-15  2305  	 * between lines if allowable.  Not doing so can cause a very long
8d91f8b15 kernel/printk/printk.c Tejun Heo               2016-01-15  2306  	 * scheduling stall on a slow console leading to RCU stall and
8d91f8b15 kernel/printk/printk.c Tejun Heo               2016-01-15  2307  	 * softlockup warnings which exacerbate the issue with more
8d91f8b15 kernel/printk/printk.c Tejun Heo               2016-01-15  2308  	 * messages practically incapacitating the system.
257ab4431 kernel/printk/printk.c Petr Mladek             2017-03-24  2309  	 *
257ab4431 kernel/printk/printk.c Petr Mladek             2017-03-24  2310  	 * console_trylock() is not able to detect the preemptive
257ab4431 kernel/printk/printk.c Petr Mladek             2017-03-24  2311  	 * context reliably. Therefore the value must be stored before
257ab4431 kernel/printk/printk.c Petr Mladek             2017-03-24  2312  	 * and cleared after the the "again" goto label.
8d91f8b15 kernel/printk/printk.c Tejun Heo               2016-01-15  2313  	 */
8d91f8b15 kernel/printk/printk.c Tejun Heo               2016-01-15  2314  	do_cond_resched = console_may_schedule;
257ab4431 kernel/printk/printk.c Petr Mladek             2017-03-24  2315  again:
78944e549 kernel/printk.c        Antonino A. Daplas      2006-08-05  2316  	console_may_schedule = 0;
78944e549 kernel/printk.c        Antonino A. Daplas      2006-08-05  2317  
a8199371a kernel/printk/printk.c Sergey Senozhatsky      2016-03-17  2318  	/*
a8199371a kernel/printk/printk.c Sergey Senozhatsky      2016-03-17  2319  	 * We released the console_sem lock, so we need to recheck if
a8199371a kernel/printk/printk.c Sergey Senozhatsky      2016-03-17  2320  	 * cpu is online and (if not) is there at least one CON_ANYTIME
a8199371a kernel/printk/printk.c Sergey Senozhatsky      2016-03-17  2321  	 * console.
a8199371a kernel/printk/printk.c Sergey Senozhatsky      2016-03-17  2322  	 */
a8199371a kernel/printk/printk.c Sergey Senozhatsky      2016-03-17  2323  	if (!can_use_console()) {
a8199371a kernel/printk/printk.c Sergey Senozhatsky      2016-03-17  2324  		console_locked = 0;
a8199371a kernel/printk/printk.c Sergey Senozhatsky      2016-03-17  2325  		up_console_sem();
a8199371a kernel/printk/printk.c Sergey Senozhatsky      2016-03-17  2326  		return;
a8199371a kernel/printk/printk.c Sergey Senozhatsky      2016-03-17  2327  	}
a8199371a kernel/printk/printk.c Sergey Senozhatsky      2016-03-17  2328  
^1da177e4 kernel/printk.c        Linus Torvalds          2005-04-16  2329  	for (;;) {
62e32ac35 kernel/printk/printk.c Joe Perches             2013-07-31  2330  		struct printk_log *msg;
6fe29354b kernel/printk/printk.c Tejun Heo               2015-06-25  2331  		size_t ext_len = 0;
3ce9a7c0a kernel/printk.c        Kay Sievers             2012-05-13  2332  		size_t len;
7ff9554bb kernel/printk.c        Kay Sievers             2012-05-03  2333  
f975237b7 kernel/printk/printk.c Sergey Senozhatsky      2016-12-27  2334  		printk_safe_enter_irqsave(flags);
f975237b7 kernel/printk/printk.c Sergey Senozhatsky      2016-12-27  2335  		raw_spin_lock(&logbuf_lock);
7ff9554bb kernel/printk.c        Kay Sievers             2012-05-03  2336  		if (console_seq < log_first_seq) {
9afe77ed8 kernel/printk/printk.c Maxim Akristiniy        2017-10-23  2337  			len = sprintf(text, "** %u printk messages dropped **\n",
84b5ec8a9 kernel/printk/printk.c Will Deacon             2014-06-04  2338  				      (unsigned)(log_first_seq - console_seq));
84b5ec8a9 kernel/printk/printk.c Will Deacon             2014-06-04  2339  
7ff9554bb kernel/printk.c        Kay Sievers             2012-05-03  2340  			/* messages are gone, move to first one */
7ff9554bb kernel/printk.c        Kay Sievers             2012-05-03  2341  			console_seq = log_first_seq;
7ff9554bb kernel/printk.c        Kay Sievers             2012-05-03  2342  			console_idx = log_first_idx;
84b5ec8a9 kernel/printk/printk.c Will Deacon             2014-06-04  2343  		} else {
84b5ec8a9 kernel/printk/printk.c Will Deacon             2014-06-04  2344  			len = 0;
7ff9554bb kernel/printk.c        Kay Sievers             2012-05-03  2345  		}
084681d14 kernel/printk.c        Kay Sievers             2012-06-28  2346  skip:
7ff9554bb kernel/printk.c        Kay Sievers             2012-05-03  2347  		if (console_seq == log_next_seq)
7ff9554bb kernel/printk.c        Kay Sievers             2012-05-03  2348  			break;
7ff9554bb kernel/printk.c        Kay Sievers             2012-05-03  2349  
7ff9554bb kernel/printk.c        Kay Sievers             2012-05-03  2350  		msg = log_from_idx(console_idx);
d9c23523e kernel/printk/printk.c Sergey Senozhatsky      2016-12-24 @2351  		if (suppress_message_printing(msg->level)) {
084681d14 kernel/printk.c        Kay Sievers             2012-06-28  2352  			/*
084681d14 kernel/printk.c        Kay Sievers             2012-06-28  2353  			 * Skip record we have buffered and already printed
cf7754441 kernel/printk/printk.c Sergey Senozhatsky      2016-08-02  2354  			 * directly to the console when we received it, and
cf7754441 kernel/printk/printk.c Sergey Senozhatsky      2016-08-02  2355  			 * record that has level above the console loglevel.
084681d14 kernel/printk.c        Kay Sievers             2012-06-28  2356  			 */
084681d14 kernel/printk.c        Kay Sievers             2012-06-28  2357  			console_idx = log_next(console_idx);
084681d14 kernel/printk.c        Kay Sievers             2012-06-28  2358  			console_seq++;
084681d14 kernel/printk.c        Kay Sievers             2012-06-28  2359  			goto skip;
084681d14 kernel/printk.c        Kay Sievers             2012-06-28  2360  		}
649e6ee33 kernel/printk.c        Kay Sievers             2012-05-10  2361  
cca10d58d kernel/printk/printk.c Sergey Senozhatsky      2017-12-21  2362  		len += msg_print_text(msg,
cca10d58d kernel/printk/printk.c Sergey Senozhatsky      2017-12-21  2363  				console_msg_format & MSG_FORMAT_SYSLOG,
cca10d58d kernel/printk/printk.c Sergey Senozhatsky      2017-12-21  2364  				text + len,
cca10d58d kernel/printk/printk.c Sergey Senozhatsky      2017-12-21  2365  				sizeof(text) - len);
6fe29354b kernel/printk/printk.c Tejun Heo               2015-06-25  2366  		if (nr_ext_console_drivers) {
6fe29354b kernel/printk/printk.c Tejun Heo               2015-06-25  2367  			ext_len = msg_print_ext_header(ext_text,
6fe29354b kernel/printk/printk.c Tejun Heo               2015-06-25  2368  						sizeof(ext_text),
5aa068ea4 kernel/printk/printk.c Linus Torvalds          2016-10-25  2369  						msg, console_seq);
6fe29354b kernel/printk/printk.c Tejun Heo               2015-06-25  2370  			ext_len += msg_print_ext_body(ext_text + ext_len,
6fe29354b kernel/printk/printk.c Tejun Heo               2015-06-25  2371  						sizeof(ext_text) - ext_len,
6fe29354b kernel/printk/printk.c Tejun Heo               2015-06-25  2372  						log_dict(msg), msg->dict_len,
6fe29354b kernel/printk/printk.c Tejun Heo               2015-06-25  2373  						log_text(msg), msg->text_len);
6fe29354b kernel/printk/printk.c Tejun Heo               2015-06-25  2374  		}
7ff9554bb kernel/printk.c        Kay Sievers             2012-05-03  2375  		console_idx = log_next(console_idx);
7ff9554bb kernel/printk.c        Kay Sievers             2012-05-03  2376  		console_seq++;
07354eb1a kernel/printk.c        Thomas Gleixner         2009-07-25  2377  		raw_spin_unlock(&logbuf_lock);
7ff9554bb kernel/printk.c        Kay Sievers             2012-05-03  2378  
dbdda842f kernel/printk/printk.c Steven Rostedt (VMware  2018-01-10  2379) 		/*
dbdda842f kernel/printk/printk.c Steven Rostedt (VMware  2018-01-10  2380) 		 * While actively printing out messages, if another printk()
dbdda842f kernel/printk/printk.c Steven Rostedt (VMware  2018-01-10  2381) 		 * were to occur on another CPU, it may wait for this one to
dbdda842f kernel/printk/printk.c Steven Rostedt (VMware  2018-01-10  2382) 		 * finish. This task can not be preempted if there is a
dbdda842f kernel/printk/printk.c Steven Rostedt (VMware  2018-01-10  2383) 		 * waiter waiting to take over.
dbdda842f kernel/printk/printk.c Steven Rostedt (VMware  2018-01-10  2384) 		 */
c162d5b43 kernel/printk/printk.c Petr Mladek             2018-01-12  2385  		console_lock_spinning_enable();
dbdda842f kernel/printk/printk.c Steven Rostedt (VMware  2018-01-10  2386) 
81d68a96a kernel/printk.c        Steven Rostedt          2008-05-12  2387  		stop_critical_timings();	/* don't trace print latency */
d9c23523e kernel/printk/printk.c Sergey Senozhatsky      2016-12-24  2388  		call_console_drivers(ext_text, ext_len, text, len);
81d68a96a kernel/printk.c        Steven Rostedt          2008-05-12  2389  		start_critical_timings();
dbdda842f kernel/printk/printk.c Steven Rostedt (VMware  2018-01-10  2390) 
c162d5b43 kernel/printk/printk.c Petr Mladek             2018-01-12  2391  		if (console_lock_spinning_disable_and_check()) {
c162d5b43 kernel/printk/printk.c Petr Mladek             2018-01-12  2392  			printk_safe_exit_irqrestore(flags);
43a17111c kernel/printk/printk.c Sergey Senozhatsky      2018-04-19  2393  			return;
c162d5b43 kernel/printk/printk.c Petr Mladek             2018-01-12  2394  		}
dbdda842f kernel/printk/printk.c Steven Rostedt (VMware  2018-01-10  2395) 
f975237b7 kernel/printk/printk.c Sergey Senozhatsky      2016-12-27  2396  		printk_safe_exit_irqrestore(flags);
8d91f8b15 kernel/printk/printk.c Tejun Heo               2016-01-15  2397  
8d91f8b15 kernel/printk/printk.c Tejun Heo               2016-01-15  2398  		if (do_cond_resched)
8d91f8b15 kernel/printk/printk.c Tejun Heo               2016-01-15  2399  			cond_resched();
^1da177e4 kernel/printk.c        Linus Torvalds          2005-04-16  2400  	}
dbdda842f kernel/printk/printk.c Steven Rostedt (VMware  2018-01-10  2401) 
^1da177e4 kernel/printk.c        Linus Torvalds          2005-04-16  2402  	console_locked = 0;
fe3d8ad31 kernel/printk.c        Feng Tang               2011-03-22  2403  
fe3d8ad31 kernel/printk.c        Feng Tang               2011-03-22  2404  	/* Release the exclusive_console once it is used */
fe3d8ad31 kernel/printk.c        Feng Tang               2011-03-22  2405  	if (unlikely(exclusive_console))
fe3d8ad31 kernel/printk.c        Feng Tang               2011-03-22  2406  		exclusive_console = NULL;
fe3d8ad31 kernel/printk.c        Feng Tang               2011-03-22  2407  
07354eb1a kernel/printk.c        Thomas Gleixner         2009-07-25  2408  	raw_spin_unlock(&logbuf_lock);
4f2a8d3cf kernel/printk.c        Peter Zijlstra          2011-06-22  2409  
bd8d7cf5b kernel/printk/printk.c Jan Kara                2014-06-04  2410  	up_console_sem();
4f2a8d3cf kernel/printk.c        Peter Zijlstra          2011-06-22  2411  
4f2a8d3cf kernel/printk.c        Peter Zijlstra          2011-06-22  2412  	/*
4f2a8d3cf kernel/printk.c        Peter Zijlstra          2011-06-22  2413  	 * Someone could have filled up the buffer again, so re-check if there's
4f2a8d3cf kernel/printk.c        Peter Zijlstra          2011-06-22  2414  	 * something to flush. In case we cannot trylock the console_sem again,
4f2a8d3cf kernel/printk.c        Peter Zijlstra          2011-06-22  2415  	 * there's a new owner and the console_unlock() from them will do the
4f2a8d3cf kernel/printk.c        Peter Zijlstra          2011-06-22  2416  	 * flush, no worries.
4f2a8d3cf kernel/printk.c        Peter Zijlstra          2011-06-22  2417  	 */
07354eb1a kernel/printk.c        Thomas Gleixner         2009-07-25  2418  	raw_spin_lock(&logbuf_lock);
7ff9554bb kernel/printk.c        Kay Sievers             2012-05-03  2419  	retry = console_seq != log_next_seq;
f975237b7 kernel/printk/printk.c Sergey Senozhatsky      2016-12-27  2420  	raw_spin_unlock(&logbuf_lock);
f975237b7 kernel/printk/printk.c Sergey Senozhatsky      2016-12-27  2421  	printk_safe_exit_irqrestore(flags);
09dc3cf93 kernel/printk.c        Peter Zijlstra          2011-12-08  2422  
4f2a8d3cf kernel/printk.c        Peter Zijlstra          2011-06-22  2423  	if (retry && console_trylock())
4f2a8d3cf kernel/printk.c        Peter Zijlstra          2011-06-22  2424  		goto again;
^1da177e4 kernel/printk.c        Linus Torvalds          2005-04-16  2425  }
ac751efa6 kernel/printk.c        Torben Hohn             2011-01-25  2426  EXPORT_SYMBOL(console_unlock);
^1da177e4 kernel/printk.c        Linus Torvalds          2005-04-16  2427  

:::::: The code at line 2351 was first introduced by commit
:::::: d9c23523ed98a3acaa0bfd8fef143595d6aa631d printk: drop call_console_drivers() unused param

:::::: TO: Sergey Senozhatsky <[email-masked]>
:::::: CC: Petr Mladek <[email-masked]>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation