Browse Source

kernel: ledtrig-netdev: use netdev_notifier_info

Since kernel 3.11, the third parameter passed to notifier_call()
is of type struct netdev_notifier_info. This patch fixes an oops
when setting a netdev LED trigger.

Signed-off-by: Claudio Leite <[email protected]>

SVN-Revision: 41552
Luka Perkov 11 years ago
parent
commit
82abc5c1d9

+ 11 - 2
target/linux/generic/patches-3.12/831-ledtrig_netdev.patch

@@ -29,7 +29,16 @@
  #include <linux/netdevice.h>
  #include <linux/timer.h>
  #include <linux/ctype.h>
-@@ -307,8 +306,9 @@ done:
+@@ -254,7 +253,7 @@ static int netdev_trig_notify(struct not
+ 			      unsigned long evt,
+ 			      void *dv)
+ {
+-	struct net_device *dev = dv;
++	struct net_device *dev = netdev_notifier_info_to_dev((struct netdev_notifier_info *) dv);
+ 	struct led_netdev_data *trigger_data = container_of(nb, struct led_netdev_data, notifier);
+ 
+ 	if (evt != NETDEV_UP && evt != NETDEV_DOWN && evt != NETDEV_CHANGE && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER)
+@@ -294,8 +293,9 @@ done:
  static void netdev_trig_timer(unsigned long arg)
  {
  	struct led_netdev_data *trigger_data = (struct led_netdev_data *)arg;
@@ -40,7 +49,7 @@
  
  	write_lock(&trigger_data->lock);
  
-@@ -318,7 +318,7 @@ static void netdev_trig_timer(unsigned l
+@@ -305,7 +305,7 @@ static void netdev_trig_timer(unsigned l
  		goto no_restart;
  	}
  

+ 11 - 2
target/linux/generic/patches-3.13/831-ledtrig_netdev.patch

@@ -29,7 +29,16 @@
  #include <linux/netdevice.h>
  #include <linux/timer.h>
  #include <linux/ctype.h>
-@@ -307,8 +306,9 @@ done:
+@@ -254,7 +253,7 @@ static int netdev_trig_notify(struct not
+ 			      unsigned long evt,
+ 			      void *dv)
+ {
+-	struct net_device *dev = dv;
++	struct net_device *dev = netdev_notifier_info_to_dev((struct netdev_notifier_info *) dv);
+ 	struct led_netdev_data *trigger_data = container_of(nb, struct led_netdev_data, notifier);
+ 
+ 	if (evt != NETDEV_UP && evt != NETDEV_DOWN && evt != NETDEV_CHANGE && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER)
+@@ -294,8 +293,9 @@ done:
  static void netdev_trig_timer(unsigned long arg)
  {
  	struct led_netdev_data *trigger_data = (struct led_netdev_data *)arg;
@@ -40,7 +49,7 @@
  
  	write_lock(&trigger_data->lock);
  
-@@ -318,7 +318,7 @@ static void netdev_trig_timer(unsigned l
+@@ -305,7 +305,7 @@ static void netdev_trig_timer(unsigned l
  		goto no_restart;
  	}
  

+ 9 - 0
target/linux/generic/patches-3.14/831-ledtrig_netdev.patch

@@ -29,6 +29,15 @@
  #include <linux/netdevice.h>
  #include <linux/timer.h>
  #include <linux/ctype.h>
+@@ -254,7 +253,7 @@ static int netdev_trig_notify(struct not
+ 			      unsigned long evt,
+ 			      void *dv)
+ {
+-	struct net_device *dev = dv;
++	struct net_device *dev = netdev_notifier_info_to_dev((struct netdev_notifier_info *) dv);
+ 	struct led_netdev_data *trigger_data = container_of(nb, struct led_netdev_data, notifier);
+ 
+ 	if (evt != NETDEV_UP && evt != NETDEV_DOWN && evt != NETDEV_CHANGE && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER)
 @@ -294,8 +293,9 @@ done:
  static void netdev_trig_timer(unsigned long arg)
  {