[bug report] staging/rdma/hfi1: move txreq header code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Mike Marciniszyn,

The patch 45842abbb292: "staging/rdma/hfi1: move txreq header code"
from Feb 14, 2016, leads to the following static checker warning:

	drivers/infiniband/hw/hfi1/verbs_txreq.h:89 get_txreq()
	warn: 'tx' can also be NULL

drivers/infiniband/hw/hfi1/verbs_txreq.h
    75  static inline struct verbs_txreq *get_txreq(struct hfi1_ibdev *dev,
    76                                              struct rvt_qp *qp)
    77          __must_hold(&qp->slock)
    78  {
    79          struct verbs_txreq *tx;
    80          struct hfi1_qp_priv *priv = qp->priv;
    81  
    82          tx = kmem_cache_alloc(dev->verbs_txreq_cache, GFP_ATOMIC);
    83          if (unlikely(!tx)) {
    84                  /* call slow path to get the lock */
    85                  tx = __get_txreq(dev, qp);
                             ^^^^^^^^^^^^^^^^^^^^
The problem is that __get_txreq() returns a mix of error pointers and
NULL.  I skimmed the function but it's not totally clear to me how it's
supposed to work.

    86                  if (IS_ERR(tx))
    87                          return tx;
    88          }
    89          tx->qp = qp;
    90          tx->mr = NULL;
    91          tx->sde = priv->s_sde;
    92          tx->psc = priv->s_sendcontext;
    93          /* so that we can test if the sdma decriptors are there */
    94          tx->txreq.num_desc = 0;
    95          /* Set the header type */
    96          tx->phdr.hdr.hdr_type = priv->hdr_type;
    97          return tx;
    98  }

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



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux