Module Name: src
Committed By: yamaguchi
Date: Fri Jan 17 09:37:42 UTC 2020
Modified Files:
src/sys/dev/pci: if_ixl.c
Log Message:
Use flags instead of bool that changes behavior related to
adminq command of ixl(4)
To generate a diff of this commit:
cvs rdiff -u -r1.24 -r1.25 src/sys/dev/pci/if_ixl.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/if_ixl.c
diff -u src/sys/dev/pci/if_ixl.c:1.24 src/sys/dev/pci/if_ixl.c:1.25
--- src/sys/dev/pci/if_ixl.c:1.24 Fri Jan 17 09:04:04 2020
+++ src/sys/dev/pci/if_ixl.c Fri Jan 17 09:37:42 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: if_ixl.c,v 1.24 2020/01/17 09:04:04 yamaguchi Exp $ */
+/* $NetBSD: if_ixl.c,v 1.25 2020/01/17 09:37:42 yamaguchi Exp $ */
/*
* Copyright (c) 2013-2015, Intel Corporation
@@ -606,7 +606,6 @@ struct ixl_softc {
struct ethercom sc_ec;
bool sc_attached;
bool sc_dead;
- bool sc_rxctl_atq;
uint32_t sc_port;
struct sysctllog *sc_sysctllog;
struct workqueue *sc_workq;
@@ -657,6 +656,8 @@ struct ixl_softc {
const struct ixl_aq_regs *
sc_aq_regs;
+ uint32_t sc_aq_flags;
+#define IXL_SC_AQ_FLAG_RXCTL __BIT(0)
kmutex_t sc_atq_lock;
kcondvar_t sc_atq_cv;
@@ -3788,12 +3789,13 @@ ixl_get_version(struct ixl_softc *sc)
aprint_normal(", FW %hu.%hu.%05u API %hu.%hu", (uint16_t)fwver,
(uint16_t)(fwver >> 16), fwbuild, api_maj_ver, api_min_ver);
- sc->sc_rxctl_atq = true;
- if (sc->sc_mac_type == I40E_MAC_X722) {
- if (api_maj_ver == 1 && api_min_ver < 5) {
- sc->sc_rxctl_atq = false;
+#define IXL_API_VER(maj, min) (((uint32_t)(maj) << 16) | (min))
+ if (IXL_API_VER(api_maj_ver, api_min_ver) >= IXL_API_VER(1, 5)) {
+ if (sc->sc_mac_type == I40E_MAC_X722) {
+ SET(sc->sc_aq_flags, IXL_SC_AQ_FLAG_RXCTL);
}
}
+#undef IXL_API_VER
return 0;
}
@@ -6269,7 +6271,11 @@ ixl_rd_rx_csr(struct ixl_softc *sc, uint
uint32_t val;
int rv, retry, retry_limit;
- retry_limit = sc->sc_rxctl_atq ? 5 : 0;
+ if (ISSET(sc->sc_aq_flags, IXL_SC_AQ_FLAG_RXCTL)) {
+ retry_limit = 5;
+ } else {
+ retry_limit = 0;
+ }
for (retry = 0; retry < retry_limit; retry++) {
rv = ixl_rx_ctl_read(sc, reg, &val);
@@ -6319,7 +6325,11 @@ ixl_wr_rx_csr(struct ixl_softc *sc, uint
{
int rv, retry, retry_limit;
- retry_limit = sc->sc_rxctl_atq ? 5 : 0;
+ if (ISSET(sc->sc_aq_flags, IXL_SC_AQ_FLAG_RXCTL)) {
+ retry_limit = 5;
+ } else {
+ retry_limit = 0;
+ }
for (retry = 0; retry < retry_limit; retry++) {
rv = ixl_rx_ctl_write(sc, reg, value);