Hello - If I start a certain app that sends a large amount of data to many hosts, I get:
re0: watchdog timeout re0: watchdog timeout The diff below is what em(4) does and I am no longer able to cause watchdog timeouts on my re(4). Does this seem correct or more of a hack? Index: dev/ic/re.c =================================================================== RCS file: /cvs/src/sys/dev/ic/re.c,v retrieving revision 1.202 diff -u -p -r1.202 re.c --- dev/ic/re.c 19 Jun 2017 09:36:27 -0000 1.202 +++ dev/ic/re.c 31 Aug 2018 19:16:16 -0000 @@ -1817,6 +1817,9 @@ re_start(struct ifqueue *ifq) bpf_mtap_ether(ifp->if_bpf, m, BPF_DIRECTION_OUT); #endif + /* Set timeout in case hardware has problems transmitting */ + ifp->if_timer = 5; + KASSERT(used <= free); free -= used; @@ -1830,7 +1833,6 @@ re_start(struct ifqueue *ifq) if (post == 0) return; - ifp->if_timer = 5; sc->rl_ldata.rl_txq_prodidx = idx; ifq_serialize(ifq, &sc->rl_start); }