svn commit: r346882 - in stable/11/sys/dev/cxgbe: . common tom
Navdeep Parhar
np at FreeBSD.org
Mon Apr 29 05:26:30 UTC 2019
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 &&
More information about the svn-src-stable
mailing list