Module Name: src
Committed By: pgoyette
Date: Tue Jun 29 21:03:37 UTC 2021
Modified Files:
src/lib/libpci: Makefile
src/sys/arch/arm/amlogic: gxlphy.c
src/sys/dev: dev_verbose.c dev_verbose.h devlist2h.awk
src/sys/dev/hdaudio: hdaudio.c
src/sys/dev/mii: Makefile.miidevs gentbi.c mii_physubr.c mii_verbose.c
mii_verbose.h miivar.h ukphy.c
src/sys/dev/pci: pci_subr.c
src/sys/dev/pci/ixgbe: ixgbe.c
src/sys/rump/librump/rumpdev: Makefile.rumpdev
src/sys/sys: param.h
Removed Files:
src/sys/dev/mii: devlist2h.awk
Log Message:
Rework the xxxVERBOSE option to share the common module-hook-based
verbose mechanism with MIIVERBOSE. This reduces some duplicated code
and allows us to once again permit auto-unload of MIIVERBOSE.
Change details:
* Update dev/devlist2h.awk to accomodate miidevs, including generation
of MII_STR_oui_model definitions and use of oui and model rather than
vendor and product. This also changes the compressed data in the
xxxdevs_data.h files to uint32_t (since mii oui's are up to 6 hex
digits long)
* Update a couple of phy drivers to use new calls to get verbose data
* Regen all of the xxxdevs{,_data}.h files (separate commit, coming
very soon)
* Update mii/mii_verbose.[ch] and mii/mii_physubr.c to use the various
DEV_VERBOSE_xxx macros
* Update the pci, usb, and hdaudio code as needed, to #include the
xxxdevs.h files (in order to get the proper printf format strings)
* Since dev/dev_verbose.c now uses non-literal printf format strings,
(to deal with the vendor/product vs oui/model issue), we need to
make sure it gets compiled with -Wno-error=format-nonliteral, even
in userland's libpci and librumpdev!
* Bump kernel version for the change in module interfaces
Welcome to 9.99.86!
XXX It might be useful in the future to extend the MII_STR_oui_model
XXX definitions to PCI as well (and perhaps USB and HDAUDIO). This
XXX would allow for a single centralized location for the products'
XXX descriptions, rather than being dispersed among individual
XXX drivers' xxx_match tables.
To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/lib/libpci/Makefile
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/amlogic/gxlphy.c
cvs rdiff -u -r1.3 -r1.4 src/sys/dev/dev_verbose.c src/sys/dev/devlist2h.awk
cvs rdiff -u -r1.7 -r1.8 src/sys/dev/dev_verbose.h
cvs rdiff -u -r1.14 -r1.15 src/sys/dev/hdaudio/hdaudio.c
cvs rdiff -u -r1.3 -r1.4 src/sys/dev/mii/Makefile.miidevs
cvs rdiff -u -r1.11 -r0 src/sys/dev/mii/devlist2h.awk
cvs rdiff -u -r1.31 -r1.32 src/sys/dev/mii/gentbi.c
cvs rdiff -u -r1.94 -r1.95 src/sys/dev/mii/mii_physubr.c
cvs rdiff -u -r1.8 -r1.9 src/sys/dev/mii/mii_verbose.c
cvs rdiff -u -r1.2 -r1.3 src/sys/dev/mii/mii_verbose.h
cvs rdiff -u -r1.73 -r1.74 src/sys/dev/mii/miivar.h
cvs rdiff -u -r1.54 -r1.55 src/sys/dev/mii/ukphy.c
cvs rdiff -u -r1.225 -r1.226 src/sys/dev/pci/pci_subr.c
cvs rdiff -u -r1.284 -r1.285 src/sys/dev/pci/ixgbe/ixgbe.c
cvs rdiff -u -r1.13 -r1.14 src/sys/rump/librump/rumpdev/Makefile.rumpdev
cvs rdiff -u -r1.696 -r1.697 src/sys/sys/param.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libpci/Makefile
diff -u src/lib/libpci/Makefile:1.5 src/lib/libpci/Makefile:1.6
--- src/lib/libpci/Makefile:1.5 Sun Sep 21 14:32:37 2014
+++ src/lib/libpci/Makefile Tue Jun 29 21:03:36 2021
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.5 2014/09/21 14:32:37 christos Exp $
+# $NetBSD: Makefile,v 1.6 2021/06/29 21:03:36 pgoyette Exp $
.include <bsd.own.mk>
@@ -10,6 +10,8 @@ SYSDIR= ${NETBSDSRCDIR}/sys/
.PATH.c: ${SYSDIR}/dev/pci ${SYSDIR}/dev
CPPFLAGS+= -I${SYSDIR}
+COPTS.dev_verbose.c+= -Wno-error=format-nonliteral
+
MAN= pci.3
MLINKS= pci.3 pcibus_conf_read.3 \
Index: src/sys/arch/arm/amlogic/gxlphy.c
diff -u src/sys/arch/arm/amlogic/gxlphy.c:1.4 src/sys/arch/arm/amlogic/gxlphy.c:1.5
--- src/sys/arch/arm/amlogic/gxlphy.c:1.4 Sat Mar 28 18:37:18 2020
+++ src/sys/arch/arm/amlogic/gxlphy.c Tue Jun 29 21:03:36 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: gxlphy.c,v 1.4 2020/03/28 18:37:18 thorpej Exp $ */
+/* $NetBSD: gxlphy.c,v 1.5 2021/06/29 21:03:36 pgoyette Exp $ */
/*
* Copyright (c) 2019 Jared McNeill <[email protected]>
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gxlphy.c,v 1.4 2020/03/28 18:37:18 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gxlphy.c,v 1.5 2021/06/29 21:03:36 pgoyette Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -148,9 +148,10 @@ gxlphyattach(device_t parent, device_t s
int oui = MII_OUI(ma->mii_id1, ma->mii_id2);
int model = MII_MODEL(ma->mii_id2);
int rev = MII_REV(ma->mii_id2);
- const char *descr;
+ char descr[MII_MAX_DESCR_LEN];
- if ((descr = mii_get_descr(oui, model)) != NULL)
+ mii_get_descr(descr, sizeof(descr), oui, model);
+ if (descr[0])
aprint_normal(": %s (OUI 0x%06x, model 0x%04x), rev. %d\n",
descr, oui, model, rev);
else
Index: src/sys/dev/dev_verbose.c
diff -u src/sys/dev/dev_verbose.c:1.3 src/sys/dev/dev_verbose.c:1.4
--- src/sys/dev/dev_verbose.c:1.3 Wed Oct 26 06:10:39 2016
+++ src/sys/dev/dev_verbose.c Tue Jun 29 21:03:36 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: dev_verbose.c,v 1.3 2016/10/26 06:10:39 pgoyette Exp $ */
+/* $NetBSD: dev_verbose.c,v 1.4 2021/06/29 21:03:36 pgoyette Exp $ */
/*
* Redistribution and use in source and binary forms, with or without
@@ -23,7 +23,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dev_verbose.c,v 1.3 2016/10/26 06:10:39 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dev_verbose.c,v 1.4 2021/06/29 21:03:36 pgoyette Exp $");
#include <sys/param.h>
@@ -37,7 +37,7 @@ __KERNEL_RCSID(0, "$NetBSD: dev_verbose.
#include <dev/dev_verbose.h>
static const char *
-dev_untokenstring(const char *words, const uint16_t *token, char *buf,
+dev_untokenstring(const char *words, const uint32_t *token, char *buf,
size_t len)
{
char *cp = buf;
@@ -58,7 +58,8 @@ dev_untokenstring(const char *words, con
const char *
dev_findvendor(char *buf, size_t len, const char *words, size_t nwords,
- const uint16_t *vendors, size_t nvendors, uint16_t vendor)
+ const uint32_t *vendors, size_t nvendors, uint32_t vendor,
+ const char *fmt)
{
size_t n;
@@ -72,14 +73,14 @@ dev_findvendor(char *buf, size_t len, co
while (n < nvendors && vendors[n] != 0)
n++;
}
- snprintf(buf, len, "vendor %4.4x", vendor);
+ snprintf(buf, len, fmt, vendor);
return NULL;
}
const char *
dev_findproduct(char *buf, size_t len, const char *words, size_t nwords,
- const uint16_t *products, size_t nproducts, uint16_t vendor,
- uint16_t product)
+ const uint32_t *products, size_t nproducts, uint32_t vendor,
+ uint32_t product, const char *fmt)
{
size_t n;
@@ -93,6 +94,6 @@ dev_findproduct(char *buf, size_t len, c
while (n < nproducts && products[n] != 0)
n++;
}
- snprintf(buf, len, "product %4.4x", product);
+ snprintf(buf, len, fmt, product);
return NULL;
}
Index: src/sys/dev/devlist2h.awk
diff -u src/sys/dev/devlist2h.awk:1.3 src/sys/dev/devlist2h.awk:1.4
--- src/sys/dev/devlist2h.awk:1.3 Tue Jun 27 08:09:14 2017
+++ src/sys/dev/devlist2h.awk Tue Jun 29 21:03:36 2021
@@ -1,5 +1,5 @@
#! /usr/bin/awk -f
-# $NetBSD: devlist2h.awk,v 1.3 2017/06/27 08:09:14 wiz Exp $
+# $NetBSD: devlist2h.awk,v 1.4 2021/06/29 21:03:36 pgoyette Exp $
#
# Copyright (c) 1995, 1996 Christopher G. Demetriou
# All rights reserved.
@@ -29,6 +29,34 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
+
+function collectline(f) {
+ oparen = 0
+ line = ""
+ while (f <= NF) {
+ if ($f == "#") {
+ line = line "("
+ oparen = 1
+ f++
+ continue
+ }
+ if (oparen) {
+ line = line $f
+ if (f < NF)
+ line = line " "
+ f++
+ continue
+ }
+ line = line $f
+ if (f < NF)
+ line = line " "
+ f++
+ }
+ if (oparen)
+ line = line ")"
+ return line
+}
+
NR == 1 {
nproducts = nvendors = blanklines = 0
vendormaxlen = productmaxlen = 0
@@ -42,6 +70,22 @@ NR == 1 {
gsub("\\$", "", VERSION)
gsub(/ $/, "", VERSION)
+ if ( PREFIX == "MII" ) {
+ VENDOR="OUI"
+ PRODUCT="MODEL"
+ vendor="oui"
+ product="model"
+ fmt_vendor="oui %6.6x"
+ fmt_product="model %4.4x"
+ } else {
+ VENDOR="VENDOR"
+ PRODUCT="PRODUCT"
+ vendor="vendor"
+ product="product"
+ fmt_vendor="vendor %4.4x"
+ fmt_product="product %4.4x"
+ }
+
printf("/*\t$NetBSD" "$\t*/\n\n") > dfile
printf("/*\n") > dfile
printf(" * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.\n") \
@@ -62,13 +106,13 @@ NR == 1 {
next
}
-NF > 0 && $1 == "vendor" {
+NF > 0 && $1 == vendor {
nvendors++
vendorindex[$2] = nvendors; # record index for this name, for later.
vendors[nvendors, 1] = $2; # name
vendors[nvendors, 2] = $3; # id
- printf("#define\t%s_VENDOR_%s\t%s", PREFIX, vendors[nvendors, 1],
+ printf("#define\t%s_%s_%s\t%s", PREFIX, VENDOR, vendors[nvendors, 1],
vendors[nvendors, 2]) > hfile
i = 3; f = 4;
@@ -124,14 +168,15 @@ NF > 0 && $1 == "vendor" {
next
}
-NF > 0 && $1 == "product" {
+NF > 0 && $1 == product {
nproducts++
products[nproducts, 1] = $2; # vendor name
products[nproducts, 2] = $3; # product id
products[nproducts, 3] = $4; # id
- printf("#define\t%s_PRODUCT_%s_%s\t%s", PREFIX, products[nproducts, 1],
- products[nproducts, 2], products[nproducts, 3]) > hfile
+ printf("#define\t%s_%s_%s_%s\t%s", PREFIX, PRODUCT,
+ products[nproducts, 1], products[nproducts, 2],
+ products[nproducts, 3]) > hfile
i=4; f = 5;
@@ -184,6 +229,12 @@ NF > 0 && $1 == "product" {
productmaxlen = productlen;
}
+ if (PREFIX == "MII") {
+ printf("#define\tMII_STR_%s_%s\t\"%s\"\n",
+ products[nproducts, 1], products[nproducts, 2],
+ collectline(5)) > hfile
+ }
+
next
}
{
@@ -198,9 +249,9 @@ END {
printf("\n") > dfile
- printf("static const uint16_t %s_vendors[] = {\n", prefix) > dfile
+ printf("static const uint32_t %s_vendors[] = {\n", prefix) > dfile
for (i = 1; i <= nvendors; i++) {
- printf("\t %s_VENDOR_%s", PREFIX, vendors[i, 1]) \
+ printf("\t %s_%s_%s", PREFIX, VENDOR, vendors[i, 1]) \
> dfile
j = 3;
@@ -218,11 +269,11 @@ END {
printf("\n") > dfile
- printf("static const uint16_t %s_products[] = {\n", prefix) > dfile
+ printf("static const uint32_t %s_products[] = {\n", prefix) > dfile
for (i = 1; i <= nproducts; i++) {
- printf("\t %s_VENDOR_%s, %s_PRODUCT_%s_%s, \n",
- PREFIX, products[i, 1], PREFIX, products[i, 1],
- products[i, 2]) > dfile
+ printf("\t %s_%s_%s, %s_%s_%s_%s, \n",
+ PREFIX, VENDOR, products[i, 1], PREFIX, PRODUCT,
+ products[i, 1], products[i, 2]) > dfile
printf("\t ") > dfile
j = 4
@@ -250,8 +301,13 @@ END {
printf("\n") > dfile
- printf("Maximum vendor string length: %d\n", vendormaxlen + 1)
- printf("Maximum product string length: %d\n", productmaxlen + 1)
+ printf("\n") > hfile
+ printf("/* Define format strings for non-existent values */\n") > hfile
+ printf("#define %s_id1_format\t\"%s\"\n", prefix, fmt_vendor) > hfile
+ printf("#define %s_id2_format\t\"%s\"\n", prefix, fmt_product) > hfile
+
+ printf("Maximum %s string length: %d\n", vendor, vendormaxlen + 1)
+ printf("Maximum %s string length: %d\n", product, productmaxlen + 1)
printf("\nEnsure that device-specific values are sufficiently large");
printf("\ncheck Makefile.%s for details).\n", FILENAME);
Index: src/sys/dev/dev_verbose.h
diff -u src/sys/dev/dev_verbose.h:1.7 src/sys/dev/dev_verbose.h:1.8
--- src/sys/dev/dev_verbose.h:1.7 Tue Jun 15 23:24:57 2021
+++ src/sys/dev/dev_verbose.h Tue Jun 29 21:03:36 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: dev_verbose.h,v 1.7 2021/06/15 23:24:57 riastradh Exp $ */
+/* $NetBSD: dev_verbose.h,v 1.8 2021/06/29 21:03:36 pgoyette Exp $ */
/*
* Redistribution and use in source and binary forms, with or without
@@ -30,35 +30,36 @@
#endif
const char *dev_findvendor(char *, size_t, const char *, size_t,
- const uint16_t *, size_t, uint16_t);
+ const uint32_t *, size_t, uint32_t, const char *);
const char *dev_findproduct(char *, size_t, const char *, size_t,
- const uint16_t *, size_t, uint16_t, uint16_t);
+ const uint32_t *, size_t, uint32_t, uint32_t, const char *);
#define DEV_VERBOSE_COMMON_DEFINE(tag) \
static const char * \
-tag ## _findvendor_real(char *buf, size_t len, uint16_t vendor) \
+tag ## _findvendor_real(char *buf, size_t len, uint32_t vendor) \
{ \
return dev_findvendor(buf, len, tag ## _words, \
__arraycount(tag ## _words), tag ## _vendors, \
- __arraycount(tag ## _vendors), vendor); \
+ __arraycount(tag ## _vendors), vendor, tag ## _id1_format); \
} \
\
static const char * \
-tag ## _findproduct_real(char *buf, size_t len, uint16_t vendor, \
- uint16_t product) \
+tag ## _findproduct_real(char *buf, size_t len, uint32_t vendor, \
+ uint32_t product) \
{ \
return dev_findproduct(buf, len, tag ## _words, \
__arraycount(tag ## _words), tag ## _products, \
- __arraycount(tag ## _products), vendor, product); \
+ __arraycount(tag ## _products), vendor, product, \
+ tag ## _id2_format); \
} \
#ifdef _KERNEL
#define DEV_VERBOSE_KERNEL_DECLARE(tag) \
MODULE_HOOK(tag ## _findvendor_hook, const char *, \
- (char *, size_t, uint16_t)); \
+ (char *, size_t, uint32_t)); \
MODULE_HOOK(tag ## _findproduct_hook, const char *, \
- (char *, size_t, uint16_t, uint16_t)); \
+ (char *, size_t, uint32_t, uint32_t)); \
extern int tag ## verbose_loaded;
#define DEV_VERBOSE_MODULE_DEFINE(tag, deps) \
@@ -91,8 +92,8 @@ MODULE(MODULE_CLASS_DRIVER, tag ## verbo
#endif /* KERNEL */
#define DEV_VERBOSE_DECLARE(tag) \
-extern const char * tag ## _findvendor(char *, size_t, uint16_t); \
-extern const char * tag ## _findproduct(char *, size_t, uint16_t, uint16_t)
+extern const char * tag ## _findvendor(char *, size_t, uint32_t); \
+extern const char * tag ## _findproduct(char *, size_t, uint32_t, uint32_t)
#if defined(_KERNEL)
@@ -111,27 +112,27 @@ tag ## _load_verbose(void) \
} \
\
const char * \
-tag ## _findvendor(char *buf, size_t len, uint16_t vendor) \
+tag ## _findvendor(char *buf, size_t len, uint32_t vendor) \
{ \
const char *retval = NULL; \
\
tag ## _load_verbose(); \
MODULE_HOOK_CALL(tag ## _findvendor_hook, (buf, len, vendor), \
- (snprintf(buf, len, "vendor %4.4x", vendor), NULL), \
+ (snprintf(buf, len, tag ## _id1_format, vendor), NULL), \
retval); \
return retval; \
} \
\
const char * \
-tag ## _findproduct(char *buf, size_t len, uint16_t vendor, \
- uint16_t product) \
+tag ## _findproduct(char *buf, size_t len, uint32_t vendor, \
+ uint32_t product) \
{ \
const char *retval = NULL; \
\
tag ## _load_verbose(); \
MODULE_HOOK_CALL(tag ## _findproduct_hook, \
(buf, len, vendor, product), \
- (snprintf(buf, len, "product %4.4x", product), NULL), \
+ (snprintf(buf, len, tag ## _id2_format, product), NULL), \
retval); \
return retval; \
} \
@@ -140,14 +141,14 @@ tag ## _findproduct(char *buf, size_t le
#define DEV_VERBOSE_DEFINE(tag) \
DEV_VERBOSE_COMMON_DEFINE(tag) \
-const char *tag ## _findvendor(char *buf, size_t len, uint16_t vendor) \
+const char *tag ## _findvendor(char *buf, size_t len, uint32_t vendor) \
{ \
\
return tag ## _findvendor_real(buf, len, vendor); \
} \
\
-const char *tag ## _findproduct(char *buf, size_t len, uint16_t vendor, \
- uint16_t product) \
+const char *tag ## _findproduct(char *buf, size_t len, uint32_t vendor, \
+ uint32_t product) \
{ \
\
return tag ## _findproduct_real(buf, len, vendor, product); \
Index: src/sys/dev/hdaudio/hdaudio.c
diff -u src/sys/dev/hdaudio/hdaudio.c:1.14 src/sys/dev/hdaudio/hdaudio.c:1.15
--- src/sys/dev/hdaudio/hdaudio.c:1.14 Sat Apr 24 23:36:54 2021
+++ src/sys/dev/hdaudio/hdaudio.c Tue Jun 29 21:03:36 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: hdaudio.c,v 1.14 2021/04/24 23:36:54 thorpej Exp $ */
+/* $NetBSD: hdaudio.c,v 1.15 2021/06/29 21:03:36 pgoyette Exp $ */
/*
* Copyright (c) 2009 Precedence Technologies Ltd <[email protected]>
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hdaudio.c,v 1.14 2021/04/24 23:36:54 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hdaudio.c,v 1.15 2021/06/29 21:03:36 pgoyette Exp $");
#include <sys/types.h>
#include <sys/param.h>
@@ -45,6 +45,7 @@ __KERNEL_RCSID(0, "$NetBSD: hdaudio.c,v
#include "hdaudioreg.h"
#include "hdaudioio.h"
#include "hdaudio_verbose.h"
+#include "hdaudiodevs.h"
/* #define HDAUDIO_DEBUG */
Index: src/sys/dev/mii/Makefile.miidevs
diff -u src/sys/dev/mii/Makefile.miidevs:1.3 src/sys/dev/mii/Makefile.miidevs:1.4
--- src/sys/dev/mii/Makefile.miidevs:1.3 Sun Oct 19 22:05:22 2008
+++ src/sys/dev/mii/Makefile.miidevs Tue Jun 29 21:03:36 2021
@@ -1,9 +1,19 @@
-# $NetBSD: Makefile.miidevs,v 1.3 2008/10/19 22:05:22 apb Exp $
+# $NetBSD: Makefile.miidevs,v 1.4 2021/06/29 21:03:36 pgoyette Exp $
+#
+# As per [email protected], the proper procedure is (adapted from dev/hdaudio)
+#
+# 1.) Change "src/sys/dev/mii/miidevs".
+# 2.) Commit "src/sys/dev/mii/miidevs".
+# 3.) Execute "make -f Makefile.miidevs" in "src/sys/dev/mii".
+# 4.) Ensure that the value of MII_MAX_DESCR_LEN is at least as large as
+# the values reported. If necessary, update "src/sys/dev/mii/miivar.h"
+# and bump the kernel version in "src/sys/sys/param/h".
+# 5.) Commit "src/sys/dev/mii/miidevs.h" and
+# "src/sys/dev/mii/miidevs_data.h"; if you changed them, also
+# commit "src/sys/dev/mii/miivar.h" and "src/sys/sys/param.h".
.include <bsd.own.mk>
-RM= rm
-
-miidevs.h: miidevs devlist2h.awk
- ${RM} -f miidevs.h miidevs_data.h
- ${TOOL_AWK} -f devlist2h.awk miidevs
+miidevs.h miidevs_data.h: ${.CURDIR}/../devlist2h.awk miidevs
+ /bin/rm -f miidevs.h miidevs_data.h
+ ${TOOL_AWK} -f ${.ALLSRC}
Index: src/sys/dev/mii/gentbi.c
diff -u src/sys/dev/mii/gentbi.c:1.31 src/sys/dev/mii/gentbi.c:1.32
--- src/sys/dev/mii/gentbi.c:1.31 Sun Mar 15 23:04:50 2020
+++ src/sys/dev/mii/gentbi.c Tue Jun 29 21:03:36 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: gentbi.c,v 1.31 2020/03/15 23:04:50 thorpej Exp $ */
+/* $NetBSD: gentbi.c,v 1.32 2021/06/29 21:03:36 pgoyette Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gentbi.c,v 1.31 2020/03/15 23:04:50 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gentbi.c,v 1.32 2021/06/29 21:03:36 pgoyette Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -141,9 +141,10 @@ gentbiattach(device_t parent, device_t s
int oui = MII_OUI(ma->mii_id1, ma->mii_id2);
int model = MII_MODEL(ma->mii_id2);
int rev = MII_REV(ma->mii_id2);
- const char *descr;
+ char descr[MII_MAX_DESCR_LEN];
- if ((descr = mii_get_descr(oui, model)) != NULL)
+ mii_get_descr(descr, sizeof(descr), oui, model);
+ if (descr[0])
aprint_normal(": %s (OUI 0x%06x, model 0x%04x), rev. %d\n",
descr, oui, model, rev);
else
Index: src/sys/dev/mii/mii_physubr.c
diff -u src/sys/dev/mii/mii_physubr.c:1.94 src/sys/dev/mii/mii_physubr.c:1.95
--- src/sys/dev/mii/mii_physubr.c:1.94 Thu Aug 27 10:10:23 2020
+++ src/sys/dev/mii/mii_physubr.c Tue Jun 29 21:03:36 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: mii_physubr.c,v 1.94 2020/08/27 10:10:23 kardel Exp $ */
+/* $NetBSD: mii_physubr.c,v 1.95 2021/06/29 21:03:36 pgoyette Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mii_physubr.c,v 1.94 2020/08/27 10:10:23 kardel Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mii_physubr.c,v 1.95 2021/06/29 21:03:36 pgoyette Exp $");
#include <sys/param.h>
#include <sys/device.h>
@@ -44,37 +44,43 @@ __KERNEL_RCSID(0, "$NetBSD: mii_physubr.
#include <sys/socket.h>
#include <sys/errno.h>
#include <sys/module.h>
+#include <sys/module_hook.h>
#include <sys/proc.h>
#include <net/if.h>
#include <net/if_media.h>
#include <net/route.h>
+#include <dev/dev_verbose.h>
+
#include <dev/mii/mii.h>
+#include <dev/mii/miidevs.h>
#include <dev/mii/miivar.h>
-const char *(*mii_get_descr)(int, int) = mii_get_descr_stub;
-
-int mii_verbose_loaded = 0;
+DEV_VERBOSE_DEFINE(mii);
const char *
-mii_get_descr_stub(int oui, int model)
+mii_get_descr(char *descr, size_t len, uint32_t oui, uint32_t model)
{
- mii_load_verbose();
- if (mii_verbose_loaded)
- return mii_get_descr(oui, model);
- else
- return NULL;
-}
+ char temp[MII_MAX_DESCR_LEN];
-/*
- * Routine to load the miiverbose kernel module as needed
- */
-void
-mii_load_verbose(void)
-{
- if (mii_verbose_loaded == 0)
- module_autoload("miiverbose", MODULE_CLASS_MISC);
+ mii_load_verbose();
+ if (miiverbose_loaded) {
+ if (mii_findvendor(temp, sizeof(temp), oui) == NULL) {
+ descr[0] = '\0';
+ return NULL;
+ }
+ strlcpy(descr, temp, len);
+ strlcat(descr, " ", len);
+ if (mii_findproduct(temp, sizeof(temp), oui, model) == NULL) {
+ descr[0] = '\0';
+ return NULL;
+ }
+ strlcat(descr, temp, len);
+ return descr;
+ }
+ snprintf(descr, len, "oui 0x%6x model 0x%04x", oui, model);
+ return NULL;
}
static void mii_phy_statusmsg(struct mii_softc *);
@@ -683,7 +689,7 @@ const struct mii_phydesc *
mii_phy_match(const struct mii_attach_args *ma, const struct mii_phydesc *mpd)
{
- for (; mpd->mpd_name != NULL; mpd++) {
+ for (; mpd->mpd_oui != 0; mpd++) {
if (MII_OUI(ma->mii_id1, ma->mii_id2) == mpd->mpd_oui &&
MII_MODEL(ma->mii_id2) == mpd->mpd_model)
return mpd;
Index: src/sys/dev/mii/mii_verbose.c
diff -u src/sys/dev/mii/mii_verbose.c:1.8 src/sys/dev/mii/mii_verbose.c:1.9
--- src/sys/dev/mii/mii_verbose.c:1.8 Sat Jun 5 22:45:03 2021
+++ src/sys/dev/mii/mii_verbose.c Tue Jun 29 21:03:36 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: mii_verbose.c,v 1.8 2021/06/05 22:45:03 pgoyette Exp $ */
+/* $NetBSD: mii_verbose.c,v 1.9 2021/06/29 21:03:36 pgoyette Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
@@ -55,47 +55,11 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mii_verbose.c,v 1.8 2021/06/05 22:45:03 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mii_verbose.c,v 1.9 2021/06/29 21:03:36 pgoyette Exp $");
#include <sys/module.h>
#include <dev/mii/miidevs.h>
#include <dev/mii/miidevs_data.h>
#include <dev/mii/mii_verbose.h>
-const char * mii_get_descr_real(int, int);
-
-MODULE(MODULE_CLASS_MISC, miiverbose, NULL);
-
-static int
-miiverbose_modcmd(modcmd_t cmd, void *arg)
-{
- static const char *(*saved_mii_get_descr)(int, int);
-
- switch (cmd) {
- case MODULE_CMD_INIT:
- saved_mii_get_descr = mii_get_descr;
- mii_get_descr = mii_get_descr_real;
- mii_verbose_loaded = 1;
- return 0;
- case MODULE_CMD_FINI:
- mii_get_descr = saved_mii_get_descr;
- mii_verbose_loaded = 0;
- return 0;
- case MODULE_CMD_AUTOUNLOAD:
- return EBUSY;
- default:
- return ENOTTY;
- }
-}
-
-const char *
-mii_get_descr_real(int oui, int model)
-{
- int i;
-
- for (i = 0; mii_knowndevs[i].descr != NULL; i++)
- if (mii_knowndevs[i].oui == oui &&
- mii_knowndevs[i].model == model)
- break;
- return mii_knowndevs[i].descr;
-}
+DEV_VERBOSE_MODULE_DEFINE(mii, NULL)
Index: src/sys/dev/mii/mii_verbose.h
diff -u src/sys/dev/mii/mii_verbose.h:1.2 src/sys/dev/mii/mii_verbose.h:1.3
--- src/sys/dev/mii/mii_verbose.h:1.2 Sun Jun 6 18:58:22 2010
+++ src/sys/dev/mii/mii_verbose.h Tue Jun 29 21:03:36 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: mii_verbose.h,v 1.2 2010/06/06 18:58:22 pgoyette Exp $ */
+/* $NetBSD: mii_verbose.h,v 1.3 2021/06/29 21:03:36 pgoyette Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -33,16 +33,17 @@
#ifndef _DEV_MII_MII_VERBOSE_H_
#define _DEV_MII_MII_VERBOSE_H_
+#include <dev/dev_verbose.h>
+
+DEV_VERBOSE_DECLARE(mii);
+
#ifdef _KERNEL
/* Misc. stuff for miiverbose module */
-extern const char * (*mii_get_descr)(int, int);
-
-const char * mii_get_descr_stub(int, int);
-void mii_load_verbose(void);
+const char * mii_get_descr(char *, size_t, uint32_t, uint32_t);
-extern int mii_verbose_loaded;
+extern int miiverbose_loaded;
#endif /* _KERNEL */
Index: src/sys/dev/mii/miivar.h
diff -u src/sys/dev/mii/miivar.h:1.73 src/sys/dev/mii/miivar.h:1.74
--- src/sys/dev/mii/miivar.h:1.73 Mon Aug 24 04:23:41 2020
+++ src/sys/dev/mii/miivar.h Tue Jun 29 21:03:36 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: miivar.h,v 1.73 2020/08/24 04:23:41 msaitoh Exp $ */
+/* $NetBSD: miivar.h,v 1.74 2021/06/29 21:03:36 pgoyette Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000, 2001, 2020 The NetBSD Foundation, Inc.
@@ -352,6 +352,9 @@ u_int mii_oui(uint16_t, uint16_t);
#define MII_MODEL(id2) (((id2) & IDR2_MODEL) >> 4)
#define MII_REV(id2) ((id2) & IDR2_REV)
+/* Max length for phy's verbose oui+model */
+#define MII_MAX_DESCR_LEN 68
+
#endif /* _KERNEL */
#endif /* _DEV_MII_MIIVAR_H_ */
Index: src/sys/dev/mii/ukphy.c
diff -u src/sys/dev/mii/ukphy.c:1.54 src/sys/dev/mii/ukphy.c:1.55
--- src/sys/dev/mii/ukphy.c:1.54 Sat Mar 28 18:37:18 2020
+++ src/sys/dev/mii/ukphy.c Tue Jun 29 21:03:36 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: ukphy.c,v 1.54 2020/03/28 18:37:18 thorpej Exp $ */
+/* $NetBSD: ukphy.c,v 1.55 2021/06/29 21:03:36 pgoyette Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
@@ -59,7 +59,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ukphy.c,v 1.54 2020/03/28 18:37:18 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ukphy.c,v 1.55 2021/06/29 21:03:36 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_mii.h"
@@ -109,9 +109,9 @@ ukphyattach(device_t parent, device_t se
int oui = MII_OUI(ma->mii_id1, ma->mii_id2);
int model = MII_MODEL(ma->mii_id2);
int rev = MII_REV(ma->mii_id2);
- const char *descr;
+ char descr[MII_MAX_DESCR_LEN];
- if ((descr = mii_get_descr(oui, model)) != NULL)
+ if (mii_get_descr(descr, sizeof(descr), oui, model) && descr[0])
aprint_normal(": %s (OUI 0x%06x, model 0x%04x), rev. %d\n",
descr, oui, model, rev);
else
Index: src/sys/dev/pci/pci_subr.c
diff -u src/sys/dev/pci/pci_subr.c:1.225 src/sys/dev/pci/pci_subr.c:1.226
--- src/sys/dev/pci/pci_subr.c:1.225 Wed Jan 27 05:00:15 2021
+++ src/sys/dev/pci/pci_subr.c Tue Jun 29 21:03:36 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: pci_subr.c,v 1.225 2021/01/27 05:00:15 thorpej Exp $ */
+/* $NetBSD: pci_subr.c,v 1.226 2021/06/29 21:03:36 pgoyette Exp $ */
/*
* Copyright (c) 1997 Zubin D. Dittia. All rights reserved.
@@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pci_subr.c,v 1.225 2021/01/27 05:00:15 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pci_subr.c,v 1.226 2021/06/29 21:03:36 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_pci.h"
@@ -71,11 +71,11 @@ __KERNEL_RCSID(0, "$NetBSD: pci_subr.c,v
#endif
#include <dev/pci/pcireg.h>
+#include <dev/pci/pcidevs.h>
#ifdef _KERNEL
#include <dev/pci/pcivar.h>
#else
#include <dev/pci/pci_verbose.h>
-#include <dev/pci/pcidevs.h>
#include <dev/pci/pcidevs_data.h>
#endif
Index: src/sys/dev/pci/ixgbe/ixgbe.c
diff -u src/sys/dev/pci/ixgbe/ixgbe.c:1.284 src/sys/dev/pci/ixgbe/ixgbe.c:1.285
--- src/sys/dev/pci/ixgbe/ixgbe.c:1.284 Wed Jun 16 00:21:18 2021
+++ src/sys/dev/pci/ixgbe/ixgbe.c Tue Jun 29 21:03:36 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: ixgbe.c,v 1.284 2021/06/16 00:21:18 riastradh Exp $ */
+/* $NetBSD: ixgbe.c,v 1.285 2021/06/29 21:03:36 pgoyette Exp $ */
/******************************************************************************
@@ -64,7 +64,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ixgbe.c,v 1.284 2021/06/16 00:21:18 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ixgbe.c,v 1.285 2021/06/29 21:03:36 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -1177,14 +1177,15 @@ ixgbe_attach(device_t parent, device_t d
if (hw->phy.media_type == ixgbe_media_type_copper) {
uint16_t id1, id2;
int oui, model, rev;
- const char *descr;
+ char descr[MII_MAX_DESCR_LEN];
id1 = hw->phy.id >> 16;
id2 = hw->phy.id & 0xffff;
oui = MII_OUI(id1, id2);
model = MII_MODEL(id2);
rev = MII_REV(id2);
- if ((descr = mii_get_descr(oui, model)) != NULL)
+ mii_get_descr(descr, sizeof(descr), oui, model);
+ if (descr[0])
aprint_normal_dev(dev,
"PHY: %s (OUI 0x%06x, model 0x%04x), rev. %d\n",
descr, oui, model, rev);
Index: src/sys/rump/librump/rumpdev/Makefile.rumpdev
diff -u src/sys/rump/librump/rumpdev/Makefile.rumpdev:1.13 src/sys/rump/librump/rumpdev/Makefile.rumpdev:1.14
--- src/sys/rump/librump/rumpdev/Makefile.rumpdev:1.13 Mon May 13 17:49:05 2019
+++ src/sys/rump/librump/rumpdev/Makefile.rumpdev Tue Jun 29 21:03:36 2021
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.rumpdev,v 1.13 2019/05/13 17:49:05 bad Exp $
+# $NetBSD: Makefile.rumpdev,v 1.14 2021/06/29 21:03:36 pgoyette Exp $
#
LIB= rumpdev
@@ -15,6 +15,7 @@ SRCS+= kern_pmf.c
# sys/dev
SRCS+= dev_verbose.c
+COPTS.dev_verbose.c+= -Wno-error=format-nonliteral
CPPFLAGS+= -I${RUMPTOP}/librump/rumpkern
Index: src/sys/sys/param.h
diff -u src/sys/sys/param.h:1.696 src/sys/sys/param.h:1.697
--- src/sys/sys/param.h:1.696 Sun Jun 13 15:11:20 2021
+++ src/sys/sys/param.h Tue Jun 29 21:03:37 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: param.h,v 1.696 2021/06/13 15:11:20 martin Exp $ */
+/* $NetBSD: param.h,v 1.697 2021/06/29 21:03:37 pgoyette Exp $ */
/*-
* Copyright (c) 1982, 1986, 1989, 1993
@@ -67,7 +67,7 @@
* 2.99.9 (299000900)
*/
-#define __NetBSD_Version__ 999008500 /* NetBSD 9.99.85 */
+#define __NetBSD_Version__ 999008600 /* NetBSD 9.99.86 */
#define __NetBSD_Prereq__(M,m,p) (((((M) * 100000000) + \
(m) * 1000000) + (p) * 100) <= __NetBSD_Version__)