# HG changeset patch # User Florian Pose # Date 1217232961 0 # Node ID dbe4a4219aa5e36669679bc9380bdc7f3f36cb70 # Parent 18141b8631be5aed05bc2470fba284452a58d30f merge -c1371 trunk: Reduced watchdog executions in e1000. diff -r 18141b8631be -r dbe4a4219aa5 NEWS --- a/NEWS Wed Apr 30 09:55:58 2008 +0000 +++ b/NEWS Mon Jul 28 08:16:01 2008 +0000 @@ -8,6 +8,8 @@ * Reading domain process data via sysfs. * Added e1000 driver for kernel 2.6.22. +* Reduced watchdog function executions in e1000 drivers. +* Fixed sync manager configuration problem for some slaves. ------------------------------------------------------------------------------- diff -r 18141b8631be -r dbe4a4219aa5 devices/e1000/e1000_main-2.6.13-ethercat.c --- a/devices/e1000/e1000_main-2.6.13-ethercat.c Wed Apr 30 09:55:58 2008 +0000 +++ b/devices/e1000/e1000_main-2.6.13-ethercat.c Mon Jul 28 08:16:01 2008 +0000 @@ -3013,6 +3013,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)) { diff -r 18141b8631be -r dbe4a4219aa5 devices/e1000/e1000_main-2.6.18-ethercat.c --- a/devices/e1000/e1000_main-2.6.18-ethercat.c Wed Apr 30 09:55:58 2008 +0000 +++ b/devices/e1000/e1000_main-2.6.18-ethercat.c Mon Jul 28 08:16:01 2008 +0000 @@ -3818,6 +3818,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)) { diff -r 18141b8631be -r dbe4a4219aa5 devices/e1000/e1000_main-2.6.20-ethercat.c --- a/devices/e1000/e1000_main-2.6.20-ethercat.c Wed Apr 30 09:55:58 2008 +0000 +++ b/devices/e1000/e1000_main-2.6.20-ethercat.c Mon Jul 28 08:16:01 2008 +0000 @@ -4399,6 +4399,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 diff -r 18141b8631be -r dbe4a4219aa5 devices/e1000/e1000_main-2.6.22-ethercat.c --- a/devices/e1000/e1000_main-2.6.22-ethercat.c Wed Apr 30 09:55:58 2008 +0000 +++ b/devices/e1000/e1000_main-2.6.22-ethercat.c Mon Jul 28 08:16:01 2008 +0000 @@ -4362,6 +4362,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