diff options
| author | Pawel Biernacki <kaktus@FreeBSD.org> | 2020-02-26 14:26:36 +0000 |
|---|---|---|
| committer | Pawel Biernacki <kaktus@FreeBSD.org> | 2020-02-26 14:26:36 +0000 |
| commit | 7029da5c36f2d3cf6bb6c81bf551229f416399e8 (patch) | |
| tree | 53cae9da1371117a3ac21d0d0f3f030a692807ae /sys/dev/cxgb | |
| parent | d7313dc6f5fcab29946951936597772dfff6a4be (diff) | |
Notes
Diffstat (limited to 'sys/dev/cxgb')
| -rw-r--r-- | sys/dev/cxgb/cxgb_main.c | 3 | ||||
| -rw-r--r-- | sys/dev/cxgb/cxgb_sge.c | 43 |
2 files changed, 28 insertions, 18 deletions
diff --git a/sys/dev/cxgb/cxgb_main.c b/sys/dev/cxgb/cxgb_main.c index ffe2b680e12f9..229c88089a51a 100644 --- a/sys/dev/cxgb/cxgb_main.c +++ b/sys/dev/cxgb/cxgb_main.c @@ -238,7 +238,8 @@ static SLIST_HEAD(, uld_info) t3_uld_list; */ static int msi_allowed = 2; -SYSCTL_NODE(_hw, OID_AUTO, cxgb, CTLFLAG_RD, 0, "CXGB driver parameters"); +SYSCTL_NODE(_hw, OID_AUTO, cxgb, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, + "CXGB driver parameters"); SYSCTL_INT(_hw_cxgb, OID_AUTO, msi_allowed, CTLFLAG_RDTUN, &msi_allowed, 0, "MSI-X, MSI, INTx selector"); diff --git a/sys/dev/cxgb/cxgb_sge.c b/sys/dev/cxgb/cxgb_sge.c index 60876543bf7bd..33900b67906c2 100644 --- a/sys/dev/cxgb/cxgb_sge.c +++ b/sys/dev/cxgb/cxgb_sge.c @@ -3451,13 +3451,13 @@ t3_add_configured_sysctls(adapter_t *sc) SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "intr_coal", - CTLTYPE_INT|CTLFLAG_RW, sc, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, t3_set_coalesce_usecs, "I", "interrupt coalescing timer (us)"); SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "pkt_timestamp", - CTLTYPE_INT | CTLFLAG_RW, sc, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, t3_pkt_timestamp, "I", "provide packet timestamp instead of connection hash"); @@ -3469,7 +3469,8 @@ t3_add_configured_sysctls(adapter_t *sc) snprintf(pi->namebuf, PORT_NAME_LEN, "port%d", i); poid = SYSCTL_ADD_NODE(ctx, children, OID_AUTO, - pi->namebuf, CTLFLAG_RD, NULL, "port statistics"); + pi->namebuf, CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, + "port statistics"); poidlist = SYSCTL_CHILDREN(poid); SYSCTL_ADD_UINT(ctx, poidlist, OID_AUTO, "nqsets", CTLFLAG_RD, &pi->nqsets, @@ -3487,7 +3488,8 @@ t3_add_configured_sysctls(adapter_t *sc) snprintf(qs->namebuf, QS_NAME_LEN, "qs%d", j); qspoid = SYSCTL_ADD_NODE(ctx, poidlist, OID_AUTO, - qs->namebuf, CTLFLAG_RD, NULL, "qset statistics"); + qs->namebuf, CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, + "qset statistics"); qspoidlist = SYSCTL_CHILDREN(qspoid); SYSCTL_ADD_UINT(ctx, qspoidlist, OID_AUTO, "fl0_empty", @@ -3498,19 +3500,23 @@ t3_add_configured_sysctls(adapter_t *sc) "freelist #1 empty"); rspqpoid = SYSCTL_ADD_NODE(ctx, qspoidlist, OID_AUTO, - rspq_name, CTLFLAG_RD, NULL, "rspq statistics"); + rspq_name, CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, + "rspq statistics"); rspqpoidlist = SYSCTL_CHILDREN(rspqpoid); txqpoid = SYSCTL_ADD_NODE(ctx, qspoidlist, OID_AUTO, - txq_names[0], CTLFLAG_RD, NULL, "txq statistics"); + txq_names[0], CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, + "txq statistics"); txqpoidlist = SYSCTL_CHILDREN(txqpoid); ctrlqpoid = SYSCTL_ADD_NODE(ctx, qspoidlist, OID_AUTO, - txq_names[2], CTLFLAG_RD, NULL, "ctrlq statistics"); + txq_names[2], CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, + "ctrlq statistics"); ctrlqpoidlist = SYSCTL_CHILDREN(ctrlqpoid); lropoid = SYSCTL_ADD_NODE(ctx, qspoidlist, OID_AUTO, - "lro_stats", CTLFLAG_RD, NULL, "LRO statistics"); + "lro_stats", CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, + "LRO statistics"); lropoidlist = SYSCTL_CHILDREN(lropoid); SYSCTL_ADD_UINT(ctx, rspqpoidlist, OID_AUTO, "size", @@ -3535,8 +3541,9 @@ t3_add_configured_sysctls(adapter_t *sc) CTLFLAG_RW, &qs->rspq.rspq_dump_count, 0, "#rspq entries to dump"); SYSCTL_ADD_PROC(ctx, rspqpoidlist, OID_AUTO, "qdump", - CTLTYPE_STRING | CTLFLAG_RD, &qs->rspq, - 0, t3_dump_rspq, "A", "dump of the response queue"); + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, + &qs->rspq, 0, t3_dump_rspq, "A", + "dump of the response queue"); SYSCTL_ADD_UQUAD(ctx, txqpoidlist, OID_AUTO, "dropped", CTLFLAG_RD, &qs->txq[TXQ_ETH].txq_mr->br_drops, @@ -3595,8 +3602,9 @@ t3_add_configured_sysctls(adapter_t *sc) CTLFLAG_RW, &qs->txq[TXQ_ETH].txq_dump_count, 0, "txq #entries to dump"); SYSCTL_ADD_PROC(ctx, txqpoidlist, OID_AUTO, "qdump", - CTLTYPE_STRING | CTLFLAG_RD, &qs->txq[TXQ_ETH], - 0, t3_dump_txq_eth, "A", "dump of the transmit queue"); + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, + &qs->txq[TXQ_ETH], 0, t3_dump_txq_eth, "A", + "dump of the transmit queue"); SYSCTL_ADD_UINT(ctx, ctrlqpoidlist, OID_AUTO, "dump_start", CTLFLAG_RW, &qs->txq[TXQ_CTRL].txq_dump_start, @@ -3605,8 +3613,9 @@ t3_add_configured_sysctls(adapter_t *sc) CTLFLAG_RW, &qs->txq[TXQ_CTRL].txq_dump_count, 0, "ctrl #entries to dump"); SYSCTL_ADD_PROC(ctx, ctrlqpoidlist, OID_AUTO, "qdump", - CTLTYPE_STRING | CTLFLAG_RD, &qs->txq[TXQ_CTRL], - 0, t3_dump_txq_ctrl, "A", "dump of the transmit queue"); + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, + &qs->txq[TXQ_CTRL], 0, t3_dump_txq_ctrl, "A", + "dump of the transmit queue"); SYSCTL_ADD_U64(ctx, lropoidlist, OID_AUTO, "lro_queued", CTLFLAG_RD, &qs->lro.ctrl.lro_queued, 0, NULL); @@ -3620,7 +3629,7 @@ t3_add_configured_sysctls(adapter_t *sc) /* Now add a node for mac stats. */ poid = SYSCTL_ADD_NODE(ctx, poidlist, OID_AUTO, "mac_stats", - CTLFLAG_RD, NULL, "MAC statistics"); + CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "MAC statistics"); poidlist = SYSCTL_CHILDREN(poid); /* @@ -3636,8 +3645,8 @@ t3_add_configured_sysctls(adapter_t *sc) * all that here. */ #define CXGB_SYSCTL_ADD_QUAD(a) SYSCTL_ADD_OID(ctx, poidlist, OID_AUTO, #a, \ - (CTLTYPE_U64 | CTLFLAG_RD), pi, offsetof(struct mac_stats, a), \ - sysctl_handle_macstat, "QU", 0) + CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_NEEDGIANT, pi, \ + offsetof(struct mac_stats, a), sysctl_handle_macstat, "QU", 0) CXGB_SYSCTL_ADD_QUAD(tx_octets); CXGB_SYSCTL_ADD_QUAD(tx_octets_bad); CXGB_SYSCTL_ADD_QUAD(tx_frames); |
