re: [SCSI] bnx2fc: Broadcom FCoE offload driver

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

 



Hello Dan,

Thanks for bringing this to our attention.  We'll fix it upon our next
patchset submission.

Thanks,
Eddie

On Thu, 2014-02-13 at 12:52 +0300, Dan Carpenter wrote:
> Hello Bhanu Gollapudi,
> 
> The patch 853e2bd2103a: "[SCSI] bnx2fc: Broadcom FCoE offload driver"
> from Feb 4, 2011, leads to the following static checker warning:
> 
> 	drivers/scsi/bnx2fc/bnx2fc_hwi.c:1660 bnx2fc_init_mp_task()
> 	warn: we tested 'task_type == 3' before and it was 'false'
> 
> drivers/scsi/bnx2fc/bnx2fc_hwi.c
>   1586  void bnx2fc_init_mp_task(struct bnx2fc_cmd *io_req,
>   1587                                  struct fcoe_task_ctx_entry *task)
>   1588  {
>   1589          struct bnx2fc_mp_req *mp_req = &(io_req->mp_req);
>   1590          struct bnx2fc_rport *tgt = io_req->tgt;
>   1591          struct fc_frame_header *fc_hdr;
>   1592          struct fcoe_ext_mul_sges_ctx *sgl;
>   1593          u8 task_type = 0;
>                    ^^^^^^^^^^^^^
> Should this be FCOE_TASK_TYPE_UNSOLICITED (3)?
UNSOLICITED task type is not being used by bnx2fc at the moment.  The
more preferable fix would be to un-initialize this and then change the
cmd_type to a switch statement and supply a default exit.  We don't want
to see the firmware getting initialized by uninitialized requests.
> 
>   1594          u64 *hdr;
>   1595          u64 temp_hdr[3];
>   1596          u32 context_id;
>   1597  
>   1598  
>   1599          /* Obtain task_type */
>   1600          if ((io_req->cmd_type == BNX2FC_TASK_MGMT_CMD) ||
>   1601              (io_req->cmd_type == BNX2FC_ELS)) {
>   1602                  task_type = FCOE_TASK_TYPE_MIDPATH;
>   1603          } else if (io_req->cmd_type == BNX2FC_ABTS) {
>   1604                  task_type = FCOE_TASK_TYPE_ABTS;
>   1605          }
>   1606  
>   1607          memset(task, 0, sizeof(struct fcoe_task_ctx_entry));
>   1608  
>   1609          /* Setup the task from io_req for easy reference */
>   1610          io_req->task = task;
>   1611  
>   1612          BNX2FC_IO_DBG(io_req, "Init MP task for cmd_type = %d task_type = %d\n",
>   1613                  io_req->cmd_type, task_type);
>   1614  
>   1615          /* Tx only */
>   1616          if ((task_type == FCOE_TASK_TYPE_MIDPATH) ||
>   1617              (task_type == FCOE_TASK_TYPE_UNSOLICITED)) {
>                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
> Not possible.
> 
>   1618                  task->txwr_only.sgl_ctx.sgl.mul_sgl.cur_sge_addr.lo =
>   1619                                  (u32)mp_req->mp_req_bd_dma;
>   1620                  task->txwr_only.sgl_ctx.sgl.mul_sgl.cur_sge_addr.hi =
>   1621                                  (u32)((u64)mp_req->mp_req_bd_dma >> 32);
>   1622                  task->txwr_only.sgl_ctx.sgl.mul_sgl.sgl_size = 1;
>   1623          }
> 
> regards,
> dan carpenter
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


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




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux