Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
commit
c0fe9c7188
@ -43,7 +43,9 @@ else
|
||||
rmdir $(LINUX_DIR); \
|
||||
fi
|
||||
ln -s $(CONFIG_EXTERNAL_KERNEL_TREE) $(LINUX_DIR)
|
||||
$(_SINGLE) [ -d $(LINUX_DIR)/user_headers ] && rm -rf $(LINUX_DIR)/user_headers
|
||||
if [ -d $(LINUX_DIR)/user_headers ]; then \
|
||||
rm -rf $(LINUX_DIR)/user_headers; \
|
||||
fi
|
||||
endef
|
||||
endif
|
||||
|
||||
|
||||
@ -6,11 +6,11 @@ ifdef CONFIG_TESTING_KERNEL
|
||||
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
||||
endif
|
||||
|
||||
LINUX_VERSION-5.4 = .117
|
||||
LINUX_VERSION-5.10 = .37
|
||||
LINUX_VERSION-5.4 = .121
|
||||
LINUX_VERSION-5.10 = .39
|
||||
|
||||
LINUX_KERNEL_HASH-5.4.117 = 4e989b5775830092e5c76b5cca65ebff862ad0c87d0b58c3a20d415c3d4ec770
|
||||
LINUX_KERNEL_HASH-5.10.37 = a8d5e3309dafc484eb70f94747a6efffa29a79bae651ae126333e913c00be077
|
||||
LINUX_KERNEL_HASH-5.4.121 = 9d9327fca397e114bcc59d69fa5ae1ac8bac76b170ed811d1b1645df7456375f
|
||||
LINUX_KERNEL_HASH-5.10.39 = 5738a515ca97853481767360c568eae46c8d777d98a69e018a3299baa6b3f614
|
||||
|
||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||
|
||||
@ -31,7 +31,7 @@ $(eval $(call SetupHostCommand,gcc, \
|
||||
gcc --version | grep -E 'Apple.(LLVM|clang)' ))
|
||||
|
||||
$(eval $(call TestHostCommand,working-gcc, \
|
||||
\nPlease reinstall the GNU C Compiler (6 or later) - \
|
||||
Please reinstall the GNU C Compiler (6 or later) - \
|
||||
it appears to be broken, \
|
||||
echo 'int main(int argc, char **argv) { return 0; }' | \
|
||||
gcc -x c -o $(TMP_DIR)/a.out -))
|
||||
@ -43,7 +43,7 @@ $(eval $(call SetupHostCommand,g++, \
|
||||
g++ --version | grep -E 'Apple.(LLVM|clang)' ))
|
||||
|
||||
$(eval $(call TestHostCommand,working-g++, \
|
||||
\nPlease reinstall the GNU C++ Compiler (4.8 or later) - \
|
||||
Please reinstall the GNU C++ Compiler (6 or later) - \
|
||||
it appears to be broken, \
|
||||
echo 'int main(int argc, char **argv) { return 0; }' | \
|
||||
g++ -x c++ -o $(TMP_DIR)/a.out - -lstdc++ && \
|
||||
|
||||
@ -109,23 +109,26 @@ generate_network() {
|
||||
ports="$ifname"
|
||||
}
|
||||
|
||||
[ -n "$ports" ] && {
|
||||
[ -n "$ports" -a -z "$bridge" ] && {
|
||||
uci -q batch <<-EOF
|
||||
add network device
|
||||
set network.@device[-1].name='br-$1'
|
||||
set network.@device[-1].type='bridge'
|
||||
set network.@device[-1].macaddr='$macaddr'
|
||||
EOF
|
||||
for port in $ports; do uci add_list network.@device[-1].ports="$port"; done
|
||||
ifname=br-$1
|
||||
type=
|
||||
macaddr=""
|
||||
}
|
||||
|
||||
[ -n "$bridge" ] && {
|
||||
[ -z "$ports" ] && ports="$ifname"
|
||||
if [ -z "$vlan" ]; then
|
||||
bridge_vlan_id=$((bridge_vlan_id + 1))
|
||||
vlan=$bridge_vlan_id
|
||||
fi
|
||||
generate_bridge_vlan $1 $bridge "$ifname" $vlan
|
||||
generate_bridge_vlan $1 $bridge "$ports" $vlan
|
||||
ifname=$bridge.$vlan
|
||||
type=""
|
||||
}
|
||||
|
||||
@ -1,23 +0,0 @@
|
||||
. /lib/functions.sh
|
||||
|
||||
migrate_ports() {
|
||||
local config="$1"
|
||||
local type ports ifname
|
||||
|
||||
config_get type "$config" type
|
||||
[ "$type" != "bridge" ] && return
|
||||
|
||||
config_get ports "$config" ports
|
||||
[ -n "$ports" ] && return
|
||||
|
||||
config_get ifname "$config" ifname
|
||||
[ -z "$ifname" ] && return
|
||||
|
||||
for port in $ifname; do uci add_list network.$config.ports="$port"; done
|
||||
uci delete network.$config.ifname
|
||||
}
|
||||
|
||||
config_load network
|
||||
config_foreach migrate_ports device
|
||||
|
||||
exit 1
|
||||
@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||
PKG_NAME:=grub
|
||||
PKG_CPE_ID:=cpe:/a:gnu:grub2
|
||||
PKG_VERSION:=2.06~rc1
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=https://alpha.gnu.org/gnu/grub
|
||||
@ -65,6 +65,7 @@ CONFIGURE_ARGS += \
|
||||
--disable-nls \
|
||||
--disable-device-mapper \
|
||||
--disable-libzfs \
|
||||
--disable-liblzma \
|
||||
--disable-grub-mkfont \
|
||||
--with-platform=$(BUILD_VARIANT)
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=kexec-tools
|
||||
PKG_VERSION:=2.0.21
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/utils/kernel/kexec
|
||||
|
||||
@ -0,0 +1,52 @@
|
||||
From 9817ec81968a5eec7863902833fb77680544eae4 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Egorenkov <egorenar-dev@posteo.net>
|
||||
Date: Mon, 12 Apr 2021 13:18:05 +0200
|
||||
Subject: [PATCH 1/1] arm: do not copy magic 4 bytes of appended DTB in zImage
|
||||
|
||||
If the passed zImage happens to have a DTB appended, then the magic 4 bytes
|
||||
of the DTB are copied together with the kernel image. This leads to
|
||||
failed kexec boots because the decompressor finds the aforementioned
|
||||
DTB magic and falsely tries to replace the DTB passed in the register r2
|
||||
with the non-existent appended one.
|
||||
|
||||
Signed-off-by: Alexander Egorenkov <egorenar-dev@posteo.net>
|
||||
Signed-off-by: Simon Horman <horms@verge.net.au>
|
||||
---
|
||||
kexec/arch/arm/kexec-zImage-arm.c | 12 +++++++++++-
|
||||
1 file changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/kexec/arch/arm/kexec-zImage-arm.c
|
||||
+++ b/kexec/arch/arm/kexec-zImage-arm.c
|
||||
@@ -382,6 +382,7 @@ int zImage_arm_load(int argc, char **arg
|
||||
unsigned int atag_offset = 0x1000; /* 4k offset from memory start */
|
||||
unsigned int extra_size = 0x8000; /* TEXT_OFFSET */
|
||||
const struct zimage_tag *tag;
|
||||
+ size_t kernel_buf_size;
|
||||
size_t kernel_mem_size;
|
||||
const char *command_line;
|
||||
char *modified_cmdline = NULL;
|
||||
@@ -538,6 +539,15 @@ int zImage_arm_load(int argc, char **arg
|
||||
}
|
||||
|
||||
/*
|
||||
+ * Save the length of the compressed kernel image w/o the appended DTB.
|
||||
+ * This will be required later on when the kernel image contained
|
||||
+ * in the zImage will be loaded into a kernel memory segment.
|
||||
+ * And we want to load ONLY the compressed kernel image from the zImage
|
||||
+ * and discard the appended DTB.
|
||||
+ */
|
||||
+ kernel_buf_size = len;
|
||||
+
|
||||
+ /*
|
||||
* Always extend the zImage by four bytes to ensure that an appended
|
||||
* DTB image always sees an initialised value after _edata.
|
||||
*/
|
||||
@@ -759,7 +769,7 @@ int zImage_arm_load(int argc, char **arg
|
||||
add_segment(info, dtb_buf, dtb_length, dtb_offset, dtb_length);
|
||||
}
|
||||
|
||||
- add_segment(info, buf, len, kernel_base, kernel_mem_size);
|
||||
+ add_segment(info, buf, kernel_buf_size, kernel_base, kernel_mem_size);
|
||||
|
||||
info->entry = (void*)kernel_base;
|
||||
|
||||
@ -73,9 +73,13 @@ define Package/uboot-envtools/install
|
||||
$(INSTALL_DIR) $(1)/lib
|
||||
$(INSTALL_DATA) ./files/uboot-envtools.sh $(1)/lib
|
||||
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
||||
$(if $(wildcard ./files/$(BOARD)), \
|
||||
$(INSTALL_DATA) ./files/$(BOARD) \
|
||||
$(1)/etc/uci-defaults/30_uboot-envtools \
|
||||
$(if $(wildcard ./files/$(BOARD)_$(SUBTARGET)), \
|
||||
$(INSTALL_DATA) ./files/$(BOARD)_$(SUBTARGET) \
|
||||
$(1)/etc/uci-defaults/30_uboot-envtools, \
|
||||
$(if $(wildcard ./files/$(BOARD)), \
|
||||
$(INSTALL_DATA) ./files/$(BOARD) \
|
||||
$(1)/etc/uci-defaults/30_uboot-envtools \
|
||||
) \
|
||||
)
|
||||
endef
|
||||
|
||||
|
||||
@ -24,20 +24,19 @@ define U-Boot/apalis_imx6
|
||||
NAME:=Toradex Apalis
|
||||
UBOOT_IMAGE:=SPL u-boot.img u-boot-with-spl.imx
|
||||
UBOOT_MAKE_FLAGS:=SPL u-boot.img u-boot-with-spl.imx
|
||||
BUILD_DEVICES:=apalis
|
||||
BUILD_DEVICES:=toradex_apalis
|
||||
endef
|
||||
|
||||
define U-Boot/mx6cuboxi
|
||||
NAME:=SolidRun Cubox-i boards
|
||||
UBOOT_IMAGE:=SPL u-boot.img
|
||||
UBOOT_MAKE_FLAGS:=SPL u-boot.img
|
||||
BUILD_DEVICES:=cubox-i
|
||||
HIDDEN:=1
|
||||
BUILD_DEVICES:=solidrun_cubox-i
|
||||
endef
|
||||
|
||||
define U-Boot/wandboard
|
||||
NAME:=Wandboard Dual Lite/Quad/Solo
|
||||
BUILD_DEVICES:=wandboard
|
||||
BUILD_DEVICES:=wandboard_dual
|
||||
endef
|
||||
|
||||
UBOOT_TARGETS := \
|
||||
|
||||
@ -8,13 +8,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=binutils
|
||||
PKG_VERSION:=2.35.1
|
||||
PKG_RELEASE:=2
|
||||
PKG_VERSION:=2.35.2
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_URL:=@GNU/binutils
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_VERSION:=$(PKG_VERSION)
|
||||
PKG_HASH:=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
|
||||
PKG_HASH:=dcd5b0416e7b0a9b24bed76cd8c6c132526805761863150a26d016415b8bdc7b
|
||||
|
||||
PKG_FIXUP:=autoreconf
|
||||
PKG_LIBTOOL_PATHS:=. gas bfd opcodes gprof binutils ld libiberty gold intl
|
||||
|
||||
@ -18,6 +18,8 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-3.$(PKG_VERSION).$(PKG_RELEASE)
|
||||
|
||||
PKG_LICENSE_FILE:=LICENSE.amd-ucode
|
||||
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/amd64-microcode
|
||||
|
||||
@ -18,6 +18,8 @@ PKG_SOURCE_URL:=https://github.com/openwrt/cypress-nvram.git
|
||||
|
||||
PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/cypress-nvram-default
|
||||
|
||||
@ -24,6 +24,8 @@ else
|
||||
MICROCODE:="intel-microcode"
|
||||
endif
|
||||
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/intel-microcode
|
||||
|
||||
@ -16,6 +16,8 @@ PKG_SOURCE_URL:=https://github.com/NXP/qoriq-fm-ucode.git
|
||||
PKG_SOURCE_VERSION:=c275e91392e2adab1ed22f3867b8269ca3c54014
|
||||
PKG_MIRROR_HASH:=90b619ed501462b92f34f2fabfa09d6aaa5235990891d1c3132821c7d18a39bd
|
||||
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/layerscape-fman
|
||||
|
||||
@ -18,6 +18,8 @@ PKG_BUILD_DEPENDS:=tfa-layerscape/host
|
||||
PKG_LICENSE:=EULA
|
||||
PKG_LICENSE_FILES:=NXP-Binary-EULA.txt
|
||||
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/layerscape-ddr-phy
|
||||
|
||||
@ -16,6 +16,8 @@ PKG_SOURCE_URL:=https://source.codeaurora.org/external/qoriq/qoriq-components/mc
|
||||
PKG_SOURCE_VERSION:=8672a5f5abcd3a354dcab07e03f2a8a69b2e962d
|
||||
PKG_MIRROR_HASH:=4b8ad3148aee1e0c034206543472aebb435655fd03a661c4c1be545dcac7ddf0
|
||||
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
|
||||
@ -16,6 +16,8 @@ PKG_SOURCE_URL:=https://github.com/NXP/qoriq-mc-binary.git
|
||||
PKG_SOURCE_VERSION:=f73683596a7b72124d67b62e64f3dc2bb36b9321
|
||||
PKG_MIRROR_HASH:=1cba30c2a6814763c3e155c1cc5fa21998bb6ad5814fcb09e99f98bf36f65d9e
|
||||
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/layerscape-mc
|
||||
|
||||
@ -16,6 +16,8 @@ PKG_SOURCE_URL:=https://source.codeaurora.org/external/qoriq/qoriq-components/rc
|
||||
PKG_SOURCE_VERSION:=e0fab6d9b61003caef577f7474c2fac61e6ba2ff
|
||||
PKG_MIRROR_HASH:=b6bc66e27b7c6db31101fdc2e6be7255181861bd38d8f25eb5eb80c468983eb2
|
||||
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/layerscape-rcw
|
||||
|
||||
@ -16,6 +16,8 @@ PKG_SOURCE_URL:=https://github.com/NXP/qoriq-engine-pfe-bin.git
|
||||
PKG_SOURCE_VERSION:=d3a8ef0760c54ddc243039c86389497e37be90ab
|
||||
PKG_MIRROR_HASH:=64be93b8249d298e7b5fd0846787835f0659b6ab6c55b40b809366c79e272eb8
|
||||
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
RSTRIP:=:
|
||||
|
||||
@ -346,7 +346,7 @@ $(eval $(call KernelPackage,crypto-hw-ccp))
|
||||
|
||||
define KernelPackage/crypto-hw-geode
|
||||
TITLE:=AMD Geode hardware crypto module
|
||||
DEPENDS:=+kmod-crypto-manager
|
||||
DEPENDS:=@TARGET_x86_geode +kmod-crypto-manager
|
||||
KCONFIG:= \
|
||||
CONFIG_CRYPTO_HW=y \
|
||||
CONFIG_CRYPTO_DEV_GEODE
|
||||
@ -420,7 +420,8 @@ $(eval $(call KernelPackage,crypto-hw-safexcel))
|
||||
|
||||
define KernelPackage/crypto-hw-talitos
|
||||
TITLE:=Freescale integrated security engine (SEC) driver
|
||||
DEPENDS:=+kmod-crypto-manager +kmod-crypto-hash +kmod-random-core +kmod-crypto-authenc +kmod-crypto-des
|
||||
DEPENDS:=@(TARGET_mpc85xx||TARGET_layerscape) +kmod-crypto-manager \
|
||||
+kmod-crypto-hash +kmod-random-core +kmod-crypto-authenc +kmod-crypto-des
|
||||
KCONFIG:= \
|
||||
CONFIG_CRYPTO_HW=y \
|
||||
CONFIG_CRYPTO_DEV_TALITOS \
|
||||
@ -600,7 +601,7 @@ $(eval $(call KernelPackage,crypto-lib-poly1305))
|
||||
|
||||
define KernelPackage/crypto-manager
|
||||
TITLE:=CryptoAPI algorithm manager
|
||||
DEPENDS:=+kmod-crypto-aead +kmod-crypto-hash +kmod-crypto-pcompress
|
||||
DEPENDS:=+kmod-crypto-aead +kmod-crypto-hash
|
||||
KCONFIG:= \
|
||||
CONFIG_CRYPTO_MANAGER \
|
||||
CONFIG_CRYPTO_MANAGER2
|
||||
@ -770,19 +771,6 @@ endef
|
||||
$(eval $(call KernelPackage,crypto-pcbc))
|
||||
|
||||
|
||||
define KernelPackage/crypto-pcompress
|
||||
TITLE:=CryptoAPI Partial (de)compression operations
|
||||
KCONFIG:= \
|
||||
CONFIG_CRYPTO_PCOMP=y \
|
||||
CONFIG_CRYPTO_PCOMP2
|
||||
FILES:=$(LINUX_DIR)/crypto/pcompress.ko
|
||||
AUTOLOAD:=$(call AutoLoad,09,pcompress)
|
||||
$(call AddDepends/crypto)
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,crypto-pcompress))
|
||||
|
||||
|
||||
define KernelPackage/crypto-rsa
|
||||
TITLE:=RSA algorithm
|
||||
DEPENDS:=+kmod-crypto-manager +kmod-asn1-decoder
|
||||
@ -986,16 +974,6 @@ endef
|
||||
$(eval $(call KernelPackage,crypto-user))
|
||||
|
||||
|
||||
define KernelPackage/crypto-wq
|
||||
TITLE:=CryptoAPI work queue handling
|
||||
KCONFIG:=CONFIG_CRYPTO_WORKQUEUE
|
||||
FILES:=$(LINUX_DIR)/crypto/crypto_wq.ko
|
||||
AUTOLOAD:=$(call AutoLoad,09,crypto_wq)
|
||||
$(call AddDepends/crypto)
|
||||
endef
|
||||
$(eval $(call KernelPackage,crypto-wq))
|
||||
|
||||
|
||||
define KernelPackage/crypto-xts
|
||||
TITLE:=XTS cipher CryptoAPI module
|
||||
DEPENDS:=+kmod-crypto-gf128 +kmod-crypto-manager
|
||||
|
||||
@ -159,3 +159,20 @@ define KernelPackage/leds-uleds/description
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,leds-uleds))
|
||||
|
||||
|
||||
define KernelPackage/input-leds
|
||||
SUBMENU:=$(LEDS_MENU)
|
||||
TITLE:=Input device LED support
|
||||
DEPENDS:=+kmod-input-core
|
||||
KCONFIG:=CONFIG_INPUT_LEDS
|
||||
FILES:=$(LINUX_DIR)/drivers/input/input-leds.ko
|
||||
AUTOLOAD:=$(call AutoLoad,50,input-leds,1)
|
||||
endef
|
||||
|
||||
define KernelPackage/input-leds/description
|
||||
Provides support for LEDs on input devices- for example,
|
||||
keyboard num/caps/scroll lock.
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,input-leds))
|
||||
|
||||
@ -34,7 +34,7 @@ ifdef CONFIG_PACKAGE_MAC80211_TRACING
|
||||
WIL6210_TRACING
|
||||
endif
|
||||
|
||||
config-$(call config_package,ath) += ATH_CARDS ATH_COMMON ATH_REG_DYNAMIC_USER_REG_HINTS
|
||||
config-$(call config_package,ath) += ATH_CARDS ATH_COMMON
|
||||
config-$(CONFIG_PACKAGE_ATH_DEBUG) += ATH_DEBUG ATH10K_DEBUG ATH9K_STATION_STATISTICS
|
||||
config-$(CONFIG_PACKAGE_ATH_DFS) += ATH9K_DFS_CERTIFIED ATH10K_DFS_CERTIFIED
|
||||
config-$(CONFIG_PACKAGE_ATH_SPECTRAL) += ATH9K_COMMON_SPECTRAL ATH10K_SPECTRAL
|
||||
@ -45,7 +45,7 @@ config-$(call config_package,owl-loader) += ATH9K_PCI_NO_EEPROM
|
||||
config-$(CONFIG_TARGET_ath79) += ATH9K_AHB
|
||||
config-$(CONFIG_TARGET_ipq40xx) += ATH10K_AHB
|
||||
config-$(CONFIG_PCI) += ATH9K_PCI
|
||||
config-$(CONFIG_ATH_USER_REGD) += ATH_USER_REGD
|
||||
config-$(CONFIG_ATH_USER_REGD) += ATH_USER_REGD ATH_REG_DYNAMIC_USER_REG_HINTS
|
||||
config-$(CONFIG_ATH9K_HWRNG) += ATH9K_HWRNG
|
||||
config-$(CONFIG_ATH9K_SUPPORT_PCOEM) += ATH9K_PCOEM
|
||||
config-$(CONFIG_ATH9K_TX99) += ATH9K_TX99
|
||||
|
||||
@ -3,11 +3,11 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=nat46
|
||||
|
||||
PKG_MIRROR_HASH:=aef3dae41e896c69b29d7fa3639c69f5a88db605a72dcd1133635980656a558c
|
||||
PKG_MIRROR_HASH:=3b424241de42b96d47217decf6f9071153cd0c11651f1ee006700836c6660fe8
|
||||
PKG_SOURCE_URL:=https://github.com/ayourtch/nat46.git
|
||||
PKG_SOURCE_DATE:=2021-04-15
|
||||
PKG_SOURCE_DATE:=2021-05-17
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=9df230a143477e8bc86968114439ee748ac9fd21
|
||||
PKG_SOURCE_VERSION:=0d5860d63a8037e001e293091ebf6219cc2f9255
|
||||
|
||||
PKG_MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@ -51,6 +51,10 @@ config WOLFSSL_HAS_ECC25519
|
||||
bool "Include ECC Curve 25519 support"
|
||||
default n
|
||||
|
||||
config WOLFSSL_HAS_OPENVPN
|
||||
bool "Include OpenVPN support"
|
||||
default n
|
||||
|
||||
config WOLFSSL_HAS_DEVCRYPTO
|
||||
bool
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=wolfssl
|
||||
PKG_VERSION:=4.7.0-stable
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/wolfSSL/wolfssl/archive/v$(PKG_VERSION)
|
||||
@ -31,7 +31,8 @@ PKG_CONFIG_DEPENDS:=\
|
||||
CONFIG_WOLFSSL_HAS_DH CONFIG_WOLFSSL_HAS_DTLS \
|
||||
CONFIG_WOLFSSL_HAS_ECC25519 CONFIG_WOLFSSL_HAS_OCSP \
|
||||
CONFIG_WOLFSSL_HAS_SESSION_TICKET CONFIG_WOLFSSL_HAS_TLSV10 \
|
||||
CONFIG_WOLFSSL_HAS_TLSV13 CONFIG_WOLFSSL_HAS_WPAS CONFIG_WOLFSSL_HAS_CERTGEN
|
||||
CONFIG_WOLFSSL_HAS_TLSV13 CONFIG_WOLFSSL_HAS_WPAS CONFIG_WOLFSSL_HAS_CERTGEN \
|
||||
CONFIG_WOLFSSL_HAS_OPENVPN
|
||||
|
||||
PKG_ABI_VERSION=$(patsubst %-stable,%,$(PKG_VERSION)).$(call version_abbrev,$(call confvar,$(PKG_CONFIG_DEPENDS)))
|
||||
|
||||
@ -84,6 +85,7 @@ CONFIGURE_ARGS += \
|
||||
--$(if $(CONFIG_WOLFSSL_HAS_DTLS),enable,disable)-dtls \
|
||||
--$(if $(CONFIG_WOLFSSL_HAS_ECC25519),enable,disable)-curve25519 \
|
||||
--$(if $(CONFIG_WOLFSSL_HAS_AFALG),enable,disable)-afalg \
|
||||
--$(if $(CONFIG_WOLFSSL_HAS_OPENVPN),enable,disable)-openvpn \
|
||||
--enable-devcrypto=$(if $(CONFIG_WOLFSSL_HAS_DEVCRYPTO_CBC),cbc\
|
||||
,$(if $(CONFIG_WOLFSSL_HAS_DEVCRYPTO_AES),aes\
|
||||
,$(if $(CONFIG_WOLFSSL_HAS_DEVCRYPTO_FULL),yes,no)))
|
||||
|
||||
50
package/libs/wolfssl/patches/200-ecc-rng.patch
Normal file
50
package/libs/wolfssl/patches/200-ecc-rng.patch
Normal file
@ -0,0 +1,50 @@
|
||||
Since commit 6467de5a8840 ("Randomize z ordinates in scalar
|
||||
mult when timing resistant") wolfssl requires a RNG for an EC
|
||||
key when the hardened built option is selected.
|
||||
|
||||
wc_ecc_set_rng is only available when built hardened, so there
|
||||
is no safe way to install the RNG to the key regardless whether
|
||||
or not wolfssl is compiled hardened.
|
||||
|
||||
Always export wc_ecc_set_rng so tools such as hostapd can install
|
||||
RNG regardless of the built settings for wolfssl.
|
||||
|
||||
--- a/wolfcrypt/src/ecc.c
|
||||
+++ b/wolfcrypt/src/ecc.c
|
||||
@@ -10293,21 +10293,21 @@ void wc_ecc_fp_free(void)
|
||||
|
||||
#endif /* FP_ECC */
|
||||
|
||||
-#ifdef ECC_TIMING_RESISTANT
|
||||
int wc_ecc_set_rng(ecc_key* key, WC_RNG* rng)
|
||||
{
|
||||
int err = 0;
|
||||
|
||||
+#ifdef ECC_TIMING_RESISTANT
|
||||
if (key == NULL) {
|
||||
err = BAD_FUNC_ARG;
|
||||
}
|
||||
else {
|
||||
key->rng = rng;
|
||||
}
|
||||
+#endif
|
||||
|
||||
return err;
|
||||
}
|
||||
-#endif
|
||||
|
||||
#ifdef HAVE_ECC_ENCRYPT
|
||||
|
||||
--- a/wolfssl/wolfcrypt/ecc.h
|
||||
+++ b/wolfssl/wolfcrypt/ecc.h
|
||||
@@ -584,10 +584,8 @@ WOLFSSL_API
|
||||
void wc_ecc_fp_free(void);
|
||||
WOLFSSL_LOCAL
|
||||
void wc_ecc_fp_init(void);
|
||||
-#ifdef ECC_TIMING_RESISTANT
|
||||
WOLFSSL_API
|
||||
int wc_ecc_set_rng(ecc_key* key, WC_RNG* rng);
|
||||
-#endif
|
||||
|
||||
WOLFSSL_API
|
||||
int wc_ecc_set_curve(ecc_key* key, int keysize, int curve_id);
|
||||
@ -5,9 +5,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
|
||||
PKG_SOURCE_DATE:=2021-05-18
|
||||
PKG_SOURCE_VERSION:=7277764bf8173d6961acbacfe31757c9195329e1
|
||||
PKG_MIRROR_HASH:=bf3549594dccda31bb9da831823b931ba7cb85e1a60ec6432ed6c09f3ea54510
|
||||
PKG_SOURCE_DATE:=2021-05-20
|
||||
PKG_SOURCE_VERSION:=42c19303bff5853866292671df30e9cae0fd60d1
|
||||
PKG_MIRROR_HASH:=534cd7e700589b0ab042a74368e48ea907234caa795a66944694463f23d69af3
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=hostapd
|
||||
PKG_RELEASE:=32
|
||||
PKG_RELEASE:=33
|
||||
|
||||
PKG_SOURCE_URL:=http://w1.fi/hostap.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
From 21ce83b4ae2b9563175fdb4fc4312096cc399cf8 Mon Sep 17 00:00:00 2001
|
||||
From: David Bauer <mail@david-bauer.net>
|
||||
Date: Wed, 5 May 2021 00:44:34 +0200
|
||||
Subject: [PATCH] wolfssl: add RNG to EC key
|
||||
|
||||
Since upstream commit 6467de5a8840 ("Randomize z ordinates in
|
||||
scalar mult when timing resistant") WolfSSL requires a RNG for
|
||||
the EC key when built hardened which is the default.
|
||||
|
||||
Set the RNG for the EC key to fix connections for OWE clients.
|
||||
|
||||
Signed-off-by: David Bauer <mail@david-bauer.net>
|
||||
---
|
||||
src/crypto/crypto_wolfssl.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/crypto/crypto_wolfssl.c b/src/crypto/crypto_wolfssl.c
|
||||
index 2e4bf8962..ed2528159 100644
|
||||
--- a/src/crypto/crypto_wolfssl.c
|
||||
+++ b/src/crypto/crypto_wolfssl.c
|
||||
@@ -1303,6 +1303,7 @@ int ecc_projective_add_point(ecc_point *P, ecc_point *Q, ecc_point *R,
|
||||
|
||||
struct crypto_ec {
|
||||
ecc_key key;
|
||||
+ WC_RNG rng;
|
||||
mp_int a;
|
||||
mp_int prime;
|
||||
mp_int order;
|
||||
@@ -1357,6 +1358,8 @@ struct crypto_ec * crypto_ec_init(int group)
|
||||
return NULL;
|
||||
|
||||
if (wc_ecc_init(&e->key) != 0 ||
|
||||
+ wc_InitRng(&e->rng) != 0 ||
|
||||
+ wc_ecc_set_rng(&e->key, &e->rng) != 0 ||
|
||||
wc_ecc_set_curve(&e->key, 0, curve_id) != 0 ||
|
||||
mp_init(&e->a) != MP_OKAY ||
|
||||
mp_init(&e->prime) != MP_OKAY ||
|
||||
@@ -1388,6 +1391,7 @@ void crypto_ec_deinit(struct crypto_ec* e)
|
||||
mp_clear(&e->order);
|
||||
mp_clear(&e->prime);
|
||||
mp_clear(&e->a);
|
||||
+ wc_FreeRng(&e->rng);
|
||||
wc_ecc_free(&e->key);
|
||||
os_free(e);
|
||||
}
|
||||
--
|
||||
2.31.1
|
||||
|
||||
@ -16,6 +16,8 @@ PKG_SOURCE_URL:=https://source.codeaurora.org/external/qoriq/qoriq-components/re
|
||||
PKG_SOURCE_VERSION:=f0cec094e4c6d1c975b377203a3bf994ba9325a9
|
||||
PKG_MIRROR_HASH:=1863acfaef319e6b277671fead51df0a31bdddb59022080d86b7d81da0bc8490
|
||||
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/restool
|
||||
|
||||
@ -20,6 +20,8 @@ PKG_BUILD_DEPENDS:=USE_UCLIBC:argp-standalone USE_MUSL:argp-standalone
|
||||
PKG_MAINTAINER:=Zoltan HERPAI <wigyori@uid0.hu>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
PKG_INSTALL:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
@ -5,6 +5,8 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_NAME:=bcm4908img
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
PKG_BUILD_DEPENDS := bcm4908img/host
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
@ -98,6 +98,10 @@ endif
|
||||
|
||||
LDLIBS += $(call BUSYBOX_IF_ENABLED,PAM,pam pam_misc pthread)
|
||||
|
||||
ifeq ($(CONFIG_USE_GLIBC),y)
|
||||
LDLIBS += $(call BUSYBOX_IF_ENABLED,NSLOOKUP,resolv)
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_VARIANT),selinux)
|
||||
LDLIBS += selinux sepol
|
||||
endif
|
||||
|
||||
@ -8,10 +8,10 @@ board=$(board_name)
|
||||
case "$board" in
|
||||
meraki,mr24)
|
||||
ucidef_set_led_netdev "wan" "WAN" "mr24:green:wan" "eth0"
|
||||
ucidef_set_led_wlan "wlan1" "WLAN1" "mr24:green:wifi1" "phy0assoc"
|
||||
ucidef_set_led_wlan "wlan2" "WLAN2" "mr24:green:wifi2" "phy0assoc"
|
||||
ucidef_set_led_wlan "wlan3" "WLAN3" "mr24:green:wifi3" "phy0assoc"
|
||||
ucidef_set_led_wlan "wlan4" "WLAN4" "mr24:green:wifi4" "phy0tpt"
|
||||
ucidef_set_led_wlan "wlan5g_1" "WIFI 5GHz-1" "mr24:green:wifi1" "phy1tpt"
|
||||
ucidef_set_led_wlan "wlan5g_0" "WIFI 5GHz-0" "mr24:green:wifi2" "phy1radio"
|
||||
ucidef_set_led_wlan "wlan2g_1" "WIFI 2.4GHz-1" "mr24:green:wifi3" "phy0tpt"
|
||||
ucidef_set_led_wlan "wlan2g_0" "WIFI 2.4GHz-0" "mr24:green:wifi4" "phy0radio"
|
||||
;;
|
||||
|
||||
meraki,mx60)
|
||||
|
||||
@ -13,7 +13,7 @@ produce a noisy warning.
|
||||
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -261,6 +261,7 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -265,6 +265,7 @@ static void xhci_pci_quirks(struct devic
|
||||
pdev->device == 0x0015) {
|
||||
xhci->quirks |= XHCI_RESET_ON_RESUME;
|
||||
xhci->quirks |= XHCI_ZERO_64B_REGS;
|
||||
|
||||
@ -93,7 +93,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
||||
static const char hcd_name[] = "xhci_hcd";
|
||||
|
||||
static struct hc_driver __read_mostly xhci_pci_hc_driver;
|
||||
@@ -307,6 +347,873 @@ static void xhci_pme_acpi_rtd3_enable(st
|
||||
@@ -309,6 +349,873 @@ static void xhci_pme_acpi_rtd3_enable(st
|
||||
static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
|
||||
#endif /* CONFIG_ACPI */
|
||||
|
||||
@ -967,7 +967,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
||||
/* called during probe() after chip reset completes */
|
||||
static int xhci_pci_setup(struct usb_hcd *hcd)
|
||||
{
|
||||
@@ -348,6 +1255,27 @@ static int xhci_pci_probe(struct pci_dev
|
||||
@@ -350,6 +1257,27 @@ static int xhci_pci_probe(struct pci_dev
|
||||
struct hc_driver *driver;
|
||||
struct usb_hcd *hcd;
|
||||
|
||||
@ -995,7 +995,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
||||
driver = (struct hc_driver *)id->driver_data;
|
||||
|
||||
/* Prevent runtime suspending between USB-2 and USB-3 initialization */
|
||||
@@ -409,6 +1337,16 @@ static void xhci_pci_remove(struct pci_d
|
||||
@@ -411,6 +1339,16 @@ static void xhci_pci_remove(struct pci_d
|
||||
{
|
||||
struct xhci_hcd *xhci;
|
||||
|
||||
@ -1012,7 +1012,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
||||
xhci = hcd_to_xhci(pci_get_drvdata(dev));
|
||||
xhci->xhc_state |= XHCI_STATE_REMOVING;
|
||||
|
||||
@@ -548,6 +1486,11 @@ static int xhci_pci_resume(struct usb_hc
|
||||
@@ -550,6 +1488,11 @@ static int xhci_pci_resume(struct usb_hc
|
||||
if (pdev->vendor == PCI_VENDOR_ID_INTEL)
|
||||
usb_enable_intel_xhci_ports(pdev);
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ produce a noisy warning.
|
||||
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -286,6 +286,7 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -288,6 +288,7 @@ static void xhci_pci_quirks(struct devic
|
||||
pdev->device == 0x0015) {
|
||||
xhci->quirks |= XHCI_RESET_ON_RESUME;
|
||||
xhci->quirks |= XHCI_ZERO_64B_REGS;
|
||||
@ -23,7 +23,7 @@ produce a noisy warning.
|
||||
xhci->quirks |= XHCI_RESET_ON_RESUME;
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -423,10 +423,14 @@ static int xhci_try_enable_msi(struct us
|
||||
@@ -427,10 +427,14 @@ static int xhci_try_enable_msi(struct us
|
||||
free_irq(hcd->irq, hcd);
|
||||
hcd->irq = 0;
|
||||
|
||||
|
||||
@ -52,7 +52,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
||||
unsigned long rate;
|
||||
int ret;
|
||||
|
||||
@@ -152,16 +150,10 @@ static int ath79_spi_probe(struct platfo
|
||||
@@ -152,15 +150,9 @@ static int ath79_spi_probe(struct platfo
|
||||
master->dev.of_node = pdev->dev.of_node;
|
||||
platform_set_drvdata(pdev, sp);
|
||||
|
||||
@ -60,8 +60,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
||||
-
|
||||
master->use_gpio_descriptors = true;
|
||||
master->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32);
|
||||
master->setup = spi_bitbang_setup;
|
||||
master->cleanup = spi_bitbang_cleanup;
|
||||
master->flags = SPI_MASTER_GPIO_SS;
|
||||
- if (pdata) {
|
||||
- master->bus_num = pdata->bus_num;
|
||||
- master->num_chipselect = pdata->num_chipselect;
|
||||
|
||||
@ -1,28 +0,0 @@
|
||||
From b142b1beb199f62d47370c98a3dd8e13f792e9c0 Mon Sep 17 00:00:00 2001
|
||||
From: David Bauer <mail@david-bauer.net>
|
||||
Date: Thu, 27 Feb 2020 23:03:20 +0100
|
||||
Subject: [PATCH] spi: ath79: remove spi-master setup and cleanup assignment
|
||||
|
||||
This removes the assignment of setup and cleanup functions for the ath79
|
||||
target. Assigning the setup-method will lead to 'setup_transfer' not
|
||||
being assigned in spi_bitbang_init.
|
||||
|
||||
Also drop the redundant cleanup assignment, as this also happens in
|
||||
spi_bitbang_init.
|
||||
|
||||
Signed-off-by: David Bauer <mail@david-bauer.net>
|
||||
---
|
||||
drivers/spi/spi-ath79.c | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
--- a/drivers/spi/spi-ath79.c
|
||||
+++ b/drivers/spi/spi-ath79.c
|
||||
@@ -152,8 +152,6 @@ static int ath79_spi_probe(struct platfo
|
||||
|
||||
master->use_gpio_descriptors = true;
|
||||
master->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32);
|
||||
- master->setup = spi_bitbang_setup;
|
||||
- master->cleanup = spi_bitbang_cleanup;
|
||||
|
||||
sp->bitbang.master = master;
|
||||
sp->bitbang.chipselect = ath79_spi_chipselect;
|
||||
@ -58,7 +58,7 @@ Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
|
||||
static int ath79_spi_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct spi_master *master;
|
||||
@@ -163,6 +197,7 @@ static int ath79_spi_probe(struct platfo
|
||||
@@ -164,6 +198,7 @@ static int ath79_spi_probe(struct platfo
|
||||
ret = PTR_ERR(sp->base);
|
||||
goto err_put_master;
|
||||
}
|
||||
|
||||
@ -222,7 +222,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
|
||||
static inline int mmc_blk_part_switch(struct mmc_card *card,
|
||||
unsigned int part_type);
|
||||
|
||||
@@ -2868,6 +2875,7 @@ static int mmc_blk_probe(struct mmc_card
|
||||
@@ -2884,6 +2891,7 @@ static int mmc_blk_probe(struct mmc_card
|
||||
{
|
||||
struct mmc_blk_data *md, *part_md;
|
||||
char cap_str[10];
|
||||
@ -230,7 +230,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
|
||||
|
||||
/*
|
||||
* Check that the card supports the command class(es) we need.
|
||||
@@ -2875,7 +2883,16 @@ static int mmc_blk_probe(struct mmc_card
|
||||
@@ -2891,7 +2899,16 @@ static int mmc_blk_probe(struct mmc_card
|
||||
if (!(card->csd.cmdclass & CCC_BLOCK_READ))
|
||||
return -ENODEV;
|
||||
|
||||
@ -248,7 +248,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
|
||||
|
||||
card->complete_wq = alloc_workqueue("mmc_complete",
|
||||
WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
|
||||
@@ -2890,9 +2907,14 @@ static int mmc_blk_probe(struct mmc_card
|
||||
@@ -2906,9 +2923,14 @@ static int mmc_blk_probe(struct mmc_card
|
||||
|
||||
string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2,
|
||||
cap_str, sizeof(cap_str));
|
||||
@ -279,7 +279,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
|
||||
}
|
||||
--- a/drivers/mmc/core/host.c
|
||||
+++ b/drivers/mmc/core/host.c
|
||||
@@ -397,15 +397,30 @@ struct mmc_host *mmc_alloc_host(int extr
|
||||
@@ -434,15 +434,30 @@ struct mmc_host *mmc_alloc_host(int extr
|
||||
{
|
||||
int err;
|
||||
struct mmc_host *host;
|
||||
|
||||
@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -255,6 +255,10 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -257,6 +257,10 @@ static void xhci_pci_quirks(struct devic
|
||||
pdev->device == 0x3432)
|
||||
xhci->quirks |= XHCI_BROKEN_STREAMS;
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -1464,6 +1464,103 @@ command_cleanup:
|
||||
@@ -1468,6 +1468,103 @@ command_cleanup:
|
||||
}
|
||||
|
||||
/*
|
||||
@ -119,7 +119,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
* non-error returns are a promise to giveback() the urb later
|
||||
* we drop ownership so next owner (or urb unlink) can get it
|
||||
*/
|
||||
@@ -5345,6 +5442,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
@@ -5357,6 +5454,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
.endpoint_reset = xhci_endpoint_reset,
|
||||
.check_bandwidth = xhci_check_bandwidth,
|
||||
.reset_bandwidth = xhci_reset_bandwidth,
|
||||
|
||||
@ -23,7 +23,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -256,8 +256,10 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -258,8 +258,10 @@ static void xhci_pci_quirks(struct devic
|
||||
xhci->quirks |= XHCI_BROKEN_STREAMS;
|
||||
|
||||
if (pdev->vendor == PCI_VENDOR_ID_VIA &&
|
||||
|
||||
@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
#define USB_VENDOR_ID_BELKIN 0x050d
|
||||
#define USB_DEVICE_ID_FLIP_KVM 0x3201
|
||||
|
||||
@@ -1258,6 +1261,9 @@
|
||||
@@ -1259,6 +1262,9 @@
|
||||
#define USB_VENDOR_ID_XAT 0x2505
|
||||
#define USB_DEVICE_ID_XAT_CSR 0x0220
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
|
||||
--- a/drivers/usb/host/xhci-mem.c
|
||||
+++ b/drivers/usb/host/xhci-mem.c
|
||||
@@ -2503,9 +2503,11 @@ int xhci_mem_init(struct xhci_hcd *xhci,
|
||||
@@ -2512,9 +2512,11 @@ int xhci_mem_init(struct xhci_hcd *xhci,
|
||||
* Event ring setup: Allocate a normal ring, but also setup
|
||||
* the event ring segment table (ERST). Section 4.9.3.
|
||||
*/
|
||||
@ -36,7 +36,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
if (!xhci->event_ring)
|
||||
goto fail;
|
||||
if (xhci_check_trb_in_td_math(xhci) < 0)
|
||||
@@ -2518,7 +2520,7 @@ int xhci_mem_init(struct xhci_hcd *xhci,
|
||||
@@ -2527,7 +2529,7 @@ int xhci_mem_init(struct xhci_hcd *xhci,
|
||||
/* set ERST count with the number of entries in the segment table */
|
||||
val = readl(&xhci->ir_set->erst_size);
|
||||
val &= ERST_SIZE_MASK;
|
||||
|
||||
@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/arch/arm/kernel/setup.c
|
||||
+++ b/arch/arm/kernel/setup.c
|
||||
@@ -1240,6 +1240,8 @@ static int c_show(struct seq_file *m, vo
|
||||
@@ -1249,6 +1249,8 @@ static int c_show(struct seq_file *m, vo
|
||||
{
|
||||
int i, j;
|
||||
u32 cpuid;
|
||||
@ -19,7 +19,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
for_each_online_cpu(i) {
|
||||
/*
|
||||
@@ -1299,6 +1301,14 @@ static int c_show(struct seq_file *m, vo
|
||||
@@ -1308,6 +1310,14 @@ static int c_show(struct seq_file *m, vo
|
||||
seq_printf(m, "Revision\t: %04x\n", system_rev);
|
||||
seq_printf(m, "Serial\t\t: %s\n", system_serial);
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@ Signed-off-by: Christoph Hellwig <hch@lst.de>
|
||||
|
||||
--- a/arch/x86/Kconfig
|
||||
+++ b/arch/x86/Kconfig
|
||||
@@ -708,7 +708,6 @@ config X86_SUPPORTS_MEMORY_FAILURE
|
||||
@@ -709,7 +709,6 @@ config X86_SUPPORTS_MEMORY_FAILURE
|
||||
config STA2X11
|
||||
bool "STA2X11 Companion Chip Support"
|
||||
depends on X86_32_NON_STANDARD && PCI
|
||||
|
||||
@ -382,7 +382,7 @@ Cc: linux-rockchip@lists.infradead.org
|
||||
|
||||
--- a/drivers/pci/pci.h
|
||||
+++ b/drivers/pci/pci.h
|
||||
@@ -637,11 +637,15 @@ static inline void pci_release_bus_of_no
|
||||
@@ -643,11 +643,15 @@ static inline void pci_release_bus_of_no
|
||||
#if defined(CONFIG_OF_ADDRESS)
|
||||
int devm_of_pci_get_host_bridge_resources(struct device *dev,
|
||||
unsigned char busno, unsigned char bus_max,
|
||||
|
||||
@ -39,7 +39,7 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
@@ -2423,6 +2429,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(s
|
||||
@@ -2431,6 +2437,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(s
|
||||
case V4L2_CTRL_TYPE_VP8_FRAME_HEADER:
|
||||
elem_size = sizeof(struct v4l2_ctrl_vp8_frame_header);
|
||||
break;
|
||||
@ -49,7 +49,7 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||
default:
|
||||
if (type < V4L2_CTRL_COMPOUND_TYPES)
|
||||
elem_size = sizeof(s32);
|
||||
@@ -4087,6 +4096,18 @@ int __v4l2_ctrl_s_ctrl_string(struct v4l
|
||||
@@ -4098,6 +4107,18 @@ int __v4l2_ctrl_s_ctrl_string(struct v4l
|
||||
}
|
||||
EXPORT_SYMBOL(__v4l2_ctrl_s_ctrl_string);
|
||||
|
||||
|
||||
@ -820,7 +820,7 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
@@ -2434,6 +2532,15 @@ static struct v4l2_ctrl *v4l2_ctrl_new(s
|
||||
@@ -2442,6 +2540,15 @@ static struct v4l2_ctrl *v4l2_ctrl_new(s
|
||||
case V4L2_CTRL_TYPE_VP8_FRAME_HEADER:
|
||||
elem_size = sizeof(struct v4l2_ctrl_vp8_frame_header);
|
||||
break;
|
||||
|
||||
@ -106,7 +106,7 @@ Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
|
||||
case V4L2_CTRL_TYPE_AREA:
|
||||
area = p;
|
||||
if (!area->width || !area->height)
|
||||
@@ -2541,6 +2548,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(s
|
||||
@@ -2549,6 +2556,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(s
|
||||
case V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS:
|
||||
elem_size = sizeof(struct v4l2_ctrl_hevc_slice_params);
|
||||
break;
|
||||
|
||||
@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
#define MAX_TUNING_LOOP 40
|
||||
|
||||
@@ -2756,7 +2756,7 @@ static void sdhci_timeout_timer(struct t
|
||||
@@ -2758,7 +2758,7 @@ static void sdhci_timeout_timer(struct t
|
||||
spin_lock_irqsave(&host->lock, flags);
|
||||
|
||||
if (host->cmd && !sdhci_data_line_cmd(host->cmd)) {
|
||||
@ -31,7 +31,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
mmc_hostname(host->mmc));
|
||||
sdhci_dumpregs(host);
|
||||
|
||||
@@ -2778,7 +2778,7 @@ static void sdhci_timeout_data_timer(str
|
||||
@@ -2780,7 +2780,7 @@ static void sdhci_timeout_data_timer(str
|
||||
|
||||
if (host->data || host->data_cmd ||
|
||||
(host->cmd && sdhci_data_line_cmd(host->cmd))) {
|
||||
|
||||
@ -23,7 +23,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/spi/spi.c
|
||||
+++ b/drivers/spi/spi.c
|
||||
@@ -3115,6 +3115,7 @@ static int __spi_validate_bits_per_word(
|
||||
@@ -3110,6 +3110,7 @@ static int __spi_validate_bits_per_word(
|
||||
*/
|
||||
int spi_setup(struct spi_device *spi)
|
||||
{
|
||||
@ -31,7 +31,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
unsigned bad_bits, ugly_bits;
|
||||
int status;
|
||||
|
||||
@@ -3132,6 +3133,14 @@ int spi_setup(struct spi_device *spi)
|
||||
@@ -3127,6 +3128,14 @@ int spi_setup(struct spi_device *spi)
|
||||
(SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL |
|
||||
SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL)))
|
||||
return -EINVAL;
|
||||
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/spi/spi.c
|
||||
+++ b/drivers/spi/spi.c
|
||||
@@ -3127,8 +3127,8 @@ int spi_setup(struct spi_device *spi)
|
||||
@@ -3122,8 +3122,8 @@ int spi_setup(struct spi_device *spi)
|
||||
|
||||
if (ctlr->use_gpio_descriptors && ctlr->cs_gpiods &&
|
||||
ctlr->cs_gpiods[spi->chip_select] && !(spi->mode & SPI_CS_HIGH)) {
|
||||
|
||||
@ -29,7 +29,7 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||
|
||||
#define dprintk(vdev, fmt, arg...) do { \
|
||||
if (!WARN_ON(!(vdev)) && ((vdev)->dev_debug & V4L2_DEV_DEBUG_CTRL)) \
|
||||
@@ -4578,3 +4579,42 @@ __poll_t v4l2_ctrl_poll(struct file *fil
|
||||
@@ -4589,3 +4590,42 @@ __poll_t v4l2_ctrl_poll(struct file *fil
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(v4l2_ctrl_poll);
|
||||
|
||||
@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -259,6 +259,7 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -261,6 +261,7 @@ static void xhci_pci_quirks(struct devic
|
||||
pdev->device == 0x3483) {
|
||||
xhci->quirks |= XHCI_LPM_SUPPORT;
|
||||
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
|
||||
|
||||
@ -90,7 +90,7 @@ it on BCM4708 family.
|
||||
/*
|
||||
* Reset a halted HC.
|
||||
*
|
||||
@@ -604,10 +647,20 @@ static int xhci_init(struct usb_hcd *hcd
|
||||
@@ -608,10 +651,20 @@ static int xhci_init(struct usb_hcd *hcd
|
||||
|
||||
static int xhci_run_finished(struct xhci_hcd *xhci)
|
||||
{
|
||||
@ -114,7 +114,7 @@ it on BCM4708 family.
|
||||
xhci->shared_hcd->state = HC_STATE_RUNNING;
|
||||
xhci->cmd_ring_state = CMD_RING_STATE_RUNNING;
|
||||
|
||||
@@ -617,6 +670,10 @@ static int xhci_run_finished(struct xhci
|
||||
@@ -621,6 +674,10 @@ static int xhci_run_finished(struct xhci
|
||||
xhci_dbg_trace(xhci, trace_xhci_dbg_init,
|
||||
"Finished xhci_run for USB3 roothub");
|
||||
return 0;
|
||||
|
||||
@ -183,7 +183,7 @@ Link: https://lore.kernel.org/linux-mtd/20200522121524.4161539-6-noltari@gmail.c
|
||||
nand_writereg(ctrl, acc_control_offs, tmp);
|
||||
|
||||
brcmnand_set_sector_size_1k(host, cfg->sector_size_1k);
|
||||
@@ -2524,6 +2589,8 @@ const struct dev_pm_ops brcmnand_pm_ops
|
||||
@@ -2530,6 +2595,8 @@ const struct dev_pm_ops brcmnand_pm_ops
|
||||
EXPORT_SYMBOL_GPL(brcmnand_pm_ops);
|
||||
|
||||
static const struct of_device_id brcmnand_of_match[] = {
|
||||
|
||||
@ -1,34 +0,0 @@
|
||||
From cf0d2fbaae9e962d91a321de75e0d4f9f9ccbdfe Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
||||
Date: Thu, 21 Jan 2021 18:17:37 +0100
|
||||
Subject: [PATCH] nand: brcmnand: fix OOB R/W with Hamming ECC
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Hamming ECC doesn't cover the OOB data, so reading or writing OOB shall
|
||||
always be done without ECC enabled.
|
||||
This is a problem when adding JFFS2 cleanmarkers to erased blocks. When JFFS2
|
||||
clenmarkers are added to the OOB with ECC enabled, OOB bytes will be changed
|
||||
from ff ff ff to 00 00 00, reporting incorrect ECC errors.
|
||||
|
||||
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
---
|
||||
drivers/mtd/nand/raw/brcmnand/brcmnand.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
@@ -2426,6 +2426,12 @@ static int brcmnand_attach_chip(struct n
|
||||
|
||||
ret = brcmstb_choose_ecc_layout(host);
|
||||
|
||||
+ /* If OOB is written with ECC enabled it will cause ECC errors */
|
||||
+ if (is_hamming_ecc(host->ctrl, &host->hwcfg)) {
|
||||
+ chip->ecc.write_oob = brcmnand_write_oob_raw;
|
||||
+ chip->ecc.read_oob = brcmnand_read_oob_raw;
|
||||
+ }
|
||||
+
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -58,7 +58,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
#define MTK_GDMA_ICS_EN BIT(22)
|
||||
#define MTK_GDMA_TCS_EN BIT(21)
|
||||
#define MTK_GDMA_UCS_EN BIT(20)
|
||||
@@ -304,6 +305,7 @@
|
||||
@@ -305,6 +306,7 @@
|
||||
#define RX_DMA_L4_VALID_PDMA BIT(30) /* when PDMA is used */
|
||||
#define RX_DMA_FPORT_SHIFT 19
|
||||
#define RX_DMA_FPORT_MASK 0x7
|
||||
|
||||
@ -105,7 +105,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
#define MTK_GDMA_DROP_ALL 0x7777
|
||||
|
||||
/* Unicast Filter MAC Address Register - Low */
|
||||
@@ -301,6 +303,12 @@
|
||||
@@ -302,6 +304,12 @@
|
||||
#define RX_DMA_VID(_x) ((_x) & 0xfff)
|
||||
|
||||
/* QDMA descriptor rxd4 */
|
||||
@ -118,7 +118,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
#define RX_DMA_L4_VALID BIT(24)
|
||||
#define RX_DMA_L4_VALID_PDMA BIT(30) /* when PDMA is used */
|
||||
#define RX_DMA_FPORT_SHIFT 19
|
||||
@@ -798,6 +806,7 @@ struct mtk_soc_data {
|
||||
@@ -799,6 +807,7 @@ struct mtk_soc_data {
|
||||
u32 caps;
|
||||
u32 required_clks;
|
||||
bool required_pctl;
|
||||
@ -126,7 +126,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
netdev_features_t hw_features;
|
||||
};
|
||||
|
||||
@@ -897,6 +906,8 @@ struct mtk_eth {
|
||||
@@ -898,6 +907,8 @@ struct mtk_eth {
|
||||
u32 tx_int_status_reg;
|
||||
u32 rx_dma_l4_valid;
|
||||
int ip_align;
|
||||
|
||||
@ -60,7 +60,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
#define MTK_HW_FEATURES_MT7628 (NETIF_F_SG | NETIF_F_RXCSUM)
|
||||
#define NEXT_DESP_IDX(X, Y) (((X) + 1) & ((Y) - 1))
|
||||
|
||||
@@ -908,6 +910,7 @@ struct mtk_eth {
|
||||
@@ -909,6 +911,7 @@ struct mtk_eth {
|
||||
int ip_align;
|
||||
|
||||
struct mtk_ppe ppe;
|
||||
@ -68,7 +68,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
};
|
||||
|
||||
/* struct mtk_mac - the structure that holds the info about the MACs of the
|
||||
@@ -952,4 +955,9 @@ int mtk_gmac_sgmii_path_setup(struct mtk
|
||||
@@ -953,4 +956,9 @@ int mtk_gmac_sgmii_path_setup(struct mtk
|
||||
int mtk_gmac_gephy_path_setup(struct mtk_eth *eth, int mac_id);
|
||||
int mtk_gmac_rgmii_path_setup(struct mtk_eth *eth, int mac_id);
|
||||
|
||||
|
||||
@ -1,38 +0,0 @@
|
||||
From 3f57d8c40fea9b20543cab4da12f4680d2ef182c Mon Sep 17 00:00:00 2001
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Thu, 22 Apr 2021 22:20:54 -0700
|
||||
Subject: [PATCH] net: ethernet: mtk_eth_soc: fix RX VLAN offload
|
||||
|
||||
The VLAN ID in the rx descriptor is only valid if the RX_DMA_VTAG bit is
|
||||
set. Fixes frames wrongly marked with VLAN tags.
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
[Ilya: fix commit message]
|
||||
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 +-
|
||||
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 1 +
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -1319,7 +1319,7 @@ static int mtk_poll_rx(struct napi_struc
|
||||
skb->protocol = eth_type_trans(skb, netdev);
|
||||
|
||||
if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX &&
|
||||
- RX_DMA_VID(trxd.rxd3))
|
||||
+ (trxd.rxd2 & RX_DMA_VTAG))
|
||||
__vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q),
|
||||
RX_DMA_VID(trxd.rxd3));
|
||||
skb_record_rx_queue(skb, 0);
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
@@ -300,6 +300,7 @@
|
||||
#define RX_DMA_LSO BIT(30)
|
||||
#define RX_DMA_PLEN0(_x) (((_x) & 0x3fff) << 16)
|
||||
#define RX_DMA_GET_PLEN0(_x) (((_x) >> 16) & 0x3fff)
|
||||
+#define RX_DMA_VTAG BIT(15)
|
||||
|
||||
/* QDMA descriptor rxd3 */
|
||||
#define RX_DMA_VID(_x) ((_x) & 0xfff)
|
||||
@ -1,75 +0,0 @@
|
||||
From 3007b05df4301aad179acc6ca1c3645785576df6 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Lobakin <alobakin@pm.me>
|
||||
Date: Mon, 19 Apr 2021 12:53:06 +0000
|
||||
Subject: gro: fix napi_gro_frags() Fast GRO breakage due to IP
|
||||
alignment check
|
||||
|
||||
Commit 7ad18ff6449cbd6beb26b53128ddf56d2685aa93 upstream.
|
||||
|
||||
Commit 38ec4944b593 ("gro: ensure frag0 meets IP header alignment")
|
||||
did the right thing, but missed the fact that napi_gro_frags() logics
|
||||
calls for skb_gro_reset_offset() *before* pulling Ethernet header
|
||||
to the skb linear space.
|
||||
That said, the introduced check for frag0 address being aligned to 4
|
||||
always fails for it as Ethernet header is obviously 14 bytes long,
|
||||
and in case with NET_IP_ALIGN its start is not aligned to 4.
|
||||
|
||||
Fix this by adding @nhoff argument to skb_gro_reset_offset() which
|
||||
tells if an IP header is placed right at the start of frag0 or not.
|
||||
This restores Fast GRO for napi_gro_frags() that became very slow
|
||||
after the mentioned commit, and preserves the introduced check to
|
||||
avoid silent unaligned accesses.
|
||||
|
||||
From v1 [0]:
|
||||
- inline tiny skb_gro_reset_offset() to let the code be optimized
|
||||
more efficively (esp. for the !NET_IP_ALIGN case) (Eric);
|
||||
- pull in Reviewed-by from Eric.
|
||||
|
||||
[0] https://lore.kernel.org/netdev/20210418114200.5839-1-alobakin@pm.me
|
||||
|
||||
Fixes: 38ec4944b593 ("gro: ensure frag0 meets IP header alignment")
|
||||
Reviewed-by: Eric Dumazet <edumazet@google.com>
|
||||
Signed-off-by: Alexander Lobakin <alobakin@pm.me>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
net/core/dev.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -5395,7 +5395,7 @@ static struct list_head *gro_list_prepar
|
||||
return head;
|
||||
}
|
||||
|
||||
-static void skb_gro_reset_offset(struct sk_buff *skb)
|
||||
+static inline void skb_gro_reset_offset(struct sk_buff *skb, u32 nhoff)
|
||||
{
|
||||
const struct skb_shared_info *pinfo = skb_shinfo(skb);
|
||||
const skb_frag_t *frag0 = &pinfo->frags[0];
|
||||
@@ -5407,7 +5407,7 @@ static void skb_gro_reset_offset(struct
|
||||
if (skb_mac_header(skb) == skb_tail_pointer(skb) &&
|
||||
pinfo->nr_frags &&
|
||||
!PageHighMem(skb_frag_page(frag0)) &&
|
||||
- (!NET_IP_ALIGN || !(skb_frag_off(frag0) & 3))) {
|
||||
+ (!NET_IP_ALIGN || !((skb_frag_off(frag0) + nhoff) & 3))) {
|
||||
NAPI_GRO_CB(skb)->frag0 = skb_frag_address(frag0);
|
||||
NAPI_GRO_CB(skb)->frag0_len = min_t(unsigned int,
|
||||
skb_frag_size(frag0),
|
||||
@@ -5640,7 +5640,7 @@ gro_result_t napi_gro_receive(struct nap
|
||||
skb_mark_napi_id(skb, napi);
|
||||
trace_napi_gro_receive_entry(skb);
|
||||
|
||||
- skb_gro_reset_offset(skb);
|
||||
+ skb_gro_reset_offset(skb, 0);
|
||||
|
||||
ret = napi_skb_finish(napi, skb, dev_gro_receive(napi, skb));
|
||||
trace_napi_gro_receive_exit(ret);
|
||||
@@ -5733,7 +5733,7 @@ static struct sk_buff *napi_frags_skb(st
|
||||
napi->skb = NULL;
|
||||
|
||||
skb_reset_mac_header(skb);
|
||||
- skb_gro_reset_offset(skb);
|
||||
+ skb_gro_reset_offset(skb, hlen);
|
||||
|
||||
if (unlikely(skb_gro_header_hard(skb, hlen))) {
|
||||
eth = skb_gro_header_slow(skb, hlen, 0);
|
||||
@ -24,7 +24,7 @@ Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
||||
|
||||
--- a/arch/x86/Makefile
|
||||
+++ b/arch/x86/Makefile
|
||||
@@ -197,9 +197,10 @@ avx2_instr :=$(call as-instr,vpbroadcast
|
||||
@@ -198,9 +198,10 @@ avx2_instr :=$(call as-instr,vpbroadcast
|
||||
avx512_instr :=$(call as-instr,vpmovm2b %k1$(comma)%zmm5,-DCONFIG_AS_AVX512=1)
|
||||
sha1_ni_instr :=$(call as-instr,sha1msg1 %xmm0$(comma)%xmm1,-DCONFIG_AS_SHA1_NI=1)
|
||||
sha256_ni_instr :=$(call as-instr,sha256msg1 %xmm0$(comma)%xmm1,-DCONFIG_AS_SHA256_NI=1)
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
From fa2632f74e57bbc869c8ad37751a11b6147a3acc Mon Sep 17 00:00:00 2001
|
||||
From: Chris Packham <chris.packham@alliedtelesis.co.nz>
|
||||
Date: Mon, 16 Mar 2020 20:49:07 +1300
|
||||
Subject: [PATCH] net: mvmdio: avoid error message for optional IRQ
|
||||
|
||||
Per the dt-binding the interrupt is optional so use
|
||||
platform_get_irq_optional() instead of platform_get_irq(). Since
|
||||
commit 7723f4c5ecdb ("driver core: platform: Add an error message to
|
||||
platform_get_irq*()") platform_get_irq() produces an error message
|
||||
|
||||
orion-mdio f1072004.mdio: IRQ index 0 not found
|
||||
|
||||
which is perfectly normal if one hasn't specified the optional property
|
||||
in the device tree.
|
||||
|
||||
Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
|
||||
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/ethernet/marvell/mvmdio.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/net/ethernet/marvell/mvmdio.c
|
||||
+++ b/drivers/net/ethernet/marvell/mvmdio.c
|
||||
@@ -347,7 +347,7 @@ static int orion_mdio_probe(struct platf
|
||||
}
|
||||
|
||||
|
||||
- dev->err_interrupt = platform_get_irq(pdev, 0);
|
||||
+ dev->err_interrupt = platform_get_irq_optional(pdev, 0);
|
||||
if (dev->err_interrupt > 0 &&
|
||||
resource_size(r) < MVMDIO_ERR_INT_MASK + 4) {
|
||||
dev_err(&pdev->dev,
|
||||
@ -184,7 +184,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
}
|
||||
|
||||
static void write_buf(struct buffer *b, const char *fname)
|
||||
@@ -2643,7 +2653,9 @@ int main(int argc, char **argv)
|
||||
@@ -2630,7 +2640,9 @@ int main(int argc, char **argv)
|
||||
add_staging_flag(&buf, mod->name);
|
||||
err |= add_versions(&buf, mod);
|
||||
add_depends(&buf, mod);
|
||||
|
||||
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
#endif /* _KOBJECT_H_ */
|
||||
--- a/lib/kobject_uevent.c
|
||||
+++ b/lib/kobject_uevent.c
|
||||
@@ -690,6 +690,43 @@ int add_uevent_var(struct kobj_uevent_en
|
||||
@@ -691,6 +691,43 @@ int add_uevent_var(struct kobj_uevent_en
|
||||
EXPORT_SYMBOL_GPL(add_uevent_var);
|
||||
|
||||
#if defined(CONFIG_NET)
|
||||
|
||||
@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
config MODULES_TREE_LOOKUP
|
||||
--- a/kernel/module.c
|
||||
+++ b/kernel/module.c
|
||||
@@ -3224,9 +3224,11 @@ static int setup_load_info(struct load_i
|
||||
@@ -3252,9 +3252,11 @@ static int setup_load_info(struct load_i
|
||||
|
||||
static int check_modinfo(struct module *mod, struct load_info *info, int flags)
|
||||
{
|
||||
@ -125,7 +125,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (flags & MODULE_INIT_IGNORE_VERMAGIC)
|
||||
modmagic = NULL;
|
||||
|
||||
@@ -3247,6 +3249,7 @@ static int check_modinfo(struct module *
|
||||
@@ -3275,6 +3277,7 @@ static int check_modinfo(struct module *
|
||||
mod->name);
|
||||
add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK);
|
||||
}
|
||||
|
||||
@ -396,7 +396,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
}
|
||||
--- a/net/ipv4/route.c
|
||||
+++ b/net/ipv4/route.c
|
||||
@@ -409,6 +409,9 @@ static struct pernet_operations ip_rt_pr
|
||||
@@ -410,6 +410,9 @@ static struct pernet_operations ip_rt_pr
|
||||
|
||||
static int __init ip_rt_proc_init(void)
|
||||
{
|
||||
|
||||
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
#endif /* _KOBJECT_H_ */
|
||||
--- a/lib/kobject_uevent.c
|
||||
+++ b/lib/kobject_uevent.c
|
||||
@@ -690,6 +690,43 @@ int add_uevent_var(struct kobj_uevent_en
|
||||
@@ -691,6 +691,43 @@ int add_uevent_var(struct kobj_uevent_en
|
||||
EXPORT_SYMBOL_GPL(add_uevent_var);
|
||||
|
||||
#if defined(CONFIG_NET)
|
||||
|
||||
@ -154,7 +154,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
}
|
||||
return &ip6n->tnls[prio][h];
|
||||
}
|
||||
@@ -406,6 +425,12 @@ ip6_tnl_dev_uninit(struct net_device *de
|
||||
@@ -405,6 +424,12 @@ ip6_tnl_dev_uninit(struct net_device *de
|
||||
struct net *net = t->net;
|
||||
struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id);
|
||||
|
||||
@ -167,7 +167,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
if (dev == ip6n->fb_tnl_dev)
|
||||
RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL);
|
||||
else
|
||||
@@ -822,6 +847,107 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t,
|
||||
@@ -821,6 +846,107 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(ip6_tnl_rcv_ctl);
|
||||
|
||||
@ -275,7 +275,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
static int __ip6_tnl_rcv(struct ip6_tnl *tunnel, struct sk_buff *skb,
|
||||
const struct tnl_ptk_info *tpi,
|
||||
struct metadata_dst *tun_dst,
|
||||
@@ -874,6 +1000,27 @@ static int __ip6_tnl_rcv(struct ip6_tnl
|
||||
@@ -873,6 +999,27 @@ static int __ip6_tnl_rcv(struct ip6_tnl
|
||||
skb_reset_network_header(skb);
|
||||
memset(skb->cb, 0, sizeof(struct inet6_skb_parm));
|
||||
|
||||
@ -303,7 +303,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
__skb_tunnel_rx(skb, tunnel->dev, tunnel->net);
|
||||
|
||||
err = dscp_ecn_decapsulate(tunnel, ipv6h, skb);
|
||||
@@ -1025,6 +1172,7 @@ static void init_tel_txopt(struct ipv6_t
|
||||
@@ -1024,6 +1171,7 @@ static void init_tel_txopt(struct ipv6_t
|
||||
opt->ops.opt_nflen = 8;
|
||||
}
|
||||
|
||||
@ -311,7 +311,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
/**
|
||||
* ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
|
||||
* @t: the outgoing tunnel device
|
||||
@@ -1307,6 +1455,7 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str
|
||||
@@ -1306,6 +1454,7 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str
|
||||
u8 protocol)
|
||||
{
|
||||
struct ip6_tnl *t = netdev_priv(dev);
|
||||
@ -319,7 +319,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
struct ipv6hdr *ipv6h;
|
||||
const struct iphdr *iph;
|
||||
int encap_limit = -1;
|
||||
@@ -1406,6 +1555,18 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str
|
||||
@@ -1405,6 +1554,18 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str
|
||||
fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
|
||||
dsfield = INET_ECN_encapsulate(dsfield, orig_dsfield);
|
||||
|
||||
@ -338,7 +338,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
|
||||
return -1;
|
||||
|
||||
@@ -1556,6 +1717,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
|
||||
@@ -1555,6 +1716,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
|
||||
t->parms.link = p->link;
|
||||
t->parms.proto = p->proto;
|
||||
t->parms.fwmark = p->fwmark;
|
||||
@ -353,7 +353,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
dst_cache_reset(&t->dst_cache);
|
||||
ip6_tnl_link_config(t);
|
||||
return 0;
|
||||
@@ -1594,6 +1763,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
|
||||
@@ -1593,6 +1762,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
|
||||
p->flowinfo = u->flowinfo;
|
||||
p->link = u->link;
|
||||
p->proto = u->proto;
|
||||
@ -361,7 +361,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
memcpy(p->name, u->name, sizeof(u->name));
|
||||
}
|
||||
|
||||
@@ -1979,6 +2149,15 @@ static int ip6_tnl_validate(struct nlatt
|
||||
@@ -1978,6 +2148,15 @@ static int ip6_tnl_validate(struct nlatt
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -377,7 +377,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
static void ip6_tnl_netlink_parms(struct nlattr *data[],
|
||||
struct __ip6_tnl_parm *parms)
|
||||
{
|
||||
@@ -2016,6 +2195,46 @@ static void ip6_tnl_netlink_parms(struct
|
||||
@@ -2015,6 +2194,46 @@ static void ip6_tnl_netlink_parms(struct
|
||||
|
||||
if (data[IFLA_IPTUN_FWMARK])
|
||||
parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]);
|
||||
@ -424,7 +424,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
}
|
||||
|
||||
static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
|
||||
@@ -2131,6 +2350,12 @@ static void ip6_tnl_dellink(struct net_d
|
||||
@@ -2130,6 +2349,12 @@ static void ip6_tnl_dellink(struct net_d
|
||||
|
||||
static size_t ip6_tnl_get_size(const struct net_device *dev)
|
||||
{
|
||||
@ -437,7 +437,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
return
|
||||
/* IFLA_IPTUN_LINK */
|
||||
nla_total_size(4) +
|
||||
@@ -2160,6 +2385,24 @@ static size_t ip6_tnl_get_size(const str
|
||||
@@ -2159,6 +2384,24 @@ static size_t ip6_tnl_get_size(const str
|
||||
nla_total_size(0) +
|
||||
/* IFLA_IPTUN_FWMARK */
|
||||
nla_total_size(4) +
|
||||
@ -462,7 +462,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
0;
|
||||
}
|
||||
|
||||
@@ -2167,6 +2410,9 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
@@ -2166,6 +2409,9 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
{
|
||||
struct ip6_tnl *tunnel = netdev_priv(dev);
|
||||
struct __ip6_tnl_parm *parm = &tunnel->parms;
|
||||
@ -472,7 +472,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
|
||||
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
|
||||
nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
|
||||
@@ -2176,9 +2422,27 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
@@ -2175,9 +2421,27 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
|
||||
nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
|
||||
nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
|
||||
@ -501,7 +501,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
|
||||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
|
||||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
|
||||
@@ -2218,6 +2482,7 @@ static const struct nla_policy ip6_tnl_p
|
||||
@@ -2217,6 +2481,7 @@ static const struct nla_policy ip6_tnl_p
|
||||
[IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 },
|
||||
[IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG },
|
||||
[IFLA_IPTUN_FWMARK] = { .type = NLA_U32 },
|
||||
|
||||
@ -17,7 +17,7 @@ Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
|
||||
--- a/drivers/mtd/mtdcore.c
|
||||
+++ b/drivers/mtd/mtdcore.c
|
||||
@@ -1050,6 +1050,44 @@ out_unlock:
|
||||
@@ -1053,6 +1053,44 @@ out_unlock:
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(get_mtd_device_nm);
|
||||
|
||||
|
||||
@ -144,7 +144,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
}
|
||||
return &ip6n->tnls[prio][h];
|
||||
}
|
||||
@@ -378,6 +390,12 @@ ip6_tnl_dev_uninit(struct net_device *de
|
||||
@@ -377,6 +389,12 @@ ip6_tnl_dev_uninit(struct net_device *de
|
||||
struct net *net = t->net;
|
||||
struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id);
|
||||
|
||||
@ -157,7 +157,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
if (dev == ip6n->fb_tnl_dev)
|
||||
RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL);
|
||||
else
|
||||
@@ -767,6 +785,107 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t,
|
||||
@@ -766,6 +784,107 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(ip6_tnl_rcv_ctl);
|
||||
|
||||
@ -265,7 +265,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
static int __ip6_tnl_rcv(struct ip6_tnl *tunnel, struct sk_buff *skb,
|
||||
const struct tnl_ptk_info *tpi,
|
||||
struct metadata_dst *tun_dst,
|
||||
@@ -819,6 +938,27 @@ static int __ip6_tnl_rcv(struct ip6_tnl
|
||||
@@ -818,6 +937,27 @@ static int __ip6_tnl_rcv(struct ip6_tnl
|
||||
skb_reset_network_header(skb);
|
||||
memset(skb->cb, 0, sizeof(struct inet6_skb_parm));
|
||||
|
||||
@ -293,7 +293,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
__skb_tunnel_rx(skb, tunnel->dev, tunnel->net);
|
||||
|
||||
err = dscp_ecn_decapsulate(tunnel, ipv6h, skb);
|
||||
@@ -959,6 +1099,7 @@ static void init_tel_txopt(struct ipv6_t
|
||||
@@ -958,6 +1098,7 @@ static void init_tel_txopt(struct ipv6_t
|
||||
opt->ops.opt_nflen = 8;
|
||||
}
|
||||
|
||||
@ -301,7 +301,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
/**
|
||||
* ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
|
||||
* @t: the outgoing tunnel device
|
||||
@@ -1311,6 +1452,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
||||
@@ -1310,6 +1451,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
||||
{
|
||||
struct ip6_tnl *t = netdev_priv(dev);
|
||||
struct ipv6hdr *ipv6h;
|
||||
@ -309,7 +309,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
int encap_limit = -1;
|
||||
__u16 offset;
|
||||
struct flowi6 fl6;
|
||||
@@ -1376,6 +1518,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
||||
@@ -1375,6 +1517,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
||||
fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
|
||||
dsfield = INET_ECN_encapsulate(dsfield, ipv6_get_dsfield(ipv6h));
|
||||
|
||||
@ -328,7 +328,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
|
||||
return -1;
|
||||
|
||||
@@ -1505,6 +1659,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
|
||||
@@ -1504,6 +1658,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
|
||||
t->parms.link = p->link;
|
||||
t->parms.proto = p->proto;
|
||||
t->parms.fwmark = p->fwmark;
|
||||
@ -343,7 +343,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
dst_cache_reset(&t->dst_cache);
|
||||
ip6_tnl_link_config(t);
|
||||
return 0;
|
||||
@@ -1543,6 +1705,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
|
||||
@@ -1542,6 +1704,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
|
||||
p->flowinfo = u->flowinfo;
|
||||
p->link = u->link;
|
||||
p->proto = u->proto;
|
||||
@ -351,7 +351,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
memcpy(p->name, u->name, sizeof(u->name));
|
||||
}
|
||||
|
||||
@@ -1927,6 +2090,15 @@ static int ip6_tnl_validate(struct nlatt
|
||||
@@ -1926,6 +2089,15 @@ static int ip6_tnl_validate(struct nlatt
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -367,7 +367,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
static void ip6_tnl_netlink_parms(struct nlattr *data[],
|
||||
struct __ip6_tnl_parm *parms)
|
||||
{
|
||||
@@ -1964,6 +2136,46 @@ static void ip6_tnl_netlink_parms(struct
|
||||
@@ -1963,6 +2135,46 @@ static void ip6_tnl_netlink_parms(struct
|
||||
|
||||
if (data[IFLA_IPTUN_FWMARK])
|
||||
parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]);
|
||||
@ -414,7 +414,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
}
|
||||
|
||||
static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
|
||||
@@ -2079,6 +2291,12 @@ static void ip6_tnl_dellink(struct net_d
|
||||
@@ -2078,6 +2290,12 @@ static void ip6_tnl_dellink(struct net_d
|
||||
|
||||
static size_t ip6_tnl_get_size(const struct net_device *dev)
|
||||
{
|
||||
@ -427,7 +427,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
return
|
||||
/* IFLA_IPTUN_LINK */
|
||||
nla_total_size(4) +
|
||||
@@ -2108,6 +2326,24 @@ static size_t ip6_tnl_get_size(const str
|
||||
@@ -2107,6 +2325,24 @@ static size_t ip6_tnl_get_size(const str
|
||||
nla_total_size(0) +
|
||||
/* IFLA_IPTUN_FWMARK */
|
||||
nla_total_size(4) +
|
||||
@ -452,7 +452,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
0;
|
||||
}
|
||||
|
||||
@@ -2115,6 +2351,9 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
@@ -2114,6 +2350,9 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
{
|
||||
struct ip6_tnl *tunnel = netdev_priv(dev);
|
||||
struct __ip6_tnl_parm *parm = &tunnel->parms;
|
||||
@ -462,7 +462,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
|
||||
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
|
||||
nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
|
||||
@@ -2124,9 +2363,27 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
@@ -2123,9 +2362,27 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
|
||||
nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
|
||||
nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
|
||||
@ -491,7 +491,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
|
||||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
|
||||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
|
||||
@@ -2166,6 +2423,7 @@ static const struct nla_policy ip6_tnl_p
|
||||
@@ -2165,6 +2422,7 @@ static const struct nla_policy ip6_tnl_p
|
||||
[IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 },
|
||||
[IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG },
|
||||
[IFLA_IPTUN_FWMARK] = { .type = NLA_U32 },
|
||||
|
||||
@ -66,7 +66,7 @@ Signed-off-by: René van Dorst <opensource@vdorst.com>
|
||||
+ eeecr &= 0xFFFF0000;
|
||||
+ if (!e->tx_lpi_enabled)
|
||||
+ eeecr |= LPI_MODE_EN;
|
||||
+ eeecr = LPI_THRESH(e->tx_lpi_timer);
|
||||
+ eeecr |= LPI_THRESH(e->tx_lpi_timer);
|
||||
+ mt7530_write(priv, MT7530_PMEEECR_P(port), eeecr);
|
||||
+ } else {
|
||||
+ priv->eee_enable &= ~(BIT(port));
|
||||
|
||||
@ -1,31 +0,0 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Wed, 26 Aug 2020 16:52:12 +0200
|
||||
Subject: [PATCH] net: ethernet: mtk_eth_soc: fix rx vlan offload
|
||||
|
||||
The VLAN ID in the rx descriptor is only valid if the RX_DMA_VID bit is set
|
||||
Fixes frames wrongly marked with VLAN tags
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -1320,7 +1320,7 @@ static int mtk_poll_rx(struct napi_struc
|
||||
skb->protocol = eth_type_trans(skb, netdev);
|
||||
|
||||
if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX &&
|
||||
- RX_DMA_VID(trxd.rxd3))
|
||||
+ (trxd.rxd2 & RX_DMA_VTAG))
|
||||
__vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q),
|
||||
RX_DMA_VID(trxd.rxd3));
|
||||
skb_record_rx_queue(skb, 0);
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
@@ -295,6 +295,7 @@
|
||||
#define RX_DMA_LSO BIT(30)
|
||||
#define RX_DMA_PLEN0(_x) (((_x) & 0x3fff) << 16)
|
||||
#define RX_DMA_GET_PLEN0(_x) (((_x) >> 16) & 0x3fff)
|
||||
+#define RX_DMA_VTAG BIT(15)
|
||||
|
||||
/* QDMA descriptor rxd3 */
|
||||
#define RX_DMA_VID(_x) ((_x) & 0xfff)
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
ARCH:=arm
|
||||
BOARD:=imx6
|
||||
BOARDNAME:=Freescale i.MX 6
|
||||
BOARDNAME:=NXP i.MX 6
|
||||
FEATURES:=audio display fpu gpio pcie rtc usb usbgadget squashfs targz nand ubifs boot-part rootfs-part
|
||||
CPU_TYPE:=cortex-a9
|
||||
CPU_SUBTYPE:=neon
|
||||
|
||||
@ -127,10 +127,11 @@ define Device/Default
|
||||
IMAGES :=
|
||||
endef
|
||||
|
||||
define Device/ventana
|
||||
define Device/gateworks_ventana
|
||||
DEVICE_VENDOR := Gateworks
|
||||
DEVICE_MODEL := Ventana family
|
||||
DEVICE_VARIANT := normal NAND flash
|
||||
DEVICE_NAME := ventana
|
||||
DEVICE_DTS:= \
|
||||
imx6dl-gw51xx \
|
||||
imx6dl-gw52xx \
|
||||
@ -157,74 +158,66 @@ define Device/ventana
|
||||
imx6q-gw5910 \
|
||||
imx6q-gw5912 \
|
||||
imx6q-gw5913
|
||||
DEVICE_PACKAGES := kmod-sky2 kmod-sound-core kmod-sound-soc-imx kmod-sound-soc-imx-sgtl5000 \
|
||||
kmod-can kmod-can-flexcan kmod-can-raw \
|
||||
kmod-hwmon-gsc \
|
||||
kmod-leds-gpio kmod-pps-gpio \
|
||||
kobs-ng
|
||||
DEVICE_PACKAGES := kmod-sky2 kmod-sound-core kmod-sound-soc-imx \
|
||||
kmod-sound-soc-imx-sgtl5000 kmod-can kmod-can-flexcan kmod-can-raw \
|
||||
kmod-hwmon-gsc kmod-leds-gpio kmod-pps-gpio kobs-ng
|
||||
BOOT_SCRIPT := bootscript-gateworks_ventana
|
||||
KERNEL += | boot-overlay
|
||||
IMAGES := nand.ubi bootfs.tar.gz dtb
|
||||
UBINIZE_PARTS = boot=$$(KDIR_KERNEL_IMAGE).boot.ubifs=15
|
||||
BOOT_SCRIPT := bootscript-ventana
|
||||
IMAGE/nand.ubi := append-ubi
|
||||
IMAGE/bootfs.tar.gz := bootfs.tar.gz
|
||||
IMAGE/dtb := install-dtb
|
||||
UBINIZE_PARTS = boot=$$(KDIR_KERNEL_IMAGE).boot.ubifs=15
|
||||
PAGESIZE := 2048
|
||||
BLOCKSIZE := 128k
|
||||
MKUBIFS_OPTS := -m $$(PAGESIZE) -e 124KiB
|
||||
endef
|
||||
TARGET_DEVICES += ventana
|
||||
TARGET_DEVICES += gateworks_ventana
|
||||
|
||||
define Device/ventana-large
|
||||
$(Device/ventana)
|
||||
DEVICE_VENDOR := Gateworks
|
||||
DEVICE_MODEL := Ventana family
|
||||
define Device/gateworks_ventana-large
|
||||
$(Device/gateworks_ventana)
|
||||
DEVICE_VARIANT := large NAND flash
|
||||
DEVICE_NAME := ventana
|
||||
IMAGES := nand.ubi
|
||||
PAGESIZE := 4096
|
||||
BLOCKSIZE := 256k
|
||||
MKUBIFS_OPTS := -m $$(PAGESIZE) -e 248KiB
|
||||
endef
|
||||
TARGET_DEVICES += ventana-large
|
||||
TARGET_DEVICES += gateworks_ventana-large
|
||||
|
||||
define Device/wandboard
|
||||
DEVICE_VENDOR := Wandboard
|
||||
DEVICE_MODEL := Dual
|
||||
DEVICE_DTS := imx6dl-wandboard
|
||||
endef
|
||||
TARGET_DEVICES += wandboard
|
||||
|
||||
define Device/cubox-i
|
||||
define Device/solidrun_cubox-i
|
||||
DEVICE_VENDOR := SolidRun
|
||||
DEVICE_MODEL := CuBox-i
|
||||
KERNEL := kernel-bin
|
||||
UBOOT := mx6cuboxi
|
||||
BOOT_SCRIPT = bootscript-cubox
|
||||
DEVICE_NAME := cubox
|
||||
DEVICE_DTS := \
|
||||
imx6q-cubox-i \
|
||||
imx6dl-cubox-i \
|
||||
imx6q-hummingboard \
|
||||
imx6dl-hummingboard
|
||||
DEVICE_PACKAGES := kmod-drm-imx kmod-drm-imx-hdmi kmod-usb-hid
|
||||
DEVICE_DTS := imx6q-cubox-i imx6dl-cubox-i imx6q-hummingboard imx6dl-hummingboard
|
||||
IMAGES := combined.bin dtb
|
||||
BOOT_SCRIPT := bootscript-solidrun_cubox
|
||||
UBOOT := mx6cuboxi
|
||||
KERNEL := kernel-bin
|
||||
KERNEL_SUFFIX := -zImage
|
||||
FILESYSTEMS := squashfs
|
||||
IMAGES := combined.bin dtb
|
||||
IMAGE/combined.bin := append-rootfs | pad-extra 128k | imx6-sdcard
|
||||
IMAGE/dtb := install-dtb
|
||||
endef
|
||||
TARGET_DEVICES += cubox-i
|
||||
TARGET_DEVICES += solidrun_cubox-i
|
||||
|
||||
define Device/apalis
|
||||
define Device/toradex_apalis
|
||||
DEVICE_VENDOR := Toradex
|
||||
DEVICE_MODEL := Apalis family
|
||||
SUPPORTED_DEVICES := apalis,ixora apalis,eval
|
||||
DEVICE_DTS := \
|
||||
imx6q-apalis-eval \
|
||||
imx6q-apalis-ixora \
|
||||
imx6q-apalis-ixora-v1.1
|
||||
imx6q-apalis-eval \
|
||||
imx6q-apalis-ixora \
|
||||
imx6q-apalis-ixora-v1.1
|
||||
DEVICE_PACKAGES := \
|
||||
kmod-can kmod-can-flexcan kmod-can-raw \
|
||||
kmod-leds-gpio kmod-gpio-button-hotplug \
|
||||
kmod-pps-gpio kmod-rtc-ds1307
|
||||
BOOT_SCRIPT := bootscript-apalis
|
||||
UBOOT := apalis_imx6
|
||||
BOOT_SCRIPT := bootscript-toradex_apalis
|
||||
FILESYSTEMS := squashfs
|
||||
IMAGES := combined.bin sysupgrade.bin
|
||||
DEVICE_IMG_NAME = $$(DEVICE_IMG_PREFIX)-$$(1).$$(2)
|
||||
@ -233,6 +226,13 @@ define Device/apalis
|
||||
ARTIFACTS := recovery.scr
|
||||
ARTIFACT/recovery.scr := recovery-scr
|
||||
endef
|
||||
TARGET_DEVICES += apalis
|
||||
TARGET_DEVICES += toradex_apalis
|
||||
|
||||
define Device/wandboard_dual
|
||||
DEVICE_VENDOR := Wandboard
|
||||
DEVICE_MODEL := Dual
|
||||
DEVICE_DTS := imx6dl-wandboard
|
||||
endef
|
||||
TARGET_DEVICES += wandboard_dual
|
||||
|
||||
$(eval $(call BuildImage))
|
||||
|
||||
@ -8,7 +8,7 @@ define Profile/Default
|
||||
endef
|
||||
|
||||
define Profile/Default/Description
|
||||
Package set compatible with most Freescale i.MX 6 based boards.
|
||||
Package set compatible with most NXP i.MX 6 based boards.
|
||||
endef
|
||||
|
||||
$(eval $(call Profile,Default))
|
||||
|
||||
@ -0,0 +1,46 @@
|
||||
From 84909e85881d67244240c9f40974ce12a51e3886 Mon Sep 17 00:00:00 2001
|
||||
From: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
Date: Tue, 11 May 2021 23:09:45 +0200
|
||||
Subject: [PATCH] ARM: dts: qcom: reduce pci IO size to 64K
|
||||
|
||||
The current value is probably a typo and is actually uncommon to find
|
||||
1MB IO space even on a x86 arch. Also with recent changes to the pci
|
||||
driver, pci1 and pci2 now fails to function as any connected device
|
||||
fails any reg read/write. Reduce this to 64K as it should be more than
|
||||
enough and 3 * 64K of total IO space doesn't exceed the IO_SPACE_LIMIT
|
||||
hardcoded for the ARM arch.
|
||||
|
||||
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
---
|
||||
arch/arm/boot/dts/qcom-ipq8064.dtsi | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
|
||||
+++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi
|
||||
@@ -1085,7 +1085,7 @@
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
|
||||
- ranges = <0x81000000 0 0x0fe00000 0x0fe00000 0 0x00100000 /* downstream I/O */
|
||||
+ ranges = <0x81000000 0 0x0fe00000 0x0fe00000 0 0x00010000 /* downstream I/O */
|
||||
0x82000000 0 0x08000000 0x08000000 0 0x07e00000>; /* non-prefetchable memory */
|
||||
|
||||
interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@@ -1136,7 +1136,7 @@
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
|
||||
- ranges = <0x81000000 0 0x31e00000 0x31e00000 0 0x00100000 /* downstream I/O */
|
||||
+ ranges = <0x81000000 0 0x31e00000 0x31e00000 0 0x00010000 /* downstream I/O */
|
||||
0x82000000 0 0x2e000000 0x2e000000 0 0x03e00000>; /* non-prefetchable memory */
|
||||
|
||||
interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@@ -1187,7 +1187,7 @@
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
|
||||
- ranges = <0x81000000 0 0x35e00000 0x35e00000 0 0x00100000 /* downstream I/O */
|
||||
+ ranges = <0x81000000 0 0x35e00000 0x35e00000 0 0x00010000 /* downstream I/O */
|
||||
0x82000000 0 0x32000000 0x32000000 0 0x03e00000>; /* non-prefetchable memory */
|
||||
|
||||
interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -1,25 +0,0 @@
|
||||
From 9a894b0e5d3e6ed3c435b89fe96794ec9ddf5925 Mon Sep 17 00:00:00 2001
|
||||
From: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
Date: Sun, 28 Feb 2021 15:22:24 +0100
|
||||
Subject: [PATCH] arm: Enlarge IO_SPACE_LIMIT needed for some SoC
|
||||
|
||||
Ipq8064 SoC requires larger IO_SPACE_LIMIT or second and third pci port
|
||||
fails to register the IO addresses and connected device doesn't work.
|
||||
|
||||
Cc: <stable@vger.kernel.org> # 4.9+
|
||||
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
---
|
||||
arch/arm/include/asm/io.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm/include/asm/io.h
|
||||
+++ b/arch/arm/include/asm/io.h
|
||||
@@ -197,7 +197,7 @@ void __iomem *pci_remap_cfgspace(resourc
|
||||
#ifdef CONFIG_NEED_MACH_IO_H
|
||||
#include <mach/io.h>
|
||||
#elif defined(CONFIG_PCI)
|
||||
-#define IO_SPACE_LIMIT ((resource_size_t)0xfffff)
|
||||
+#define IO_SPACE_LIMIT ((resource_size_t)0xffffff)
|
||||
#define __io(a) __typesafe_io(PCI_IO_VIRT_BASE + ((a) & IO_SPACE_LIMIT))
|
||||
#else
|
||||
#define __io(a) __typesafe_io((a) & IO_SPACE_LIMIT)
|
||||
@ -166,7 +166,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
|
||||
if (tsens_version(priv) > VER_0_1) {
|
||||
for (i = VER_MAJOR; i <= VER_STEP; i++) {
|
||||
priv->rf[i] = devm_regmap_field_alloc(dev, priv->srot_map,
|
||||
@@ -769,6 +818,10 @@ int __init init_common(struct tsens_priv
|
||||
@@ -771,6 +820,10 @@ int __init init_common(struct tsens_priv
|
||||
ret = PTR_ERR(priv->rf[TSENS_EN]);
|
||||
goto err_put_device;
|
||||
}
|
||||
@ -177,7 +177,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
|
||||
ret = regmap_field_read(priv->rf[TSENS_EN], &enabled);
|
||||
if (ret)
|
||||
goto err_put_device;
|
||||
@@ -791,6 +844,19 @@ int __init init_common(struct tsens_priv
|
||||
@@ -793,6 +846,19 @@ int __init init_common(struct tsens_priv
|
||||
goto err_put_device;
|
||||
}
|
||||
|
||||
@ -197,7 +197,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
|
||||
/* This loop might need changes if enum regfield_ids is reordered */
|
||||
for (j = LAST_TEMP_0; j <= UP_THRESH_15; j += 16) {
|
||||
for (i = 0; i < priv->feat->max_sensors; i++) {
|
||||
@@ -806,7 +872,7 @@ int __init init_common(struct tsens_priv
|
||||
@@ -808,7 +874,7 @@ int __init init_common(struct tsens_priv
|
||||
}
|
||||
}
|
||||
|
||||
@ -206,7 +206,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
|
||||
/* Loop might need changes if enum regfield_ids is reordered */
|
||||
for (j = CRITICAL_STATUS_0; j <= CRIT_THRESH_15; j += 16) {
|
||||
for (i = 0; i < priv->feat->max_sensors; i++) {
|
||||
@@ -844,7 +910,11 @@ int __init init_common(struct tsens_priv
|
||||
@@ -846,7 +912,11 @@ int __init init_common(struct tsens_priv
|
||||
}
|
||||
|
||||
spin_lock_init(&priv->ul_lock);
|
||||
@ -219,7 +219,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
|
||||
tsens_debug_init(op);
|
||||
|
||||
err_put_device:
|
||||
@@ -943,10 +1013,19 @@ static int tsens_register_irq(struct tse
|
||||
@@ -945,10 +1015,19 @@ static int tsens_register_irq(struct tse
|
||||
if (irq == -ENXIO)
|
||||
ret = 0;
|
||||
} else {
|
||||
@ -243,7 +243,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
|
||||
if (ret)
|
||||
dev_err(&pdev->dev, "%s: failed to get irq\n",
|
||||
__func__);
|
||||
@@ -975,6 +1054,19 @@ static int tsens_register(struct tsens_p
|
||||
@@ -977,6 +1056,19 @@ static int tsens_register(struct tsens_p
|
||||
priv->ops->enable(priv, i);
|
||||
}
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@ Reviewed-by: Thara Gopinath <thara.gopinath@linaro.org>
|
||||
|
||||
--- a/drivers/thermal/qcom/tsens.c
|
||||
+++ b/drivers/thermal/qcom/tsens.c
|
||||
@@ -966,6 +966,9 @@ static SIMPLE_DEV_PM_OPS(tsens_pm_ops, t
|
||||
@@ -968,6 +968,9 @@ static SIMPLE_DEV_PM_OPS(tsens_pm_ops, t
|
||||
|
||||
static const struct of_device_id tsens_table[] = {
|
||||
{
|
||||
|
||||
@ -1,99 +0,0 @@
|
||||
From patchwork Sat Mar 13 13:18:26 2021
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Jonathan McDowell <noodles@earth.li>
|
||||
X-Patchwork-Id: 12136795
|
||||
X-Patchwork-Delegate: kuba@kernel.org
|
||||
Return-Path: <netdev-owner@kernel.org>
|
||||
X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
|
||||
aws-us-west-2-korg-lkml-1.web.codeaurora.org
|
||||
X-Spam-Level:
|
||||
X-Spam-Status: No, score=-15.1 required=3.0 tests=BAYES_00,DKIM_INVALID,
|
||||
DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH,
|
||||
MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1
|
||||
autolearn=unavailable autolearn_force=no version=3.4.0
|
||||
Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
|
||||
by smtp.lore.kernel.org (Postfix) with ESMTP id 90AB7C433DB
|
||||
for <netdev@archiver.kernel.org>; Sat, 13 Mar 2021 14:03:56 +0000 (UTC)
|
||||
Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
|
||||
by mail.kernel.org (Postfix) with ESMTP id 58E0464F18
|
||||
for <netdev@archiver.kernel.org>; Sat, 13 Mar 2021 14:03:56 +0000 (UTC)
|
||||
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
|
||||
id S233791AbhCMODW (ORCPT <rfc822;netdev@archiver.kernel.org>);
|
||||
Sat, 13 Mar 2021 09:03:22 -0500
|
||||
Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52042 "EHLO
|
||||
lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
|
||||
with ESMTP id S233478AbhCMOCx (ORCPT
|
||||
<rfc822;netdev@vger.kernel.org>); Sat, 13 Mar 2021 09:02:53 -0500
|
||||
X-Greylist: delayed 2658 seconds by postgrey-1.37 at
|
||||
lindbergh.monkeyblade.net; Sat, 13 Mar 2021 06:02:53 PST
|
||||
Received: from the.earth.li (the.earth.li
|
||||
[IPv6:2a00:1098:86:4d:c0ff:ee:15:900d])
|
||||
by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3FE3FC061574;
|
||||
Sat, 13 Mar 2021 06:02:53 -0800 (PST)
|
||||
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=earth.li;
|
||||
s=the;
|
||||
h=Content-Type:MIME-Version:Message-ID:Subject:To:From:Date:Sender:
|
||||
Reply-To:Cc:Content-Transfer-Encoding:Content-ID:Content-Description:
|
||||
Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:
|
||||
In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
|
||||
List-Post:List-Owner:List-Archive;
|
||||
bh=QOTdjy1PdYeDQ1fUENDrh0RtMG0coACWNQ4YsZbgl5w=;
|
||||
b=DeTr+9knNkPOvtIi2OlW73HS3t
|
||||
slxWRqQmC/Qd+tyDE8Lnj4oD+NFf5isDoaYYYhiPQ8iT/IOWEUz6DODzLTEBHd1WG9KYfSqzwFT70
|
||||
7pdoIUdBZOPtb0r/1WZqZHRog4L3uDDlSBHRkO6SaLFE0zu6nunAVePrw4XLLmC9bJGsxaEmVvJ4N
|
||||
zAgW5ejJ2lWOVgTIKSiBHTnLvkLbkSUT3inboIq/iEhEMGyBD8Zio1md1EU+8pQugFxwTmI5hqZ8M
|
||||
RBYRHIUBaaivkhOJptSZm3vns90mjlM/uDY69gA+jRAsvt2mhWRHSwLv8PJUZ5sB0SenvC1WcPH1S
|
||||
zAB6oEag==;
|
||||
Received: from noodles by the.earth.li with local (Exim 4.92)
|
||||
(envelope-from <noodles@earth.li>)
|
||||
id 1lL49y-0004kB-SB; Sat, 13 Mar 2021 13:18:26 +0000
|
||||
Date: Sat, 13 Mar 2021 13:18:26 +0000
|
||||
From: Jonathan McDowell <noodles@earth.li>
|
||||
To: Giuseppe Cavallaro <peppe.cavallaro@st.com>,
|
||||
Alexandre Torgue <alexandre.torgue@st.com>,
|
||||
Jose Abreu <joabreu@synopsys.com>,
|
||||
David Miller <davem@davemloft.net>,
|
||||
Jakub Kicinski <kuba@kernel.org>,
|
||||
Maxime Coquelin <mcoquelin.stm32@gmail.com>,
|
||||
netdev@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com,
|
||||
linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org
|
||||
Subject: [PATCH net-next] net: stmmac: Set FIFO sizes for ipq806x
|
||||
Message-ID: <20210313131826.GA17553@earth.li>
|
||||
MIME-Version: 1.0
|
||||
Content-Disposition: inline
|
||||
User-Agent: Mutt/1.10.1 (2018-07-13)
|
||||
Precedence: bulk
|
||||
List-ID: <netdev.vger.kernel.org>
|
||||
X-Mailing-List: netdev@vger.kernel.org
|
||||
X-Patchwork-Delegate: kuba@kernel.org
|
||||
|
||||
Commit eaf4fac47807 ("net: stmmac: Do not accept invalid MTU values")
|
||||
started using the TX FIFO size to verify what counts as a valid MTU
|
||||
request for the stmmac driver. This is unset for the ipq806x variant.
|
||||
Looking at older patches for this it seems the RX + TXs buffers can be
|
||||
up to 8k, so set appropriately.
|
||||
|
||||
(I sent this as an RFC patch in June last year, but received no replies.
|
||||
I've been running with this on my hardware (a MikroTik RB3011) since
|
||||
then with larger MTUs to support both the internal qca8k switch and
|
||||
VLANs with no problems. Without the patch it's impossible to set the
|
||||
larger MTU required to support this.)
|
||||
|
||||
Signed-off-by: Jonathan McDowell <noodles@earth.li>
|
||||
---
|
||||
drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c
|
||||
@@ -405,6 +405,8 @@ static int ipq806x_gmac_probe(struct pla
|
||||
plat_dat->bsp_priv = gmac;
|
||||
plat_dat->fix_mac_speed = ipq806x_gmac_fix_mac_speed;
|
||||
plat_dat->multicast_filter_bins = 0;
|
||||
+ plat_dat->tx_fifo_size = 8192;
|
||||
+ plat_dat->rx_fifo_size = 8192;
|
||||
|
||||
err = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
|
||||
if (err)
|
||||
@ -0,0 +1,41 @@
|
||||
From 8f32d48a309246a80bdca505968085a484d54408 Mon Sep 17 00:00:00 2001
|
||||
From: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
Date: Mon, 19 Apr 2021 03:01:53 +0200
|
||||
Subject: [thermal-next PATCH v2 1/2] thermal: qcom: tsens: init debugfs only with
|
||||
successful probe
|
||||
|
||||
calibrate and tsens_register can fail or PROBE_DEFER. This will cause a
|
||||
double or a wrong init of the debugfs information. Init debugfs only
|
||||
with successful probe fixing warning about directory already present.
|
||||
|
||||
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
Acked-by: Thara Gopinath <thara.gopinath@linaro.org>
|
||||
---
|
||||
drivers/thermal/qcom/tsens.c | 9 ++++++---
|
||||
1 file changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/drivers/thermal/qcom/tsens.c
|
||||
+++ b/drivers/thermal/qcom/tsens.c
|
||||
@@ -918,8 +918,6 @@ int __init init_common(struct tsens_priv
|
||||
if (tsens_version(priv) >= VER_0_1)
|
||||
tsens_enable_irq(priv);
|
||||
|
||||
- tsens_debug_init(op);
|
||||
-
|
||||
err_put_device:
|
||||
put_device(&op->dev);
|
||||
return ret;
|
||||
@@ -1155,7 +1153,12 @@ static int tsens_probe(struct platform_d
|
||||
}
|
||||
}
|
||||
|
||||
- return tsens_register(priv);
|
||||
+ ret = tsens_register(priv);
|
||||
+
|
||||
+ if (!ret)
|
||||
+ tsens_debug_init(pdev);
|
||||
+
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
static int tsens_remove(struct platform_device *pdev)
|
||||
@ -0,0 +1,54 @@
|
||||
From 4204f22060f7a5d42c6ccb4d4c25a6a875571099 Mon Sep 17 00:00:00 2001
|
||||
From: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
Date: Mon, 19 Apr 2021 03:08:37 +0200
|
||||
Subject: [thermal-next PATCH v2 2/2] thermal: qcom: tsens: simplify debugfs init
|
||||
function
|
||||
|
||||
Simplify debugfs init function.
|
||||
- Add check for existing dev directory.
|
||||
- Fix wrong version in dbg_version_show (with version 0.0.0, 0.1.0 was
|
||||
incorrectly reported)
|
||||
|
||||
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
Reviewed-by: Thara Gopinath <thara.gopinath@linaro.org>
|
||||
---
|
||||
drivers/thermal/qcom/tsens.c | 16 +++++++---------
|
||||
1 file changed, 7 insertions(+), 9 deletions(-)
|
||||
|
||||
--- a/drivers/thermal/qcom/tsens.c
|
||||
+++ b/drivers/thermal/qcom/tsens.c
|
||||
@@ -692,7 +692,7 @@ static int dbg_version_show(struct seq_f
|
||||
return ret;
|
||||
seq_printf(s, "%d.%d.%d\n", maj_ver, min_ver, step_ver);
|
||||
} else {
|
||||
- seq_puts(s, "0.1.0\n");
|
||||
+ seq_printf(s, "0.%d.0\n", priv->feat->ver_major);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -704,21 +704,17 @@ DEFINE_SHOW_ATTRIBUTE(dbg_sensors);
|
||||
static void tsens_debug_init(struct platform_device *pdev)
|
||||
{
|
||||
struct tsens_priv *priv = platform_get_drvdata(pdev);
|
||||
- struct dentry *root, *file;
|
||||
|
||||
- root = debugfs_lookup("tsens", NULL);
|
||||
- if (!root)
|
||||
+ priv->debug_root = debugfs_lookup("tsens", NULL);
|
||||
+ if (!priv->debug_root)
|
||||
priv->debug_root = debugfs_create_dir("tsens", NULL);
|
||||
- else
|
||||
- priv->debug_root = root;
|
||||
|
||||
- file = debugfs_lookup("version", priv->debug_root);
|
||||
- if (!file)
|
||||
+ if (!debugfs_lookup("version", priv->debug_root))
|
||||
debugfs_create_file("version", 0444, priv->debug_root,
|
||||
pdev, &dbg_version_fops);
|
||||
|
||||
/* A directory for each instance of the TSENS IP */
|
||||
- priv->debug = debugfs_create_dir(dev_name(&pdev->dev), priv->debug_root);
|
||||
+ priv->debug = debugfs_lookup(dev_name(&pdev->dev), priv->debug_root);
|
||||
debugfs_create_file("sensors", 0444, priv->debug, pdev, &dbg_sensors_fops);
|
||||
}
|
||||
#else
|
||||
@ -163,7 +163,7 @@ Signed-off-by: Rajith Cherian <rajith@codeaurora.org>
|
||||
mutex_unlock(&tzd->lock);
|
||||
|
||||
return tzd;
|
||||
@@ -762,7 +802,10 @@ static const char * const trip_types[] =
|
||||
@@ -765,7 +805,10 @@ static const char * const trip_types[] =
|
||||
[THERMAL_TRIP_ACTIVE] = "active",
|
||||
[THERMAL_TRIP_PASSIVE] = "passive",
|
||||
[THERMAL_TRIP_HOT] = "hot",
|
||||
|
||||
@ -4133,7 +4133,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
+
|
||||
--- a/arch/mips/pci/pci-legacy.c
|
||||
+++ b/arch/mips/pci/pci-legacy.c
|
||||
@@ -308,3 +308,30 @@ char *__init pcibios_setup(char *str)
|
||||
@@ -313,3 +313,30 @@ char *__init pcibios_setup(char *str)
|
||||
return pcibios_plat_setup(str);
|
||||
return str;
|
||||
}
|
||||
|
||||
@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
|
||||
--- a/drivers/net/phy/intel-xway.c
|
||||
+++ b/drivers/net/phy/intel-xway.c
|
||||
@@ -145,6 +145,51 @@
|
||||
@@ -157,6 +157,51 @@
|
||||
#define PHY_ID_PHY11G_VR9_1_2 0xD565A409
|
||||
#define PHY_ID_PHY22F_VR9_1_2 0xD565A419
|
||||
|
||||
@ -65,7 +65,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
static int xway_gphy_config_init(struct phy_device *phydev)
|
||||
{
|
||||
int err;
|
||||
@@ -183,6 +228,7 @@ static int xway_gphy_config_init(struct
|
||||
@@ -204,6 +249,7 @@ static int xway_gphy_config_init(struct
|
||||
phy_write_mmd(phydev, MDIO_MMD_VEND2, XWAY_MMD_LED2H, ledxh);
|
||||
phy_write_mmd(phydev, MDIO_MMD_VEND2, XWAY_MMD_LED2L, ledxl);
|
||||
|
||||
|
||||
@ -63,7 +63,7 @@ Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
|
||||
* address space as memory. Needed when the kernel wants to execute
|
||||
--- a/arch/arm/mm/mmu.c
|
||||
+++ b/arch/arm/mm/mmu.c
|
||||
@@ -312,6 +312,13 @@ static struct mem_type mem_types[] __ro_
|
||||
@@ -314,6 +314,13 @@ static struct mem_type mem_types[] __ro_
|
||||
.prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
|
||||
.domain = DOMAIN_KERNEL,
|
||||
},
|
||||
@ -77,7 +77,7 @@ Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
|
||||
[MT_ROM] = {
|
||||
.prot_sect = PMD_TYPE_SECT,
|
||||
.domain = DOMAIN_KERNEL,
|
||||
@@ -648,6 +655,7 @@ static void __init build_mem_type_table(
|
||||
@@ -650,6 +657,7 @@ static void __init build_mem_type_table(
|
||||
}
|
||||
kern_pgprot |= PTE_EXT_AF;
|
||||
vecs_pgprot |= PTE_EXT_AF;
|
||||
@ -85,7 +85,7 @@ Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
|
||||
|
||||
/*
|
||||
* Set PXN for user mappings
|
||||
@@ -676,6 +684,7 @@ static void __init build_mem_type_table(
|
||||
@@ -678,6 +686,7 @@ static void __init build_mem_type_table(
|
||||
mem_types[MT_MEMORY_RWX].prot_pte |= kern_pgprot;
|
||||
mem_types[MT_MEMORY_RW].prot_sect |= ecc_mask | cp->pmd;
|
||||
mem_types[MT_MEMORY_RW].prot_pte |= kern_pgprot;
|
||||
|
||||
@ -54,7 +54,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
|
||||
* All 3.1 IP version constants are greater than the 3.0 IP
|
||||
--- a/drivers/usb/dwc3/gadget.c
|
||||
+++ b/drivers/usb/dwc3/gadget.c
|
||||
@@ -3558,6 +3558,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
||||
@@ -3570,6 +3570,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
||||
dwc->gadget.sg_supported = true;
|
||||
dwc->gadget.name = "dwc3-gadget";
|
||||
dwc->gadget.lpm_capable = true;
|
||||
|
||||
@ -174,7 +174,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
|
||||
* bursts that are required to move all packets in this TD. Only SuperSpeed
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -5372,6 +5372,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
@@ -5384,6 +5384,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
.disable_usb3_lpm_timeout = xhci_disable_usb3_lpm_timeout,
|
||||
.find_raw_port_number = xhci_find_raw_port_number,
|
||||
.clear_tt_buffer_complete = xhci_clear_tt_buffer_complete,
|
||||
|
||||
@ -24,7 +24,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
|
||||
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -5393,6 +5393,8 @@ void xhci_init_driver(struct hc_driver *
|
||||
@@ -5405,6 +5405,8 @@ void xhci_init_driver(struct hc_driver *
|
||||
drv->check_bandwidth = over->check_bandwidth;
|
||||
if (over->reset_bandwidth)
|
||||
drv->reset_bandwidth = over->reset_bandwidth;
|
||||
|
||||
@ -279,7 +279,7 @@
|
||||
|
||||
partition@200000 {
|
||||
compatible = "brcm,trx";
|
||||
trx-magic = <0x32504844>;
|
||||
brcm,trx-magic = <0x32504844>;
|
||||
label = "firmware";
|
||||
reg = <0x200000 0x3a00000>;
|
||||
};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user