openwrt/staging/jow.git
4 years agomac80211: brcm: backport remaining 5.6 kernel patches
Rafał Miłecki [Thu, 6 Feb 2020 10:36:15 +0000 (11:36 +0100)]
mac80211: brcm: backport remaining 5.6 kernel patches

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit aca274091ad3b50b770c0dd44f3ceefe8095d528)

4 years agokernel: add missing symbol
Koen Vandeputte [Wed, 5 Feb 2020 17:23:59 +0000 (18:23 +0100)]
kernel: add missing symbol

Reported by Buildbot:

x86 instruction decoder selftest (X86_DECODER_SELFTEST) [N/y/?] (NEW) aborted!

Fixes: eca8a2ee0d44 ("kernel: bump 4.14 to 4.14.169")
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agokernel: add support for GD25D05 SPI NOR
Koen Vandeputte [Mon, 6 Jan 2020 13:12:02 +0000 (14:12 +0100)]
kernel: add support for GD25D05 SPI NOR

This chip is used on newer RB912UAG-5HPnD r2 boards:

Before:

[    0.642553] m25p80 spi0.0: unrecognized JEDEC id bytes: c8, 40, 10
[    0.649381] NAND flash driver for the RouterBOARD 91x series

After:

[    0.641714] m25p80 spi0.0: found gd25d05, expected m25p80
[    0.649916] m25p80 spi0.0: gd25d05 (64 Kbytes)
[    0.655122] Creating 4 MTD partitions on "spi0.0":
[    0.660164] 0x000000000000-0x00000000c000 : "routerboot"
[    0.667782] 0x00000000c000-0x00000000d000 : "hard_config"
[    0.675073] 0x00000000d000-0x00000000e000 : "bios"
[    0.682613] 0x00000000e000-0x00000000f000 : "soft_config"
[    0.690304] NAND flash driver for the RouterBOARD 91x series

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agokernel: bump 4.14 to 4.14.169
Koen Vandeputte [Tue, 4 Feb 2020 11:05:46 +0000 (12:05 +0100)]
kernel: bump 4.14 to 4.14.169

Refreshed all patches.

Fixes:
- CVE-2019-14896
- CVE-2019-14897

Remove upstreamed:
- 023-0007-crypto-crypto4xx-Fix-wrong-ppc4xx_trng_probe-ppc4xx_.patch
- 001-4.22-01-MIPS-BCM63XX-drop-unused-and-broken-DSP-platform-dev.patch

Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agoramips: reenable image creation for the D-Link DIR-645
Mason Clarke [Sun, 29 Dec 2019 19:39:24 +0000 (20:39 +0100)]
ramips: reenable image creation for the D-Link DIR-645

This commit reenables the image creation for the D-Link DIR-645.

Images built for the D-Link DIR-645 work just fine, there is no reason
to disable the image creation for it.

I tested the OpenWrt 18.06.5 and 19.07.0-rc1 images, as well as an
image I built from the current 19.07 branch (git HEAD 62d5ece) with
the default 19.07 release config, and I cannot confirm the report that
commit 2607c02ed599b6118ba26e2f35e7c828c21d7275
("ramips: disable D-Link DIR-645 by default") references.
Configuration changes were applied successfully and remained set after
a reboot as well. The log also showed no anomalies.

This reverts commit 2607c02ed599b6118ba26e2f35e7c828c21d7275.

Signed-off-by: Mason Clarke <mclarke2355@gmail.com>
4 years agoramips: use tpt DTS trigger for TP-Link TL-MR3020 v3 and TL-WA801ND v5
Jan Alexander [Thu, 30 Jan 2020 14:23:51 +0000 (15:23 +0100)]
ramips: use tpt DTS trigger for TP-Link TL-MR3020 v3 and TL-WA801ND v5

This converts the TP-Link TL-MR3020v3 board to use the WLAN throughput
LED trigger in order to react to all VAPs.

It also moves the WLAN trigger config of the TP-Link TL-WA801NDv5 to the
DTS and merges the now identical LAN LED configs.

Verified these changes on a TL-MR3020v3 and TL-WA801NDv5.

Signed-off-by: Jan Alexander <jan@nalx.net>
[changed commit title and extended commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
[added comment about test result on TL-WA801ND v5]
Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 20eb45da4fc19c12ea2073471992eeaf9d602fa5)

4 years agoramips: remove duplicate DEVICE_PACKAGES for TP-Link Archer C20i
Adrian Schmutzler [Wed, 29 Jan 2020 19:27:25 +0000 (20:27 +0100)]
ramips: remove duplicate DEVICE_PACKAGES for TP-Link Archer C20i

DEVICE_PACKAGES is specified twice for the same device. Remove the
first (=older) assignment.

Fixes: 40692f0fb55c ("ramips: mt7620: select only the matching mt76 driver")
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 4ecd6510bf8877dcd07561045852726ffbab8814)

4 years agoOpenWrt v19.07.1: revert to branch defaults
Jo-Philipp Wich [Wed, 29 Jan 2020 16:08:14 +0000 (17:08 +0100)]
OpenWrt v19.07.1: revert to branch defaults

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
4 years agoOpenWrt v19.07.1: adjust config defaults
Jo-Philipp Wich [Wed, 29 Jan 2020 16:08:11 +0000 (17:08 +0100)]
OpenWrt v19.07.1: adjust config defaults

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
4 years agoopkg: update to latest Git HEAD
Jo-Philipp Wich [Sat, 25 Jan 2020 13:27:10 +0000 (14:27 +0100)]
opkg: update to latest Git HEAD

80d161e opkg: Fix -Wformat-overflow warning
c09fe20 libopkg: fix skipping of leading whitespace when parsing checksums

Fixes: CVE-2020-7982
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit c69c20c6670081d1eaab000734d89de57eb64148)

4 years agokernel: fix dst reference leak in flow offload
Felix Fietkau [Thu, 23 Jan 2020 16:40:06 +0000 (17:40 +0100)]
kernel: fix dst reference leak in flow offload

Fixes a significant amount of leaked memory with lots of connections

Ref: PR#2721
Tested-by: Jerome Benoit <jerome.benoit@sap.com> [WRT1900AC v1]
Signed-off-by: Felix Fietkau <nbd@nbd.name>
[removed 4.19 patch during cherry-pick]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
(cherry picked from commit c6c4701def07cd01a1b077cee93f64a9b2e3b5be)

4 years agoath79: fix SUPPORTED_DEVICES not matching ar71xx board names
Adrian Schmutzler [Thu, 23 Jan 2020 14:42:48 +0000 (15:42 +0100)]
ath79: fix SUPPORTED_DEVICES not matching ar71xx board names

Based on a script for comparison, this fixes (hopefully) all errors
in SUPPORTED_DEVICES for ar71xx->ath79 upgrade.

Devices where old string is removed as the device does not exist
in ar71xx:
- dlink_dir-859-a1
- tplink_archer-a7-v5
- tplink_cpe510-v3 [only in master]

Devices where string is changed because it did not match the board
name in ar71xx:
- tplink_tl-mr3220-v1
- tplink_tl-mr3420-v1
- tplink_tl-wr2543-v1
- tplink_tl-wr741nd-v4
- tplink_tl-wr841-v7
- ubnt_unifiac-mesh
- ubnt_unifiac-mesh-pro
- ubnt_unifiac-pro

For this device, the correct string could not be found, but we could
not determine the correct one. Thus, the string is removed for now:
- tplink_tl-wr740n-v4

The script for checking this is quite simple (note that newer
entries, i.e. ath79->ath79 upgrade, are displayed as missing):

  newpath=target/linux/ath79/image/
  oldpath=target/linux/ar71xx/base-files/lib/ar71xx.sh

  for s in $(grep -roh "SUPPORTED_DEVICES.*" $newpath | sed 's/SUPPORTED_DEVICES *.= *//'); do
    found="Missing"
    grep -q -r "\"$s\"" $oldpath && found="Found"
    echo "$s: $found."
  done

The errors might be filtered by appending 'grep "Missing"' to the script.

Fixes: FS#2751
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 07ce940b77e6aceb095b0a16dda41e190dfc5b87)

4 years agoath79: remove SUPPORTED_DEVICES for TP-Link Archer D50 v1
Adrian Schmutzler [Wed, 14 Aug 2019 22:46:07 +0000 (00:46 +0200)]
ath79: remove SUPPORTED_DEVICES for TP-Link Archer D50 v1

This device has not been supported in ar71xx, so there is no need
for an explicit SUPPORTED_DEVICES entry.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 894bdee7563036d6627022d7f292e83241a807a7)

4 years agomac80211: Update to version 4.19.98
Hauke Mehrtens [Sun, 26 Jan 2020 18:53:38 +0000 (19:53 +0100)]
mac80211: Update to version 4.19.98

The removed patches are all integrated in the upstream version now.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agolantiq: ltq-ptm: vr9: fix skb handling in ptm_hard_start_xmit()
Martin Schiller [Tue, 21 Jan 2020 09:42:33 +0000 (10:42 +0100)]
lantiq: ltq-ptm: vr9: fix skb handling in ptm_hard_start_xmit()

Call skb_orphan(skb) to call the owner's destructor function and make
the skb unowned.

This is necessary to prevent sk_wmem_alloc of a socket from overflowing,
which leads to ENOBUFS errors on application level.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
(cherry picked from commit 996f02e5bafad2815e72821c19d41fb5297e4dad)

4 years agombedtls: update to 2.16.4
Magnus Kroken [Sat, 25 Jan 2020 17:33:41 +0000 (18:33 +0100)]
mbedtls: update to 2.16.4

Fixes side channel vulnerabilities in mbed TLS' implementation of ECDSA.

Release announcement:
https://tls.mbed.org/tech-updates/releases/mbedtls-2.16.4-and-2.7.13-released

Security advisory:
https://tls.mbed.org/tech-updates/security-advisories/mbedtls-security-advisory-2019-12

Fixes:
 * CVE-2019-18222: Side channel attack on ECDSA

Signed-off-by: Magnus Kroken <mkroken@gmail.com>
(cherry picked from commit 6e96fd90471a49185bcfe9dcb4844d444674ecab)

4 years agokernel: bump 4.14 to 4.14.167
Koen Vandeputte [Fri, 24 Jan 2020 10:14:21 +0000 (11:14 +0100)]
kernel: bump 4.14 to 4.14.167

Refreshed all patches.

Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agoprocd: update to version 2020-01-24
Petr Štetiar [Fri, 24 Jan 2020 07:34:10 +0000 (08:34 +0100)]
procd: update to version 2020-01-24

Get only fix backports from openwr-19.07 procd branch:

 31e4b2dfdbd7 state: fix reboot causing shutdown inside LXC container
 557f11b3a20f instance: provide error feedback if ujail binary is missing
 0a11aa405d3f instance: Fix instance_config_move_strdup() function
 44dd9419812b instance: fix typo in error message
 153820c76471 instance: fix pidfile and seccomp attributes double free

Signed-off-by: Petr Štetiar <ynezz@true.cz>
4 years agoramips: mt7621: ubnt-erx: allow sysupgrade from master
Petr Štetiar [Mon, 20 Jan 2020 19:36:19 +0000 (20:36 +0100)]
ramips: mt7621: ubnt-erx: allow sysupgrade from master

Currently it's not possible to downgrade from master:

 Device ubiquiti,edgerouterx not supported by this image
 Supported devices: ubnt-erx

So fix it by adding a DTS based device name from master into
SUPPORTED_DEVICES list.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
4 years agohostapd: fix faulty WMM IE parameters with ETSI regulatory domains
Felix Fietkau [Thu, 23 Jan 2020 13:51:58 +0000 (14:51 +0100)]
hostapd: fix faulty WMM IE parameters with ETSI regulatory domains

hostapd sets minimum values for CWmin/CWmax/AIFS and maximum for TXOP.
The code for applying those values had a few bugs leading to bogus values,
which caused significant latency and packet loss.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agotools: tplink-safeloader: update soft_ver for TP-Link Archer C6 v2 (EU)
Anderson Vulczak [Wed, 27 Nov 2019 23:31:52 +0000 (21:31 -0200)]
tools: tplink-safeloader: update soft_ver for TP-Link Archer C6 v2 (EU)

This patch updates "soft_ver" for TP-Link Archer C6 v2 (EU).

It makes possible to upload OpenWrt on lastest vendor's firmware
as the web-based updater checks for major.minor version during upload.

Due to that on next major/minor version update TP-Link will stop
us from using the web-based firmware update tool, so it will
require a new patch on soft_ver to match major and minor version.
Up to today's latest stock firmware the patch (major.minor.patch)
version does not matters, that allows downgrade from 1.1.4 to 1.1.1
but do not allow downgrade from 1.1.X to 1.0.X.

Signed-off-by: Anderson Vulczak <andi@andi.com.br>
(cherry picked from commit 7a8bfbf0ffaea14e15ae2016a54adf48337c6251)
(cherry picked from commit eeb93e5c2b23518e372737ecf8fdde4b9f139a49)

4 years agouboot-envtools: ath79: add support for glinet,gl-ar150
Kimmo Vuorinen [Wed, 22 Jan 2020 21:36:26 +0000 (23:36 +0200)]
uboot-envtools: ath79: add support for glinet,gl-ar150

Add ubootenv uci config for GL.inet GL-AR150

Signed-off-by: Kimmo Vuorinen <kimmo.vuorinen@gmail.com>
[commit title/message facelift]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit a8723c48add5cc8381d88234b9cdda2bb6a866aa)

4 years agouboot-envtools: ar71xx: add support for gl-ar150/-domino/-mifi
Kimmo Vuorinen [Wed, 22 Jan 2020 21:34:58 +0000 (23:34 +0200)]
uboot-envtools: ar71xx: add support for gl-ar150/-domino/-mifi

Add ubootenv uci config for gl-ar150, gl-domino and gl-mifi

Signed-off-by: Kimmo Vuorinen <kimmo.vuorinen@gmail.com>
[commit message/title facelift]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit dc6dfaac80f392baef1d0d7b06bb1fc19812e041)

4 years agoar71xx: change u-boot-env to read-write for gl-ar150/-domino/mifi
Kimmo Vuorinen [Wed, 22 Jan 2020 21:38:35 +0000 (23:38 +0200)]
ar71xx: change u-boot-env to read-write for gl-ar150/-domino/mifi

Change u-boot-env partitions to be mounted as read-write for gl-ar150,
gl-domino and gl-mifi so uboot-envtools support is possible.

Signed-off-by: Kimmo Vuorinen <kimmo.vuorinen@gmail.com>
[commit title/message facelift]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 2c1cfacddedc82c7a34eeb2a26529a5f3ab423d8)

4 years agourngd: update to version 2020-01-21
Petr Štetiar [Tue, 21 Jan 2020 16:03:21 +0000 (17:03 +0100)]
urngd: update to version 2020-01-21

c7f7b6b65b82 Tag version 1.0.2
236b7a0aef21 Fix blocked entropy generation

Signed-off-by: Petr Štetiar <ynezz@true.cz>
(cherry picked from commit 3d8edd9bb4759f56df4482b3ed9c7fc26ed86028)

4 years agourngd: update to latest Git head
Petr Štetiar [Mon, 21 Oct 2019 08:37:51 +0000 (10:37 +0200)]
urngd: update to latest Git head

 * 40f939d57c67 Tag version 1.0.1
 * 9e758e6e6aec jitterentropy-rngd: update to version v1.1.0 + clang compile fix
 * 193586a25adc Fix wrong types in format strings used in debug build
 * d474977bb611 Add initial GitLab CI support

Signed-off-by: Petr Štetiar <ynezz@true.cz>
(cherry picked from commit ed67b137c748365d7a3be886a2f5309c3bc44c48)

4 years agoar71xx: ubnt-rocket-m-ti: fix RSSI LED definitions
Lech Perczak [Sun, 17 Nov 2019 19:57:10 +0000 (20:57 +0100)]
ar71xx: ubnt-rocket-m-ti: fix RSSI LED definitions

When mapping for RSSI LEDs was defined for interface wlan0 on
Ubiquiti Rocket M Titanium, it missed connection to actual interface.
Therefore create the mapping to interface, so RSSI LEDs work without
additional configuration, after starting rssileds service.

While at that, split RSSI into ~equal intervals for 6 LEDs,
and remove coefficients needed for PWM LEDs, as this board does not
support PWM LEDs.

Finally, for complete support, enable 'rssileds' package in per-device
rootfs, so the indicator works out of box.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
(cherry picked from commit 83708f233daceacebd1c49da44711cc87b49162a)

4 years agobrcm47xx: fix switch port order for Netgear WN2500RP V1
Walter Sonius [Fri, 27 Dec 2019 11:41:35 +0000 (12:41 +0100)]
brcm47xx: fix switch port order for Netgear WN2500RP V1

The Netgear WN2500RP V1 switch0 already works for LAN
however the port order for the LAN ports is inverted. Correct
physical port order watched from the back of the device is:
4 / 3 / 2 / 1
WAN port is absent on this device and therefore removed
from switch config.

Signed-off-by: Walter Sonius <walterav1984@gmail.com>
[move block to maintain alphabetic sorting]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 098cbc68ee23db589ed6f0d081fe26cc385462f2)

4 years agokirkwood: fix HDD LED labels for Zyxel NSA325 in 01_leds
Stephan Knauss [Sat, 18 Jan 2020 18:37:08 +0000 (19:37 +0100)]
kirkwood: fix HDD LED labels for Zyxel NSA325 in 01_leds

Change the LED labels for hdd1/hdd2 in 01_leds to match their
counterpart in DTS.

Signed-off-by: Stephan Knauss <openwrt@stephans-server.de>
[improve commit title and message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit fbf297be38a93b9ca1119e5aaffecd2299087aa5)

4 years agobrcm47xx: fix switch port order for Netgear WNR3500 V2
Walter Sonius [Fri, 27 Dec 2019 11:25:39 +0000 (12:25 +0100)]
brcm47xx: fix switch port order for Netgear WNR3500 V2

The Netgear WNR3500 V2 switch0 already works for WAN/LAN
however the port order for the LAN ports is inverted. Correct
physical port order watched from the back of the device is:
Internet / 4 / 3 / 2 / 1 this resembles the Linksys E3000 V1.

Verfied with imagebuilder edit FILES=/etc/board.d/01_network

Signed-off-by: Walter Sonius <walterav1984@gmail.com>
(cherry picked from commit cf2f1fc6871da0320afeefaa799af87fc7c0d1db)

4 years agoramips: rt305x: remove unnecessary mediatek,portmap
Sungbo Eo [Wed, 1 Jan 2020 12:34:33 +0000 (21:34 +0900)]
ramips: rt305x: remove unnecessary mediatek,portmap

"#mediatek,portmap" is not a valid property name.

If mediatek,portmap equals 0x0, then the esw driver ditches it and uses
the default value, 0x3f.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
(cherry picked from commit f87281b2956110f10af9eb23fc6d327dfde7ab42)

4 years agoramips: mt76x8: fix bogus mediatek,portmap
Sungbo Eo [Wed, 1 Jan 2020 12:34:10 +0000 (21:34 +0900)]
ramips: mt76x8: fix bogus mediatek,portmap

mt76x8 uses esw_rt3050 driver, which does not accept mediatek,portmap with
string values. Convert the strings to integers to make it work.

According to its switch setup, WRTnode 2P/2R have a WAN port at port 0,
so the correct value should be 0x3e.

tplink_8m.dtsi uses "llllw", but it does not match switch setups of any
device using the DTSI. Remove it from the DTSI and add correct value to DTS
for each device.

These devices have a WAN port at port 0. Set the value to 0x3e.
- tplink,archer-c20-v4
- tplink,archer-c50-v3
- tplink,tl-mr3420-v5
- tplink,tl-wr840n-v4
- tplink,tl-wr841n-v13
- tplink,tl-wr842n-v5

These devices have only one ethernet port. They don't need portmap setting.
- tplink,tl-wa801nd-v5
- tplink,tl-wr802n-v4
- tplink,tl-wr902ac-v3

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
(backported from commit 7a387bf9a0d73f7c581e2c9aeae6476588100e2c)
[removed TL-WR841N v14 which is not present in 19.07]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: fix portmap for TP-Link Archer C50 v4
Maxim Anisimov [Wed, 18 Dec 2019 07:06:14 +0000 (10:06 +0300)]
ramips: fix portmap for TP-Link Archer C50 v4

According to 02_network portmap is wan=0 lan1=1 lan2=2 lan3=3 lan4=4

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
(cherry picked from commit ebf535a6cfefef5b0afb74cb01c9a17ab242b85b)

4 years agoramips: mt7620/mt7621: remove invalid mediatek,portmap
Sungbo Eo [Wed, 1 Jan 2020 12:33:10 +0000 (21:33 +0900)]
ramips: mt7620/mt7621: remove invalid mediatek,portmap

mt7620 and mt7621 use mt7530 driver, which only accepts "llllw", "wllll",
and "lwlll" values.

According to its switch setup, Mi Router 3G v2 has a WAN port at port 4,
so the correct value should be "llllw".

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
(backported from commit d3c0a944059bb0d45c3b56278249100258378b0c)
[removed devices not in 19.07]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: add factory image for Netgear R6350
Christoph Krapp [Thu, 29 Aug 2019 18:12:30 +0000 (20:12 +0200)]
ramips: add factory image for Netgear R6350

This adds factory image generation for all three
devices. These images can be flashed via WebUI
for easy installation.

Thanks to David Bauer for the inspiration.

Signed-off-by: Christoph Krapp <achterin@googlemail.com>
[altered commit to only include the R6350]
Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 3c8df280a96bbd81357d6eb52845e6b5fa7162fe)
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agoramips: add mt7615e support to Netgear R6350
Christoph Krapp [Thu, 29 Aug 2019 08:06:12 +0000 (10:06 +0200)]
ramips: add mt7615e support to Netgear R6350

Signed-off-by: Christoph Krapp <achterin@googlemail.com>
(cherry picked from commit 9861fa7abab97cb928aaa6cd5732a413d973ac95)

4 years agolibubox: update to version 2020-01-20
Petr Štetiar [Mon, 20 Jan 2020 15:22:07 +0000 (16:22 +0100)]
libubox: update to version 2020-01-20

 43a103ff17ee blobmsg: blobmsg_parse and blobmsg_parse_array oob read fixes
 5c0faaf4f5e2 tests: prefer dynamically allocated buffers
 1ffa41535369 blobmsg_json: prefer snprintf usage
 132ecb563da7 blobmsg: blobmsg_vprintf: prefer vsnprintf
 a2aab30fc918 jshn: prefer snprintf usage
 b0886a37f39a cmake: add a possibility to set library version
 a36ee96618a9 blobmsg: blobmsg_add_json_element() 64-bit values
 f0da3a4283b7 blobmsg_json: fix int16 serialization
 20a070f08139 tests: blobmsg/json: add more test cases
 379cd33d1992 tests: include json script shunit2 based testing

Acked-by: Jo-Philipp Wich <jo@mein.io>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
(cherry picked from commit 5c73bb12c82c078d8a93cb896348b41598ed9e19)

4 years agofstools: backport fix from version 2020-01-18
Petr Štetiar [Sat, 18 Jan 2020 13:49:11 +0000 (14:49 +0100)]
fstools: backport fix from version 2020-01-18

Contains only the FS#2735 fix:

 189b41b6b487 libblkid-tiny: fix f2fs labels by increasing label buffer

Commit adding new feature wasn't backported (needs patched kernel anyway):

 f5c7c1813f52 fstools: Add support to read-only MTD partitions (eg. recovery images)

Signed-off-by: Petr Štetiar <ynezz@true.cz>
(cherry picked from commit 63000bfaf7163d97ac6feb343c7587e3d339e65e)

4 years agokernel: bump 4.14 to 4.14.166
Koen Vandeputte [Mon, 20 Jan 2020 11:04:33 +0000 (12:04 +0100)]
kernel: bump 4.14 to 4.14.166

Refreshed all patches.

Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agokernel: bump 4.14 to 4.14.165
Koen Vandeputte [Mon, 20 Jan 2020 10:01:44 +0000 (11:01 +0100)]
kernel: bump 4.14 to 4.14.165

Refreshed all patches.

Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agokernel: bump 4.14 to 4.14.164
Koen Vandeputte [Tue, 14 Jan 2020 13:42:28 +0000 (14:42 +0100)]
kernel: bump 4.14 to 4.14.164

Refreshed all patches.

Compile-tested on: ar71xx, cns3xxx, imx6
Runtime-tested on: ar71xx, cns3xxx, imx6

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agoramips: fix HiWiFi HC5962 status LED
DENG Qingfang [Thu, 16 Jan 2020 16:27:59 +0000 (00:27 +0800)]
ramips: fix HiWiFi HC5962 status LED

Match LED behavior to stock firmware:

Red: booting
White: running

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
(cherry picked from commit 9a3c9a96563c3c3fb1e15b791d9117b193fed7a6)

4 years agoramips: fix HiWiFi HC5962 switch configuration
DENG Qingfang [Thu, 16 Jan 2020 16:24:43 +0000 (00:24 +0800)]
ramips: fix HiWiFi HC5962 switch configuration

HC5962 has only 3 LAN ports, switch port 0 is unused

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
(backported from commit 68f49df31507454f86b72a5c1e250505176baed7)
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: add kmod-mt7615e to Xiaomi Mi Router 3 Pro images
Ozgur Can Leonard [Fri, 2 Aug 2019 18:55:41 +0000 (21:55 +0300)]
ramips: add kmod-mt7615e to Xiaomi Mi Router 3 Pro images

Now that the mt76/mt7615e driver is in Openwrt, might as well use it.

Signed-off-by: Ozgur Can Leonard <ozgurcan@gmail.com>
(cherry picked from commit d7c082ba4f7de97b3708d1f4a064954ffc774778)

4 years agoar71xx/mikrotik: use ath10k-ct-smallbuffers for 64 MiB devices
Thomas Nixon [Sun, 5 Jan 2020 21:38:36 +0000 (21:38 +0000)]
ar71xx/mikrotik: use ath10k-ct-smallbuffers for 64 MiB devices

This image is only needed on one device (wAP AC); since this target is
going to be removed anyway it doesn't make sense to add an extra "low
RAM" image.

Fixes OOM issues on RouterBoard wAP AC.

Signed-off-by: Thomas Nixon <tom@tomn.co.uk>
(cherry picked from commit 788c8485eb5b71ef7e7b2a2d3077772e526e9746)

4 years agoramips: fix wps leds/btn for TP-Link TL-WA801ND v5
Jan Alexander [Wed, 15 Jan 2020 20:12:33 +0000 (21:12 +0100)]
ramips: fix wps leds/btn for TP-Link TL-WA801ND v5

- fix color and active mode for existing wps led
- add green wps led
- add wps button

Signed-off-by: Jan Alexander <jan@nalx.net>
[wrap line]
Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 26105974e7f9758cd4bc443ce0322983f818acd5)

4 years agohostapd: cleanup IBSS-RSN
Daniel Golle [Thu, 16 Jan 2020 08:13:51 +0000 (10:13 +0200)]
hostapd: cleanup IBSS-RSN

set noscan also for IBSS and remove redundant/obsolete variable.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 702c70264b388c2b47e171843f297f43c71b86b9)

4 years agocryptodev-linux: remove DEFAULT redefinition
Eneas U de Queiroz [Wed, 15 Jan 2020 18:28:05 +0000 (15:28 -0300)]
cryptodev-linux: remove DEFAULT redefinition

The 'DEFAULT:=m if ALL' line prevents the phase1 buildbots from building
the package, and users from downloading it, since they use 'ALL_KMODS=y'
but 'ALL' is not set.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
(cherry picked from commit 9b25f833eb840527d07c47930de2c769115844f3)

4 years agomac80211: fix a page refcounting issue leading to leaks/crashes in rx A-MSDU decap
Felix Fietkau [Mon, 13 Jan 2020 18:43:40 +0000 (19:43 +0100)]
mac80211: fix a page refcounting issue leading to leaks/crashes in rx A-MSDU decap

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry-picked from commit 9501469e1146c6d76b7dde6391479314897ba4d8)

4 years agomac80211: fix sta TID stats leak on a few nl80211 calls
Felix Fietkau [Mon, 13 Jan 2020 18:43:20 +0000 (19:43 +0100)]
mac80211: fix sta TID stats leak on a few nl80211 calls

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry-picked from commit d5b3024139089e38f57bd1827273d7fba8497635)

4 years agoucert: update to version 2019-12-19
Petr Štetiar [Thu, 19 Dec 2019 12:25:03 +0000 (13:25 +0100)]
ucert: update to version 2019-12-19

14a279411cff fix certificate blob parsing vulnerability by using blob_parse_untrusted
19a7225ac018 fix leaking memory in cert_dump_blob
9dba44ddd4f5 fix possibly garbage value returned in cert_process_revoker
4462ff9dedfa add cram based unit tests
5fe64b5606aa cmake: split usign bits into static library
5d7626a2b6d8 cmake: reindent the file
e284ed941972 cmake: enable hardening compiler flags and fix the reported issues
7e5390666347 add initial GitLab CI support
fa0bf4ef45b1 cmake: add proper include and library dependencies

Signed-off-by: Petr Štetiar <ynezz@true.cz>
(cherry picked from commit 2544cb1ba377149a8663c7ac4a625d5399993e33)

4 years agoramips: mt7621: disable images for gehua_ghl-r-001
Petr Štetiar [Mon, 13 Jan 2020 16:52:46 +0000 (17:52 +0100)]
ramips: mt7621: disable images for gehua_ghl-r-001

This device OOPs during the boot due to broken flash. It can be probably
fixed with `broken-flash-reset` once ramips is on 4.19 kernel.

So disable images for this device until its fixed.

Ref: FS#2695, PR#2483
Signed-off-by: Petr Štetiar <ynezz@true.cz>
(cherry picked from commit 28080d54d217fb4ab112e079f69462fee695dbf8)

4 years agoramips: fix leds for TP-Link Archer C20 v4
Maxim Anisimov [Wed, 18 Dec 2019 06:48:38 +0000 (09:48 +0300)]
ramips: fix leds for TP-Link Archer C20 v4

- add "gpio" group for wan_orange led
- use tpt triggers for wifi led indication
- add wifi 5 GHz led support

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
[slight commit message adjustment, backport]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 3a538db60abfc50b47ce1774f66d489700a50c00)

4 years agoath79: add SUPPORTED_DEVICES for TP-Link TL-WR841N/ND v9 to v12
Adrian Schmutzler [Mon, 22 Jul 2019 15:42:39 +0000 (17:42 +0200)]
ath79: add SUPPORTED_DEVICES for TP-Link TL-WR841N/ND v9 to v12

In ar71xx, v10 and v12 did not have separate board_name.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 7ed643d2052381bdd0e9680ca964eb87700cbc5e)

4 years agoath79: add support for TP-Link TL-WR841N/ND v12
Adrian Schmutzler [Mon, 22 Jul 2019 15:36:48 +0000 (17:36 +0200)]
ath79: add support for TP-Link TL-WR841N/ND v12

This router has the same hardware as TP-LINK TL-WR841N/ND v11 (same
FCC ID, same TFTP image name...).

Flash instruction (WebUI):
Download *-factory.bin image and upload it via the firmwary upgrade
function of the stock firmware WebUI.

Flash instruction (TFTP):
1. Set PC to fixed ip address 192.168.0.66
2. Download *-factory.bin image and rename it to wr841nv11_tp_recovery.bin
   (it's really v11, not v12)
3. Start a tftp server with the image file in its root directory
4. Turn off the router
5. Press and hold Reset button
6. Turn on router with the reset button pressed and wait ~15 seconds
7. Release the reset button and after a short time
the firmware should be transferred from the tftp server
8. Wait ~30 second to complete recovery.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 8b76c6695b9274e3c12fdf80bcad7dc0c7202585)

4 years agoath79: add support for TP-Link TL-WR841N/ND v10
Adrian Schmutzler [Mon, 22 Jul 2019 15:34:08 +0000 (17:34 +0200)]
ath79: add support for TP-Link TL-WR841N/ND v10

The TL-WR841N/ND v10 is mostly identical to the v9. Apart from some minor
changes, it contains a newer revision of the QCA9533 SoC and the CPU clock
is significantly higher.

Flash instruction (WebUI):
Download *-factory.bin image and upload it via the firmwary upgrade
function of the stock firmware WebUI.

Flash instruction (TFTP):
1. Set PC to fixed ip address 192.168.0.66
2. Download *-factory.bin image and rename it to wr841nv10_tp_recovery.bin
3. Start a tftp server with the image file in its root directory
4. Turn off the router
5. Press and hold Reset button
6. Turn on router with the reset button pressed and wait ~15 seconds
7. Release the reset button and after a short time
the firmware should be transferred from the tftp server
8. Wait ~30 second to complete recovery.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 4254193c1dc27e18baeb7488ac7fd4ce1afc5723)

4 years agoath79: add support for the TP-LINK CPE220 V3
Andrew Cameron [Sat, 26 Oct 2019 01:29:36 +0000 (20:29 -0500)]
ath79: add support for the TP-LINK CPE220 V3

This adds support for a popular low-cost 2.4GHz N based AP

Specifications:
SoC: Qualcomm Atheros QCA9533 (650MHz)
RAM: 64MB
Storage: 8 MB SPI NOR
Wireless: 2.4GHz N based built into SoC 2x2
Ethernet: 2x 100/10 Mbps, integrated into SoC

Installation:
Flash factory image through stock firmware WEB UI
or through TFTP
To get to TFTP recovery just hold reset button while powering on for
around 4-5 seconds and release.
Rename factory image to recovery.bin
Stock TFTP server IP:192.168.0.100
Stock device TFTP adress:192.168.0.254

This also applies some minor changes to the common DTSI:
- use &wmac for label-mac-device, as this one is actually set up in
  common DTSI
- move &eth0 to parent DTSI
- fix several leading spaces, added/removed newlines

Signed-off-by: Andrew Cameron <apcameron@softhome.net>
[DTS style fixes/improvements, updated commit message/title,
backport to 19.07]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoethtool: fix PKG_CONFIG_DEPENDS
Matthias Schiffer [Tue, 7 Jan 2020 19:53:31 +0000 (20:53 +0100)]
ethtool: fix PKG_CONFIG_DEPENDS

Add missing CONFIG_ prefix.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
(cherry picked from commit 41c19dd542973dbc1336ecceaa32777506933cdf)

4 years agoOpenWrt v19.07.0: revert to branch defaults
Hauke Mehrtens [Mon, 6 Jan 2020 21:41:02 +0000 (22:41 +0100)]
OpenWrt v19.07.0: revert to branch defaults

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agoOpenWrt v19.07.0: adjust config defaults
Hauke Mehrtens [Mon, 6 Jan 2020 21:40:58 +0000 (22:40 +0100)]
OpenWrt v19.07.0: adjust config defaults

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agoramips: Fix sysupgrade for Xiaomi mir3g
Hauke Mehrtens [Mon, 6 Jan 2020 15:33:27 +0000 (16:33 +0100)]
ramips: Fix sysupgrade for Xiaomi mir3g

This mostly reverts the original commit e9929ebeeaef ("ramips: Fix
sysupgrade for Xiaomi mir3g") and replaces it with setting the
BOARD_NAME to the old value.

This way the folder in the tar will be named sysupgrade-mir3g and not
sysupgrade-xiaomi_mir3g and the sysupgrade in OpenWrt 18.06 can find it.

Without this change sysupgrade from 18.06 to 19.07 is only possible with
the -F option.

I tested the following sysupgrades successfully without -F
18.06 -> 19.07
19.07 -> master
master -> 19.07

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agodnsmasq: Fix potential dnsmasq crash with TCP
Hauke Mehrtens [Mon, 6 Jan 2020 15:21:25 +0000 (16:21 +0100)]
dnsmasq: Fix potential dnsmasq crash with TCP

This is a backport from the dnsmasq master which should fix a bug which
could cause a crash in dnsmasq.

I saw the following crashes in my log:
[522413.117215] do_page_fault(): sending SIGSEGV to dnsmasq for invalid read access from 2a001450
[522413.124464] epc = 004197f1 in dnsmasq[400000+23000]
[522413.129459] ra  = 004197ef in dnsmasq[400000+23000]
This is happening in blockdata_write() when block->next is
dereferenced, but I am not sure if this is related to this problem or if
this is a different problem. I am unable to reproduce this problem.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 414d0541381d432e69190f394dfe2a6e8122d6bb)

4 years agox86: fix missing led variable warning during boot
Petr Štetiar [Sun, 23 Jun 2019 13:18:43 +0000 (15:18 +0200)]
x86: fix missing led variable warning during boot

Fixes following warning during the boot:

 WARNING: Variable 'led' does not exist or is not an array/object

Signed-off-by: Petr Štetiar <ynezz@true.cz>
(cherry picked from commit 5816caad26ae294f0adb4ed07ed53dcba7277c33)

4 years agoca-certificates: provide ca-certs by both ca-certificates and ca-bundle
Maxim Storchak [Wed, 25 Dec 2019 15:46:27 +0000 (17:46 +0200)]
ca-certificates: provide ca-certs by both ca-certificates and ca-bundle

- both packages provide ca-certs
- make ca-bundle the default provider

This should allow easy transition between these two forms of CA certificates storage

Signed-off-by: Maxim Storchak <m.storchak@gmail.com>
(cherry picked from commit dd299805ad18472a8245b4524a25e4381e166057)

4 years agoramips: Fix sysupgrade for Xiaomi mir3g
Hauke Mehrtens [Sun, 5 Jan 2020 14:10:06 +0000 (15:10 +0100)]
ramips: Fix sysupgrade for Xiaomi mir3g

Without this change sysupgrade from 18.06 to 19.07 is only possible with
the -F option.
In OpenWrt 18.06 the nand_do_platform_check() function is called with
the board name mir3g only, if the tar does not use mir3g it will fail.
OpenWrt 19.07 and later support the metadata with the supported_devices
attribute to allow renaming. Do the renaming of the target between 19.07
and master like it is done for some other boards.

I tested the following sysupgrades successfully without -F
18.06 -> 19.07
19.07 -> master
master -> 19.07

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agoramips: remove duplicate dts nodes of MediaTek LinkIt Smart 7688
Jack Chen [Sun, 5 Jan 2020 16:43:57 +0000 (00:43 +0800)]
ramips: remove duplicate dts nodes of MediaTek LinkIt Smart 7688

There are two identical wmac nodes in the dts file of MediaTek
LinkIt Smart 7688, so delete one of them.

Signed-off-by: Jack Chen <redchenjs@live.com>
(cherry picked from commit 4be271a4867dcf57a122eeb7b42407e7a506915e)

4 years agopackage: remove accidentally added symlink
Petr Štetiar [Sun, 5 Jan 2020 17:38:01 +0000 (18:38 +0100)]
package: remove accidentally added symlink

In the commit f3439c401900 ("procd: update to version 2020-01-04") I've
somehow managed to add local testing symlink to the uledd package, so
removing it now.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
4 years agofstools: update to latest Git HEAD
Jo-Philipp Wich [Sun, 5 Jan 2020 17:40:22 +0000 (18:40 +0100)]
fstools: update to latest Git HEAD

823faa0 block: re-discover mtd devices on extroot mount retry

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 22a178e89282c7bd5bb181fc5c2c5cb6ff2403c8)

4 years agoprocd: update to version 2020-01-04
Petr Štetiar [Wed, 1 Jan 2020 11:43:45 +0000 (12:43 +0100)]
procd: update to version 2020-01-04

Contains following changes:

 a5af33ce9a16 instance: strdup string attributes
 d2e8bf6ef7cf system: watchdog_set: fix misleading indentation
 9814807bd71c system: sysupgrade: fix possibly misleading error
 c7a2db3c1eb6 system: sysupgrade: rework firmware validation
 ea45c4a0f07c system: fix failing image validation due to EINTR
 4fde95506243 cmake: fix lookup of external libraries
 5ed190aae1b3 jail: remove accidentally added lines
 52c5c1980ba3 jail: set user and group inside jail
 3aa051b44177 system: sysupgrade: close input side of pipe before reading
 f47622e89c4d instance: Warn about unexpected number of parameters
 564ecdfd9cc4 instance: ujail: Fix allocated size for no_new_privs parameter
 7fb2e1dfa221 procd: simplify code in procd_inittab_run
 4a127c3c60af procd: replace exit(-1) with exit(EXIT_FAILURE)
 bc0a73eaad58 procd: add upgraded binary to .gitignore
 ba4c4dbbbd65 procd: add start-console support
 3e39fe539490 procd: shift arguments for askfirst only once
 5d6282906baf procd: skip respawn in case device disappeared
 d27949f12fd7 procd: guard fork_worker calls
 258aa04328a2 procd: Add cached and available to memory table
 8e9fb51fa66e procd: Switch to nanosleep
 c844ace9729a system: Fix possible integer overflows

Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
4 years agoubus: update to version 2019-12-27
Petr Štetiar [Sat, 28 Dec 2019 07:00:47 +0000 (08:00 +0100)]
ubus: update to version 2019-12-27

Contains following changes:

 041c9d1c052b ubusd/libubus-io: fix socket descriptor passing
 8f2292478c57 ci: enable unit testing
 a1523d76b016 fix blob parsing vulnerability by using blob_parse_untrusted
 c60583743ccf ubus_monitor: workaround possibly false positive uses of memory after it is freed
 dac6c7c575ac ubusd_monitor: fix possible null pointer dereference
 060dfbb26da3 ubus_common: remove duplicate ARRAY_SIZE and add missing include
 c5f2053dfcfd workaround possibly false positive uses of memory after it is freed
 72be8e93f07d lua: ubus_lua_do_subscribe: fix copy&paste error
 a995b1e68129 lua: workaround false positive dereference of null pointer
 08f17c87a000 add fuzzer and cram based unit tests
 c413be9b376c refactor ubusd.c into reusable ubusd_library
 afd47189e864 examples: remove dead increments
 b2e544238672 add initial GitLab CI support
 058f4e9526ed libubus: fix incompatible pointer types assigment
 d2e026a33df8 iron out all extra compiler warnings
 5d7ca8309d0a ubusd/libubus-io: fix variable sized struct position warning
 d61282db5640 ubusd: fix comparison of integers of different signs
 90fb16234c22 cmake: enable extra compiler checks
 2e051f628996 ubus: Support static builds
 588baa3cd784 ubusd: retry sending messages on EINTR
 76ea27a62774 libubus: attempt to receive data before calling poll
 4daab27d004f libubus: do not abort recv_retry before completing a message

and bumps ABI_VERSION to 20191227.

Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
4 years agolibubox: update to version 2019-12-28
Petr Štetiar [Sat, 28 Dec 2019 20:22:04 +0000 (21:22 +0100)]
libubox: update to version 2019-12-28

Contains following changes:

 cd75136b1342 blobmsg: fix wrong payload len passed from blobmsg_check_array
 eb7eb6393d47 blobmsg: fix array out of bounds GCC 10 warning
 86f6a5b8d1f1 blobmsg: reuse blobmsg_namelen in blobmsg_data
 586ce031eaa0 tests: fuzz: fuzz _len variants of checking methods
 b0e21553ae8c blobmsg: add _len variants for all attribute checking methods
 cd3059796a57 Replace use of blobmsg_check_attr by blobmsg_check_attr_len
 143303149c8b Ensure blob_attr length check does not perform out of bounds reads
 f2b2ee441adb blobmsg: fix heap buffer overflow in blobmsg_parse
 4dfd24ed88c4 blobmsg: make blobmsg_len and blobmsg_data_len return unsigned value
 2df6d35e3299 tests: add test cases for blobmsg parsing
 8a34788b46c4 test: fuzz: add blobmsg_check_attr crashes
 478597b9f9ae blob: fix OOB access in blob_check_type
 325418a7a3c0 tests: use blob_parse_untrusted variant
 0b24e24b93e1 blob: introduce blob_parse_untrusted
 6d27336e4a8b blob: refactor attr parsing into separate function
 833d25797b16 test: fuzz: add blob_parse crashes
 09ee90f8d6ed tests: add test cases for blob parsing
 436d6363a10b tests: add libFuzzer based tests
 bf680707acfd tests: add unit tests covered with Clang sanitizers
 f804578847de cmake: add more hardening compiler flags
 46f8268b4b5b blobmsg/ulog: fix format string compiler warnings
 eb216a952407 cmake: use extra compiler warnings only on gcc6+
 07413cce72e1 tests: jshn: add more test cases
 26586dae43a8 jshn: fix missing usage for -p and -o arguments
 8e832a771d3a jshn: fix off by one in jshn_parse_file
 cb698e35409b jshn: jshn_parse: fix leaks of memory pointed to by 'obj'
 c42f11cc7c0f jshn: main: fix leak of memory pointed to by 'vars'
 93848ec96dc5 jshn: refactor main into smaller pieces
 9b6ede0e5312 avl: guard against theoretical null pointer dereference
 c008294a8323 blobmsg_json: fix possible uninitialized struct member
 0003ea9c45cc base64: fix possible null pointer dereference
 8baeeea1f52d add assert.h component
 b0a5cd8a28bf add cram based unit tests
 1fefb7c4d7f9 add initial GitLab CI support
 c955464d7a9b enable extra compiler checks
 6228df9de91d iron out all extra compiler warnings

and bumps ABI_VERSION to 20191228.

Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
4 years agobase-files: sysupgrade: exit if the firmware download failed
Petr Štetiar [Tue, 31 Dec 2019 09:34:29 +0000 (10:34 +0100)]
base-files: sysupgrade: exit if the firmware download failed

Sysupgrade process shouldn't continue if the firmware image couldn't be
downloaded.

Ref: http://lists.infradead.org/pipermail/openwrt-devel/2019-December/020940.html
Reported-by: Petr Novák <petrn@me.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
(cherry picked from commit cf3da66d2ce11a30ae2993b56276ade10c9bddb9)

4 years agobase-files: upgrade: add case to export_bootdevice
Klaus Kudielka [Sat, 17 Aug 2019 13:52:01 +0000 (15:52 +0200)]
base-files: upgrade: add case to export_bootdevice

The factory uboot of the Turris Omnia boots with "root=b301", and we
instruct new users to sysupgrade from there (e.g. method 1, step 7).
Currently, this will fail with "Unable to determine upgrade device".
Add a new case to export_bootdevice, which parses the hex argument.

Ref: https://github.com/openwrt/openwrt/pull/2340#issuecomment-561317688
Fixes: 2e5a0b81ec29 ("mvebu: sysupgrade: sdcard: keep user added partitons")
Reviewed-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Klaus Kudielka <klaus.kudielka@gmail.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
(cherry picked from commit 3a4f587c465a0531b820ca1a3e90eb05c4927b68)

4 years agosunxi: Turn on CONFIG_PINCTRL_SUN4I_A10 for A20
Florian Fainelli [Fri, 3 Jan 2020 22:58:58 +0000 (14:58 -0800)]
sunxi: Turn on CONFIG_PINCTRL_SUN4I_A10 for A20

CONFIG_PINCTRL_SUN4I_A10 controls both the A10 and the A20 enablong of
the pinctrl driver, this is necessary since upstream commit
5d8d349618a9464714c07414c5888bfd9416638f ("pinctrl: sunxi: add A20
support to A10 driver") which has been included in v4.13 and onwards.

Fixes: ad2b3bf310f7 ("sunxi: Add support for kernel 4.14")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
(cherry picked from commit 32e4eaef1b4c2a7fa44787813fdf715b2ba500d9)

4 years agowolfssl: bump to 4.3.0-stable
Eneas U de Queiroz [Thu, 26 Dec 2019 18:11:31 +0000 (15:11 -0300)]
wolfssl: bump to 4.3.0-stable

This update fixes many bugs, and six security vulnerabilities, including
CVE-2019-18840.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
(cherry picked from commit d5ede68f8b67f8fa2b4102b90e5dd3722172299a)

4 years agokernel: bump 4.14 to 4.14.162
Hauke Mehrtens [Sat, 4 Jan 2020 18:58:43 +0000 (19:58 +0100)]
kernel: bump 4.14 to 4.14.162

Refreshed all patches.

Compile-tested on: ipq40xx, ramips
Runtime-tested on: ipq40xx

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agokernel: bump 4.14 to 4.14.161
Hauke Mehrtens [Fri, 3 Jan 2020 23:36:43 +0000 (00:36 +0100)]
kernel: bump 4.14 to 4.14.161

Refreshed all patches.

Compile-tested on: ipq40xx, ramips
Runtime-tested on: ipq40xx

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agomt76: update to the latest openwrt-19.07 version
David Bauer [Sat, 4 Jan 2020 21:01:45 +0000 (22:01 +0100)]
mt76: update to the latest openwrt-19.07 version

8a78567 mt76: fix compilation warning in mt76_eeprom_override()

Signed-off-by: David Bauer <mail@david-bauer.net>
4 years agomt76: fix incorrect firmware path
David Bauer [Sat, 4 Jan 2020 10:56:36 +0000 (11:56 +0100)]
mt76: fix incorrect firmware path

The mt76 driver does load the firmware for the MT7615 chip from
/lib/firmware/mediatek instead of /lib/firmware. The driver loads the
firmware from this path since mt76 commit
ea3ab68c7589 ("mt76: mt7615: fix mt7615 firmware path definitions").

Fixes: a2e2c40b5ebd ("mt76: update to the latest openwrt-19.07 version")
Reported-by: Stijn Segers <foss@volatilesystems.org>
Signed-off-by: David Bauer <mail@david-bauer.net>
Tested-by: Stijn Segers <foss@volatilesystems.org>
4 years agoramips: fix Archer C20i wireless MAC address
David Bauer [Thu, 2 Jan 2020 18:27:54 +0000 (19:27 +0100)]
ramips: fix Archer C20i wireless MAC address

The TP-Link Archer C20i previously had a generic Ralink MAC address set
for both radios, as the caldata does only contain a generic MAC address.

Set the MAC address from the vendor firmware for both radios to assign
unique MAC addresses to every device.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 3b013dcdf8d8aa0e3601e3aac30342318025e32a)

4 years agoramips: fix Archer C2 v1 5GHz MAC address
David Bauer [Thu, 2 Jan 2020 18:25:26 +0000 (19:25 +0100)]
ramips: fix Archer C2 v1 5GHz MAC address

The TP-Link Archer C2 v1 previously had a generic Ralink MAC address set
for the 5GHz radio (MT7610), as the caldata does only contain a generic
MAC address.

Set the MAC address from the vendor firmware for the 5GHz radio to
assign unique MAC addresses to every device.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit dcc923a4c45b48fcbef4f3964f74fbcaabad335e)

4 years agoramips: add system LED indicators for TP-Link C20i
David Bauer [Thu, 2 Jan 2020 18:10:50 +0000 (19:10 +0100)]
ramips: add system LED indicators for TP-Link C20i

Use the WPS LED to indicate system status like it is done for the
TP-Link Archer C2 v1 and many other boards.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit a272fafc9c507820cc62aa12464588bac45f250a)

4 years agoramips: convert TP-Link MT7620 boards to tpt trigger
David Bauer [Thu, 2 Jan 2020 02:11:39 +0000 (03:11 +0100)]
ramips: convert TP-Link MT7620 boards to tpt trigger

This converts all MediaTek MT7620 boards from TP-Link to use the now
supported WiFi throughput LED trigger. This way, the LED state now
covers all VAPs regardless of their name.

Also align all single-WiFi LEDs to represent the state of the 2.4GHz
radio. This was not always the case previously, as later-added support
for the MT7610 altered the phy probing order.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 1e7c6381f0058e49caab8de54eaad4862732f95d)

4 years agomt76: update to the latest openwrt-19.07 version
David Bauer [Fri, 3 Jan 2020 16:50:57 +0000 (17:50 +0100)]
mt76: update to the latest openwrt-19.07 version

330e832 mt76: mt76x0: fix default mac address overwrite
f97c33e mt76: mt7603: fix input validation issues for powersave-filtered frames
875f6d7 mt76: mt7615: increase MCU command timeout
abd7d86 mt76: clear skb pointers from rx aggregation reorder buffer during cleanup
96c7b07 mt76: eeprom: add support for big endian eeprom partition
19c8e20 mt76: fix possible undetected invalid MAC address
df64c56 mt76: Off by one in mt76_calc_rx_airtime()
1702b24 mt76: mt7603: reset STA_CCA counter setting the channel
383a631 mt76: mt76x0u: do not reset radio on resume
2dcfbdd mt76: disable bh in mt76_dma_rx_poll
947d20d mt76: fix rx dma ring descriptor state on reset
f3348f5 mt7615: replace sta_state callback with sta_add/sta_remove
faf5e6f mt76: mt7615: read {tx,rx} mask from eeprom
db78ee0 mt76: move mt76_get_antenna in mt76_core module
7121e16 mt76: fix possible out-of-bound access in mt7615_fill_txs/mt7603_fill_txs
5dfb0ec mt76: mt7615: disable radar pattern detector during scanning
e2f90ad mt76: move interface_modes definition in mt76_core module
cfdb751 mt76: mt7615: add ibss support
e0731a8 mt76: move SUPPORTS_REORDERING_BUFFER hw property in mt76_register_device
a85c06c mt76: use mt76_dev in mt76_is_{mmio,usb}
ea19cd7 mt76: Remove set but not used variable 'idx'
3cbaf81 mt76: mt76u: rely on a dedicated stats workqueue
20f0589 mt76: mt76u: rely on usb_interface instead of usb_dev
f2be00b mt76: dma: fix buffer unmap with non-linear skbs
c14d656 mt76: mt76x2e: disable pcie_aspm by default
58e1e96 mt76: mt7615: remove unneeded semicolon
c93a2d1 mt76: mt76x02u: update ewma pkt len in mt76x02u_tx_prepare_skb
1987b74 mt76: mt76x0: remove 350ms delay in mt76x0_phy_calibrate
50b1e9b mt76: refactor cc_lock locking scheme
d868638 mt76: remove obsolete .add_buf() from struct mt76_queue_ops
dc14ac6 mt7615: remove vif sta from poll list on interface remove
2a0a191 mt7603: remove vif sta from poll list on interface remove
d3a5895 mt76: fix a-mpdu boundary detection issue for airtime reporting
391e148 mt76: add sanity check for a-mpdu rx wcid index
01642d8 mt76: mt76x02: fix use-after-free in tx status code handling airtime
c11a4ad mt76: mt76x0: eeprom: add support for MAC address from OF
d94cc81 mt76: drop rcu read lock in mt76_rx_aggr_stop
7d8764d mt76: avoid enabling interrupt if NAPI poll is still pending
5b02a07 mt76: add missing locking around ampdu action
71c2ef0 mt76: fix aggregation stop issue
6f7d0f5 mt76: fix use-after-free bug in airtime fairness code
8f22de0 mt76: do not use devm API for led classdev
e7199f9 mt76: enable airtime fairness
81f2be0 mt76: mt7615: track tx/rx airtime for airtime fairness
2579122 mt76: mt7615: introduce mt7615_mac_wtbl_update routine
d91f7c1 mt76: mt7615: fix survey channel busy time
028071d mt76: mt7615: report tx_time, bss_rx and busy time to mac80211
0e5050e mt76: mt76x02: track approximate tx airtime for airtime fairness and survey
3429cc7 mt76: mt76x02: move MT_CH_TIME_CFG init to mt76x02_mac_cc_reset
de118bb mt76: unify channel survey update code
fdf0163 mt76: mt7603: switch to a different counter for survey busy time
ee31030 mt76: mt7603: track tx airtime for airtime fairness and survey
f34b1ae mt76: track rx airtime for airtime fairness and survey
a1d6891 mt76: store current channel survey_state in struct mt76_dev
b042987 mt76: rename mt76_driver_ops txwi_flags to drv_flags and include tx aligned4
2027763 mt76: report rx a-mpdu subframe status
1ddcadb mt76: mt7603: remove q_rx field from struct mt7603_dev
ea3ab68 mt76: mt7615: fix mt7615 firmware path definitions
081926a mt76: mt7603: collect aggregation stats
696c0fc mt76: mt7615: collect aggregation stats
23e8aed mt76: move aggr_stats array in mt76_dev
1118b5e mt76: mt7615: add queue entry in debugfs
fbc59e6 mt76: move queue debugfs entry to driver specific code
0b01ace mt76: mt76x02u: move mt76x02u_mac_start in mt76x02-usb module
c394887 mt76: mt76x0u: reset counter starting the device
0355b7a mt76: mt76x2: move mt76x02_mac_reset_counters in mt76x02_mac_start
f3792b5 mt76: mt76x02: move mac_reset_counter in mt76x02_lib module
63e8152 mt76: mt7615: enable SCS by default
b140512 mt76: mt76x0e: make array mt76x0_chan_map static const, makes object smaller
a20c20b mt76: usb: add lockdep_assert_held in __mt76u_vendor_request
0308d75 mt76: remove empty flag in mt76_txq_schedule_list
0efbc5d mt76: use cancel_delayed_work_sync in mt76_rx_aggr_shutdown
9c5df3c mt76: remove aggr_work field from struct mt76_wcid
8739f87 mt76: mt7615: fix control frame rx in monitor mode
e07407a mt7603: fix build with CONFIG_KERNEL_DYNAMIC_DEBUG=y
c7f8214 mt76: mt7615: add support to read temperature from mcu
6797378 mt76: mt7615: introduce mt7615_txwi_to_txp utility routine
496c78e mt76: mt76x0: remove unneeded return value on set channel
1d2acd5 mt76: mt76x0: remove redundant chandef copy
0167bfa mt76: make mt76_rx_convert static

Signed-off-by: David Bauer <mail@david-bauer.net>
4 years agoramips: fix inverted reset button for Ravpower WD03
Moritz Warning [Tue, 3 Dec 2019 22:36:13 +0000 (23:36 +0100)]
ramips: fix inverted reset button for Ravpower WD03

The button events "pressed" and "released" were switched. Tested with v18.06.4.

Signed-off-by: Moritz Warning <moritzwarning@web.de>
(cherry picked from commit 3e1325b219fced91f01d5594503f61d326a93b90)

4 years agoramips: add LED trigger for TL-WR902AC v3 WAN LED
David Bauer [Mon, 30 Dec 2019 14:06:42 +0000 (15:06 +0100)]
ramips: add LED trigger for TL-WR902AC v3 WAN LED

This adds an LED trigger for the WAN LED on top of the TP-Link
TL-WR902AC v3. Currently, only the LED on the port itself shows the link
state, while the LED on top of the device stays dark.

The WAN port of the device is a hybrid LAN/WAN one, hence why the LED at
the port was labled LAN.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit c48b571ad708b9f66efb0c2942291c2d8f1d7780)

4 years agort2x00: add throughput LED trigger
David Bauer [Mon, 30 Dec 2019 00:52:59 +0000 (01:52 +0100)]
rt2x00: add throughput LED trigger

This adds a (currently missing) throughput LED trigger for the rt2x00
driver. Previously, LED triggers had to be assigned to the netdev, which
was limited to a single VAP.

Signed-off-by: David Bauer <mail@david-bauer.net>
Tested-by: Christoph Krapp <achterin@googlemail.com>
(cherry picked from commit 985ec835aea100e9245baaef8ebb15628601fe5e)

4 years agomac80211: fix build without CONFIG_PCI
Felix Fietkau [Tue, 5 Nov 2019 13:21:31 +0000 (14:21 +0100)]
mac80211: fix build without CONFIG_PCI

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry-picked from commit fa37dbbc43db23a0ce7256f47943f38a1dcc9027)

4 years agomac80211: add patch to include local BSS rx time in survey information
Felix Fietkau [Wed, 28 Aug 2019 14:25:22 +0000 (16:25 +0200)]
mac80211: add patch to include local BSS rx time in survey information

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry-picked from commit 6a3739dc42c1d9626e5784d9316c56962bd8f016)

4 years agomac80211: add pcie apsm backport changes
Felix Fietkau [Mon, 28 Oct 2019 15:02:32 +0000 (16:02 +0100)]
mac80211: add pcie apsm backport changes

Required for newer versions of mt76

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry-picked from commit d64daf7026ce47788f12130462a3107bdab8718f)

4 years agoramips: remove bogus ralink,mtd-eeprom with offset 0x4
Adrian Schmutzler [Sun, 22 Dec 2019 15:51:19 +0000 (16:51 +0100)]
ramips: remove bogus ralink,mtd-eeprom with offset 0x4

Several devices in mt76x8 subtarget use the following line to set
up wmac in their DTS(I) files:

ralink,mtd-eeprom = <&factory 0x4>

This is strange for several reasons:
- They should use mediatek,mtd-eeprom on this SOC
- The caldata is supposed to start at 0x0
- The parent DTSI mt7628an.dtsi specifies mediatek,mtd-eeprom anyway,
  starting from 0x0
- The offset coincides with the default location of the MAC address
  in caldata

Based on the comment in b28e94d4bfa1 ("ramips: MiWiFi Nano fixes"),
it looks like the author for this device wanted to actually use
mtd-mac-address instead of ralink,mtd-eeprom. A check on the same
device revealed that actually the MAC address start at offset 4 there,
so the correct caldata offset is 0x0.

Based on these findings, and the fact that the expected location on
this SOC is 0x0, we remove the "ralink,mtd-eeprom = <&factory 0x4>"
statement from all devices in ramips (being only mt7628an anyway).

Thanks to Sungbo Eo for finding and researching this.

Reported-by: Sungbo Eo <mans0n@gorani.run>
Fixes: b28e94d4bfa1 ("ramips: MiWiFi Nano fixes")
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 09d38a3bc328d122b0d84fcf6bb53d2bce7373b6)

4 years agoipq40xx: use ath10k-ct-smallbuffers for 128 MiB devices
Paul Fertser [Tue, 24 Dec 2019 17:49:10 +0000 (20:49 +0300)]
ipq40xx: use ath10k-ct-smallbuffers for 128 MiB devices

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
(cherry picked from commit 0b7d779dcfc57507ab1d06ce6f1052d25e9de017)

4 years agokernel: bump 4.14 to 4.14.160
Hauke Mehrtens [Tue, 24 Dec 2019 13:36:38 +0000 (14:36 +0100)]
kernel: bump 4.14 to 4.14.160

Refreshed all patches.

Compile-tested on: ipq40xx, ath79
Runtime-tested on: ipq40xx

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agokernel: bump 4.14 to 4.14.159
Koen Vandeputte [Wed, 18 Dec 2019 15:39:42 +0000 (16:39 +0100)]
kernel: bump 4.14 to 4.14.159

Refreshed all patches.

Remove upstreamed:
- 302-0002-dmaengine-dw-implement-per-channel-protection-contro.patch

Fixes:
- CVE-2019-19332

Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agoath79: use ath10k-ct-smallbuffers for 64 MiB devices
Paul Fertser [Tue, 24 Dec 2019 12:04:26 +0000 (15:04 +0300)]
ath79: use ath10k-ct-smallbuffers for 64 MiB devices

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
4 years agoath10k-firmware: Add kmod-ath10k-ct-smallbuffers to depends
Hauke Mehrtens [Mon, 23 Dec 2019 23:46:51 +0000 (00:46 +0100)]
ath10k-firmware: Add kmod-ath10k-ct-smallbuffers to depends

Only select ath10k-ct-regular when smallbuffers version was not
selected.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 80f06cb601160534f20e61d476dcedba77d5a47d)

4 years agokernel: ath10k-ct: provide a build variant for small RAM devices
Paul Fertser [Sun, 22 Dec 2019 18:20:57 +0000 (21:20 +0300)]
kernel: ath10k-ct: provide a build variant for small RAM devices

According to many bugreports [0][1][2] the default ath10k-ct kernel
module is unusable on devices with just 64 MiB RAM or with 128 MiB and
dual ath10k cards. The target boards boot but eventually oom-killer
starts to interfere with normal operation, so the current state is
effectively broken.

Since the two patches in question have a performance impact (and
possibly some other unexpected side-effects) a dedicated build variant
is added so that users of the low RAM devices can still benefit from all
the ath10k-ct advantages.

According to testing [3] results, the issue can be experienced even with
"a 256MB device with three radios". Measured performance impact of
implementing small buffers was lowering "the maximum 5 GHz throughput on
an IPQ40xx device without RPS/XPS optimizations from 494/432 Mbit/s for
TCP transfers (download/upload) to 438/343 Mbit/s"

The patches were apparently inspired by QSDK tweaks used by ODMs for the
affected devices.

[0] http://lists.infradead.org/pipermail/openwrt-devel/2019-December/020573.html
[1] https://github.com/openwrt/openwrt/pull/1077
[2] https://bugs.openwrt.org/index.php?do=details&task_id=2664
[3] https://github.com/freifunk-gluon/gluon/pull/1440#issue-195607701

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
[Remove double CONFIG_ATH10K-CT_LEDS entry]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 1ac627024de916eb157659caf49f93fa89d3b19a)

4 years agofstools: update to latest git HEAD
Jo-Philipp Wich [Sun, 22 Dec 2019 20:30:02 +0000 (21:30 +0100)]
fstools: update to latest git HEAD

b4e25d5 libblkid-tiny: fix symbol collision with full libblkid

Fixes: FS#2691, FS#2692
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 5f4244150f99d7bf72a96ec4d9c1055386e66b53)

4 years agofstools: update to latest git HEAD
Rafał Miłecki [Fri, 20 Dec 2019 07:19:02 +0000 (08:19 +0100)]
fstools: update to latest git HEAD

111a43f libblkid-tiny: vfat: Change parsing label in special cases
f43a1aa libblkid-tiny: vfat: Fix reading labels which starts with byte 0x05
157924d libblkid-tiny: add blkid_probe_set_id_label() stub
0c5761f libblkid-tiny: use separated buffer for each block device read
b82c5c1 libblkid-tiny: add functions for allocating & freeing probe struct
12851d6 blockd: don't flush devices list on "hotplug" call
5ea47fe blockd: fix vlist memory corruption

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 4ebc9dc9c4faf8d9abc4197a74b892a66d9c1bcb)

4 years agofstools: bump to version 2019-11-03
Yousong Zhou [Sun, 3 Nov 2019 02:18:33 +0000 (02:18 +0000)]
fstools: bump to version 2019-11-03

2f2a09a block: mount_device: err log only when mp deviates from spec
da4edc1 block: mount_device: skip extroot earlier
32c3126 block: mount_action: handle mount/umount deps
fb0700f block: support hierarchical mount/umount
1212b5b block: umount: skip / unless -a is given
eda8b3f block: use fsck.fat instead of dosfsck
d05276d libblkid-tiny: ntfs: fix use-after-free

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
(cherry picked from commit e4af39d56395738d86daa4babb379ab605b4d277)