All of lore.kernel.org
 help / color / mirror / Atom feed
* [mcgrof-next:20200605-blktrace-fixes-v4 8/8] kernel/trace/blktrace.c:603:12: error: invalid storage class for function '__blk_trace_setup'
@ 2020-06-08 17:53 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-06-08 17:53 UTC (permalink / raw)
  To: kbuild-all

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git 20200605-blktrace-fixes-v4
head:   1800ec543cd3a52ecb7ef550f81ad866710a2067
commit: 1800ec543cd3a52ecb7ef550f81ad866710a2067 [8/8] blktrace: fix debugfs use after free
config: i386-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce (this is a W=1 build):
        git checkout 1800ec543cd3a52ecb7ef550f81ad866710a2067
        # save the attached .config to linux build tree
        make W=1 ARCH=i386 

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 >>, old ones prefixed by <<):

kernel/trace/blktrace.c: In function 'do_blk_trace_setup':
>> kernel/trace/blktrace.c:603:12: error: invalid storage class for function '__blk_trace_setup'
603 | static int __blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
|            ^~~~~~~~~~~~~~~~~
>> kernel/trace/blktrace.c:603:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
603 | static int __blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
| ^~~~~~
In file included from include/linux/linkage.h:7,
from include/linux/kernel.h:8,
from kernel/trace/blktrace.c:9:
>> kernel/trace/blktrace.c:636:19: error: non-static declaration of 'blk_trace_setup' follows static declaration
636 | EXPORT_SYMBOL_GPL(blk_trace_setup);
|                   ^~~~~~~~~~~~~~~
include/linux/export.h:98:21: note: in definition of macro '___EXPORT_SYMBOL'
98 |  extern typeof(sym) sym;                |                     ^~~
include/linux/export.h:155:34: note: in expansion of macro '__EXPORT_SYMBOL'
155 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
|                                  ^~~~~~~~~~~~~~~
include/linux/export.h:159:33: note: in expansion of macro '_EXPORT_SYMBOL'
159 | #define EXPORT_SYMBOL_GPL(sym)  _EXPORT_SYMBOL(sym, "_gpl")
|                                 ^~~~~~~~~~~~~~
>> kernel/trace/blktrace.c:636:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
636 | EXPORT_SYMBOL_GPL(blk_trace_setup);
| ^~~~~~~~~~~~~~~~~
kernel/trace/blktrace.c:624:5: note: previous definition of 'blk_trace_setup' was here
624 | int blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
|     ^~~~~~~~~~~~~~~
In file included from include/linux/export.h:43,
from include/linux/linkage.h:7,
from include/linux/kernel.h:8,
from kernel/trace/blktrace.c:9:
include/linux/compiler.h:343:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
343 |  static void * __section(.discard.addressable) __used          |  ^~~~~~
include/linux/export.h:51:2: note: in expansion of macro '__ADDRESSABLE'
51 |  __ADDRESSABLE(sym)               |  ^~~~~~~~~~~~~
include/linux/export.h:108:2: note: in expansion of macro '__KSYMTAB_ENTRY'
108 |  __KSYMTAB_ENTRY(sym, sec)
|  ^~~~~~~~~~~~~~~
include/linux/export.h:147:39: note: in expansion of macro '___EXPORT_SYMBOL'
147 | #define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
|                                       ^~~~~~~~~~~~~~~~
include/linux/export.h:155:34: note: in expansion of macro '__EXPORT_SYMBOL'
155 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
|                                  ^~~~~~~~~~~~~~~
include/linux/export.h:159:33: note: in expansion of macro '_EXPORT_SYMBOL'
159 | #define EXPORT_SYMBOL_GPL(sym)  _EXPORT_SYMBOL(sym, "_gpl")
|                                 ^~~~~~~~~~~~~~
>> kernel/trace/blktrace.c:636:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
636 | EXPORT_SYMBOL_GPL(blk_trace_setup);
| ^~~~~~~~~~~~~~~~~
>> kernel/trace/blktrace.c:672:12: error: invalid storage class for function '__blk_trace_startstop'
672 | static int __blk_trace_startstop(struct request_queue *q, int start)
|            ^~~~~~~~~~~~~~~~~~~~~
kernel/trace/blktrace.c:672:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
672 | static int __blk_trace_startstop(struct request_queue *q, int start)
| ^~~~~~
In file included from include/linux/linkage.h:7,
from include/linux/kernel.h:8,
from kernel/trace/blktrace.c:9:
>> kernel/trace/blktrace.c:724:19: error: non-static declaration of 'blk_trace_startstop' follows static declaration
724 | EXPORT_SYMBOL_GPL(blk_trace_startstop);
|                   ^~~~~~~~~~~~~~~~~~~
include/linux/export.h:98:21: note: in definition of macro '___EXPORT_SYMBOL'
98 |  extern typeof(sym) sym;                |                     ^~~
include/linux/export.h:155:34: note: in expansion of macro '__EXPORT_SYMBOL'
155 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
|                                  ^~~~~~~~~~~~~~~
include/linux/export.h:159:33: note: in expansion of macro '_EXPORT_SYMBOL'
159 | #define EXPORT_SYMBOL_GPL(sym)  _EXPORT_SYMBOL(sym, "_gpl")
|                                 ^~~~~~~~~~~~~~
kernel/trace/blktrace.c:724:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
724 | EXPORT_SYMBOL_GPL(blk_trace_startstop);
| ^~~~~~~~~~~~~~~~~
kernel/trace/blktrace.c:714:5: note: previous definition of 'blk_trace_startstop' was here
714 | int blk_trace_startstop(struct request_queue *q, int start)
|     ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/export.h:43,
from include/linux/linkage.h:7,
from include/linux/kernel.h:8,
from kernel/trace/blktrace.c:9:
include/linux/compiler.h:343:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
343 |  static void * __section(.discard.addressable) __used          |  ^~~~~~
include/linux/export.h:51:2: note: in expansion of macro '__ADDRESSABLE'
51 |  __ADDRESSABLE(sym)               |  ^~~~~~~~~~~~~
include/linux/export.h:108:2: note: in expansion of macro '__KSYMTAB_ENTRY'
108 |  __KSYMTAB_ENTRY(sym, sec)
|  ^~~~~~~~~~~~~~~
include/linux/export.h:147:39: note: in expansion of macro '___EXPORT_SYMBOL'
147 | #define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
|                                       ^~~~~~~~~~~~~~~~
include/linux/export.h:155:34: note: in expansion of macro '__EXPORT_SYMBOL'
155 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
|                                  ^~~~~~~~~~~~~~~
include/linux/export.h:159:33: note: in expansion of macro '_EXPORT_SYMBOL'
159 | #define EXPORT_SYMBOL_GPL(sym)  _EXPORT_SYMBOL(sym, "_gpl")
|                                 ^~~~~~~~~~~~~~
kernel/trace/blktrace.c:724:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
724 | EXPORT_SYMBOL_GPL(blk_trace_startstop);
| ^~~~~~~~~~~~~~~~~
kernel/trace/blktrace.c:739:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
739 | int blk_trace_ioctl(struct block_device *bdev, unsigned cmd, char __user *arg)
| ^~~
>> kernel/trace/blktrace.c:798:12: error: invalid storage class for function 'blk_trace_bio_get_cgid'
798 | static u64 blk_trace_bio_get_cgid(struct request_queue *q, struct bio *bio)
|            ^~~~~~~~~~~~~~~~~~~~~~
>> kernel/trace/blktrace.c:819:1: error: invalid storage class for function 'blk_trace_request_get_cgid'
819 | blk_trace_request_get_cgid(struct request_queue *q, struct request *rq)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> kernel/trace/blktrace.c:843:13: error: invalid storage class for function 'blk_add_trace_rq'
843 | static void blk_add_trace_rq(struct request *rq, int error,
|             ^~~~~~~~~~~~~~~~
>> kernel/trace/blktrace.c:865:13: error: invalid storage class for function 'blk_add_trace_rq_insert'
865 | static void blk_add_trace_rq_insert(void *ignore,
|             ^~~~~~~~~~~~~~~~~~~~~~~
>> kernel/trace/blktrace.c:872:13: error: invalid storage class for function 'blk_add_trace_rq_issue'
872 | static void blk_add_trace_rq_issue(void *ignore,
|             ^~~~~~~~~~~~~~~~~~~~~~
>> kernel/trace/blktrace.c:879:13: error: invalid storage class for function 'blk_add_trace_rq_requeue'
879 | static void blk_add_trace_rq_requeue(void *ignore,
|             ^~~~~~~~~~~~~~~~~~~~~~~~
>> kernel/trace/blktrace.c:887:13: error: invalid storage class for function 'blk_add_trace_rq_complete'
887 | static void blk_add_trace_rq_complete(void *ignore, struct request *rq,
|             ^~~~~~~~~~~~~~~~~~~~~~~~~
>> kernel/trace/blktrace.c:905:13: error: invalid storage class for function 'blk_add_trace_bio'
905 | static void blk_add_trace_bio(struct request_queue *q, struct bio *bio,
|             ^~~~~~~~~~~~~~~~~
>> kernel/trace/blktrace.c:923:13: error: invalid storage class for function 'blk_add_trace_bio_bounce'
923 | static void blk_add_trace_bio_bounce(void *ignore,
|             ^~~~~~~~~~~~~~~~~~~~~~~~
>> kernel/trace/blktrace.c:929:13: error: invalid storage class for function 'blk_add_trace_bio_complete'
929 | static void blk_add_trace_bio_complete(void *ignore,
|             ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> kernel/trace/blktrace.c:936:13: error: invalid storage class for function 'blk_add_trace_bio_backmerge'
936 | static void blk_add_trace_bio_backmerge(void *ignore,
|             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> kernel/trace/blktrace.c:944:13: error: invalid storage class for function 'blk_add_trace_bio_frontmerge'
944 | static void blk_add_trace_bio_frontmerge(void *ignore,
|             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> kernel/trace/blktrace.c:952:13: error: invalid storage class for function 'blk_add_trace_bio_queue'
952 | static void blk_add_trace_bio_queue(void *ignore,
|             ^~~~~~~~~~~~~~~~~~~~~~~
kernel/trace/blktrace.c:958:13: error: invalid storage class for function 'blk_add_trace_getrq'
958 | static void blk_add_trace_getrq(void *ignore,
|             ^~~~~~~~~~~~~~~~~~~
kernel/trace/blktrace.c:977:13: error: invalid storage class for function 'blk_add_trace_sleeprq'
977 | static void blk_add_trace_sleeprq(void *ignore,
|             ^~~~~~~~~~~~~~~~~~~~~
kernel/trace/blktrace.c:995:13: error: invalid storage class for function 'blk_add_trace_plug'
995 | static void blk_add_trace_plug(void *ignore, struct request_queue *q)
|             ^~~~~~~~~~~~~~~~~~
kernel/trace/blktrace.c:1006:13: error: invalid storage class for function 'blk_add_trace_unplug'
1006 | static void blk_add_trace_unplug(void *ignore, struct request_queue *q,
|             ^~~~~~~~~~~~~~~~~~~~
kernel/trace/blktrace.c:1027:13: error: invalid storage class for function 'blk_add_trace_split'
1027 | static void blk_add_trace_split(void *ignore,
|             ^~~~~~~~~~~~~~~~~~~
kernel/trace/blktrace.c:1059:13: error: invalid storage class for function 'blk_add_trace_bio_remap'
1059 | static void blk_add_trace_bio_remap(void *ignore,
|             ^~~~~~~~~~~~~~~~~~~~~~~
kernel/trace/blktrace.c:1096:13: error: invalid storage class for function 'blk_add_trace_rq_remap'
1096 | static void blk_add_trace_rq_remap(void *ignore,
|             ^~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/linkage.h:7,
from include/linux/kernel.h:8,
from kernel/trace/blktrace.c:9:
kernel/trace/blktrace.c:1150:19: error: non-static declaration of 'blk_add_driver_data' follows static declaration
1150 | EXPORT_SYMBOL_GPL(blk_add_driver_data);
|                   ^~~~~~~~~~~~~~~~~~~
include/linux/export.h:98:21: note: in definition of macro '___EXPORT_SYMBOL'
98 |  extern typeof(sym) sym;                |                     ^~~
include/linux/export.h:155:34: note: in expansion of macro '__EXPORT_SYMBOL'
155 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
|                                  ^~~~~~~~~~~~~~~
include/linux/export.h:159:33: note: in expansion of macro '_EXPORT_SYMBOL'
159 | #define EXPORT_SYMBOL_GPL(sym)  _EXPORT_SYMBOL(sym, "_gpl")
|                                 ^~~~~~~~~~~~~~
kernel/trace/blktrace.c:1150:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
1150 | EXPORT_SYMBOL_GPL(blk_add_driver_data);
| ^~~~~~~~~~~~~~~~~
kernel/trace/blktrace.c:1132:6: note: previous definition of 'blk_add_driver_data' was here
1132 | void blk_add_driver_data(struct request_queue *q,
|      ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/export.h:43,
from include/linux/linkage.h:7,
from include/linux/kernel.h:8,
from kernel/trace/blktrace.c:9:
include/linux/compiler.h:343:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
343 |  static void * __section(.discard.addressable) __used          |  ^~~~~~
include/linux/export.h:51:2: note: in expansion of macro '__ADDRESSABLE'
51 |  __ADDRESSABLE(sym)               |  ^~~~~~~~~~~~~
include/linux/export.h:108:2: note: in expansion of macro '__KSYMTAB_ENTRY'
108 |  __KSYMTAB_ENTRY(sym, sec)
|  ^~~~~~~~~~~~~~~
include/linux/export.h:147:39: note: in expansion of macro '___EXPORT_SYMBOL'
147 | #define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
|                                       ^~~~~~~~~~~~~~~~
include/linux/export.h:155:34: note: in expansion of macro '__EXPORT_SYMBOL'
155 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
|                                  ^~~~~~~~~~~~~~~
include/linux/export.h:159:33: note: in expansion of macro '_EXPORT_SYMBOL'
159 | #define EXPORT_SYMBOL_GPL(sym)  _EXPORT_SYMBOL(sym, "_gpl")
|                                 ^~~~~~~~~~~~~~
kernel/trace/blktrace.c:1150:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
1150 | EXPORT_SYMBOL_GPL(blk_add_driver_data);
| ^~~~~~~~~~~~~~~~~
kernel/trace/blktrace.c:1152:13: error: invalid storage class for function 'blk_register_tracepoints'
1152 | static void blk_register_tracepoints(void)
|             ^~~~~~~~~~~~~~~~~~~~~~~~
kernel/trace/blktrace.c:1152:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
1152 | static void blk_register_tracepoints(void)
| ^~~~~~
kernel/trace/blktrace.c:1190:13: error: invalid storage class for function 'blk_unregister_tracepoints'
1190 | static void blk_unregister_tracepoints(void)
|             ^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/trace/blktrace.c:1216:13: error: invalid storage class for function 'fill_rwbs'
1216 | static void fill_rwbs(char *rwbs, const struct blk_io_trace *t)
|             ^~~~~~~~~
kernel/trace/blktrace.c:1251:28: error: invalid storage class for function 'te_blk_io_trace'
1251 | const struct blk_io_trace *te_blk_io_trace(const struct trace_entry *ent)
|                            ^~~~~~~~~~~~~~~
kernel/trace/blktrace.c:1256:27: error: invalid storage class for function 'pdu_start'
1256 | static inline const void *pdu_start(const struct trace_entry *ent, bool has_cg)
|                           ^~~~~~~~~
kernel/trace/blktrace.c:1261:19: error: invalid storage class for function 't_cgid'
1261 | static inline u64 t_cgid(const struct trace_entry *ent)
|                   ^~~~~~
kernel/trace/blktrace.c:1266:19: error: invalid storage class for function 'pdu_real_len'
1266 | static inline int pdu_real_len(const struct trace_entry *ent, bool has_cg)
|                   ^~~~~~~~~~~~
kernel/trace/blktrace.c:1271:19: error: invalid storage class for function 't_action'
1271 | static inline u32 t_action(const struct trace_entry *ent)
|                   ^~~~~~~~
kernel/trace/blktrace.c:1276:19: error: invalid storage class for function 't_bytes'
1276 | static inline u32 t_bytes(const struct trace_entry *ent)
|                   ^~~~~~~
kernel/trace/blktrace.c:1281:19: error: invalid storage class for function 't_sec'

vim +/__blk_trace_setup +603 kernel/trace/blktrace.c

171044d449611c block/blktrace.c        Arnd Bergmann            2007-10-09  602  
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05 @603  static int __blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  604  			     struct block_device *bdev, char __user *arg)
171044d449611c block/blktrace.c        Arnd Bergmann            2007-10-09  605  {
171044d449611c block/blktrace.c        Arnd Bergmann            2007-10-09  606  	struct blk_user_trace_setup buts;
171044d449611c block/blktrace.c        Arnd Bergmann            2007-10-09  607  	int ret;
171044d449611c block/blktrace.c        Arnd Bergmann            2007-10-09  608  
171044d449611c block/blktrace.c        Arnd Bergmann            2007-10-09  609  	ret = copy_from_user(&buts, arg, sizeof(buts));
171044d449611c block/blktrace.c        Arnd Bergmann            2007-10-09  610  	if (ret)
171044d449611c block/blktrace.c        Arnd Bergmann            2007-10-09  611  		return -EFAULT;
171044d449611c block/blktrace.c        Arnd Bergmann            2007-10-09  612  
d0deef5b14af7d kernel/trace/blktrace.c Shawn Du                 2009-04-14  613  	ret = do_blk_trace_setup(q, name, dev, bdev, &buts);
171044d449611c block/blktrace.c        Arnd Bergmann            2007-10-09  614  	if (ret)
171044d449611c block/blktrace.c        Arnd Bergmann            2007-10-09  615  		return ret;
171044d449611c block/blktrace.c        Arnd Bergmann            2007-10-09  616  
9a8c28c8311e30 kernel/trace/blktrace.c Dmitry Monakhov          2010-02-27  617  	if (copy_to_user(arg, &buts, sizeof(buts))) {
2967acbb257a6a kernel/trace/blktrace.c Jens Axboe               2017-11-19  618  		__blk_trace_remove(q);
171044d449611c block/blktrace.c        Arnd Bergmann            2007-10-09  619  		return -EFAULT;
9a8c28c8311e30 kernel/trace/blktrace.c Dmitry Monakhov          2010-02-27  620  	}
171044d449611c block/blktrace.c        Arnd Bergmann            2007-10-09  621  	return 0;
171044d449611c block/blktrace.c        Arnd Bergmann            2007-10-09  622  }
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  623  
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  624  int blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  625  		    struct block_device *bdev,
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  626  		    char __user *arg)
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  627  {
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  628  	int ret;
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  629  
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  630  	mutex_lock(&q->blk_trace_mutex);
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  631  	ret = __blk_trace_setup(q, name, dev, bdev, arg);
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  632  	mutex_unlock(&q->blk_trace_mutex);
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  633  
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  634  	return ret;
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  635  }
6da127ad0918f9 block/blktrace.c        Christof Schmitt         2008-01-11 @636  EXPORT_SYMBOL_GPL(blk_trace_setup);
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  637  
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  638  #if defined(CONFIG_COMPAT) && defined(CONFIG_X86_64)
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  639  static int compat_blk_trace_setup(struct request_queue *q, char *name,
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  640  				  dev_t dev, struct block_device *bdev,
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  641  				  char __user *arg)
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  642  {
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  643  	struct blk_user_trace_setup buts;
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  644  	struct compat_blk_user_trace_setup cbuts;
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  645  	int ret;
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  646  
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  647  	if (copy_from_user(&cbuts, arg, sizeof(cbuts)))
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  648  		return -EFAULT;
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  649  
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  650  	buts = (struct blk_user_trace_setup) {
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  651  		.act_mask = cbuts.act_mask,
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  652  		.buf_size = cbuts.buf_size,
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  653  		.buf_nr = cbuts.buf_nr,
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  654  		.start_lba = cbuts.start_lba,
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  655  		.end_lba = cbuts.end_lba,
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  656  		.pid = cbuts.pid,
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  657  	};
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  658  
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  659  	ret = do_blk_trace_setup(q, name, dev, bdev, &buts);
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  660  	if (ret)
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  661  		return ret;
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  662  
f8c5e94486671f kernel/trace/blktrace.c Chen Gang                2013-11-03  663  	if (copy_to_user(arg, &buts.name, ARRAY_SIZE(buts.name))) {
2967acbb257a6a kernel/trace/blktrace.c Jens Axboe               2017-11-19  664  		__blk_trace_remove(q);
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  665  		return -EFAULT;
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  666  	}
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  667  
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  668  	return 0;
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  669  }
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  670  #endif
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  671  
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05 @672  static int __blk_trace_startstop(struct request_queue *q, int start)
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  673  {
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  674  	int ret;
c780e86dd48ef6 kernel/trace/blktrace.c Jan Kara                 2020-02-06  675  	struct blk_trace *bt;
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  676  
c780e86dd48ef6 kernel/trace/blktrace.c Jan Kara                 2020-02-06  677  	bt = rcu_dereference_protected(q->blk_trace,
c780e86dd48ef6 kernel/trace/blktrace.c Jan Kara                 2020-02-06  678  				       lockdep_is_held(&q->blk_trace_mutex));
939b366977d29b block/blktrace.c        Arnaldo Carvalho de Melo 2009-02-03  679  	if (bt == NULL)
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  680  		return -EINVAL;
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  681  
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  682  	/*
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  683  	 * For starting a trace, we can transition from a setup or stopped
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  684  	 * trace. For stopping a trace, the state must be running
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  685  	 */
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  686  	ret = -EINVAL;
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  687  	if (start) {
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  688  		if (bt->trace_state == Blktrace_setup ||
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  689  		    bt->trace_state == Blktrace_stopped) {
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  690  			blktrace_seq++;
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  691  			smp_mb();
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  692  			bt->trace_state = Blktrace_running;
a404d5576bbe58 kernel/trace/blktrace.c Jan Kara                 2013-09-17  693  			spin_lock_irq(&running_trace_lock);
a404d5576bbe58 kernel/trace/blktrace.c Jan Kara                 2013-09-17  694  			list_add(&bt->running_list, &running_trace_list);
a404d5576bbe58 kernel/trace/blktrace.c Jan Kara                 2013-09-17  695  			spin_unlock_irq(&running_trace_lock);
be1c63411addba block/blktrace.c        Olaf Kirch               2006-12-01  696  
be1c63411addba block/blktrace.c        Olaf Kirch               2006-12-01  697  			trace_note_time(bt);
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  698  			ret = 0;
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  699  		}
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  700  	} else {
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  701  		if (bt->trace_state == Blktrace_running) {
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  702  			bt->trace_state = Blktrace_stopped;
a404d5576bbe58 kernel/trace/blktrace.c Jan Kara                 2013-09-17  703  			spin_lock_irq(&running_trace_lock);
a404d5576bbe58 kernel/trace/blktrace.c Jan Kara                 2013-09-17  704  			list_del_init(&bt->running_list);
a404d5576bbe58 kernel/trace/blktrace.c Jan Kara                 2013-09-17  705  			spin_unlock_irq(&running_trace_lock);
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  706  			relay_flush(bt->rchan);
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  707  			ret = 0;
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  708  		}
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  709  	}
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  710  
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  711  	return ret;
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  712  }
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  713  
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  714  int blk_trace_startstop(struct request_queue *q, int start)
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  715  {
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  716  	int ret;
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  717  
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  718  	mutex_lock(&q->blk_trace_mutex);
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  719  	ret = __blk_trace_startstop(q, start);
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  720  	mutex_unlock(&q->blk_trace_mutex);
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  721  
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  722  	return ret;
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  723  }
6da127ad0918f9 block/blktrace.c        Christof Schmitt         2008-01-11 @724  EXPORT_SYMBOL_GPL(blk_trace_startstop);
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  725  
5acb3cc2c2e9d3 kernel/trace/blktrace.c Waiman Long              2017-09-20  726  /*
5acb3cc2c2e9d3 kernel/trace/blktrace.c Waiman Long              2017-09-20  727   * When reading or writing the blktrace sysfs files, the references to the
5acb3cc2c2e9d3 kernel/trace/blktrace.c Waiman Long              2017-09-20  728   * opened sysfs or device files should prevent the underlying block device
5acb3cc2c2e9d3 kernel/trace/blktrace.c Waiman Long              2017-09-20  729   * from being removed. So no further delete protection is really needed.
5acb3cc2c2e9d3 kernel/trace/blktrace.c Waiman Long              2017-09-20  730   */
5acb3cc2c2e9d3 kernel/trace/blktrace.c Waiman Long              2017-09-20  731  
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  732  /**
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  733   * blk_trace_ioctl: - handle the ioctls associated with tracing
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  734   * @bdev:	the block device
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  735   * @cmd:	the ioctl cmd
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  736   * @arg:	the argument data, if any
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  737   *
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  738   **/
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  739  int blk_trace_ioctl(struct block_device *bdev, unsigned cmd, char __user *arg)
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  740  {
165125e1e480f9 block/blktrace.c        Jens Axboe               2007-07-24  741  	struct request_queue *q;
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  742  	int ret, start = 0;
6da127ad0918f9 block/blktrace.c        Christof Schmitt         2008-01-11  743  	char b[BDEVNAME_SIZE];
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  744  
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  745  	q = bdev_get_queue(bdev);
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  746  	if (!q)
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  747  		return -ENXIO;
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  748  
5acb3cc2c2e9d3 kernel/trace/blktrace.c Waiman Long              2017-09-20  749  	mutex_lock(&q->blk_trace_mutex);
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  750  
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  751  	switch (cmd) {
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  752  	case BLKTRACESETUP:
f36f21ecca9ee6 block/blktrace.c        Jean Delvare             2008-05-12  753  		bdevname(bdev, b);
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  754  		ret = __blk_trace_setup(q, b, bdev->bd_dev, bdev, arg);
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  755  		break;
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  756  #if defined(CONFIG_COMPAT) && defined(CONFIG_X86_64)
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  757  	case BLKTRACESETUP32:
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  758  		bdevname(bdev, b);
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  759  		ret = compat_blk_trace_setup(q, b, bdev->bd_dev, bdev, arg);
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  760  		break;
62c2a7d969f301 kernel/trace/blktrace.c Arnd Bergmann            2010-07-07  761  #endif
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  762  	case BLKTRACESTART:
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  763  		start = 1;
f6d85f04e29859 kernel/trace/blktrace.c Mathieu Malaterre        2019-01-14  764  		/* fall through */
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  765  	case BLKTRACESTOP:
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  766  		ret = __blk_trace_startstop(q, start);
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  767  		break;
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  768  	case BLKTRACETEARDOWN:
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  769  		ret = __blk_trace_remove(q);
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  770  		break;
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  771  	default:
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  772  		ret = -ENOTTY;
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  773  		break;
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  774  	}
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  775  
5acb3cc2c2e9d3 kernel/trace/blktrace.c Waiman Long              2017-09-20  776  	mutex_unlock(&q->blk_trace_mutex);
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  777  	return ret;
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  778  }
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  779  
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  780  /**
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  781   * blk_trace_shutdown: - stop and cleanup trace structures
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  782   * @q:    the request queue associated with the device
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  783   *
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  784   **/
165125e1e480f9 block/blktrace.c        Jens Axboe               2007-07-24  785  void blk_trace_shutdown(struct request_queue *q)
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  786  {
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  787  	mutex_lock(&q->blk_trace_mutex);
c780e86dd48ef6 kernel/trace/blktrace.c Jan Kara                 2020-02-06  788  	if (rcu_dereference_protected(q->blk_trace,
c780e86dd48ef6 kernel/trace/blktrace.c Jan Kara                 2020-02-06  789  				      lockdep_is_held(&q->blk_trace_mutex))) {
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  790  		__blk_trace_startstop(q, 0);
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  791  		__blk_trace_remove(q);
2056a782f8e7e6 block/blktrace.c        Jens Axboe               2006-03-23  792  	}
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  793  
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe               2017-11-05  794  	mutex_unlock(&q->blk_trace_mutex);
6c5c934153513d block/blktrace.c        Alexey Dobriyan          2006-09-29  795  }
5f3ea37c7716db block/blktrace.c        Arnaldo Carvalho de Melo 2008-10-30  796  
ca1136c99b66b1 kernel/trace/blktrace.c Shaohua Li               2017-07-12  797  #ifdef CONFIG_BLK_CGROUP
67c0496e87d193 kernel/trace/blktrace.c Tejun Heo                2019-11-04 @798  static u64 blk_trace_bio_get_cgid(struct request_queue *q, struct bio *bio)
ca1136c99b66b1 kernel/trace/blktrace.c Shaohua Li               2017-07-12  799  {
c780e86dd48ef6 kernel/trace/blktrace.c Jan Kara                 2020-02-06  800  	struct blk_trace *bt;
ca1136c99b66b1 kernel/trace/blktrace.c Shaohua Li               2017-07-12  801  
c780e86dd48ef6 kernel/trace/blktrace.c Jan Kara                 2020-02-06  802  	/* We don't use the 'bt' value here except as an optimization... */
c780e86dd48ef6 kernel/trace/blktrace.c Jan Kara                 2020-02-06  803  	bt = rcu_dereference_protected(q->blk_trace, 1);
ca1136c99b66b1 kernel/trace/blktrace.c Shaohua Li               2017-07-12  804  	if (!bt || !(blk_tracer_flags.val & TRACE_BLK_OPT_CGROUP))
67c0496e87d193 kernel/trace/blktrace.c Tejun Heo                2019-11-04  805  		return 0;
ca1136c99b66b1 kernel/trace/blktrace.c Shaohua Li               2017-07-12  806  
db6638d7d177a8 kernel/trace/blktrace.c Dennis Zhou              2018-12-05  807  	if (!bio->bi_blkg)
67c0496e87d193 kernel/trace/blktrace.c Tejun Heo                2019-11-04  808  		return 0;
743210386c0354 kernel/trace/blktrace.c Tejun Heo                2019-11-04  809  	return cgroup_id(bio_blkcg(bio)->css.cgroup);
ca1136c99b66b1 kernel/trace/blktrace.c Shaohua Li               2017-07-12  810  }
ca1136c99b66b1 kernel/trace/blktrace.c Shaohua Li               2017-07-12  811  #else
67c0496e87d193 kernel/trace/blktrace.c Tejun Heo                2019-11-04  812  u64 blk_trace_bio_get_cgid(struct request_queue *q, struct bio *bio)
ca1136c99b66b1 kernel/trace/blktrace.c Shaohua Li               2017-07-12  813  {
67c0496e87d193 kernel/trace/blktrace.c Tejun Heo                2019-11-04  814  	return 0;
ca1136c99b66b1 kernel/trace/blktrace.c Shaohua Li               2017-07-12  815  }
ca1136c99b66b1 kernel/trace/blktrace.c Shaohua Li               2017-07-12  816  #endif
ca1136c99b66b1 kernel/trace/blktrace.c Shaohua Li               2017-07-12  817  

:::::: The code at line 603 was first introduced by commit
:::::: 1f2cac107c591c24b60b115d6050adc213d10fc0 blktrace: fix unlocked access to init/start-stop/teardown

:::::: TO: Jens Axboe <axboe@kernel.dk>
:::::: CC: Jens Axboe <axboe@kernel.dk>

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-06-08 17:53 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-08 17:53 [mcgrof-next:20200605-blktrace-fixes-v4 8/8] kernel/trace/blktrace.c:603:12: error: invalid storage class for function '__blk_trace_setup' kernel test robot

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.