Hello Bryan O'Sullivan,

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

The patch 3e9b4a5eb4ae: "IB/ipath: sysfs and ipathfs support for core 
driver" from Mar 29, 2006, leads to the following Smatch complaint:

drivers/infiniband/hw/ipath/ipath_fs.c:285 remove_file()
         error: we previously assumed 'tmp->d_inode' could be null (see line 
281)

drivers/infiniband/hw/ipath/ipath_fs.c
   280          spin_lock(&tmp->d_lock);
   281          if (!(d_unhashed(tmp) && tmp->d_inode)) {
                                         ^^^^^^^^^^^^
We allow that ->d_inode to be NULL.

   282                  dget_dlock(tmp);
   283                  __d_drop(tmp);
   284                  spin_unlock(&tmp->d_lock);
   285                  simple_unlink(parent->d_inode, tmp);
                                                       ^^^
But we dereference it inside the call to simple_unlink().  This code is
probably cut-and-pasted from configfs because I reported a bug in that
code as well yesterday but haven't heard back.

   286          } else
   287                  spin_unlock(&tmp->d_lock);

drivers/infiniband/hw/qib/qib_fs.c
   458          spin_lock(&tmp->d_lock);
   459          if (!(d_unhashed(tmp) && tmp->d_inode)) {
                                         ^^^^^^^^^^^^
   460                  __d_drop(tmp);
   461                  spin_unlock(&tmp->d_lock);
   462                  simple_unlink(parent->d_inode, tmp);
                                                       ^^^
And another one here in qib_fs.c.

   463          } else {
   464                  spin_unlock(&tmp->d_lock);

regards,
dan carpenter
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to