[bug report] nvme: track shared namespaces

Dan Carpenter dan.carpenter at oracle.com
Wed Nov 15 23:01:17 PST 2017


Hello Christoph Hellwig,

This is a semi-automatic email about new static checker warnings.

The patch ed754e5deeb1: "nvme: track shared namespaces" from Nov 9, 
2017, leads to the following Smatch complaint:

    drivers/nvme/host/core.c:2991 nvme_ns_remove()
     error: we previously assumed 'head' could be null (see line 2983)

drivers/nvme/host/core.c
  2982		nvme_mpath_clear_current_path(ns);
  2983		if (head)
                    ^^^^
The patch adds a check

  2984			list_del_rcu(&ns->siblings);
  2985		mutex_unlock(&ns->ctrl->subsys->lock);
  2986	
  2987		mutex_lock(&ns->ctrl->namespaces_mutex);
  2988		list_del_init(&ns->list);
  2989		mutex_unlock(&ns->ctrl->namespaces_mutex);
  2990	
  2991		synchronize_srcu(&head->srcu);
                                  ^^^^^^^^^^
and a new unchecked dereference.

  2992		nvme_put_ns(ns);
  2993	}

regards,
dan carpenter



More information about the Linux-nvme mailing list