Date: Fri, 29 Sep 2017 04:52:15 +0000 (UTC) From: Scott Long <scottl@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r324097 - in head/sys/dev: mpr mps Message-ID: <201709290452.v8T4qFUC048526@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: scottl Date: Fri Sep 29 04:52:15 2017 New Revision: 324097 URL: https://svnweb.freebsd.org/changeset/base/324097 Log: Convert sysctl sbuf usage to use a fully dynaic sbuf. This is strictly needed, but it silences an erroneous Coverity warning and makes the code a little more logically consistent. Also mark the sysctl as MPSAFE. Sponsored by: Netflix Modified: head/sys/dev/mpr/mpr.c head/sys/dev/mps/mps.c Modified: head/sys/dev/mpr/mpr.c ============================================================================== --- head/sys/dev/mpr/mpr.c Fri Sep 29 04:24:13 2017 (r324096) +++ head/sys/dev/mpr/mpr.c Fri Sep 29 04:52:15 2017 (r324097) @@ -1723,8 +1723,8 @@ mpr_setup_sysctl(struct mpr_softc *sc) } SYSCTL_ADD_PROC(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), - OID_AUTO, "debug_level", CTLTYPE_STRING | CTLFLAG_RW, sc, 0, - mpr_debug_sysctl, "A", "mpr debug level"); + OID_AUTO, "debug_level", CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_MPSAFE, + sc, 0, mpr_debug_sysctl, "A", "mpr debug level"); SYSCTL_ADD_INT(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), OID_AUTO, "disable_msix", CTLFLAG_RD, &sc->disable_msix, 0, @@ -1839,7 +1839,7 @@ mpr_debug_sysctl(SYSCTL_HANDLER_ARGS) { struct mpr_softc *sc; struct mpr_debug_string *string; - struct sbuf sbuf; + struct sbuf *sbuf; char *buffer; size_t sz; int i, len, debug, error; @@ -1850,20 +1850,20 @@ mpr_debug_sysctl(SYSCTL_HANDLER_ARGS) if (error != 0) return (error); - sbuf_new_for_sysctl(&sbuf, NULL, 128, req); + sbuf = sbuf_new_for_sysctl(NULL, NULL, 128, req); debug = sc->mpr_debug; - sbuf_printf(&sbuf, "%#x", debug); + sbuf_printf(sbuf, "%#x", debug); sz = sizeof(mpr_debug_strings) / sizeof(mpr_debug_strings[0]); for (i = 0; i < sz; i++) { string = &mpr_debug_strings[i]; if (debug & string->flag) - sbuf_printf(&sbuf, ",%s", string->name); + sbuf_printf(sbuf, ",%s", string->name); } - error = sbuf_finish(&sbuf); - sbuf_delete(&sbuf); + error = sbuf_finish(sbuf); + sbuf_delete(sbuf); if (error || req->newptr == NULL) return (error); Modified: head/sys/dev/mps/mps.c ============================================================================== --- head/sys/dev/mps/mps.c Fri Sep 29 04:24:13 2017 (r324096) +++ head/sys/dev/mps/mps.c Fri Sep 29 04:52:15 2017 (r324097) @@ -1585,8 +1585,8 @@ mps_setup_sysctl(struct mps_softc *sc) } SYSCTL_ADD_PROC(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), - OID_AUTO, "debug_level", CTLTYPE_STRING | CTLFLAG_RW, sc, 0, - mps_debug_sysctl, "A", "mps debug level"); + OID_AUTO, "debug_level", CTLTYPE_STRING | CTLFLAG_RW |CTLFLAG_MPSAFE, + sc, 0, mps_debug_sysctl, "A", "mps debug level"); SYSCTL_ADD_INT(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), OID_AUTO, "disable_msix", CTLFLAG_RD, &sc->disable_msix, 0, @@ -1679,7 +1679,7 @@ mps_setup_sysctl(struct mps_softc *sc) "Use the phy number for enumeration"); } -struct mps_debug_string { +static struct mps_debug_string { char *name; int flag; } mps_debug_strings[] = { @@ -1701,7 +1701,7 @@ mps_debug_sysctl(SYSCTL_HANDLER_ARGS) { struct mps_softc *sc; struct mps_debug_string *string; - struct sbuf sbuf; + struct sbuf *sbuf; char *buffer; size_t sz; int i, len, debug, error; @@ -1712,20 +1712,20 @@ mps_debug_sysctl(SYSCTL_HANDLER_ARGS) if (error != 0) return (error); - sbuf_new_for_sysctl(&sbuf, NULL, 128, req); + sbuf = sbuf_new_for_sysctl(NULL, NULL, 128, req); debug = sc->mps_debug; - sbuf_printf(&sbuf, "%#x", debug); + sbuf_printf(sbuf, "%#x", debug); sz = sizeof(mps_debug_strings) / sizeof(mps_debug_strings[0]); for (i = 0; i < sz; i++) { string = &mps_debug_strings[i]; if (debug & string->flag) - sbuf_printf(&sbuf, ",%s", string->name); + sbuf_printf(sbuf, ",%s", string->name); } - error = sbuf_finish(&sbuf); - sbuf_delete(&sbuf); + error = sbuf_finish(sbuf); + sbuf_delete(sbuf); if (error || req->newptr == NULL) return (error);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201709290452.v8T4qFUC048526>