Dan,

Will take a look and submit patch to remove warning. Thanks.

Regards,
Quinn Tran

-----Original Message-----
From: Dan Carpenter <dan.carpen...@oracle.com>
Date: Monday, February 6, 2017 at 3:37 AM
To: "Tran, Quinn" <quinn.t...@cavium.com>
Cc: "linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>
Subject: [bug report] qla2xxx: Add framework for async fabric discovery

    Hello Quinn Tran,
    
    The patch b79414ee4988: "qla2xxx: Add framework for async fabric
    discovery" from Jan 19, 2017, leads to the following static checker
    warning:
    
        drivers/scsi/qla2xxx/qla_init.c:3910 qla2x00_alloc_fcport()
        warn: use 'flags' here instead of GFP_XXX?
    
    drivers/scsi/qla2xxx/qla_init.c
      3894  fc_port_t *
      3895  qla2x00_alloc_fcport(scsi_qla_host_t *vha, gfp_t flags)
      3896  {
      3897          fc_port_t *fcport;
      3898  
      3899          fcport = kzalloc(sizeof(fc_port_t), flags);
    
    In pratice "flags" is always GFP_KERNEL.
    
      3900          if (!fcport)
      3901                  return NULL;
      3902  
      3903          /* Setup fcport template structure. */
      3904          fcport->vha = vha;
      3905          fcport->port_type = FCT_UNKNOWN;
      3906          fcport->loop_id = FC_NO_LOOP_ID;
      3907          qla2x00_set_fcport_state(fcport, FCS_UNCONFIGURED);
      3908          fcport->supported_classes = FC_COS_UNSPECIFIED;
      3909  
      3910          fcport->ct_desc.ct_sns = 
dma_alloc_coherent(&vha->hw->pdev->dev,
      3911                  sizeof(struct ct_sns_pkt), 
&fcport->ct_desc.ct_sns_dma,
      3912                          GFP_ATOMIC);
    
    There isn't an obvious reason why GFP_ATOMIC is required here.
    
      3913          fcport->disc_state = DSC_DELETED;
      3914          fcport->fw_login_state = DSC_LS_PORT_UNAVAIL;
      3915          fcport->deleted = QLA_SESS_DELETED;
      3916          fcport->login_retry = vha->hw->login_retry_count;
      3917          fcport->login_retry = 5;
      3918          fcport->logout_on_delete = 1;
      3919  
      3920          if (!fcport->ct_desc.ct_sns) {
      3921                  ql_log(ql_log_warn, vha, 0xffff,
      3922                      "Failed to allocate ct_sns request.\n");
      3923                  kfree(fcport);
      3924                  fcport = NULL;
      3925          }
      3926          INIT_WORK(&fcport->del_work, qla24xx_delete_sess_fn);
      3927          INIT_LIST_HEAD(&fcport->gnl_entry);
      3928          INIT_LIST_HEAD(&fcport->list);
      3929  
      3930          return fcport;
      3931  }
    
    regards,
    dan carpenter
    

Reply via email to