tree: https://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending.git nvmet-configfs-ng head: b75ad796462431e38bba0fb04d277fd83c919575 commit: b57da10630e0fb2243e901f2df910c5c980e922e [30/35] nvmet/configfs-ng: Introduce struct nvmet_port_binding config: openrisc-allmodconfig (attached as .config) compiler: or32-linux-gcc (GCC) 4.5.1-or32-1.0rc1 reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout b57da10630e0fb2243e901f2df910c5c980e922e # save the attached .config to linux build tree make.cross ARCH=openrisc
Note: the target/nvmet-configfs-ng HEAD
b75ad796462431e38bba0fb04d277fd83c919575 builds fine.
It only hurts bisectibility.
All error/warnings (new ones prefixed by >>):
drivers/nvme/target/configfs-ng.c: In function 'nvmet_port_disable':
>> drivers/nvme/target/configfs-ng.c:253:18: error: 'struct nvmet_port' has no
>> member named 'port_binding_mutex'
drivers/nvme/target/configfs-ng.c:255:19: error: 'struct nvmet_port_binding'
has no member named 'subsys_node'
drivers/nvme/target/configfs-ng.c:256:20: error: 'struct nvmet_port' has no
member named 'port_binding_mutex'
>> drivers/nvme/target/configfs-ng.c:262:2: warning: passing argument 1 of
>> 'ops->remove_port' from incompatible pointer type
drivers/nvme/target/configfs-ng.c:262:2: note: expected 'struct nvmet_port
*' but argument is of type 'struct nvmet_port_binding *'
drivers/nvme/target/configfs-ng.c: In function 'nvmet_port_enable_store':
>> drivers/nvme/target/configfs-ng.c:302:3: warning: passing argument 1 of
>> 'ops->add_port' from incompatible pointer type
drivers/nvme/target/configfs-ng.c:302:3: note: expected 'struct nvmet_port
*' but argument is of type 'struct nvmet_port_binding *'
drivers/nvme/target/configfs-ng.c:309:19: error: 'struct nvmet_port' has no
member named 'port_binding_mutex'
drivers/nvme/target/configfs-ng.c:311:20: error: 'struct nvmet_port_binding'
has no member named 'subsys_node'
drivers/nvme/target/configfs-ng.c:312:21: error: 'struct nvmet_port' has no
member named 'port_binding_mutex'
vim +253 drivers/nvme/target/configfs-ng.c
247 struct nvmet_subsys *subsys = pb->nf_subsys;
248 struct nvmet_port *port = pb->port;
249
250 if (!ops || !port)
251 return;
252
> 253 mutex_lock(&port->port_binding_mutex);
254 pb->enabled = false;
255 list_del_init(&pb->subsys_node);
256 mutex_unlock(&port->port_binding_mutex);
257
258 mutex_lock(&subsys->pb_list_mutex);
259 list_del_init(&pb->node);
260 mutex_unlock(&subsys->pb_list_mutex);
261
> 262 ops->remove_port(pb);
263 nvmet_put_transport(&pb->disc_addr);
264 pb->nf_ops = NULL;
265 }
266
267 static ssize_t nvmet_port_enable_show(struct config_item *item, char
*page)
268 {
269 struct nvmet_port_binding *pb = to_nvmet_port_binding(item);
270
271 return sprintf(page, "%d\n", pb->enabled);
272 }
273
274 static ssize_t nvmet_port_enable_store(struct config_item *item,
275 const char *page, size_t count)
276 {
277 struct nvmet_port *port;
278 struct nvmet_port_binding *pb = to_nvmet_port_binding(item);
279 struct nvmet_subsys *subsys = pb->nf_subsys;
280 struct nvmet_fabrics_ops *ops;
281 bool enable;
282 int rc;
283
284 printk("Entering port enable %d\n", pb->disc_addr.trtype);
285
286 if (strtobool(page, &enable))
287 return -EINVAL;
288
289 if (enable) {
290 if (pb->enabled) {
291 pr_warn("port already enabled: %d\n",
292 pb->disc_addr.trtype);
293 goto out;
294 }
295
296 ops = nvmet_get_transport(&pb->disc_addr);
297 if (IS_ERR(ops))
298 return PTR_ERR(ops);
299
300 pb->nf_ops = ops;
301
> 302 rc = ops->add_port(pb);
303 if (rc) {
304 nvmet_put_transport(&pb->disc_addr);
305 return rc;
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: Binary data

