diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 1d82e9643..c08f72652 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -2,15 +2,17 @@ LINUX_RELEASE?=1 -LINUX_VERSION-3.18 = .136 -LINUX_VERSION-4.9 = .171 -LINUX_VERSION-4.14 = .114 -LINUX_VERSION-4.19 = .37 +ifdef CONFIG_TESTING_KERNEL + KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) +endif -LINUX_KERNEL_HASH-3.18.136 = 48c8775013d23229462134f911bbb14c7935096fcccfb19ce28ecd5f7154f35c -LINUX_KERNEL_HASH-4.9.171 = 431cd992bf74da9851dd5938dbe45ff7577219b84b237ae5e30067d483b57f01 -LINUX_KERNEL_HASH-4.14.114 = b75e1dcfabc8d18051a07cbf9b60eaee8ac470a2311fed20447fd0d022c19e15 -LINUX_KERNEL_HASH-4.19.37 = ecb0b30ec32c0c7d614c394158c7d37099a815507ed62235cca32052d7ff9c65 +LINUX_VERSION-4.9 = .175 +LINUX_VERSION-4.14 = .118 +LINUX_VERSION-4.19 = .42 + +LINUX_KERNEL_HASH-4.9.175 = d98434f91f9df2bf36c7896ca747b7cf98be2e3a491073fd26e3f53cda07500c +LINUX_KERNEL_HASH-4.14.118 = 687d73abd4b9af66ec30bdccdf96193e04316f9f5a1c7b8d74732c10b4729a15 +LINUX_KERNEL_HASH-4.19.42 = f809d76010d575979362551fda3190569502973d5e2a972e78b9093a3526da26 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) @@ -25,6 +27,9 @@ else ifdef KERNEL_PATCHVER LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER))) endif +ifdef KERNEL_TESTING_PATCHVER + LINUX_TESTING_VERSION:=$(KERNEL_TESTING_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_TESTING_PATCHVER))) +endif endif split_version=$(subst ., ,$(1)) @@ -35,4 +40,4 @@ KERNEL_PATCHVER ?= $(KERNEL) # disable the md5sum check for unknown kernel versions LINUX_KERNEL_HASH:=$(LINUX_KERNEL_HASH-$(strip $(LINUX_VERSION))) -LINUX_KERNEL_HASH?=x +LINUX_KERNEL_HASH?=x \ No newline at end of file diff --git a/target/linux/apm821xx/patches-4.14/140-GPIO-add-named-gpio-exports.patch b/target/linux/apm821xx/patches-4.14/140-GPIO-add-named-gpio-exports.patch index fe4ea4fc2..8f0ac8d0f 100644 --- a/target/linux/apm821xx/patches-4.14/140-GPIO-add-named-gpio-exports.patch +++ b/target/linux/apm821xx/patches-4.14/140-GPIO-add-named-gpio-exports.patch @@ -22,7 +22,7 @@ Signed-off-by: John Crispin #include "gpiolib.h" -@@ -507,3 +509,72 @@ void of_gpiochip_remove(struct gpio_chip +@@ -513,3 +515,72 @@ void of_gpiochip_remove(struct gpio_chip gpiochip_remove_pin_ranges(chip); of_node_put(chip->of_node); } diff --git a/target/linux/apm821xx/patches-4.19/140-GPIO-add-named-gpio-exports.patch b/target/linux/apm821xx/patches-4.19/140-GPIO-add-named-gpio-exports.patch index 6b1f7fc1c..8e3060d76 100644 --- a/target/linux/apm821xx/patches-4.19/140-GPIO-add-named-gpio-exports.patch +++ b/target/linux/apm821xx/patches-4.19/140-GPIO-add-named-gpio-exports.patch @@ -22,7 +22,7 @@ Signed-off-by: John Crispin #include "gpiolib.h" -@@ -654,3 +656,72 @@ void of_gpiochip_remove(struct gpio_chip +@@ -660,3 +662,72 @@ void of_gpiochip_remove(struct gpio_chip gpiochip_remove_pin_ranges(chip); of_node_put(chip->of_node); } diff --git a/target/linux/ar71xx/patches-4.14/310-lib-add-rle-decompression.patch b/target/linux/ar71xx/patches-4.14/310-lib-add-rle-decompression.patch index 766ffbeb7..07faeab5b 100644 --- a/target/linux/ar71xx/patches-4.14/310-lib-add-rle-decompression.patch +++ b/target/linux/ar71xx/patches-4.14/310-lib-add-rle-decompression.patch @@ -12,7 +12,7 @@ # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.) --- a/lib/Makefile +++ b/lib/Makefile -@@ -134,6 +134,7 @@ obj-$(CONFIG_XZ_DEC) += xz/ +@@ -135,6 +135,7 @@ obj-$(CONFIG_XZ_DEC) += xz/ obj-$(CONFIG_RAID6_PQ) += raid6/ obj-$(CONFIG_LZMA_COMPRESS) += lzma/ obj-$(CONFIG_LZMA_DECOMPRESS) += lzma/ diff --git a/target/linux/ath79/patches-4.14/0036-GPIO-add-named-gpio-exports.patch b/target/linux/ath79/patches-4.14/0036-GPIO-add-named-gpio-exports.patch index a1d5d9d9f..61ed9ea78 100644 --- a/target/linux/ath79/patches-4.14/0036-GPIO-add-named-gpio-exports.patch +++ b/target/linux/ath79/patches-4.14/0036-GPIO-add-named-gpio-exports.patch @@ -22,7 +22,7 @@ Signed-off-by: John Crispin #include "gpiolib.h" -@@ -507,3 +509,68 @@ void of_gpiochip_remove(struct gpio_chip +@@ -513,3 +515,68 @@ void of_gpiochip_remove(struct gpio_chip gpiochip_remove_pin_ranges(chip); of_node_put(chip->of_node); } diff --git a/target/linux/ath79/patches-4.19/0036-GPIO-add-named-gpio-exports.patch b/target/linux/ath79/patches-4.19/0036-GPIO-add-named-gpio-exports.patch index c3977efa0..b3aa9fcc0 100644 --- a/target/linux/ath79/patches-4.19/0036-GPIO-add-named-gpio-exports.patch +++ b/target/linux/ath79/patches-4.19/0036-GPIO-add-named-gpio-exports.patch @@ -22,7 +22,7 @@ Signed-off-by: John Crispin #include "gpiolib.h" -@@ -654,3 +656,68 @@ void of_gpiochip_remove(struct gpio_chip +@@ -660,3 +662,68 @@ void of_gpiochip_remove(struct gpio_chip gpiochip_remove_pin_ranges(chip); of_node_put(chip->of_node); } diff --git a/target/linux/brcm2708/patches-4.14/950-0024-kbuild-Ignore-dtco-targets-when-filtering-symbols.patch b/target/linux/brcm2708/patches-4.14/950-0024-kbuild-Ignore-dtco-targets-when-filtering-symbols.patch index c1c555b94..7bfecf667 100644 --- a/target/linux/brcm2708/patches-4.14/950-0024-kbuild-Ignore-dtco-targets-when-filtering-symbols.patch +++ b/target/linux/brcm2708/patches-4.14/950-0024-kbuild-Ignore-dtco-targets-when-filtering-symbols.patch @@ -9,7 +9,7 @@ Subject: [PATCH 024/454] kbuild: Ignore dtco targets when filtering symbols --- a/scripts/Kbuild.include +++ b/scripts/Kbuild.include -@@ -294,7 +294,7 @@ ksym_dep_filter = +@@ -292,7 +292,7 @@ ksym_dep_filter = $(CPP) $(call flags_nodeps,c_flags) -D__KSYM_DEPS__ $< ;; \ as_*_S|cpp_s_S) \ $(CPP) $(call flags_nodeps,a_flags) -D__KSYM_DEPS__ $< ;; \ diff --git a/target/linux/brcm2708/patches-4.14/950-0037-Add-dwc_otg-driver.patch b/target/linux/brcm2708/patches-4.14/950-0037-Add-dwc_otg-driver.patch index f11406ed5..9611f8144 100644 --- a/target/linux/brcm2708/patches-4.14/950-0037-Add-dwc_otg-driver.patch +++ b/target/linux/brcm2708/patches-4.14/950-0037-Add-dwc_otg-driver.patch @@ -841,7 +841,7 @@ Signed-off-by: Malik Olivier Boussejra } --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -5094,7 +5094,7 @@ static void port_event(struct usb_hub *h +@@ -5091,7 +5091,7 @@ static void port_event(struct usb_hub *h if (portchange & USB_PORT_STAT_C_OVERCURRENT) { u16 status = 0, unused; @@ -852,7 +852,7 @@ Signed-off-by: Malik Olivier Boussejra msleep(100); /* Cool down */ --- a/drivers/usb/core/message.c +++ b/drivers/usb/core/message.c -@@ -1924,6 +1924,85 @@ free_interfaces: +@@ -1925,6 +1925,85 @@ free_interfaces: if (cp->string == NULL && !(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS)) cp->string = usb_cache_string(dev, cp->desc.iConfiguration); diff --git a/target/linux/brcm63xx/patches-4.14/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch b/target/linux/brcm63xx/patches-4.14/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch index 436f1aa53..61e1b282c 100644 --- a/target/linux/brcm63xx/patches-4.14/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch +++ b/target/linux/brcm63xx/patches-4.14/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch @@ -68,18 +68,25 @@ Signed-off-by: Jonas Gorski ret = gpiod_hog(desc, name, lflags, dflags); if (ret < 0) { of_node_put(np); -@@ -499,7 +506,10 @@ int of_gpiochip_add(struct gpio_chip *ch +@@ -499,12 +506,13 @@ int of_gpiochip_add(struct gpio_chip *ch of_node_get(chip->of_node); -- return of_gpiochip_scan_gpios(chip); -+ if (!chip->request) -+ status = of_gpiochip_scan_gpios(chip, 0, chip->ngpio); -+ -+ return status; +- status = of_gpiochip_scan_gpios(chip); +- if (status) { +- of_node_put(chip->of_node); +- gpiochip_remove_pin_ranges(chip); ++ if (!chip->request) { ++ status = of_gpiochip_scan_gpios(chip); ++ if (status) { ++ of_node_put(chip->of_node); ++ gpiochip_remove_pin_ranges(chip); ++ } + } +- + return status; } - void of_gpiochip_remove(struct gpio_chip *chip) --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -1938,7 +1938,8 @@ int gpiochip_add_pingroup_range(struct g diff --git a/target/linux/cns3xxx/patches-4.19/070-i2c_support.patch b/target/linux/cns3xxx/patches-4.19/070-i2c_support.patch index e151bf90f..9bfb8444e 100644 --- a/target/linux/cns3xxx/patches-4.19/070-i2c_support.patch +++ b/target/linux/cns3xxx/patches-4.19/070-i2c_support.patch @@ -1,6 +1,6 @@ --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig -@@ -458,6 +458,18 @@ config I2C_CBUS_GPIO +@@ -459,6 +459,18 @@ config I2C_CBUS_GPIO This driver can also be built as a module. If so, the module will be called i2c-cbus-gpio. diff --git a/target/linux/generic/backport-4.14/060-v5.1-serial-ar933x_uart-Fix-build-failure-with-disabled-c.patch b/target/linux/generic/backport-4.14/060-v5.1-serial-ar933x_uart-Fix-build-failure-with-disabled-c.patch deleted file mode 100644 index 657a86949..000000000 --- a/target/linux/generic/backport-4.14/060-v5.1-serial-ar933x_uart-Fix-build-failure-with-disabled-c.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 72ff51d8dd262d1fef25baedc2ac35116435be47 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20=C5=A0tetiar?= -Date: Wed, 6 Mar 2019 17:54:03 +0100 -Subject: [PATCH] serial: ar933x_uart: Fix build failure with disabled console -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Andrey has reported on OpenWrt's bug tracking system[1], that he -currently can't use ar93xx_uart as pure serial UART without console -(CONFIG_SERIAL_8250_CONSOLE and CONFIG_SERIAL_AR933X_CONSOLE undefined), -because compilation ends with following error: - - ar933x_uart.c: In function 'ar933x_uart_console_write': - ar933x_uart.c:550:14: error: 'struct uart_port' has no - member named 'sysrq' - -So this patch moves all the code related to console handling behind -series of CONFIG_SERIAL_AR933X_CONSOLE ifdefs. - -1. https://bugs.openwrt.org/index.php?do=details&task_id=2152 - -Cc: Greg Kroah-Hartman -Cc: Jiri Slaby -Cc: Andrey Batyiev -Reported-by: Andrey Batyiev -Tested-by: Andrey Batyiev -Signed-off-by: Petr Štetiar -Signed-off-by: Greg Kroah-Hartman ---- - drivers/tty/serial/ar933x_uart.c | 24 ++++++++---------------- - 1 file changed, 8 insertions(+), 16 deletions(-) - ---- a/drivers/tty/serial/ar933x_uart.c -+++ b/drivers/tty/serial/ar933x_uart.c -@@ -52,11 +52,6 @@ struct ar933x_uart_port { - struct clk *clk; - }; - --static inline bool ar933x_uart_console_enabled(void) --{ -- return IS_ENABLED(CONFIG_SERIAL_AR933X_CONSOLE); --} -- - static inline unsigned int ar933x_uart_read(struct ar933x_uart_port *up, - int offset) - { -@@ -511,6 +506,7 @@ static const struct uart_ops ar933x_uart - .verify_port = ar933x_uart_verify_port, - }; - -+#ifdef CONFIG_SERIAL_AR933X_CONSOLE - static struct ar933x_uart_port * - ar933x_console_ports[CONFIG_SERIAL_AR933X_NR_UARTS]; - -@@ -607,14 +603,7 @@ static struct console ar933x_uart_consol - .index = -1, - .data = &ar933x_uart_driver, - }; -- --static void ar933x_uart_add_console_port(struct ar933x_uart_port *up) --{ -- if (!ar933x_uart_console_enabled()) -- return; -- -- ar933x_console_ports[up->port.line] = up; --} -+#endif /* CONFIG_SERIAL_AR933X_CONSOLE */ - - static struct uart_driver ar933x_uart_driver = { - .owner = THIS_MODULE, -@@ -703,7 +692,9 @@ static int ar933x_uart_probe(struct plat - baud = ar933x_uart_get_baud(port->uartclk, 0, AR933X_UART_MAX_STEP); - up->max_baud = min_t(unsigned int, baud, AR933X_UART_MAX_BAUD); - -- ar933x_uart_add_console_port(up); -+#ifdef CONFIG_SERIAL_AR933X_CONSOLE -+ ar933x_console_ports[up->port.line] = up; -+#endif - - ret = uart_add_one_port(&ar933x_uart_driver, &up->port); - if (ret) -@@ -752,8 +743,9 @@ static int __init ar933x_uart_init(void) - { - int ret; - -- if (ar933x_uart_console_enabled()) -- ar933x_uart_driver.cons = &ar933x_uart_console; -+#ifdef CONFIG_SERIAL_AR933X_CONSOLE -+ ar933x_uart_driver.cons = &ar933x_uart_console; -+#endif - - ret = uart_register_driver(&ar933x_uart_driver); - if (ret) diff --git a/target/linux/generic/backport-4.14/293-v4.16-netfilter-reduce-size-of-hook-entry-point-locations.patch b/target/linux/generic/backport-4.14/293-v4.16-netfilter-reduce-size-of-hook-entry-point-locations.patch index 007b8315e..9b33393c0 100644 --- a/target/linux/generic/backport-4.14/293-v4.16-netfilter-reduce-size-of-hook-entry-point-locations.patch +++ b/target/linux/generic/backport-4.14/293-v4.16-netfilter-reduce-size-of-hook-entry-point-locations.patch @@ -92,7 +92,7 @@ Signed-off-by: Pablo Neira Ayuso #endif --- a/net/bridge/br_netfilter_hooks.c +++ b/net/bridge/br_netfilter_hooks.c -@@ -987,7 +987,7 @@ int br_nf_hook_thresh(unsigned int hook, +@@ -988,7 +988,7 @@ int br_nf_hook_thresh(unsigned int hook, unsigned int i; int ret; diff --git a/target/linux/generic/backport-4.19/060-v5.1-serial-ar933x_uart-Fix-build-failure-with-disabled-c.patch b/target/linux/generic/backport-4.19/060-v5.1-serial-ar933x_uart-Fix-build-failure-with-disabled-c.patch deleted file mode 100644 index b1843842e..000000000 --- a/target/linux/generic/backport-4.19/060-v5.1-serial-ar933x_uart-Fix-build-failure-with-disabled-c.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 72ff51d8dd262d1fef25baedc2ac35116435be47 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20=C5=A0tetiar?= -Date: Wed, 6 Mar 2019 17:54:03 +0100 -Subject: [PATCH] serial: ar933x_uart: Fix build failure with disabled console -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Andrey has reported on OpenWrt's bug tracking system[1], that he -currently can't use ar93xx_uart as pure serial UART without console -(CONFIG_SERIAL_8250_CONSOLE and CONFIG_SERIAL_AR933X_CONSOLE undefined), -because compilation ends with following error: - - ar933x_uart.c: In function 'ar933x_uart_console_write': - ar933x_uart.c:550:14: error: 'struct uart_port' has no - member named 'sysrq' - -So this patch moves all the code related to console handling behind -series of CONFIG_SERIAL_AR933X_CONSOLE ifdefs. - -1. https://bugs.openwrt.org/index.php?do=details&task_id=2152 - -Cc: Greg Kroah-Hartman -Cc: Jiri Slaby -Cc: Andrey Batyiev -Reported-by: Andrey Batyiev -Tested-by: Andrey Batyiev -Signed-off-by: Petr Štetiar -Signed-off-by: Greg Kroah-Hartman ---- - drivers/tty/serial/ar933x_uart.c | 24 ++++++++---------------- - 1 file changed, 8 insertions(+), 16 deletions(-) - ---- a/drivers/tty/serial/ar933x_uart.c -+++ b/drivers/tty/serial/ar933x_uart.c -@@ -49,11 +49,6 @@ struct ar933x_uart_port { - struct clk *clk; - }; - --static inline bool ar933x_uart_console_enabled(void) --{ -- return IS_ENABLED(CONFIG_SERIAL_AR933X_CONSOLE); --} -- - static inline unsigned int ar933x_uart_read(struct ar933x_uart_port *up, - int offset) - { -@@ -508,6 +503,7 @@ static const struct uart_ops ar933x_uart - .verify_port = ar933x_uart_verify_port, - }; - -+#ifdef CONFIG_SERIAL_AR933X_CONSOLE - static struct ar933x_uart_port * - ar933x_console_ports[CONFIG_SERIAL_AR933X_NR_UARTS]; - -@@ -604,14 +600,7 @@ static struct console ar933x_uart_consol - .index = -1, - .data = &ar933x_uart_driver, - }; -- --static void ar933x_uart_add_console_port(struct ar933x_uart_port *up) --{ -- if (!ar933x_uart_console_enabled()) -- return; -- -- ar933x_console_ports[up->port.line] = up; --} -+#endif /* CONFIG_SERIAL_AR933X_CONSOLE */ - - static struct uart_driver ar933x_uart_driver = { - .owner = THIS_MODULE, -@@ -700,7 +689,9 @@ static int ar933x_uart_probe(struct plat - baud = ar933x_uart_get_baud(port->uartclk, 0, AR933X_UART_MAX_STEP); - up->max_baud = min_t(unsigned int, baud, AR933X_UART_MAX_BAUD); - -- ar933x_uart_add_console_port(up); -+#ifdef CONFIG_SERIAL_AR933X_CONSOLE -+ ar933x_console_ports[up->port.line] = up; -+#endif - - ret = uart_add_one_port(&ar933x_uart_driver, &up->port); - if (ret) -@@ -749,8 +740,9 @@ static int __init ar933x_uart_init(void) - { - int ret; - -- if (ar933x_uart_console_enabled()) -- ar933x_uart_driver.cons = &ar933x_uart_console; -+#ifdef CONFIG_SERIAL_AR933X_CONSOLE -+ ar933x_uart_driver.cons = &ar933x_uart_console; -+#endif - - ret = uart_register_driver(&ar933x_uart_driver); - if (ret) diff --git a/target/linux/generic/backport-4.19/400-v5.2-leds-trigger-netdev-fix-refcnt-leak-on-interface-ren.patch b/target/linux/generic/backport-4.19/400-v5.2-leds-trigger-netdev-fix-refcnt-leak-on-interface-ren.patch deleted file mode 100644 index 851e13ba2..000000000 --- a/target/linux/generic/backport-4.19/400-v5.2-leds-trigger-netdev-fix-refcnt-leak-on-interface-ren.patch +++ /dev/null @@ -1,69 +0,0 @@ -From dd7590a3ab3f0804ed5e930295e2caa5979e3958 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Date: Thu, 28 Feb 2019 22:57:33 +0100 -Subject: [PATCH] leds: trigger: netdev: fix refcnt leak on interface rename -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Renaming a netdev-trigger-tracked interface was resulting in an -unbalanced dev_hold(). - -Example: -> iw phy phy0 interface add foo type __ap -> echo netdev > trigger -> echo foo > device_name -> ip link set foo name bar -> iw dev bar del -[ 237.355366] unregister_netdevice: waiting for bar to become free. Usage count = 1 -[ 247.435362] unregister_netdevice: waiting for bar to become free. Usage count = 1 -[ 257.545366] unregister_netdevice: waiting for bar to become free. Usage count = 1 - -Above problem was caused by trigger checking a dev->name which obviously -changes after renaming an interface. It meant missing all further events -including the NETDEV_UNREGISTER which is required for calling dev_put(). - -This change fixes that by: -1) Comparing device struct *address* for notification-filtering purposes -2) Dropping unneeded NETDEV_CHANGENAME code (no behavior change) - -Fixes: 06f502f57d0d ("leds: trigger: Introduce a NETDEV trigger") -Signed-off-by: Rafał Miłecki -Acked-by: Pavel Machek -Signed-off-by: Jacek Anaszewski ---- - drivers/leds/trigger/ledtrig-netdev.c | 13 +++++-------- - 1 file changed, 5 insertions(+), 8 deletions(-) - ---- a/drivers/leds/trigger/ledtrig-netdev.c -+++ b/drivers/leds/trigger/ledtrig-netdev.c -@@ -301,11 +301,11 @@ static int netdev_trig_notify(struct not - container_of(nb, struct led_netdev_data, notifier); - - if (evt != NETDEV_UP && evt != NETDEV_DOWN && evt != NETDEV_CHANGE -- && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER -- && evt != NETDEV_CHANGENAME) -+ && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER) - return NOTIFY_DONE; - -- if (strcmp(dev->name, trigger_data->device_name)) -+ if (!(dev == trigger_data->net_dev || -+ (evt == NETDEV_REGISTER && !strcmp(dev->name, trigger_data->device_name)))) - return NOTIFY_DONE; - - cancel_delayed_work_sync(&trigger_data->work); -@@ -320,12 +320,9 @@ static int netdev_trig_notify(struct not - dev_hold(dev); - trigger_data->net_dev = dev; - break; -- case NETDEV_CHANGENAME: - case NETDEV_UNREGISTER: -- if (trigger_data->net_dev) { -- dev_put(trigger_data->net_dev); -- trigger_data->net_dev = NULL; -- } -+ dev_put(trigger_data->net_dev); -+ trigger_data->net_dev = NULL; - break; - case NETDEV_UP: - case NETDEV_CHANGE: diff --git a/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch b/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch index 9a2113203..f2f1f6f81 100644 --- a/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch +++ b/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch @@ -1095,7 +1095,7 @@ Signed-off-by: David S. Miller dma_intr_ena = smsc9420_reg_read(pd, DMAC_INTR_ENA); --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c -@@ -2702,7 +2702,7 @@ static int stmmac_poll(struct napi_struc +@@ -2700,7 +2700,7 @@ static int stmmac_poll(struct napi_struc work_done = stmmac_rx(priv, budget); if (work_done < budget) { diff --git a/target/linux/generic/hack-4.19/250-netfilter_depends.patch b/target/linux/generic/hack-4.19/250-netfilter_depends.patch index b29ca5190..cb744bd8a 100644 --- a/target/linux/generic/hack-4.19/250-netfilter_depends.patch +++ b/target/linux/generic/hack-4.19/250-netfilter_depends.patch @@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau depends on NETFILTER_ADVANCED help H.323 is a VoIP signalling protocol from ITU-T. As one of the most -@@ -1076,7 +1075,6 @@ config NETFILTER_XT_TARGET_SECMARK +@@ -1077,7 +1076,6 @@ config NETFILTER_XT_TARGET_SECMARK config NETFILTER_XT_TARGET_TCPMSS tristate '"TCPMSS" target support' diff --git a/target/linux/generic/pending-4.14/530-jffs2_make_lzma_available.patch b/target/linux/generic/pending-4.14/530-jffs2_make_lzma_available.patch index 834876fa8..838d4168a 100644 --- a/target/linux/generic/pending-4.14/530-jffs2_make_lzma_available.patch +++ b/target/linux/generic/pending-4.14/530-jffs2_make_lzma_available.patch @@ -244,7 +244,7 @@ Signed-off-by: Alexandros C. Couloumbis +} --- a/fs/jffs2/super.c +++ b/fs/jffs2/super.c -@@ -371,14 +371,41 @@ static int __init init_jffs2_fs(void) +@@ -374,14 +374,41 @@ static int __init init_jffs2_fs(void) BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68); BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32); @@ -1119,7 +1119,7 @@ Signed-off-by: Alexandros C. Couloumbis ifdef CONFIG_FUNCTION_TRACER ORIG_CFLAGS := $(KBUILD_CFLAGS) KBUILD_CFLAGS = $(subst $(CC_FLAGS_FTRACE),,$(ORIG_CFLAGS)) -@@ -122,6 +132,8 @@ obj-$(CONFIG_ZSTD_COMPRESS) += zstd/ +@@ -123,6 +133,8 @@ obj-$(CONFIG_ZSTD_COMPRESS) += zstd/ obj-$(CONFIG_ZSTD_DECOMPRESS) += zstd/ obj-$(CONFIG_XZ_DEC) += xz/ obj-$(CONFIG_RAID6_PQ) += raid6/ diff --git a/target/linux/generic/pending-4.14/630-packet_socket_type.patch b/target/linux/generic/pending-4.14/630-packet_socket_type.patch index e8eae3b7f..0b9addc36 100644 --- a/target/linux/generic/pending-4.14/630-packet_socket_type.patch +++ b/target/linux/generic/pending-4.14/630-packet_socket_type.patch @@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -3269,6 +3271,7 @@ static int packet_create(struct net *net +@@ -3273,6 +3275,7 @@ static int packet_create(struct net *net mutex_init(&po->pg_vec_lock); po->rollover = NULL; po->prot_hook.func = packet_rcv; @@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -3882,6 +3885,16 @@ packet_setsockopt(struct socket *sock, i +@@ -3886,6 +3889,16 @@ packet_setsockopt(struct socket *sock, i po->xmit = val ? packet_direct_xmit : dev_queue_xmit; return 0; } @@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau default: return -ENOPROTOOPT; } -@@ -3934,6 +3947,13 @@ static int packet_getsockopt(struct sock +@@ -3938,6 +3951,13 @@ static int packet_getsockopt(struct sock case PACKET_VNET_HDR: val = po->has_vnet_hdr; break; diff --git a/target/linux/generic/pending-4.19/530-jffs2_make_lzma_available.patch b/target/linux/generic/pending-4.19/530-jffs2_make_lzma_available.patch index f0b4bdf03..625967342 100644 --- a/target/linux/generic/pending-4.19/530-jffs2_make_lzma_available.patch +++ b/target/linux/generic/pending-4.19/530-jffs2_make_lzma_available.patch @@ -244,7 +244,7 @@ Signed-off-by: Alexandros C. Couloumbis +} --- a/fs/jffs2/super.c +++ b/fs/jffs2/super.c -@@ -371,14 +371,41 @@ static int __init init_jffs2_fs(void) +@@ -374,14 +374,41 @@ static int __init init_jffs2_fs(void) BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68); BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32); diff --git a/target/linux/generic/pending-4.19/630-packet_socket_type.patch b/target/linux/generic/pending-4.19/630-packet_socket_type.patch index a0d177586..333d4f573 100644 --- a/target/linux/generic/pending-4.19/630-packet_socket_type.patch +++ b/target/linux/generic/pending-4.19/630-packet_socket_type.patch @@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -3233,6 +3235,7 @@ static int packet_create(struct net *net +@@ -3237,6 +3239,7 @@ static int packet_create(struct net *net mutex_init(&po->pg_vec_lock); po->rollover = NULL; po->prot_hook.func = packet_rcv; @@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -3844,6 +3847,16 @@ packet_setsockopt(struct socket *sock, i +@@ -3848,6 +3851,16 @@ packet_setsockopt(struct socket *sock, i po->xmit = val ? packet_direct_xmit : dev_queue_xmit; return 0; } @@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau default: return -ENOPROTOOPT; } -@@ -3896,6 +3909,13 @@ static int packet_getsockopt(struct sock +@@ -3900,6 +3913,13 @@ static int packet_getsockopt(struct sock case PACKET_VNET_HDR: val = po->has_vnet_hdr; break; diff --git a/target/linux/generic/pending-4.19/640-netfilter-nf_flow_table-add-hardware-offload-support.patch b/target/linux/generic/pending-4.19/640-netfilter-nf_flow_table-add-hardware-offload-support.patch index 2e83ff391..984f96d5f 100644 --- a/target/linux/generic/pending-4.19/640-netfilter-nf_flow_table-add-hardware-offload-support.patch +++ b/target/linux/generic/pending-4.19/640-netfilter-nf_flow_table-add-hardware-offload-support.patch @@ -506,7 +506,7 @@ Signed-off-by: Pablo Neira Ayuso +MODULE_ALIAS("nf-flow-table-hw"); --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c -@@ -5399,6 +5399,13 @@ static int nf_tables_flowtable_parse_hoo +@@ -5453,6 +5453,13 @@ static int nf_tables_flowtable_parse_hoo if (err < 0) return err; @@ -520,7 +520,7 @@ Signed-off-by: Pablo Neira Ayuso ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL); if (!ops) return -ENOMEM; -@@ -5530,10 +5537,19 @@ static int nf_tables_newflowtable(struct +@@ -5584,10 +5591,19 @@ static int nf_tables_newflowtable(struct } flowtable->data.type = type; @@ -540,7 +540,7 @@ Signed-off-by: Pablo Neira Ayuso err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK], flowtable); if (err < 0) -@@ -5659,7 +5675,8 @@ static int nf_tables_fill_flowtable_info +@@ -5713,7 +5729,8 @@ static int nf_tables_fill_flowtable_info nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) || nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) || nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle), diff --git a/target/linux/generic/pending-4.19/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-4.19/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index 51cc20667..d727edeb2 100644 --- a/target/linux/generic/pending-4.19/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/pending-4.19/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski static const struct rt6_info ip6_blk_hole_entry_template = { .dst = { .__refcnt = ATOMIC_INIT(1), -@@ -903,6 +917,7 @@ static const int fib6_prop[RTN_MAX + 1] +@@ -900,6 +914,7 @@ static const int fib6_prop[RTN_MAX + 1] [RTN_BLACKHOLE] = -EINVAL, [RTN_UNREACHABLE] = -EHOSTUNREACH, [RTN_PROHIBIT] = -EACCES, @@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski [RTN_THROW] = -EAGAIN, [RTN_NAT] = -EINVAL, [RTN_XRESOLVE] = -EINVAL, -@@ -940,6 +955,10 @@ static void ip6_rt_init_dst_reject(struc +@@ -937,6 +952,10 @@ static void ip6_rt_init_dst_reject(struc rt->dst.output = ip6_pkt_prohibit_out; rt->dst.input = ip6_pkt_prohibit; break; @@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski case RTN_THROW: case RTN_UNREACHABLE: default: -@@ -3769,6 +3788,17 @@ static int ip6_pkt_prohibit_out(struct n +@@ -3758,6 +3777,17 @@ static int ip6_pkt_prohibit_out(struct n return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES); } @@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski /* * Allocate a dst for local (unicast / anycast) address. */ -@@ -4216,7 +4246,8 @@ static int rtm_to_fib6_config(struct sk_ +@@ -4205,7 +4235,8 @@ static int rtm_to_fib6_config(struct sk_ if (rtm->rtm_type == RTN_UNREACHABLE || rtm->rtm_type == RTN_BLACKHOLE || rtm->rtm_type == RTN_PROHIBIT || @@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski cfg->fc_flags |= RTF_REJECT; if (rtm->rtm_type == RTN_LOCAL) -@@ -5060,6 +5091,8 @@ static int ip6_route_dev_notify(struct n +@@ -5053,6 +5084,8 @@ static int ip6_route_dev_notify(struct n #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.ip6_prohibit_entry->dst.dev = dev; net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); @@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); #endif -@@ -5071,6 +5104,7 @@ static int ip6_route_dev_notify(struct n +@@ -5064,6 +5097,7 @@ static int ip6_route_dev_notify(struct n in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev); #ifdef CONFIG_IPV6_MULTIPLE_TABLES in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev); @@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev); #endif } -@@ -5265,6 +5299,15 @@ static int __net_init ip6_route_net_init +@@ -5258,6 +5292,15 @@ static int __net_init ip6_route_net_init net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, ip6_template_metrics, true); @@ -218,7 +218,7 @@ Signed-off-by: Jonas Gorski #endif net->ipv6.sysctl.flush_delay = 0; -@@ -5283,6 +5326,8 @@ out: +@@ -5276,6 +5319,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -227,7 +227,7 @@ Signed-off-by: Jonas Gorski out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -5303,6 +5348,7 @@ static void __net_exit ip6_route_net_exi +@@ -5296,6 +5341,7 @@ static void __net_exit ip6_route_net_exi #ifdef CONFIG_IPV6_MULTIPLE_TABLES kfree(net->ipv6.ip6_prohibit_entry); kfree(net->ipv6.ip6_blk_hole_entry); @@ -235,7 +235,7 @@ Signed-off-by: Jonas Gorski #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); } -@@ -5379,6 +5425,9 @@ void __init ip6_route_init_special_entri +@@ -5372,6 +5418,9 @@ void __init ip6_route_init_special_entri init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); diff --git a/target/linux/generic/pending-4.9/530-jffs2_make_lzma_available.patch b/target/linux/generic/pending-4.9/530-jffs2_make_lzma_available.patch index 8c8a025f7..31e7f2a25 100644 --- a/target/linux/generic/pending-4.9/530-jffs2_make_lzma_available.patch +++ b/target/linux/generic/pending-4.9/530-jffs2_make_lzma_available.patch @@ -244,7 +244,7 @@ Signed-off-by: Alexandros C. Couloumbis +} --- a/fs/jffs2/super.c +++ b/fs/jffs2/super.c -@@ -371,14 +371,41 @@ static int __init init_jffs2_fs(void) +@@ -374,14 +374,41 @@ static int __init init_jffs2_fs(void) BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68); BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32); @@ -1119,7 +1119,7 @@ Signed-off-by: Alexandros C. Couloumbis ifdef CONFIG_FUNCTION_TRACER ORIG_CFLAGS := $(KBUILD_CFLAGS) KBUILD_CFLAGS = $(subst $(CC_FLAGS_FTRACE),,$(ORIG_CFLAGS)) -@@ -108,6 +118,8 @@ obj-$(CONFIG_LZ4HC_COMPRESS) += lz4/ +@@ -109,6 +119,8 @@ obj-$(CONFIG_LZ4HC_COMPRESS) += lz4/ obj-$(CONFIG_LZ4_DECOMPRESS) += lz4/ obj-$(CONFIG_XZ_DEC) += xz/ obj-$(CONFIG_RAID6_PQ) += raid6/ diff --git a/target/linux/generic/pending-4.9/630-packet_socket_type.patch b/target/linux/generic/pending-4.9/630-packet_socket_type.patch index 13a544736..018d00692 100644 --- a/target/linux/generic/pending-4.9/630-packet_socket_type.patch +++ b/target/linux/generic/pending-4.9/630-packet_socket_type.patch @@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -3266,6 +3268,7 @@ static int packet_create(struct net *net +@@ -3270,6 +3272,7 @@ static int packet_create(struct net *net mutex_init(&po->pg_vec_lock); po->rollover = NULL; po->prot_hook.func = packet_rcv; @@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -3879,6 +3882,16 @@ packet_setsockopt(struct socket *sock, i +@@ -3883,6 +3886,16 @@ packet_setsockopt(struct socket *sock, i po->xmit = val ? packet_direct_xmit : dev_queue_xmit; return 0; } @@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau default: return -ENOPROTOOPT; } -@@ -3931,6 +3944,13 @@ static int packet_getsockopt(struct sock +@@ -3935,6 +3948,13 @@ static int packet_getsockopt(struct sock case PACKET_VNET_HDR: val = po->has_vnet_hdr; break; diff --git a/target/linux/lantiq/patches-4.14/0030-GPIO-add-named-gpio-exports.patch b/target/linux/lantiq/patches-4.14/0030-GPIO-add-named-gpio-exports.patch index fe4ea4fc2..8f0ac8d0f 100644 --- a/target/linux/lantiq/patches-4.14/0030-GPIO-add-named-gpio-exports.patch +++ b/target/linux/lantiq/patches-4.14/0030-GPIO-add-named-gpio-exports.patch @@ -22,7 +22,7 @@ Signed-off-by: John Crispin #include "gpiolib.h" -@@ -507,3 +509,72 @@ void of_gpiochip_remove(struct gpio_chip +@@ -513,3 +515,72 @@ void of_gpiochip_remove(struct gpio_chip gpiochip_remove_pin_ranges(chip); of_node_put(chip->of_node); } diff --git a/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch b/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch index fc1de9cbc..b60b20049 100644 --- a/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch @@ -106,7 +106,7 @@ Signed-off-by: Biwen Li case '-': --- a/drivers/net/team/team.c +++ b/drivers/net/team/team.c -@@ -1947,7 +1947,8 @@ static int team_netpoll_setup(struct net +@@ -1953,7 +1953,8 @@ static int team_netpoll_setup(struct net } #endif diff --git a/target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch b/target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch index 333dc9f3d..03e84637f 100644 --- a/target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch @@ -1485,7 +1485,7 @@ Signed-off-by: Yangbo Lu #define BCSR5_INT_USB (0x02) --- a/include/linux/usb.h +++ b/include/linux/usb.h -@@ -434,6 +434,7 @@ struct usb_bus { +@@ -432,6 +432,7 @@ struct usb_bus { * for control transfers? */ u8 otg_port; /* 0, or number of OTG/HNP port */ diff --git a/target/linux/ramips/patches-4.14/0024-GPIO-add-named-gpio-exports.patch b/target/linux/ramips/patches-4.14/0024-GPIO-add-named-gpio-exports.patch index a1d5d9d9f..61ed9ea78 100644 --- a/target/linux/ramips/patches-4.14/0024-GPIO-add-named-gpio-exports.patch +++ b/target/linux/ramips/patches-4.14/0024-GPIO-add-named-gpio-exports.patch @@ -22,7 +22,7 @@ Signed-off-by: John Crispin #include "gpiolib.h" -@@ -507,3 +509,68 @@ void of_gpiochip_remove(struct gpio_chip +@@ -513,3 +515,68 @@ void of_gpiochip_remove(struct gpio_chip gpiochip_remove_pin_ranges(chip); of_node_put(chip->of_node); }