No need to call e1000 watchdog when frames are received (thanks to O. Zarges).
--- a/devices/e1000/e1000_main-2.6.13-ethercat.c Fri Jul 25 14:19:29 2008 +0000
+++ b/devices/e1000/e1000_main-2.6.13-ethercat.c Mon Jul 28 08:00:35 2008 +0000
@@ -3009,6 +3009,11 @@
rx_desc->csum, skb);
if (adapter->ecdev) {
ecdev_receive(adapter->ecdev, skb->data, length);
+
+ // No need to detect link status as
+ // long as frames are received: Reset watchdog.
+ adapter->ec_watchdog_jiffies = jiffies;
+
skb_trim(skb, 0);
if(unlikely((i & ~(E1000_RX_BUFFER_WRITE - 1)) == i)) {
--- a/devices/e1000/e1000_main-2.6.18-ethercat.c Fri Jul 25 14:19:29 2008 +0000
+++ b/devices/e1000/e1000_main-2.6.18-ethercat.c Mon Jul 28 08:00:35 2008 +0000
@@ -3814,6 +3814,11 @@
if (adapter->ecdev) {
ecdev_receive(adapter->ecdev, skb->data, length);
+
+ // No need to detect link status as
+ // long as frames are received: Reset watchdog.
+ adapter->ec_watchdog_jiffies = jiffies;
+
skb_trim(skb, 0);
if(unlikely((i & ~(E1000_RX_BUFFER_WRITE - 1)) == i)) {
--- a/devices/e1000/e1000_main-2.6.20-ethercat.c Fri Jul 25 14:19:29 2008 +0000
+++ b/devices/e1000/e1000_main-2.6.20-ethercat.c Mon Jul 28 08:00:35 2008 +0000
@@ -4395,6 +4395,10 @@
if (adapter->ecdev) {
ecdev_receive(adapter->ecdev, skb->data, length);
+
+ // No need to detect link status as
+ // long as frames are received: Reset watchdog.
+ adapter->ec_watchdog_jiffies = jiffies;
} else {
skb->protocol = eth_type_trans(skb, netdev);
#ifdef CONFIG_E1000_NAPI
--- a/devices/e1000/e1000_main-2.6.22-ethercat.c Fri Jul 25 14:19:29 2008 +0000
+++ b/devices/e1000/e1000_main-2.6.22-ethercat.c Mon Jul 28 08:00:35 2008 +0000
@@ -4358,6 +4358,10 @@
if (adapter->ecdev) {
ecdev_receive(adapter->ecdev, skb->data, length);
+
+ // No need to detect link status as
+ // long as frames are received: Reset watchdog.
+ adapter->ec_watchdog_jiffies = jiffies;
} else {
skb->protocol = eth_type_trans(skb, netdev);
#ifdef CONFIG_E1000_NAPI
--- a/devices/e1000/e1000_main-2.6.24-ethercat.c Fri Jul 25 14:19:29 2008 +0000
+++ b/devices/e1000/e1000_main-2.6.24-ethercat.c Mon Jul 28 08:00:35 2008 +0000
@@ -4346,6 +4346,10 @@
if (adapter->ecdev) {
ecdev_receive(adapter->ecdev, skb->data, length);
+
+ // No need to detect link status as
+ // long as frames are received: Reset watchdog.
+ adapter->ec_watchdog_jiffies = jiffies;
} else {
skb->protocol = eth_type_trans(skb, netdev);
#ifdef CONFIG_E1000_NAPI