Compare commits
86 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
31f2f76cd5 | ||
|
|
ef56c85848 | ||
|
|
796bf50e8e | ||
|
|
92e341d632 | ||
|
|
e902d11de9 | ||
|
|
ceb8821a3d | ||
|
|
71fa524e1b | ||
|
|
c88bdb8294 | ||
|
|
15612706c9 | ||
|
|
ec76c365c1 | ||
|
|
bdd7faca8d | ||
|
|
ffd4452f8b | ||
|
|
ccc505502e | ||
|
|
1153773c78 | ||
|
|
a1ee0ebbd8 | ||
|
|
84c5dbcf2a | ||
|
|
c07c98d28e | ||
|
|
e10830193c | ||
|
|
f342de468b | ||
|
|
ded3ad3c2f | ||
|
|
5bec393fcb | ||
|
|
a2728a806a | ||
|
|
1b5a45a4a7 | ||
|
|
a883e3af38 | ||
|
|
08ef2073d4 | ||
|
|
7198ae4cf3 | ||
|
|
a8beddcd34 | ||
|
|
f82ddf9024 | ||
|
|
718e97c5c8 | ||
|
|
8788e86245 | ||
|
|
4398a35067 | ||
|
|
906f560e79 | ||
|
|
cc0b70467d | ||
|
|
2c46ba4356 | ||
|
|
7f3ec4ce39 | ||
|
|
273ded68b8 | ||
|
|
c43c434b58 | ||
|
|
81266d9001 | ||
|
|
6165bb0d60 | ||
|
|
c336db7a78 | ||
|
|
616fff2a94 | ||
|
|
dce6b118eb | ||
|
|
afdd5dcd0d | ||
|
|
1fcd833c9a | ||
|
|
33df82be36 | ||
|
|
3402334413 | ||
|
|
55e9d87754 | ||
|
|
c64742a96e | ||
|
|
4b19b2db78 | ||
|
|
0a08a9a2b4 | ||
|
|
a5672f6b96 | ||
|
|
b4a4d04b91 | ||
|
|
86aeac4fc9 | ||
|
|
e9c0c5021c | ||
|
|
a36d2ee310 | ||
|
|
6aef4bc7c3 | ||
|
|
6bf5bfc19f | ||
|
|
f44153038e | ||
|
|
d5ae565873 | ||
|
|
c4a6851c72 | ||
|
|
f8b849103d | ||
|
|
fec1aa6dfb | ||
|
|
224fa47bf9 | ||
|
|
3a05aa17db | ||
|
|
171d8bce0c | ||
|
|
2eb8444363 | ||
|
|
d5a8e85878 | ||
|
|
cf5e5204d9 | ||
|
|
4465b44fc1 | ||
|
|
4b9ade65ec | ||
|
|
ab9cb390be | ||
|
|
1e90091c5d | ||
|
|
312c05611b | ||
|
|
3100649458 | ||
|
|
e9d2aa9dc6 | ||
|
|
2044c01de8 | ||
|
|
5ac0b2b431 | ||
|
|
a7a207e18b | ||
|
|
1ce5008597 | ||
|
|
2ecb22dc51 | ||
|
|
11f4918ebb | ||
|
|
9999c87d3a | ||
|
|
250dbb3a60 | ||
|
|
d816c6cd31 | ||
|
|
c21d59dc11 | ||
|
|
6fc02f2a45 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -28,3 +28,4 @@ TAGS*~
|
||||
git-src
|
||||
.project
|
||||
.cproject
|
||||
.ccache
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
src-git packages https://git.openwrt.org/feed/packages.git^ce5a4eaea218111350e05ea86de8171344a70ce4
|
||||
src-git luci https://git.openwrt.org/project/luci.git^6ba9740b61a3ca89355ae1b08f0456617e0ce3c0
|
||||
src-git routing https://git.openwrt.org/feed/routing.git^02b4dbfcb7b8f8b566940847d22d5a6f229d2e66
|
||||
src-git telephony https://git.openwrt.org/feed/telephony.git^6e019c94d0fa7162548d528bf4ba060a61f8cb59
|
||||
src-git freifunk https://github.com/freifunk/openwrt-packages.git^73454e6fe1bdc902c69ca0079d979fdb94d6fb1f
|
||||
src-git packages https://git.openwrt.org/feed/packages.git^c6ae1c6a0fced32c171e228e3425a9b655585011
|
||||
src-git luci https://git.openwrt.org/project/luci.git^7b931da4779c68f5aef5908286c2ae5283d2dece
|
||||
src-git routing https://git.openwrt.org/feed/routing.git^101632e153b41238bc19dfd96ba2d23339dbcb76
|
||||
src-git telephony https://git.openwrt.org/feed/telephony.git^affee75beff7ed8445f6bc84deff13465c331027
|
||||
src-git freifunk https://github.com/freifunk/openwrt-packages.git^c621a4283870fe062489fe5e26a15deda7ef4ed7
|
||||
|
||||
@@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL
|
||||
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
||||
endif
|
||||
|
||||
LINUX_VERSION-4.14 = .215
|
||||
LINUX_VERSION-4.14 = .241
|
||||
|
||||
LINUX_KERNEL_HASH-4.14.215 = 9a844e290c61b39dd23df507ba1d9c2b2b4365e5993a978b19f1eb5610b926da
|
||||
LINUX_KERNEL_HASH-4.14.241 = b5bb04bb70154ba27a08bc1c067eb7c08fc3d513da58e6a33d6645b3a1889f7d
|
||||
|
||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||
|
||||
@@ -18,6 +18,18 @@ IPKG_REMOVE:= \
|
||||
|
||||
IPKG_STATE_DIR:=$(TARGET_DIR)/usr/lib/opkg
|
||||
|
||||
# Generates a make statement to return a wildcard for candidate ipkg files
|
||||
# 1: package name
|
||||
define gen_ipkg_wildcard
|
||||
$(1)$$(if $$(filter -%,$$(ABIV_$(1))),,[^a-z-])*
|
||||
endef
|
||||
|
||||
# 1: package name
|
||||
# 2: candidate ipk files
|
||||
define remove_ipkg_files
|
||||
$(if $(strip $(2)),$(IPKG_REMOVE) $(1) $(2))
|
||||
endef
|
||||
|
||||
# 1: package name
|
||||
# 2: variable name
|
||||
# 3: variable suffix
|
||||
@@ -184,7 +196,8 @@ $(_endef)
|
||||
$$(IPKG_$(1)) : export DESCRIPTION=$$(Package/$(1)/description)
|
||||
$$(IPKG_$(1)) : export PATH=$$(TARGET_PATH_PKG)
|
||||
$(PKG_INFO_DIR)/$(1).provides $$(IPKG_$(1)): $(STAMP_BUILT) $(INCLUDE_DIR)/package-ipkg.mk
|
||||
@rm -rf $$(IDIR_$(1)) $$(if $$(call opkg_package_files,$(1)*),; $$(IPKG_REMOVE) $(1) $$(call opkg_package_files,$(1)*))
|
||||
@rm -rf $$(IDIR_$(1)); \
|
||||
$$(call remove_ipkg_files,$(1),$$(call opkg_package_files,$(call gen_ipkg_wildcard,$(1))))
|
||||
mkdir -p $(PACKAGE_DIR) $$(IDIR_$(1))/CONTROL $(PKG_INFO_DIR)
|
||||
$(call Package/$(1)/install,$$(IDIR_$(1)))
|
||||
$(if $(Package/$(1)/install-overlay),mkdir -p $(PACKAGE_DIR) $$(IDIR_$(1))/rootfs-overlay)
|
||||
@@ -252,7 +265,7 @@ $(_endef)
|
||||
@[ -f $$(IPKG_$(1)) ]
|
||||
|
||||
$(1)-clean:
|
||||
$$(if $$(call opkg_package_files,$(1)*),$$(IPKG_REMOVE) $(1) $$(call opkg_package_files,$(1)*))
|
||||
$$(call remove_ipkg_files,$(1),$$(call opkg_package_files,$(call gen_ipkg_wildcard,$(1))))
|
||||
|
||||
clean: $(1)-clean
|
||||
|
||||
|
||||
@@ -29,8 +29,8 @@ $(eval $(call TestHostCommand,proper-umask, \
|
||||
ifndef IB
|
||||
$(eval $(call SetupHostCommand,gcc, \
|
||||
Please install the GNU C Compiler (gcc) 4.8 or later, \
|
||||
$(CC) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|10\.?)', \
|
||||
gcc -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|10\.?)', \
|
||||
$(CC) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|1[0-9]\.?)', \
|
||||
gcc -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|1[0-9]\.?)', \
|
||||
gcc --version | grep -E 'Apple.(LLVM|clang)' ))
|
||||
|
||||
$(eval $(call TestHostCommand,working-gcc, \
|
||||
@@ -41,8 +41,8 @@ $(eval $(call TestHostCommand,working-gcc, \
|
||||
|
||||
$(eval $(call SetupHostCommand,g++, \
|
||||
Please install the GNU C++ Compiler (g++) 4.8 or later, \
|
||||
$(CXX) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|10\.?)', \
|
||||
g++ -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|10\.?)', \
|
||||
$(CXX) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|1[0-9]\.?)', \
|
||||
g++ -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|1[0-9]\.?)', \
|
||||
g++ --version | grep -E 'Apple.(LLVM|clang)' ))
|
||||
|
||||
$(eval $(call TestHostCommand,working-g++, \
|
||||
@@ -64,11 +64,26 @@ else
|
||||
zlib_link_flags := -lz
|
||||
endif
|
||||
|
||||
$(eval $(call TestHostCommand,perl-data-dumper, \
|
||||
Please install the Perl Data::Dumper module, \
|
||||
perl -MData::Dumper -e 1))
|
||||
|
||||
$(eval $(call TestHostCommand,perl-findbin, \
|
||||
Please install the Perl FindBin module, \
|
||||
perl -MFindBin -e 1))
|
||||
|
||||
$(eval $(call TestHostCommand,perl-file-copy, \
|
||||
Please install the Perl File::Copy module, \
|
||||
perl -MFile::Copy -e 1))
|
||||
|
||||
$(eval $(call TestHostCommand,perl-file-compare, \
|
||||
Please install the Perl File::Compare module, \
|
||||
perl -MFile::Compare -e 1))
|
||||
|
||||
$(eval $(call TestHostCommand,perl-thread-queue, \
|
||||
Please install the Perl Thread::Queue module, \
|
||||
perl -MThread::Queue -e 1))
|
||||
|
||||
|
||||
$(eval $(call SetupHostCommand,tar,Please install GNU 'tar', \
|
||||
gtar --version 2>&1 | grep GNU, \
|
||||
gnutar --version 2>&1 | grep GNU, \
|
||||
|
||||
@@ -26,13 +26,13 @@ PKG_CONFIG_DEPENDS += \
|
||||
sanitize = $(call tolower,$(subst _,-,$(subst $(space),-,$(1))))
|
||||
|
||||
VERSION_NUMBER:=$(call qstrip,$(CONFIG_VERSION_NUMBER))
|
||||
VERSION_NUMBER:=$(if $(VERSION_NUMBER),$(VERSION_NUMBER),19.07.6)
|
||||
VERSION_NUMBER:=$(if $(VERSION_NUMBER),$(VERSION_NUMBER),19.07.8)
|
||||
|
||||
VERSION_CODE:=$(call qstrip,$(CONFIG_VERSION_CODE))
|
||||
VERSION_CODE:=$(if $(VERSION_CODE),$(VERSION_CODE),r11278-8055e38794)
|
||||
VERSION_CODE:=$(if $(VERSION_CODE),$(VERSION_CODE),r11364-ef56c85848)
|
||||
|
||||
VERSION_REPO:=$(call qstrip,$(CONFIG_VERSION_REPO))
|
||||
VERSION_REPO:=$(if $(VERSION_REPO),$(VERSION_REPO),http://downloads.openwrt.org/releases/19.07.6)
|
||||
VERSION_REPO:=$(if $(VERSION_REPO),$(VERSION_REPO),http://downloads.openwrt.org/releases/19.07.8)
|
||||
|
||||
VERSION_DIST:=$(call qstrip,$(CONFIG_VERSION_DIST))
|
||||
VERSION_DIST:=$(if $(VERSION_DIST),$(VERSION_DIST),OpenWrt)
|
||||
|
||||
@@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/version.mk
|
||||
include $(INCLUDE_DIR)/feeds.mk
|
||||
|
||||
PKG_NAME:=base-files
|
||||
PKG_RELEASE:=204.2
|
||||
PKG_RELEASE:=204.4
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
|
||||
|
||||
@@ -4,8 +4,7 @@
|
||||
START=10
|
||||
USE_PROCD=1
|
||||
|
||||
validate_system_section()
|
||||
{
|
||||
validate_system_section() {
|
||||
uci_load_validate system system "$1" "$2" \
|
||||
'hostname:string:OpenWrt' \
|
||||
'conloglevel:uinteger' \
|
||||
@@ -23,8 +22,9 @@ system_config() {
|
||||
echo "$hostname" > /proc/sys/kernel/hostname
|
||||
[ -z "$conloglevel" -a -z "$buffersize" ] || dmesg ${conloglevel:+-n $conloglevel} ${buffersize:+-s $buffersize}
|
||||
echo "$timezone" > /tmp/TZ
|
||||
[ -n "$zonename" ] && [ -f "/usr/share/zoneinfo/$zonename" ] && \
|
||||
ln -sf "/usr/share/zoneinfo/$zonename" /tmp/localtime && rm -f /tmp/TZ
|
||||
[ -n "$zonename" ] && [ -f "/usr/share/zoneinfo/${zonename// /_}" ] \
|
||||
&& ln -sf "/usr/share/zoneinfo/${zonename// /_}" /tmp/localtime \
|
||||
&& rm -f /tmp/TZ
|
||||
|
||||
# apply timezone to kernel
|
||||
date -k
|
||||
@@ -35,8 +35,7 @@ reload_service() {
|
||||
config_foreach validate_system_section system system_config
|
||||
}
|
||||
|
||||
service_triggers()
|
||||
{
|
||||
service_triggers() {
|
||||
procd_add_reload_trigger "system"
|
||||
procd_add_validation validate_system_section
|
||||
}
|
||||
|
||||
@@ -183,7 +183,7 @@ if VERSIONOPT
|
||||
config VERSION_REPO
|
||||
string
|
||||
prompt "Release repository"
|
||||
default "http://downloads.openwrt.org/releases/19.07.6"
|
||||
default "http://downloads.openwrt.org/releases/19.07.8"
|
||||
help
|
||||
This is the repository address embedded in the image, it defaults
|
||||
to the trunk snapshot repo; the url may contain the following placeholders:
|
||||
|
||||
@@ -8,9 +8,9 @@ PKG_LICENSE_FILES:=
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/greearb/ath10k-ct.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2019-09-09
|
||||
PKG_SOURCE_VERSION:=5e8cd86f90dac966d12df6ece84ac41458d0e95f
|
||||
PKG_MIRROR_HASH:=dc1097f3a7b4b7e346918f206746d00a0b7df07ae3be9b89be55dfaef3cbbe45
|
||||
PKG_SOURCE_DATE:=2021-06-03
|
||||
PKG_SOURCE_VERSION:=b44cd7b2e7b0df5995ece18f358d4dfc40834ba1
|
||||
PKG_MIRROR_HASH:=59f961ad425eb1a48fa9c391a325cc0f23845daec9d12673445d3077f9756cf0
|
||||
|
||||
# Build the 4.19 ath10k-ct driver version. Other options are "-4.16", or
|
||||
# leave un-defined for 4.7 kernel. Probably this should match as closely as
|
||||
|
||||
@@ -20,7 +20,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
|
||||
---
|
||||
--- a/ath10k-4.19/mac.c
|
||||
+++ b/ath10k-4.19/mac.c
|
||||
@@ -157,6 +157,22 @@ u8 ath10k_mac_bitrate_to_idx(const struc
|
||||
@@ -158,6 +158,22 @@ u8 ath10k_mac_bitrate_to_idx(const struc
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
|
||||
static int ath10k_mac_get_max_vht_mcs_map(u16 mcs_map, int nss)
|
||||
{
|
||||
switch ((mcs_map >> (2 * nss)) & 0x3) {
|
||||
@@ -6405,9 +6421,10 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6423,9 +6439,10 @@ static void ath10k_bss_info_changed(stru
|
||||
struct cfg80211_chan_def def;
|
||||
u32 vdev_param, pdev_param, slottime, preamble;
|
||||
u16 bitrate, hw_value;
|
||||
@@ -56,7 +56,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
|
||||
|
||||
mutex_lock(&ar->conf_mutex);
|
||||
|
||||
@@ -6613,6 +6630,30 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6631,6 +6648,30 @@ static void ath10k_bss_info_changed(stru
|
||||
arvif->vdev_id, ret);
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
|
||||
---
|
||||
--- a/ath10k-4.19/mac.c
|
||||
+++ b/ath10k-4.19/mac.c
|
||||
@@ -165,7 +165,7 @@ static int ath10k_mac_get_rate_hw_value(
|
||||
@@ -166,7 +166,7 @@ static int ath10k_mac_get_rate_hw_value(
|
||||
if (ath10k_mac_bitrate_is_cck(bitrate))
|
||||
hw_value_prefix = WMI_RATE_PREAMBLE_CCK << 6;
|
||||
|
||||
@@ -26,7 +26,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
|
||||
if (ath10k_rates[i].bitrate == bitrate)
|
||||
return hw_value_prefix | ath10k_rates[i].hw_value;
|
||||
}
|
||||
@@ -6636,22 +6636,22 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6654,22 +6654,22 @@ static void ath10k_bss_info_changed(stru
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ Origin: other, https://patchwork.kernel.org/patch/10723033/
|
||||
|
||||
--- a/ath10k-4.19/mac.c
|
||||
+++ b/ath10k-4.19/mac.c
|
||||
@@ -6421,8 +6421,8 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6439,8 +6439,8 @@ static void ath10k_bss_info_changed(stru
|
||||
struct cfg80211_chan_def def;
|
||||
u32 vdev_param, pdev_param, slottime, preamble;
|
||||
u16 bitrate, hw_value;
|
||||
@@ -28,9 +28,9 @@ Origin: other, https://patchwork.kernel.org/patch/10723033/
|
||||
enum nl80211_band band;
|
||||
const struct ieee80211_supported_band *sband;
|
||||
|
||||
@@ -6595,7 +6595,11 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6613,7 +6613,11 @@ static void ath10k_bss_info_changed(stru
|
||||
if (changed & BSS_CHANGED_MCAST_RATE &&
|
||||
!WARN_ON(ath10k_mac_vif_chan(arvif->vif, &def))) {
|
||||
!ath10k_mac_vif_chan(arvif->vif, &def)) {
|
||||
band = def.chan->band;
|
||||
- rateidx = vif->bss_conf.mcast_rate[band] - 1;
|
||||
+ mcast_rate = vif->bss_conf.mcast_rate[band];
|
||||
|
||||
@@ -11,7 +11,7 @@ Signed-off-by: Sven Eckelmann <sven@narfation.org>
|
||||
|
||||
--- a/ath10k-4.19/mac.c
|
||||
+++ b/ath10k-4.19/mac.c
|
||||
@@ -6617,6 +6617,7 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6635,6 +6635,7 @@ static void ath10k_bss_info_changed(stru
|
||||
"mac vdev %d mcast_rate %x\n",
|
||||
arvif->vdev_id, rate);
|
||||
|
||||
@@ -19,7 +19,7 @@ Signed-off-by: Sven Eckelmann <sven@narfation.org>
|
||||
vdev_param = ar->wmi.vdev_param->mcast_data_rate;
|
||||
ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id,
|
||||
vdev_param, rate);
|
||||
@@ -6625,6 +6626,7 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6643,6 +6644,7 @@ static void ath10k_bss_info_changed(stru
|
||||
"failed to set mcast rate on vdev %i: %d\n",
|
||||
arvif->vdev_id, ret);
|
||||
|
||||
@@ -27,7 +27,7 @@ Signed-off-by: Sven Eckelmann <sven@narfation.org>
|
||||
vdev_param = ar->wmi.vdev_param->bcast_data_rate;
|
||||
ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id,
|
||||
vdev_param, rate);
|
||||
@@ -6651,6 +6653,7 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -6669,6 +6671,7 @@ static void ath10k_bss_info_changed(stru
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ v13:
|
||||
.patch_load_addr = QCA988X_HW_2_0_PATCH_LOAD_ADDR,
|
||||
.uart_pin = 7,
|
||||
.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL,
|
||||
@@ -137,6 +139,7 @@ static const struct ath10k_hw_params ath
|
||||
@@ -139,6 +141,7 @@ static const struct ath10k_hw_params ath
|
||||
.id = QCA9887_HW_1_0_VERSION,
|
||||
.dev_id = QCA9887_1_0_DEVICE_ID,
|
||||
.name = "qca9887 hw1.0",
|
||||
@@ -137,7 +137,7 @@ v13:
|
||||
.patch_load_addr = QCA9887_HW_1_0_PATCH_LOAD_ADDR,
|
||||
.uart_pin = 7,
|
||||
.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL,
|
||||
@@ -301,6 +304,7 @@ static const struct ath10k_hw_params ath
|
||||
@@ -308,6 +311,7 @@ static const struct ath10k_hw_params ath
|
||||
.id = QCA99X0_HW_2_0_DEV_VERSION,
|
||||
.dev_id = QCA99X0_2_0_DEVICE_ID,
|
||||
.name = "qca99x0 hw2.0",
|
||||
@@ -145,7 +145,7 @@ v13:
|
||||
.patch_load_addr = QCA99X0_HW_2_0_PATCH_LOAD_ADDR,
|
||||
.uart_pin = 7,
|
||||
.otp_exe_param = 0x00000700,
|
||||
@@ -339,6 +343,7 @@ static const struct ath10k_hw_params ath
|
||||
@@ -347,6 +351,7 @@ static const struct ath10k_hw_params ath
|
||||
.id = QCA9984_HW_1_0_DEV_VERSION,
|
||||
.dev_id = QCA9984_1_0_DEVICE_ID,
|
||||
.name = "qca9984/qca9994 hw1.0",
|
||||
@@ -153,7 +153,7 @@ v13:
|
||||
.patch_load_addr = QCA9984_HW_1_0_PATCH_LOAD_ADDR,
|
||||
.uart_pin = 7,
|
||||
.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH,
|
||||
@@ -382,6 +387,7 @@ static const struct ath10k_hw_params ath
|
||||
@@ -391,6 +396,7 @@ static const struct ath10k_hw_params ath
|
||||
.id = QCA9888_HW_2_0_DEV_VERSION,
|
||||
.dev_id = QCA9888_2_0_DEVICE_ID,
|
||||
.name = "qca9888 hw2.0",
|
||||
@@ -161,7 +161,7 @@ v13:
|
||||
.patch_load_addr = QCA9888_HW_2_0_PATCH_LOAD_ADDR,
|
||||
.uart_pin = 7,
|
||||
.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH,
|
||||
@@ -3167,6 +3173,10 @@ int ath10k_core_start(struct ath10k *ar,
|
||||
@@ -3238,6 +3244,10 @@ int ath10k_core_start(struct ath10k *ar,
|
||||
ath10k_wmi_check_apply_board_power_ctl_table(ar);
|
||||
}
|
||||
|
||||
@@ -172,7 +172,7 @@ v13:
|
||||
return 0;
|
||||
|
||||
err_hif_stop:
|
||||
@@ -3421,9 +3431,18 @@ static void ath10k_core_register_work(st
|
||||
@@ -3492,9 +3502,18 @@ static void ath10k_core_register_work(st
|
||||
goto err_spectral_destroy;
|
||||
}
|
||||
|
||||
@@ -191,7 +191,7 @@ v13:
|
||||
err_spectral_destroy:
|
||||
ath10k_spectral_destroy(ar);
|
||||
err_debug_destroy:
|
||||
@@ -3481,6 +3500,8 @@ void ath10k_core_unregister(struct ath10
|
||||
@@ -3552,6 +3571,8 @@ void ath10k_core_unregister(struct ath10
|
||||
if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags))
|
||||
return;
|
||||
|
||||
@@ -210,7 +210,7 @@ v13:
|
||||
|
||||
#include "htt.h"
|
||||
#include "htc.h"
|
||||
@@ -1138,7 +1139,6 @@ struct ath10k {
|
||||
@@ -1141,7 +1142,6 @@ struct ath10k {
|
||||
u32 low_5ghz_chan;
|
||||
u32 high_5ghz_chan;
|
||||
bool ani_enabled;
|
||||
@@ -218,7 +218,7 @@ v13:
|
||||
bool p2p;
|
||||
bool ct_all_pkts_htt; /* CT firmware only: native-wifi for all pkts */
|
||||
|
||||
@@ -1389,6 +1389,13 @@ struct ath10k {
|
||||
@@ -1400,6 +1400,13 @@ struct ath10k {
|
||||
} testmode;
|
||||
|
||||
struct {
|
||||
@@ -394,7 +394,7 @@ v13:
|
||||
+#endif /* _LEDS_H_ */
|
||||
--- a/ath10k-4.19/mac.c
|
||||
+++ b/ath10k-4.19/mac.c
|
||||
@@ -34,6 +34,7 @@
|
||||
@@ -35,6 +35,7 @@
|
||||
#include "wmi-tlv.h"
|
||||
#include "wmi-ops.h"
|
||||
#include "wow.h"
|
||||
@@ -404,7 +404,7 @@ v13:
|
||||
/* Rates */
|
||||
--- a/ath10k-4.19/wmi-ops.h
|
||||
+++ b/ath10k-4.19/wmi-ops.h
|
||||
@@ -218,7 +218,10 @@ struct wmi_ops {
|
||||
@@ -219,7 +219,10 @@ struct wmi_ops {
|
||||
struct sk_buff *(*gen_echo)(struct ath10k *ar, u32 value);
|
||||
struct sk_buff *(*gen_pdev_get_tpc_table_cmdid)(struct ath10k *ar,
|
||||
u32 param);
|
||||
@@ -415,7 +415,7 @@ v13:
|
||||
};
|
||||
|
||||
int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb, u32 cmd_id);
|
||||
@@ -1079,6 +1082,35 @@ ath10k_wmi_force_fw_hang(struct ath10k *
|
||||
@@ -1089,6 +1092,35 @@ ath10k_wmi_force_fw_hang(struct ath10k *
|
||||
return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->force_fw_hang_cmdid);
|
||||
}
|
||||
|
||||
@@ -453,7 +453,7 @@ v13:
|
||||
{
|
||||
--- a/ath10k-4.19/wmi-tlv.c
|
||||
+++ b/ath10k-4.19/wmi-tlv.c
|
||||
@@ -3976,6 +3976,8 @@ static const struct wmi_ops wmi_tlv_ops
|
||||
@@ -3999,6 +3999,8 @@ static const struct wmi_ops wmi_tlv_ops
|
||||
.gen_echo = ath10k_wmi_tlv_op_gen_echo,
|
||||
.gen_vdev_spectral_conf = ath10k_wmi_tlv_op_gen_vdev_spectral_conf,
|
||||
.gen_vdev_spectral_enable = ath10k_wmi_tlv_op_gen_vdev_spectral_enable,
|
||||
@@ -464,7 +464,7 @@ v13:
|
||||
static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = {
|
||||
--- a/ath10k-4.19/wmi.c
|
||||
+++ b/ath10k-4.19/wmi.c
|
||||
@@ -8070,6 +8070,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
|
||||
@@ -8112,6 +8112,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
|
||||
return skb;
|
||||
}
|
||||
|
||||
@@ -514,7 +514,7 @@ v13:
|
||||
static struct sk_buff *
|
||||
ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id,
|
||||
enum wmi_sta_ps_mode psmode)
|
||||
@@ -9821,6 +9864,9 @@ static const struct wmi_ops wmi_ops = {
|
||||
@@ -9865,6 +9908,9 @@ static const struct wmi_ops wmi_ops = {
|
||||
.fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill,
|
||||
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
|
||||
.gen_echo = ath10k_wmi_op_gen_echo,
|
||||
@@ -524,7 +524,7 @@ v13:
|
||||
/* .gen_bcn_tmpl not implemented */
|
||||
/* .gen_prb_tmpl not implemented */
|
||||
/* .gen_p2p_go_bcn_ie not implemented */
|
||||
@@ -9891,6 +9937,8 @@ static const struct wmi_ops wmi_10_1_ops
|
||||
@@ -9935,6 +9981,8 @@ static const struct wmi_ops wmi_10_1_ops
|
||||
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
|
||||
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
|
||||
.gen_echo = ath10k_wmi_op_gen_echo,
|
||||
@@ -533,7 +533,7 @@ v13:
|
||||
/* .gen_bcn_tmpl not implemented */
|
||||
/* .gen_prb_tmpl not implemented */
|
||||
/* .gen_p2p_go_bcn_ie not implemented */
|
||||
@@ -9969,6 +10017,8 @@ static const struct wmi_ops wmi_10_2_ops
|
||||
@@ -10013,6 +10061,8 @@ static const struct wmi_ops wmi_10_2_ops
|
||||
.gen_delba_send = ath10k_wmi_op_gen_delba_send,
|
||||
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
|
||||
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
|
||||
@@ -542,7 +542,7 @@ v13:
|
||||
/* .gen_pdev_enable_adaptive_cca not implemented */
|
||||
};
|
||||
|
||||
@@ -10039,6 +10089,8 @@ static const struct wmi_ops wmi_10_2_4_o
|
||||
@@ -10083,6 +10133,8 @@ static const struct wmi_ops wmi_10_2_4_o
|
||||
.gen_pdev_enable_adaptive_cca =
|
||||
ath10k_wmi_op_gen_pdev_enable_adaptive_cca,
|
||||
.get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype,
|
||||
@@ -551,7 +551,7 @@ v13:
|
||||
/* .gen_bcn_tmpl not implemented */
|
||||
/* .gen_prb_tmpl not implemented */
|
||||
/* .gen_p2p_go_bcn_ie not implemented */
|
||||
@@ -10119,6 +10171,8 @@ static const struct wmi_ops wmi_10_4_ops
|
||||
@@ -10163,6 +10215,8 @@ static const struct wmi_ops wmi_10_4_ops
|
||||
.gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info,
|
||||
.gen_echo = ath10k_wmi_op_gen_echo,
|
||||
.gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config,
|
||||
|
||||
@@ -16,7 +16,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
|
||||
|
||||
--- a/ath10k-4.19/core.h
|
||||
+++ b/ath10k-4.19/core.h
|
||||
@@ -1488,6 +1488,10 @@ struct ath10k {
|
||||
@@ -1500,6 +1500,10 @@ struct ath10k {
|
||||
u8 csi_data[4096];
|
||||
u16 csi_data_len;
|
||||
|
||||
@@ -42,7 +42,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
|
||||
if (ret)
|
||||
--- a/ath10k-4.19/mac.c
|
||||
+++ b/ath10k-4.19/mac.c
|
||||
@@ -9982,7 +9982,7 @@ int ath10k_mac_register(struct ath10k *a
|
||||
@@ -9998,7 +9998,7 @@ int ath10k_mac_register(struct ath10k *a
|
||||
wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
|
||||
|
||||
#ifdef CPTCFG_MAC80211_LEDS
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
From bbf0a8af2261bc7ae39b227ff6a1e9f45a008c27 Mon Sep 17 00:00:00 2001
|
||||
From: Sven Eckelmann <sven.eckelmann@openmesh.com>
|
||||
Date: Mon, 30 Jul 2018 17:31:41 +0200
|
||||
Subject: [PATCH] ath10k: Limit available channels via DT ieee80211-freq-limit
|
||||
|
||||
Tri-band devices (1x 2.4GHz + 2x 5GHz) often incorporate special filters in
|
||||
the RX and TX path. These filtered channel can in theory still be used by
|
||||
the hardware but the signal strength is reduced so much that it makes no
|
||||
sense.
|
||||
|
||||
There is already a DT property to limit the available channels but ath10k
|
||||
has to manually call this functionality to limit the currrently set wiphy
|
||||
channels further.
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
|
||||
|
||||
Forwarded: https://patchwork.kernel.org/patch/10549245/
|
||||
---
|
||||
drivers/net/wireless/ath/ath10k/mac.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- a/ath10k-4.19/mac.c
|
||||
+++ b/ath10k-4.19/mac.c
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
#include "mac.h"
|
||||
|
||||
+#include <net/cfg80211.h>
|
||||
#include <net/mac80211.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/acpi.h>
|
||||
@@ -9706,6 +9707,7 @@ int ath10k_mac_register(struct ath10k *a
|
||||
ar->hw->wiphy->bands[NL80211_BAND_5GHZ] = band;
|
||||
}
|
||||
|
||||
+ wiphy_read_of_freq_limits(ar->hw->wiphy);
|
||||
ath10k_mac_setup_ht_vht_cap(ar);
|
||||
|
||||
ar->hw->wiphy->interface_modes =
|
||||
@@ -10,10 +10,10 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=mac80211
|
||||
|
||||
PKG_VERSION:=4.19.161-1
|
||||
PKG_VERSION:=4.19.193-1
|
||||
PKG_RELEASE:=1
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v4.19.161/
|
||||
PKG_HASH:=01a4173ba180eb8ca67c898239d5accb49a3ea9aea51510e17d5c937d6e93f9a
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v4.19.193/
|
||||
PKG_HASH:=560c0ce9e4079fd26d046e188453e008a5e766e5409d950c4749a23da53d6d0a
|
||||
|
||||
PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
|
||||
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
|
||||
|
||||
@@ -24,8 +24,9 @@ drv_mac80211_init_device_config() {
|
||||
config_add_string path phy 'macaddr:macaddr'
|
||||
config_add_string hwmode
|
||||
config_add_string tx_burst
|
||||
config_add_string distance
|
||||
config_add_int beacon_int chanbw frag rts
|
||||
config_add_int rxantenna txantenna antenna_gain txpower distance
|
||||
config_add_int rxantenna txantenna antenna_gain txpower
|
||||
config_add_boolean noscan ht_coex
|
||||
config_add_array ht_capab
|
||||
config_add_array channels
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/wireless/ath/ath9k/debug.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/debug.c
|
||||
@@ -1374,6 +1374,53 @@ void ath9k_deinit_debug(struct ath_softc
|
||||
@@ -1377,6 +1377,53 @@ void ath9k_deinit_debug(struct ath_softc
|
||||
ath9k_cmn_spectral_deinit_debug(&sc->spec_priv);
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
int ath9k_init_debug(struct ath_hw *ah)
|
||||
{
|
||||
struct ath_common *common = ath9k_hw_common(ah);
|
||||
@@ -1393,6 +1440,8 @@ int ath9k_init_debug(struct ath_hw *ah)
|
||||
@@ -1396,6 +1443,8 @@ int ath9k_init_debug(struct ath_hw *ah)
|
||||
ath9k_tx99_init_debug(sc);
|
||||
ath9k_cmn_spectral_init_debug(&sc->spec_priv, sc->debug.debugfs_phy);
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/wireless/ath/ath9k/debug.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/debug.c
|
||||
@@ -1421,6 +1421,52 @@ static const struct file_operations fops
|
||||
@@ -1424,6 +1424,52 @@ static const struct file_operations fops
|
||||
.owner = THIS_MODULE
|
||||
};
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
int ath9k_init_debug(struct ath_hw *ah)
|
||||
{
|
||||
struct ath_common *common = ath9k_hw_common(ah);
|
||||
@@ -1442,6 +1488,8 @@ int ath9k_init_debug(struct ath_hw *ah)
|
||||
@@ -1445,6 +1491,8 @@ int ath9k_init_debug(struct ath_hw *ah)
|
||||
|
||||
debugfs_create_file("eeprom", S_IRUSR, sc->debug.debugfs_phy, sc,
|
||||
&fops_eeprom);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
|
||||
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
|
||||
@@ -850,6 +850,9 @@ static inline int ath9k_dump_btcoex(stru
|
||||
@@ -851,6 +851,9 @@ static inline int ath9k_dump_btcoex(stru
|
||||
#ifdef CPTCFG_MAC80211_LEDS
|
||||
void ath_init_leds(struct ath_softc *sc);
|
||||
void ath_deinit_leds(struct ath_softc *sc);
|
||||
@@ -10,7 +10,7 @@
|
||||
#else
|
||||
static inline void ath_init_leds(struct ath_softc *sc)
|
||||
{
|
||||
@@ -991,6 +994,13 @@ void ath_ant_comb_scan(struct ath_softc
|
||||
@@ -992,6 +995,13 @@ void ath_ant_comb_scan(struct ath_softc
|
||||
#define AIRTIME_USE_NEW_QUEUES BIT(2)
|
||||
#define AIRTIME_ACTIVE(flags) (!!(flags & (AIRTIME_USE_TX|AIRTIME_USE_RX)))
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
struct ath_softc {
|
||||
struct ieee80211_hw *hw;
|
||||
struct device *dev;
|
||||
@@ -1046,9 +1056,8 @@ struct ath_softc {
|
||||
@@ -1047,9 +1057,8 @@ struct ath_softc {
|
||||
spinlock_t chan_lock;
|
||||
|
||||
#ifdef CPTCFG_MAC80211_LEDS
|
||||
@@ -192,7 +192,7 @@
|
||||
#endif
|
||||
--- a/drivers/net/wireless/ath/ath9k/debug.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/debug.c
|
||||
@@ -1466,6 +1466,61 @@ static const struct file_operations fops
|
||||
@@ -1469,6 +1469,61 @@ static const struct file_operations fops
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@@ -254,7 +254,7 @@
|
||||
|
||||
int ath9k_init_debug(struct ath_hw *ah)
|
||||
{
|
||||
@@ -1490,6 +1545,10 @@ int ath9k_init_debug(struct ath_hw *ah)
|
||||
@@ -1493,6 +1548,10 @@ int ath9k_init_debug(struct ath_hw *ah)
|
||||
&fops_eeprom);
|
||||
debugfs_create_file("chanbw", S_IRUSR | S_IWUSR, sc->debug.debugfs_phy,
|
||||
sc, &fops_chanbw);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/wireless/ath/ath9k/debug.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/debug.c
|
||||
@@ -1522,6 +1522,50 @@ static const struct file_operations fops
|
||||
@@ -1525,6 +1525,50 @@ static const struct file_operations fops
|
||||
#endif
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
int ath9k_init_debug(struct ath_hw *ah)
|
||||
{
|
||||
struct ath_common *common = ath9k_hw_common(ah);
|
||||
@@ -1549,6 +1593,8 @@ int ath9k_init_debug(struct ath_hw *ah)
|
||||
@@ -1552,6 +1596,8 @@ int ath9k_init_debug(struct ath_hw *ah)
|
||||
debugfs_create_file("gpio_led", S_IWUSR,
|
||||
sc->debug.debugfs_phy, sc, &fops_gpio_led);
|
||||
#endif
|
||||
|
||||
@@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
#include "common.h"
|
||||
#include "debug.h"
|
||||
@@ -1001,6 +1002,14 @@ struct ath_led {
|
||||
@@ -1002,6 +1003,14 @@ struct ath_led {
|
||||
struct led_classdev cdev;
|
||||
};
|
||||
|
||||
@@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
struct ath_softc {
|
||||
struct ieee80211_hw *hw;
|
||||
struct device *dev;
|
||||
@@ -1058,6 +1067,9 @@ struct ath_softc {
|
||||
@@ -1059,6 +1068,9 @@ struct ath_softc {
|
||||
#ifdef CPTCFG_MAC80211_LEDS
|
||||
const char *led_default_trigger;
|
||||
struct list_head leds;
|
||||
|
||||
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
|
||||
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
|
||||
@@ -1069,6 +1069,7 @@ struct ath_softc {
|
||||
@@ -1070,6 +1070,7 @@ struct ath_softc {
|
||||
struct list_head leds;
|
||||
#ifdef CONFIG_GPIOLIB
|
||||
struct ath9k_gpio_chip *gpiochip;
|
||||
|
||||
@@ -325,7 +325,7 @@
|
||||
|
||||
#include "common.h"
|
||||
#include "debug.h"
|
||||
@@ -1023,6 +1024,9 @@ struct ath_softc {
|
||||
@@ -1024,6 +1025,9 @@ struct ath_softc {
|
||||
struct ath_hw *sc_ah;
|
||||
void __iomem *mem;
|
||||
int irq;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/wireless/ath/ath10k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath10k/mac.c
|
||||
@@ -8300,6 +8300,21 @@ static int ath10k_mac_init_rd(struct ath
|
||||
@@ -8293,6 +8293,21 @@ static int ath10k_mac_init_rd(struct ath
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
int ath10k_mac_register(struct ath10k *ar)
|
||||
{
|
||||
static const u32 cipher_suites[] = {
|
||||
@@ -8584,6 +8599,12 @@ int ath10k_mac_register(struct ath10k *a
|
||||
@@ -8577,6 +8592,12 @@ int ath10k_mac_register(struct ath10k *a
|
||||
|
||||
wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ v9: use SM/MS macros from code.h to simplify shift/mask handling
|
||||
}
|
||||
--- a/drivers/net/wireless/ath/ath10k/wmi.c
|
||||
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
|
||||
@@ -7391,12 +7391,7 @@ ath10k_wmi_peer_assoc_fill_10_4(struct a
|
||||
@@ -7396,12 +7396,7 @@ ath10k_wmi_peer_assoc_fill_10_4(struct a
|
||||
struct wmi_10_4_peer_assoc_complete_cmd *cmd = buf;
|
||||
|
||||
ath10k_wmi_peer_assoc_fill_10_2(ar, buf, arg);
|
||||
|
||||
@@ -13,7 +13,7 @@ v2: fix trailing whitespace issue and fix some typos within the commit note
|
||||
2 files changed, 8 insertions(+), 10 deletions(-)
|
||||
--- a/drivers/net/wireless/ath/ath10k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath10k/mac.c
|
||||
@@ -4483,13 +4483,6 @@ static struct ieee80211_sta_vht_cap ath1
|
||||
@@ -4476,13 +4476,6 @@ static struct ieee80211_sta_vht_cap ath1
|
||||
vht_cap.cap |= val;
|
||||
}
|
||||
|
||||
|
||||
@@ -464,7 +464,7 @@ v13:
|
||||
{
|
||||
--- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c
|
||||
+++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
|
||||
@@ -3991,6 +3991,8 @@ static const struct wmi_ops wmi_tlv_ops
|
||||
@@ -3999,6 +3999,8 @@ static const struct wmi_ops wmi_tlv_ops
|
||||
.gen_echo = ath10k_wmi_tlv_op_gen_echo,
|
||||
.gen_vdev_spectral_conf = ath10k_wmi_tlv_op_gen_vdev_spectral_conf,
|
||||
.gen_vdev_spectral_enable = ath10k_wmi_tlv_op_gen_vdev_spectral_enable,
|
||||
@@ -475,7 +475,7 @@ v13:
|
||||
static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = {
|
||||
--- a/drivers/net/wireless/ath/ath10k/wmi.c
|
||||
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
|
||||
@@ -7211,6 +7211,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
|
||||
@@ -7216,6 +7216,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
|
||||
return skb;
|
||||
}
|
||||
|
||||
@@ -525,7 +525,7 @@ v13:
|
||||
static struct sk_buff *
|
||||
ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id,
|
||||
enum wmi_sta_ps_mode psmode)
|
||||
@@ -8822,6 +8865,9 @@ static const struct wmi_ops wmi_ops = {
|
||||
@@ -8827,6 +8870,9 @@ static const struct wmi_ops wmi_ops = {
|
||||
.fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill,
|
||||
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
|
||||
.gen_echo = ath10k_wmi_op_gen_echo,
|
||||
@@ -535,7 +535,7 @@ v13:
|
||||
/* .gen_bcn_tmpl not implemented */
|
||||
/* .gen_prb_tmpl not implemented */
|
||||
/* .gen_p2p_go_bcn_ie not implemented */
|
||||
@@ -8892,6 +8938,8 @@ static const struct wmi_ops wmi_10_1_ops
|
||||
@@ -8897,6 +8943,8 @@ static const struct wmi_ops wmi_10_1_ops
|
||||
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
|
||||
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
|
||||
.gen_echo = ath10k_wmi_op_gen_echo,
|
||||
@@ -544,7 +544,7 @@ v13:
|
||||
/* .gen_bcn_tmpl not implemented */
|
||||
/* .gen_prb_tmpl not implemented */
|
||||
/* .gen_p2p_go_bcn_ie not implemented */
|
||||
@@ -8963,6 +9011,8 @@ static const struct wmi_ops wmi_10_2_ops
|
||||
@@ -8968,6 +9016,8 @@ static const struct wmi_ops wmi_10_2_ops
|
||||
.gen_delba_send = ath10k_wmi_op_gen_delba_send,
|
||||
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
|
||||
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
|
||||
@@ -553,7 +553,7 @@ v13:
|
||||
/* .gen_pdev_enable_adaptive_cca not implemented */
|
||||
};
|
||||
|
||||
@@ -9033,6 +9083,8 @@ static const struct wmi_ops wmi_10_2_4_o
|
||||
@@ -9038,6 +9088,8 @@ static const struct wmi_ops wmi_10_2_4_o
|
||||
.gen_pdev_enable_adaptive_cca =
|
||||
ath10k_wmi_op_gen_pdev_enable_adaptive_cca,
|
||||
.get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype,
|
||||
@@ -562,7 +562,7 @@ v13:
|
||||
/* .gen_bcn_tmpl not implemented */
|
||||
/* .gen_prb_tmpl not implemented */
|
||||
/* .gen_p2p_go_bcn_ie not implemented */
|
||||
@@ -9112,6 +9164,8 @@ static const struct wmi_ops wmi_10_4_ops
|
||||
@@ -9117,6 +9169,8 @@ static const struct wmi_ops wmi_10_4_ops
|
||||
.gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info,
|
||||
.gen_echo = ath10k_wmi_op_gen_echo,
|
||||
.gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config,
|
||||
|
||||
@@ -42,7 +42,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
|
||||
if (ret)
|
||||
--- a/drivers/net/wireless/ath/ath10k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath10k/mac.c
|
||||
@@ -8616,7 +8616,7 @@ int ath10k_mac_register(struct ath10k *a
|
||||
@@ -8609,7 +8609,7 @@ int ath10k_mac_register(struct ath10k *a
|
||||
wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
|
||||
|
||||
#ifdef CPTCFG_MAC80211_LEDS
|
||||
|
||||
@@ -43,7 +43,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
|
||||
static int ath10k_mac_get_max_vht_mcs_map(u16 mcs_map, int nss)
|
||||
{
|
||||
switch ((mcs_map >> (2 * nss)) & 0x3) {
|
||||
@@ -5485,9 +5501,10 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -5478,9 +5494,10 @@ static void ath10k_bss_info_changed(stru
|
||||
struct cfg80211_chan_def def;
|
||||
u32 vdev_param, pdev_param, slottime, preamble;
|
||||
u16 bitrate, hw_value;
|
||||
@@ -56,7 +56,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
|
||||
|
||||
mutex_lock(&ar->conf_mutex);
|
||||
|
||||
@@ -5693,6 +5710,30 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -5686,6 +5703,30 @@ static void ath10k_bss_info_changed(stru
|
||||
arvif->vdev_id, ret);
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
|
||||
if (ath10k_rates[i].bitrate == bitrate)
|
||||
return hw_value_prefix | ath10k_rates[i].hw_value;
|
||||
}
|
||||
@@ -5716,22 +5716,22 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -5709,22 +5709,22 @@ static void ath10k_bss_info_changed(stru
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ Origin: other, https://patchwork.kernel.org/patch/10723033/
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath10k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath10k/mac.c
|
||||
@@ -5501,8 +5501,8 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -5494,8 +5494,8 @@ static void ath10k_bss_info_changed(stru
|
||||
struct cfg80211_chan_def def;
|
||||
u32 vdev_param, pdev_param, slottime, preamble;
|
||||
u16 bitrate, hw_value;
|
||||
@@ -28,7 +28,7 @@ Origin: other, https://patchwork.kernel.org/patch/10723033/
|
||||
enum nl80211_band band;
|
||||
const struct ieee80211_supported_band *sband;
|
||||
|
||||
@@ -5675,7 +5675,11 @@ static void ath10k_bss_info_changed(stru
|
||||
@@ -5668,7 +5668,11 @@ static void ath10k_bss_info_changed(stru
|
||||
if (changed & BSS_CHANGED_MCAST_RATE &&
|
||||
!ath10k_mac_vif_chan(arvif->vif, &def)) {
|
||||
band = def.chan->band;
|
||||
|
||||
@@ -17,7 +17,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
|
||||
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
|
||||
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
|
||||
@@ -6654,6 +6654,12 @@ static s32 brcmf_config_dongle(struct br
|
||||
@@ -6657,6 +6657,12 @@ static s32 brcmf_config_dongle(struct br
|
||||
|
||||
brcmf_configure_arp_nd_offload(ifp, true);
|
||||
|
||||
|
||||
@@ -1603,7 +1603,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -5338,6 +5381,7 @@ static void brcmf_clear_assoc_ies(struct
|
||||
@@ -5341,6 +5384,7 @@ static void brcmf_clear_assoc_ies(struct
|
||||
static s32 brcmf_get_assoc_ies(struct brcmf_cfg80211_info *cfg,
|
||||
struct brcmf_if *ifp)
|
||||
{
|
||||
@@ -1611,7 +1611,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
struct brcmf_cfg80211_assoc_ielen_le *assoc_info;
|
||||
struct brcmf_cfg80211_connect_info *conn_info = cfg_to_conn(cfg);
|
||||
u32 req_len;
|
||||
@@ -5349,7 +5393,7 @@ static s32 brcmf_get_assoc_ies(struct br
|
||||
@@ -5352,7 +5396,7 @@ static s32 brcmf_get_assoc_ies(struct br
|
||||
err = brcmf_fil_iovar_data_get(ifp, "assoc_info",
|
||||
cfg->extra_buf, WL_ASSOC_INFO_MAX);
|
||||
if (err) {
|
||||
@@ -1620,7 +1620,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return err;
|
||||
}
|
||||
assoc_info =
|
||||
@@ -5361,7 +5405,7 @@ static s32 brcmf_get_assoc_ies(struct br
|
||||
@@ -5364,7 +5408,7 @@ static s32 brcmf_get_assoc_ies(struct br
|
||||
cfg->extra_buf,
|
||||
WL_ASSOC_INFO_MAX);
|
||||
if (err) {
|
||||
@@ -1629,7 +1629,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return err;
|
||||
}
|
||||
conn_info->req_ie_len = req_len;
|
||||
@@ -5379,7 +5423,7 @@ static s32 brcmf_get_assoc_ies(struct br
|
||||
@@ -5382,7 +5426,7 @@ static s32 brcmf_get_assoc_ies(struct br
|
||||
cfg->extra_buf,
|
||||
WL_ASSOC_INFO_MAX);
|
||||
if (err) {
|
||||
@@ -1638,7 +1638,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return err;
|
||||
}
|
||||
conn_info->resp_ie_len = resp_len;
|
||||
@@ -5508,6 +5552,7 @@ brcmf_notify_connect_status_ap(struct br
|
||||
@@ -5511,6 +5555,7 @@ brcmf_notify_connect_status_ap(struct br
|
||||
struct net_device *ndev,
|
||||
const struct brcmf_event_msg *e, void *data)
|
||||
{
|
||||
@@ -1646,7 +1646,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
static int generation;
|
||||
u32 event = e->event_code;
|
||||
u32 reason = e->reason;
|
||||
@@ -5525,7 +5570,7 @@ brcmf_notify_connect_status_ap(struct br
|
||||
@@ -5528,7 +5573,7 @@ brcmf_notify_connect_status_ap(struct br
|
||||
if (((event == BRCMF_E_ASSOC_IND) || (event == BRCMF_E_REASSOC_IND)) &&
|
||||
(reason == BRCMF_E_STATUS_SUCCESS)) {
|
||||
if (!data) {
|
||||
@@ -1655,7 +1655,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -5817,6 +5862,7 @@ static void init_vif_event(struct brcmf_
|
||||
@@ -5820,6 +5865,7 @@ static void init_vif_event(struct brcmf_
|
||||
|
||||
static s32 brcmf_dongle_roam(struct brcmf_if *ifp)
|
||||
{
|
||||
@@ -1663,7 +1663,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
s32 err;
|
||||
u32 bcn_timeout;
|
||||
__le32 roamtrigger[2];
|
||||
@@ -5829,7 +5875,7 @@ static s32 brcmf_dongle_roam(struct brcm
|
||||
@@ -5832,7 +5878,7 @@ static s32 brcmf_dongle_roam(struct brcm
|
||||
bcn_timeout = BRCMF_DEFAULT_BCN_TIMEOUT_ROAM_ON;
|
||||
err = brcmf_fil_iovar_int_set(ifp, "bcn_timeout", bcn_timeout);
|
||||
if (err) {
|
||||
@@ -1672,7 +1672,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
goto roam_setup_done;
|
||||
}
|
||||
|
||||
@@ -5841,7 +5887,7 @@ static s32 brcmf_dongle_roam(struct brcm
|
||||
@@ -5844,7 +5890,7 @@ static s32 brcmf_dongle_roam(struct brcm
|
||||
err = brcmf_fil_iovar_int_set(ifp, "roam_off",
|
||||
ifp->drvr->settings->roamoff);
|
||||
if (err) {
|
||||
@@ -1681,7 +1681,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
goto roam_setup_done;
|
||||
}
|
||||
|
||||
@@ -5850,7 +5896,7 @@ static s32 brcmf_dongle_roam(struct brcm
|
||||
@@ -5853,7 +5899,7 @@ static s32 brcmf_dongle_roam(struct brcm
|
||||
err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_TRIGGER,
|
||||
(void *)roamtrigger, sizeof(roamtrigger));
|
||||
if (err) {
|
||||
@@ -1690,7 +1690,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
goto roam_setup_done;
|
||||
}
|
||||
|
||||
@@ -5859,7 +5905,7 @@ static s32 brcmf_dongle_roam(struct brcm
|
||||
@@ -5862,7 +5908,7 @@ static s32 brcmf_dongle_roam(struct brcm
|
||||
err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_DELTA,
|
||||
(void *)roam_delta, sizeof(roam_delta));
|
||||
if (err) {
|
||||
@@ -1699,7 +1699,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
goto roam_setup_done;
|
||||
}
|
||||
|
||||
@@ -5870,25 +5916,26 @@ roam_setup_done:
|
||||
@@ -5873,25 +5919,26 @@ roam_setup_done:
|
||||
static s32
|
||||
brcmf_dongle_scantime(struct brcmf_if *ifp)
|
||||
{
|
||||
@@ -1729,7 +1729,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
goto dongle_scantime_out;
|
||||
}
|
||||
|
||||
@@ -5920,10 +5967,10 @@ static void brcmf_update_bw40_channel_fl
|
||||
@@ -5923,10 +5970,10 @@ static void brcmf_update_bw40_channel_fl
|
||||
static int brcmf_construct_chaninfo(struct brcmf_cfg80211_info *cfg,
|
||||
u32 bw_cap[])
|
||||
{
|
||||
@@ -1741,7 +1741,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
struct brcmf_chanspec_list *list;
|
||||
struct brcmu_chan ch;
|
||||
int err;
|
||||
@@ -5942,11 +5989,10 @@ static int brcmf_construct_chaninfo(stru
|
||||
@@ -5945,11 +5992,10 @@ static int brcmf_construct_chaninfo(stru
|
||||
err = brcmf_fil_iovar_data_get(ifp, "chanspecs", pbuf,
|
||||
BRCMF_DCMD_MEDLEN);
|
||||
if (err) {
|
||||
@@ -1754,7 +1754,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
band = wiphy->bands[NL80211_BAND_2GHZ];
|
||||
if (band)
|
||||
for (i = 0; i < band->n_channels; i++)
|
||||
@@ -5966,7 +6012,8 @@ static int brcmf_construct_chaninfo(stru
|
||||
@@ -5969,7 +6015,8 @@ static int brcmf_construct_chaninfo(stru
|
||||
} else if (ch.band == BRCMU_CHAN_BAND_5G) {
|
||||
band = wiphy->bands[NL80211_BAND_5GHZ];
|
||||
} else {
|
||||
@@ -1764,7 +1764,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
continue;
|
||||
}
|
||||
if (!band)
|
||||
@@ -5989,8 +6036,8 @@ static int brcmf_construct_chaninfo(stru
|
||||
@@ -5992,8 +6039,8 @@ static int brcmf_construct_chaninfo(stru
|
||||
/* It seems firmware supports some channel we never
|
||||
* considered. Something new in IEEE standard?
|
||||
*/
|
||||
@@ -1775,7 +1775,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -6036,6 +6083,7 @@ fail_pbuf:
|
||||
@@ -6039,6 +6086,7 @@ fail_pbuf:
|
||||
|
||||
static int brcmf_enable_bw40_2g(struct brcmf_cfg80211_info *cfg)
|
||||
{
|
||||
@@ -1783,7 +1783,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
struct brcmf_if *ifp = brcmf_get_ifp(cfg->pub, 0);
|
||||
struct ieee80211_supported_band *band;
|
||||
struct brcmf_fil_bwcap_le band_bwcap;
|
||||
@@ -6082,7 +6130,7 @@ static int brcmf_enable_bw40_2g(struct b
|
||||
@@ -6085,7 +6133,7 @@ static int brcmf_enable_bw40_2g(struct b
|
||||
err = brcmf_fil_iovar_data_get(ifp, "chanspecs", pbuf,
|
||||
BRCMF_DCMD_MEDLEN);
|
||||
if (err) {
|
||||
@@ -1792,7 +1792,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
kfree(pbuf);
|
||||
return err;
|
||||
}
|
||||
@@ -6113,6 +6161,7 @@ static int brcmf_enable_bw40_2g(struct b
|
||||
@@ -6116,6 +6164,7 @@ static int brcmf_enable_bw40_2g(struct b
|
||||
|
||||
static void brcmf_get_bwcap(struct brcmf_if *ifp, u32 bw_cap[])
|
||||
{
|
||||
@@ -1800,7 +1800,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
u32 band, mimo_bwcap;
|
||||
int err;
|
||||
|
||||
@@ -6148,7 +6197,7 @@ static void brcmf_get_bwcap(struct brcmf
|
||||
@@ -6151,7 +6200,7 @@ static void brcmf_get_bwcap(struct brcmf
|
||||
bw_cap[NL80211_BAND_5GHZ] |= WLC_BW_20MHZ_BIT;
|
||||
break;
|
||||
default:
|
||||
@@ -1809,7 +1809,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6224,7 +6273,7 @@ static void brcmf_update_vht_cap(struct
|
||||
@@ -6227,7 +6276,7 @@ static void brcmf_update_vht_cap(struct
|
||||
static int brcmf_setup_wiphybands(struct brcmf_cfg80211_info *cfg)
|
||||
{
|
||||
struct brcmf_if *ifp = brcmf_get_ifp(cfg->pub, 0);
|
||||
@@ -1818,7 +1818,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
u32 nmode = 0;
|
||||
u32 vhtmode = 0;
|
||||
u32 bw_cap[2] = { WLC_BW_20MHZ_BIT, WLC_BW_20MHZ_BIT };
|
||||
@@ -6240,7 +6289,7 @@ static int brcmf_setup_wiphybands(struct
|
||||
@@ -6243,7 +6292,7 @@ static int brcmf_setup_wiphybands(struct
|
||||
(void)brcmf_fil_iovar_int_get(ifp, "vhtmode", &vhtmode);
|
||||
err = brcmf_fil_iovar_int_get(ifp, "nmode", &nmode);
|
||||
if (err) {
|
||||
@@ -1827,7 +1827,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
} else {
|
||||
brcmf_get_bwcap(ifp, bw_cap);
|
||||
}
|
||||
@@ -6250,7 +6299,7 @@ static int brcmf_setup_wiphybands(struct
|
||||
@@ -6253,7 +6302,7 @@ static int brcmf_setup_wiphybands(struct
|
||||
|
||||
err = brcmf_fil_iovar_int_get(ifp, "rxchain", &rxchain);
|
||||
if (err) {
|
||||
@@ -1836,7 +1836,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
nchain = 1;
|
||||
} else {
|
||||
for (nchain = 0; rxchain; nchain++)
|
||||
@@ -6260,7 +6309,7 @@ static int brcmf_setup_wiphybands(struct
|
||||
@@ -6263,7 +6312,7 @@ static int brcmf_setup_wiphybands(struct
|
||||
|
||||
err = brcmf_construct_chaninfo(cfg, bw_cap);
|
||||
if (err) {
|
||||
@@ -1845,7 +1845,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -6272,7 +6321,6 @@ static int brcmf_setup_wiphybands(struct
|
||||
@@ -6275,7 +6324,6 @@ static int brcmf_setup_wiphybands(struct
|
||||
&txbf_bfr_cap);
|
||||
}
|
||||
|
||||
@@ -1853,7 +1853,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
for (i = 0; i < ARRAY_SIZE(wiphy->bands); i++) {
|
||||
band = wiphy->bands[i];
|
||||
if (band == NULL)
|
||||
@@ -6473,7 +6521,7 @@ static void brcmf_wiphy_wowl_params(stru
|
||||
@@ -6476,7 +6524,7 @@ static void brcmf_wiphy_wowl_params(stru
|
||||
wowl = kmemdup(&brcmf_wowlan_support, sizeof(brcmf_wowlan_support),
|
||||
GFP_KERNEL);
|
||||
if (!wowl) {
|
||||
@@ -1862,7 +1862,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
wiphy->wowlan = &brcmf_wowlan_support;
|
||||
return;
|
||||
}
|
||||
@@ -6570,7 +6618,7 @@ static int brcmf_setup_wiphy(struct wiph
|
||||
@@ -6573,7 +6621,7 @@ static int brcmf_setup_wiphy(struct wiph
|
||||
err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_BANDLIST, &bandlist,
|
||||
sizeof(bandlist));
|
||||
if (err) {
|
||||
@@ -1871,7 +1871,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return err;
|
||||
}
|
||||
/* first entry in bandlist is number of bands */
|
||||
@@ -6619,6 +6667,7 @@ static int brcmf_setup_wiphy(struct wiph
|
||||
@@ -6622,6 +6670,7 @@ static int brcmf_setup_wiphy(struct wiph
|
||||
|
||||
static s32 brcmf_config_dongle(struct brcmf_cfg80211_info *cfg)
|
||||
{
|
||||
@@ -1879,7 +1879,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
struct net_device *ndev;
|
||||
struct wireless_dev *wdev;
|
||||
struct brcmf_if *ifp;
|
||||
@@ -6656,7 +6705,7 @@ static s32 brcmf_config_dongle(struct br
|
||||
@@ -6659,7 +6708,7 @@ static s32 brcmf_config_dongle(struct br
|
||||
|
||||
err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_FAKEFRAG, 1);
|
||||
if (err) {
|
||||
@@ -1888,7 +1888,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
goto default_conf_out;
|
||||
}
|
||||
|
||||
@@ -6848,8 +6897,8 @@ static void brcmf_cfg80211_reg_notifier(
|
||||
@@ -6851,8 +6900,8 @@ static void brcmf_cfg80211_reg_notifier(
|
||||
/* ignore non-ISO3166 country codes */
|
||||
for (i = 0; i < 2; i++)
|
||||
if (req->alpha2[i] < 'A' || req->alpha2[i] > 'Z') {
|
||||
@@ -1899,7 +1899,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -6858,7 +6907,7 @@ static void brcmf_cfg80211_reg_notifier(
|
||||
@@ -6861,7 +6910,7 @@ static void brcmf_cfg80211_reg_notifier(
|
||||
|
||||
err = brcmf_fil_iovar_data_get(ifp, "country", &ccreq, sizeof(ccreq));
|
||||
if (err) {
|
||||
@@ -1908,7 +1908,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -6868,7 +6917,7 @@ static void brcmf_cfg80211_reg_notifier(
|
||||
@@ -6871,7 +6920,7 @@ static void brcmf_cfg80211_reg_notifier(
|
||||
|
||||
err = brcmf_fil_iovar_data_set(ifp, "country", &ccreq, sizeof(ccreq));
|
||||
if (err) {
|
||||
@@ -1917,7 +1917,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return;
|
||||
}
|
||||
brcmf_setup_wiphybands(cfg);
|
||||
@@ -6914,13 +6963,13 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
@@ -6917,13 +6966,13 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
u16 *cap = NULL;
|
||||
|
||||
if (!ndev) {
|
||||
@@ -1933,7 +1933,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -6941,7 +6990,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
@@ -6944,7 +6993,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
|
||||
err = wl_init_priv(cfg);
|
||||
if (err) {
|
||||
@@ -1942,7 +1942,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
brcmf_free_vif(vif);
|
||||
goto wiphy_out;
|
||||
}
|
||||
@@ -6950,7 +6999,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
@@ -6953,7 +7002,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
/* determine d11 io type before wiphy setup */
|
||||
err = brcmf_fil_cmd_int_get(ifp, BRCMF_C_GET_VERSION, &io_type);
|
||||
if (err) {
|
||||
@@ -1951,7 +1951,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
goto priv_out;
|
||||
}
|
||||
cfg->d11inf.io_type = (u8)io_type;
|
||||
@@ -6984,13 +7033,13 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
@@ -6987,13 +7036,13 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
#endif
|
||||
err = wiphy_register(wiphy);
|
||||
if (err < 0) {
|
||||
@@ -1967,7 +1967,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
goto wiphy_unreg_out;
|
||||
}
|
||||
|
||||
@@ -7008,24 +7057,24 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
@@ -7011,24 +7060,24 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
|
||||
err = brcmf_fweh_activate_events(ifp);
|
||||
if (err) {
|
||||
@@ -1996,7 +1996,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
brcmf_btcoex_detach(cfg);
|
||||
brcmf_p2p_detach(&cfg->p2p);
|
||||
goto wiphy_unreg_out;
|
||||
@@ -7045,7 +7094,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
@@ -7048,7 +7097,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
/* (re-) activate FWEH event handling */
|
||||
err = brcmf_fweh_activate_events(ifp);
|
||||
if (err) {
|
||||
|
||||
@@ -18,7 +18,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
|
||||
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
|
||||
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
|
||||
@@ -6047,11 +6047,18 @@ static int brcmf_construct_chaninfo(stru
|
||||
@@ -6050,11 +6050,18 @@ static int brcmf_construct_chaninfo(stru
|
||||
/* assuming the chanspecs order is HT20,
|
||||
* HT40 upper, HT40 lower, and VHT80.
|
||||
*/
|
||||
|
||||
@@ -18,7 +18,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
|
||||
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
|
||||
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
|
||||
@@ -6048,6 +6048,9 @@ static int brcmf_construct_chaninfo(stru
|
||||
@@ -6051,6 +6051,9 @@ static int brcmf_construct_chaninfo(stru
|
||||
* HT40 upper, HT40 lower, and VHT80.
|
||||
*/
|
||||
switch (ch.bw) {
|
||||
|
||||
@@ -1864,7 +1864,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -5381,7 +5425,7 @@ static void brcmf_clear_assoc_ies(struct
|
||||
@@ -5384,7 +5428,7 @@ static void brcmf_clear_assoc_ies(struct
|
||||
static s32 brcmf_get_assoc_ies(struct brcmf_cfg80211_info *cfg,
|
||||
struct brcmf_if *ifp)
|
||||
{
|
||||
@@ -1873,7 +1873,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
struct brcmf_cfg80211_assoc_ielen_le *assoc_info;
|
||||
struct brcmf_cfg80211_connect_info *conn_info = cfg_to_conn(cfg);
|
||||
u32 req_len;
|
||||
@@ -5393,7 +5437,7 @@ static s32 brcmf_get_assoc_ies(struct br
|
||||
@@ -5396,7 +5440,7 @@ static s32 brcmf_get_assoc_ies(struct br
|
||||
err = brcmf_fil_iovar_data_get(ifp, "assoc_info",
|
||||
cfg->extra_buf, WL_ASSOC_INFO_MAX);
|
||||
if (err) {
|
||||
@@ -1882,7 +1882,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return err;
|
||||
}
|
||||
assoc_info =
|
||||
@@ -5405,7 +5449,7 @@ static s32 brcmf_get_assoc_ies(struct br
|
||||
@@ -5408,7 +5452,7 @@ static s32 brcmf_get_assoc_ies(struct br
|
||||
cfg->extra_buf,
|
||||
WL_ASSOC_INFO_MAX);
|
||||
if (err) {
|
||||
@@ -1891,7 +1891,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return err;
|
||||
}
|
||||
conn_info->req_ie_len = req_len;
|
||||
@@ -5423,7 +5467,7 @@ static s32 brcmf_get_assoc_ies(struct br
|
||||
@@ -5426,7 +5470,7 @@ static s32 brcmf_get_assoc_ies(struct br
|
||||
cfg->extra_buf,
|
||||
WL_ASSOC_INFO_MAX);
|
||||
if (err) {
|
||||
@@ -1900,7 +1900,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return err;
|
||||
}
|
||||
conn_info->resp_ie_len = resp_len;
|
||||
@@ -5552,7 +5596,7 @@ brcmf_notify_connect_status_ap(struct br
|
||||
@@ -5555,7 +5599,7 @@ brcmf_notify_connect_status_ap(struct br
|
||||
struct net_device *ndev,
|
||||
const struct brcmf_event_msg *e, void *data)
|
||||
{
|
||||
@@ -1909,7 +1909,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
static int generation;
|
||||
u32 event = e->event_code;
|
||||
u32 reason = e->reason;
|
||||
@@ -5570,7 +5614,7 @@ brcmf_notify_connect_status_ap(struct br
|
||||
@@ -5573,7 +5617,7 @@ brcmf_notify_connect_status_ap(struct br
|
||||
if (((event == BRCMF_E_ASSOC_IND) || (event == BRCMF_E_REASSOC_IND)) &&
|
||||
(reason == BRCMF_E_STATUS_SUCCESS)) {
|
||||
if (!data) {
|
||||
@@ -1918,7 +1918,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -5862,7 +5906,7 @@ static void init_vif_event(struct brcmf_
|
||||
@@ -5865,7 +5909,7 @@ static void init_vif_event(struct brcmf_
|
||||
|
||||
static s32 brcmf_dongle_roam(struct brcmf_if *ifp)
|
||||
{
|
||||
@@ -1927,7 +1927,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
s32 err;
|
||||
u32 bcn_timeout;
|
||||
__le32 roamtrigger[2];
|
||||
@@ -5875,7 +5919,7 @@ static s32 brcmf_dongle_roam(struct brcm
|
||||
@@ -5878,7 +5922,7 @@ static s32 brcmf_dongle_roam(struct brcm
|
||||
bcn_timeout = BRCMF_DEFAULT_BCN_TIMEOUT_ROAM_ON;
|
||||
err = brcmf_fil_iovar_int_set(ifp, "bcn_timeout", bcn_timeout);
|
||||
if (err) {
|
||||
@@ -1936,7 +1936,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
goto roam_setup_done;
|
||||
}
|
||||
|
||||
@@ -5887,7 +5931,7 @@ static s32 brcmf_dongle_roam(struct brcm
|
||||
@@ -5890,7 +5934,7 @@ static s32 brcmf_dongle_roam(struct brcm
|
||||
err = brcmf_fil_iovar_int_set(ifp, "roam_off",
|
||||
ifp->drvr->settings->roamoff);
|
||||
if (err) {
|
||||
@@ -1945,7 +1945,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
goto roam_setup_done;
|
||||
}
|
||||
|
||||
@@ -5896,7 +5940,7 @@ static s32 brcmf_dongle_roam(struct brcm
|
||||
@@ -5899,7 +5943,7 @@ static s32 brcmf_dongle_roam(struct brcm
|
||||
err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_TRIGGER,
|
||||
(void *)roamtrigger, sizeof(roamtrigger));
|
||||
if (err) {
|
||||
@@ -1954,7 +1954,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
goto roam_setup_done;
|
||||
}
|
||||
|
||||
@@ -5905,7 +5949,7 @@ static s32 brcmf_dongle_roam(struct brcm
|
||||
@@ -5908,7 +5952,7 @@ static s32 brcmf_dongle_roam(struct brcm
|
||||
err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_DELTA,
|
||||
(void *)roam_delta, sizeof(roam_delta));
|
||||
if (err) {
|
||||
@@ -1963,7 +1963,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
goto roam_setup_done;
|
||||
}
|
||||
|
||||
@@ -5916,26 +5960,26 @@ roam_setup_done:
|
||||
@@ -5919,26 +5963,26 @@ roam_setup_done:
|
||||
static s32
|
||||
brcmf_dongle_scantime(struct brcmf_if *ifp)
|
||||
{
|
||||
@@ -1994,7 +1994,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
goto dongle_scantime_out;
|
||||
}
|
||||
|
||||
@@ -5968,7 +6012,8 @@ static int brcmf_construct_chaninfo(stru
|
||||
@@ -5971,7 +6015,8 @@ static int brcmf_construct_chaninfo(stru
|
||||
u32 bw_cap[])
|
||||
{
|
||||
struct wiphy *wiphy = cfg_to_wiphy(cfg);
|
||||
@@ -2004,7 +2004,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
struct ieee80211_supported_band *band;
|
||||
struct ieee80211_channel *channel;
|
||||
struct brcmf_chanspec_list *list;
|
||||
@@ -5989,7 +6034,7 @@ static int brcmf_construct_chaninfo(stru
|
||||
@@ -5992,7 +6037,7 @@ static int brcmf_construct_chaninfo(stru
|
||||
err = brcmf_fil_iovar_data_get(ifp, "chanspecs", pbuf,
|
||||
BRCMF_DCMD_MEDLEN);
|
||||
if (err) {
|
||||
@@ -2013,7 +2013,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
goto fail_pbuf;
|
||||
}
|
||||
|
||||
@@ -6012,7 +6057,7 @@ static int brcmf_construct_chaninfo(stru
|
||||
@@ -6015,7 +6060,7 @@ static int brcmf_construct_chaninfo(stru
|
||||
} else if (ch.band == BRCMU_CHAN_BAND_5G) {
|
||||
band = wiphy->bands[NL80211_BAND_5GHZ];
|
||||
} else {
|
||||
@@ -2022,7 +2022,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
ch.chspec);
|
||||
continue;
|
||||
}
|
||||
@@ -6036,7 +6081,7 @@ static int brcmf_construct_chaninfo(stru
|
||||
@@ -6039,7 +6084,7 @@ static int brcmf_construct_chaninfo(stru
|
||||
/* It seems firmware supports some channel we never
|
||||
* considered. Something new in IEEE standard?
|
||||
*/
|
||||
@@ -2031,7 +2031,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
ch.control_ch_num);
|
||||
continue;
|
||||
}
|
||||
@@ -6093,8 +6138,8 @@ fail_pbuf:
|
||||
@@ -6096,8 +6141,8 @@ fail_pbuf:
|
||||
|
||||
static int brcmf_enable_bw40_2g(struct brcmf_cfg80211_info *cfg)
|
||||
{
|
||||
@@ -2042,7 +2042,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
struct ieee80211_supported_band *band;
|
||||
struct brcmf_fil_bwcap_le band_bwcap;
|
||||
struct brcmf_chanspec_list *list;
|
||||
@@ -6140,7 +6185,7 @@ static int brcmf_enable_bw40_2g(struct b
|
||||
@@ -6143,7 +6188,7 @@ static int brcmf_enable_bw40_2g(struct b
|
||||
err = brcmf_fil_iovar_data_get(ifp, "chanspecs", pbuf,
|
||||
BRCMF_DCMD_MEDLEN);
|
||||
if (err) {
|
||||
@@ -2051,7 +2051,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
kfree(pbuf);
|
||||
return err;
|
||||
}
|
||||
@@ -6171,7 +6216,7 @@ static int brcmf_enable_bw40_2g(struct b
|
||||
@@ -6174,7 +6219,7 @@ static int brcmf_enable_bw40_2g(struct b
|
||||
|
||||
static void brcmf_get_bwcap(struct brcmf_if *ifp, u32 bw_cap[])
|
||||
{
|
||||
@@ -2060,7 +2060,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
u32 band, mimo_bwcap;
|
||||
int err;
|
||||
|
||||
@@ -6207,7 +6252,7 @@ static void brcmf_get_bwcap(struct brcmf
|
||||
@@ -6210,7 +6255,7 @@ static void brcmf_get_bwcap(struct brcmf
|
||||
bw_cap[NL80211_BAND_5GHZ] |= WLC_BW_20MHZ_BIT;
|
||||
break;
|
||||
default:
|
||||
@@ -2069,7 +2069,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6282,7 +6327,8 @@ static void brcmf_update_vht_cap(struct
|
||||
@@ -6285,7 +6330,8 @@ static void brcmf_update_vht_cap(struct
|
||||
|
||||
static int brcmf_setup_wiphybands(struct brcmf_cfg80211_info *cfg)
|
||||
{
|
||||
@@ -2079,7 +2079,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
struct wiphy *wiphy = cfg_to_wiphy(cfg);
|
||||
u32 nmode = 0;
|
||||
u32 vhtmode = 0;
|
||||
@@ -6299,7 +6345,7 @@ static int brcmf_setup_wiphybands(struct
|
||||
@@ -6302,7 +6348,7 @@ static int brcmf_setup_wiphybands(struct
|
||||
(void)brcmf_fil_iovar_int_get(ifp, "vhtmode", &vhtmode);
|
||||
err = brcmf_fil_iovar_int_get(ifp, "nmode", &nmode);
|
||||
if (err) {
|
||||
@@ -2088,7 +2088,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
} else {
|
||||
brcmf_get_bwcap(ifp, bw_cap);
|
||||
}
|
||||
@@ -6309,7 +6355,7 @@ static int brcmf_setup_wiphybands(struct
|
||||
@@ -6312,7 +6358,7 @@ static int brcmf_setup_wiphybands(struct
|
||||
|
||||
err = brcmf_fil_iovar_int_get(ifp, "rxchain", &rxchain);
|
||||
if (err) {
|
||||
@@ -2097,7 +2097,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
nchain = 1;
|
||||
} else {
|
||||
for (nchain = 0; rxchain; nchain++)
|
||||
@@ -6319,7 +6365,7 @@ static int brcmf_setup_wiphybands(struct
|
||||
@@ -6322,7 +6368,7 @@ static int brcmf_setup_wiphybands(struct
|
||||
|
||||
err = brcmf_construct_chaninfo(cfg, bw_cap);
|
||||
if (err) {
|
||||
@@ -2106,7 +2106,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -6526,12 +6572,13 @@ static void brcmf_wiphy_wowl_params(stru
|
||||
@@ -6529,12 +6575,13 @@ static void brcmf_wiphy_wowl_params(stru
|
||||
{
|
||||
#ifdef CONFIG_PM
|
||||
struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
|
||||
@@ -2121,7 +2121,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
wiphy->wowlan = &brcmf_wowlan_support;
|
||||
return;
|
||||
}
|
||||
@@ -6628,7 +6675,7 @@ static int brcmf_setup_wiphy(struct wiph
|
||||
@@ -6631,7 +6678,7 @@ static int brcmf_setup_wiphy(struct wiph
|
||||
err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_BANDLIST, &bandlist,
|
||||
sizeof(bandlist));
|
||||
if (err) {
|
||||
@@ -2130,7 +2130,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return err;
|
||||
}
|
||||
/* first entry in bandlist is number of bands */
|
||||
@@ -6677,7 +6724,7 @@ static int brcmf_setup_wiphy(struct wiph
|
||||
@@ -6680,7 +6727,7 @@ static int brcmf_setup_wiphy(struct wiph
|
||||
|
||||
static s32 brcmf_config_dongle(struct brcmf_cfg80211_info *cfg)
|
||||
{
|
||||
@@ -2139,7 +2139,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
struct net_device *ndev;
|
||||
struct wireless_dev *wdev;
|
||||
struct brcmf_if *ifp;
|
||||
@@ -6715,7 +6762,7 @@ static s32 brcmf_config_dongle(struct br
|
||||
@@ -6718,7 +6765,7 @@ static s32 brcmf_config_dongle(struct br
|
||||
|
||||
err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_FAKEFRAG, 1);
|
||||
if (err) {
|
||||
@@ -2148,7 +2148,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
goto default_conf_out;
|
||||
}
|
||||
|
||||
@@ -6896,6 +6943,7 @@ static void brcmf_cfg80211_reg_notifier(
|
||||
@@ -6899,6 +6946,7 @@ static void brcmf_cfg80211_reg_notifier(
|
||||
{
|
||||
struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
|
||||
struct brcmf_if *ifp = brcmf_get_ifp(cfg->pub, 0);
|
||||
@@ -2156,7 +2156,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
struct brcmf_fil_country_le ccreq;
|
||||
s32 err;
|
||||
int i;
|
||||
@@ -6907,7 +6955,7 @@ static void brcmf_cfg80211_reg_notifier(
|
||||
@@ -6910,7 +6958,7 @@ static void brcmf_cfg80211_reg_notifier(
|
||||
/* ignore non-ISO3166 country codes */
|
||||
for (i = 0; i < 2; i++)
|
||||
if (req->alpha2[i] < 'A' || req->alpha2[i] > 'Z') {
|
||||
@@ -2165,7 +2165,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
req->alpha2[0], req->alpha2[1]);
|
||||
return;
|
||||
}
|
||||
@@ -6917,7 +6965,7 @@ static void brcmf_cfg80211_reg_notifier(
|
||||
@@ -6920,7 +6968,7 @@ static void brcmf_cfg80211_reg_notifier(
|
||||
|
||||
err = brcmf_fil_iovar_data_get(ifp, "country", &ccreq, sizeof(ccreq));
|
||||
if (err) {
|
||||
@@ -2174,7 +2174,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -6927,7 +6975,7 @@ static void brcmf_cfg80211_reg_notifier(
|
||||
@@ -6930,7 +6978,7 @@ static void brcmf_cfg80211_reg_notifier(
|
||||
|
||||
err = brcmf_fil_iovar_data_set(ifp, "country", &ccreq, sizeof(ccreq));
|
||||
if (err) {
|
||||
@@ -2183,7 +2183,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return;
|
||||
}
|
||||
brcmf_setup_wiphybands(cfg);
|
||||
@@ -6973,13 +7021,13 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
@@ -6976,13 +7024,13 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
u16 *cap = NULL;
|
||||
|
||||
if (!ndev) {
|
||||
@@ -2199,7 +2199,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -7000,7 +7048,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
@@ -7003,7 +7051,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
|
||||
err = wl_init_priv(cfg);
|
||||
if (err) {
|
||||
@@ -2208,7 +2208,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
brcmf_free_vif(vif);
|
||||
goto wiphy_out;
|
||||
}
|
||||
@@ -7009,7 +7057,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
@@ -7012,7 +7060,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
/* determine d11 io type before wiphy setup */
|
||||
err = brcmf_fil_cmd_int_get(ifp, BRCMF_C_GET_VERSION, &io_type);
|
||||
if (err) {
|
||||
@@ -2217,7 +2217,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
goto priv_out;
|
||||
}
|
||||
cfg->d11inf.io_type = (u8)io_type;
|
||||
@@ -7043,13 +7091,13 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
@@ -7046,13 +7094,13 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
#endif
|
||||
err = wiphy_register(wiphy);
|
||||
if (err < 0) {
|
||||
@@ -2233,7 +2233,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
goto wiphy_unreg_out;
|
||||
}
|
||||
|
||||
@@ -7067,24 +7115,24 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
@@ -7070,24 +7118,24 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
|
||||
err = brcmf_fweh_activate_events(ifp);
|
||||
if (err) {
|
||||
@@ -2262,7 +2262,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
brcmf_btcoex_detach(cfg);
|
||||
brcmf_p2p_detach(&cfg->p2p);
|
||||
goto wiphy_unreg_out;
|
||||
@@ -7104,7 +7152,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
@@ -7107,7 +7155,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
|
||||
/* (re-) activate FWEH event handling */
|
||||
err = brcmf_fweh_activate_events(ifp);
|
||||
if (err) {
|
||||
|
||||
@@ -19,7 +19,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
|
||||
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
|
||||
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
|
||||
@@ -6725,6 +6725,11 @@ static int brcmf_setup_wiphy(struct wiph
|
||||
@@ -6728,6 +6728,11 @@ static int brcmf_setup_wiphy(struct wiph
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
|
||||
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
|
||||
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
|
||||
@@ -7194,7 +7194,6 @@ void brcmf_cfg80211_detach(struct brcmf_
|
||||
@@ -7197,7 +7197,6 @@ void brcmf_cfg80211_detach(struct brcmf_
|
||||
brcmf_pno_detach(cfg);
|
||||
brcmf_btcoex_detach(cfg);
|
||||
wiphy_unregister(cfg->wiphy);
|
||||
|
||||
@@ -16,7 +16,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
|
||||
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
|
||||
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
|
||||
@@ -5936,19 +5936,17 @@ static s32 brcmf_dongle_roam(struct brcm
|
||||
@@ -5939,19 +5939,17 @@ static s32 brcmf_dongle_roam(struct brcm
|
||||
roamtrigger[1] = cpu_to_le32(BRCM_BAND_ALL);
|
||||
err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_TRIGGER,
|
||||
(void *)roamtrigger, sizeof(roamtrigger));
|
||||
|
||||
@@ -20,7 +20,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
|
||||
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
|
||||
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
|
||||
@@ -6444,6 +6444,9 @@ brcmf_txrx_stypes[NUM_NL80211_IFTYPES] =
|
||||
@@ -6447,6 +6447,9 @@ brcmf_txrx_stypes[NUM_NL80211_IFTYPES] =
|
||||
* #STA <= 1, #AP <= 1, channels = 1, 2 total
|
||||
* #AP <= 4, matching BI, channels = 1, 4 total
|
||||
*
|
||||
@@ -30,7 +30,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
* p2p, no mchan, and mbss:
|
||||
*
|
||||
* #STA <= 1, #P2P-DEV <= 1, #{P2P-CL, P2P-GO} <= 1, channels = 1, 3 total
|
||||
@@ -6455,6 +6458,10 @@ brcmf_txrx_stypes[NUM_NL80211_IFTYPES] =
|
||||
@@ -6458,6 +6461,10 @@ brcmf_txrx_stypes[NUM_NL80211_IFTYPES] =
|
||||
* #STA <= 1, #P2P-DEV <= 1, #{P2P-CL, P2P-GO} <= 1, channels = 2, 3 total
|
||||
* #STA <= 1, #P2P-DEV <= 1, #AP <= 1, #P2P-CL <= 1, channels = 1, 4 total
|
||||
* #AP <= 4, matching BI, channels = 1, 4 total
|
||||
@@ -41,7 +41,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
*/
|
||||
static int brcmf_setup_ifmodes(struct wiphy *wiphy, struct brcmf_if *ifp)
|
||||
{
|
||||
@@ -6462,13 +6469,14 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
@@ -6465,13 +6472,14 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
struct ieee80211_iface_limit *c0_limits = NULL;
|
||||
struct ieee80211_iface_limit *p2p_limits = NULL;
|
||||
struct ieee80211_iface_limit *mbss_limits = NULL;
|
||||
@@ -58,7 +58,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
combo = kcalloc(n_combos, sizeof(*combo), GFP_KERNEL);
|
||||
if (!combo)
|
||||
goto err;
|
||||
@@ -6479,16 +6487,36 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
@@ -6482,16 +6490,36 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
|
||||
c = 0;
|
||||
i = 0;
|
||||
@@ -99,7 +99,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
wiphy->interface_modes |= BIT(NL80211_IFTYPE_P2P_CLIENT) |
|
||||
BIT(NL80211_IFTYPE_P2P_GO) |
|
||||
BIT(NL80211_IFTYPE_P2P_DEVICE);
|
||||
@@ -6497,16 +6525,26 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
@@ -6500,16 +6528,26 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
c0_limits[i].max = 1;
|
||||
c0_limits[i++].types = BIT(NL80211_IFTYPE_P2P_CLIENT) |
|
||||
BIT(NL80211_IFTYPE_P2P_GO);
|
||||
|
||||
@@ -18,7 +18,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
|
||||
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
|
||||
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
|
||||
@@ -6471,12 +6471,13 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
@@ -6474,12 +6474,13 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
struct ieee80211_iface_limit *c0_limits = NULL;
|
||||
struct ieee80211_iface_limit *p2p_limits = NULL;
|
||||
struct ieee80211_iface_limit *mbss_limits = NULL;
|
||||
@@ -33,7 +33,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
|
||||
n_combos = 1 + !!(p2p && !rsdb) + !!mbss;
|
||||
combo = kcalloc(n_combos, sizeof(*combo), GFP_KERNEL);
|
||||
@@ -6486,6 +6487,10 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
@@ -6489,6 +6490,10 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
|
||||
BIT(NL80211_IFTYPE_ADHOC) |
|
||||
BIT(NL80211_IFTYPE_AP);
|
||||
@@ -44,7 +44,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
|
||||
c = 0;
|
||||
i = 0;
|
||||
@@ -6497,48 +6502,28 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
@@ -6500,48 +6505,28 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
c0_limits = kcalloc(2, sizeof(*c0_limits), GFP_KERNEL);
|
||||
if (!c0_limits)
|
||||
goto err;
|
||||
|
||||
@@ -139,7 +139,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
case NL80211_IFTYPE_AP:
|
||||
return brcmf_cfg80211_del_ap_iface(wiphy, wdev);
|
||||
case NL80211_IFTYPE_P2P_CLIENT:
|
||||
@@ -6471,9 +6550,10 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
@@ -6474,9 +6553,10 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
struct ieee80211_iface_limit *c0_limits = NULL;
|
||||
struct ieee80211_iface_limit *p2p_limits = NULL;
|
||||
struct ieee80211_iface_limit *mbss_limits = NULL;
|
||||
@@ -152,7 +152,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
mbss = brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MBSS);
|
||||
p2p = brcmf_feat_is_enabled(ifp, BRCMF_FEAT_P2P);
|
||||
rsdb = brcmf_feat_is_enabled(ifp, BRCMF_FEAT_RSDB);
|
||||
@@ -6487,6 +6567,8 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
@@ -6490,6 +6570,8 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
|
||||
BIT(NL80211_IFTYPE_ADHOC) |
|
||||
BIT(NL80211_IFTYPE_AP);
|
||||
@@ -161,7 +161,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
if (p2p)
|
||||
wiphy->interface_modes |= BIT(NL80211_IFTYPE_P2P_CLIENT) |
|
||||
BIT(NL80211_IFTYPE_P2P_GO) |
|
||||
@@ -6494,18 +6576,18 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
@@ -6497,18 +6579,18 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
|
||||
c = 0;
|
||||
i = 0;
|
||||
@@ -186,7 +186,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
if (p2p) {
|
||||
c0_limits[i].max = 1;
|
||||
c0_limits[i++].types = BIT(NL80211_IFTYPE_P2P_DEVICE);
|
||||
@@ -6554,14 +6636,20 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
@@ -6557,14 +6639,20 @@ static int brcmf_setup_ifmodes(struct wi
|
||||
if (mbss) {
|
||||
c++;
|
||||
i = 0;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/wireless/marvell/mwl8k.c
|
||||
+++ b/drivers/net/wireless/marvell/mwl8k.c
|
||||
@@ -5691,6 +5691,7 @@ MODULE_FIRMWARE("mwl8k/fmimage_8366.fw")
|
||||
@@ -5692,6 +5692,7 @@ MODULE_FIRMWARE("mwl8k/fmimage_8366.fw")
|
||||
MODULE_FIRMWARE(MWL8K_8366_AP_FW(MWL8K_8366_AP_FW_API));
|
||||
|
||||
static const struct pci_device_id mwl8k_pci_id_table[] = {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/wireless/marvell/mwl8k.c
|
||||
+++ b/drivers/net/wireless/marvell/mwl8k.c
|
||||
@@ -6276,6 +6276,8 @@ static int mwl8k_probe(struct pci_dev *p
|
||||
@@ -6277,6 +6277,8 @@ static int mwl8k_probe(struct pci_dev *p
|
||||
|
||||
priv->running_bsses = 0;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
return rc;
|
||||
|
||||
err_stop_firmware:
|
||||
@@ -6309,8 +6311,6 @@ static void mwl8k_remove(struct pci_dev
|
||||
@@ -6310,8 +6312,6 @@ static void mwl8k_remove(struct pci_dev
|
||||
return;
|
||||
priv = hw->priv;
|
||||
|
||||
|
||||
@@ -385,7 +385,7 @@
|
||||
#endif /* AES_GCM_H */
|
||||
--- a/net/mac80211/wpa.c
|
||||
+++ b/net/mac80211/wpa.c
|
||||
@@ -314,7 +314,8 @@ ieee80211_crypto_tkip_decrypt(struct iee
|
||||
@@ -315,7 +315,8 @@ ieee80211_crypto_tkip_decrypt(struct iee
|
||||
}
|
||||
|
||||
|
||||
@@ -395,7 +395,7 @@
|
||||
{
|
||||
__le16 mask_fc;
|
||||
int a4_included, mgmt;
|
||||
@@ -344,14 +345,8 @@ static void ccmp_special_blocks(struct s
|
||||
@@ -345,14 +346,8 @@ static void ccmp_special_blocks(struct s
|
||||
else
|
||||
qos_tid = 0;
|
||||
|
||||
@@ -412,7 +412,7 @@
|
||||
|
||||
/* Nonce: Nonce Flags | A2 | PN
|
||||
* Nonce Flags: Priority (b0..b3) | Management (b4) | Reserved (b5..b7)
|
||||
@@ -359,6 +354,8 @@ static void ccmp_special_blocks(struct s
|
||||
@@ -360,6 +355,8 @@ static void ccmp_special_blocks(struct s
|
||||
b_0[1] = qos_tid | (mgmt << 4);
|
||||
memcpy(&b_0[2], hdr->addr2, ETH_ALEN);
|
||||
memcpy(&b_0[8], pn, IEEE80211_CCMP_PN_LEN);
|
||||
@@ -421,7 +421,7 @@
|
||||
|
||||
/* AAD (extra authenticate-only data) / masked 802.11 header
|
||||
* FC | A1 | A2 | A3 | SC | [A4] | [QC] */
|
||||
@@ -415,7 +412,7 @@ static int ccmp_encrypt_skb(struct ieee8
|
||||
@@ -416,7 +413,7 @@ static int ccmp_encrypt_skb(struct ieee8
|
||||
u8 *pos;
|
||||
u8 pn[6];
|
||||
u64 pn64;
|
||||
@@ -430,7 +430,7 @@
|
||||
u8 b_0[AES_BLOCK_SIZE];
|
||||
|
||||
if (info->control.hw_key &&
|
||||
@@ -470,9 +467,11 @@ static int ccmp_encrypt_skb(struct ieee8
|
||||
@@ -471,9 +468,11 @@ static int ccmp_encrypt_skb(struct ieee8
|
||||
return 0;
|
||||
|
||||
pos += IEEE80211_CCMP_HDR_LEN;
|
||||
@@ -445,7 +445,7 @@
|
||||
}
|
||||
|
||||
|
||||
@@ -545,13 +544,13 @@ ieee80211_crypto_ccmp_decrypt(struct iee
|
||||
@@ -546,13 +545,13 @@ ieee80211_crypto_ccmp_decrypt(struct iee
|
||||
u8 aad[2 * AES_BLOCK_SIZE];
|
||||
u8 b_0[AES_BLOCK_SIZE];
|
||||
/* hardware didn't decrypt/verify MIC */
|
||||
@@ -461,7 +461,7 @@
|
||||
return RX_DROP_UNUSABLE;
|
||||
}
|
||||
|
||||
@@ -646,7 +645,7 @@ static int gcmp_encrypt_skb(struct ieee8
|
||||
@@ -649,7 +648,7 @@ static int gcmp_encrypt_skb(struct ieee8
|
||||
u8 *pos;
|
||||
u8 pn[6];
|
||||
u64 pn64;
|
||||
@@ -470,7 +470,7 @@
|
||||
u8 j_0[AES_BLOCK_SIZE];
|
||||
|
||||
if (info->control.hw_key &&
|
||||
@@ -703,8 +702,10 @@ static int gcmp_encrypt_skb(struct ieee8
|
||||
@@ -706,8 +705,10 @@ static int gcmp_encrypt_skb(struct ieee8
|
||||
|
||||
pos += IEEE80211_GCMP_HDR_LEN;
|
||||
gcmp_special_blocks(skb, pn, j_0, aad);
|
||||
@@ -483,7 +483,7 @@
|
||||
}
|
||||
|
||||
ieee80211_tx_result
|
||||
@@ -1127,9 +1128,9 @@ ieee80211_crypto_aes_gmac_encrypt(struct
|
||||
@@ -1132,9 +1133,9 @@ ieee80211_crypto_aes_gmac_encrypt(struct
|
||||
struct ieee80211_key *key = tx->key;
|
||||
struct ieee80211_mmie_16 *mmie;
|
||||
struct ieee80211_hdr *hdr;
|
||||
@@ -495,7 +495,7 @@
|
||||
|
||||
if (WARN_ON(skb_queue_len(&tx->skbs) != 1))
|
||||
return TX_DROP;
|
||||
@@ -1175,7 +1176,7 @@ ieee80211_crypto_aes_gmac_decrypt(struct
|
||||
@@ -1180,7 +1181,7 @@ ieee80211_crypto_aes_gmac_decrypt(struct
|
||||
struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);
|
||||
struct ieee80211_key *key = rx->key;
|
||||
struct ieee80211_mmie_16 *mmie;
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
static int ieee80211_ifa6_changed(struct notifier_block *nb,
|
||||
unsigned long data, void *arg)
|
||||
{
|
||||
@@ -1168,14 +1168,14 @@ int ieee80211_register_hw(struct ieee802
|
||||
@@ -1182,14 +1182,14 @@ int ieee80211_register_hw(struct ieee802
|
||||
|
||||
rtnl_unlock();
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
local->ifa6_notifier.notifier_call = ieee80211_ifa6_changed;
|
||||
result = register_inet6addr_notifier(&local->ifa6_notifier);
|
||||
if (result)
|
||||
@@ -1184,13 +1184,13 @@ int ieee80211_register_hw(struct ieee802
|
||||
@@ -1198,13 +1198,13 @@ int ieee80211_register_hw(struct ieee802
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
fail_ifa:
|
||||
#endif
|
||||
rtnl_lock();
|
||||
@@ -1219,10 +1219,10 @@ void ieee80211_unregister_hw(struct ieee
|
||||
@@ -1233,10 +1233,10 @@ void ieee80211_unregister_hw(struct ieee
|
||||
tasklet_kill(&local->tx_pending_tasklet);
|
||||
tasklet_kill(&local->tasklet);
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -2190,7 +2190,7 @@ static int ieee80211_scan(struct wiphy *
|
||||
@@ -2192,7 +2192,7 @@ static int ieee80211_scan(struct wiphy *
|
||||
* the frames sent while scanning on other channel will be
|
||||
* lost)
|
||||
*/
|
||||
|
||||
@@ -61,7 +61,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
};
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -818,6 +818,7 @@ enum txq_info_flags {
|
||||
@@ -807,6 +807,7 @@ enum txq_info_flags {
|
||||
IEEE80211_TXQ_STOP,
|
||||
IEEE80211_TXQ_AMPDU,
|
||||
IEEE80211_TXQ_NO_AMSDU,
|
||||
@@ -69,7 +69,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1226,6 +1227,7 @@ struct ieee80211_local {
|
||||
@@ -1214,6 +1215,7 @@ struct ieee80211_local {
|
||||
|
||||
struct sk_buff_head pending[IEEE80211_MAX_QUEUES];
|
||||
struct tasklet_struct tx_pending_tasklet;
|
||||
@@ -77,7 +77,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
atomic_t agg_queue_stop[IEEE80211_MAX_QUEUES];
|
||||
|
||||
@@ -2047,6 +2049,7 @@ void ieee80211_txq_remove_vlan(struct ie
|
||||
@@ -2035,6 +2037,7 @@ void ieee80211_txq_remove_vlan(struct ie
|
||||
struct ieee80211_sub_if_data *sdata);
|
||||
void ieee80211_fill_txq_stats(struct cfg80211_txq_stats *txqstats,
|
||||
struct txq_info *txqi);
|
||||
|
||||
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
ccflags-y += -DDEBUG
|
||||
--- a/net/mac80211/main.c
|
||||
+++ b/net/mac80211/main.c
|
||||
@@ -1308,18 +1308,12 @@ static int __init ieee80211_init(void)
|
||||
@@ -1322,18 +1322,12 @@ static int __init ieee80211_init(void)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -86,7 +86,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
rc80211_minstrel_exit();
|
||||
|
||||
return ret;
|
||||
@@ -1327,7 +1321,6 @@ static int __init ieee80211_init(void)
|
||||
@@ -1341,7 +1335,6 @@ static int __init ieee80211_init(void)
|
||||
|
||||
static void __exit ieee80211_exit(void)
|
||||
{
|
||||
|
||||
@@ -145,7 +145,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
struct cfg80211_nan_conf *conf)
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -829,6 +829,8 @@ enum txq_info_flags {
|
||||
@@ -818,6 +818,8 @@ enum txq_info_flags {
|
||||
* a fq_flow which is already owned by a different tin
|
||||
* @def_cvars: codel vars for @def_flow
|
||||
* @frags: used to keep fragments created after dequeue
|
||||
@@ -154,7 +154,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
*/
|
||||
struct txq_info {
|
||||
struct fq_tin tin;
|
||||
@@ -836,6 +838,8 @@ struct txq_info {
|
||||
@@ -825,6 +827,8 @@ struct txq_info {
|
||||
struct codel_vars def_cvars;
|
||||
struct codel_stats cstats;
|
||||
struct sk_buff_head frags;
|
||||
@@ -163,7 +163,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
unsigned long flags;
|
||||
|
||||
/* keep last! */
|
||||
@@ -1127,6 +1131,11 @@ struct ieee80211_local {
|
||||
@@ -1115,6 +1119,11 @@ struct ieee80211_local {
|
||||
struct codel_vars *cvars;
|
||||
struct codel_params cparams;
|
||||
|
||||
@@ -191,7 +191,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
--- a/net/mac80211/sta_info.c
|
||||
+++ b/net/mac80211/sta_info.c
|
||||
@@ -1261,7 +1261,7 @@ void ieee80211_sta_ps_deliver_wakeup(str
|
||||
@@ -1265,7 +1265,7 @@ void ieee80211_sta_ps_deliver_wakeup(str
|
||||
if (!txq_has_queue(sta->sta.txq[i]))
|
||||
continue;
|
||||
|
||||
|
||||
@@ -240,7 +240,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
sta->debugfs_dir,
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -1136,6 +1136,8 @@ struct ieee80211_local {
|
||||
@@ -1124,6 +1124,8 @@ struct ieee80211_local {
|
||||
struct list_head active_txqs[IEEE80211_NUM_ACS];
|
||||
u16 schedule_round[IEEE80211_NUM_ACS];
|
||||
|
||||
@@ -259,7 +259,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
INIT_LIST_HEAD(&local->chanctx_list);
|
||||
mutex_init(&local->chanctx_mtx);
|
||||
@@ -1142,6 +1143,9 @@ int ieee80211_register_hw(struct ieee802
|
||||
@@ -1156,6 +1157,9 @@ int ieee80211_register_hw(struct ieee802
|
||||
if (!local->hw.max_nan_de_entries)
|
||||
local->hw.max_nan_de_entries = IEEE80211_MAX_NAN_INSTANCE_ID;
|
||||
|
||||
@@ -289,7 +289,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -399,9 +396,12 @@ struct sta_info *sta_info_alloc(struct i
|
||||
@@ -401,9 +398,12 @@ struct sta_info *sta_info_alloc(struct i
|
||||
if (sta_prepare_rate_control(local, sta, gfp))
|
||||
goto free_txq;
|
||||
|
||||
@@ -302,7 +302,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
}
|
||||
|
||||
for (i = 0; i < IEEE80211_NUM_TIDS; i++)
|
||||
@@ -1838,6 +1838,27 @@ void ieee80211_sta_set_buffered(struct i
|
||||
@@ -1842,6 +1842,27 @@ void ieee80211_sta_set_buffered(struct i
|
||||
}
|
||||
EXPORT_SYMBOL(ieee80211_sta_set_buffered);
|
||||
|
||||
@@ -330,7 +330,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
int sta_info_move_state(struct sta_info *sta,
|
||||
enum ieee80211_sta_state new_state)
|
||||
{
|
||||
@@ -2208,6 +2229,23 @@ void sta_set_sinfo(struct sta_info *sta,
|
||||
@@ -2212,6 +2233,23 @@ void sta_set_sinfo(struct sta_info *sta,
|
||||
sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_FAILED);
|
||||
}
|
||||
|
||||
@@ -356,7 +356,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
for_each_possible_cpu(cpu) {
|
||||
--- a/net/mac80211/sta_info.h
|
||||
+++ b/net/mac80211/sta_info.h
|
||||
@@ -127,6 +127,16 @@ enum ieee80211_agg_stop_reason {
|
||||
@@ -128,6 +128,16 @@ enum ieee80211_agg_stop_reason {
|
||||
AGG_STOP_DESTROY_STA,
|
||||
};
|
||||
|
||||
@@ -373,7 +373,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
struct sta_info;
|
||||
|
||||
/**
|
||||
@@ -563,6 +573,9 @@ struct sta_info {
|
||||
@@ -593,6 +603,9 @@ struct sta_info {
|
||||
} tx_stats;
|
||||
u16 tid_seq[IEEE80211_QOS_CTL_TID_MASK + 1];
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -179,6 +179,7 @@ struct ieee80211_tx_data {
|
||||
@@ -161,6 +161,7 @@ struct ieee80211_tx_data {
|
||||
struct ieee80211_tx_rate rate;
|
||||
|
||||
unsigned int flags;
|
||||
@@ -164,7 +164,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
size_t klen, u8 *data, size_t data_len);
|
||||
--- a/net/mac80211/wpa.c
|
||||
+++ b/net/mac80211/wpa.c
|
||||
@@ -44,7 +44,7 @@ ieee80211_tx_h_michael_mic_add(struct ie
|
||||
@@ -45,7 +45,7 @@ ieee80211_tx_h_michael_mic_add(struct ie
|
||||
skb->len < 24 || !ieee80211_is_data_present(hdr->frame_control))
|
||||
return TX_CONTINUE;
|
||||
|
||||
@@ -173,7 +173,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (skb->len < hdrlen)
|
||||
return TX_DROP;
|
||||
|
||||
@@ -195,7 +195,6 @@ mic_fail_no_key:
|
||||
@@ -196,7 +196,6 @@ mic_fail_no_key:
|
||||
|
||||
static int tkip_encrypt_skb(struct ieee80211_tx_data *tx, struct sk_buff *skb)
|
||||
{
|
||||
@@ -181,7 +181,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
struct ieee80211_key *key = tx->key;
|
||||
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
|
||||
unsigned int hdrlen;
|
||||
@@ -210,7 +209,7 @@ static int tkip_encrypt_skb(struct ieee8
|
||||
@@ -211,7 +210,7 @@ static int tkip_encrypt_skb(struct ieee8
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -190,7 +190,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
len = skb->len - hdrlen;
|
||||
|
||||
if (info->control.hw_key)
|
||||
@@ -428,7 +427,7 @@ static int ccmp_encrypt_skb(struct ieee8
|
||||
@@ -429,7 +428,7 @@ static int ccmp_encrypt_skb(struct ieee8
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
len = skb->len - hdrlen;
|
||||
|
||||
if (info->control.hw_key)
|
||||
@@ -660,7 +659,7 @@ static int gcmp_encrypt_skb(struct ieee8
|
||||
@@ -663,7 +662,7 @@ static int gcmp_encrypt_skb(struct ieee8
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -208,7 +208,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
len = skb->len - hdrlen;
|
||||
|
||||
if (info->control.hw_key)
|
||||
@@ -800,7 +799,6 @@ static ieee80211_tx_result
|
||||
@@ -805,7 +804,6 @@ static ieee80211_tx_result
|
||||
ieee80211_crypto_cs_encrypt(struct ieee80211_tx_data *tx,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
@@ -216,7 +216,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
struct ieee80211_key *key = tx->key;
|
||||
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
|
||||
int hdrlen;
|
||||
@@ -816,8 +814,7 @@ ieee80211_crypto_cs_encrypt(struct ieee8
|
||||
@@ -821,8 +819,7 @@ ieee80211_crypto_cs_encrypt(struct ieee8
|
||||
pskb_expand_head(skb, iv_len, 0, GFP_ATOMIC)))
|
||||
return TX_DROP;
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
* mac80211 is capable of taking advantage of many hardware
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -1871,6 +1871,10 @@ int ieee80211_if_add(struct ieee80211_lo
|
||||
@@ -1873,6 +1873,10 @@ int ieee80211_if_add(struct ieee80211_lo
|
||||
+ 8 /* rfc1042/bridge tunnel */
|
||||
- ETH_HLEN /* ethernet hard_header_len */
|
||||
+ IEEE80211_ENCRYPT_HEADROOM;
|
||||
@@ -94,7 +94,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
ret = dev_alloc_name(ndev, ndev->name);
|
||||
--- a/net/mac80211/mesh_pathtbl.c
|
||||
+++ b/net/mac80211/mesh_pathtbl.c
|
||||
@@ -105,13 +105,15 @@ void mesh_path_assign_nexthop(struct mes
|
||||
@@ -106,13 +106,15 @@ void mesh_path_assign_nexthop(struct mes
|
||||
static void prepare_for_gate(struct sk_buff *skb, char *dst_addr,
|
||||
struct mesh_path *gate_mpath)
|
||||
{
|
||||
@@ -113,7 +113,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (!(mshdr->flags & MESH_FLAGS_AE)) {
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -2621,7 +2621,7 @@ ieee80211_rx_h_mesh_fwding(struct ieee80
|
||||
@@ -2705,7 +2705,7 @@ ieee80211_rx_h_mesh_fwding(struct ieee80
|
||||
struct ieee80211_local *local = rx->local;
|
||||
struct ieee80211_sub_if_data *sdata = rx->sdata;
|
||||
struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
|
||||
@@ -122,7 +122,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
int tailroom = 0;
|
||||
|
||||
hdr = (struct ieee80211_hdr *) skb->data;
|
||||
@@ -2714,7 +2714,9 @@ ieee80211_rx_h_mesh_fwding(struct ieee80
|
||||
@@ -2798,7 +2798,9 @@ ieee80211_rx_h_mesh_fwding(struct ieee80
|
||||
if (sdata->crypto_tx_tailroom_needed_cnt)
|
||||
tailroom = IEEE80211_ENCRYPT_TAILROOM;
|
||||
|
||||
@@ -133,7 +133,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
sdata->encrypt_headroom,
|
||||
tailroom, GFP_ATOMIC);
|
||||
if (!fwd_skb)
|
||||
@@ -2746,6 +2748,12 @@ ieee80211_rx_h_mesh_fwding(struct ieee80
|
||||
@@ -2830,6 +2832,12 @@ ieee80211_rx_h_mesh_fwding(struct ieee80
|
||||
return RX_DROP_MONITOR;
|
||||
}
|
||||
|
||||
@@ -148,7 +148,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
out:
|
||||
--- a/net/mac80211/sta_info.h
|
||||
+++ b/net/mac80211/sta_info.h
|
||||
@@ -311,7 +311,7 @@ struct ieee80211_fast_tx {
|
||||
@@ -312,7 +312,7 @@ struct ieee80211_fast_tx {
|
||||
u8 hdr_len;
|
||||
u8 sa_offs, da_offs, pn_offs;
|
||||
u8 band;
|
||||
|
||||
@@ -85,7 +85,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
void mesh_path_timer(struct timer_list *t)
|
||||
--- a/net/mac80211/mesh_pathtbl.c
|
||||
+++ b/net/mac80211/mesh_pathtbl.c
|
||||
@@ -219,7 +219,7 @@ static struct mesh_path *mpath_lookup(st
|
||||
@@ -220,7 +220,7 @@ static struct mesh_path *mpath_lookup(st
|
||||
{
|
||||
struct mesh_path *mpath;
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -1301,6 +1301,7 @@ static void ieee80211_if_setup(struct ne
|
||||
@@ -1297,6 +1297,7 @@ static void ieee80211_if_setup(struct ne
|
||||
static void ieee80211_if_setup_no_queue(struct net_device *dev)
|
||||
{
|
||||
ieee80211_if_setup(dev);
|
||||
|
||||
@@ -1,215 +0,0 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Sun, 17 Mar 2019 18:11:30 +0100
|
||||
Subject: [PATCH] mac80211: optimize skb resizing
|
||||
|
||||
When forwarding unicast packets from ethernet to batman-adv over 802.11s
|
||||
(with forwarding disabled), the typical required headroom to transmit
|
||||
encrypted packets on mt76 is 32 (802.11) + 6 (802.11s) + 8 (CCMP) +
|
||||
2 (padding) + 6 (LLC) + 18 (batman-adv) - 14 (old ethernet header) = 58 bytes.
|
||||
|
||||
On systems where NET_SKB_PAD is 64 this leads to a call to pskb_expand_head
|
||||
for every packet, since mac80211 also tries to allocate 16 bytes status
|
||||
headroom for radiotap headers.
|
||||
|
||||
This patch fixes these unnecessary reallocations by only requiring the extra
|
||||
status headroom in ieee80211_tx_monitor()
|
||||
If however a reallocation happens before that call, the status headroom gets
|
||||
added there as well, in order to avoid double reallocation.
|
||||
|
||||
The patch also cleans up the code by moving the headroom calculation to
|
||||
ieee80211_skb_resize.
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -1762,6 +1762,9 @@ void ieee80211_clear_fast_xmit(struct st
|
||||
int ieee80211_tx_control_port(struct wiphy *wiphy, struct net_device *dev,
|
||||
const u8 *buf, size_t len,
|
||||
const u8 *dest, __be16 proto, bool unencrypted);
|
||||
+int ieee80211_skb_resize(struct ieee80211_local *local,
|
||||
+ struct ieee80211_sub_if_data *sdata,
|
||||
+ struct sk_buff *skb, int hdrlen, int hdr_add);
|
||||
|
||||
/* HT */
|
||||
void ieee80211_apply_htcap_overrides(struct ieee80211_sub_if_data *sdata,
|
||||
--- a/net/mac80211/status.c
|
||||
+++ b/net/mac80211/status.c
|
||||
@@ -671,6 +671,11 @@ void ieee80211_tx_monitor(struct ieee802
|
||||
}
|
||||
}
|
||||
|
||||
+ if (ieee80211_skb_resize(local, NULL, skb, 0, 0)) {
|
||||
+ dev_kfree_skb(skb);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
/* send frame to monitor interfaces now */
|
||||
rtap_len = ieee80211_tx_radiotap_len(info);
|
||||
if (WARN_ON_ONCE(skb_headroom(skb) < rtap_len)) {
|
||||
--- a/net/mac80211/tx.c
|
||||
+++ b/net/mac80211/tx.c
|
||||
@@ -1914,42 +1914,53 @@ static bool ieee80211_tx(struct ieee8021
|
||||
}
|
||||
|
||||
/* device xmit handlers */
|
||||
-
|
||||
-enum ieee80211_encrypt {
|
||||
- ENCRYPT_NO,
|
||||
- ENCRYPT_MGMT,
|
||||
- ENCRYPT_DATA,
|
||||
-};
|
||||
-
|
||||
-static int ieee80211_skb_resize(struct ieee80211_sub_if_data *sdata,
|
||||
- struct sk_buff *skb,
|
||||
- int head_need,
|
||||
- enum ieee80211_encrypt encrypt)
|
||||
+int ieee80211_skb_resize(struct ieee80211_local *local,
|
||||
+ struct ieee80211_sub_if_data *sdata,
|
||||
+ struct sk_buff *skb, int hdr_len, int hdr_extra)
|
||||
{
|
||||
- struct ieee80211_local *local = sdata->local;
|
||||
- bool enc_tailroom;
|
||||
- int tail_need = 0;
|
||||
-
|
||||
- enc_tailroom = encrypt == ENCRYPT_MGMT ||
|
||||
- (encrypt == ENCRYPT_DATA &&
|
||||
- sdata->crypto_tx_tailroom_needed_cnt);
|
||||
-
|
||||
- if (enc_tailroom) {
|
||||
- tail_need = IEEE80211_ENCRYPT_TAILROOM;
|
||||
- tail_need -= skb_tailroom(skb);
|
||||
- tail_need = max_t(int, tail_need, 0);
|
||||
+ struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
|
||||
+ struct ieee80211_hdr *hdr;
|
||||
+ int head_need, head_max;
|
||||
+ int tail_need, tail_max;
|
||||
+ bool enc_tailroom = false;
|
||||
+
|
||||
+ if (sdata && !hdr_len &&
|
||||
+ !(info->flags & IEEE80211_TX_INTFL_DONT_ENCRYPT)) {
|
||||
+ hdr = (struct ieee80211_hdr *) skb->data;
|
||||
+ enc_tailroom = (sdata->crypto_tx_tailroom_needed_cnt ||
|
||||
+ ieee80211_is_mgmt(hdr->frame_control));
|
||||
+ hdr_len += sdata->encrypt_headroom;
|
||||
+ }
|
||||
+
|
||||
+ head_need = head_max = hdr_len;
|
||||
+ tail_need = tail_max = 0;
|
||||
+ if (!sdata) {
|
||||
+ head_need = head_max = local->tx_headroom;
|
||||
+ } else {
|
||||
+ head_max += hdr_extra;
|
||||
+ head_max += max_t(int, local->tx_headroom,
|
||||
+ local->hw.extra_tx_headroom);
|
||||
+ head_need += local->hw.extra_tx_headroom;
|
||||
+
|
||||
+ tail_max = IEEE80211_ENCRYPT_TAILROOM;
|
||||
+ if (enc_tailroom)
|
||||
+ tail_need = tail_max;
|
||||
}
|
||||
|
||||
if (skb_cloned(skb) &&
|
||||
(!ieee80211_hw_check(&local->hw, SUPPORTS_CLONED_SKBS) ||
|
||||
!skb_clone_writable(skb, ETH_HLEN) || enc_tailroom))
|
||||
I802_DEBUG_INC(local->tx_expand_skb_head_cloned);
|
||||
- else if (head_need || tail_need)
|
||||
+ else if (head_need > skb_headroom(skb) ||
|
||||
+ tail_need > skb_tailroom(skb))
|
||||
I802_DEBUG_INC(local->tx_expand_skb_head);
|
||||
else
|
||||
return 0;
|
||||
|
||||
- if (pskb_expand_head(skb, head_need, tail_need, GFP_ATOMIC)) {
|
||||
+ head_max = max_t(int, 0, head_max - skb_headroom(skb));
|
||||
+ tail_max = max_t(int, 0, tail_max - skb_tailroom(skb));
|
||||
+
|
||||
+ if (pskb_expand_head(skb, head_max, tail_max, GFP_ATOMIC)) {
|
||||
wiphy_debug(local->hw.wiphy,
|
||||
"failed to reallocate TX buffer\n");
|
||||
return -ENOMEM;
|
||||
@@ -1964,24 +1975,9 @@ void ieee80211_xmit(struct ieee80211_sub
|
||||
{
|
||||
struct ieee80211_local *local = sdata->local;
|
||||
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
|
||||
- struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
|
||||
- int headroom;
|
||||
- enum ieee80211_encrypt encrypt;
|
||||
-
|
||||
- if (info->flags & IEEE80211_TX_INTFL_DONT_ENCRYPT)
|
||||
- encrypt = ENCRYPT_NO;
|
||||
- else if (ieee80211_is_mgmt(hdr->frame_control))
|
||||
- encrypt = ENCRYPT_MGMT;
|
||||
- else
|
||||
- encrypt = ENCRYPT_DATA;
|
||||
-
|
||||
- headroom = local->tx_headroom;
|
||||
- if (encrypt != ENCRYPT_NO)
|
||||
- headroom += sdata->encrypt_headroom;
|
||||
- headroom -= skb_headroom(skb);
|
||||
- headroom = max_t(int, 0, headroom);
|
||||
+ struct ieee80211_hdr *hdr;
|
||||
|
||||
- if (ieee80211_skb_resize(sdata, skb, headroom, encrypt)) {
|
||||
+ if (ieee80211_skb_resize(local, sdata, skb, 0, 0)) {
|
||||
ieee80211_free_txskb(&local->hw, skb);
|
||||
return;
|
||||
}
|
||||
@@ -2752,30 +2748,14 @@ static struct sk_buff *ieee80211_build_h
|
||||
|
||||
skb_pull(skb, skip_header_bytes);
|
||||
padsize = ieee80211_hdr_padsize(&local->hw, hdrlen);
|
||||
- head_need = hdrlen + encaps_len + meshhdrlen - skb_headroom(skb);
|
||||
+ head_need = hdrlen + encaps_len + meshhdrlen;
|
||||
head_need += padsize;
|
||||
|
||||
- /*
|
||||
- * So we need to modify the skb header and hence need a copy of
|
||||
- * that. The head_need variable above doesn't, so far, include
|
||||
- * the needed header space that we don't need right away. If we
|
||||
- * can, then we don't reallocate right now but only after the
|
||||
- * frame arrives at the master device (if it does...)
|
||||
- *
|
||||
- * If we cannot, however, then we will reallocate to include all
|
||||
- * the ever needed space. Also, if we need to reallocate it anyway,
|
||||
- * make it big enough for everything we may ever need.
|
||||
- */
|
||||
-
|
||||
- if (head_need > 0 || skb_cloned(skb)) {
|
||||
- head_need += sdata->encrypt_headroom;
|
||||
- head_need += local->tx_headroom;
|
||||
- head_need = max_t(int, 0, head_need);
|
||||
- if (ieee80211_skb_resize(sdata, skb, head_need, ENCRYPT_DATA)) {
|
||||
- ieee80211_free_txskb(&local->hw, skb);
|
||||
- skb = NULL;
|
||||
- return ERR_PTR(-ENOMEM);
|
||||
- }
|
||||
+ if (ieee80211_skb_resize(local, sdata, skb, head_need,
|
||||
+ sdata->encrypt_headroom)) {
|
||||
+ ieee80211_free_txskb(&local->hw, skb);
|
||||
+ skb = NULL;
|
||||
+ return ERR_PTR(-ENOMEM);
|
||||
}
|
||||
|
||||
if (encaps_data)
|
||||
@@ -3388,7 +3368,6 @@ static bool ieee80211_xmit_fast(struct i
|
||||
struct ieee80211_local *local = sdata->local;
|
||||
u16 ethertype = (skb->data[12] << 8) | skb->data[13];
|
||||
int extra_head = fast_tx->hdr_len - (ETH_HLEN - 2);
|
||||
- int hw_headroom = sdata->local->hw.extra_tx_headroom;
|
||||
struct ethhdr eth;
|
||||
struct ieee80211_tx_info *info;
|
||||
struct ieee80211_hdr *hdr = (void *)fast_tx->hdr;
|
||||
@@ -3440,10 +3419,7 @@ static bool ieee80211_xmit_fast(struct i
|
||||
* as the may-encrypt argument for the resize to not account for
|
||||
* more room than we already have in 'extra_head'
|
||||
*/
|
||||
- if (unlikely(ieee80211_skb_resize(sdata, skb,
|
||||
- max_t(int, extra_head + hw_headroom -
|
||||
- skb_headroom(skb), 0),
|
||||
- ENCRYPT_NO))) {
|
||||
+ if (unlikely(ieee80211_skb_resize(local, sdata, skb, extra_head, 0))) {
|
||||
kfree_skb(skb);
|
||||
return true;
|
||||
}
|
||||
@@ -72,7 +72,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
/**
|
||||
--- a/net/mac80211/tx.c
|
||||
+++ b/net/mac80211/tx.c
|
||||
@@ -3674,8 +3674,9 @@ out:
|
||||
@@ -3698,8 +3698,9 @@ out:
|
||||
}
|
||||
EXPORT_SYMBOL(ieee80211_next_txq);
|
||||
|
||||
@@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
{
|
||||
struct ieee80211_local *local = hw_to_local(hw);
|
||||
struct txq_info *txqi = to_txq_info(txq);
|
||||
@@ -3683,7 +3684,8 @@ void ieee80211_schedule_txq(struct ieee8
|
||||
@@ -3707,7 +3708,8 @@ void ieee80211_schedule_txq(struct ieee8
|
||||
spin_lock_bh(&local->active_txq_lock[txq->ac]);
|
||||
|
||||
if (list_empty(&txqi->schedule_order) &&
|
||||
@@ -94,7 +94,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
/* If airtime accounting is active, always enqueue STAs at the
|
||||
* head of the list to ensure that they only get moved to the
|
||||
* back by the airtime DRR scheduler once they have a negative
|
||||
@@ -3703,7 +3705,7 @@ void ieee80211_schedule_txq(struct ieee8
|
||||
@@ -3727,7 +3729,7 @@ void ieee80211_schedule_txq(struct ieee8
|
||||
|
||||
spin_unlock_bh(&local->active_txq_lock[txq->ac]);
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/mac80211/tx.c
|
||||
+++ b/net/mac80211/tx.c
|
||||
@@ -3773,6 +3773,7 @@ void __ieee80211_subif_start_xmit(struct
|
||||
@@ -3797,6 +3797,7 @@ void __ieee80211_subif_start_xmit(struct
|
||||
u32 ctrl_flags)
|
||||
{
|
||||
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
|
||||
@@ -21,7 +21,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
struct sta_info *sta;
|
||||
struct sk_buff *next;
|
||||
|
||||
@@ -3786,7 +3787,15 @@ void __ieee80211_subif_start_xmit(struct
|
||||
@@ -3810,7 +3811,15 @@ void __ieee80211_subif_start_xmit(struct
|
||||
if (ieee80211_lookup_ra_sta(sdata, skb, &sta))
|
||||
goto out_free;
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
/**
|
||||
--- a/net/mac80211/wpa.c
|
||||
+++ b/net/mac80211/wpa.c
|
||||
@@ -947,7 +947,8 @@ ieee80211_crypto_aes_cmac_encrypt(struct
|
||||
@@ -952,7 +952,8 @@ ieee80211_crypto_aes_cmac_encrypt(struct
|
||||
|
||||
info = IEEE80211_SKB_CB(skb);
|
||||
|
||||
@@ -46,7 +46,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
return TX_CONTINUE;
|
||||
|
||||
if (WARN_ON(skb_tailroom(skb) < sizeof(*mmie)))
|
||||
@@ -963,6 +964,9 @@ ieee80211_crypto_aes_cmac_encrypt(struct
|
||||
@@ -968,6 +969,9 @@ ieee80211_crypto_aes_cmac_encrypt(struct
|
||||
|
||||
bip_ipn_set64(mmie->sequence_number, pn64);
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
}
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -2071,7 +2071,8 @@ void ieee80211_send_auth(struct ieee8021
|
||||
@@ -2056,7 +2056,8 @@ void ieee80211_send_auth(struct ieee8021
|
||||
const u8 *da, const u8 *key, u8 key_len, u8 key_idx,
|
||||
u32 tx_flags);
|
||||
void ieee80211_send_deauth_disassoc(struct ieee80211_sub_if_data *sdata,
|
||||
@@ -66,7 +66,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
enum {
|
||||
--- a/net/mac80211/mlme.c
|
||||
+++ b/net/mac80211/mlme.c
|
||||
@@ -2203,8 +2203,9 @@ static void ieee80211_set_disassoc(struc
|
||||
@@ -2208,8 +2208,9 @@ static void ieee80211_set_disassoc(struc
|
||||
!ifmgd->have_beacon)
|
||||
drv_mgd_prepare_tx(sdata->local, sdata, 0);
|
||||
|
||||
@@ -78,7 +78,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
}
|
||||
|
||||
/* flush out frame - make sure the deauth was actually sent */
|
||||
@@ -4369,7 +4370,7 @@ void ieee80211_mgd_quiesce(struct ieee80
|
||||
@@ -4374,7 +4375,7 @@ void ieee80211_mgd_quiesce(struct ieee80
|
||||
* cfg80211 won't know and won't actually abort those attempts,
|
||||
* thus we need to do that ourselves.
|
||||
*/
|
||||
@@ -87,7 +87,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
IEEE80211_STYPE_DEAUTH,
|
||||
WLAN_REASON_DEAUTH_LEAVING,
|
||||
false, frame_buf);
|
||||
@@ -5349,7 +5350,7 @@ int ieee80211_mgd_deauth(struct ieee8021
|
||||
@@ -5354,7 +5355,7 @@ int ieee80211_mgd_deauth(struct ieee8021
|
||||
ieee80211_get_reason_code_string(req->reason_code));
|
||||
|
||||
drv_mgd_prepare_tx(sdata->local, sdata, 0);
|
||||
@@ -96,7 +96,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
IEEE80211_STYPE_DEAUTH,
|
||||
req->reason_code, tx,
|
||||
frame_buf);
|
||||
@@ -5369,7 +5370,7 @@ int ieee80211_mgd_deauth(struct ieee8021
|
||||
@@ -5374,7 +5375,7 @@ int ieee80211_mgd_deauth(struct ieee8021
|
||||
ieee80211_get_reason_code_string(req->reason_code));
|
||||
|
||||
drv_mgd_prepare_tx(sdata->local, sdata, 0);
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -2458,6 +2458,19 @@ static int ieee80211_get_tx_power(struct
|
||||
@@ -2460,6 +2460,19 @@ static int ieee80211_get_tx_power(struct
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
static int ieee80211_set_wds_peer(struct wiphy *wiphy, struct net_device *dev,
|
||||
const u8 *addr)
|
||||
{
|
||||
@@ -3847,6 +3860,7 @@ const struct cfg80211_ops mac80211_confi
|
||||
@@ -3849,6 +3862,7 @@ const struct cfg80211_ops mac80211_confi
|
||||
.set_wiphy_params = ieee80211_set_wiphy_params,
|
||||
.set_tx_power = ieee80211_set_tx_power,
|
||||
.get_tx_power = ieee80211_get_tx_power,
|
||||
@@ -87,7 +87,7 @@
|
||||
CFG80211_TESTMODE_CMD(ieee80211_testmode_cmd)
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -1365,6 +1365,7 @@ struct ieee80211_local {
|
||||
@@ -1353,6 +1353,7 @@ struct ieee80211_local {
|
||||
int dynamic_ps_forced_timeout;
|
||||
|
||||
int user_power_level; /* in dBm, for all interfaces */
|
||||
|
||||
@@ -8,9 +8,9 @@ PKG_LICENSE_FILES:=
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/openwrt/mt76
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2020-03-10
|
||||
PKG_SOURCE_VERSION:=08054d5ab1350fcb8563feb90e6ab7f8f4a0a1b7
|
||||
PKG_MIRROR_HASH:=b41a3cab1485c68befb1dcb4c1e426d41705db1b2a57851dafd6e8f75eeea3d7
|
||||
PKG_SOURCE_DATE:=2021-02-15
|
||||
PKG_SOURCE_VERSION:=5c768dec13389700ff3fa3d25083fb43d8e7adda
|
||||
PKG_MIRROR_HASH:=2ef0cf233bedc20e77c61cd6dd6085e162cce5c2719b5285bcdd8bf92ebf88eb
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
|
||||
@@ -21,6 +21,7 @@ PKG_MIRROR_HASH:=7bdd05765d8215a9c293cdcb028d63a04c9e55b337eaac9e8d3659bd8621832
|
||||
|
||||
PKG_MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mbedtls
|
||||
PKG_VERSION:=2.16.9
|
||||
PKG_VERSION:=2.16.10
|
||||
PKG_RELEASE:=1
|
||||
PKG_USE_MIPS16:=0
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/ARMmbed/mbedtls/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=fc17ff7d8c11d08f23ae2800a18269408ad2c24ea6bb8b9363e41a01c2425697
|
||||
PKG_HASH:=96257bb03b30300b2f35f861ffe204ed957e9fd0329d80646fe57fc49f589b29
|
||||
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_LICENSE:=GPL-2.0+
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
|
||||
/**
|
||||
* \def MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT
|
||||
@@ -1779,7 +1779,7 @@
|
||||
@@ -1796,7 +1796,7 @@
|
||||
*
|
||||
* Comment this to disable run-time checking and save ROM space
|
||||
*/
|
||||
@@ -153,7 +153,7 @@
|
||||
|
||||
/**
|
||||
* \def MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3
|
||||
@@ -2109,7 +2109,7 @@
|
||||
@@ -2126,7 +2126,7 @@
|
||||
* MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256
|
||||
* MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256
|
||||
*/
|
||||
@@ -162,7 +162,7 @@
|
||||
|
||||
/**
|
||||
* \def MBEDTLS_ARIA_C
|
||||
@@ -2175,7 +2175,7 @@
|
||||
@@ -2192,7 +2192,7 @@
|
||||
* This module enables the AES-CCM ciphersuites, if other requisites are
|
||||
* enabled as well.
|
||||
*/
|
||||
@@ -171,7 +171,7 @@
|
||||
|
||||
/**
|
||||
* \def MBEDTLS_CERTS_C
|
||||
@@ -2187,7 +2187,7 @@
|
||||
@@ -2204,7 +2204,7 @@
|
||||
*
|
||||
* This module is used for testing (ssl_client/server).
|
||||
*/
|
||||
@@ -180,7 +180,7 @@
|
||||
|
||||
/**
|
||||
* \def MBEDTLS_CHACHA20_C
|
||||
@@ -2295,7 +2295,7 @@
|
||||
@@ -2312,7 +2312,7 @@
|
||||
* \warning DES is considered a weak cipher and its use constitutes a
|
||||
* security risk. We recommend considering stronger ciphers instead.
|
||||
*/
|
||||
@@ -189,7 +189,7 @@
|
||||
|
||||
/**
|
||||
* \def MBEDTLS_DHM_C
|
||||
@@ -2458,7 +2458,7 @@
|
||||
@@ -2475,7 +2475,7 @@
|
||||
* This module adds support for the Hashed Message Authentication Code
|
||||
* (HMAC)-based key derivation function (HKDF).
|
||||
*/
|
||||
@@ -198,7 +198,7 @@
|
||||
|
||||
/**
|
||||
* \def MBEDTLS_HMAC_DRBG_C
|
||||
@@ -2768,7 +2768,7 @@
|
||||
@@ -2785,7 +2785,7 @@
|
||||
*
|
||||
* This module enables abstraction of common (libc) functions.
|
||||
*/
|
||||
@@ -207,7 +207,7 @@
|
||||
|
||||
/**
|
||||
* \def MBEDTLS_POLY1305_C
|
||||
@@ -2789,7 +2789,7 @@
|
||||
@@ -2806,7 +2806,7 @@
|
||||
* Caller: library/md.c
|
||||
*
|
||||
*/
|
||||
@@ -216,7 +216,7 @@
|
||||
|
||||
/**
|
||||
* \def MBEDTLS_RSA_C
|
||||
@@ -2896,7 +2896,7 @@
|
||||
@@ -2913,7 +2913,7 @@
|
||||
*
|
||||
* Requires: MBEDTLS_CIPHER_C
|
||||
*/
|
||||
@@ -225,7 +225,7 @@
|
||||
|
||||
/**
|
||||
* \def MBEDTLS_SSL_CLI_C
|
||||
@@ -2996,7 +2996,7 @@
|
||||
@@ -3013,7 +3013,7 @@
|
||||
*
|
||||
* This module provides run-time version information.
|
||||
*/
|
||||
@@ -234,7 +234,7 @@
|
||||
|
||||
/**
|
||||
* \def MBEDTLS_X509_USE_C
|
||||
@@ -3106,7 +3106,7 @@
|
||||
@@ -3123,7 +3123,7 @@
|
||||
* Module: library/xtea.c
|
||||
* Caller:
|
||||
*/
|
||||
|
||||
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=openssl
|
||||
PKG_BASE:=1.1.1
|
||||
PKG_BUGFIX:=i
|
||||
PKG_BUGFIX:=k
|
||||
PKG_VERSION:=$(PKG_BASE)$(PKG_BUGFIX)
|
||||
PKG_RELEASE:=1
|
||||
PKG_USE_MIPS16:=0
|
||||
@@ -19,12 +19,14 @@ PKG_BUILD_PARALLEL:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:= \
|
||||
http://ftp.fi.muni.cz/pub/openssl/source/ \
|
||||
http://ftp.linux.hr/pub/openssl/source/ \
|
||||
ftp://ftp.pca.dfn.de/pub/tools/net/openssl/source/ \
|
||||
http://www.openssl.org/source/ \
|
||||
http://www.openssl.org/source/old/$(PKG_BASE)/
|
||||
PKG_HASH:=e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242
|
||||
http://www.openssl.org/source/old/$(PKG_BASE)/ \
|
||||
http://ftp.fi.muni.cz/pub/openssl/source/ \
|
||||
http://ftp.fi.muni.cz/pub/openssl/source/old/$(PKG_BASE)/ \
|
||||
ftp://ftp.pca.dfn.de/pub/tools/net/openssl/source/ \
|
||||
ftp://ftp.pca.dfn.de/pub/tools/net/openssl/source/old/$(PKG_BASE)/
|
||||
|
||||
PKG_HASH:=892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5
|
||||
|
||||
PKG_LICENSE:=OpenSSL
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
@@ -116,7 +116,7 @@ diff --git a/crypto/engine/eng_devcrypto.c b/engines/e_devcrypto.c
|
||||
similarity index 95%
|
||||
rename from crypto/engine/eng_devcrypto.c
|
||||
rename to engines/e_devcrypto.c
|
||||
index 0d420e50aa..3fcd81de7a 100644
|
||||
index 2c1b52d572..eff1ed3a7d 100644
|
||||
--- a/crypto/engine/eng_devcrypto.c
|
||||
+++ b/engines/e_devcrypto.c
|
||||
@@ -7,7 +7,7 @@
|
||||
@@ -152,22 +152,6 @@ index 0d420e50aa..3fcd81de7a 100644
|
||||
|
||||
/*
|
||||
* cipher/digest status & acceleration definitions
|
||||
@@ -341,6 +343,7 @@ static int cipher_ctrl(EVP_CIPHER_CTX *ctx, int type, int p1, void* p2)
|
||||
struct cipher_ctx *to_cipher_ctx;
|
||||
|
||||
switch (type) {
|
||||
+
|
||||
case EVP_CTRL_COPY:
|
||||
if (cipher_ctx == NULL)
|
||||
return 1;
|
||||
@@ -702,7 +705,6 @@ static int digest_init(EVP_MD_CTX *ctx)
|
||||
SYSerr(SYS_F_IOCTL, errno);
|
||||
return 0;
|
||||
}
|
||||
-
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1058,7 +1060,7 @@ static const ENGINE_CMD_DEFN devcrypto_cmds[] = {
|
||||
OPENSSL_MSTR(DEVCRYPTO_USE_SOFTWARE) "=allow all drivers, "
|
||||
OPENSSL_MSTR(DEVCRYPTO_REJECT_SOFTWARE)
|
||||
@@ -177,7 +161,7 @@ index 0d420e50aa..3fcd81de7a 100644
|
||||
ENGINE_CMD_FLAG_NUMERIC},
|
||||
#endif
|
||||
|
||||
@@ -1166,55 +1168,70 @@ static int devcrypto_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void))
|
||||
@@ -1166,32 +1168,22 @@ static int devcrypto_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void))
|
||||
*
|
||||
*****/
|
||||
|
||||
@@ -201,10 +185,12 @@ index 0d420e50aa..3fcd81de7a 100644
|
||||
+static int open_devcrypto(void)
|
||||
{
|
||||
- ENGINE *e = NULL;
|
||||
int fd;
|
||||
|
||||
+ if (cfd >= 0)
|
||||
+ return 1;
|
||||
|
||||
if ((cfd = open("/dev/crypto", O_RDWR, 0)) < 0) {
|
||||
+
|
||||
if ((fd = open("/dev/crypto", O_RDWR, 0)) < 0) {
|
||||
#ifndef ENGINE_DEVCRYPTO_DEBUG
|
||||
if (errno != ENOENT)
|
||||
#endif
|
||||
@@ -213,6 +199,19 @@ index 0d420e50aa..3fcd81de7a 100644
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
#ifdef CRIOGET
|
||||
@@ -1199,35 +1191,61 @@ void engine_load_devcrypto_int()
|
||||
fprintf(stderr, "Could not create crypto fd: %s\n", strerror(errno));
|
||||
close(fd);
|
||||
cfd = -1;
|
||||
- return;
|
||||
+ return 0;
|
||||
}
|
||||
close(fd);
|
||||
#else
|
||||
cfd = fd;
|
||||
#endif
|
||||
|
||||
- if ((e = ENGINE_new()) == NULL
|
||||
- || !ENGINE_set_destroy_function(e, devcrypto_unload)) {
|
||||
- ENGINE_free(e);
|
||||
@@ -278,7 +277,7 @@ index 0d420e50aa..3fcd81de7a 100644
|
||||
/*
|
||||
* Asymmetric ciphers aren't well supported with /dev/crypto. Among the BSD
|
||||
* implementations, it seems to only exist in FreeBSD, and regarding the
|
||||
@@ -1237,23 +1254,36 @@ void engine_load_devcrypto_int()
|
||||
@@ -1250,23 +1268,36 @@ void engine_load_devcrypto_int()
|
||||
*/
|
||||
#if 0
|
||||
# ifndef OPENSSL_NO_RSA
|
||||
@@ -324,7 +323,7 @@ index 0d420e50aa..3fcd81de7a 100644
|
||||
ENGINE_free(e);
|
||||
return;
|
||||
}
|
||||
@@ -1262,3 +1292,22 @@ void engine_load_devcrypto_int()
|
||||
@@ -1275,3 +1306,22 @@ void engine_load_devcrypto_int()
|
||||
ENGINE_free(e); /* Loose our local reference */
|
||||
ERR_clear_error();
|
||||
}
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=wolfssl
|
||||
PKG_VERSION:=4.5.0-stable
|
||||
PKG_VERSION:=4.7.0-stable
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/wolfSSL/wolfssl/archive/v$(PKG_VERSION)
|
||||
PKG_HASH:=7de62300ce14daa0051bfefc7c4d6302f96cabc768b6ae49eda77523b118250c
|
||||
PKG_HASH:=b0e740b31d4d877d540ad50cc539a8873fc41af02bd3091c4357b403f7106e31
|
||||
|
||||
PKG_FIXUP:=libtool
|
||||
PKG_INSTALL:=1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/wolfssl/wolfcrypt/settings.h
|
||||
+++ b/wolfssl/wolfcrypt/settings.h
|
||||
@@ -2128,7 +2128,7 @@ extern void uITRON4_free(void *p) ;
|
||||
@@ -2255,7 +2255,7 @@ extern void uITRON4_free(void *p) ;
|
||||
#endif
|
||||
|
||||
/* warning for not using harden build options (default with ./configure) */
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
From b90acc91d0cd276befe7f08f87ba2dc5ee7122ff Mon Sep 17 00:00:00 2001
|
||||
From: Tesfa Mael <tesfa@wolfssl.com>
|
||||
Date: Wed, 26 Aug 2020 10:13:06 -0700
|
||||
Subject: [PATCH] Make ByteReverseWords available for big and little endian
|
||||
|
||||
---
|
||||
wolfcrypt/src/misc.c | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
--- a/wolfcrypt/src/misc.c
|
||||
+++ b/wolfcrypt/src/misc.c
|
||||
@@ -120,7 +120,6 @@ WC_STATIC WC_INLINE word32 ByteReverseWo
|
||||
return rotlFixed(value, 16U);
|
||||
#endif
|
||||
}
|
||||
-#if defined(LITTLE_ENDIAN_ORDER)
|
||||
/* This routine performs a byte swap of words array of a given count. */
|
||||
WC_STATIC WC_INLINE void ByteReverseWords(word32* out, const word32* in,
|
||||
word32 byteCount)
|
||||
@@ -131,7 +130,6 @@ WC_STATIC WC_INLINE void ByteReverseWord
|
||||
out[i] = ByteReverseWord32(in[i]);
|
||||
|
||||
}
|
||||
-#endif /* LITTLE_ENDIAN_ORDER */
|
||||
|
||||
#if defined(WORD64_AVAILABLE) && !defined(WOLFSSL_NO_WORD64_OPS)
|
||||
|
||||
@@ -5,9 +5,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
|
||||
PKG_SOURCE_DATE:=2019-08-05
|
||||
PKG_SOURCE_VERSION:=5e02f94411b06f192fb2a7d9be9abde3549153a8
|
||||
PKG_MIRROR_HASH:=96e158584c605e96aceb3ce7e8ad8faa8e774ffd67d59558b2d6c2ff49d0f1a5
|
||||
PKG_SOURCE_DATE:=2021-01-09
|
||||
PKG_SOURCE_VERSION:=753c351bc729967a691d99e27693be5aec334028
|
||||
PKG_MIRROR_HASH:=e7d95bde520fc660d0a49e28c5bb50fff3071d7f48fe7fc3fc610f38edfc7df1
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@@ -12,9 +12,9 @@ PKG_RELEASE:=16
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcp6c.git
|
||||
PKG_SOURCE_DATE:=2019-01-11
|
||||
PKG_SOURCE_VERSION:=e199804b602a48eb69f0752584c0ad28495b82ad
|
||||
PKG_MIRROR_HASH:=e7e483d9fe066b8d270474b987227593a7f5c5fc8e2a46aebc5cd9d16f61805a
|
||||
PKG_SOURCE_DATE:=2021-01-09
|
||||
PKG_SOURCE_VERSION:=64e1b4e78f65bd8ea41320be6ab732f6143955fe
|
||||
PKG_MIRROR_HASH:=a5face4705d71852c8e2c81e99feb46485b6044f01e6123b69605c77aa114f5a
|
||||
PKG_MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_NAME:=dnsmasq
|
||||
PKG_UPSTREAM_VERSION:=2.80
|
||||
PKG_VERSION:=$(subst test,~~test,$(subst rc,~rc,$(PKG_UPSTREAM_VERSION)))
|
||||
PKG_RELEASE:=16.2
|
||||
PKG_RELEASE:=16.3
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_UPSTREAM_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
From 04490bf622ac84891aad6f2dd2edf83725decdee Mon Sep 17 00:00:00 2001
|
||||
From: Simon Kelley <simon@thekelleys.org.uk>
|
||||
Date: Fri, 22 Jan 2021 16:49:12 +0000
|
||||
Subject: Move fd into frec_src, fixes 15b60ddf935a531269bb8c68198de012a4967156
|
||||
|
||||
If identical queries from IPv4 and IPv6 sources are combined by the
|
||||
new code added in 15b60ddf935a531269bb8c68198de012a4967156 then replies
|
||||
can end up being sent via the wrong family of socket. The ->fd
|
||||
should be per query, not per-question.
|
||||
|
||||
In bind-interfaces mode, this could also result in replies being sent
|
||||
via the wrong socket even when IPv4/IPV6 issues are not in play.
|
||||
---
|
||||
src/dnsmasq.h | 3 ++-
|
||||
src/forward.c | 4 ++--
|
||||
2 files changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/src/dnsmasq.h
|
||||
+++ b/src/dnsmasq.h
|
||||
@@ -653,6 +653,7 @@ struct frec {
|
||||
union mysockaddr source;
|
||||
union all_addr dest;
|
||||
unsigned int iface, log_id;
|
||||
+ int fd;
|
||||
unsigned short orig_id;
|
||||
struct frec_src *next;
|
||||
} frec_src;
|
||||
@@ -660,7 +661,7 @@ struct frec {
|
||||
struct randfd *rfd4;
|
||||
struct randfd *rfd6;
|
||||
unsigned short new_id;
|
||||
- int fd, forwardall, flags;
|
||||
+ int forwardall, flags;
|
||||
time_t time;
|
||||
unsigned char *hash[HASH_SIZE];
|
||||
#ifdef HAVE_DNSSEC
|
||||
--- a/src/forward.c
|
||||
+++ b/src/forward.c
|
||||
@@ -394,8 +394,8 @@ static int forward_query(int udpfd, unio
|
||||
forward->frec_src.dest = *dst_addr;
|
||||
forward->frec_src.iface = dst_iface;
|
||||
forward->frec_src.next = NULL;
|
||||
+ forward->frec_src.fd = udpfd;
|
||||
forward->new_id = get_id();
|
||||
- forward->fd = udpfd;
|
||||
memcpy(forward->hash, hash, HASH_SIZE);
|
||||
forward->forwardall = 0;
|
||||
forward->flags = fwd_flags;
|
||||
@@ -1284,7 +1284,7 @@ void reply_query(int fd, int family, tim
|
||||
dump_packet(DUMP_REPLY, daemon->packet, (size_t)nn, NULL, &src->source);
|
||||
#endif
|
||||
|
||||
- send_from(forward->fd, option_bool(OPT_NOWILD) || option_bool (OPT_CLEVERBIND), daemon->packet, nn,
|
||||
+ send_from(src->fd, option_bool(OPT_NOWILD) || option_bool (OPT_CLEVERBIND), daemon->packet, nn,
|
||||
&src->source, &src->dest, src->iface);
|
||||
|
||||
if (option_bool(OPT_EXTRALOG) && src != &forward->frec_src)
|
||||
@@ -0,0 +1,19 @@
|
||||
From 12af2b171de0d678d98583e2190789e544440e02 Mon Sep 17 00:00:00 2001
|
||||
From: Simon Kelley <simon@thekelleys.org.uk>
|
||||
Date: Fri, 22 Jan 2021 18:24:03 +0000
|
||||
Subject: Fix to 75e2f0aec33e58ef5b8d4d107d821c215a52827c
|
||||
|
||||
---
|
||||
src/forward.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/src/forward.c
|
||||
+++ b/src/forward.c
|
||||
@@ -370,6 +370,7 @@ static int forward_query(int udpfd, unio
|
||||
new->dest = *dst_addr;
|
||||
new->log_id = daemon->log_id;
|
||||
new->iface = dst_iface;
|
||||
+ forward->frec_src.fd = udpfd;
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -0,0 +1,20 @@
|
||||
From 3f535da79e7a42104543ef5c7b5fa2bed819a78b Mon Sep 17 00:00:00 2001
|
||||
From: Simon Kelley <simon@thekelleys.org.uk>
|
||||
Date: Fri, 22 Jan 2021 22:26:25 +0000
|
||||
Subject: Fix for 12af2b171de0d678d98583e2190789e544440e02
|
||||
|
||||
---
|
||||
src/forward.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/src/forward.c
|
||||
+++ b/src/forward.c
|
||||
@@ -370,7 +370,7 @@ static int forward_query(int udpfd, unio
|
||||
new->dest = *dst_addr;
|
||||
new->log_id = daemon->log_id;
|
||||
new->iface = dst_iface;
|
||||
- forward->frec_src.fd = udpfd;
|
||||
+ new->fd = udpfd;
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -0,0 +1,21 @@
|
||||
From 8f8a3dff705fad774a10864a2e3dbcfa9779ceff Mon Sep 17 00:00:00 2001
|
||||
From: Haelwenn Monnier <contact+github.com@hacktivis.me>
|
||||
Date: Mon, 25 May 2020 14:54:29 +0200
|
||||
Subject: [PATCH] scp.c: Port OpenSSH CVE-2018-20685 fix (#80)
|
||||
|
||||
---
|
||||
scp.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/scp.c
|
||||
+++ b/scp.c
|
||||
@@ -935,7 +935,8 @@ sink(int argc, char **argv)
|
||||
size = size * 10 + (*cp++ - '0');
|
||||
if (*cp++ != ' ')
|
||||
SCREWUP("size not delimited");
|
||||
- if ((strchr(cp, '/') != NULL) || (strcmp(cp, "..") == 0)) {
|
||||
+ if (*cp == '\0' || strchr(cp, '/') != NULL ||
|
||||
+ strcmp(cp, ".") == 0 || strcmp(cp, "..") == 0) {
|
||||
run_err("error: unexpected filename: %s", cp);
|
||||
exit(1);
|
||||
}
|
||||
@@ -7,7 +7,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=hostapd
|
||||
PKG_RELEASE:=4
|
||||
PKG_RELEASE:=7
|
||||
|
||||
PKG_SOURCE_URL:=http://w1.fi/hostap.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
From c7cca9b08f3e1e49c4a4a59ec66c47d91448e6ae Mon Sep 17 00:00:00 2001
|
||||
From: Jouni Malinen <j@w1.fi>
|
||||
Date: Sat, 13 Feb 2021 23:59:28 +0200
|
||||
Subject: [PATCH] nl80211: Ignore 4addr mode enabling error if it was already
|
||||
enabled
|
||||
|
||||
nl80211_set_4addr_mode() could fail when trying to enable 4addr mode on
|
||||
an interface that is in a bridge and has 4addr mode already enabled.
|
||||
This operation would not have been necessary in the first place and this
|
||||
failure results in disconnecting, e.g., when roaming from one backhaul
|
||||
BSS to another BSS with Multi AP.
|
||||
|
||||
Avoid this issue by ignoring the nl80211 command failure in the case
|
||||
where 4addr mode is being enabled while it has already been enabled.
|
||||
|
||||
Signed-off-by: Jouni Malinen <j@w1.fi>
|
||||
---
|
||||
src/drivers/driver_nl80211.c | 23 +++++++++++++++++++++++
|
||||
1 file changed, 23 insertions(+)
|
||||
|
||||
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
|
||||
index 72189da24..011a15e68 100644
|
||||
--- a/src/drivers/driver_nl80211.c
|
||||
+++ b/src/drivers/driver_nl80211.c
|
||||
@@ -617,6 +617,7 @@ struct wiphy_idx_data {
|
||||
int wiphy_idx;
|
||||
enum nl80211_iftype nlmode;
|
||||
u8 *macaddr;
|
||||
+ u8 use_4addr;
|
||||
};
|
||||
|
||||
|
||||
@@ -639,6 +640,9 @@ static int netdev_info_handler(struct nl_msg *msg, void *arg)
|
||||
os_memcpy(info->macaddr, nla_data(tb[NL80211_ATTR_MAC]),
|
||||
ETH_ALEN);
|
||||
|
||||
+ if (tb[NL80211_ATTR_4ADDR])
|
||||
+ info->use_4addr = nla_get_u8(tb[NL80211_ATTR_4ADDR]);
|
||||
+
|
||||
return NL_SKIP;
|
||||
}
|
||||
|
||||
@@ -691,6 +695,20 @@ static int nl80211_get_macaddr(struct i802_bss *bss)
|
||||
}
|
||||
|
||||
|
||||
+static int nl80211_get_4addr(struct i802_bss *bss)
|
||||
+{
|
||||
+ struct nl_msg *msg;
|
||||
+ struct wiphy_idx_data data = {
|
||||
+ .use_4addr = 0,
|
||||
+ };
|
||||
+
|
||||
+ if (!(msg = nl80211_cmd_msg(bss, 0, NL80211_CMD_GET_INTERFACE)) ||
|
||||
+ send_and_recv_msgs(bss->drv, msg, netdev_info_handler, &data))
|
||||
+ return -1;
|
||||
+ return data.use_4addr;
|
||||
+}
|
||||
+
|
||||
+
|
||||
static int nl80211_register_beacons(struct wpa_driver_nl80211_data *drv,
|
||||
struct nl80211_wiphy_data *w)
|
||||
{
|
||||
@@ -11482,6 +11500,11 @@ static int nl80211_set_4addr_mode(void *priv, const char *bridge_ifname,
|
||||
|
||||
ret = send_and_recv_msgs(drv, msg, NULL, NULL);
|
||||
msg = NULL;
|
||||
+ if (ret && val && nl80211_get_4addr(bss) == 1) {
|
||||
+ wpa_printf(MSG_DEBUG,
|
||||
+ "nl80211: 4addr mode was already enabled");
|
||||
+ ret = 0;
|
||||
+ }
|
||||
if (!ret) {
|
||||
if (bridge_ifname[0] && val &&
|
||||
i802_check_bridge(drv, bss, bridge_ifname, bss->ifname) < 0)
|
||||
--
|
||||
2.29.2
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
From 8460e3230988ef2ec13ce6b69b687e941f6cdb32 Mon Sep 17 00:00:00 2001
|
||||
From: Jouni Malinen <jouni@codeaurora.org>
|
||||
Date: Tue, 8 Dec 2020 23:52:50 +0200
|
||||
Subject: [PATCH] P2P: Fix a corner case in peer addition based on PD Request
|
||||
|
||||
p2p_add_device() may remove the oldest entry if there is no room in the
|
||||
peer table for a new peer. This would result in any pointer to that
|
||||
removed entry becoming stale. A corner case with an invalid PD Request
|
||||
frame could result in such a case ending up using (read+write) freed
|
||||
memory. This could only by triggered when the peer table has reached its
|
||||
maximum size and the PD Request frame is received from the P2P Device
|
||||
Address of the oldest remaining entry and the frame has incorrect P2P
|
||||
Device Address in the payload.
|
||||
|
||||
Fix this by fetching the dev pointer again after having called
|
||||
p2p_add_device() so that the stale pointer cannot be used.
|
||||
|
||||
Fixes: 17bef1e97a50 ("P2P: Add peer entry based on Provision Discovery Request")
|
||||
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
|
||||
---
|
||||
src/p2p/p2p_pd.c | 12 +++++-------
|
||||
1 file changed, 5 insertions(+), 7 deletions(-)
|
||||
|
||||
--- a/src/p2p/p2p_pd.c
|
||||
+++ b/src/p2p/p2p_pd.c
|
||||
@@ -595,14 +595,12 @@ void p2p_process_prov_disc_req(struct p2
|
||||
goto out;
|
||||
}
|
||||
|
||||
+ dev = p2p_get_device(p2p, sa);
|
||||
if (!dev) {
|
||||
- dev = p2p_get_device(p2p, sa);
|
||||
- if (!dev) {
|
||||
- p2p_dbg(p2p,
|
||||
- "Provision Discovery device not found "
|
||||
- MACSTR, MAC2STR(sa));
|
||||
- goto out;
|
||||
- }
|
||||
+ p2p_dbg(p2p,
|
||||
+ "Provision Discovery device not found "
|
||||
+ MACSTR, MAC2STR(sa));
|
||||
+ goto out;
|
||||
}
|
||||
} else if (msg.wfd_subelems) {
|
||||
wpabuf_free(dev->info.wfd_subelems);
|
||||
@@ -0,0 +1,38 @@
|
||||
From 947272febe24a8f0ea828b5b2f35f13c3821901e Mon Sep 17 00:00:00 2001
|
||||
From: Jouni Malinen <jouni@codeaurora.org>
|
||||
Date: Mon, 9 Nov 2020 11:43:12 +0200
|
||||
Subject: [PATCH] P2P: Fix copying of secondary device types for P2P group
|
||||
client
|
||||
|
||||
Parsing and copying of WPS secondary device types list was verifying
|
||||
that the contents is not too long for the internal maximum in the case
|
||||
of WPS messages, but similar validation was missing from the case of P2P
|
||||
group information which encodes this information in a different
|
||||
attribute. This could result in writing beyond the memory area assigned
|
||||
for these entries and corrupting memory within an instance of struct
|
||||
p2p_device. This could result in invalid operations and unexpected
|
||||
behavior when trying to free pointers from that corrupted memory.
|
||||
|
||||
Credit to OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=27269
|
||||
Fixes: e57ae6e19edf ("P2P: Keep track of secondary device types for peers")
|
||||
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
|
||||
---
|
||||
src/p2p/p2p.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/p2p/p2p.c b/src/p2p/p2p.c
|
||||
index 74b7b52ae05c..5cbfc217fc1f 100644
|
||||
--- a/src/p2p/p2p.c
|
||||
+++ b/src/p2p/p2p.c
|
||||
@@ -453,6 +453,8 @@ static void p2p_copy_client_info(struct p2p_device *dev,
|
||||
dev->info.config_methods = cli->config_methods;
|
||||
os_memcpy(dev->info.pri_dev_type, cli->pri_dev_type, 8);
|
||||
dev->info.wps_sec_dev_type_list_len = 8 * cli->num_sec_dev_types;
|
||||
+ if (dev->info.wps_sec_dev_type_list_len > WPS_SEC_DEV_TYPE_MAX_LEN)
|
||||
+ dev->info.wps_sec_dev_type_list_len = WPS_SEC_DEV_TYPE_MAX_LEN;
|
||||
os_memcpy(dev->info.wps_sec_dev_type_list, cli->sec_dev_types,
|
||||
dev->info.wps_sec_dev_type_list_len);
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -9,14 +9,14 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=openvpn
|
||||
|
||||
PKG_VERSION:=2.4.7
|
||||
PKG_RELEASE:=2
|
||||
PKG_VERSION:=2.4.11
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_URL:=\
|
||||
https://build.openvpn.net/downloads/releases/ \
|
||||
https://swupdate.openvpn.net/community/releases/
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_HASH:=a42f53570f669eaf10af68e98d65b531015ff9e12be7a62d9269ea684652f648
|
||||
PKG_HASH:=e579eff218ab1d765965e64a917927504d8324717afdfcd56850f6b83ba8441b
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
@@ -44,7 +44,7 @@ else
|
||||
endif
|
||||
endef
|
||||
|
||||
Package/openvpn-openssl=$(call Package/openvpn/Default,openssl,OpenSSL,+PACKAGE_openvpn-openssl:libopenssl +@OPENSSL_WITH_DEPRECATED)
|
||||
Package/openvpn-openssl=$(call Package/openvpn/Default,openssl,OpenSSL,+PACKAGE_openvpn-openssl:libopenssl)
|
||||
Package/openvpn-mbedtls=$(call Package/openvpn/Default,mbedtls,mbedTLS,+PACKAGE_openvpn-mbedtls:libmbedtls)
|
||||
Package/openvpn-nossl=$(call Package/openvpn/Default,nossl,plaintext (no SSL))
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/openvpn/ssl_mbedtls.c
|
||||
+++ b/src/openvpn/ssl_mbedtls.c
|
||||
@@ -1406,7 +1406,7 @@ const char *
|
||||
@@ -1415,7 +1415,7 @@ const char *
|
||||
get_ssl_library_version(void)
|
||||
{
|
||||
static char mbedtls_version[30];
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
From 17a476fd5c8cc49f1d103a50199e87ede76b1b67 Mon Sep 17 00:00:00 2001
|
||||
From: Steffan Karger <steffan@karger.me>
|
||||
Date: Sun, 26 Nov 2017 16:04:00 +0100
|
||||
Subject: [PATCH] openssl: don't use deprecated SSLEAY/SSLeay symbols
|
||||
|
||||
Compiling our current master against OpenSSL 1.1 with
|
||||
-DOPENSSL_API_COMPAT=0x10100000L screams bloody murder. This patch fixes
|
||||
the errors about the deprecated SSLEAY/SSLeay symbols and defines.
|
||||
|
||||
Signed-off-by: Steffan Karger <steffan@karger.me>
|
||||
Acked-by: Gert Doering <gert@greenie.muc.de>
|
||||
Message-Id: <20171126150401.28565-1-steffan@karger.me>
|
||||
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg15934.html
|
||||
Signed-off-by: Gert Doering <gert@greenie.muc.de>
|
||||
---
|
||||
configure.ac | 1 +
|
||||
src/openvpn/openssl_compat.h | 8 ++++++++
|
||||
src/openvpn/ssl_openssl.c | 2 +-
|
||||
3 files changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -904,6 +904,7 @@ if test "${enable_crypto}" = "yes" -a "$
|
||||
EVP_MD_CTX_free \
|
||||
EVP_MD_CTX_reset \
|
||||
EVP_CIPHER_CTX_reset \
|
||||
+ OpenSSL_version \
|
||||
SSL_CTX_get_default_passwd_cb \
|
||||
SSL_CTX_get_default_passwd_cb_userdata \
|
||||
SSL_CTX_set_security_level \
|
||||
--- a/src/openvpn/openssl_compat.h
|
||||
+++ b/src/openvpn/openssl_compat.h
|
||||
@@ -689,6 +689,14 @@ EC_GROUP_order_bits(const EC_GROUP *grou
|
||||
#endif
|
||||
|
||||
/* SSLeay symbols have been renamed in OpenSSL 1.1 */
|
||||
+#ifndef OPENSSL_VERSION
|
||||
+#define OPENSSL_VERSION SSLEAY_VERSION
|
||||
+#endif
|
||||
+
|
||||
+#ifndef HAVE_OPENSSL_VERSION
|
||||
+#define OpenSSL_version SSLeay_version
|
||||
+#endif
|
||||
+
|
||||
#if !defined(RSA_F_RSA_OSSL_PRIVATE_ENCRYPT)
|
||||
#define RSA_F_RSA_OSSL_PRIVATE_ENCRYPT RSA_F_RSA_EAY_PRIVATE_ENCRYPT
|
||||
#endif
|
||||
--- a/src/openvpn/ssl_openssl.c
|
||||
+++ b/src/openvpn/ssl_openssl.c
|
||||
@@ -2018,7 +2018,7 @@ get_highest_preference_tls_cipher(char *
|
||||
const char *
|
||||
get_ssl_library_version(void)
|
||||
{
|
||||
- return SSLeay_version(SSLEAY_VERSION);
|
||||
+ return OpenSSL_version(OPENSSL_VERSION);
|
||||
}
|
||||
|
||||
#endif /* defined(ENABLE_CRYPTO) && defined(ENABLE_CRYPTO_OPENSSL) */
|
||||
@@ -0,0 +1,65 @@
|
||||
From 1987498271abadf042d8bb3feee1fe0d877a9d55 Mon Sep 17 00:00:00 2001
|
||||
From: Steffan Karger <steffan@karger.me>
|
||||
Date: Sun, 26 Nov 2017 16:49:12 +0100
|
||||
Subject: [PATCH] openssl: add missing #include statements
|
||||
|
||||
Compiling our current master against OpenSSL 1.1 with
|
||||
-DOPENSSL_API_COMPAT=0x10100000L screams bloody murder. This patch fixes
|
||||
the errors caused by missing includes. Previous openssl versions would
|
||||
usually include 'the rest of the world', but they're fixing that. So we
|
||||
should no longer rely on it.
|
||||
|
||||
(And sneaking in alphabetic ordering of the includes while touching them.)
|
||||
|
||||
Signed-off-by: Steffan Karger <steffan@karger.me>
|
||||
Acked-by: Gert Doering <gert@greenie.muc.de>
|
||||
Message-Id: <20171126154912.13283-1-steffan@karger.me>
|
||||
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg15936.html
|
||||
Signed-off-by: Gert Doering <gert@greenie.muc.de>
|
||||
---
|
||||
src/openvpn/openssl_compat.h | 1 +
|
||||
src/openvpn/ssl_openssl.c | 6 +++++-
|
||||
src/openvpn/ssl_verify_openssl.c | 3 ++-
|
||||
3 files changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/src/openvpn/openssl_compat.h
|
||||
+++ b/src/openvpn/openssl_compat.h
|
||||
@@ -42,6 +42,7 @@
|
||||
|
||||
#include "buffer.h"
|
||||
|
||||
+#include <openssl/rsa.h>
|
||||
#include <openssl/ssl.h>
|
||||
#include <openssl/x509.h>
|
||||
|
||||
--- a/src/openvpn/ssl_openssl.c
|
||||
+++ b/src/openvpn/ssl_openssl.c
|
||||
@@ -52,10 +52,14 @@
|
||||
|
||||
#include "ssl_verify_openssl.h"
|
||||
|
||||
+#include <openssl/bn.h>
|
||||
+#include <openssl/crypto.h>
|
||||
+#include <openssl/dh.h>
|
||||
+#include <openssl/dsa.h>
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/pkcs12.h>
|
||||
+#include <openssl/rsa.h>
|
||||
#include <openssl/x509.h>
|
||||
-#include <openssl/crypto.h>
|
||||
#ifndef OPENSSL_NO_EC
|
||||
#include <openssl/ec.h>
|
||||
#endif
|
||||
--- a/src/openvpn/ssl_verify_openssl.c
|
||||
+++ b/src/openvpn/ssl_verify_openssl.c
|
||||
@@ -44,8 +44,9 @@
|
||||
#include "ssl_verify_backend.h"
|
||||
#include "openssl_compat.h"
|
||||
|
||||
-#include <openssl/x509v3.h>
|
||||
+#include <openssl/bn.h>
|
||||
#include <openssl/err.h>
|
||||
+#include <openssl/x509v3.h>
|
||||
|
||||
int
|
||||
verify_callback(int preverify_ok, X509_STORE_CTX *ctx)
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1078,68 +1078,15 @@ dnl
|
||||
@@ -1080,68 +1080,15 @@ dnl
|
||||
AC_ARG_VAR([LZ4_CFLAGS], [C compiler flags for lz4])
|
||||
AC_ARG_VAR([LZ4_LIBS], [linker flags for lz4])
|
||||
if test "$enable_lz4" = "yes" && test "$enable_comp_stub" = "no"; then
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -710,10 +718,12 @@ cipher_des_encrypt_ecb(const unsigned ch
|
||||
@@ -705,10 +713,12 @@ cipher_des_encrypt_ecb(const unsigned ch
|
||||
unsigned char *src,
|
||||
unsigned char *dst)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
From 22d9c14ae3930fe10f26bafc3eab45e3a17eb3fa Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
|
||||
Date: Sun, 19 Jul 2020 11:55:43 +0200
|
||||
Subject: [PATCH] Fix -W option for pppoe-discovery utility
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
pppoe-discovery's -W option is totally broken. pppoe-discovery currently
|
||||
expects that Host-Unique attribute equals to its own process pid if set.
|
||||
|
||||
This patch fixes parsing received PPPoE PADO packets when -W option is set.
|
||||
Same implementation is in pppd pppoe plugin.
|
||||
|
||||
Signed-off-by: Pali Rohár <pali@kernel.org>
|
||||
---
|
||||
pppd/plugins/rp-pppoe/pppoe-discovery.c | 18 +++++++-----------
|
||||
1 file changed, 7 insertions(+), 11 deletions(-)
|
||||
|
||||
--- a/pppd/plugins/rp-pppoe/pppoe-discovery.c
|
||||
+++ b/pppd/plugins/rp-pppoe/pppoe-discovery.c
|
||||
@@ -327,14 +327,10 @@ void
|
||||
parseForHostUniq(UINT16_t type, UINT16_t len, unsigned char *data,
|
||||
void *extra)
|
||||
{
|
||||
- int *val = (int *) extra;
|
||||
- if (type == TAG_HOST_UNIQ && len == sizeof(pid_t)) {
|
||||
- pid_t tmp;
|
||||
- memcpy(&tmp, data, len);
|
||||
- if (tmp == getpid()) {
|
||||
- *val = 1;
|
||||
- }
|
||||
- }
|
||||
+ PPPoETag *tag = extra;
|
||||
+
|
||||
+ if (type == TAG_HOST_UNIQ && len == ntohs(tag->length))
|
||||
+ tag->length = memcmp(data, tag->payload, len);
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
@@ -351,7 +347,7 @@ parseForHostUniq(UINT16_t type, UINT16_t
|
||||
int
|
||||
packetIsForMe(PPPoEConnection *conn, PPPoEPacket *packet)
|
||||
{
|
||||
- int forMe = 0;
|
||||
+ PPPoETag hostUniq = conn->hostUniq;
|
||||
|
||||
/* If packet is not directed to our MAC address, forget it */
|
||||
if (memcmp(packet->ethHdr.h_dest, conn->myEth, ETH_ALEN)) return 0;
|
||||
@@ -359,8 +355,8 @@ packetIsForMe(PPPoEConnection *conn, PPP
|
||||
/* If we're not using the Host-Unique tag, then accept the packet */
|
||||
if (!conn->hostUniq.length) return 1;
|
||||
|
||||
- parsePacket(packet, parseForHostUniq, &forMe);
|
||||
- return forMe;
|
||||
+ parsePacket(packet, parseForHostUniq, &hostUniq);
|
||||
+ return !hostUniq.length;
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
@@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||
PKG_NAME:=wireguard
|
||||
|
||||
PKG_VERSION:=1.0.20200611
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=wireguard-linux-compat-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=https://git.zx2c4.com/wireguard-linux-compat/snapshot/
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
From 1bb90881971c226d45c0abd1ac16ce3d6b77fc5f Mon Sep 17 00:00:00 2001
|
||||
From: "Jason A. Donenfeld" <Jason@zx2c4.com>
|
||||
Date: Sun, 24 Jan 2021 14:09:09 +0100
|
||||
Subject: compat: skb_mark_not_on_list was backported to 4.14
|
||||
|
||||
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
||||
---
|
||||
src/compat/compat.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/src/compat/compat.h
|
||||
+++ b/src/compat/compat.h
|
||||
@@ -826,7 +826,7 @@ static __always_inline void old_rcu_barr
|
||||
#define COMPAT_CANNOT_DEPRECIATE_BH_RCU
|
||||
#endif
|
||||
|
||||
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 10) && !defined(ISRHEL8) && !defined(ISOPENSUSE15)
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 10) && LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) && !defined(ISRHEL8)) || LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 217)
|
||||
static inline void skb_mark_not_on_list(struct sk_buff *skb)
|
||||
{
|
||||
skb->next = NULL;
|
||||
@@ -3,13 +3,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=openwrt-keyring
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/keyring.git
|
||||
PKG_SOURCE_DATE:=2019-07-25
|
||||
PKG_SOURCE_VERSION:=8080ef341b4180e40c4ae8ab63511ac6496f0ad1
|
||||
PKG_MIRROR_HASH:=000882364b953691bf02f7ac41462badb68f452f0317cdfd51cfd617c9b1e364
|
||||
PKG_SOURCE_DATE:=2021-02-20
|
||||
PKG_SOURCE_VERSION:=49283916005d7868923d34ab34f14188cf74812d
|
||||
PKG_MIRROR_HASH:=7b58592bb49e4b37c8e80904c8f457ce3f0f2e6b1d2c473ccfe9204a8b7be831
|
||||
|
||||
PKG_MAINTAINER:=John Crispin <john@phrozen.org>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
@@ -32,7 +32,10 @@ Build/Compile=
|
||||
|
||||
define Package/openwrt-keyring/install
|
||||
$(INSTALL_DIR) $(1)/etc/opkg/keys/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/usign/* $(1)/etc/opkg/keys/
|
||||
# Public usign key for 19.07 release builds
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/usign/f94b9dd6febac963 $(1)/etc/opkg/keys/
|
||||
# Public usign key for 21.02 release builds
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/usign/2f8b0b98e08306bf $(1)/etc/opkg/keys/
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,openwrt-keyring))
|
||||
|
||||
@@ -14,9 +14,9 @@ PKG_FLAGS:=essential
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://git.openwrt.org/project/opkg-lede.git
|
||||
PKG_SOURCE_DATE:=2020-05-07
|
||||
PKG_SOURCE_VERSION:=f2166a89b7e96e2c60002959731eebc5f45fa318
|
||||
PKG_MIRROR_HASH:=67e55cd9fb93bb5b62e2c7b11946483b5570287bd1504aa2a3886d11f8b750b9
|
||||
PKG_SOURCE_DATE:=2021-01-31
|
||||
PKG_SOURCE_VERSION:=c5dccea956b8be14eabf6ff69b331a3e9ac36749
|
||||
PKG_MIRROR_HASH:=fdf42d4ecf66ebc1aded54fa29c3eb41a0e08c2c65da56b661ad1cfb275dd548
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
PKG_LICENSE_FILES:=COPYING
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=ubox
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=4
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/ubox.git
|
||||
|
||||
@@ -15,7 +15,7 @@ validate_log_section()
|
||||
'log_file:string' \
|
||||
'log_size:uinteger' \
|
||||
'log_hostname:string' \
|
||||
'log_ip:ipaddr' \
|
||||
'log_ip:host' \
|
||||
'log_remote:bool:1' \
|
||||
'log_port:port:514' \
|
||||
'log_proto:or("tcp", "udp"):udp' \
|
||||
|
||||
@@ -5,9 +5,10 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/ubus.git
|
||||
PKG_SOURCE_DATE:=2019-12-27
|
||||
PKG_SOURCE_VERSION:=041c9d1c052bb4936fd03240f7d0dd64aedda972
|
||||
PKG_MIRROR_HASH:=7febbe78dd178d8d7ccacff54c00fb2d19a53624005920db8cd85236f54f8324
|
||||
PKG_SOURCE_DATE:=2021-07-01
|
||||
PKG_SOURCE_VERSION:=38c7fdd8991366cd2f9ccbc47625f9b51b1d318a
|
||||
PKG_MIRROR_HASH:=5ff9baa2ba3c7b2b53a477ed2a0f3dd8828051389f3d759cf5a694fbccc4c05b
|
||||
PKG_ABI_VERSION:=20210603
|
||||
CMAKE_INSTALL:=1
|
||||
|
||||
PKG_LICENSE:=LGPL-2.1
|
||||
@@ -36,7 +37,7 @@ define Package/libubus
|
||||
SECTION:=libs
|
||||
CATEGORY:=Libraries
|
||||
DEPENDS:=+libubox
|
||||
ABI_VERSION:=20191227
|
||||
ABI_VERSION:=$(PKG_ABI_VERSION)
|
||||
TITLE:=OpenWrt RPC client library
|
||||
endef
|
||||
|
||||
@@ -51,7 +52,8 @@ TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include -flto
|
||||
TARGET_LDFLAGS += -flto
|
||||
|
||||
CMAKE_OPTIONS = \
|
||||
-DLUAPATH=/usr/lib/lua
|
||||
-DLUAPATH=/usr/lib/lua \
|
||||
-DABIVERSION="$(PKG_ABI_VERSION)"
|
||||
|
||||
define Package/ubus/install
|
||||
$(INSTALL_DIR) $(1)/bin
|
||||
@@ -65,7 +67,7 @@ endef
|
||||
|
||||
define Package/libubus/install
|
||||
$(INSTALL_DIR) $(1)/lib
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so $(1)/lib/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libubus.so.* $(1)/lib/
|
||||
endef
|
||||
|
||||
define Package/libubus-lua/install
|
||||
|
||||
@@ -125,6 +125,23 @@ _patch_glibc() {
|
||||
fi
|
||||
}
|
||||
|
||||
should_be_patched() {
|
||||
local bin="$1"
|
||||
|
||||
[ -x "$bin" ] || return 1
|
||||
|
||||
case "$bin" in
|
||||
*.so|*.so.[0-9]*)
|
||||
return 1
|
||||
;;
|
||||
*)
|
||||
file "$bin" | grep -sqE "ELF.*(executable|interpreter)" && return 0
|
||||
;;
|
||||
esac
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
for LDD in ${PATH//://ldd }/ldd; do
|
||||
"$LDD" --version >/dev/null 2>/dev/null && break
|
||||
LDD=""
|
||||
@@ -150,7 +167,7 @@ for BIN in "$@"; do
|
||||
|
||||
LDSO=""
|
||||
|
||||
[ -n "$LDD" ] && [ -x "$BIN" ] && file "$BIN" | grep -sqE "ELF.*(executable|interpreter)" && {
|
||||
[ -n "$LDD" ] && should_be_patched "$BIN" && {
|
||||
for token in $("$LDD" "$BIN" 2>/dev/null); do
|
||||
case "$token" in */*.so*)
|
||||
dest="$DIR/lib/${token##*/}"
|
||||
|
||||
@@ -84,7 +84,7 @@ PROFILE_LIST = $(foreach p,$(PROFILE_NAMES), \
|
||||
|
||||
staging_dir/host/.prereq-build: include/prereq-build.mk
|
||||
mkdir -p tmp
|
||||
@$(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f $(TOPDIR)/include/prereq-build.mk prereq 2>/dev/null || { \
|
||||
@$(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f $(TOPDIR)/include/prereq-build.mk prereq IB=1 2>/dev/null || { \
|
||||
echo "Prerequisite check failed. Use FORCE=1 to override."; \
|
||||
false; \
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user