# Disable ethernet watchdog timeout



## ScottJ97 (Apr 3, 2010)

I am building a NAS fileserver with an X7SPA-H mobo. It has two GbE ports and I've set up FreeBSD (8.0-release) to bridge them (using if_bridge()). I plug one to my desktop PC and one to my 100Mb router. I figure since the NAS is always-on, I can use it as a switch and have a GbE connection between the NAS and my PC without having to buy a GbE switch.

Problem is, when the desktop PC is off (which is often), every few minutes I get another message in /var/log/messages:


```
kernel: em0: watchdog timeout -- resetting
```

It's not a real problem and I don't want to clutter up my log file with this message.

How can I disable this watchdog timeout? (Or is there a better solution?)


----------



## ScottJ97 (Apr 9, 2010)

Further update. When em0 is down, I can still ping the machine and access files via NFS from another PC.

But the nightly security run seemed to hang up. Only after I turned my PC on did it complete and send its email. Obviously this is not good. Why would one of two Ethernet interfaces being down cause the nightly security run to hang up?


----------



## ScottJ97 (May 1, 2010)

Just in case anybody cares, I solved this by hacking the ethernet driver so it doesn't print the message anymore.

And the problem with the nightly security run has not happened again. Not sure why it happened once.

In /usr/src/sys/dev/e1000/if_em.c:


```
*** if_em.c.original.i.think    Sat May  1 11:47:55 2010
--- if_em.c     Sat Apr 10 20:38:40 2010
***************
*** 1419,1426 ****
                return;
        }

!       if (e1000_check_for_link(&adapter->hw) == 0)
!               device_printf(adapter->dev, "watchdog timeout -- resetting\n");
        adapter->ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
        adapter->watchdog_events++;
        EM_TX_UNLOCK(adapter);
--- 1419,1427 ----
                return;
        }

!       //      if (e1000_check_for_link(&adapter->hw) == 0)
!       //              device_printf(adapter->dev, "watchdog timeout -- resetting\n");
!       e1000_check_for_link(&adapter->hw);
        adapter->ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
        adapter->watchdog_events++;
        EM_TX_UNLOCK(adapter);
```


----------

