Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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,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 packages https://git.openwrt.org/feed/packages.git^90af10d01579425369bd474051b6d3ddaf32a7e3
|
||||
src-git luci https://git.openwrt.org/project/luci.git^34e0d656a41befd9720be35c4831c9f136a67c59
|
||||
src-git routing https://git.openwrt.org/feed/routing.git^e26b4745209655976b7d124465b1dc53ade632f9
|
||||
src-git telephony https://git.openwrt.org/feed/telephony.git^6e019c94d0fa7162548d528bf4ba060a61f8cb59
|
||||
src-git freifunk https://github.com/freifunk/openwrt-packages.git^73454e6fe1bdc902c69ca0079d979fdb94d6fb1f
|
||||
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 = .221
|
||||
|
||||
LINUX_KERNEL_HASH-4.14.215 = 9a844e290c61b39dd23df507ba1d9c2b2b4365e5993a978b19f1eb5610b926da
|
||||
LINUX_KERNEL_HASH-4.14.221 = ce2254075ff4846f13380c1cf4bec1e351e5996a7dd109c200e222e49fd2c7e9
|
||||
|
||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||
|
||||
@@ -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.7)
|
||||
|
||||
VERSION_CODE:=$(call qstrip,$(CONFIG_VERSION_CODE))
|
||||
VERSION_CODE:=$(if $(VERSION_CODE),$(VERSION_CODE),r11278-8055e38794)
|
||||
VERSION_CODE:=$(if $(VERSION_CODE),$(VERSION_CODE),r11306-c4a6851c72)
|
||||
|
||||
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.7)
|
||||
|
||||
VERSION_DIST:=$(call qstrip,$(CONFIG_VERSION_DIST))
|
||||
VERSION_DIST:=$(if $(VERSION_DIST),$(VERSION_DIST),OpenWrt)
|
||||
|
||||
@@ -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.7"
|
||||
help
|
||||
This is the repository address embedded in the image, it defaults
|
||||
to the trunk snapshot repo; the url may contain the following placeholders:
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -2068,7 +2068,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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=wolfssl
|
||||
PKG_VERSION:=4.5.0-stable
|
||||
PKG_RELEASE:=1
|
||||
PKG_VERSION:=4.6.0-stable
|
||||
PKG_RELEASE:=2
|
||||
|
||||
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:=053aefbb02d0b06b27c5e2df6875b4b587318755b7db9d6aa8d72206b310a848
|
||||
|
||||
PKG_FIXUP:=libtool
|
||||
PKG_INSTALL:=1
|
||||
|
||||
53
package/libs/wolfssl/patches/010-CVE-2021-3336.patch
Normal file
53
package/libs/wolfssl/patches/010-CVE-2021-3336.patch
Normal file
@@ -0,0 +1,53 @@
|
||||
From fad1e67677bf7797b6bd6e1f21a513c289d963a7 Mon Sep 17 00:00:00 2001
|
||||
From: Sean Parkinson <sean@wolfssl.com>
|
||||
Date: Thu, 21 Jan 2021 08:24:38 +1000
|
||||
Subject: [PATCH] TLS 1.3: ensure key for signature in CertificateVerify
|
||||
|
||||
---
|
||||
src/tls13.c | 18 +++++++++++++-----
|
||||
1 file changed, 13 insertions(+), 5 deletions(-)
|
||||
|
||||
--- a/src/tls13.c
|
||||
+++ b/src/tls13.c
|
||||
@@ -5624,28 +5624,36 @@ static int DoTls13CertificateVerify(WOLF
|
||||
#ifdef HAVE_ED25519
|
||||
if (args->sigAlgo == ed25519_sa_algo &&
|
||||
!ssl->peerEd25519KeyPresent) {
|
||||
- WOLFSSL_MSG("Oops, peer sent ED25519 key but not in verify");
|
||||
+ WOLFSSL_MSG("Peer sent ED22519 sig but not ED22519 cert");
|
||||
+ ret = SIG_VERIFY_E;
|
||||
+ goto exit_dcv;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_ED448
|
||||
if (args->sigAlgo == ed448_sa_algo && !ssl->peerEd448KeyPresent) {
|
||||
- WOLFSSL_MSG("Oops, peer sent ED448 key but not in verify");
|
||||
+ WOLFSSL_MSG("Peer sent ED448 sig but not ED448 cert");
|
||||
+ ret = SIG_VERIFY_E;
|
||||
+ goto exit_dcv;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_ECC
|
||||
if (args->sigAlgo == ecc_dsa_sa_algo &&
|
||||
!ssl->peerEccDsaKeyPresent) {
|
||||
- WOLFSSL_MSG("Oops, peer sent ECC key but not in verify");
|
||||
+ WOLFSSL_MSG("Peer sent ECC sig but not ECC cert");
|
||||
+ ret = SIG_VERIFY_E;
|
||||
+ goto exit_dcv;
|
||||
}
|
||||
#endif
|
||||
#ifndef NO_RSA
|
||||
if (args->sigAlgo == rsa_sa_algo) {
|
||||
- WOLFSSL_MSG("Oops, peer sent PKCS#1.5 signature");
|
||||
+ WOLFSSL_MSG("Peer sent PKCS#1.5 algo but not in certificate");
|
||||
ERROR_OUT(INVALID_PARAMETER, exit_dcv);
|
||||
}
|
||||
if (args->sigAlgo == rsa_pss_sa_algo &&
|
||||
(ssl->peerRsaKey == NULL || !ssl->peerRsaKeyPresent)) {
|
||||
- WOLFSSL_MSG("Oops, peer sent RSA key but not in verify");
|
||||
+ WOLFSSL_MSG("Peer sent RSA sig but not RSA cert");
|
||||
+ ret = SIG_VERIFY_E;
|
||||
+ goto exit_dcv;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/wolfssl/wolfcrypt/settings.h
|
||||
+++ b/wolfssl/wolfcrypt/settings.h
|
||||
@@ -2128,7 +2128,7 @@ extern void uITRON4_free(void *p) ;
|
||||
@@ -2248,7 +2248,7 @@ extern void uITRON4_free(void *p) ;
|
||||
#endif
|
||||
|
||||
/* warning for not using harden build options (default with ./configure) */
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
From 391ecbd647c121300dc7dcf209e412ccb7b8d432 Mon Sep 17 00:00:00 2001
|
||||
From: Hauke Mehrtens <hauke@hauke-m.de>
|
||||
Date: Fri, 1 Jan 2021 21:57:56 +0100
|
||||
Subject: [PATCH] Fix linking against hostapd with LTO
|
||||
|
||||
When running LTO on wolfssl the ecc_map() function is removed from the
|
||||
binary by GCC 8.4.0. This function is used by multiple functions from
|
||||
the crypto_wolfssl.c implementation of hostapd master.
|
||||
|
||||
Fixes: 780e8a4619b6 ("Fixes for building `--enable-wpas=small` with WPA Supplicant v2.7.")
|
||||
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
||||
---
|
||||
configure.ac | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -947,6 +947,7 @@ then
|
||||
AM_CFLAGS="$AM_CFLAGS -DOPENSSL_EXTRA_X509_SMALL"
|
||||
|
||||
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_PUBLIC_MP"
|
||||
+ AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_PUBLIC_ECC_ADD_DBL"
|
||||
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_DER_LOAD"
|
||||
AM_CFLAGS="$AM_CFLAGS -DATOMIC_USER"
|
||||
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_KEY_GEN"
|
||||
@@ -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)
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -943,6 +943,7 @@ then
|
||||
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_ALWAYS_KEEP_SNI"
|
||||
AM_CFLAGS="$AM_CFLAGS -DHAVE_EX_DATA"
|
||||
AM_CFLAGS="$AM_CFLAGS -DHAVE_EXT_CACHE"
|
||||
+ AM_CFLAGS="$AM_CFLAGS -DHAVE_SECRET_CALLBACK"
|
||||
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_EITHER_SIDE"
|
||||
AM_CFLAGS="$AM_CFLAGS -DOPENSSL_EXTRA_X509_SMALL"
|
||||
|
||||
@@ -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;
|
||||
@@ -7,7 +7,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=hostapd
|
||||
PKG_RELEASE:=4
|
||||
PKG_RELEASE:=5
|
||||
|
||||
PKG_SOURCE_URL:=http://w1.fi/hostap.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
@@ -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
|
||||
|
||||
@@ -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; \
|
||||
}
|
||||
|
||||
@@ -757,7 +757,7 @@
|
||||
EXPORT_SYMBOL(xfrm_parse_spi);
|
||||
--- a/net/ipv4/tcp_input.c
|
||||
+++ b/net/ipv4/tcp_input.c
|
||||
@@ -3879,14 +3879,16 @@ static bool tcp_parse_aligned_timestamp(
|
||||
@@ -3881,14 +3881,16 @@ static bool tcp_parse_aligned_timestamp(
|
||||
{
|
||||
const __be32 *ptr = (const __be32 *)(th + 1);
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
regulator-name = "usb_vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
|
||||
gpio = <&gpio 11 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -737,7 +737,7 @@
|
||||
EXPORT_SYMBOL(xfrm_parse_spi);
|
||||
--- a/net/ipv4/tcp_input.c
|
||||
+++ b/net/ipv4/tcp_input.c
|
||||
@@ -3879,14 +3879,16 @@ static bool tcp_parse_aligned_timestamp(
|
||||
@@ -3881,14 +3881,16 @@ static bool tcp_parse_aligned_timestamp(
|
||||
{
|
||||
const __be32 *ptr = (const __be32 *)(th + 1);
|
||||
|
||||
|
||||
@@ -88,20 +88,20 @@
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
cfe@0 {
|
||||
partition@0 {
|
||||
reg = <0x000000 0x010000>;
|
||||
label = "cfe";
|
||||
read-only;
|
||||
};
|
||||
|
||||
linux@10000 {
|
||||
reg = <0x010000 0x7e0000>;
|
||||
partition@10000 {
|
||||
reg = <0x010000 0xfe0000>;
|
||||
label = "linux";
|
||||
compatible = "brcm,bcm963xx-imagetag";
|
||||
};
|
||||
|
||||
nvram@7f0000 {
|
||||
reg = <0x7f0000 0x010000>;
|
||||
partition@ff0000 {
|
||||
reg = <0xff0000 0x010000>;
|
||||
label = "nvram";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -21,7 +21,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
|
||||
--- a/drivers/usb/host/ehci-hcd.c
|
||||
+++ b/drivers/usb/host/ehci-hcd.c
|
||||
@@ -679,6 +679,10 @@ int ehci_setup(struct usb_hcd *hcd)
|
||||
@@ -691,6 +691,10 @@ int ehci_setup(struct usb_hcd *hcd)
|
||||
|
||||
/* cache this readonly data; minimize chip reads */
|
||||
ehci->hcs_params = ehci_readl(ehci, &ehci->caps->hcs_params);
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
--- a/arch/mips/bcm63xx/sprom.c
|
||||
+++ b/arch/mips/bcm63xx/sprom.c
|
||||
@@ -384,6 +384,7 @@ static __initconst u16 bcm4331_sprom[] =
|
||||
struct fallback_sprom_match {
|
||||
u8 pci_bus;
|
||||
u8 pci_dev;
|
||||
+ int override_devid;
|
||||
struct ssb_sprom sprom;
|
||||
};
|
||||
|
||||
@@ -399,6 +400,8 @@ int bcm63xx_get_fallback_ssb_sprom(struc
|
||||
fallback_sprom.pci_bus, fallback_sprom.pci_dev,
|
||||
bus->host_pci->bus->number,
|
||||
PCI_SLOT(bus->host_pci->devfn));
|
||||
+ if (fallback_sprom.override_devid)
|
||||
+ bus->host_pci->device = fallback_sprom.sprom.dev_id;
|
||||
memcpy(out, &fallback_sprom.sprom, sizeof(struct ssb_sprom));
|
||||
return 0;
|
||||
} else {
|
||||
@@ -418,6 +421,8 @@ int bcm63xx_get_fallback_bcma_sprom(stru
|
||||
fallback_sprom.pci_bus, fallback_sprom.pci_dev,
|
||||
bus->host_pci->bus->number,
|
||||
PCI_SLOT(bus->host_pci->devfn));
|
||||
+ if (fallback_sprom.override_devid)
|
||||
+ bus->host_pci->device = fallback_sprom.sprom.dev_id;
|
||||
memcpy(out, &fallback_sprom.sprom, sizeof(struct ssb_sprom));
|
||||
return 0;
|
||||
} else {
|
||||
@@ -901,6 +906,37 @@ static int sprom_extract(struct ssb_spro
|
||||
return 0;
|
||||
}
|
||||
|
||||
+int sprom_override_devid(struct fallback_sprom_data *data,
|
||||
+ struct ssb_sprom *out, const u16 *in)
|
||||
+{
|
||||
+ switch (data->type) {
|
||||
+#if defined(CONFIG_SSB_PCIHOST)
|
||||
+ case SPROM_BCM4306:
|
||||
+ case SPROM_BCM4318:
|
||||
+ case SPROM_BCM4321:
|
||||
+ case SPROM_BCM4322:
|
||||
+ case SPROM_BCM43222:
|
||||
+ SPEX(dev_id, SSB_SPROM1_PID, 0xFFFF, 0);
|
||||
+ return !!out->dev_id;
|
||||
+#endif /* CONFIG_SSB_PCIHOST */
|
||||
+#if defined(CONFIG_BCMA_HOST_PCI)
|
||||
+ case SPROM_BCM4313:
|
||||
+ case SPROM_BCM43131:
|
||||
+ case SPROM_BCM43217:
|
||||
+ case SPROM_BCM43225:
|
||||
+ case SPROM_BCM43227:
|
||||
+ case SPROM_BCM43228:
|
||||
+ case SPROM_BCM4331:
|
||||
+ SPEX(dev_id, 0x0060, 0xFFFF, 0);
|
||||
+ return !!out->dev_id;
|
||||
+#endif /* CONFIG_BCMA_HOST_PCI */
|
||||
+ case SPROM_DEFAULT:
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
void sprom_apply_fixups(u16 *sprom, struct sprom_fixup *fixups, int n)
|
||||
{
|
||||
unsigned int i;
|
||||
@@ -992,6 +1028,11 @@ int __init bcm63xx_register_fallback_spr
|
||||
data->num_board_fixups);
|
||||
|
||||
sprom_extract(&fallback_sprom.sprom, template_sprom, size);
|
||||
+
|
||||
+ fallback_sprom.override_devid =
|
||||
+ sprom_override_devid(data, &fallback_sprom.sprom, template_sprom);
|
||||
+ } else {
|
||||
+ fallback_sprom.override_devid = 0;
|
||||
}
|
||||
|
||||
memcpy(fallback_sprom.sprom.il0mac, data->mac_addr, ETH_ALEN);
|
||||
@@ -8,7 +8,7 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/platform_device.h>
|
||||
@@ -387,7 +388,19 @@ struct fallback_sprom_match {
|
||||
@@ -388,7 +389,19 @@ struct fallback_sprom_match {
|
||||
struct ssb_sprom sprom;
|
||||
};
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||
|
||||
--- a/include/linux/compiler-gcc.h
|
||||
+++ b/include/linux/compiler-gcc.h
|
||||
@@ -366,3 +366,30 @@
|
||||
@@ -372,3 +372,30 @@
|
||||
#if GCC_VERSION >= 50100
|
||||
#define COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW 1
|
||||
#endif
|
||||
|
||||
@@ -30,7 +30,7 @@ Signed-off-by: Johan Hovold <johan@kernel.org>
|
||||
|
||||
--- a/drivers/usb/serial/option.c
|
||||
+++ b/drivers/usb/serial/option.c
|
||||
@@ -2017,7 +2017,8 @@ static const struct usb_device_id option
|
||||
@@ -2023,7 +2023,8 @@ static const struct usb_device_id option
|
||||
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) }, /* D-Link DWM-156 (variant) */
|
||||
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
|
||||
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
|
||||
|
||||
@@ -26,7 +26,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
struct dst_entry *ip6_dst_lookup_flow(struct net *net, const struct sock *sk, struct flowi6 *fl6,
|
||||
--- a/net/ipv6/ip6_output.c
|
||||
+++ b/net/ipv6/ip6_output.c
|
||||
@@ -381,7 +381,7 @@ static inline int ip6_forward_finish(str
|
||||
@@ -419,7 +419,7 @@ static inline int ip6_forward_finish(str
|
||||
return dst_output(net, sk, skb);
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
{
|
||||
unsigned int mtu;
|
||||
struct inet6_dev *idev;
|
||||
@@ -401,6 +401,7 @@ static unsigned int ip6_dst_mtu_forward(
|
||||
@@ -439,6 +439,7 @@ static unsigned int ip6_dst_mtu_forward(
|
||||
|
||||
return mtu;
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
struct dst_entry *ip6_dst_lookup_flow(struct net *net, const struct sock *sk, struct flowi6 *fl6,
|
||||
--- a/net/ipv6/ip6_output.c
|
||||
+++ b/net/ipv6/ip6_output.c
|
||||
@@ -381,28 +381,6 @@ static inline int ip6_forward_finish(str
|
||||
@@ -419,28 +419,6 @@ static inline int ip6_forward_finish(str
|
||||
return dst_output(net, sk, skb);
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1260,7 +1260,6 @@ endif
|
||||
@@ -1254,7 +1254,6 @@ endif
|
||||
|
||||
PHONY += modules
|
||||
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
|
||||
@@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
@$(kecho) ' Building modules, stage 2.';
|
||||
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
|
||||
|
||||
@@ -1289,7 +1288,6 @@ _modinst_:
|
||||
@@ -1283,7 +1282,6 @@ _modinst_:
|
||||
rm -f $(MODLIB)/build ; \
|
||||
ln -s $(CURDIR) $(MODLIB)/build ; \
|
||||
fi
|
||||
|
||||
@@ -238,7 +238,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
|
||||
/*
|
||||
* Data section helpers
|
||||
@@ -497,7 +498,7 @@
|
||||
@@ -500,7 +501,7 @@
|
||||
#define ENTRY_TEXT \
|
||||
ALIGN_FUNCTION(); \
|
||||
VMLINUX_SYMBOL(__entry_text_start) = .; \
|
||||
@@ -247,7 +247,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
VMLINUX_SYMBOL(__entry_text_end) = .;
|
||||
|
||||
#define IRQENTRY_TEXT \
|
||||
@@ -604,7 +605,7 @@
|
||||
@@ -607,7 +608,7 @@
|
||||
. = ALIGN(sbss_align); \
|
||||
.sbss : AT(ADDR(.sbss) - LOAD_OFFSET) { \
|
||||
*(.dynsbss) \
|
||||
|
||||
@@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
} \
|
||||
\
|
||||
/* __*init sections */ \
|
||||
@@ -796,6 +806,8 @@
|
||||
@@ -799,6 +809,8 @@
|
||||
EXIT_TEXT \
|
||||
EXIT_DATA \
|
||||
EXIT_CALL \
|
||||
|
||||
@@ -44,7 +44,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
device, it has to decide which ones to send first, which ones to
|
||||
--- a/net/sched/sch_api.c
|
||||
+++ b/net/sched/sch_api.c
|
||||
@@ -2031,7 +2031,7 @@ static int __init pktsched_init(void)
|
||||
@@ -2032,7 +2032,7 @@ static int __init pktsched_init(void)
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
*/
|
||||
--- a/include/linux/skbuff.h
|
||||
+++ b/include/linux/skbuff.h
|
||||
@@ -2544,6 +2544,10 @@ static inline int pskb_trim(struct sk_bu
|
||||
@@ -2560,6 +2560,10 @@ static inline int pskb_trim(struct sk_bu
|
||||
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
/**
|
||||
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
|
||||
* @skb: buffer to alter
|
||||
@@ -2675,16 +2679,6 @@ static inline struct sk_buff *dev_alloc_
|
||||
@@ -2691,16 +2695,6 @@ static inline struct sk_buff *dev_alloc_
|
||||
}
|
||||
|
||||
|
||||
@@ -136,7 +136,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
#include <net/protocol.h>
|
||||
#include <net/dst.h>
|
||||
@@ -503,6 +504,22 @@ skb_fail:
|
||||
@@ -512,6 +513,22 @@ skb_fail:
|
||||
}
|
||||
EXPORT_SYMBOL(__napi_alloc_skb);
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
depends on BROKEN || !FRV
|
||||
--- a/kernel/Makefile
|
||||
+++ b/kernel/Makefile
|
||||
@@ -110,6 +110,7 @@ obj-$(CONFIG_CONTEXT_TRACKING) += contex
|
||||
@@ -109,6 +109,7 @@ obj-$(CONFIG_CONTEXT_TRACKING) += contex
|
||||
obj-$(CONFIG_TORTURE_TEST) += torture.o
|
||||
|
||||
obj-$(CONFIG_HAS_IOMEM) += memremap.o
|
||||
|
||||
@@ -17,7 +17,7 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org>
|
||||
|
||||
--- a/drivers/usb/host/ehci-hcd.c
|
||||
+++ b/drivers/usb/host/ehci-hcd.c
|
||||
@@ -652,7 +652,7 @@ static int ehci_run (struct usb_hcd *hcd
|
||||
@@ -664,7 +664,7 @@ static int ehci_run (struct usb_hcd *hcd
|
||||
"USB %x.%x started, EHCI %x.%02x%s\n",
|
||||
((ehci->sbrn & 0xf0)>>4), (ehci->sbrn & 0x0f),
|
||||
temp >> 8, temp & 0xff,
|
||||
@@ -28,7 +28,7 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org>
|
||||
&ehci->regs->intr_enable); /* Turn On Interrupts */
|
||||
--- a/drivers/usb/host/ehci-hub.c
|
||||
+++ b/drivers/usb/host/ehci-hub.c
|
||||
@@ -645,7 +645,7 @@ ehci_hub_status_data (struct usb_hcd *hc
|
||||
@@ -648,7 +648,7 @@ ehci_hub_status_data (struct usb_hcd *hc
|
||||
* always set, seem to clear PORT_OCC and PORT_CSC when writing to
|
||||
* PORT_POWER; that's surprising, but maybe within-spec.
|
||||
*/
|
||||
@@ -37,7 +37,7 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org>
|
||||
mask = PORT_CSC | PORT_PEC | PORT_OCC;
|
||||
else
|
||||
mask = PORT_CSC | PORT_PEC;
|
||||
@@ -1015,7 +1015,7 @@ int ehci_hub_control(
|
||||
@@ -1018,7 +1018,7 @@ int ehci_hub_control(
|
||||
if (temp & PORT_PEC)
|
||||
status |= USB_PORT_STAT_C_ENABLE << 16;
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/include/linux/skbuff.h
|
||||
+++ b/include/linux/skbuff.h
|
||||
@@ -2508,7 +2508,7 @@ static inline int pskb_network_may_pull(
|
||||
@@ -2524,7 +2524,7 @@ static inline int pskb_network_may_pull(
|
||||
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
|
||||
*/
|
||||
#ifndef NET_SKB_PAD
|
||||
|
||||
@@ -62,7 +62,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
|
||||
--- a/drivers/base/core.c
|
||||
+++ b/drivers/base/core.c
|
||||
@@ -162,10 +162,10 @@ static int device_reorder_to_tail(struct
|
||||
@@ -177,10 +177,10 @@ static int device_reorder_to_tail(struct
|
||||
* of the link. If DL_FLAG_PM_RUNTIME is not set, DL_FLAG_RPM_ACTIVE will be
|
||||
* ignored.
|
||||
*
|
||||
@@ -77,7 +77,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
*
|
||||
* A side effect of the link creation is re-ordering of dpm_list and the
|
||||
* devices_kset list by moving the consumer device and all devices depending
|
||||
@@ -183,7 +183,8 @@ struct device_link *device_link_add(stru
|
||||
@@ -198,7 +198,8 @@ struct device_link *device_link_add(stru
|
||||
bool rpm_put_supplier = false;
|
||||
|
||||
if (!consumer || !supplier ||
|
||||
@@ -87,7 +87,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
return NULL;
|
||||
|
||||
if (flags & DL_FLAG_PM_RUNTIME && flags & DL_FLAG_RPM_ACTIVE) {
|
||||
@@ -209,8 +210,10 @@ struct device_link *device_link_add(stru
|
||||
@@ -224,8 +225,10 @@ struct device_link *device_link_add(stru
|
||||
}
|
||||
|
||||
list_for_each_entry(link, &supplier->links.consumers, s_node)
|
||||
@@ -99,7 +99,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
|
||||
link = kzalloc(sizeof(*link), GFP_KERNEL);
|
||||
if (!link)
|
||||
@@ -237,6 +240,7 @@ struct device_link *device_link_add(stru
|
||||
@@ -252,6 +255,7 @@ struct device_link *device_link_add(stru
|
||||
link->consumer = consumer;
|
||||
INIT_LIST_HEAD(&link->c_node);
|
||||
link->flags = flags;
|
||||
@@ -107,7 +107,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
|
||||
/* Determine the initial link state. */
|
||||
if (flags & DL_FLAG_STATELESS) {
|
||||
@@ -311,8 +315,10 @@ static void __device_link_free_srcu(stru
|
||||
@@ -326,8 +330,10 @@ static void __device_link_free_srcu(stru
|
||||
device_link_free(container_of(rhead, struct device_link, rcu_head));
|
||||
}
|
||||
|
||||
@@ -119,7 +119,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
dev_info(link->consumer, "Dropping the link to %s\n",
|
||||
dev_name(link->supplier));
|
||||
|
||||
@@ -324,8 +330,10 @@ static void __device_link_del(struct dev
|
||||
@@ -339,8 +345,10 @@ static void __device_link_del(struct dev
|
||||
call_srcu(&device_links_srcu, &link->rcu_head, __device_link_free_srcu);
|
||||
}
|
||||
#else /* !CONFIG_SRCU */
|
||||
@@ -131,7 +131,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
dev_info(link->consumer, "Dropping the link to %s\n",
|
||||
dev_name(link->supplier));
|
||||
|
||||
@@ -343,18 +351,50 @@ static void __device_link_del(struct dev
|
||||
@@ -358,18 +366,50 @@ static void __device_link_del(struct dev
|
||||
* @link: Device link to delete.
|
||||
*
|
||||
* The caller must ensure proper synchronization of this function with runtime
|
||||
@@ -184,7 +184,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
static void device_links_missing_supplier(struct device *dev)
|
||||
{
|
||||
struct device_link *link;
|
||||
@@ -462,8 +502,8 @@ static void __device_links_no_driver(str
|
||||
@@ -477,8 +517,8 @@ static void __device_links_no_driver(str
|
||||
if (link->flags & DL_FLAG_STATELESS)
|
||||
continue;
|
||||
|
||||
@@ -195,7 +195,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
else if (link->status != DL_STATE_SUPPLIER_UNBIND)
|
||||
WRITE_ONCE(link->status, DL_STATE_AVAILABLE);
|
||||
}
|
||||
@@ -498,8 +538,18 @@ void device_links_driver_cleanup(struct
|
||||
@@ -513,8 +553,18 @@ void device_links_driver_cleanup(struct
|
||||
if (link->flags & DL_FLAG_STATELESS)
|
||||
continue;
|
||||
|
||||
@@ -215,7 +215,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
WRITE_ONCE(link->status, DL_STATE_DORMANT);
|
||||
}
|
||||
|
||||
@@ -616,13 +666,13 @@ static void device_links_purge(struct de
|
||||
@@ -631,13 +681,13 @@ static void device_links_purge(struct de
|
||||
|
||||
list_for_each_entry_safe_reverse(link, ln, &dev->links.suppliers, c_node) {
|
||||
WARN_ON(link->status == DL_STATE_ACTIVE);
|
||||
@@ -231,7 +231,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
}
|
||||
|
||||
device_links_write_unlock();
|
||||
@@ -1044,6 +1094,34 @@ static ssize_t online_store(struct devic
|
||||
@@ -1059,6 +1109,34 @@ static ssize_t online_store(struct devic
|
||||
}
|
||||
static DEVICE_ATTR_RW(online);
|
||||
|
||||
@@ -266,7 +266,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
int device_add_groups(struct device *dev, const struct attribute_group **groups)
|
||||
{
|
||||
return sysfs_create_groups(&dev->kobj, groups);
|
||||
@@ -1215,8 +1293,20 @@ static int device_add_attrs(struct devic
|
||||
@@ -1230,8 +1308,20 @@ static int device_add_attrs(struct devic
|
||||
goto err_remove_dev_groups;
|
||||
}
|
||||
|
||||
@@ -287,7 +287,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
err_remove_dev_groups:
|
||||
device_remove_groups(dev, dev->groups);
|
||||
err_remove_type_groups:
|
||||
@@ -1234,6 +1324,8 @@ static void device_remove_attrs(struct d
|
||||
@@ -1249,6 +1339,8 @@ static void device_remove_attrs(struct d
|
||||
struct class *class = dev->class;
|
||||
const struct device_type *type = dev->type;
|
||||
|
||||
@@ -580,7 +580,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
void __kfree_skb(struct sk_buff *skb);
|
||||
extern struct kmem_cache *skbuff_head_cache;
|
||||
|
||||
@@ -3328,6 +3329,7 @@ static inline void skb_free_datagram_loc
|
||||
@@ -3344,6 +3345,7 @@ static inline void skb_free_datagram_loc
|
||||
}
|
||||
int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags);
|
||||
int skb_copy_bits(const struct sk_buff *skb, int offset, void *to, int len);
|
||||
@@ -837,7 +837,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
|
||||
--- a/net/core/skbuff.c
|
||||
+++ b/net/core/skbuff.c
|
||||
@@ -803,6 +803,32 @@ void napi_consume_skb(struct sk_buff *sk
|
||||
@@ -812,6 +812,32 @@ void napi_consume_skb(struct sk_buff *sk
|
||||
}
|
||||
EXPORT_SYMBOL(napi_consume_skb);
|
||||
|
||||
@@ -870,7 +870,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
/* Make sure a field is enclosed inside headers_start/headers_end section */
|
||||
#define CHECK_SKB_FIELD(field) \
|
||||
BUILD_BUG_ON(offsetof(struct sk_buff, field) < \
|
||||
@@ -1322,7 +1348,7 @@ static void skb_headers_offset_update(st
|
||||
@@ -1331,7 +1357,7 @@ static void skb_headers_offset_update(st
|
||||
skb->inner_mac_header += off;
|
||||
}
|
||||
|
||||
@@ -879,7 +879,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
{
|
||||
__copy_skb_header(new, old);
|
||||
|
||||
@@ -1330,6 +1356,7 @@ static void copy_skb_header(struct sk_bu
|
||||
@@ -1339,6 +1365,7 @@ static void copy_skb_header(struct sk_bu
|
||||
skb_shinfo(new)->gso_segs = skb_shinfo(old)->gso_segs;
|
||||
skb_shinfo(new)->gso_type = skb_shinfo(old)->gso_type;
|
||||
}
|
||||
|
||||
@@ -4662,15 +4662,6 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
|
||||
scfg: scfg@1570000 {
|
||||
compatible = "fsl,ls1046a-scfg", "syscon";
|
||||
reg = <0x0 0x1570000 0x0 0x10000>;
|
||||
@@ -304,7 +311,7 @@
|
||||
|
||||
dcfg: dcfg@1ee0000 {
|
||||
compatible = "fsl,ls1046a-dcfg", "syscon";
|
||||
- reg = <0x0 0x1ee0000 0x0 0x10000>;
|
||||
+ reg = <0x0 0x1ee0000 0x0 0x1000>;
|
||||
big-endian;
|
||||
};
|
||||
|
||||
@@ -362,36 +369,7 @@
|
||||
#thermal-sensor-cells = <1>;
|
||||
};
|
||||
|
||||
@@ -1289,7 +1289,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
||||
xhci->quirks |= XHCI_BROKEN_PORT_PED;
|
||||
--- a/drivers/usb/host/xhci-ring.c
|
||||
+++ b/drivers/usb/host/xhci-ring.c
|
||||
@@ -1978,10 +1978,12 @@ static int finish_td(struct xhci_hcd *xh
|
||||
@@ -1983,10 +1983,12 @@ static int finish_td(struct xhci_hcd *xh
|
||||
union xhci_trb *ep_trb, struct xhci_transfer_event *event,
|
||||
struct xhci_virt_ep *ep, int *status)
|
||||
{
|
||||
@@ -1302,7 +1302,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
||||
u32 trb_comp_code;
|
||||
int ep_index;
|
||||
|
||||
@@ -2004,14 +2006,30 @@ static int finish_td(struct xhci_hcd *xh
|
||||
@@ -2009,14 +2011,30 @@ static int finish_td(struct xhci_hcd *xh
|
||||
if (trb_comp_code == COMP_STALL_ERROR ||
|
||||
xhci_requires_manual_halt_cleanup(xhci, ep_ctx,
|
||||
trb_comp_code)) {
|
||||
|
||||
@@ -168,7 +168,8 @@ TARGET_DEVICES += globalscale_mirabox
|
||||
define Device/cznic_turris-omnia
|
||||
KERNEL_INSTALL := 1
|
||||
KERNEL := kernel-bin
|
||||
KERNEL_INITRAMFS := kernel-bin
|
||||
DEVICE_DTS := armada-385-turris-omnia
|
||||
KERNEL_INITRAMFS := kernel-bin | gzip | fit gzip $$(KDIR)/image-$$(DEVICE_DTS).dtb
|
||||
DEVICE_TITLE := Turris Omnia
|
||||
DEVICE_PACKAGES := \
|
||||
mkf2fs e2fsprogs kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 \
|
||||
@@ -178,7 +179,6 @@ define Device/cznic_turris-omnia
|
||||
IMAGE/$$(IMAGE_PREFIX)-sysupgrade.img.gz := boot-scr | boot-img | sdcard-img | gzip | append-metadata
|
||||
IMAGE/omnia-medkit-$$(IMAGE_PREFIX)-initramfs.tar.gz := omnia-medkit-initramfs | gzip
|
||||
IMAGE_NAME = $$(2)
|
||||
DEVICE_DTS := armada-385-turris-omnia
|
||||
SUPPORTED_DEVICES += armada-385-turris-omnia
|
||||
BOOT_SCRIPT := turris-omnia
|
||||
endef
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
label = "AP/Extender toggle";
|
||||
gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <BTN_0>;
|
||||
linux,input-type = <EV_SW>;
|
||||
/* Active when switch is set to "Access Point" */
|
||||
};
|
||||
};
|
||||
|
||||
@@ -143,8 +143,7 @@ static void mt7621_init_data(struct fe_soc_data *data,
|
||||
|
||||
netdev->hw_features = NETIF_F_IP_CSUM | NETIF_F_RXCSUM |
|
||||
NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX |
|
||||
NETIF_F_SG | NETIF_F_TSO |
|
||||
NETIF_F_TSO6 | NETIF_F_IPV6_CSUM |
|
||||
NETIF_F_SG | NETIF_F_IPV6_CSUM |
|
||||
NETIF_F_TSO_MANGLEID;
|
||||
}
|
||||
|
||||
|
||||
@@ -631,7 +631,6 @@ define Device/tplink_c2-v1
|
||||
TPLINK_FLASHLAYOUT := 8Mmtk
|
||||
TPLINK_HWID := 0xc7500001
|
||||
TPLINK_HWREV := 50
|
||||
IMAGES += factory.bin
|
||||
DEVICE_TITLE := TP-Link Archer C2 v1
|
||||
DEVICE_PACKAGES := kmod-mt76x0e kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport kmod-switch-rtl8366-smi kmod-switch-rtl8367b
|
||||
endef
|
||||
|
||||
@@ -1 +1 @@
|
||||
1611061802
|
||||
1613402557
|
||||
|
||||
Reference in New Issue
Block a user