lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 6 Feb 2024 16:05:22 +0800
From: kernel test robot <lkp@...el.com>
To: Yuanhe Shu <xiangzao@...ux.alibaba.com>, keescook@...omium.org,
	tony.luck@...el.com, gpiccoli@...lia.com, shuah@...nel.org,
	corbet@....net
Cc: oe-kbuild-all@...ts.linux.dev, xlpang@...ux.alibaba.com,
	linux-kernel@...r.kernel.org, linux-doc@...r.kernel.org,
	linux-hardening@...r.kernel.org, linux-kselftest@...r.kernel.org,
	Yuanhe Shu <xiangzao@...ux.alibaba.com>,
	Xingrui Yi <yixingrui@...ux.alibaba.com>
Subject: Re: [PATCH 1/3] pstore: add multi-backend support

Hi Yuanhe,

kernel test robot noticed the following build errors:

[auto build test ERROR on kees/for-next/pstore]
[also build test ERROR on kees/for-next/kspp shuah-kselftest/next shuah-kselftest/fixes linus/master v6.8-rc3 next-20240205]
[cannot apply to aegl/next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Yuanhe-Shu/pstore-add-multi-backend-support/20240205-203438
base:   https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/pstore
patch link:    https://lore.kernel.org/r/20240205122852.7069-2-xiangzao%40linux.alibaba.com
patch subject: [PATCH 1/3] pstore: add multi-backend support
config: csky-randconfig-r071-20240206 (https://download.01.org/0day-ci/archive/20240206/202402061551.EkLBF7yD-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240206/202402061551.EkLBF7yD-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202402061551.EkLBF7yD-lkp@intel.com/

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

>> fs/pstore/ftrace.c:30:47: warning: 'struct ftrace_info' declared inside parameter list will not be visible outside of this definition or declaration
      30 |                                        struct ftrace_info *psinfo)
         |                                               ^~~~~~~~~~~
   fs/pstore/ftrace.c: In function 'pstore_do_ftrace':
>> fs/pstore/ftrace.c:39:24: error: initialization of 'struct pstore_info *' from incompatible pointer type 'struct ftrace_info *' [-Werror=incompatible-pointer-types]
      39 |                 .psi = psinfo,
         |                        ^~~~~~
   fs/pstore/ftrace.c:39:24: note: (near initialization for 'record.psi')
>> fs/pstore/ftrace.c:55:15: error: invalid use of undefined type 'struct ftrace_info'
      55 |         psinfo->write(&record);
         |               ^~
   fs/pstore/ftrace.c: In function 'pstore_ftrace_call':
>> fs/pstore/ftrace.c:71:61: error: passing argument 4 of 'pstore_do_ftrace' from incompatible pointer type [-Werror=incompatible-pointer-types]
      71 |                         pstore_do_ftrace(ip, parent_ip, op, regs, entry->psi);
         |                                                             ^~~~
         |                                                             |
         |                                                             struct pt_regs *
   fs/pstore/ftrace.c:29:60: note: expected 'struct ftrace_regs *' but argument is of type 'struct pt_regs *'
      29 |                                        struct ftrace_regs *fregs,
         |                                        ~~~~~~~~~~~~~~~~~~~~^~~~~
   fs/pstore/ftrace.c:71:72: error: passing argument 5 of 'pstore_do_ftrace' from incompatible pointer type [-Werror=incompatible-pointer-types]
      71 |                         pstore_do_ftrace(ip, parent_ip, op, regs, entry->psi);
         |                                                                   ~~~~~^~~~~
         |                                                                        |
         |                                                                        struct pstore_info *
   fs/pstore/ftrace.c:30:60: note: expected 'struct ftrace_info *' but argument is of type 'struct pstore_info *'
      30 |                                        struct ftrace_info *psinfo)
         |                                        ~~~~~~~~~~~~~~~~~~~~^~~~~~
   fs/pstore/ftrace.c: At top level:
>> fs/pstore/ftrace.c:76:19: error: initialization of 'void (*)(long unsigned int,  long unsigned int,  struct ftrace_ops *, struct ftrace_regs *)' from incompatible pointer type 'void (*)(long unsigned int,  long unsigned int,  struct ftrace_ops *, struct pt_regs *)' [-Werror=incompatible-pointer-types]
      76 |         .func   = pstore_ftrace_call,
         |                   ^~~~~~~~~~~~~~~~~~
   fs/pstore/ftrace.c:76:19: note: (near initialization for 'pstore_ftrace_ops.func')
   In file included from include/linux/dcache.h:8,
                    from include/linux/fs.h:8,
                    from include/linux/huge_mm.h:8,
                    from include/linux/mm.h:1095,
                    from include/linux/kallsyms.h:13,
                    from include/linux/ftrace.h:13,
                    from fs/pstore/ftrace.c:14:
   fs/pstore/ftrace.c: In function 'pstore_register_ftrace':
>> fs/pstore/ftrace.c:150:33: error: 'entry' undeclared (first use in this function); did you mean 'dentry'?
     150 |         list_for_each_entry_rcu(entry, &psback->list_entry, list)
         |                                 ^~~~~
   include/linux/rculist.h:391:14: note: in definition of macro 'list_for_each_entry_rcu'
     391 |              pos = list_entry_rcu((head)->next, typeof(*pos), member);  \
         |              ^~~
   fs/pstore/ftrace.c:150:33: note: each undeclared identifier is reported only once for each function it appears in
     150 |         list_for_each_entry_rcu(entry, &psback->list_entry, list)
         |                                 ^~~~~
   include/linux/rculist.h:391:14: note: in definition of macro 'list_for_each_entry_rcu'
     391 |              pos = list_entry_rcu((head)->next, typeof(*pos), member);  \
         |              ^~~
   In file included from include/linux/container_of.h:5,
                    from include/linux/kernel.h:22,
                    from fs/pstore/ftrace.c:6:
   include/linux/compiler_types.h:376:27: error: expression in static assertion is not an integer
     376 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
         |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
      78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
         |                                                        ^~~~
   include/linux/container_of.h:20:9: note: in expansion of macro 'static_assert'
      20 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
         |         ^~~~~~~~~~~~~
   include/linux/container_of.h:20:23: note: in expansion of macro '__same_type'
      20 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
         |                       ^~~~~~~~~~~
   include/linux/rculist.h:307:9: note: in expansion of macro 'container_of'
     307 |         container_of(READ_ONCE(ptr), type, member)
         |         ^~~~~~~~~~~~
   include/linux/rculist.h:391:20: note: in expansion of macro 'list_entry_rcu'
     391 |              pos = list_entry_rcu((head)->next, typeof(*pos), member);  \
         |                    ^~~~~~~~~~~~~~
   fs/pstore/ftrace.c:150:9: note: in expansion of macro 'list_for_each_entry_rcu'
     150 |         list_for_each_entry_rcu(entry, &psback->list_entry, list)
         |         ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler_types.h:376:27: error: expression in static assertion is not an integer
     376 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
         |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
      78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
         |                                                        ^~~~
   include/linux/container_of.h:20:9: note: in expansion of macro 'static_assert'
      20 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
         |         ^~~~~~~~~~~~~
   include/linux/container_of.h:20:23: note: in expansion of macro '__same_type'
      20 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
         |                       ^~~~~~~~~~~
   include/linux/rculist.h:307:9: note: in expansion of macro 'container_of'
     307 |         container_of(READ_ONCE(ptr), type, member)
         |         ^~~~~~~~~~~~
   include/linux/rculist.h:393:23: note: in expansion of macro 'list_entry_rcu'
     393 |                 pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
         |                       ^~~~~~~~~~~~~~
   fs/pstore/ftrace.c:150:9: note: in expansion of macro 'list_for_each_entry_rcu'
     150 |         list_for_each_entry_rcu(entry, &psback->list_entry, list)
         |         ^~~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +39 fs/pstore/ftrace.c

fbccdeb8d77d68 Joel Fernandes          2016-10-20   25  
7b968e55e3984c Yuanhe Shu              2024-02-05   26  static void notrace pstore_do_ftrace(unsigned long ip,
ebacfd1ece3bfa Anton Vorontsov         2012-11-14   27  				       unsigned long parent_ip,
ebacfd1ece3bfa Anton Vorontsov         2012-11-14   28  				       struct ftrace_ops *op,
7b968e55e3984c Yuanhe Shu              2024-02-05   29  				       struct ftrace_regs *fregs,
7b968e55e3984c Yuanhe Shu              2024-02-05  @30  				       struct ftrace_info *psinfo)
060287b8c467bf Anton Vorontsov         2012-07-09   31  {
6cdf941871ec9c Steven Rostedt (VMware  2020-11-05   32) 	int bit;
65f8c95e46a182 Anton Vorontsov         2012-07-17   33  	unsigned long flags;
060287b8c467bf Anton Vorontsov         2012-07-09   34  	struct pstore_ftrace_record rec = {};
b10b471145f28c Kees Cook               2017-03-05   35  	struct pstore_record record = {
b10b471145f28c Kees Cook               2017-03-05   36  		.type = PSTORE_TYPE_FTRACE,
b10b471145f28c Kees Cook               2017-03-05   37  		.buf = (char *)&rec,
b10b471145f28c Kees Cook               2017-03-05   38  		.size = sizeof(rec),
b10b471145f28c Kees Cook               2017-03-05  @39  		.psi = psinfo,
b10b471145f28c Kees Cook               2017-03-05   40  	};
060287b8c467bf Anton Vorontsov         2012-07-09   41  
060287b8c467bf Anton Vorontsov         2012-07-09   42  	if (unlikely(oops_in_progress))
060287b8c467bf Anton Vorontsov         2012-07-09   43  		return;
060287b8c467bf Anton Vorontsov         2012-07-09   44  
773c16705058e9 Steven Rostedt (VMware  2020-11-05   45) 	bit = ftrace_test_recursion_trylock(ip, parent_ip);
6cdf941871ec9c Steven Rostedt (VMware  2020-11-05   46) 	if (bit < 0)
6cdf941871ec9c Steven Rostedt (VMware  2020-11-05   47) 		return;
6cdf941871ec9c Steven Rostedt (VMware  2020-11-05   48) 
65f8c95e46a182 Anton Vorontsov         2012-07-17   49  	local_irq_save(flags);
65f8c95e46a182 Anton Vorontsov         2012-07-17   50  
060287b8c467bf Anton Vorontsov         2012-07-09   51  	rec.ip = ip;
060287b8c467bf Anton Vorontsov         2012-07-09   52  	rec.parent_ip = parent_ip;
fbccdeb8d77d68 Joel Fernandes          2016-10-20   53  	pstore_ftrace_write_timestamp(&rec, pstore_ftrace_stamp++);
060287b8c467bf Anton Vorontsov         2012-07-09   54  	pstore_ftrace_encode_cpu(&rec, raw_smp_processor_id());
4c9ec219766a21 Kees Cook               2017-03-05  @55  	psinfo->write(&record);
65f8c95e46a182 Anton Vorontsov         2012-07-17   56  
65f8c95e46a182 Anton Vorontsov         2012-07-17   57  	local_irq_restore(flags);
6cdf941871ec9c Steven Rostedt (VMware  2020-11-05   58) 	ftrace_test_recursion_unlock(bit);
65f8c95e46a182 Anton Vorontsov         2012-07-17   59  }
65f8c95e46a182 Anton Vorontsov         2012-07-17   60  
7b968e55e3984c Yuanhe Shu              2024-02-05   61  static void notrace pstore_ftrace_call(unsigned long ip,
7b968e55e3984c Yuanhe Shu              2024-02-05   62  				       unsigned long parent_ip,
7b968e55e3984c Yuanhe Shu              2024-02-05   63  				       struct ftrace_ops *op,
7b968e55e3984c Yuanhe Shu              2024-02-05   64  				       struct pt_regs *regs)
7b968e55e3984c Yuanhe Shu              2024-02-05   65  {
7b968e55e3984c Yuanhe Shu              2024-02-05   66  	struct pstore_info_list *entry;
7b968e55e3984c Yuanhe Shu              2024-02-05   67  
7b968e55e3984c Yuanhe Shu              2024-02-05   68  	rcu_read_lock();
7b968e55e3984c Yuanhe Shu              2024-02-05   69  	list_for_each_entry_rcu(entry, &psback->list_entry, list)
7b968e55e3984c Yuanhe Shu              2024-02-05   70  		if (entry->psi->flags & PSTORE_FLAGS_FTRACE)
7b968e55e3984c Yuanhe Shu              2024-02-05  @71  			pstore_do_ftrace(ip, parent_ip, op, regs, entry->psi);
7b968e55e3984c Yuanhe Shu              2024-02-05   72  	rcu_read_unlock();
7b968e55e3984c Yuanhe Shu              2024-02-05   73  }
7b968e55e3984c Yuanhe Shu              2024-02-05   74  
65f8c95e46a182 Anton Vorontsov         2012-07-17   75  static struct ftrace_ops pstore_ftrace_ops __read_mostly = {
65f8c95e46a182 Anton Vorontsov         2012-07-17  @76  	.func	= pstore_ftrace_call,
65f8c95e46a182 Anton Vorontsov         2012-07-17   77  };
65f8c95e46a182 Anton Vorontsov         2012-07-17   78  
65f8c95e46a182 Anton Vorontsov         2012-07-17   79  static DEFINE_MUTEX(pstore_ftrace_lock);
65f8c95e46a182 Anton Vorontsov         2012-07-17   80  static bool pstore_ftrace_enabled;
65f8c95e46a182 Anton Vorontsov         2012-07-17   81  
a5d05b07961a2d Uwe Kleine-König        2021-06-10   82  static int pstore_set_ftrace_enabled(bool on)
65f8c95e46a182 Anton Vorontsov         2012-07-17   83  {
65f8c95e46a182 Anton Vorontsov         2012-07-17   84  	ssize_t ret;
65f8c95e46a182 Anton Vorontsov         2012-07-17   85  
a5d05b07961a2d Uwe Kleine-König        2021-06-10   86  	if (on == pstore_ftrace_enabled)
a5d05b07961a2d Uwe Kleine-König        2021-06-10   87  		return 0;
65f8c95e46a182 Anton Vorontsov         2012-07-17   88  
7a0032f50472c7 Joel Fernandes          2016-11-15   89  	if (on) {
7a0032f50472c7 Joel Fernandes          2016-11-15   90  		ftrace_ops_set_global_filter(&pstore_ftrace_ops);
65f8c95e46a182 Anton Vorontsov         2012-07-17   91  		ret = register_ftrace_function(&pstore_ftrace_ops);
7a0032f50472c7 Joel Fernandes          2016-11-15   92  	} else {
65f8c95e46a182 Anton Vorontsov         2012-07-17   93  		ret = unregister_ftrace_function(&pstore_ftrace_ops);
7a0032f50472c7 Joel Fernandes          2016-11-15   94  	}
7a0032f50472c7 Joel Fernandes          2016-11-15   95  
65f8c95e46a182 Anton Vorontsov         2012-07-17   96  	if (ret) {
65f8c95e46a182 Anton Vorontsov         2012-07-17   97  		pr_err("%s: unable to %sregister ftrace ops: %zd\n",
65f8c95e46a182 Anton Vorontsov         2012-07-17   98  		       __func__, on ? "" : "un", ret);
a5d05b07961a2d Uwe Kleine-König        2021-06-10   99  	} else {
a5d05b07961a2d Uwe Kleine-König        2021-06-10  100  		pstore_ftrace_enabled = on;
65f8c95e46a182 Anton Vorontsov         2012-07-17  101  	}
65f8c95e46a182 Anton Vorontsov         2012-07-17  102  
a5d05b07961a2d Uwe Kleine-König        2021-06-10  103  	return ret;
a5d05b07961a2d Uwe Kleine-König        2021-06-10  104  }
a5d05b07961a2d Uwe Kleine-König        2021-06-10  105  
a5d05b07961a2d Uwe Kleine-König        2021-06-10  106  static ssize_t pstore_ftrace_knob_write(struct file *f, const char __user *buf,
a5d05b07961a2d Uwe Kleine-König        2021-06-10  107  					size_t count, loff_t *ppos)
a5d05b07961a2d Uwe Kleine-König        2021-06-10  108  {
a5d05b07961a2d Uwe Kleine-König        2021-06-10  109  	u8 on;
a5d05b07961a2d Uwe Kleine-König        2021-06-10  110  	ssize_t ret;
a5d05b07961a2d Uwe Kleine-König        2021-06-10  111  
a5d05b07961a2d Uwe Kleine-König        2021-06-10  112  	ret = kstrtou8_from_user(buf, count, 2, &on);
a5d05b07961a2d Uwe Kleine-König        2021-06-10  113  	if (ret)
a5d05b07961a2d Uwe Kleine-König        2021-06-10  114  		return ret;
a5d05b07961a2d Uwe Kleine-König        2021-06-10  115  
a5d05b07961a2d Uwe Kleine-König        2021-06-10  116  	mutex_lock(&pstore_ftrace_lock);
a5d05b07961a2d Uwe Kleine-König        2021-06-10  117  	ret = pstore_set_ftrace_enabled(on);
65f8c95e46a182 Anton Vorontsov         2012-07-17  118  	mutex_unlock(&pstore_ftrace_lock);
65f8c95e46a182 Anton Vorontsov         2012-07-17  119  
a5d05b07961a2d Uwe Kleine-König        2021-06-10  120  	if (ret == 0)
a5d05b07961a2d Uwe Kleine-König        2021-06-10  121  		ret = count;
a5d05b07961a2d Uwe Kleine-König        2021-06-10  122  
65f8c95e46a182 Anton Vorontsov         2012-07-17  123  	return ret;
65f8c95e46a182 Anton Vorontsov         2012-07-17  124  }
65f8c95e46a182 Anton Vorontsov         2012-07-17  125  
65f8c95e46a182 Anton Vorontsov         2012-07-17  126  static ssize_t pstore_ftrace_knob_read(struct file *f, char __user *buf,
65f8c95e46a182 Anton Vorontsov         2012-07-17  127  				       size_t count, loff_t *ppos)
65f8c95e46a182 Anton Vorontsov         2012-07-17  128  {
65f8c95e46a182 Anton Vorontsov         2012-07-17  129  	char val[] = { '0' + pstore_ftrace_enabled, '\n' };
65f8c95e46a182 Anton Vorontsov         2012-07-17  130  
65f8c95e46a182 Anton Vorontsov         2012-07-17  131  	return simple_read_from_buffer(buf, count, ppos, val, sizeof(val));
65f8c95e46a182 Anton Vorontsov         2012-07-17  132  }
65f8c95e46a182 Anton Vorontsov         2012-07-17  133  
65f8c95e46a182 Anton Vorontsov         2012-07-17  134  static const struct file_operations pstore_knob_fops = {
65f8c95e46a182 Anton Vorontsov         2012-07-17  135  	.open	= simple_open,
65f8c95e46a182 Anton Vorontsov         2012-07-17  136  	.read	= pstore_ftrace_knob_read,
65f8c95e46a182 Anton Vorontsov         2012-07-17  137  	.write	= pstore_ftrace_knob_write,
65f8c95e46a182 Anton Vorontsov         2012-07-17  138  };
65f8c95e46a182 Anton Vorontsov         2012-07-17  139  
ee1d267423a1f8 Geliang Tang            2015-10-20  140  static struct dentry *pstore_ftrace_dir;
ee1d267423a1f8 Geliang Tang            2015-10-20  141  
a5d05b07961a2d Uwe Kleine-König        2021-06-10  142  static bool record_ftrace;
a5d05b07961a2d Uwe Kleine-König        2021-06-10  143  module_param(record_ftrace, bool, 0400);
a5d05b07961a2d Uwe Kleine-König        2021-06-10  144  MODULE_PARM_DESC(record_ftrace,
a5d05b07961a2d Uwe Kleine-König        2021-06-10  145  		 "enable ftrace recording immediately (default: off)");
a5d05b07961a2d Uwe Kleine-König        2021-06-10  146  
65f8c95e46a182 Anton Vorontsov         2012-07-17  147  void pstore_register_ftrace(void)
65f8c95e46a182 Anton Vorontsov         2012-07-17  148  {
7b968e55e3984c Yuanhe Shu              2024-02-05  149  	rcu_read_lock();
7b968e55e3984c Yuanhe Shu              2024-02-05 @150  	list_for_each_entry_rcu(entry, &psback->list_entry, list)
7b968e55e3984c Yuanhe Shu              2024-02-05  151  		if (entry->psi->flags & PSTORE_FLAGS_FTRACE)
7b968e55e3984c Yuanhe Shu              2024-02-05  152  			if (!entry->psi->write) {
7b968e55e3984c Yuanhe Shu              2024-02-05  153  				rcu_read_unlock();
65f8c95e46a182 Anton Vorontsov         2012-07-17  154  				return;
7b968e55e3984c Yuanhe Shu              2024-02-05  155  			}
7b968e55e3984c Yuanhe Shu              2024-02-05  156  	rcu_read_unlock();
65f8c95e46a182 Anton Vorontsov         2012-07-17  157  
ee1d267423a1f8 Geliang Tang            2015-10-20  158  	pstore_ftrace_dir = debugfs_create_dir("pstore", NULL);
65f8c95e46a182 Anton Vorontsov         2012-07-17  159  
a5d05b07961a2d Uwe Kleine-König        2021-06-10  160  	pstore_set_ftrace_enabled(record_ftrace);
a5d05b07961a2d Uwe Kleine-König        2021-06-10  161  
fa1af7583e8012 Greg Kroah-Hartman      2019-06-12  162  	debugfs_create_file("record_ftrace", 0600, pstore_ftrace_dir, NULL,
fa1af7583e8012 Greg Kroah-Hartman      2019-06-12  163  			    &pstore_knob_fops);
ee1d267423a1f8 Geliang Tang            2015-10-20  164  }
ee1d267423a1f8 Geliang Tang            2015-10-20  165  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ