aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-3.8/831-ledtrig_netdev.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/patches-3.8/831-ledtrig_netdev.patch')
-rw-r--r--target/linux/generic/patches-3.8/831-ledtrig_netdev.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/target/linux/generic/patches-3.8/831-ledtrig_netdev.patch b/target/linux/generic/patches-3.8/831-ledtrig_netdev.patch
new file mode 100644
index 0000000000..85937d8798
--- /dev/null
+++ b/target/linux/generic/patches-3.8/831-ledtrig_netdev.patch
@@ -0,0 +1,51 @@
+--- a/drivers/leds/Kconfig
++++ b/drivers/leds/Kconfig
+@@ -565,4 +565,11 @@ config LEDS_TRIGGER_MORSE
+ tristate "LED Morse Trigger"
+ depends on LEDS_TRIGGERS
+
++config LEDS_TRIGGER_NETDEV
++ tristate "LED Netdev Trigger"
++ depends on NET && LEDS_TRIGGERS
++ help
++ This allows LEDs to be controlled by network device activity.
++ If unsure, say Y.
++
+ endif # NEW_LEDS
+--- a/drivers/leds/Makefile
++++ b/drivers/leds/Makefile
+@@ -66,3 +66,4 @@ obj-$(CONFIG_LEDS_TRIGGER_CPU) += ledtr
+ obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o
+ obj-$(CONFIG_LEDS_TRIGGER_TRANSIENT) += ledtrig-transient.o
+ obj-$(CONFIG_LEDS_TRIGGER_MORSE) += ledtrig-morse.o
++obj-$(CONFIG_LEDS_TRIGGER_NETDEV) += ledtrig-netdev.o
+--- a/drivers/leds/ledtrig-netdev.c
++++ b/drivers/leds/ledtrig-netdev.c
+@@ -22,7 +22,6 @@
+ #include <linux/list.h>
+ #include <linux/spinlock.h>
+ #include <linux/device.h>
+-#include <linux/sysdev.h>
+ #include <linux/netdevice.h>
+ #include <linux/timer.h>
+ #include <linux/ctype.h>
+@@ -307,8 +306,9 @@ done:
+ static void netdev_trig_timer(unsigned long arg)
+ {
+ struct led_netdev_data *trigger_data = (struct led_netdev_data *)arg;
+- const struct net_device_stats *dev_stats;
++ struct rtnl_link_stats64 *dev_stats;
+ unsigned new_activity;
++ struct rtnl_link_stats64 temp;
+
+ write_lock(&trigger_data->lock);
+
+@@ -318,7 +318,7 @@ static void netdev_trig_timer(unsigned l
+ goto no_restart;
+ }
+
+- dev_stats = dev_get_stats(trigger_data->net_dev);
++ dev_stats = dev_get_stats(trigger_data->net_dev, &temp);
+ new_activity =
+ ((trigger_data->mode & MODE_TX) ? dev_stats->tx_packets : 0) +
+ ((trigger_data->mode & MODE_RX) ? dev_stats->rx_packets : 0);