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

Attachment: .config.gz
Description: Binary data

Reply via email to