Module Name: src
Committed By: msaitoh
Date: Fri Oct 6 14:44:08 UTC 2023
Modified Files:
src/sys/dev/pci/ixgbe: ixgbe.c ixv.c
Log Message:
ixgbe: Modify error message of wrong TX/RX descriptor size.
- Based from FreeBSD ix-3.3.35. I think ix-3.3.35's RING_INCREMENT(== 32)
is wrong. It should be 8(DBA_ALIGN / sizeof(union ixgbe_adv_[tr]x_desc)).
Linux also uses 8.
To generate a diff of this commit:
cvs rdiff -u -r1.335 -r1.336 src/sys/dev/pci/ixgbe/ixgbe.c
cvs rdiff -u -r1.187 -r1.188 src/sys/dev/pci/ixgbe/ixv.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/pci/ixgbe/ixgbe.c
diff -u src/sys/dev/pci/ixgbe/ixgbe.c:1.335 src/sys/dev/pci/ixgbe/ixgbe.c:1.336
--- src/sys/dev/pci/ixgbe/ixgbe.c:1.335 Fri Oct 6 14:42:51 2023
+++ src/sys/dev/pci/ixgbe/ixgbe.c Fri Oct 6 14:44:08 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: ixgbe.c,v 1.335 2023/10/06 14:42:51 msaitoh Exp $ */
+/* $NetBSD: ixgbe.c,v 1.336 2023/10/06 14:44:08 msaitoh Exp $ */
/******************************************************************************
@@ -64,7 +64,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ixgbe.c,v 1.335 2023/10/06 14:42:51 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ixgbe.c,v 1.336 2023/10/06 14:44:08 msaitoh Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -967,14 +967,26 @@ ixgbe_attach(device_t parent, device_t d
/* Do descriptor calc and sanity checks */
if (((ixgbe_txd * sizeof(union ixgbe_adv_tx_desc)) % DBA_ALIGN) != 0 ||
ixgbe_txd < MIN_TXD || ixgbe_txd > MAX_TXD) {
- aprint_error_dev(dev, "TXD config issue, using default!\n");
+ aprint_error_dev(dev, "Invalid TX ring size (%d). "
+ "It must be between %d and %d, "
+ "inclusive, and must be a multiple of %zu. "
+ "Using default value of %d instead.\n",
+ ixgbe_txd, MIN_TXD, MAX_TXD,
+ DBA_ALIGN / sizeof(union ixgbe_adv_tx_desc),
+ DEFAULT_TXD);
sc->num_tx_desc = DEFAULT_TXD;
} else
sc->num_tx_desc = ixgbe_txd;
if (((ixgbe_rxd * sizeof(union ixgbe_adv_rx_desc)) % DBA_ALIGN) != 0 ||
ixgbe_rxd < MIN_RXD || ixgbe_rxd > MAX_RXD) {
- aprint_error_dev(dev, "RXD config issue, using default!\n");
+ aprint_error_dev(dev, "Invalid RX ring size (%d). "
+ "It must be between %d and %d, "
+ "inclusive, and must be a multiple of %zu. "
+ "Using default value of %d instead.\n",
+ ixgbe_rxd, MIN_RXD, MAX_RXD,
+ DBA_ALIGN / sizeof(union ixgbe_adv_rx_desc),
+ DEFAULT_RXD);
sc->num_rx_desc = DEFAULT_RXD;
} else
sc->num_rx_desc = ixgbe_rxd;
Index: src/sys/dev/pci/ixgbe/ixv.c
diff -u src/sys/dev/pci/ixgbe/ixv.c:1.187 src/sys/dev/pci/ixgbe/ixv.c:1.188
--- src/sys/dev/pci/ixgbe/ixv.c:1.187 Fri Oct 6 14:42:51 2023
+++ src/sys/dev/pci/ixgbe/ixv.c Fri Oct 6 14:44:08 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: ixv.c,v 1.187 2023/10/06 14:42:51 msaitoh Exp $ */
+/* $NetBSD: ixv.c,v 1.188 2023/10/06 14:44:08 msaitoh Exp $ */
/******************************************************************************
@@ -35,7 +35,7 @@
/*$FreeBSD: head/sys/dev/ixgbe/if_ixv.c 331224 2018-03-19 20:55:05Z erj $*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ixv.c,v 1.187 2023/10/06 14:42:51 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ixv.c,v 1.188 2023/10/06 14:44:08 msaitoh Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -501,14 +501,26 @@ ixv_attach(device_t parent, device_t dev
/* Do descriptor calc and sanity checks */
if (((ixv_txd * sizeof(union ixgbe_adv_tx_desc)) % DBA_ALIGN) != 0 ||
ixv_txd < MIN_TXD || ixv_txd > MAX_TXD) {
- aprint_error_dev(dev, "TXD config issue, using default!\n");
+ aprint_error_dev(dev, "Invalid TX ring size (%d). "
+ "It must be between %d and %d, "
+ "inclusive, and must be a multiple of %zu. "
+ "Using default value of %d instead.\n",
+ ixv_txd, MIN_TXD, MAX_TXD,
+ DBA_ALIGN / sizeof(union ixgbe_adv_tx_desc),
+ DEFAULT_TXD);
sc->num_tx_desc = DEFAULT_TXD;
} else
sc->num_tx_desc = ixv_txd;
if (((ixv_rxd * sizeof(union ixgbe_adv_rx_desc)) % DBA_ALIGN) != 0 ||
ixv_rxd < MIN_RXD || ixv_rxd > MAX_RXD) {
- aprint_error_dev(dev, "RXD config issue, using default!\n");
+ aprint_error_dev(dev, "Invalid RX ring size (%d). "
+ "It must be between %d and %d, "
+ "inclusive, and must be a multiple of %zu. "
+ "Using default value of %d instead.\n",
+ ixv_rxd, MIN_RXD, MAX_RXD,
+ DBA_ALIGN / sizeof(union ixgbe_adv_rx_desc),
+ DEFAULT_RXD);
sc->num_rx_desc = DEFAULT_RXD;
} else
sc->num_rx_desc = ixv_rxd;