On 8/14/2013 10:52 PM, Dan Carpenter wrote:
Hello Sagi Grimberg,

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

The patch b4e155ffbbd6: "IB/iser: Generalize rdma memory
registration" from Jul 28, 2013, leads to the following Smatch
complaint:

drivers/infiniband/ulp/iser/iser_initiator.c:318 iser_free_rx_descriptors()
         error: we previously assumed 'device' could be null (see line 313)

drivers/infiniband/ulp/iser/iser_initiator.c
    312 
    313         if (device && device->iser_free_rdma_reg_res)
                     ^^^^^^
New check.

    314                 device->iser_free_rdma_reg_res(ib_conn);
    315 
    316         rx_desc = ib_conn->rx_descs;
    317         for (i = 0; i < ib_conn->qp_max_recv_dtos; i++, rx_desc++)
    318                 ib_dma_unmap_single(device->ib_device, 
rx_desc->dma_addr,
                                             ^^^^^^^^^^^^^^^^^
Old dererference.

    319                                     ISER_RX_PAYLOAD_SIZE, 
DMA_FROM_DEVICE);
    320         kfree(ib_conn->rx_descs);

Has the code changed so that we need to check now?

regards,
dan carpenter

Hey Dan,

Thanks for the input!
The case here is that for some weird error flows we can end-up in this function with device == NULL, but if you pass the first condition if (!ib_conn->rx_descs) you are safe...

I'll fire up a fix for that asap.

Cheers,

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

Reply via email to