Hi Roman,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v4.17-rc5 next-20180517]
[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/Roman-Pen/InfiniBand-Transport-IBTRS-and-Network-Block-Device-IBNBD/20180520-222445
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.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
        make.cross ARCH=sh 

All warnings (new ones prefixed by >>):

   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/module.h:9,
                    from drivers/block/ibnbd/ibnbd-clt-sysfs.c:37:
   drivers/block/ibnbd/ibnbd-clt-sysfs.c: In function 
'ibnbd_clt_parse_map_options':
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of 
type 'long unsigned int', but argument 2 has type 'size_t {aka unsigned int}' 
[-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:304:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
>> drivers/block/ibnbd/ibnbd-clt-sysfs.c:139:5: note: in expansion of macro 
>> 'pr_err'
        pr_err("map_device: too many (> %lu) paths "
        ^~~~~~
   drivers/block/ibnbd/ibnbd-clt-sysfs.c: In function 
'ibnbd_clt_map_device_store':
>> drivers/block/ibnbd/ibnbd-clt-sysfs.c:613:1: warning: the frame size of 1616 
>> bytes is larger than 1024 bytes [-Wframe-larger-than=]
    }
    ^

vim +/pr_err +139 drivers/block/ibnbd/ibnbd-clt-sysfs.c

ea541da7d Roman Pen 2018-05-18   88  
ea541da7d Roman Pen 2018-05-18   89  static int 
ibnbd_clt_parse_map_options(const char *buf,
ea541da7d Roman Pen 2018-05-18   90                                    char 
*sessname,
ea541da7d Roman Pen 2018-05-18   91                                    struct 
ibtrs_addr *paths,
ea541da7d Roman Pen 2018-05-18   92                                    size_t 
*path_cnt,
ea541da7d Roman Pen 2018-05-18   93                                    size_t 
max_path_cnt,
ea541da7d Roman Pen 2018-05-18   94                                    char 
*pathname,
ea541da7d Roman Pen 2018-05-18   95                                    enum 
ibnbd_access_mode *access_mode,
ea541da7d Roman Pen 2018-05-18   96                                    enum 
ibnbd_io_mode *io_mode)
ea541da7d Roman Pen 2018-05-18   97  {
ea541da7d Roman Pen 2018-05-18   98     char *options, *sep_opt;
ea541da7d Roman Pen 2018-05-18   99     char *p;
ea541da7d Roman Pen 2018-05-18  100     substring_t args[MAX_OPT_ARGS];
ea541da7d Roman Pen 2018-05-18  101     int opt_mask = 0;
ea541da7d Roman Pen 2018-05-18  102     int token;
ea541da7d Roman Pen 2018-05-18  103     int ret = -EINVAL;
ea541da7d Roman Pen 2018-05-18  104     int i;
ea541da7d Roman Pen 2018-05-18  105     int p_cnt = 0;
ea541da7d Roman Pen 2018-05-18  106  
ea541da7d Roman Pen 2018-05-18  107     options = kstrdup(buf, GFP_KERNEL);
ea541da7d Roman Pen 2018-05-18  108     if (!options)
ea541da7d Roman Pen 2018-05-18  109             return -ENOMEM;
ea541da7d Roman Pen 2018-05-18  110  
ea541da7d Roman Pen 2018-05-18  111     sep_opt = strstrip(options);
ea541da7d Roman Pen 2018-05-18  112     strip(sep_opt);
ea541da7d Roman Pen 2018-05-18  113     while ((p = strsep(&sep_opt, " ")) != 
NULL) {
ea541da7d Roman Pen 2018-05-18  114             if (!*p)
ea541da7d Roman Pen 2018-05-18  115                     continue;
ea541da7d Roman Pen 2018-05-18  116  
ea541da7d Roman Pen 2018-05-18  117             token = match_token(p, 
ibnbd_opt_tokens, args);
ea541da7d Roman Pen 2018-05-18  118             opt_mask |= token;
ea541da7d Roman Pen 2018-05-18  119  
ea541da7d Roman Pen 2018-05-18  120             switch (token) {
ea541da7d Roman Pen 2018-05-18  121             case IBNBD_OPT_SESSNAME:
ea541da7d Roman Pen 2018-05-18  122                     p = match_strdup(args);
ea541da7d Roman Pen 2018-05-18  123                     if (!p) {
ea541da7d Roman Pen 2018-05-18  124                             ret = -ENOMEM;
ea541da7d Roman Pen 2018-05-18  125                             goto out;
ea541da7d Roman Pen 2018-05-18  126                     }
ea541da7d Roman Pen 2018-05-18  127                     if (strlen(p) > 
NAME_MAX) {
ea541da7d Roman Pen 2018-05-18  128                             
pr_err("map_device: sessname too long\n");
ea541da7d Roman Pen 2018-05-18  129                             ret = -EINVAL;
ea541da7d Roman Pen 2018-05-18  130                             kfree(p);
ea541da7d Roman Pen 2018-05-18  131                             goto out;
ea541da7d Roman Pen 2018-05-18  132                     }
ea541da7d Roman Pen 2018-05-18  133                     strlcpy(sessname, p, 
NAME_MAX);
ea541da7d Roman Pen 2018-05-18  134                     kfree(p);
ea541da7d Roman Pen 2018-05-18  135                     break;
ea541da7d Roman Pen 2018-05-18  136  
ea541da7d Roman Pen 2018-05-18  137             case IBNBD_OPT_PATH:
ea541da7d Roman Pen 2018-05-18  138                     if (p_cnt >= 
max_path_cnt) {
ea541da7d Roman Pen 2018-05-18 @139                             
pr_err("map_device: too many (> %lu) paths "
ea541da7d Roman Pen 2018-05-18  140                                    
"provided\n", max_path_cnt);
ea541da7d Roman Pen 2018-05-18  141                             ret = -ENOMEM;
ea541da7d Roman Pen 2018-05-18  142                             goto out;
ea541da7d Roman Pen 2018-05-18  143                     }
ea541da7d Roman Pen 2018-05-18  144                     p = match_strdup(args);
ea541da7d Roman Pen 2018-05-18  145                     if (!p) {
ea541da7d Roman Pen 2018-05-18  146                             ret = -ENOMEM;
ea541da7d Roman Pen 2018-05-18  147                             goto out;
ea541da7d Roman Pen 2018-05-18  148                     }
ea541da7d Roman Pen 2018-05-18  149  
ea541da7d Roman Pen 2018-05-18  150                     ret = 
ibtrs_addr_to_sockaddr(p, strlen(p), IBTRS_PORT,
ea541da7d Roman Pen 2018-05-18  151                                             
     &paths[p_cnt]);
ea541da7d Roman Pen 2018-05-18  152                     if (ret) {
ea541da7d Roman Pen 2018-05-18  153                             pr_err("Can't 
parse path %s: %d\n", p, ret);
ea541da7d Roman Pen 2018-05-18  154                             kfree(p);
ea541da7d Roman Pen 2018-05-18  155                             goto out;
ea541da7d Roman Pen 2018-05-18  156                     }
ea541da7d Roman Pen 2018-05-18  157  
ea541da7d Roman Pen 2018-05-18  158                     p_cnt++;
ea541da7d Roman Pen 2018-05-18  159  
ea541da7d Roman Pen 2018-05-18  160                     kfree(p);
ea541da7d Roman Pen 2018-05-18  161                     break;
ea541da7d Roman Pen 2018-05-18  162  
ea541da7d Roman Pen 2018-05-18  163             case IBNBD_OPT_DEV_PATH:
ea541da7d Roman Pen 2018-05-18  164                     p = match_strdup(args);
ea541da7d Roman Pen 2018-05-18  165                     if (!p) {
ea541da7d Roman Pen 2018-05-18  166                             ret = -ENOMEM;
ea541da7d Roman Pen 2018-05-18  167                             goto out;
ea541da7d Roman Pen 2018-05-18  168                     }
ea541da7d Roman Pen 2018-05-18  169                     if (strlen(p) > 
NAME_MAX) {
ea541da7d Roman Pen 2018-05-18  170                             
pr_err("map_device: Device path too long\n");
ea541da7d Roman Pen 2018-05-18  171                             ret = -EINVAL;
ea541da7d Roman Pen 2018-05-18  172                             kfree(p);
ea541da7d Roman Pen 2018-05-18  173                             goto out;
ea541da7d Roman Pen 2018-05-18  174                     }
ea541da7d Roman Pen 2018-05-18  175                     strlcpy(pathname, p, 
NAME_MAX);
ea541da7d Roman Pen 2018-05-18  176                     kfree(p);
ea541da7d Roman Pen 2018-05-18  177                     break;
ea541da7d Roman Pen 2018-05-18  178  
ea541da7d Roman Pen 2018-05-18  179             case IBNBD_OPT_ACCESS_MODE:
ea541da7d Roman Pen 2018-05-18  180                     p = match_strdup(args);
ea541da7d Roman Pen 2018-05-18  181                     if (!p) {
ea541da7d Roman Pen 2018-05-18  182                             ret = -ENOMEM;
ea541da7d Roman Pen 2018-05-18  183                             goto out;
ea541da7d Roman Pen 2018-05-18  184                     }
ea541da7d Roman Pen 2018-05-18  185  
ea541da7d Roman Pen 2018-05-18  186                     if (!strcmp(p, "ro")) {
ea541da7d Roman Pen 2018-05-18  187                             *access_mode = 
IBNBD_ACCESS_RO;
ea541da7d Roman Pen 2018-05-18  188                     } else if (!strcmp(p, 
"rw")) {
ea541da7d Roman Pen 2018-05-18  189                             *access_mode = 
IBNBD_ACCESS_RW;
ea541da7d Roman Pen 2018-05-18  190                     } else if (!strcmp(p, 
"migration")) {
ea541da7d Roman Pen 2018-05-18  191                             *access_mode = 
IBNBD_ACCESS_MIGRATION;
ea541da7d Roman Pen 2018-05-18  192                     } else {
ea541da7d Roman Pen 2018-05-18  193                             
pr_err("map_device: Invalid access_mode:"
ea541da7d Roman Pen 2018-05-18  194                                    " 
'%s'\n", p);
ea541da7d Roman Pen 2018-05-18  195                             ret = -EINVAL;
ea541da7d Roman Pen 2018-05-18  196                             kfree(p);
ea541da7d Roman Pen 2018-05-18  197                             goto out;
ea541da7d Roman Pen 2018-05-18  198                     }
ea541da7d Roman Pen 2018-05-18  199  
ea541da7d Roman Pen 2018-05-18  200                     kfree(p);
ea541da7d Roman Pen 2018-05-18  201                     break;
ea541da7d Roman Pen 2018-05-18  202  
ea541da7d Roman Pen 2018-05-18  203             case IBNBD_OPT_IO_MODE:
ea541da7d Roman Pen 2018-05-18  204                     p = match_strdup(args);
ea541da7d Roman Pen 2018-05-18  205                     if (!p) {
ea541da7d Roman Pen 2018-05-18  206                             ret = -ENOMEM;
ea541da7d Roman Pen 2018-05-18  207                             goto out;
ea541da7d Roman Pen 2018-05-18  208                     }
ea541da7d Roman Pen 2018-05-18  209                     if (!strcmp(p, 
"blockio")) {
ea541da7d Roman Pen 2018-05-18  210                             *io_mode = 
IBNBD_BLOCKIO;
ea541da7d Roman Pen 2018-05-18  211                     } else if (!strcmp(p, 
"fileio")) {
ea541da7d Roman Pen 2018-05-18  212                             *io_mode = 
IBNBD_FILEIO;
ea541da7d Roman Pen 2018-05-18  213                     } else {
ea541da7d Roman Pen 2018-05-18  214                             
pr_err("map_device: Invalid io_mode: '%s'.\n",
ea541da7d Roman Pen 2018-05-18  215                                    p);
ea541da7d Roman Pen 2018-05-18  216                             ret = -EINVAL;
ea541da7d Roman Pen 2018-05-18  217                             kfree(p);
ea541da7d Roman Pen 2018-05-18  218                             goto out;
ea541da7d Roman Pen 2018-05-18  219                     }
ea541da7d Roman Pen 2018-05-18  220                     kfree(p);
ea541da7d Roman Pen 2018-05-18  221                     break;
ea541da7d Roman Pen 2018-05-18  222  
ea541da7d Roman Pen 2018-05-18  223             default:
ea541da7d Roman Pen 2018-05-18  224                     pr_err("map_device: 
Unknown parameter or missing value"
ea541da7d Roman Pen 2018-05-18  225                            " '%s'\n", p);
ea541da7d Roman Pen 2018-05-18  226                     ret = -EINVAL;
ea541da7d Roman Pen 2018-05-18  227                     goto out;
ea541da7d Roman Pen 2018-05-18  228             }
ea541da7d Roman Pen 2018-05-18  229     }
ea541da7d Roman Pen 2018-05-18  230  
ea541da7d Roman Pen 2018-05-18  231     for (i = 0; i < 
ARRAY_SIZE(ibnbd_opt_mandatory); i++) {
ea541da7d Roman Pen 2018-05-18  232             if ((opt_mask & 
ibnbd_opt_mandatory[i])) {
ea541da7d Roman Pen 2018-05-18  233                     ret = 0;
ea541da7d Roman Pen 2018-05-18  234             } else {
ea541da7d Roman Pen 2018-05-18  235                     pr_err("map_device: 
Parameters missing\n");
ea541da7d Roman Pen 2018-05-18  236                     ret = -EINVAL;
ea541da7d Roman Pen 2018-05-18  237                     break;
ea541da7d Roman Pen 2018-05-18  238             }
ea541da7d Roman Pen 2018-05-18  239     }
ea541da7d Roman Pen 2018-05-18  240  
ea541da7d Roman Pen 2018-05-18  241  out:
ea541da7d Roman Pen 2018-05-18  242     *path_cnt = p_cnt;
ea541da7d Roman Pen 2018-05-18  243     kfree(options);
ea541da7d Roman Pen 2018-05-18  244     return ret;
ea541da7d Roman Pen 2018-05-18  245  }
ea541da7d Roman Pen 2018-05-18  246  

:::::: The code at line 139 was first introduced by commit
:::::: ea541da7d8b2518d2b1d68d23d19bb13cca1119b ibnbd: client: sysfs interface 
functions

:::::: TO: Roman Pen <[email protected]>
:::::: CC: 0day robot <[email protected]>

---
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