diff --git a/config/Config-kernel.in b/config/Config-kernel.in index e681f3cdac..22461b6797 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -437,34 +437,22 @@ config KERNEL_PROVE_LOCKING select KERNEL_DEBUG_KERNEL default n -config KERNEL_LOCKUP_DETECTOR - bool "Compile the kernel with detect Hard and Soft Lockups" +config KERNEL_SOFTLOCKUP_DETECTOR + bool "Compile the kernel with detect Soft Lockups" depends on KERNEL_DEBUG_KERNEL help Say Y here to enable the kernel to act as a watchdog to detect - hard and soft lockups. + soft lockups. Softlockups are bugs that cause the kernel to loop in kernel mode for more than 20 seconds, without giving other tasks a chance to run. The current stack trace is displayed upon detection and the system will stay locked up. - Hardlockups are bugs that cause the CPU to loop in kernel mode - for more than 10 seconds, without letting other interrupts have a - chance to run. The current stack trace is displayed upon detection - and the system will stay locked up. - - The overhead should be minimal. A periodic hrtimer runs to - generate interrupts and kick the watchdog task every 4 seconds. - An NMI is generated every 10 seconds or so to check for hardlockups. - - The frequency of hrtimer and NMI events and the soft and hard lockup - thresholds can be controlled through the sysctl watchdog_thresh. - config KERNEL_DETECT_HUNG_TASK bool "Compile the kernel with detect Hung Tasks" depends on KERNEL_DEBUG_KERNEL - default KERNEL_LOCKUP_DETECTOR + default KERNEL_SOFTLOCKUP_DETECTOR help Say Y here to enable the kernel to detect "hung tasks", which are bugs that cause the task to be stuck in diff --git a/target/linux/archs38/config-5.4 b/target/linux/archs38/config-5.4 index 29246265ad..20c3dc0a88 100644 --- a/target/linux/archs38/config-5.4 +++ b/target/linux/archs38/config-5.4 @@ -50,7 +50,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=4096 CONFIG_BLK_DEV_SD=y CONFIG_BLK_SCSI_REQUEST=y -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 CONFIG_CC_DISABLE_WARN_MAYBE_UNINITIALIZED=y CONFIG_CC_HAS_KASAN_GENERIC=y diff --git a/target/linux/generic/backport-5.4/790-v5.7-net-switchdev-do-not-propagate-bridge-updates-across.patch b/target/linux/generic/backport-5.4/790-v5.7-net-switchdev-do-not-propagate-bridge-updates-across.patch new file mode 100644 index 0000000000..bc8014b772 --- /dev/null +++ b/target/linux/generic/backport-5.4/790-v5.7-net-switchdev-do-not-propagate-bridge-updates-across.patch @@ -0,0 +1,60 @@ +From 07c6f9805f12f1bb538ef165a092b300350384aa Mon Sep 17 00:00:00 2001 +From: Russell King +Date: Wed, 26 Feb 2020 17:14:21 +0000 +Subject: [PATCH] net: switchdev: do not propagate bridge updates across + bridges + +When configuring a tree of independent bridges, propagating changes +from the upper bridge across a bridge master to the lower bridge +ports brings surprises. + +For example, a lower bridge may have vlan filtering enabled. It +may have a vlan interface attached to the bridge master, which may +then be incorporated into another bridge. As soon as the lower +bridge vlan interface is attached to the upper bridge, the lower +bridge has vlan filtering disabled. + +This occurs because switchdev recursively applies its changes to +all lower devices no matter what. + +Reviewed-by: Ido Schimmel +Tested-by: Ido Schimmel +Signed-off-by: Russell King +Reviewed-by: Florian Fainelli +Signed-off-by: David S. Miller +--- + net/switchdev/switchdev.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/net/switchdev/switchdev.c ++++ b/net/switchdev/switchdev.c +@@ -476,6 +476,9 @@ static int __switchdev_handle_port_obj_a + * necessary to go through this helper. + */ + netdev_for_each_lower_dev(dev, lower_dev, iter) { ++ if (netif_is_bridge_master(lower_dev)) ++ continue; ++ + err = __switchdev_handle_port_obj_add(lower_dev, port_obj_info, + check_cb, add_cb); + if (err && err != -EOPNOTSUPP) +@@ -528,6 +531,9 @@ static int __switchdev_handle_port_obj_d + * necessary to go through this helper. + */ + netdev_for_each_lower_dev(dev, lower_dev, iter) { ++ if (netif_is_bridge_master(lower_dev)) ++ continue; ++ + err = __switchdev_handle_port_obj_del(lower_dev, port_obj_info, + check_cb, del_cb); + if (err && err != -EOPNOTSUPP) +@@ -579,6 +585,9 @@ static int __switchdev_handle_port_attr_ + * necessary to go through this helper. + */ + netdev_for_each_lower_dev(dev, lower_dev, iter) { ++ if (netif_is_bridge_master(lower_dev)) ++ continue; ++ + err = __switchdev_handle_port_attr_set(lower_dev, port_attr_info, + check_cb, set_cb); + if (err && err != -EOPNOTSUPP) diff --git a/target/linux/generic/config-5.4 b/target/linux/generic/config-5.4 index 534a82806e..d7676471ac 100644 --- a/target/linux/generic/config-5.4 +++ b/target/linux/generic/config-5.4 @@ -644,6 +644,8 @@ CONFIG_BLOCK=y # CONFIG_BONDING is not set # CONFIG_BOOKE_WDT is not set CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3 +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set # CONFIG_BOOT_PRINTK_DELAY is not set CONFIG_BOOT_RAW=y CONFIG_BPF=y @@ -1239,6 +1241,7 @@ CONFIG_DEBUG_KERNEL=y CONFIG_DEFAULT_CUBIC=y CONFIG_DEFAULT_DEADLINE=y CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 CONFIG_DEFAULT_IOSCHED="deadline" CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 # CONFIG_DEFAULT_NOOP is not set diff --git a/target/linux/kirkwood/files-5.4/arch/arm/boot/dts/kirkwood-ea3500.dts b/target/linux/kirkwood/files-5.4/arch/arm/boot/dts/kirkwood-ea3500.dts index b41243d8dd..b911138541 100644 --- a/target/linux/kirkwood/files-5.4/arch/arm/boot/dts/kirkwood-ea3500.dts +++ b/target/linux/kirkwood/files-5.4/arch/arm/boot/dts/kirkwood-ea3500.dts @@ -165,7 +165,7 @@ partition@200000 { label = "kernel1"; - reg = <0x200000 0x290000>; + reg = <0x200000 0x1400000>; }; partition@490000 { @@ -175,7 +175,7 @@ partition@1600000 { label = "kernel2"; - reg = <0x1600000 0x290000>; + reg = <0x1600000 0x1400000>; }; partition@1890000 { diff --git a/target/linux/kirkwood/patches-5.4/105-linksys-viper-dts.patch b/target/linux/kirkwood/patches-5.4/105-linksys-viper-dts.patch index 0d97ad14a2..0933b567e4 100644 --- a/target/linux/kirkwood/patches-5.4/105-linksys-viper-dts.patch +++ b/target/linux/kirkwood/patches-5.4/105-linksys-viper-dts.patch @@ -28,8 +28,9 @@ partition@200000 { - label = "kernel"; +- reg = <0x200000 0x2A0000>; + label = "kernel1"; - reg = <0x200000 0x2A0000>; ++ reg = <0x200000 0x1A00000>; }; partition@4a0000 { @@ -40,8 +41,9 @@ partition@1c00000 { - label = "alt_kernel"; +- reg = <0x1C00000 0x2A0000>; + label = "kernel2"; - reg = <0x1C00000 0x2A0000>; ++ reg = <0x1C00000 0x1A00000>; }; partition@1ea0000 { diff --git a/target/linux/layerscape/armv7/config-5.4 b/target/linux/layerscape/armv7/config-5.4 index 35c8eed8da..3189724fd1 100644 --- a/target/linux/layerscape/armv7/config-5.4 +++ b/target/linux/layerscape/armv7/config-5.4 @@ -104,7 +104,6 @@ CONFIG_BLK_MQ_PCI=y CONFIG_BLK_MQ_VIRTIO=y CONFIG_BLK_PM=y CONFIG_BLK_SCSI_REQUEST=y -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 CONFIG_BOUNCE=y CONFIG_BRCMSTB_GISB_ARB=y @@ -202,7 +201,6 @@ CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_LZO=y CONFIG_DECOMPRESS_XZ=y -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 CONFIG_DETECT_HUNG_TASK=y # CONFIG_DEVFREQ_GOV_PASSIVE is not set # CONFIG_DEVFREQ_GOV_PERFORMANCE is not set diff --git a/target/linux/layerscape/armv8_64b/config-5.4 b/target/linux/layerscape/armv8_64b/config-5.4 index ce619ac6c1..1dbcc845ac 100644 --- a/target/linux/layerscape/armv8_64b/config-5.4 +++ b/target/linux/layerscape/armv8_64b/config-5.4 @@ -130,7 +130,6 @@ CONFIG_BLK_MQ_PCI=y CONFIG_BLK_MQ_VIRTIO=y CONFIG_BLK_PM=y CONFIG_BLK_SCSI_REQUEST=y -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y @@ -224,7 +223,6 @@ CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_LZO=y CONFIG_DECOMPRESS_XZ=y -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 CONFIG_DETECT_HUNG_TASK=y # CONFIG_DEVICE_THERMAL is not set CONFIG_DEVTMPFS=y