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;