Merge Mainline

This commit is contained in:
CN_SZTL 2020-07-22 17:48:51 +08:00
commit 102ed1c668
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
33 changed files with 75 additions and 314 deletions

View File

@ -6,14 +6,14 @@ ifdef CONFIG_TESTING_KERNEL
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
LINUX_VERSION-4.9 = .230
LINUX_VERSION-4.14 = .188
LINUX_VERSION-4.19 = .133
LINUX_VERSION-4.9 = .231
LINUX_VERSION-4.14 = .189
LINUX_VERSION-4.19 = .134
LINUX_VERSION-5.4 = .53
LINUX_KERNEL_HASH-4.9.230 = d5ba9256e3ebf1cead127f323acc8124965d89cc88e75eca377fcca3bd6c037c
LINUX_KERNEL_HASH-4.14.188 = 766fe01387b1d1b7bd37ca45a5048cdad13e3a51c6c43746dbb657a0ba67064b
LINUX_KERNEL_HASH-4.19.133 = b933e5fe7d09af623809b96fd26119381e71c8994af5f9f7a644b78ede77dbc4
LINUX_KERNEL_HASH-4.9.231 = 4f843ba02fda5217942225afdce020d5f2f9b24f4210bf71a7c4fb63ceece8eb
LINUX_KERNEL_HASH-4.14.189 = a7e521457bc553848762c201d7ec5015b043c9dc447db2553eb193701634f9e1
LINUX_KERNEL_HASH-4.19.134 = 7d7da84f65d31546911283c36478b548bc78c4139061a7a0241feca8318e3a6f
LINUX_KERNEL_HASH-5.4.53 = faa7b6f99220d5726f0eaee74a6394f0a3b89be1a75254f3804630211f3d6d21
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))

View File

@ -8,14 +8,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=v2ray-plugin
PKG_VERSION:=1.3.3
PKG_VERSION:=1.3.4
PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=913c6e1b6f8c57bca07685eb854ff0e00de4fd09f42b88c3b399880934410cc1
PKG_HASH:=59f91575953e8289d0f6d007836eab169b8ee62e44b31b1a3eef61525db1e69c
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE

View File

@ -13,7 +13,7 @@ FEATURES:=usbgadget
CPU_TYPE:=24kc
SUBTARGETS:=generic tiny nand mikrotik
KERNEL_PATCHVER:=4.14
KERNEL_PATCHVER:=4.9
include $(INCLUDE_DIR)/target.mk

View File

@ -578,7 +578,7 @@
#include <net/if_inet6.h>
--- a/include/net/inet_ecn.h
+++ b/include/net/inet_ecn.h
@@ -125,9 +125,9 @@ static inline int IP6_ECN_set_ce(struct
@@ -126,9 +126,9 @@ static inline int IP6_ECN_set_ce(struct
if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph)))
return 0;

View File

@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
#define USB_VENDOR_ID_BELKIN 0x050d
#define USB_DEVICE_ID_FLIP_KVM 0x3201
@@ -1205,6 +1208,9 @@
@@ -1208,6 +1211,9 @@
#define USB_VENDOR_ID_XAT 0x2505
#define USB_DEVICE_ID_XAT_CSR 0x0220
@ -53,7 +53,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
@@ -177,6 +178,7 @@ static const struct hid_device_id hid_qu
@@ -178,6 +179,7 @@ static const struct hid_device_id hid_qu
{ HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_SIRIUS_BATTERY_FREE_TABLET), HID_QUIRK_MULTI_INPUT },
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },

View File

@ -65,7 +65,7 @@ Cc: Kir Kolyshkin <kir@openvz.org>
* Before updating sk_refcnt, we must commit prior changes to memory
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -1697,7 +1697,7 @@ u32 tcp_tso_autosize(const struct sock *
@@ -1699,7 +1699,7 @@ u32 tcp_tso_autosize(const struct sock *
{
u32 bytes, segs;
@ -74,7 +74,7 @@ Cc: Kir Kolyshkin <kir@openvz.org>
sk->sk_gso_max_size - 1 - MAX_TCP_HEADER);
/* Goal is to send at least one packet per ms,
@@ -2215,7 +2215,7 @@ static bool tcp_small_queue_check(struct
@@ -2217,7 +2217,7 @@ static bool tcp_small_queue_check(struct
{
unsigned int limit;

View File

@ -30,7 +30,7 @@ Signed-off-by: Johan Hovold <johan@kernel.org>
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -1987,7 +1987,8 @@ static const struct usb_device_id option
@@ -1990,7 +1990,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) },

View File

@ -67,7 +67,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
+ bool rev = !skb->_nfct, upd = false;
+ __be32 ip;
if (tc_skb_protocol(skb) != htons(ETH_P_IP))
if (skb_protocol(skb, true) != htons(ETH_P_IP))
- return;
+ return false;

View File

@ -51,7 +51,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
.link_down = phylink_sfp_link_down,
--- a/drivers/net/phy/sfp-bus.c
+++ b/drivers/net/phy/sfp-bus.c
@@ -350,7 +350,7 @@ static int sfp_register_bus(struct sfp_b
@@ -425,7 +425,7 @@ static int sfp_register_bus(struct sfp_b
bus->socket_ops->attach(bus->sfp);
if (bus->started)
bus->socket_ops->start(bus->sfp);
@ -60,7 +60,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
bus->registered = true;
return 0;
}
@@ -359,8 +359,8 @@ static void sfp_unregister_bus(struct sf
@@ -434,8 +434,8 @@ static void sfp_unregister_bus(struct sf
{
const struct sfp_upstream_ops *ops = bus->upstream_ops;

View File

@ -30,7 +30,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
--- a/drivers/net/phy/sfp-bus.c
+++ b/drivers/net/phy/sfp-bus.c
@@ -23,7 +23,6 @@ struct sfp_bus {
@@ -30,7 +30,6 @@ struct sfp_bus {
const struct sfp_upstream_ops *upstream_ops;
void *upstream;
@ -38,7 +38,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
struct phy_device *phydev;
bool registered;
@@ -442,13 +441,11 @@ static void sfp_upstream_clear(struct sf
@@ -517,13 +516,11 @@ static void sfp_upstream_clear(struct sf
{
bus->upstream_ops = NULL;
bus->upstream = NULL;
@ -52,7 +52,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
* @upstream: the upstream private data
* @ops: the upstream's &struct sfp_upstream_ops
*
@@ -459,7 +456,7 @@ static void sfp_upstream_clear(struct sf
@@ -534,7 +531,7 @@ static void sfp_upstream_clear(struct sf
* On error, returns %NULL.
*/
struct sfp_bus *sfp_register_upstream(struct fwnode_handle *fwnode,
@ -61,7 +61,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
const struct sfp_upstream_ops *ops)
{
struct sfp_bus *bus = sfp_bus_get(fwnode);
@@ -469,7 +466,6 @@ struct sfp_bus *sfp_register_upstream(st
@@ -544,7 +541,6 @@ struct sfp_bus *sfp_register_upstream(st
rtnl_lock();
bus->upstream_ops = ops;
bus->upstream = upstream;
@ -69,7 +69,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
if (bus->sfp) {
ret = sfp_register_bus(bus);
@@ -591,7 +587,7 @@ struct sfp_bus *sfp_register_socket(stru
@@ -670,7 +666,7 @@ struct sfp_bus *sfp_register_socket(stru
bus->sfp = sfp;
bus->socket_ops = ops;
@ -78,7 +78,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
ret = sfp_register_bus(bus);
if (ret)
sfp_socket_clear(bus);
@@ -611,7 +607,7 @@ EXPORT_SYMBOL_GPL(sfp_register_socket);
@@ -690,7 +686,7 @@ EXPORT_SYMBOL_GPL(sfp_register_socket);
void sfp_unregister_socket(struct sfp_bus *bus)
{
rtnl_lock();

View File

@ -59,7 +59,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
#include <linux/rtnetlink.h>
#include <linux/slab.h>
@@ -444,45 +445,63 @@ static void sfp_upstream_clear(struct sf
@@ -519,45 +520,63 @@ static void sfp_upstream_clear(struct sf
}
/**

View File

@ -53,7 +53,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
--- a/drivers/net/phy/sfp-bus.c
+++ b/drivers/net/phy/sfp-bus.c
@@ -328,10 +328,19 @@ static void sfp_bus_release(struct kref
@@ -403,10 +403,19 @@ static void sfp_bus_release(struct kref
kfree(bus);
}
@ -75,7 +75,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
static int sfp_register_bus(struct sfp_bus *bus)
{
@@ -347,11 +356,11 @@ static int sfp_register_bus(struct sfp_b
@@ -422,11 +431,11 @@ static int sfp_register_bus(struct sfp_b
return ret;
}
}
@ -88,7 +88,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
return 0;
}
@@ -445,13 +454,12 @@ static void sfp_upstream_clear(struct sf
@@ -520,13 +529,12 @@ static void sfp_upstream_clear(struct sf
}
/**
@ -106,7 +106,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
*
* Returns: on success, a pointer to the sfp_bus structure,
* %NULL if no SFP is specified,
@@ -461,9 +469,7 @@ static void sfp_upstream_clear(struct sf
@@ -536,9 +544,7 @@ static void sfp_upstream_clear(struct sf
* %-ENOMEM if we failed to allocate the bus.
* an error from the upstream's connect_phy() method.
*/
@ -117,7 +117,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
{
struct fwnode_reference_args ref;
struct sfp_bus *bus;
@@ -481,7 +487,39 @@ struct sfp_bus *sfp_register_upstream_no
@@ -556,7 +562,39 @@ struct sfp_bus *sfp_register_upstream_no
if (!bus)
return ERR_PTR(-ENOMEM);
@ -157,7 +157,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
bus->upstream_ops = ops;
bus->upstream = upstream;
@@ -494,33 +532,33 @@ struct sfp_bus *sfp_register_upstream_no
@@ -569,33 +607,33 @@ struct sfp_bus *sfp_register_upstream_no
}
rtnl_unlock();

View File

@ -16,7 +16,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
--- a/drivers/net/phy/sfp-bus.c
+++ b/drivers/net/phy/sfp-bus.c
@@ -330,7 +330,7 @@ static void sfp_bus_release(struct kref
@@ -405,7 +405,7 @@ static void sfp_bus_release(struct kref
/**
* sfp_bus_put() - put a reference on the &struct sfp_bus

View File

@ -1,111 +0,0 @@
From 8df5dd55cef48c0769379e04dbc085a899b106d4 Mon Sep 17 00:00:00 2001
From: Russell King <rmk+kernel@armlinux.org.uk>
Date: Fri, 8 Mar 2019 14:02:25 +0000
Subject: [PATCH 640/660] net: sfp: add support for module quirks
Add support for applying module quirks to the list of supported
ethtool link modes.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
drivers/net/phy/sfp-bus.c | 54 +++++++++++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
--- a/drivers/net/phy/sfp-bus.c
+++ b/drivers/net/phy/sfp-bus.c
@@ -9,6 +9,12 @@
#include "sfp.h"
+struct sfp_quirk {
+ const char *vendor;
+ const char *part;
+ void (*modes)(const struct sfp_eeprom_id *id, unsigned long *modes);
+};
+
/**
* struct sfp_bus - internal representation of a sfp bus
*/
@@ -21,6 +27,7 @@ struct sfp_bus {
const struct sfp_socket_ops *socket_ops;
struct device *sfp_dev;
struct sfp *sfp;
+ const struct sfp_quirk *sfp_quirk;
const struct sfp_upstream_ops *upstream_ops;
void *upstream;
@@ -30,6 +37,46 @@ struct sfp_bus {
bool started;
};
+static const struct sfp_quirk sfp_quirks[] = {
+};
+
+static size_t sfp_strlen(const char *str, size_t maxlen)
+{
+ size_t size, i;
+
+ /* Trailing characters should be filled with space chars */
+ for (i = 0, size = 0; i < maxlen; i++)
+ if (str[i] != ' ')
+ size = i + 1;
+
+ return size;
+}
+
+static bool sfp_match(const char *qs, const char *str, size_t len)
+{
+ if (!qs)
+ return true;
+ if (strlen(qs) != len)
+ return false;
+ return !strncmp(qs, str, len);
+}
+
+static const struct sfp_quirk *sfp_lookup_quirk(const struct sfp_eeprom_id *id)
+{
+ const struct sfp_quirk *q;
+ unsigned int i;
+ size_t vs, ps;
+
+ vs = sfp_strlen(id->base.vendor_name, ARRAY_SIZE(id->base.vendor_name));
+ ps = sfp_strlen(id->base.vendor_pn, ARRAY_SIZE(id->base.vendor_pn));
+
+ for (i = 0, q = sfp_quirks; i < ARRAY_SIZE(sfp_quirks); i++, q++)
+ if (sfp_match(q->vendor, id->base.vendor_name, vs) &&
+ sfp_match(q->part, id->base.vendor_pn, ps))
+ return q;
+
+ return NULL;
+}
/**
* sfp_parse_port() - Parse the EEPROM base ID, setting the port type
* @bus: a pointer to the &struct sfp_bus structure for the sfp module
@@ -233,6 +280,9 @@ void sfp_parse_support(struct sfp_bus *b
phylink_set(modes, 1000baseX_Full);
}
+ if (bus->sfp_quirk)
+ bus->sfp_quirk->modes(id, modes);
+
bitmap_or(support, support, modes, __ETHTOOL_LINK_MODE_MASK_NBITS);
phylink_set(support, Autoneg);
@@ -609,6 +659,8 @@ int sfp_module_insert(struct sfp_bus *bu
const struct sfp_upstream_ops *ops = sfp_get_upstream_ops(bus);
int ret = 0;
+ bus->sfp_quirk = sfp_lookup_quirk(id);
+
if (ops && ops->module_insert)
ret = ops->module_insert(bus->upstream, id);
@@ -622,6 +674,8 @@ void sfp_module_remove(struct sfp_bus *b
if (ops && ops->module_remove)
ops->module_remove(bus->upstream);
+
+ bus->sfp_quirk = NULL;
}
EXPORT_SYMBOL_GPL(sfp_module_remove);

View File

@ -1,52 +0,0 @@
From ecaa542cfed078dbc356dadff0bad4b6a8e704a0 Mon Sep 17 00:00:00 2001
From: Russell King <rmk+kernel@armlinux.org.uk>
Date: Fri, 17 May 2019 10:14:45 +0100
Subject: [PATCH 641/660] net: sfp: add some quirks for GPON modules
Marc Micalizzi reports that Huawei MA5671A and Alcatel/Lucent G-010S-P
modules are capable of 2500base-X, but incorrectly report their
capabilities in the EEPROM. It seems rather common that GPON modules
mis-report.
Let's fix these modules by adding some quirks.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
drivers/net/phy/sfp-bus.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
--- a/drivers/net/phy/sfp-bus.c
+++ b/drivers/net/phy/sfp-bus.c
@@ -37,7 +37,32 @@ struct sfp_bus {
bool started;
};
+static void sfp_quirk_2500basex(const struct sfp_eeprom_id *id,
+ unsigned long *modes)
+{
+ phylink_set(modes, 2500baseX_Full);
+}
+
static const struct sfp_quirk sfp_quirks[] = {
+ {
+ // Alcatel Lucent G-010S-P can operate at 2500base-X, but
+ // incorrectly report 2500MBd NRZ in their EEPROM
+ .vendor = "ALCATELLUCENT",
+ .part = "G010SP",
+ .modes = sfp_quirk_2500basex,
+ }, {
+ // Alcatel Lucent G-010S-A can operate at 2500base-X, but
+ // report 3.2GBd NRZ in their EEPROM
+ .vendor = "ALCATELLUCENT",
+ .part = "3FE46541AA",
+ .modes = sfp_quirk_2500basex,
+ }, {
+ // Huawei MA5671A can operate at 2500base-X, but report 1.2GBd
+ // NRZ in their EEPROM
+ .vendor = "HUAWEI",
+ .part = "MA5671A",
+ .modes = sfp_quirk_2500basex,
+ },
};
static size_t sfp_strlen(const char *str, size_t maxlen)

View File

@ -45,7 +45,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
return (struct tcp_sock *)sk;
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -790,10 +790,10 @@ static void tcp_tasklet_func(unsigned lo
@@ -792,10 +792,10 @@ static void tcp_tasklet_func(unsigned lo
}
}
@ -60,7 +60,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
/**
* tcp_release_cb - tcp release_sock() callback
* @sk: socket
@@ -814,7 +814,7 @@ void tcp_release_cb(struct sock *sk)
@@ -816,7 +816,7 @@ void tcp_release_cb(struct sock *sk)
nflags = flags & ~TCP_DEFERRED_ALL;
} while (cmpxchg(&tp->tsq_flags, flags, nflags) != flags);
@ -69,7 +69,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
tcp_tsq_handler(sk);
/* Here begins the tricky part :
@@ -828,15 +828,15 @@ void tcp_release_cb(struct sock *sk)
@@ -830,15 +830,15 @@ void tcp_release_cb(struct sock *sk)
*/
sock_release_ownership(sk);

View File

@ -17,7 +17,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -866,6 +866,7 @@ void tcp_wfree(struct sk_buff *skb)
@@ -868,6 +868,7 @@ void tcp_wfree(struct sk_buff *skb)
{
struct sock *sk = skb->sk;
struct tcp_sock *tp = tcp_sk(sk);
@ -25,7 +25,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
int wmem;
/* Keep one reference on sk_wmem_alloc.
@@ -883,11 +884,17 @@ void tcp_wfree(struct sk_buff *skb)
@@ -885,11 +886,17 @@ void tcp_wfree(struct sk_buff *skb)
if (wmem >= SKB_TRUESIZE(1) && this_cpu_ksoftirqd() == current)
goto out;

View File

@ -22,7 +22,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -773,19 +773,19 @@ static void tcp_tasklet_func(unsigned lo
@@ -775,19 +775,19 @@ static void tcp_tasklet_func(unsigned lo
list_for_each_safe(q, n, &list) {
tp = list_entry(q, struct tcp_sock, tsq_node);
list_del(&tp->tsq_node);
@ -51,7 +51,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
sk_free(sk);
}
}
@@ -890,7 +890,7 @@ void tcp_wfree(struct sk_buff *skb)
@@ -892,7 +892,7 @@ void tcp_wfree(struct sk_buff *skb)
if (!(oval & TSQF_THROTTLED) || (oval & TSQF_QUEUED))
goto out;
@ -60,7 +60,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
nval = cmpxchg(&tp->tsq_flags, oval, nval);
if (nval != oval)
continue;
@@ -2237,6 +2237,8 @@ static bool tcp_write_xmit(struct sock *
@@ -2239,6 +2239,8 @@ static bool tcp_write_xmit(struct sock *
unlikely(tso_fragment(sk, skb, limit, mss_now, gfp)))
break;

View File

@ -16,7 +16,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -886,6 +886,7 @@ void tcp_wfree(struct sk_buff *skb)
@@ -888,6 +888,7 @@ void tcp_wfree(struct sk_buff *skb)
for (oval = READ_ONCE(tp->tsq_flags);; oval = nval) {
struct tsq_tasklet *tsq;
@ -24,7 +24,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
if (!(oval & TSQF_THROTTLED) || (oval & TSQF_QUEUED))
goto out;
@@ -898,8 +899,10 @@ void tcp_wfree(struct sk_buff *skb)
@@ -900,8 +901,10 @@ void tcp_wfree(struct sk_buff *skb)
/* queue this socket to tasklet queue */
local_irq_save(flags);
tsq = this_cpu_ptr(&tsq_tasklet);

View File

@ -19,7 +19,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -2142,6 +2142,15 @@ static bool tcp_small_queue_check(struct
@@ -2144,6 +2144,15 @@ static bool tcp_small_queue_check(struct
limit <<= factor;
if (atomic_read(&sk->sk_wmem_alloc) > limit) {

View File

@ -17,7 +17,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -1974,26 +1974,26 @@ static bool tcp_can_coalesce_send_queue_
@@ -1976,26 +1976,26 @@ static bool tcp_can_coalesce_send_queue_
*/
static int tcp_mtu_probe(struct sock *sk)
{

View File

@ -58,7 +58,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
goto out;
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -773,14 +773,15 @@ static void tcp_tasklet_func(unsigned lo
@@ -775,14 +775,15 @@ static void tcp_tasklet_func(unsigned lo
list_for_each_safe(q, n, &list) {
tp = list_entry(q, struct tcp_sock, tsq_node);
list_del(&tp->tsq_node);
@ -77,7 +77,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
tcp_tsq_handler(sk);
}
bh_unlock_sock(sk);
@@ -803,16 +804,15 @@ static void tcp_tasklet_func(unsigned lo
@@ -805,16 +806,15 @@ static void tcp_tasklet_func(unsigned lo
*/
void tcp_release_cb(struct sock *sk)
{
@ -96,7 +96,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
if (flags & TCPF_TSQ_DEFERRED)
tcp_tsq_handler(sk);
@@ -884,7 +884,7 @@ void tcp_wfree(struct sk_buff *skb)
@@ -886,7 +886,7 @@ void tcp_wfree(struct sk_buff *skb)
if (wmem >= SKB_TRUESIZE(1) && this_cpu_ksoftirqd() == current)
goto out;
@ -105,7 +105,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
struct tsq_tasklet *tsq;
bool empty;
@@ -892,7 +892,7 @@ void tcp_wfree(struct sk_buff *skb)
@@ -894,7 +894,7 @@ void tcp_wfree(struct sk_buff *skb)
goto out;
nval = (oval & ~TSQF_THROTTLED) | TSQF_QUEUED | TCPF_TSQ_DEFERRED;
@ -114,7 +114,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
if (nval != oval)
continue;
@@ -2151,7 +2151,7 @@ static bool tcp_small_queue_check(struct
@@ -2153,7 +2153,7 @@ static bool tcp_small_queue_check(struct
skb->prev == sk->sk_write_queue.next)
return false;
@ -123,7 +123,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
/* It is possible TX completion already happened
* before we set TSQ_THROTTLED, so we must
* test again the condition.
@@ -2249,8 +2249,8 @@ static bool tcp_write_xmit(struct sock *
@@ -2251,8 +2251,8 @@ static bool tcp_write_xmit(struct sock *
unlikely(tso_fragment(sk, skb, limit, mss_now, gfp)))
break;
@ -134,7 +134,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
if (tcp_small_queue_check(sk, skb, 0))
break;
@@ -3569,8 +3569,6 @@ void __tcp_send_ack(struct sock *sk, u32
@@ -3571,8 +3571,6 @@ void __tcp_send_ack(struct sock *sk, u32
/* We do not want pure acks influencing TCP Small Queues or fq/pacing
* too much.
* SKB_TRUESIZE(max(1 .. 66, MAX_TCP_HEADER)) is unfortunately ~784

View File

@ -30,7 +30,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -775,6 +775,7 @@ static void tcp_tasklet_func(unsigned lo
@@ -777,6 +777,7 @@ static void tcp_tasklet_func(unsigned lo
list_del(&tp->tsq_node);
sk = (struct sock *)tp;

View File

@ -65,7 +65,7 @@ Cc: Kir Kolyshkin <kir@openvz.org>
* Before updating sk_refcnt, we must commit prior changes to memory
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -1607,7 +1607,7 @@ u32 tcp_tso_autosize(const struct sock *
@@ -1609,7 +1609,7 @@ u32 tcp_tso_autosize(const struct sock *
{
u32 bytes, segs;
@ -74,7 +74,7 @@ Cc: Kir Kolyshkin <kir@openvz.org>
sk->sk_gso_max_size - 1 - MAX_TCP_HEADER);
/* Goal is to send at least one packet per ms,
@@ -2138,7 +2138,7 @@ static bool tcp_small_queue_check(struct
@@ -2140,7 +2140,7 @@ static bool tcp_small_queue_check(struct
{
unsigned int limit;

View File

@ -98,7 +98,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
bool rev = !skb->_nfct, upd = false;
__be32 ip;
- if (tc_skb_protocol(skb) != htons(ETH_P_IP))
- if (skb_protocol(skb, true) != htons(ETH_P_IP))
+ if (cake_skb_proto(skb) != htons(ETH_P_IP))
return false;
@ -107,7 +107,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
u16 *buf, buf_;
u8 dscp;
- switch (tc_skb_protocol(skb)) {
- switch (skb_protocol(skb, true)) {
+ switch (cake_skb_proto(skb)) {
case htons(ETH_P_IP):
buf = skb_header_pointer(skb, offset, sizeof(buf_), &buf_);

View File

@ -1,76 +0,0 @@
From: Alexey Brodkin <abrodkin@synopsys.com>
Subject: usb: Remove annoying warning about bogus URB
When ath9k-htc Wi-Fi dongle is used with generic OHCI controller
infinite stream of warnings appears in debug console like this:
-------------------------->8----------------------
usb 1-1: new full-speed USB device number 2 using ohci-platform
usb 1-1: ath9k_htc: Firmware ath9k_htc/htc_9271-1.4.0.fw requested
usb 1-1: ath9k_htc: Transferred FW: ath9k_htc/htc_9271-1.4.0.fw, size:
51008
------------[ cut here ]------------
WARNING: CPU: 0 PID: 19 at drivers/usb/core/urb.c:449
usb_submit_urb+0x1b4/0x498()
usb 1-1: BOGUS urb xfer, pipe 1 != type 3
Modules linked in:
CPU: 0 PID: 19 Comm: kworker/0:1 Not tainted
4.4.0-rc4-00017-g00e2d79-dirty #3
Workqueue: events request_firmware_work_func
Stack Trace:
arc_unwind_core.constprop.1+0xa4/0x110
---[ end trace 649ef8c342817fc2 ]---
------------[ cut here ]------------
WARNING: CPU: 0 PID: 19 at drivers/usb/core/urb.c:449
usb_submit_urb+0x1b4/0x498()
usb 1-1: BOGUS urb xfer, pipe 1 != type 3
Modules linked in:
CPU: 0 PID: 19 Comm: kworker/0:1 Tainted: G W
4.4.0-rc4-00017-g00e2d79-dirty #3
Workqueue: events request_firmware_work_func
Stack Trace:
arc_unwind_core.constprop.1+0xa4/0x110
---[ end trace 649ef8c342817fc3 ]---
------------[ cut here ]------------
-------------------------->8----------------------
There're some discussions in mailing lists proposing to disable
that particular check alltogether and magically all seem to work
fine with muted warning.
Anyways new thread on that regard could be found here:
http://lists.infradead.org/pipermail/linux-snps-arc/2016-July/001310.html
Let's see what comes out of that new discussion, hopefully patching
of generic USB stuff won't be required then.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
---
drivers/usb/core/urb.c | 5 -----
1 file changed, 5 deletions(-)
--- a/drivers/usb/core/urb.c
+++ b/drivers/usb/core/urb.c
@@ -322,9 +322,6 @@ EXPORT_SYMBOL_GPL(usb_unanchor_urb);
*/
int usb_submit_urb(struct urb *urb, gfp_t mem_flags)
{
- static int pipetypes[4] = {
- PIPE_CONTROL, PIPE_ISOCHRONOUS, PIPE_BULK, PIPE_INTERRUPT
- };
int xfertype, max;
struct usb_device *dev;
struct usb_host_endpoint *ep;
@@ -442,11 +439,6 @@ int usb_submit_urb(struct urb *urb, gfp_
* cause problems in HCDs if they get it wrong.
*/
- /* Check that the pipe's type matches the endpoint's type */
- if (usb_pipetype(urb->pipe) != pipetypes[xfertype])
- dev_WARN(&dev->dev, "BOGUS urb xfer, pipe %x != type %x\n",
- usb_pipetype(urb->pipe), pipetypes[xfertype]);
-
/* Check against a simple/standard policy */
allowed = (URB_NO_TRANSFER_DMA_MAP | URB_NO_INTERRUPT | URB_DIR_MASK |
URB_FREE_BUFFER);

View File

@ -7,10 +7,10 @@
+ {QMI_FIXED_INTF(0x1c9e, 0x9b3c, 4)}, /* LONGSUNG_U9300 */
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0121, 4)}, /* Quectel EC21 Mini PCIe */
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0191, 4)}, /* Quectel EG91 */
{QMI_FIXED_INTF(0x2c7c, 0x0296, 4)}, /* Quectel BG96 */
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0195, 4)}, /* Quectel EG95 */
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -384,6 +384,7 @@ static void option_instat_callback(struc
@@ -385,6 +385,7 @@ static void option_instat_callback(struc
* Mobidata, etc sell under their own brand names.
*/
#define LONGCHEER_VENDOR_ID 0x1c9e
@ -18,7 +18,7 @@
/* 4G Systems products */
/* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick *
@@ -574,6 +575,16 @@ static void option_instat_callback(struc
@@ -575,6 +576,16 @@ static void option_instat_callback(struc
/* Device needs ZLP */
#define ZLP BIT(17)
@ -35,7 +35,7 @@
static const struct usb_device_id option_ids[] = {
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
@@ -608,6 +619,8 @@ static const struct usb_device_id option
@@ -609,6 +620,8 @@ static const struct usb_device_id option
{ USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) },
{ USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
.driver_info = RSVD(4) },

View File

@ -7,10 +7,10 @@
+ {QMI_FIXED_INTF(0x1c9e, 0x9b3c, 4)}, /* LONGSUNG_U9300 */
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0121, 4)}, /* Quectel EC21 Mini PCIe */
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0191, 4)}, /* Quectel EG91 */
{QMI_FIXED_INTF(0x2c7c, 0x0296, 4)}, /* Quectel BG96 */
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0195, 4)}, /* Quectel EG95 */
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -381,6 +381,7 @@ static void option_instat_callback(struc
@@ -382,6 +382,7 @@ static void option_instat_callback(struc
* Mobidata, etc sell under their own brand names.
*/
#define LONGCHEER_VENDOR_ID 0x1c9e
@ -18,7 +18,7 @@
/* 4G Systems products */
/* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick *
@@ -571,6 +572,16 @@ static void option_instat_callback(struc
@@ -572,6 +573,16 @@ static void option_instat_callback(struc
/* Device needs ZLP */
#define ZLP BIT(17)
@ -35,7 +35,7 @@
static const struct usb_device_id option_ids[] = {
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
@@ -605,6 +616,8 @@ static const struct usb_device_id option
@@ -606,6 +617,8 @@ static const struct usb_device_id option
{ USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) },
{ USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
.driver_info = RSVD(4) },

View File

@ -7,10 +7,10 @@
+ {QMI_FIXED_INTF(0x1c9e, 0x9b3c, 4)}, /* LONGSUNG_U9300 */
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0121, 4)}, /* Quectel EC21 Mini PCIe */
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0191, 4)}, /* Quectel EG91 */
{QMI_FIXED_INTF(0x2c7c, 0x0296, 4)}, /* Quectel BG96 */
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0195, 4)}, /* Quectel EG95 */
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -384,6 +384,7 @@ static void option_instat_callback(struc
@@ -385,6 +385,7 @@ static void option_instat_callback(struc
* Mobidata, etc sell under their own brand names.
*/
#define LONGCHEER_VENDOR_ID 0x1c9e
@ -18,7 +18,7 @@
/* 4G Systems products */
/* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick *
@@ -574,6 +575,16 @@ static void option_instat_callback(struc
@@ -575,6 +576,16 @@ static void option_instat_callback(struc
/* Device needs ZLP */
#define ZLP BIT(17)
@ -35,7 +35,7 @@
static const struct usb_device_id option_ids[] = {
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
@@ -608,6 +619,8 @@ static const struct usb_device_id option
@@ -609,6 +620,8 @@ static const struct usb_device_id option
{ USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) },
{ USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
.driver_info = RSVD(4) },

View File

@ -7,10 +7,10 @@
+ {QMI_FIXED_INTF(0x1c9e, 0x9b3c, 4)}, /* LONGSUNG_U9300 */
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0121, 4)}, /* Quectel EC21 Mini PCIe */
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0191, 4)}, /* Quectel EG91 */
{QMI_FIXED_INTF(0x2c7c, 0x0296, 4)}, /* Quectel BG96 */
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0195, 4)}, /* Quectel EG95 */
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -381,6 +381,7 @@ static void option_instat_callback(struc
@@ -382,6 +382,7 @@ static void option_instat_callback(struc
* Mobidata, etc sell under their own brand names.
*/
#define LONGCHEER_VENDOR_ID 0x1c9e
@ -18,7 +18,7 @@
/* 4G Systems products */
/* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick *
@@ -571,6 +572,16 @@ static void option_instat_callback(struc
@@ -572,6 +573,16 @@ static void option_instat_callback(struc
/* Device needs ZLP */
#define ZLP BIT(17)
@ -35,7 +35,7 @@
static const struct usb_device_id option_ids[] = {
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
@@ -605,6 +616,8 @@ static const struct usb_device_id option
@@ -606,6 +617,8 @@ static const struct usb_device_id option
{ USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) },
{ USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
.driver_info = RSVD(4) },

View File

@ -40,7 +40,7 @@ Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
struct mtk_thermal;
struct thermal_bank_cfg {
@@ -767,7 +760,7 @@ static struct platform_driver mtk_therma
@@ -765,7 +758,7 @@ static struct platform_driver mtk_therma
.probe = mtk_thermal_probe,
.remove = mtk_thermal_remove,
.driver = {

View File

@ -68,7 +68,7 @@ Signed-off-by: Shunli Wang <shunli.wang@mediatek.com>
/**
* raw_to_mcelsius - convert a raw ADC value to mcelsius
* @mt: The thermal controller
@@ -633,6 +664,10 @@ static const struct of_device_id mtk_the
@@ -631,6 +662,10 @@ static const struct of_device_id mtk_the
{
.compatible = "mediatek,mt2712-thermal",
.data = (void *)&mt2712_thermal_data,

View File

@ -1,6 +1,6 @@
--- a/drivers/usb/dwc2/platform.c
+++ b/drivers/usb/dwc2/platform.c
@@ -406,6 +406,12 @@ static int dwc2_driver_probe(struct plat
@@ -407,6 +407,12 @@ static int dwc2_driver_probe(struct plat
if (retval)
return retval;