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>] [day] [month] [year] [list]
Date:   Tue, 11 Jan 2022 09:28:04 +0800
From:   kernel test robot <lkp@...el.com>
To:     Dave Chinner <david@...morbit.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        0day robot <lkp@...el.com>
Subject: fs/xfs/xfs_aops.c:173:1: warning: format '%lu' expects argument of
 type 'long unsigned int', but argument 4 has type 'size_t' {aka 'unsigned
 int'}

tree:   https://github.com/0day-ci/linux/commits/UPDATE-20220111-073805/trondmy-kernel-org/iomap-Address-soft-lockup-in-iomap_finish_ioend/20211231-034313
head:   f1c8b8b2e616895aa0f5be4e53d4cd1ffa751001
commit: f1c8b8b2e616895aa0f5be4e53d4cd1ffa751001 iomap: Address soft lockup in iomap_finish_ioend()
date:   2 hours ago
config: openrisc-buildonly-randconfig-r002-20220111 (https://download.01.org/0day-ci/archive/20220111/202201110922.MKEJwgs1-lkp@intel.com/config)
compiler: or1k-linux-gcc (GCC) 11.2.0
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
        # https://github.com/0day-ci/linux/commit/f1c8b8b2e616895aa0f5be4e53d4cd1ffa751001
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review UPDATE-20220111-073805/trondmy-kernel-org/iomap-Address-soft-lockup-in-iomap_finish_ioend/20211231-034313
        git checkout f1c8b8b2e616895aa0f5be4e53d4cd1ffa751001
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=openrisc SHELL=/bin/bash fs/xfs/

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

All warnings (new ones prefixed by >>):

   In file included from include/linux/cpumask.h:10,
                    from include/linux/smp.h:13,
                    from include/linux/lockdep.h:14,
                    from include/linux/spinlock.h:62,
                    from include/linux/mmzone.h:8,
                    from include/linux/gfp.h:6,
                    from include/linux/slab.h:15,
                    from fs/xfs/kmem.h:9,
                    from fs/xfs/xfs_linux.h:24,
                    from fs/xfs/xfs.h:22,
                    from fs/xfs/xfs_aops.c:7:
   fs/xfs/xfs_aops.c: In function 'xfs_end_io':
>> fs/xfs/xfs_aops.c:173:1: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'size_t' {aka 'unsigned int'} [-Wformat=]
     173 | "off 0x%llx, sect 0x%llx size %lu/0x%lx end 0x%llx",
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ......
     176 |                 ioend->io_size, (ioend->io_size >> 9),
         |                 ~~~~~~~~~~~~~~
         |                      |
         |                      size_t {aka unsigned int}
   include/linux/kernel.h:324:47: note: in definition of macro '__trace_printk_check_format'
     324 |                 ____trace_printk_check_format(fmt, ##args);             \
         |                                               ^~~
   include/linux/kernel.h:361:17: note: in expansion of macro 'do_trace_printk'
     361 |                 do_trace_printk(fmt, ##__VA_ARGS__);    \
         |                 ^~~~~~~~~~~~~~~
   fs/xfs/xfs_aops.c:172:9: note: in expansion of macro 'trace_printk'
     172 |         trace_printk(
         |         ^~~~~~~~~~~~
   fs/xfs/xfs_aops.c:173:33: note: format string is defined here
     173 | "off 0x%llx, sect 0x%llx size %lu/0x%lx end 0x%llx",
         |                               ~~^
         |                                 |
         |                                 long unsigned int
         |                               %u
   In file included from include/linux/cpumask.h:10,
                    from include/linux/smp.h:13,
                    from include/linux/lockdep.h:14,
                    from include/linux/spinlock.h:62,
                    from include/linux/mmzone.h:8,
                    from include/linux/gfp.h:6,
                    from include/linux/slab.h:15,
                    from fs/xfs/kmem.h:9,
                    from fs/xfs/xfs_linux.h:24,
                    from fs/xfs/xfs.h:22,
                    from fs/xfs/xfs_aops.c:7:
>> fs/xfs/xfs_aops.c:173:1: warning: format '%lx' expects argument of type 'long unsigned int', but argument 5 has type 'size_t' {aka 'unsigned int'} [-Wformat=]
     173 | "off 0x%llx, sect 0x%llx size %lu/0x%lx end 0x%llx",
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ......
     176 |                 ioend->io_size, (ioend->io_size >> 9),
         |                                 ~~~~~~~~~~~~~~~~~~~~~
         |                                                 |
         |                                                 size_t {aka unsigned int}
   include/linux/kernel.h:324:47: note: in definition of macro '__trace_printk_check_format'
     324 |                 ____trace_printk_check_format(fmt, ##args);             \
         |                                               ^~~
   include/linux/kernel.h:361:17: note: in expansion of macro 'do_trace_printk'
     361 |                 do_trace_printk(fmt, ##__VA_ARGS__);    \
         |                 ^~~~~~~~~~~~~~~
   fs/xfs/xfs_aops.c:172:9: note: in expansion of macro 'trace_printk'
     172 |         trace_printk(
         |         ^~~~~~~~~~~~
   fs/xfs/xfs_aops.c:173:39: note: format string is defined here
     173 | "off 0x%llx, sect 0x%llx size %lu/0x%lx end 0x%llx",
         |                                     ~~^
         |                                       |
         |                                       long unsigned int
         |                                     %x
   In file included from include/linux/cpumask.h:10,
                    from include/linux/smp.h:13,
                    from include/linux/lockdep.h:14,
                    from include/linux/spinlock.h:62,
                    from include/linux/mmzone.h:8,
                    from include/linux/gfp.h:6,
                    from include/linux/slab.h:15,
                    from fs/xfs/kmem.h:9,
                    from fs/xfs/xfs_linux.h:24,
                    from fs/xfs/xfs.h:22,
                    from fs/xfs/xfs_aops.c:7:
   fs/xfs/xfs_aops.c:173:1: warning: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'size_t' {aka 'unsigned int'} [-Wformat=]
     173 | "off 0x%llx, sect 0x%llx size %lu/0x%lx end 0x%llx",
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ......
     176 |                 ioend->io_size, (ioend->io_size >> 9),
         |                 ~~~~~~~~~~~~~~
         |                      |
         |                      size_t {aka unsigned int}
   include/linux/kernel.h:377:43: note: in definition of macro 'do_trace_printk'
     377 |                 __trace_printk(_THIS_IP_, fmt, ##args);                 \
         |                                           ^~~
   fs/xfs/xfs_aops.c:172:9: note: in expansion of macro 'trace_printk'
     172 |         trace_printk(
         |         ^~~~~~~~~~~~
   fs/xfs/xfs_aops.c:173:33: note: format string is defined here
     173 | "off 0x%llx, sect 0x%llx size %lu/0x%lx end 0x%llx",
         |                               ~~^
         |                                 |
         |                                 long unsigned int
         |                               %u
   In file included from include/linux/cpumask.h:10,
                    from include/linux/smp.h:13,
                    from include/linux/lockdep.h:14,
                    from include/linux/spinlock.h:62,
                    from include/linux/mmzone.h:8,
                    from include/linux/gfp.h:6,
                    from include/linux/slab.h:15,
                    from fs/xfs/kmem.h:9,
                    from fs/xfs/xfs_linux.h:24,
                    from fs/xfs/xfs.h:22,
                    from fs/xfs/xfs_aops.c:7:
   fs/xfs/xfs_aops.c:173:1: warning: format '%lx' expects argument of type 'long unsigned int', but argument 6 has type 'size_t' {aka 'unsigned int'} [-Wformat=]
     173 | "off 0x%llx, sect 0x%llx size %lu/0x%lx end 0x%llx",
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ......
     176 |                 ioend->io_size, (ioend->io_size >> 9),
         |                                 ~~~~~~~~~~~~~~~~~~~~~
         |                                                 |
         |                                                 size_t {aka unsigned int}
   include/linux/kernel.h:377:43: note: in definition of macro 'do_trace_printk'
     377 |                 __trace_printk(_THIS_IP_, fmt, ##args);                 \
         |                                           ^~~
   fs/xfs/xfs_aops.c:172:9: note: in expansion of macro 'trace_printk'
     172 |         trace_printk(
         |         ^~~~~~~~~~~~
   fs/xfs/xfs_aops.c:173:39: note: format string is defined here
     173 | "off 0x%llx, sect 0x%llx size %lu/0x%lx end 0x%llx",
         |                                     ~~^
         |                                       |
         |                                       long unsigned int
         |                                     %x


vim +173 fs/xfs/xfs_aops.c

   138	
   139	/*
   140	 * Finish all pending IO completions that require transactional modifications.
   141	 *
   142	 * We try to merge physical and logically contiguous ioends before completion to
   143	 * minimise the number of transactions we need to perform during IO completion.
   144	 * Both unwritten extent conversion and COW remapping need to iterate and modify
   145	 * one physical extent at a time, so we gain nothing by merging physically
   146	 * discontiguous extents here.
   147	 *
   148	 * The ioend chain length that we can be processing here is largely unbound in
   149	 * length and we may have to perform significant amounts of work on each ioend
   150	 * to complete it. Hence we have to be careful about holding the CPU for too
   151	 * long in this loop.
   152	 */
   153	void
   154	xfs_end_io(
   155		struct work_struct	*work)
   156	{
   157		struct xfs_inode	*ip =
   158			container_of(work, struct xfs_inode, i_ioend_work);
   159		struct iomap_ioend	*ioend;
   160		struct list_head	tmp;
   161		unsigned long		flags;
   162	
   163		msleep(5000);
   164		spin_lock_irqsave(&ip->i_ioend_lock, flags);
   165		list_replace_init(&ip->i_ioend_list, &tmp);
   166		spin_unlock_irqrestore(&ip->i_ioend_lock, flags);
   167	
   168		iomap_sort_ioends(&tmp);
   169		while ((ioend = list_first_entry_or_null(&tmp, struct iomap_ioend,
   170				io_list))) {
   171			list_del_init(&ioend->io_list);
   172		trace_printk(
 > 173	"off 0x%llx, sect 0x%llx size %lu/0x%lx end 0x%llx",
   174			ioend->io_offset,
   175			ioend->io_sector,
   176			ioend->io_size, (ioend->io_size >> 9),
   177			ioend->io_sector + (ioend->io_size >> 9));
   178	
   179			iomap_ioend_try_merge(ioend, &tmp);
   180			xfs_end_ioend(ioend);
   181			cond_resched();
   182		}
   183	}
   184	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Powered by blists - more mailing lists