From: kbuild test robot <lkp@intel.com>
To: Roman Pen <roman.penyaev@profitbricks.com>
Cc: kbuild-all@01.org, linux-block@vger.kernel.org,
linux-rdma@vger.kernel.org, Jens Axboe <axboe@kernel.dk>,
Christoph Hellwig <hch@infradead.org>,
Sagi Grimberg <sagi@grimberg.me>,
Bart Van Assche <bart.vanassche@sandisk.com>,
Or Gerlitz <ogerlitz@mellanox.com>,
Doug Ledford <dledford@redhat.com>,
Swapnil Ingle <swapnil.ingle@profitbricks.com>,
Danil Kipnis <danil.kipnis@profitbricks.com>,
Jack Wang <jinpu.wang@profitbricks.com>,
Roman Pen <roman.penyaev@profitbricks.com>
Subject: Re: [PATCH v2 24/26] ibnbd: include client and server modules into kernel compilation
Date: Mon, 21 May 2018 13:33:32 +0800 [thread overview]
Message-ID: <201805211118.RXWb3Rqd%fengguang.wu@intel.com> (raw)
In-Reply-To: <20180518130413.16997-25-roman.penyaev@profitbricks.com>
[-- Attachment #1: Type: text/plain, Size: 10593 bytes --]
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 <roman.penyaev@profitbricks.com>
:::::: CC: 0day robot <lkp@intel.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 62305 bytes --]
next prev parent reply other threads:[~2018-05-21 5:33 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-18 13:03 [PATCH v2 00/26] InfiniBand Transport (IBTRS) and Network Block Device (IBNBD) Roman Pen
2018-05-18 13:03 ` [PATCH v2 01/26] rculist: introduce list_next_or_null_rr_rcu() Roman Pen
2018-05-18 16:56 ` Linus Torvalds
2018-05-19 20:25 ` Roman Penyaev
2018-05-19 21:04 ` Linus Torvalds
2018-05-19 16:37 ` Paul E. McKenney
2018-05-19 20:20 ` Roman Penyaev
2018-05-19 20:56 ` Linus Torvalds
2018-05-20 0:43 ` Paul E. McKenney
2018-05-21 13:50 ` Roman Penyaev
2018-05-21 15:16 ` Linus Torvalds
2018-05-21 15:33 ` Paul E. McKenney
2018-05-22 9:09 ` Roman Penyaev
2018-05-22 16:36 ` Paul E. McKenney
2018-05-22 16:38 ` Linus Torvalds
2018-05-22 17:04 ` Paul E. McKenney
2018-05-21 15:31 ` Paul E. McKenney
2018-05-22 9:09 ` Roman Penyaev
2018-05-22 17:03 ` Paul E. McKenney
2018-05-18 13:03 ` [PATCH v2 02/26] sysfs: export sysfs_remove_file_self() Roman Pen
2018-05-18 15:08 ` Tejun Heo
2018-05-18 13:03 ` [PATCH v2 03/26] ibtrs: public interface header to establish RDMA connections Roman Pen
2018-05-18 13:03 ` [PATCH v2 04/26] ibtrs: private headers with IBTRS protocol structs and helpers Roman Pen
2018-05-18 13:03 ` [PATCH v2 05/26] ibtrs: core: lib functions shared between client and server modules Roman Pen
2018-05-18 13:03 ` [PATCH v2 06/26] ibtrs: client: private header with client structs and functions Roman Pen
2018-05-18 13:03 ` [PATCH v2 07/26] ibtrs: client: main functionality Roman Pen
2018-05-18 13:03 ` [PATCH v2 08/26] ibtrs: client: statistics functions Roman Pen
2018-05-18 13:03 ` [PATCH v2 09/26] ibtrs: client: sysfs interface functions Roman Pen
2018-05-18 13:03 ` [PATCH v2 10/26] ibtrs: server: private header with server structs and functions Roman Pen
2018-05-18 13:03 ` [PATCH v2 11/26] ibtrs: server: main functionality Roman Pen
2018-05-18 13:03 ` [PATCH v2 12/26] ibtrs: server: statistics functions Roman Pen
2018-05-18 13:04 ` [PATCH v2 13/26] ibtrs: server: sysfs interface functions Roman Pen
2018-05-18 13:04 ` [PATCH v2 14/26] ibtrs: include client and server modules into kernel compilation Roman Pen
2018-05-20 22:14 ` kbuild test robot
2018-05-21 6:36 ` kbuild test robot
2018-05-22 5:05 ` Leon Romanovsky
2018-05-22 9:27 ` Roman Penyaev
2018-05-22 13:18 ` Leon Romanovsky
2018-05-22 16:12 ` Roman Penyaev
2018-05-18 13:04 ` [PATCH v2 15/26] ibtrs: a bit of documentation Roman Pen
2018-05-18 13:04 ` [PATCH v2 16/26] ibnbd: private headers with IBNBD protocol structs and helpers Roman Pen
2018-05-18 13:04 ` [PATCH v2 17/26] ibnbd: client: private header with client structs and functions Roman Pen
2018-05-18 13:04 ` [PATCH v2 18/26] ibnbd: client: main functionality Roman Pen
2018-05-18 13:04 ` [PATCH v2 19/26] ibnbd: client: sysfs interface functions Roman Pen
2018-05-18 13:04 ` [PATCH v2 20/26] ibnbd: server: private header with server structs and functions Roman Pen
2018-05-18 13:04 ` [PATCH v2 21/26] ibnbd: server: main functionality Roman Pen
2018-05-18 13:04 ` [PATCH v2 22/26] ibnbd: server: functionality for IO submission to file or block dev Roman Pen
2018-05-18 13:04 ` [PATCH v2 23/26] ibnbd: server: sysfs interface functions Roman Pen
2018-05-18 13:04 ` [PATCH v2 24/26] ibnbd: include client and server modules into kernel compilation Roman Pen
2018-05-20 17:21 ` kbuild test robot
2018-05-20 22:14 ` kbuild test robot
2018-05-21 5:33 ` kbuild test robot [this message]
2018-05-18 13:04 ` [PATCH v2 25/26] ibnbd: a bit of documentation Roman Pen
2018-05-18 13:04 ` [PATCH v2 26/26] MAINTAINERS: Add maintainer for IBNBD/IBTRS modules Roman Pen
2018-05-22 16:45 ` [PATCH v2 00/26] InfiniBand Transport (IBTRS) and Network Block Device (IBNBD) Jason Gunthorpe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201805211118.RXWb3Rqd%fengguang.wu@intel.com \
--to=lkp@intel.com \
--cc=axboe@kernel.dk \
--cc=bart.vanassche@sandisk.com \
--cc=danil.kipnis@profitbricks.com \
--cc=dledford@redhat.com \
--cc=hch@infradead.org \
--cc=jinpu.wang@profitbricks.com \
--cc=kbuild-all@01.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=ogerlitz@mellanox.com \
--cc=roman.penyaev@profitbricks.com \
--cc=sagi@grimberg.me \
--cc=swapnil.ingle@profitbricks.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).