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 <lei...@staticky.com> --- .../patches-3.12/833-ledtrig_netdev-use-notifier-info.patch | 13 +++++++++++++ .../patches-3.13/833-ledtrig_netdev-use-notifier-info.patch | 13 +++++++++++++ .../patches-3.14/833-ledtrig_netdev-use-notifier-info.patch | 13 +++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 target/linux/generic/patches-3.12/833-ledtrig_netdev-use-notifier-info.patch create mode 100644 target/linux/generic/patches-3.13/833-ledtrig_netdev-use-notifier-info.patch create mode 100644 target/linux/generic/patches-3.14/833-ledtrig_netdev-use-notifier-info.patch diff --git a/target/linux/generic/patches-3.12/833-ledtrig_netdev-use-notifier-info.patch b/target/linux/generic/patches-3.12/833-ledtrig_netdev-use-notifier-info.patch new file mode 100644 index 0000000..bdaca82 --- /dev/null +++ b/target/linux/generic/patches-3.12/833-ledtrig_netdev-use-notifier-info.patch @@ -0,0 +1,13 @@ +Index: linux-3.14.10/drivers/leds/ledtrig-netdev.c +=================================================================== +--- linux-3.14.10.orig/drivers/leds/ledtrig-netdev.c ++++ linux-3.14.10/drivers/leds/ledtrig-netdev.c +@@ -253,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) diff --git a/target/linux/generic/patches-3.13/833-ledtrig_netdev-use-notifier-info.patch b/target/linux/generic/patches-3.13/833-ledtrig_netdev-use-notifier-info.patch new file mode 100644 index 0000000..bdaca82 --- /dev/null +++ b/target/linux/generic/patches-3.13/833-ledtrig_netdev-use-notifier-info.patch @@ -0,0 +1,13 @@ +Index: linux-3.14.10/drivers/leds/ledtrig-netdev.c +=================================================================== +--- linux-3.14.10.orig/drivers/leds/ledtrig-netdev.c ++++ linux-3.14.10/drivers/leds/ledtrig-netdev.c +@@ -253,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) diff --git a/target/linux/generic/patches-3.14/833-ledtrig_netdev-use-notifier-info.patch b/target/linux/generic/patches-3.14/833-ledtrig_netdev-use-notifier-info.patch new file mode 100644 index 0000000..bdaca82 --- /dev/null +++ b/target/linux/generic/patches-3.14/833-ledtrig_netdev-use-notifier-info.patch @@ -0,0 +1,13 @@ +Index: linux-3.14.10/drivers/leds/ledtrig-netdev.c +=================================================================== +--- linux-3.14.10.orig/drivers/leds/ledtrig-netdev.c ++++ linux-3.14.10/drivers/leds/ledtrig-netdev.c +@@ -253,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) -- 2.0.1 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel