From owner-svn-src-head@freebsd.org Fri Jan 25 12:58:51 2019 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 962A514B4F9B for ; Fri, 25 Jan 2019 12:58:50 +0000 (UTC) (envelope-from ram.vegesna@broadcom.com) Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com [IPv6:2a00:1450:4864:20::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0C8078250C for ; Fri, 25 Jan 2019 12:58:49 +0000 (UTC) (envelope-from ram.vegesna@broadcom.com) Received: by mail-lj1-x22c.google.com with SMTP id k15-v6so8274083ljc.8 for ; Fri, 25 Jan 2019 04:58:48 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=J5vvXaU+VF6Ikajo6H09m/1hX+miWyWTjYfzCL1TMT4=; b=dB7YWWIXF2H9gEMm2kznGJr9auYv20SOzdVNCa8uUpA0cyWLU0HBv/s5ka2/pUmGkI a3DjnPfaAqQnlu7W16vshqSXsqtpgEWVVED+cTpD5UiXzNgxx+1ccQClYCSJuANTggzv yn7hBpYxAWTRK5g1gjMZpS+tMYsA6i3Fqwk+SktjKAG2fzgmf3Ogrcme15xzENfIufuX KtmvrtYOe2ZGv4yKMwbe9LuO35IWymbzoDLaaOr1j2exY88fWHFn5OwTl7naVBJJQcNI ojTlQjsRw8f0PSt569aUEC6B1rMe7rx1xKu73wSL8XEPw4BZcaJNJR0eynQQlQMpsjGV 7CtQ== X-Gm-Message-State: AJcUukc5aomwxPwoeefNKrWQScIEix8GZSIz4S/QspXKBOWQl0kaaNci RAVjoPFKwTEYRk1VEgxYcz2AgkYFUF7v+MVx659XAg== X-Google-Smtp-Source: ALg8bN53TZSciOWO6nlqLHGOYEQykSkUq8eJC4u6RWbQzDdvAIvQUk7e4jcLJp3zqNkZrBCxn+P9Ks3xeczwfGqF9vw= X-Received: by 2002:a2e:80d3:: with SMTP id r19-v6mr9760744ljg.151.1548421127148; Fri, 25 Jan 2019 04:58:47 -0800 (PST) MIME-Version: 1.0 References: <201901231734.x0NHY11I004644@repo.freebsd.org> <201901231857.x0NIvmbS080005@pdx.rh.CN85.dnsmgr.net> In-Reply-To: <201901231857.x0NIvmbS080005@pdx.rh.CN85.dnsmgr.net> From: Ram Kishore Vegesna Date: Fri, 25 Jan 2019 18:28:35 +0530 Message-ID: Subject: Re: svn commit: r343349 - head/sys/dev/ocs_fc To: "Rodney W. Grimes" Cc: Ram Kishore Vegesna , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org X-Rspamd-Queue-Id: 0C8078250C X-Spamd-Bar: ------- X-Spamd-Result: default: False [-7.69 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[broadcom.com:s=google]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; RCPT_COUNT_FIVE(0.00)[5]; DWL_DNSWL_LOW(-1.00)[broadcom.com.dwl.dnswl.org : 127.0.9.1]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[broadcom.com:+]; MIME_BASE64_TEXT(0.10)[]; DMARC_POLICY_ALLOW(-0.50)[broadcom.com,quarantine]; RCVD_IN_DNSWL_NONE(0.00)[c.2.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.5.4.1.0.0.a.2.list.dnswl.org : 127.0.5.0]; NEURAL_HAM_SHORT(-0.99)[-0.987,0]; IP_SCORE(-2.79)[ip: (-9.72), ipnet: 2a00:1450::/32(-2.23), asn: 15169(-1.92), country: US(-0.08)]; MX_GOOD(-0.01)[alt1.aspmx.l.google.com,aspmx.l.google.com,alt3.aspmx.l.google.com,alt2.aspmx.l.google.com,alt4.aspmx.l.google.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Jan 2019 12:58:51 -0000 Hi Rodney, I fixed many coverity tool warnings as part of this commit. Adding all the warnings and fix details seemed over kill. I will use a better commit message when I do MFC commit of this revision. Thanks, Ram On Thu, Jan 24, 2019 at 12:28 AM Rodney W. Grimes < freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > Author: ram > > Date: Wed Jan 23 17:34:01 2019 > > New Revision: 343349 > > URL: https://svnweb.freebsd.org/changeset/base/343349 > > > > Log: > > Fixed issues reported by coverity scan. > > The quality of this commit message is rather low, > it should of at least included some details about > what was wrong, why it was wrong, and how it was > fixed. > > Thanks, > Rod > > > > Approved by: mav > > MFC after: 3 weeks > > > > Modified: > > head/sys/dev/ocs_fc/ocs_cam.c > > head/sys/dev/ocs_fc/ocs_hw.c > > head/sys/dev/ocs_fc/ocs_hw_queues.c > > head/sys/dev/ocs_fc/ocs_ioctl.c > > head/sys/dev/ocs_fc/ocs_mgmt.c > > head/sys/dev/ocs_fc/ocs_node.c > > head/sys/dev/ocs_fc/ocs_pci.c > > head/sys/dev/ocs_fc/ocs_xport.c > > head/sys/dev/ocs_fc/sli4.c > > > > Modified: head/sys/dev/ocs_fc/ocs_cam.c > > > ============================================================================== > > --- head/sys/dev/ocs_fc/ocs_cam.c Wed Jan 23 17:28:39 2019 > (r343348) > > +++ head/sys/dev/ocs_fc/ocs_cam.c Wed Jan 23 17:34:01 2019 > (r343349) > > @@ -1164,15 +1164,24 @@ ocs_scsi_del_target(ocs_node_t *node, > ocs_scsi_del_tar > > struct ocs_softc *ocs = node->ocs; > > ocs_fcport *fcp = NULL; > > ocs_fc_target_t *tgt = NULL; > > - uint32_t tgt_id; > > + int32_t tgt_id; > > > > + if (ocs == NULL) { > > + ocs_log_err(ocs,"OCS is NULL \n"); > > + return -1; > > + } > > + > > fcp = node->sport->tgt_data; > > if (fcp == NULL) { > > ocs_log_err(ocs,"FCP is NULL \n"); > > - return 0; > > + return -1; > > } > > > > tgt_id = ocs_tgt_find(fcp, node); > > + if (tgt_id == -1) { > > + ocs_log_err(ocs,"target is invalid\n"); > > + return -1; > > + } > > > > tgt = &fcp->tgt[tgt_id]; > > > > @@ -1781,13 +1790,9 @@ ocs_initiator_io(struct ocs_softc *ocs, union ccb > *ccb > > ocs_io_t *io = NULL; > > ocs_scsi_sgl_t sgl[OCS_FC_MAX_SGL]; > > int32_t sgl_count; > > + ocs_fcport *fcp; > > > > - ocs_fcport *fcp = NULL; > > fcp = FCPORT(ocs, cam_sim_bus(xpt_path_sim((ccb)->ccb_h.path))); > > - if (fcp == NULL) { > > - device_printf(ocs->dev, "%s: fcp is NULL\n", __func__); > > - return -1; > > - } > > > > if (fcp->tgt[ccb_h->target_id].state == OCS_TGT_STATE_LOST) { > > device_printf(ocs->dev, "%s: device LOST %d\n", __func__, > > @@ -2250,8 +2255,11 @@ ocs_action(struct cam_sim *sim, union ccb *ccb) > > } > > case XPT_RESET_BUS: > > if (ocs_xport_control(ocs->xport, OCS_XPORT_PORT_OFFLINE) > == 0) { > > - ocs_xport_control(ocs->xport, > OCS_XPORT_PORT_ONLINE); > > - > > + rc = ocs_xport_control(ocs->xport, > OCS_XPORT_PORT_ONLINE); > > + if (rc) { > > + ocs_log_debug(ocs, "Failed to bring port > online" > > + " : %d\n", > rc); > > + } > > ocs_set_ccb_status(ccb, CAM_REQ_CMP); > > } else { > > ocs_set_ccb_status(ccb, CAM_REQ_CMP_ERR); > > > > Modified: head/sys/dev/ocs_fc/ocs_hw.c > > > ============================================================================== > > --- head/sys/dev/ocs_fc/ocs_hw.c Wed Jan 23 17:28:39 2019 > (r343348) > > +++ head/sys/dev/ocs_fc/ocs_hw.c Wed Jan 23 17:34:01 2019 > (r343349) > > @@ -242,10 +242,7 @@ ocs_hw_get_num_chutes(ocs_hw_t *hw) > > static ocs_hw_rtn_e > > ocs_hw_link_event_init(ocs_hw_t *hw) > > { > > - if (hw == NULL) { > > - ocs_log_err(hw->os, "bad parameter hw=%p\n", hw); > > - return OCS_HW_RTN_ERROR; > > - } > > + ocs_hw_assert(hw); > > > > hw->link.status = SLI_LINK_STATUS_MAX; > > hw->link.topology = SLI_LINK_TOPO_NONE; > > @@ -1757,6 +1754,7 @@ ocs_hw_get(ocs_hw_t *hw, ocs_hw_property_e prop, > uint3 > > break; > > case OCS_HW_MAX_VPORTS: > > *value = sli_get_max_rsrc(&hw->sli, SLI_RSRC_FCOE_VPI); > > + break; > > default: > > ocs_log_test(hw->os, "unsupported property %#x\n", prop); > > rc = OCS_HW_RTN_ERROR; > > @@ -1996,6 +1994,7 @@ ocs_hw_set(ocs_hw_t *hw, ocs_hw_property_e prop, > uint3 > > break; > > case OCS_ESOC: > > hw->config.esoc = value; > > + break; > > case OCS_HW_HIGH_LOGIN_MODE: > > rc = sli_set_hlm(&hw->sli, value); > > break; > > @@ -4395,7 +4394,7 @@ ocs_hw_send_frame(ocs_hw_t *hw, fc_header_le_t > *hdr, u > > > > OCS_STAT(wq->use_count++); > > > > - return rc ? OCS_HW_RTN_ERROR : OCS_HW_RTN_SUCCESS; > > + return OCS_HW_RTN_SUCCESS; > > } > > > > ocs_hw_rtn_e > > @@ -4696,7 +4695,7 @@ ocs_hw_io_overflow_sgl(ocs_hw_t *hw, ocs_hw_io_t > *io) > > } > > > > /* fail if we don't have an overflow SGL registered */ > > - if (io->ovfl_sgl == NULL) { > > + if (io->ovfl_io == NULL || io->ovfl_sgl == NULL) { > > return OCS_HW_RTN_ERROR; > > } > > > > @@ -6321,6 +6320,11 @@ ocs_hw_config_watchdog_timer(ocs_hw_t *hw) > > ocs_hw_rtn_e rc = OCS_HW_RTN_SUCCESS; > > uint8_t *buf = ocs_malloc(hw->os, SLI4_BMBX_SIZE, OCS_M_NOWAIT); > > > > + if (!buf) { > > + ocs_log_err(hw->os, "no buffer for command\n"); > > + return OCS_HW_RTN_NO_MEMORY; > > + } > > + > > sli4_cmd_lowlevel_set_watchdog(&hw->sli, buf, SLI4_BMBX_SIZE, > hw->watchdog_timeout); > > rc = ocs_hw_command(hw, buf, OCS_CMD_NOWAIT, > ocs_hw_cb_cfg_watchdog, NULL); > > if (rc) { > > @@ -8486,7 +8490,14 @@ ocs_hw_cq_process(ocs_hw_t *hw, hw_cq_t *cq) > > break; > > case SLI_QENTRY_WQ_RELEASE: { > > uint32_t wq_id = rid; > > - uint32_t index = > ocs_hw_queue_hash_find(hw->wq_hash, wq_id); > > + int32_t index = > ocs_hw_queue_hash_find(hw->wq_hash, wq_id); > > + > > + if (unlikely(index < 0)) { > > + ocs_log_err(hw->os, "unknown idx=%#x > rid=%#x\n", > > + index, rid); > > + break; > > + } > > + > > hw_wq_t *wq = hw->hw_wq[index]; > > > > /* Submit any HW IOs that are on the WQ pending > list */ > > @@ -9300,7 +9311,8 @@ ocs_hw_cb_link(void *ctx, void *e) > > > > hw->link.status = event->status; > > > > - for (i = 0; d = hw->domains[i], i < SLI4_MAX_FCFI; i++) { > > + for (i = 0; i < SLI4_MAX_FCFI; i++) { > > + d = hw->domains[i]; > > if (d != NULL && > > hw->callback.domain != NULL) { > > hw->callback.domain(hw->args.domain, > OCS_HW_DOMAIN_LOST, d); > > @@ -9322,6 +9334,9 @@ ocs_hw_cb_fip(void *ctx, void *e) > > ocs_domain_t *domain = NULL; > > sli4_fip_event_t *event = e; > > > > + ocs_hw_assert(event); > > + ocs_hw_assert(hw); > > + > > /* Find the associated domain object */ > > if (event->type == SLI4_FCOE_FIP_FCF_CLEAR_VLINK) { > > ocs_domain_t *d = NULL; > > @@ -9330,7 +9345,8 @@ ocs_hw_cb_fip(void *ctx, void *e) > > /* Clear VLINK is different from the other FIP events as > it passes back > > * a VPI instead of a FCF index. Check all attached SLI > ports for a > > * matching VPI */ > > - for (i = 0; d = hw->domains[i], i < SLI4_MAX_FCFI; i++) { > > + for (i = 0; i < SLI4_MAX_FCFI; i++) { > > + d = hw->domains[i]; > > if (d != NULL) { > > ocs_sport_t *sport = NULL; > > > > @@ -11202,6 +11218,7 @@ target_wqe_timer_nop_cb(ocs_hw_t *hw, int32_t > status, > > ocs_hw_io_t *io_next = NULL; > > uint64_t ticks_current = ocs_get_os_ticks(); > > uint32_t sec_elapsed; > > + ocs_hw_rtn_e rc; > > > > sli4_mbox_command_header_t *hdr = (sli4_mbox_command_header_t > *)mqe; > > > > @@ -11213,34 +11230,39 @@ target_wqe_timer_nop_cb(ocs_hw_t *hw, int32_t > status, > > > > /* loop through active WQE list and check for timeouts */ > > ocs_lock(&hw->io_lock); > > - ocs_list_foreach_safe(&hw->io_timed_wqe, io, io_next) { > > - sec_elapsed = ((ticks_current - io->submit_ticks) > / ocs_get_os_tick_freq()); > > + ocs_list_foreach_safe(&hw->io_timed_wqe, io, io_next) { > > + sec_elapsed = ((ticks_current - io->submit_ticks) / > ocs_get_os_tick_freq()); > > > > - /* > > - * If elapsed time > timeout, abort it. No need to > check type since > > - * it wouldn't be on this list unless it was a > target WQE > > - */ > > - if (sec_elapsed > io->tgt_wqe_timeout) { > > - ocs_log_test(hw->os, "IO timeout xri=0x%x > tag=0x%x type=%d\n", > > - io->indicator, io->reqtag, > io->type); > > + /* > > + * If elapsed time > timeout, abort it. No need to check > type since > > + * it wouldn't be on this list unless it was a target WQE > > + */ > > + if (sec_elapsed > io->tgt_wqe_timeout) { > > + ocs_log_test(hw->os, "IO timeout xri=0x%x tag=0x%x > type=%d\n", > > + io->indicator, io->reqtag, io->type); > > > > - /* remove from active_wqe list so won't > try to abort again */ > > - ocs_list_remove(&hw->io_timed_wqe, io); > > + /* remove from active_wqe list so won't try to > abort again */ > > + ocs_list_remove(&hw->io_timed_wqe, io); > > > > - /* save status of "timed out" for when > abort completes */ > > - io->status_saved = 1; > > - io->saved_status = > SLI4_FC_WCQE_STATUS_TARGET_WQE_TIMEOUT; > > - io->saved_ext = 0; > > - io->saved_len = 0; > > + /* save status of "timed out" for when abort > completes */ > > + io->status_saved = 1; > > + io->saved_status = > SLI4_FC_WCQE_STATUS_TARGET_WQE_TIMEOUT; > > + io->saved_ext = 0; > > + io->saved_len = 0; > > > > - /* now abort outstanding IO */ > > - ocs_hw_io_abort(hw, io, FALSE, NULL, NULL); > > + /* now abort outstanding IO */ > > + rc = ocs_hw_io_abort(hw, io, FALSE, NULL, NULL); > > + if (rc) { > > + ocs_log_test(hw->os, > > + "abort failed xri=%#x tag=%#x > rc=%d\n", > > + io->indicator, io->reqtag, rc); > > } > > - /* > > - * need to go through entire list since each IO > could have a > > - * different timeout value > > - */ > > } > > + /* > > + * need to go through entire list since each IO could have > a > > + * different timeout value > > + */ > > + } > > ocs_unlock(&hw->io_lock); > > > > /* if we're not in the middle of shutting down, schedule next > timer */ > > > > Modified: head/sys/dev/ocs_fc/ocs_hw_queues.c > > > ============================================================================== > > --- head/sys/dev/ocs_fc/ocs_hw_queues.c Wed Jan 23 17:28:39 2019 > (r343348) > > +++ head/sys/dev/ocs_fc/ocs_hw_queues.c Wed Jan 23 17:34:01 2019 > (r343349) > > @@ -149,13 +149,16 @@ ocs_hw_init_queues(ocs_hw_t *hw, ocs_hw_qtop_t > *qtop) > > default_lengths[QTOP_CQ] = len; > > break; > > } > > + > > + if (!eq || !next_qt) { > > + goto fail; > > + } > > > > /* If this CQ is for MRQ, then delay the creation > */ > > if (!use_mrq || next_qt->entry != QTOP_RQ) { > > cq = hw_new_cq(eq, len); > > if (cq == NULL) { > > - hw_queue_teardown(hw); > > - return OCS_HW_RTN_NO_MEMORY; > > + goto fail; > > } > > } > > break; > > @@ -173,11 +176,13 @@ ocs_hw_init_queues(ocs_hw_t *hw, ocs_hw_qtop_t > *qtop) > > hw_queue_teardown(hw); > > return OCS_HW_RTN_NO_MEMORY; > > } > > + > > + if (cq == NULL) > > + goto fail; > > > > wq = hw_new_wq(cq, len, qt->class, hw->ulp_start + > qt->ulp); > > if (wq == NULL) { > > - hw_queue_teardown(hw); > > - return OCS_HW_RTN_NO_MEMORY; > > + goto fail; > > } > > > > /* Place this WQ on the EQ WQ array */ > > @@ -249,10 +254,12 @@ ocs_hw_init_queues(ocs_hw_t *hw, ocs_hw_qtop_t > *qtop) > > break; > > } > > > > + if (cq == NULL) > > + goto fail; > > + > > mq = hw_new_mq(cq, len); > > if (mq == NULL) { > > - hw_queue_teardown(hw); > > - return OCS_HW_RTN_NO_MEMORY; > > + goto fail; > > } > > break; > > > > @@ -332,6 +339,9 @@ ocs_hw_init_queues(ocs_hw_t *hw, ocs_hw_qtop_t *qtop) > > } > > > > return OCS_HW_RTN_SUCCESS; > > +fail: > > + hw_queue_teardown(hw); > > + return OCS_HW_RTN_NO_MEMORY; > > > > } > > > > @@ -737,8 +747,9 @@ error: > > for (i = 0; i < num_rq_pairs; i++) { > > if (rqs[i] != NULL) { > > if (rqs[i]->rq_tracker != NULL) { > > - ocs_free(hw->os, rq->rq_tracker, > > - sizeof(ocs_hw_sequence_t*) * > rq->entry_count); > > + ocs_free(hw->os, rqs[i]->rq_tracker, > > + sizeof(ocs_hw_sequence_t*) * > > + rqs[i]->entry_count); > > } > > ocs_free(hw->os, rqs[i], sizeof(*rqs[i])); > > } > > @@ -861,9 +872,9 @@ hw_del_wq(hw_wq_t *wq) > > void > > hw_del_rq(hw_rq_t *rq) > > { > > - ocs_hw_t *hw = rq->cq->eq->hw; > > > > if (rq != NULL) { > > + ocs_hw_t *hw = rq->cq->eq->hw; > > /* Free RQ tracker */ > > if (rq->rq_tracker != NULL) { > > ocs_free(hw->os, rq->rq_tracker, > sizeof(ocs_hw_sequence_t*) * rq->entry_count); > > > > Modified: head/sys/dev/ocs_fc/ocs_ioctl.c > > > ============================================================================== > > --- head/sys/dev/ocs_fc/ocs_ioctl.c Wed Jan 23 17:28:39 2019 > (r343348) > > +++ head/sys/dev/ocs_fc/ocs_ioctl.c Wed Jan 23 17:34:01 2019 > (r343349) > > @@ -243,9 +243,13 @@ ocs_process_mbx_ioctl(ocs_t *ocs, > ocs_ioctl_elxu_mbox_ > > * 6. ioctl code releases the lock > > */ > > mtx_lock(&ocs->dbg_lock); > > - ocs_hw_command(&ocs->hw, mcmd->payload, OCS_CMD_NOWAIT, > > - __ocs_ioctl_mbox_cb, ocs); > > - msleep(ocs, &ocs->dbg_lock, 0, "ocsmbx", 0); > > + if (ocs_hw_command(&ocs->hw, mcmd->payload, OCS_CMD_NOWAIT, > > + __ocs_ioctl_mbox_cb, ocs)) { > > + > > + device_printf(ocs->dev, "%s: command- %x failed\n", > __func__, > > + ((sli4_mbox_command_header_t > *)mcmd->payload)->command); > > + } > > + msleep(ocs, &ocs->dbg_lock, 0, "ocsmbx", 0); > > mtx_unlock(&ocs->dbg_lock); > > > > if( SLI4_MBOX_COMMAND_SLI_CONFIG == ((sli4_mbox_command_header_t > *)mcmd->payload)->command > > > > Modified: head/sys/dev/ocs_fc/ocs_mgmt.c > > > ============================================================================== > > --- head/sys/dev/ocs_fc/ocs_mgmt.c Wed Jan 23 17:28:39 2019 > (r343348) > > +++ head/sys/dev/ocs_fc/ocs_mgmt.c Wed Jan 23 17:34:01 2019 > (r343349) > > @@ -2129,7 +2129,7 @@ set_port_protocol(ocs_t *ocs, char *name, char > *value) > > if (ocs_sem_p(&(result.semaphore), OCS_SEM_FOREVER) != 0) { > > /* Undefined failure */ > > ocs_log_err(ocs, "ocs_sem_p failed\n"); > > - rc = -ENXIO; > > + return -ENXIO; > > } > > if (result.status == 0) { > > /* Success. */ > > @@ -2321,7 +2321,7 @@ set_active_profile(ocs_t *ocs, char *name, char > *value > > if (ocs_sem_p(&(result.semaphore), OCS_SEM_FOREVER) != 0) { > > /* Undefined failure */ > > ocs_log_err(ocs, "ocs_sem_p failed\n"); > > - rc = -ENXIO; > > + return -ENXIO; > > } > > if (result.status == 0) { > > /* Success. */ > > @@ -2527,8 +2527,8 @@ set_nv_wwn(ocs_t *ocs, char *name, char *wwn_p) > > char *wwpn_p = NULL; > > char *wwnn_p = NULL; > > int32_t rc = -1; > > - int wwpn; > > - int wwnn; > > + int wwpn = 0; > > + int wwnn = 0; > > int i; > > > > /* This is a read-modify-write operation, so first we have to read > > @@ -2556,8 +2556,13 @@ set_nv_wwn(ocs_t *ocs, char *name, char *wwn_p) > > wwnn_p = wwn_p; > > } > > > > - wwpn = ocs_strcmp(wwpn_p, "NA"); > > - wwnn = ocs_strcmp(wwnn_p, "NA"); > > + if (wwpn_p != NULL) { > > + wwpn = ocs_strcmp(wwpn_p, "NA"); > > + } > > + > > + if (wwnn_p != NULL) { > > + wwnn = ocs_strcmp(wwnn_p, "NA"); > > + } > > > > /* Parse the new WWPN */ > > if ((wwpn_p != NULL) && (wwpn != 0)) { > > > > Modified: head/sys/dev/ocs_fc/ocs_node.c > > > ============================================================================== > > --- head/sys/dev/ocs_fc/ocs_node.c Wed Jan 23 17:28:39 2019 > (r343348) > > +++ head/sys/dev/ocs_fc/ocs_node.c Wed Jan 23 17:34:01 2019 > (r343349) > > @@ -253,7 +253,7 @@ ocs_node_create_pool(ocs_t *ocs, uint32_t node_count) > > > > if (0 == ocs_hw_get(&ocs->hw, OCS_HW_MAX_SGE, &max_sge) && > > 0 == ocs_hw_get(&ocs->hw, OCS_HW_N_SGL, &num_sgl)) { > > - max_xfer_size = max_sge * num_sgl; > > + max_xfer_size = (max_sge * (uint64_t)num_sgl); > > } else { > > max_xfer_size = 65536; > > } > > > > Modified: head/sys/dev/ocs_fc/ocs_pci.c > > > ============================================================================== > > --- head/sys/dev/ocs_fc/ocs_pci.c Wed Jan 23 17:28:39 2019 > (r343348) > > +++ head/sys/dev/ocs_fc/ocs_pci.c Wed Jan 23 17:34:01 2019 > (r343349) > > @@ -591,7 +591,7 @@ ocs_device_detach(ocs_t *ocs) > > } > > > > ocs_cam_detach(ocs); > > - ocs_free(ocs, ocs->fcports, sizeof(ocs->fcports)); > > + ocs_free(ocs, ocs->fcports, sizeof(*(ocs->fcports))); > > > > for (i = 0; (io = ocs_io_get_instance(ocs, i)); i++) { > > if (bus_dmamap_destroy(ocs->buf_dmat, > io->tgt_io.dmap)) { > > > > Modified: head/sys/dev/ocs_fc/ocs_xport.c > > > ============================================================================== > > --- head/sys/dev/ocs_fc/ocs_xport.c Wed Jan 23 17:28:39 2019 > (r343348) > > +++ head/sys/dev/ocs_fc/ocs_xport.c Wed Jan 23 17:34:01 2019 > (r343349) > > @@ -292,10 +292,6 @@ ocs_xport_attach_cleanup: > > ocs_node_free_pool(ocs); > > } > > > > - if (rq_threads_created) { > > - ocs_xport_rq_threads_teardown(xport); > > - } > > - > > return -1; > > } > > > > > > Modified: head/sys/dev/ocs_fc/sli4.c > > > ============================================================================== > > --- head/sys/dev/ocs_fc/sli4.c Wed Jan 23 17:28:39 2019 > (r343348) > > +++ head/sys/dev/ocs_fc/sli4.c Wed Jan 23 17:34:01 2019 > (r343349) > > @@ -1867,10 +1867,7 @@ sli_cmd_common_create_cq(sli4_t *sli4, void *buf, > size > > } > > } > > break; > > - default: > > - ocs_log_test(sli4->os, "unsupported IF_TYPE %d\n", > if_type); > > - return -1; > > - } > > + } > > > > return (sli_config_off + cmd_size); > > } > > @@ -4637,6 +4634,8 @@ sli_cq_alloc_set(sli4_t *sli4, sli4_queue_t *qs[], > uin > > return -1; > > } > > > > + memset(&dma, 0, sizeof(dma)); > > + > > /* Align the queue DMA memory */ > > for (i = 0; i < num_cqs; i++) { > > if (__sli_queue_init(sli4, qs[i], SLI_QTYPE_CQ, > SLI4_CQE_BYTES, > > @@ -4886,7 +4885,7 @@ sli_queue_reset(sli4_t *sli4, sli4_queue_t *q) > > } > > > > if (q->dma.virt != NULL) { > > - ocs_memset(q->dma.virt, 0, (q->size * q->length)); > > + ocs_memset(q->dma.virt, 0, (q->size * > (uint64_t)q->length)); > > } > > > > ocs_unlock(&q->lock); > > @@ -8479,6 +8478,8 @@ sli_fc_rq_set_alloc(sli4_t *sli4, uint32_t > num_rq_pair > > ocs_dma_t dma; > > sli4_res_common_create_queue_set_t *rsp = NULL; > > sli4_req_fcoe_rq_create_v2_t *req = NULL; > > + > > + ocs_memset(&dma, 0, sizeof(dma)); > > > > for (i = 0; i < (num_rq_pairs * 2); i++) { > > if (__sli_queue_init(sli4, qs[i], SLI_QTYPE_RQ, > SLI4_FCOE_RQE_SIZE, > > > > > > -- > Rod Grimes > rgrimes@freebsd.org >