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-rc6 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: i386-allyesconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All warnings (new ones prefixed by >>):

   drivers/block/ibnbd/ibnbd-clt-sysfs.c: In function 
'ibnbd_clt_parse_map_options':
>> drivers/block/ibnbd/ibnbd-clt-sysfs.c:139:12: warning: format '%lu' expects 
>> argument of type 'long unsigned int', but argument 2 has type 'size_t {aka 
>> unsigned int}' [-Wformat=]
        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 1612 
bytes is larger than 1024 bytes [-Wframe-larger-than=]
    }
    ^

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