From owner-svn-src-stable@freebsd.org Mon Apr 29 05:26:29 2019 Return-Path: Delivered-To: svn-src-stable@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 B1EDA15813AE; Mon, 29 Apr 2019 05:26:29 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 58B468C5CE; Mon, 29 Apr 2019 05:26:29 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3BA9B1D80F; Mon, 29 Apr 2019 05:26:29 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x3T5QTxG029236; Mon, 29 Apr 2019 05:26:29 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3T5QR9I029230; Mon, 29 Apr 2019 05:26:27 GMT (envelope-from np@FreeBSD.org) Message-Id: <201904290526.x3T5QR9I029230@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Mon, 29 Apr 2019 05:26:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r346882 - in stable/11/sys/dev/cxgbe: . common tom X-SVN-Group: stable-11 X-SVN-Commit-Author: np X-SVN-Commit-Paths: in stable/11/sys/dev/cxgbe: . common tom X-SVN-Commit-Revision: 346882 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 58B468C5CE X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.97)[-0.974,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Apr 2019 05:26:30 -0000 Author: np Date: Mon Apr 29 05:26:27 2019 New Revision: 346882 URL: https://svnweb.freebsd.org/changeset/base/346882 Log: MFC r338156, r338158-r338161, r338166. r338156: cxgbe(4): Avoid overflow while calculating channel rate. Reported by: Coverity (CID 1008352) r338158: cxgbe(4): Check the RO bit properly before disabling relaxed ordering. Reported by: Coverity (CID 1384286) r338159: cxgbe(4): Make it clear that VI_INIT_DONE implies vi->ntxq > 0, and so rc will never be returned uninitialized. Reported by: Coverity (CID 1394884). This is a false positive though. r338160: cxgbe(4): Do not leak memory in case of errors during VI initialization. Reported by: Coverity (CID 1392026) r338161: cxgbe/tom: Make sure 'matched' is always initialized before use. Reported by: Coverity (CID 1390894) r338166: cxgbe(4): Be explicit about ignoring the return value of cmpset in some cases. Reported by: Coverity (CIDs 1009398, 1009400, 1009401, 1357325, 1394783). All false positives. Modified: stable/11/sys/dev/cxgbe/common/t4_hw.c stable/11/sys/dev/cxgbe/t4_main.c stable/11/sys/dev/cxgbe/t4_netmap.c stable/11/sys/dev/cxgbe/t4_sched.c stable/11/sys/dev/cxgbe/t4_sge.c stable/11/sys/dev/cxgbe/tom/t4_tom.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/cxgbe/common/t4_hw.c ============================================================================== --- stable/11/sys/dev/cxgbe/common/t4_hw.c Mon Apr 29 05:02:54 2019 (r346881) +++ stable/11/sys/dev/cxgbe/common/t4_hw.c Mon Apr 29 05:26:27 2019 (r346882) @@ -5854,7 +5854,7 @@ int t4_set_sched_ipg(struct adapter *adap, int sched, */ static u64 chan_rate(struct adapter *adap, unsigned int bytes256) { - u64 v = bytes256 * adap->params.vpd.cclk; + u64 v = (u64)bytes256 * adap->params.vpd.cclk; return v * 62 + v / 2; } Modified: stable/11/sys/dev/cxgbe/t4_main.c ============================================================================== --- stable/11/sys/dev/cxgbe/t4_main.c Mon Apr 29 05:02:54 2019 (r346881) +++ stable/11/sys/dev/cxgbe/t4_main.c Mon Apr 29 05:26:27 2019 (r346882) @@ -953,7 +953,7 @@ t4_attach(device_t dev) v = pci_read_config(dev, i + PCIER_DEVICE_CTL, 2); sc->params.pci.mps = 128 << ((v & PCIEM_CTL_MAX_PAYLOAD) >> 5); if (pcie_relaxed_ordering == 0 && - (v | PCIEM_CTL_RELAXED_ORD_ENABLE) != 0) { + (v & PCIEM_CTL_RELAXED_ORD_ENABLE) != 0) { v &= ~PCIEM_CTL_RELAXED_ORD_ENABLE; pci_write_config(dev, i + PCIER_DEVICE_CTL, v, 2); } else if (pcie_relaxed_ordering == 1 && @@ -5265,6 +5265,7 @@ vi_full_init(struct vi_info *vi) rc = -t4_config_rss_range(sc, sc->mbox, vi->viid, 0, vi->rss_size, rss, vi->rss_size); if (rc != 0) { + free(rss, M_CXGBE); if_printf(ifp, "rss_config failed: %d\n", rc); goto done; } @@ -5313,6 +5314,7 @@ vi_full_init(struct vi_info *vi) #endif rc = -t4_config_vi_rss(sc, sc->mbox, vi->viid, hashen, rss[0], 0, 0); if (rc != 0) { + free(rss, M_CXGBE); if_printf(ifp, "rss hash/defaultq config failed: %d\n", rc); goto done; } Modified: stable/11/sys/dev/cxgbe/t4_netmap.c ============================================================================== --- stable/11/sys/dev/cxgbe/t4_netmap.c Mon Apr 29 05:02:54 2019 (r346881) +++ stable/11/sys/dev/cxgbe/t4_netmap.c Mon Apr 29 05:26:27 2019 (r346882) @@ -361,7 +361,7 @@ cxgbe_netmap_on(struct adapter *sc, struct vi_info *vi t4_write_reg(sc, sc->sge_kdoorbell_reg, nm_rxq->fl_db_val | V_PIDX(j)); - atomic_cmpset_int(&nm_rxq->nm_state, NM_OFF, NM_ON); + (void) atomic_cmpset_int(&nm_rxq->nm_state, NM_OFF, NM_ON); } for_each_nm_txq(vi, i, nm_txq) { Modified: stable/11/sys/dev/cxgbe/t4_sched.c ============================================================================== --- stable/11/sys/dev/cxgbe/t4_sched.c Mon Apr 29 05:02:54 2019 (r346881) +++ stable/11/sys/dev/cxgbe/t4_sched.c Mon Apr 29 05:26:27 2019 (r346882) @@ -393,6 +393,7 @@ t4_set_sched_queue(struct adapter *sc, struct t4_sched /* Checking VI_INIT_DONE outside a synch-op is a harmless race here. */ if (!(vi->flags & VI_INIT_DONE)) return (EAGAIN); + MPASS(vi->ntxq > 0); if (!in_range(p->queue, 0, vi->ntxq - 1) || !in_range(p->cl, 0, sc->chip_params->nsched_cls - 1)) Modified: stable/11/sys/dev/cxgbe/t4_sge.c ============================================================================== --- stable/11/sys/dev/cxgbe/t4_sge.c Mon Apr 29 05:02:54 2019 (r346881) +++ stable/11/sys/dev/cxgbe/t4_sge.c Mon Apr 29 05:26:27 2019 (r346882) @@ -1349,7 +1349,7 @@ t4_intr_evt(void *arg) if (atomic_cmpset_int(&iq->state, IQS_IDLE, IQS_BUSY)) { service_iq(iq, 0); - atomic_cmpset_int(&iq->state, IQS_BUSY, IQS_IDLE); + (void) atomic_cmpset_int(&iq->state, IQS_BUSY, IQS_IDLE); } } @@ -1363,7 +1363,7 @@ t4_intr(void *arg) if (atomic_cmpset_int(&iq->state, IQS_IDLE, IQS_BUSY)) { service_iq_fl(iq, 0); - atomic_cmpset_int(&iq->state, IQS_BUSY, IQS_IDLE); + (void) atomic_cmpset_int(&iq->state, IQS_BUSY, IQS_IDLE); } } @@ -1378,7 +1378,7 @@ t4_nm_intr(void *arg) if (atomic_cmpset_int(&nm_rxq->nm_state, NM_ON, NM_BUSY)) { service_nm_rxq(nm_rxq); - atomic_cmpset_int(&nm_rxq->nm_state, NM_BUSY, NM_ON); + (void) atomic_cmpset_int(&nm_rxq->nm_state, NM_BUSY, NM_ON); } } @@ -1464,7 +1464,7 @@ service_iq(struct sge_iq *iq, int budget) if (atomic_cmpset_int(&q->state, IQS_IDLE, IQS_BUSY)) { if (service_iq_fl(q, q->qsize / 16) == 0) { - atomic_cmpset_int(&q->state, + (void) atomic_cmpset_int(&q->state, IQS_BUSY, IQS_IDLE); } else { STAILQ_INSERT_TAIL(&iql, q, @@ -1512,7 +1512,7 @@ service_iq(struct sge_iq *iq, int budget) q = STAILQ_FIRST(&iql); STAILQ_REMOVE_HEAD(&iql, link); if (service_iq_fl(q, q->qsize / 8) == 0) - atomic_cmpset_int(&q->state, IQS_BUSY, IQS_IDLE); + (void) atomic_cmpset_int(&q->state, IQS_BUSY, IQS_IDLE); else STAILQ_INSERT_TAIL(&iql, q, link); } Modified: stable/11/sys/dev/cxgbe/tom/t4_tom.c ============================================================================== --- stable/11/sys/dev/cxgbe/tom/t4_tom.c Mon Apr 29 05:02:54 2019 (r346881) +++ stable/11/sys/dev/cxgbe/tom/t4_tom.c Mon Apr 29 05:26:27 2019 (r346882) @@ -1263,6 +1263,7 @@ lookup_offload_policy(struct adapter *sc, int open_typ if (pkt == NULL || pktlen == 0 || buflen == 0) return (&disallow_offloading_settings); + matched = 0; r = &op->rule[0]; for (i = 0; i < op->nrules; i++, r++) { if (r->open_type != open_type &&