Hi Aleksa,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[cannot apply to v5.3 next-20190924]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    
https://github.com/0day-ci/linux/commits/Aleksa-Sarai/lib-introduce-copy_struct_from_user-helper/20190926-071752
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gcc (GCC) 7.4.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=7.4.0 make.cross ARCH=sh 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:15,
                    from include/asm-generic/bug.h:18,
                    from arch/sh/include/asm/bug.h:112,
                    from include/linux/bug.h:5,
                    from include/linux/mmdebug.h:5,
                    from include/linux/mm.h:9,
                    from include/linux/mman.h:5,
                    from lib/test_user_copy.c:13:
   lib/test_user_copy.c: In function 'test_is_zeroed_user':
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of 
type 'long unsigned int', but argument 5 has type 'size_t {aka unsigned int}' 
[-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:12:22: note: in expansion of macro 'KERN_SOH'
    #define KERN_WARNING KERN_SOH "4" /* warning conditions */
                         ^~~~~~~~
   include/linux/printk.h:306:9: note: in expansion of macro 'KERN_WARNING'
     printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~~~~
   include/linux/printk.h:307:17: note: in expansion of macro 'pr_warning'
    #define pr_warn pr_warning
                    ^~~~~~~~~~
>> lib/test_user_copy.c:38:3: note: in expansion of macro 'pr_warn'
      pr_warn("[%d] " msg "\n", __LINE__, ##__VA_ARGS__); \
      ^~~~~~~
>> lib/test_user_copy.c:77:11: note: in expansion of macro 'test'
       ret |= test(retval != expected,
              ^~~~
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of 
type 'long unsigned int', but argument 6 has type 'size_t {aka unsigned int}' 
[-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:12:22: note: in expansion of macro 'KERN_SOH'
    #define KERN_WARNING KERN_SOH "4" /* warning conditions */
                         ^~~~~~~~
   include/linux/printk.h:306:9: note: in expansion of macro 'KERN_WARNING'
     printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~~~~
   include/linux/printk.h:307:17: note: in expansion of macro 'pr_warning'
    #define pr_warn pr_warning
                    ^~~~~~~~~~
>> lib/test_user_copy.c:38:3: note: in expansion of macro 'pr_warn'
      pr_warn("[%d] " msg "\n", __LINE__, ##__VA_ARGS__); \
      ^~~~~~~
>> lib/test_user_copy.c:77:11: note: in expansion of macro 'test'
       ret |= test(retval != expected,
              ^~~~

vim +/pr_warn +38 lib/test_user_copy.c

    33  
    34  #define test(condition, msg, ...)                                       
\
    35  ({                                                                      
\
    36          int cond = (condition);                                         
\
    37          if (cond)                                                       
\
  > 38                  pr_warn("[%d] " msg "\n", __LINE__, ##__VA_ARGS__);     
\
    39          cond;                                                           
\
    40  })
    41  
    42  static int test_is_zeroed_user(char *kmem, char __user *umem, size_t 
size)
    43  {
    44          int ret = 0;
    45          size_t start, end, i;
    46          size_t zero_start = size / 4;
    47          size_t zero_end = size - zero_start;
    48  
    49          /*
    50           * We conduct a series of is_zeroed_user() tests on a block of 
memory
    51           * with the following byte-pattern (trying every possible 
[start,end]
    52           * pair):
    53           *
    54           *   [ 00 ff 00 ff ... 00 00 00 00 ... ff 00 ff 00 ]
    55           *
    56           * And we verify that is_zeroed_user() acts identically to 
memchr_inv().
    57           */
    58  
    59          for (i = 0; i < zero_start; i += 2)
    60                  kmem[i] = 0x00;
    61          for (i = 1; i < zero_start; i += 2)
    62                  kmem[i] = 0xff;
    63  
    64          for (i = zero_end; i < size; i += 2)
    65                  kmem[i] = 0xff;
    66          for (i = zero_end + 1; i < size; i += 2)
    67                  kmem[i] = 0x00;
    68  
    69          ret |= test(copy_to_user(umem, kmem, size),
    70                      "legitimate copy_to_user failed");
    71  
    72          for (start = 0; start <= size; start++) {
    73                  for (end = start; end <= size; end++) {
    74                          int retval = is_zeroed_user(umem + start, end - 
start);
    75                          int expected = memchr_inv(kmem + start, 0, end 
- start) == NULL;
    76  
  > 77                          ret |= test(retval != expected,
    78                                      "is_zeroed_user(=%d) != 
memchr_inv(=%d) mismatch (start=%lu, end=%lu)",
    79                                      retval, expected, start, end);
    80                  }
    81          }
    82  
    83          return ret;
    84  }
    85  

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

Attachment: .config.gz
Description: application/gzip

Reply via email to