kernel: bump 4.14 to 4.14.176
authorKoen Vandeputte <koen.vandeputte@ncentric.com>
Wed, 15 Apr 2020 12:31:12 +0000 (14:31 +0200)
committerKoen Vandeputte <koen.vandeputte@ncentric.com>
Thu, 16 Apr 2020 11:23:11 +0000 (13:23 +0200)
Refreshed all patches.

Remove upstreamed:
- 0001-net-thunderx-workaround-BGX-TX-Underflow-issue.patch
- 600-ipv6-addrconf-call-ipv6_mc_up-for-non-Ethernet-inter.patch
- 184-USB-serial-option-add-Wistron-Neweb-D19Q1.patch

Fixes:
- CVE-2020-8648 (potentially)
- CVE-2020-8647
- CVE-2020-8649

Compile-tested on: cns3xxx, octeontx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
24 files changed:
include/kernel-version.mk
target/linux/ar71xx/patches-4.14/910-unaligned_access_hacks.patch
target/linux/generic/backport-4.14/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch
target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch
target/linux/generic/backport-4.14/183-net-qmi_wwan-add-Wistron-Neweb-D19Q1.patch
target/linux/generic/backport-4.14/273-batman-adv-Convert-packet.h-to-uapi-header.patch
target/linux/generic/backport-4.14/320-v4.16-netfilter-nf_conntrack-add-IPS_OFFLOAD-status-bit.patch
target/linux/generic/backport-4.14/370-netfilter-nf_flow_table-fix-offloaded-connection-tim.patch
target/linux/generic/backport-4.14/600-ipv6-addrconf-call-ipv6_mc_up-for-non-Ethernet-inter.patch [deleted file]
target/linux/generic/backport-4.14/950-tty-serial-exar-generalize-rs485-setup.patch
target/linux/generic/hack-4.14/702-phy_add_aneg_done_function.patch
target/linux/generic/hack-4.14/901-debloat_sock_diag.patch
target/linux/generic/hack-4.14/902-debloat_proc.patch
target/linux/generic/pending-4.14/184-USB-serial-option-add-Wistron-Neweb-D19Q1.patch [deleted file]
target/linux/generic/pending-4.14/630-packet_socket_type.patch
target/linux/generic/pending-4.14/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/pending-4.14/703-phy-add-detach-callback-to-struct-phy_driver.patch
target/linux/layerscape/patches-4.14/707-dpaa-ethernet-support-layerscape.patch
target/linux/layerscape/patches-4.14/806-rtc-support-layerscape.patch
target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch
target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch
target/linux/octeontx/patches-4.14/0001-net-thunderx-add-support-for-rgmii-internal-delay-mo.patch
target/linux/octeontx/patches-4.14/0001-net-thunderx-workaround-BGX-TX-Underflow-issue.patch [deleted file]
target/linux/ramips/patches-4.14/0034-NET-multi-phy-support.patch

index 4a720da24943940f92f632df0b0f12359c7532ad..3e46989f842a21e1fa592aab27ad9cb1387f51cb 100644 (file)
@@ -6,11 +6,11 @@ ifdef CONFIG_TESTING_KERNEL
   KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
 endif
 
-LINUX_VERSION-4.14 = .172
+LINUX_VERSION-4.14 = .176
 LINUX_VERSION-4.19 = .108
 LINUX_VERSION-5.4 = .32
 
-LINUX_KERNEL_HASH-4.14.172 = 2318a1ab937580a079351ed20557c336a3d95b664f667b14e3ba49e3271b217a
+LINUX_KERNEL_HASH-4.14.176 = bcae0956baaeb55dab5bad0401873fbc5baaa7fbe957ea6d27a5ab241cec5ca2
 LINUX_KERNEL_HASH-4.19.108 = 09aeeca5b08efea2f54b977b2999afb60d42f93b9f65b2b0111969f183f750a3
 LINUX_KERNEL_HASH-5.4.32 = 192d99fab7a47a537493b6d7eddb52892b98f8ada655c0bbb419b360a995f2b3
 
index 6c216712b1edebc5bec7ee6e6caa5d8ec954f46e..2585bb10c1b7a6d15cd579e251e2dce7c06b6e9b 100644 (file)
  #include <linux/uaccess.h>
  #include <linux/ipv6.h>
  #include <linux/icmpv6.h>
-@@ -820,10 +821,10 @@ static void tcp_v6_send_response(const s
+@@ -819,10 +820,10 @@ static void tcp_v6_send_response(const s
        topt = (__be32 *)(t1 + 1);
  
        if (tsecr) {
index b85179982404a97c11858655d8af4a102f2a2f9e..7939ee46b091de9d6fd882269b3b144240afa29f 100644 (file)
@@ -55,7 +55,7 @@ Cc: Kir Kolyshkin <kir@openvz.org>
        rwlock_t                sk_callback_lock;
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -2745,6 +2745,7 @@ void sock_init_data(struct socket *sock,
+@@ -2748,6 +2748,7 @@ void sock_init_data(struct socket *sock,
  
        sk->sk_max_pacing_rate = ~0U;
        sk->sk_pacing_rate = ~0U;
index c09a5e47f81894adf31d6d8b759b72660e54730b..6d6c575ae79ce05694b001d6f2bc3256fe7efbb9 100644 (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
-@@ -1981,7 +1981,8 @@ static const struct usb_device_id option
+@@ -1983,7 +1983,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) },
index 25987dbac8c4f738cca14cc6e1ef12b061f0cc11..078c9aaa503669707fd140023e4d68e505b149d3 100644 (file)
@@ -44,11 +44,11 @@ Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
 
 --- a/drivers/net/usb/qmi_wwan.c
 +++ b/drivers/net/usb/qmi_wwan.c
-@@ -1142,6 +1142,7 @@ static const struct usb_device_id produc
+@@ -1138,6 +1138,7 @@ static const struct usb_device_id produc
        {QMI_FIXED_INTF(0x1435, 0xd181, 3)},    /* Wistron NeWeb D18Q1 */
        {QMI_FIXED_INTF(0x1435, 0xd181, 4)},    /* Wistron NeWeb D18Q1 */
        {QMI_FIXED_INTF(0x1435, 0xd181, 5)},    /* Wistron NeWeb D18Q1 */
 +      {QMI_FIXED_INTF(0x1435, 0xd191, 4)},    /* Wistron NeWeb D19Q1 */
        {QMI_QUIRK_SET_DTR(0x1508, 0x1001, 4)}, /* Fibocom NL668 series */
+       {QMI_FIXED_INTF(0x1690, 0x7588, 4)},    /* ASKEY WWHC050 */
        {QMI_FIXED_INTF(0x16d8, 0x6003, 0)},    /* CMOTech 6003 */
-       {QMI_FIXED_INTF(0x16d8, 0x6007, 0)},    /* CMOTech CHE-628S */
index 0435803f511bfb40b721c0a890c0c0db4c651d1b..a9f744fd13fa6e2df71b18775c0a5b7d24515dbc 100644 (file)
@@ -27,7 +27,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
 --- a/net/batman-adv/bat_iv_ogm.c
 +++ b/net/batman-adv/bat_iv_ogm.c
-@@ -51,6 +51,7 @@
+@@ -52,6 +52,7 @@
  #include <linux/workqueue.h>
  #include <net/genetlink.h>
  #include <net/netlink.h>
@@ -35,7 +35,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  #include <uapi/linux/batman_adv.h>
  
  #include "bat_algo.h"
-@@ -62,7 +63,6 @@
+@@ -63,7 +64,6 @@
  #include "netlink.h"
  #include "network-coding.h"
  #include "originator.h"
@@ -45,7 +45,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  #include "translation-table.h"
 --- a/net/batman-adv/bat_v.c
 +++ b/net/batman-adv/bat_v.c
-@@ -37,6 +37,7 @@
+@@ -36,6 +36,7 @@
  #include <linux/workqueue.h>
  #include <net/genetlink.h>
  #include <net/netlink.h>
@@ -53,7 +53,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  #include <uapi/linux/batman_adv.h>
  
  #include "bat_algo.h"
-@@ -49,7 +50,6 @@
+@@ -48,7 +49,6 @@
  #include "log.h"
  #include "netlink.h"
  #include "originator.h"
@@ -80,7 +80,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
 --- a/net/batman-adv/bat_v_ogm.c
 +++ b/net/batman-adv/bat_v_ogm.c
-@@ -38,13 +38,13 @@
+@@ -40,13 +40,13 @@
  #include <linux/string.h>
  #include <linux/types.h>
  #include <linux/workqueue.h>
@@ -174,7 +174,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  /**
 --- a/net/batman-adv/hard-interface.c
 +++ b/net/batman-adv/hard-interface.c
-@@ -36,6 +36,7 @@
+@@ -37,6 +37,7 @@
  #include <linux/spinlock.h>
  #include <net/net_namespace.h>
  #include <net/rtnetlink.h>
@@ -182,7 +182,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
  #include "bat_v.h"
  #include "bridge_loop_avoidance.h"
-@@ -44,7 +45,6 @@
+@@ -45,7 +46,6 @@
  #include "gateway_client.h"
  #include "log.h"
  #include "originator.h"
@@ -1025,7 +1025,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
 --- a/net/batman-adv/types.h
 +++ b/net/batman-adv/types.h
-@@ -34,10 +34,9 @@
+@@ -35,10 +35,9 @@
  #include <linux/types.h>
  #include <linux/wait.h>
  #include <linux/workqueue.h>
index de88825802e7855be52b9af22953bacdc9639294..885d632d22db4d56ce668cc45525aa17b0c086e9 100644 (file)
@@ -47,7 +47,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  };
 --- a/net/netfilter/nf_conntrack_core.c
 +++ b/net/netfilter/nf_conntrack_core.c
-@@ -960,6 +960,9 @@ static unsigned int early_drop_list(stru
+@@ -974,6 +974,9 @@ static unsigned int early_drop_list(stru
        hlist_nulls_for_each_entry_rcu(h, n, head, hnnode) {
                tmp = nf_ct_tuplehash_to_ctrack(h);
  
@@ -57,7 +57,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
                if (nf_ct_is_expired(tmp)) {
                        nf_ct_gc_expired(tmp);
                        continue;
-@@ -1037,6 +1040,18 @@ static bool gc_worker_can_early_drop(con
+@@ -1051,6 +1054,18 @@ static bool gc_worker_can_early_drop(con
        return false;
  }
  
@@ -76,7 +76,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  static void gc_worker(struct work_struct *work)
  {
        unsigned int min_interval = max(HZ / GC_MAX_BUCKETS_DIV, 1u);
-@@ -1073,6 +1088,11 @@ static void gc_worker(struct work_struct
+@@ -1087,6 +1102,11 @@ static void gc_worker(struct work_struct
                        tmp = nf_ct_tuplehash_to_ctrack(h);
  
                        scanned++;
index 286f1f659c04105b90fa385284a5b45366aa9749..d82854908fadec11117e5a3f14b7413e435c6d95 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/netfilter/nf_conntrack_core.c
 +++ b/net/netfilter/nf_conntrack_core.c
-@@ -1040,18 +1040,6 @@ static bool gc_worker_can_early_drop(con
+@@ -1054,18 +1054,6 @@ static bool gc_worker_can_early_drop(con
        return false;
  }
  
@@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static void gc_worker(struct work_struct *work)
  {
        unsigned int min_interval = max(HZ / GC_MAX_BUCKETS_DIV, 1u);
-@@ -1088,10 +1076,8 @@ static void gc_worker(struct work_struct
+@@ -1102,10 +1090,8 @@ static void gc_worker(struct work_struct
                        tmp = nf_ct_tuplehash_to_ctrack(h);
  
                        scanned++;
diff --git a/target/linux/generic/backport-4.14/600-ipv6-addrconf-call-ipv6_mc_up-for-non-Ethernet-inter.patch b/target/linux/generic/backport-4.14/600-ipv6-addrconf-call-ipv6_mc_up-for-non-Ethernet-inter.patch
deleted file mode 100644 (file)
index ba0d137..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-From 82afdcd4ec3c8ca6551cbf7c43c09e2fd240487a Mon Sep 17 00:00:00 2001
-From: Hangbin Liu <liuhangbin@gmail.com>
-Date: Tue, 10 Mar 2020 15:27:37 +0800
-Subject: [PATCH] ipv6/addrconf: call ipv6_mc_up() for non-Ethernet interface
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-RafaÅ‚ found an issue that for non-Ethernet interface, if we down and up
-frequently, the memory will be consumed slowly.
-
-The reason is we add allnodes/allrouters addressed in multicast list in
-ipv6_add_dev(). When link down, we call ipv6_mc_down(), store all multicast
-addresses via mld_add_delrec(). But when link up, we don't call ipv6_mc_up()
-for non-Ethernet interface to remove the addresses. This makes idev->mc_tomb
-getting bigger and bigger. The call stack looks like:
-
-addrconf_notify(NETDEV_REGISTER)
-       ipv6_add_dev
-               ipv6_dev_mc_inc(ff01::1)
-               ipv6_dev_mc_inc(ff02::1)
-               ipv6_dev_mc_inc(ff02::2)
-
-addrconf_notify(NETDEV_UP)
-       addrconf_dev_config
-               /* Alas, we support only Ethernet autoconfiguration. */
-               return;
-
-addrconf_notify(NETDEV_DOWN)
-       addrconf_ifdown
-               ipv6_mc_down
-                       igmp6_group_dropped(ff02::2)
-                               mld_add_delrec(ff02::2)
-                       igmp6_group_dropped(ff02::1)
-                       igmp6_group_dropped(ff01::1)
-
-After investigating, I can't found a rule to disable multicast on
-non-Ethernet interface. In RFC2460, the link could be Ethernet, PPP, ATM,
-tunnels, etc. In IPv4, it doesn't check the dev type when calls ip_mc_up()
-in inetdev_event(). Even for IPv6, we don't check the dev type and call
-ipv6_add_dev(), ipv6_dev_mc_inc() after register device.
-
-So I think it's OK to fix this memory consumer by calling ipv6_mc_up() for
-non-Ethernet interface.
-
-v2: Also check IFF_MULTICAST flag to make sure the interface supports
-    multicast
-
-Reported-by: RafaÅ‚ MiÅ‚ecki <zajec5@gmail.com>
-Tested-by: RafaÅ‚ MiÅ‚ecki <zajec5@gmail.com>
-Fixes: 74235a25c673 ("[IPV6] addrconf: Fix IPv6 on tuntap tunnels")
-Fixes: 1666d49e1d41 ("mld: do not remove mld souce list info when set link down")
-Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- net/ipv6/addrconf.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
---- a/net/ipv6/addrconf.c
-+++ b/net/ipv6/addrconf.c
-@@ -3223,6 +3223,10 @@ static void addrconf_dev_config(struct n
-           (dev->type != ARPHRD_TUNNEL) &&
-           (dev->type != ARPHRD_NONE)) {
-               /* Alas, we support only Ethernet autoconfiguration. */
-+              idev = __in6_dev_get(dev);
-+              if (!IS_ERR_OR_NULL(idev) && dev->flags & IFF_UP &&
-+                  dev->flags & IFF_MULTICAST)
-+                      ipv6_mc_up(idev);
-               return;
-       }
index 42c4705e515d914151e2f633c241d69c717a8505..353dc14949e930af8980272a93f8cc2322a69d41 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 --- a/drivers/tty/serial/8250/8250_exar.c
 +++ b/drivers/tty/serial/8250/8250_exar.c
-@@ -275,8 +275,32 @@ static int xr17v35x_register_gpio(struct
+@@ -283,8 +283,32 @@ static int xr17v35x_register_gpio(struct
        return 0;
  }
  
@@ -52,7 +52,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  };
  
  static int iot2040_rs485_config(struct uart_port *port,
-@@ -309,19 +333,7 @@ static int iot2040_rs485_config(struct u
+@@ -317,19 +341,7 @@ static int iot2040_rs485_config(struct u
        value |= mode;
        writeb(value, p + UART_EXAR_MPIOLVL_7_0);
  
index cc84311ef913ef6752d30b5a2f32767e0c36b559..5885c8fae6953b6d0a049f07e797107316d3f1bb 100644 (file)
@@ -1,6 +1,6 @@
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -547,6 +547,12 @@ struct phy_driver {
+@@ -549,6 +549,12 @@ struct phy_driver {
        /* Determines the negotiated speed and duplex */
        int (*read_status)(struct phy_device *phydev);
  
@@ -15,7 +15,7 @@
  
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1462,6 +1462,9 @@ int genphy_update_link(struct phy_device
+@@ -1466,6 +1466,9 @@ int genphy_update_link(struct phy_device
  {
        int status;
  
index 5945aee55669504d32aa6d99c73cbb4142236d50..a4ca5735695d8023e43477aace7b7547bd6251eb 100644 (file)
@@ -96,7 +96,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        u64 res;
 --- a/net/ipv4/Kconfig
 +++ b/net/ipv4/Kconfig
-@@ -420,6 +420,7 @@ config INET_XFRM_MODE_BEET
+@@ -421,6 +421,7 @@ config INET_XFRM_MODE_BEET
  
  config INET_DIAG
        tristate "INET: socket monitoring interface"
index 478a3ac6327cb0fe30fec778717b8ab92e740e75..30328b87d79e98fb4dc30901d7a9deba12e01bc6 100644 (file)
@@ -232,7 +232,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                return -ENOMEM;
 --- a/mm/vmalloc.c
 +++ b/mm/vmalloc.c
-@@ -2783,6 +2783,8 @@ static const struct file_operations proc
+@@ -2786,6 +2786,8 @@ static const struct file_operations proc
  
  static int __init proc_vmalloc_init(void)
  {
@@ -327,7 +327,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -3384,6 +3384,8 @@ static __net_initdata struct pernet_oper
+@@ -3387,6 +3387,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {
@@ -338,7 +338,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -2740,10 +2740,12 @@ static const struct file_operations fib_
+@@ -2743,10 +2743,12 @@ static const struct file_operations fib_
  
  int __net_init fib_proc_init(struct net *net)
  {
@@ -353,7 +353,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                         &fib_triestat_fops))
                goto out2;
  
-@@ -2753,17 +2755,21 @@ int __net_init fib_proc_init(struct net
+@@ -2756,17 +2758,21 @@ int __net_init fib_proc_init(struct net
        return 0;
  
  out3:
diff --git a/target/linux/generic/pending-4.14/184-USB-serial-option-add-Wistron-Neweb-D19Q1.patch b/target/linux/generic/pending-4.14/184-USB-serial-option-add-Wistron-Neweb-D19Q1.patch
deleted file mode 100644 (file)
index 525f3b1..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-From 9d2e23253eb5fabff02a7ce4be9c4a7fc23562e8 Mon Sep 17 00:00:00 2001
-From: Pawel Dembicki <paweldembicki@gmail.com>
-Date: Fri, 20 Mar 2020 22:56:28 +0100
-Subject: [PATCH v2 3/3] USB: serial: option: add Wistron Neweb D19Q1
-
-This modem is embedded on dlink dwr-960 router.
-The oem configuration states:
-
-T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
-D: Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
-P: Vendor=1435 ProdID=d191 Rev=ff.ff
-S: Manufacturer=Android
-S: Product=Android
-S: SerialNumber=0123456789ABCDEF
-C:* #Ifs= 6 Cfg#= 1 Atr=80 MxPwr=500mA
-I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
-E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
-E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
-E: Ad=84(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
-E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
-E: Ad=86(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
-E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
-E: Ad=88(I) Atr=03(Int.) MxPS= 8 Ivl=32ms
-E: Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-I:* If#= 5 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none)
-E: Ad=89(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=125us
-
-Tested on openwrt distribution
-
-Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
----
- drivers/usb/serial/option.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -1993,6 +1993,8 @@ static const struct usb_device_id option
-       { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) },    /* D-Link DWM-152/C1 */
-       { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) },    /* D-Link DWM-156/C1 */
-       { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x7e11, 0xff, 0xff, 0xff) },    /* D-Link DWM-156/A3 */
-+      { USB_DEVICE_INTERFACE_CLASS(0x1435, 0xd191, 0xff),                     /* Wistron Neweb D19Q1 */
-+        .driver_info = RSVD(1) | RSVD(4) },
-       { USB_DEVICE_INTERFACE_CLASS(0x2020, 0x2031, 0xff),                     /* Olicard 600 */
-         .driver_info = RSVD(4) },
-       { USB_DEVICE_INTERFACE_CLASS(0x2020, 0x2060, 0xff),                     /* BroadMobi BM818 */
index a4737b23efd0b29b53c1b51a129ac7980dc77471..c4bd5fdabae53b79d10014bd29da6c2f0f62a41e 100644 (file)
@@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
-@@ -2213,12 +2215,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -2214,12 +2216,12 @@ static int tpacket_rcv(struct sk_buff *s
        BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
        BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
  
@@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
-@@ -3301,6 +3303,7 @@ static int packet_create(struct net *net
+@@ -3313,6 +3315,7 @@ static int packet_create(struct net *net
        mutex_init(&po->pg_vec_lock);
        po->rollover = NULL;
        po->prot_hook.func = packet_rcv;
@@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        if (sock->type == SOCK_PACKET)
                po->prot_hook.func = packet_rcv_spkt;
-@@ -3923,6 +3926,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3935,6 +3938,16 @@ packet_setsockopt(struct socket *sock, i
                po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
                return 0;
        }
@@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        default:
                return -ENOPROTOOPT;
        }
-@@ -3975,6 +3988,13 @@ static int packet_getsockopt(struct sock
+@@ -3987,6 +4000,13 @@ static int packet_getsockopt(struct sock
        case PACKET_VNET_HDR:
                val = po->has_vnet_hdr;
                break;
@@ -128,7 +128,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                break;
 --- a/net/packet/internal.h
 +++ b/net/packet/internal.h
-@@ -132,6 +132,7 @@ struct packet_sock {
+@@ -135,6 +135,7 @@ struct packet_sock {
        struct net_device __rcu *cached_dev;
        int                     (*xmit)(struct sk_buff *skb);
        struct packet_type      prot_hook ____cacheline_aligned_in_smp;
index e6b0940a0b1ad023257cb9078957af1c32fd7720..57ba68f4b60929b1db583679c9b3bc5afdabd084 100644 (file)
@@ -66,7 +66,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  static void rt_fibinfo_free(struct rtable __rcu **rtp)
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -2469,6 +2469,7 @@ static const char *const rtn_type_names[
+@@ -2472,6 +2472,7 @@ static const char *const rtn_type_names[
        [RTN_THROW] = "THROW",
        [RTN_NAT] = "NAT",
        [RTN_XRESOLVE] = "XRESOLVE",
@@ -181,7 +181,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                cfg->fc_flags |= RTF_REJECT;
  
        if (rtm->rtm_type == RTN_LOCAL)
-@@ -3514,6 +3548,9 @@ static int rt6_fill_node(struct net *net
+@@ -3515,6 +3549,9 @@ static int rt6_fill_node(struct net *net
                case -EACCES:
                        rtm->rtm_type = RTN_PROHIBIT;
                        break;
@@ -191,7 +191,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                case -EAGAIN:
                        rtm->rtm_type = RTN_THROW;
                        break;
-@@ -3832,6 +3869,8 @@ static int ip6_route_dev_notify(struct n
+@@ -3833,6 +3870,8 @@ static int ip6_route_dev_notify(struct n
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
                net->ipv6.ip6_prohibit_entry->dst.dev = dev;
                net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@@ -200,7 +200,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
                net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
  #endif
-@@ -3843,6 +3882,7 @@ static int ip6_route_dev_notify(struct n
+@@ -3844,6 +3883,7 @@ static int ip6_route_dev_notify(struct n
                in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
                in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
@@ -208,7 +208,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
  #endif
        }
-@@ -4059,6 +4099,17 @@ static int __net_init ip6_route_net_init
+@@ -4060,6 +4100,17 @@ static int __net_init ip6_route_net_init
        net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
        dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
                         ip6_template_metrics, true);
@@ -226,7 +226,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  #endif
  
        net->ipv6.sysctl.flush_delay = 0;
-@@ -4077,6 +4128,8 @@ out:
+@@ -4078,6 +4129,8 @@ out:
        return ret;
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -235,7 +235,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  out_ip6_prohibit_entry:
        kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
-@@ -4094,6 +4147,7 @@ static void __net_exit ip6_route_net_exi
+@@ -4095,6 +4148,7 @@ static void __net_exit ip6_route_net_exi
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
        kfree(net->ipv6.ip6_prohibit_entry);
        kfree(net->ipv6.ip6_blk_hole_entry);
@@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  #endif
        dst_entries_destroy(&net->ipv6.ip6_dst_ops);
  }
-@@ -4167,6 +4221,9 @@ void __init ip6_route_init_special_entri
+@@ -4168,6 +4222,9 @@ void __init ip6_route_init_special_entri
        init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
        init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
        init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
index d49fdc77abe2e607d9ef7f6dc752717600c0bcba..03579657ee37d6d5545313c4746c7de7d88e5a21 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1106,6 +1106,9 @@ void phy_detach(struct phy_device *phyde
+@@ -1110,6 +1110,9 @@ void phy_detach(struct phy_device *phyde
        struct module *ndev_owner = dev->dev.parent->driver->owner;
        struct mii_bus *bus;
  
@@ -23,7 +23,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
                sysfs_remove_link(&phydev->mdio.dev.kobj, "attached_dev");
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -559,6 +559,12 @@ struct phy_driver {
+@@ -561,6 +561,12 @@ struct phy_driver {
         */
        int (*did_interrupt)(struct phy_device *phydev);
  
index e09a39e113dbe7b9f083d41704b39dcd67e142bd..3e512cb357894b50abfd0d0a2b629a47bd66663f 100644 (file)
@@ -1304,7 +1304,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
  }
  
  static const struct net_device_ops dpaa_ops = {
-@@ -2654,7 +2936,6 @@ static inline u16 dpaa_get_headroom(stru
+@@ -2652,7 +2934,6 @@ static inline u16 dpaa_get_headroom(stru
  static int dpaa_eth_probe(struct platform_device *pdev)
  {
        struct dpaa_bp *dpaa_bps[DPAA_BPS_NUM] = {NULL};
@@ -1312,7 +1312,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
        struct net_device *net_dev = NULL;
        struct dpaa_fq *dpaa_fq, *tmp;
        struct dpaa_priv *priv = NULL;
-@@ -2663,7 +2944,51 @@ static int dpaa_eth_probe(struct platfor
+@@ -2661,7 +2942,51 @@ static int dpaa_eth_probe(struct platfor
        int err = 0, i, channel;
        struct device *dev;
  
@@ -1365,7 +1365,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
  
        /* Allocate this early, so we can store relevant information in
         * the private area
-@@ -2671,7 +2996,7 @@ static int dpaa_eth_probe(struct platfor
+@@ -2669,7 +2994,7 @@ static int dpaa_eth_probe(struct platfor
        net_dev = alloc_etherdev_mq(sizeof(*priv), DPAA_ETH_TXQ_NUM);
        if (!net_dev) {
                dev_err(dev, "alloc_etherdev_mq() failed\n");
@@ -1374,7 +1374,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
        }
  
        /* Do this here, so we can be verbose early */
-@@ -2683,13 +3008,6 @@ static int dpaa_eth_probe(struct platfor
+@@ -2681,13 +3006,6 @@ static int dpaa_eth_probe(struct platfor
  
        priv->msg_enable = netif_msg_init(debug, DPAA_MSG_DEFAULT);
  
@@ -1388,7 +1388,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
        /* If fsl_fm_max_frm is set to a higher value than the all-common 1500,
         * we choose conservatively and let the user explicitly set a higher
         * MTU via ifconfig. Otherwise, the user may end up with different MTUs
-@@ -2705,21 +3023,13 @@ static int dpaa_eth_probe(struct platfor
+@@ -2703,21 +3021,13 @@ static int dpaa_eth_probe(struct platfor
        priv->buf_layout[RX].priv_data_size = DPAA_RX_PRIV_DATA_SIZE; /* Rx */
        priv->buf_layout[TX].priv_data_size = DPAA_TX_PRIV_DATA_SIZE; /* Tx */
  
@@ -1414,7 +1414,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
                /* the raw size of the buffers used for reception */
                dpaa_bps[i]->raw_size = bpool_buffer_raw_size(i, DPAA_BPS_NUM);
                /* avoid runtime computations by keeping the usable size here */
-@@ -2727,11 +3037,8 @@ static int dpaa_eth_probe(struct platfor
+@@ -2725,11 +3035,8 @@ static int dpaa_eth_probe(struct platfor
                dpaa_bps[i]->dev = dev;
  
                err = dpaa_bp_alloc_pool(dpaa_bps[i]);
@@ -1428,7 +1428,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
                priv->dpaa_bps[i] = dpaa_bps[i];
        }
  
-@@ -2742,7 +3049,7 @@ static int dpaa_eth_probe(struct platfor
+@@ -2740,7 +3047,7 @@ static int dpaa_eth_probe(struct platfor
        err = dpaa_alloc_all_fqs(dev, &priv->dpaa_fq_list, &port_fqs);
        if (err < 0) {
                dev_err(dev, "dpaa_alloc_all_fqs() failed\n");
@@ -1437,7 +1437,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
        }
  
        priv->mac_dev = mac_dev;
-@@ -2751,12 +3058,12 @@ static int dpaa_eth_probe(struct platfor
+@@ -2749,12 +3056,12 @@ static int dpaa_eth_probe(struct platfor
        if (channel < 0) {
                dev_err(dev, "dpaa_get_channel() failed\n");
                err = channel;
@@ -1452,7 +1452,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
         * and add this pool channel to each's dequeue mask.
         */
        dpaa_eth_add_channel(priv->channel);
-@@ -2771,20 +3078,20 @@ static int dpaa_eth_probe(struct platfor
+@@ -2769,20 +3076,20 @@ static int dpaa_eth_probe(struct platfor
        err = dpaa_eth_cgr_init(priv);
        if (err < 0) {
                dev_err(dev, "Error initializing CGR\n");
@@ -1476,7 +1476,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
        }
  
        priv->tx_headroom = dpaa_get_headroom(&priv->buf_layout[TX]);
-@@ -2794,7 +3101,7 @@ static int dpaa_eth_probe(struct platfor
+@@ -2792,7 +3099,7 @@ static int dpaa_eth_probe(struct platfor
        err = dpaa_eth_init_ports(mac_dev, dpaa_bps, DPAA_BPS_NUM, &port_fqs,
                                  &priv->buf_layout[0], dev);
        if (err)
@@ -1485,7 +1485,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
  
        /* Rx traffic distribution based on keygen hashing defaults to on */
        priv->keygen_in_use = true;
-@@ -2803,11 +3110,7 @@ static int dpaa_eth_probe(struct platfor
+@@ -2801,11 +3108,7 @@ static int dpaa_eth_probe(struct platfor
        if (!priv->percpu_priv) {
                dev_err(dev, "devm_alloc_percpu() failed\n");
                err = -ENOMEM;
@@ -1498,7 +1498,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
        }
  
        priv->num_tc = 1;
-@@ -2816,11 +3119,11 @@ static int dpaa_eth_probe(struct platfor
+@@ -2814,11 +3117,11 @@ static int dpaa_eth_probe(struct platfor
        /* Initialize NAPI */
        err = dpaa_napi_add(net_dev);
        if (err < 0)
@@ -1512,7 +1512,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
  
        dpaa_eth_sysfs_init(&net_dev->dev);
  
-@@ -2829,32 +3132,21 @@ static int dpaa_eth_probe(struct platfor
+@@ -2827,32 +3130,21 @@ static int dpaa_eth_probe(struct platfor
  
        return 0;
  
@@ -1551,7 +1551,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
        return err;
  }
  
-@@ -2891,6 +3183,23 @@ static int dpaa_remove(struct platform_d
+@@ -2889,6 +3181,23 @@ static int dpaa_remove(struct platform_d
        return err;
  }
  
@@ -1575,7 +1575,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
  static const struct platform_device_id dpaa_devtype[] = {
        {
                .name = "dpaa-ethernet",
-@@ -2915,6 +3224,10 @@ static int __init dpaa_load(void)
+@@ -2913,6 +3222,10 @@ static int __init dpaa_load(void)
  
        pr_debug("FSL DPAA Ethernet driver\n");
  
@@ -1698,7 +1698,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
 +fsl_dpaa_mac-objs:= mac.o fman_dtsec.o fman_memac.o fman_tgec.o
 --- a/drivers/net/ethernet/freescale/fman/fman.c
 +++ b/drivers/net/ethernet/freescale/fman/fman.c
-@@ -629,6 +629,7 @@ static void set_port_order_restoration(s
+@@ -634,6 +634,7 @@ static void set_port_order_restoration(s
        iowrite32be(tmp, &fpm_rg->fmfp_prc);
  }
  
@@ -1706,7 +1706,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
  static void set_port_liodn(struct fman *fman, u8 port_id,
                           u32 liodn_base, u32 liodn_ofst)
  {
-@@ -646,6 +647,27 @@ static void set_port_liodn(struct fman *
+@@ -651,6 +652,27 @@ static void set_port_liodn(struct fman *
        iowrite32be(tmp, &fman->dma_regs->fmdmplr[port_id / 2]);
        iowrite32be(liodn_ofst, &fman->bmi_regs->fmbm_spliodn[port_id - 1]);
  }
@@ -1734,7 +1734,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
  
  static void enable_rams_ecc(struct fman_fpm_regs __iomem *fpm_rg)
  {
-@@ -1914,7 +1936,10 @@ _return:
+@@ -1919,7 +1941,10 @@ _return:
  static int fman_init(struct fman *fman)
  {
        struct fman_cfg *cfg = NULL;
@@ -1746,7 +1746,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
  
        if (is_init_done(fman->cfg))
                return -EINVAL;
-@@ -1934,6 +1959,7 @@ static int fman_init(struct fman *fman)
+@@ -1939,6 +1964,7 @@ static int fman_init(struct fman *fman)
        memset_io((void __iomem *)(fman->base_addr + CGP_OFFSET), 0,
                  fman->state->fm_port_num_of_cg);
  
@@ -1754,7 +1754,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
        /* Save LIODN info before FMan reset
         * Skipping non-existent port 0 (i = 1)
         */
-@@ -1953,6 +1979,9 @@ static int fman_init(struct fman *fman)
+@@ -1958,6 +1984,9 @@ static int fman_init(struct fman *fman)
                }
                fman->liodn_base[i] = liodn_base;
        }
@@ -1764,7 +1764,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
  
        err = fman_reset(fman);
        if (err)
-@@ -2181,8 +2210,12 @@ int fman_set_port_params(struct fman *fm
+@@ -2186,8 +2215,12 @@ int fman_set_port_params(struct fman *fm
        if (err)
                goto return_err;
  
@@ -1777,7 +1777,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
  
        if (fman->state->rev_info.major < 6)
                set_port_order_restoration(fman->fpm_regs, port_id);
-@@ -2800,7 +2833,8 @@ static struct fman *read_dts_node(struct
+@@ -2813,7 +2846,8 @@ static struct fman *read_dts_node(struct
  
        of_node_put(muram_node);
  
@@ -1789,7 +1789,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
                        __func__, irq, err);
 --- a/drivers/net/ethernet/freescale/fman/fman.h
 +++ b/drivers/net/ethernet/freescale/fman/fman.h
-@@ -41,6 +41,7 @@
+@@ -42,6 +42,7 @@
  /* Frame queue Context Override */
  #define FM_FD_CMD_FCO                   0x80000000
  #define FM_FD_CMD_RPD                   0x40000000  /* Read Prepended Data */
@@ -1797,7 +1797,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
  #define FM_FD_CMD_DTC                   0x10000000  /* Do L4 Checksum */
  
  /* TX-Port: Unsupported Format */
-@@ -345,8 +346,12 @@ struct fman {
+@@ -346,8 +347,12 @@ struct fman {
        unsigned long fifo_offset;
        size_t fifo_size;
  
index b7535100bd7ba5a4f3e31cffba0ae16033c9514b..5e4aac047ad9cde5dce4edc9e00a519370b27660 100644 (file)
@@ -65,7 +65,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
 +};
 --- a/drivers/rtc/Kconfig
 +++ b/drivers/rtc/Kconfig
-@@ -433,6 +433,14 @@ config RTC_DRV_PCF85063
+@@ -434,6 +434,14 @@ config RTC_DRV_PCF85063
          This driver can also be built as a module. If so, the module
          will be called rtc-pcf85063.
  
index 2aa77f1a303970f6a211c63656f314f2dd40a2a3..47481cfa99d9c73b9cdc970845473e449144ea08 100644 (file)
@@ -536,7 +536,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
  
        irq = dwc3_gadget_get_irq(dwc);
        if (irq < 0) {
-@@ -3299,6 +3300,12 @@ int dwc3_gadget_init(struct dwc3 *dwc)
+@@ -3298,6 +3299,12 @@ int dwc3_gadget_init(struct dwc3 *dwc)
  
        dwc3_gadget_set_speed(&dwc->gadget, dwc->maximum_speed);
  
@@ -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
-@@ -1972,10 +1972,12 @@ static int finish_td(struct xhci_hcd *xh
+@@ -1978,10 +1978,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;
  
-@@ -1998,14 +2000,30 @@ static int finish_td(struct xhci_hcd *xh
+@@ -2004,14 +2006,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)) {
index 6cfc43423a72b6a2cb5c342aa32cd14c0305a7a9..6077f979cf19097494d8014e1f666180c96d1a70 100644 (file)
@@ -610,7 +610,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        int err;
 -      int irq = 0;
        int id;
-       char name[20];
+       char name[24];
        enum pci_barno bar;
 @@ -486,12 +665,15 @@ static int pci_endpoint_test_probe(struc
        test->alignment = 0;
index cf0f96dce361d4c1203928b55f1432406306ece3..212b6ddd80dbd28ad1d729533c25939c389b8e9b 100644 (file)
@@ -27,7 +27,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
  };
  
  static struct bgx *bgx_vnic[MAX_BGX_THUNDER];
-@@ -841,12 +842,12 @@ static void bgx_poll_for_link(struct wor
+@@ -850,12 +851,12 @@ static void bgx_poll_for_link(struct wor
        queue_delayed_work(lmac->check_link, &lmac->dwork, HZ * 2);
  }
  
@@ -42,7 +42,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
  
        return PHY_INTERFACE_MODE_SGMII;
  }
-@@ -912,7 +913,8 @@ static int bgx_lmac_enable(struct bgx *b
+@@ -921,7 +922,8 @@ static int bgx_lmac_enable(struct bgx *b
  
                if (phy_connect_direct(&lmac->netdev, lmac->phydev,
                                       bgx_lmac_handler,
@@ -52,7 +52,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
                        return -ENODEV;
  
                phy_start(lmac->phydev);
-@@ -1287,6 +1289,8 @@ static int bgx_init_of_phy(struct bgx *b
+@@ -1296,6 +1298,8 @@ static int bgx_init_of_phy(struct bgx *b
                bgx->lmac[lmac].lmacid = lmac;
  
                phy_np = of_parse_phandle(node, "phy-handle", 0);
@@ -61,7 +61,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
                /* If there is no phy or defective firmware presents
                 * this cortina phy, for which there is no driver
                 * support, ignore it.
-@@ -1390,7 +1394,6 @@ static int bgx_probe(struct pci_dev *pde
+@@ -1441,7 +1445,6 @@ static int bgx_probe(struct pci_dev *pde
                bgx->max_lmac = 1;
                bgx->bgx_id = MAX_BGX_PER_CN81XX - 1;
                bgx_vnic[bgx->bgx_id] = bgx;
@@ -69,7 +69,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
        }
  
        /* On 81xx all are DLMs and on 83xx there are 3 BGX QLMs and one
-@@ -1407,6 +1410,8 @@ static int bgx_probe(struct pci_dev *pde
+@@ -1458,6 +1461,8 @@ static int bgx_probe(struct pci_dev *pde
        if (err)
                goto err_enable;
  
@@ -77,10 +77,10 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
 +              xcv_init_hw(bgx->phy_mode);
        bgx_init_hw(bgx);
  
-       /* Enable all LMACs */
+       bgx_register_intr(pdev);
 --- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.h
 +++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.h
-@@ -226,7 +226,7 @@ void bgx_lmac_internal_loopback(int node
+@@ -235,7 +235,7 @@ void bgx_lmac_internal_loopback(int node
  void bgx_lmac_get_pfc(int node, int bgx_idx, int lmacid, void *pause);
  void bgx_lmac_set_pfc(int node, int bgx_idx, int lmacid, void *pause);
  
diff --git a/target/linux/octeontx/patches-4.14/0001-net-thunderx-workaround-BGX-TX-Underflow-issue.patch b/target/linux/octeontx/patches-4.14/0001-net-thunderx-workaround-BGX-TX-Underflow-issue.patch
deleted file mode 100644 (file)
index 5743745..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-From b1e7791e688620c9bb8476ac2d0bc99abeb7f825 Mon Sep 17 00:00:00 2001
-From: Tim Harvey <tharvey@gateworks.com>
-Date: Fri, 29 Dec 2017 16:48:04 -0800
-Subject: [PATCH] net: thunderx: workaround BGX TX Underflow issue
-
-While it is not yet understood why a TX underflow can easily occur
-for SGMII interfaces resulting in a TX wedge. It has been found that
-disabling/re-enabling the LMAC resolves the issue.
-
-Signed-off-by: Tim Harvey <tharvey@gateworks.com>
----
- drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 54 +++++++++++++++++++++++
- drivers/net/ethernet/cavium/thunder/thunder_bgx.h |  9 ++++
- 2 files changed, 63 insertions(+)
-
---- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
-+++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
-@@ -56,6 +56,7 @@ struct bgx {
-       bool                    is_dlm;
-       bool                    is_rgx;
-       int                     phy_mode;
-+      char                    irq_name[7];
- };
- static struct bgx *bgx_vnic[MAX_BGX_THUNDER];
-@@ -1344,6 +1345,53 @@ static int bgx_init_phy(struct bgx *bgx)
-       return bgx_init_of_phy(bgx);
- }
-+static irqreturn_t bgx_intr_handler(int irq, void *data)
-+{
-+      struct bgx *bgx = (struct bgx *)data;
-+      struct device *dev = &bgx->pdev->dev;
-+      u64 status, val;
-+      int lmac;
-+
-+      for (lmac = 0; lmac < bgx->lmac_count; lmac++) {
-+              status = bgx_reg_read(bgx, lmac, BGX_GMP_GMI_TXX_INT);
-+              if (status & GMI_TXX_INT_UNDFLW) {
-+                      dev_err(dev, "BGX%d lmac%d UNDFLW\n", bgx->bgx_id,
-+                              lmac);
-+                      val = bgx_reg_read(bgx, lmac, BGX_CMRX_CFG);
-+                      val &= ~CMR_EN;
-+                      bgx_reg_write(bgx, lmac, BGX_CMRX_CFG, val);
-+                      val |= CMR_EN;
-+                      bgx_reg_write(bgx, lmac, BGX_CMRX_CFG, val);
-+              }
-+              /* clear interrupts */
-+              bgx_reg_write(bgx, lmac, BGX_GMP_GMI_TXX_INT, status);
-+      }
-+
-+      return IRQ_HANDLED;
-+}
-+
-+static int bgx_register_intr(struct pci_dev *pdev)
-+{
-+      struct bgx *bgx = pci_get_drvdata(pdev);
-+      struct device *dev = &pdev->dev;
-+      int num_vec, ret;
-+
-+      /* Enable MSI-X */
-+      num_vec = pci_msix_vec_count(pdev);
-+      ret = pci_alloc_irq_vectors(pdev, num_vec, num_vec, PCI_IRQ_MSIX);
-+      if (ret < 0) {
-+              dev_err(dev, "Req for #%d msix vectors failed\n", num_vec);
-+              return 1;
-+      }
-+      sprintf(bgx->irq_name, "BGX%d", bgx->bgx_id);
-+      ret = request_irq(pci_irq_vector(pdev, GMPX_GMI_TX_INT),
-+              bgx_intr_handler, 0, bgx->irq_name, bgx);
-+      if (ret)
-+              return 1;
-+
-+      return 0;
-+}
-+
- static int bgx_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
- {
-       int err;
-@@ -1414,6 +1462,8 @@ static int bgx_probe(struct pci_dev *pde
-               xcv_init_hw(bgx->phy_mode);
-       bgx_init_hw(bgx);
-+      bgx_register_intr(pdev);
-+
-       /* Enable all LMACs */
-       for (lmac = 0; lmac < bgx->lmac_count; lmac++) {
-               err = bgx_lmac_enable(bgx, lmac);
-@@ -1424,6 +1474,10 @@ static int bgx_probe(struct pci_dev *pde
-                               bgx_lmac_disable(bgx, --lmac);
-                       goto err_enable;
-               }
-+
-+              /* enable TX FIFO Underflow interrupt */
-+              bgx_reg_modify(bgx, lmac, BGX_GMP_GMI_TXX_INT_ENA_W1S,
-+                             GMI_TXX_INT_UNDFLW);
-       }
-       return 0;
---- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.h
-+++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.h
-@@ -179,6 +179,15 @@
- #define BGX_GMP_GMI_TXX_BURST         0x38228
- #define BGX_GMP_GMI_TXX_MIN_PKT               0x38240
- #define BGX_GMP_GMI_TXX_SGMII_CTL     0x38300
-+#define BGX_GMP_GMI_TXX_INT           0x38500
-+#define BGX_GMP_GMI_TXX_INT_W1S               0x38508
-+#define BGX_GMP_GMI_TXX_INT_ENA_W1C   0x38510
-+#define BGX_GMP_GMI_TXX_INT_ENA_W1S   0x38518
-+#define  GMI_TXX_INT_PTP_LOST                 BIT_ULL(4)
-+#define  GMI_TXX_INT_LATE_COL                 BIT_ULL(3)
-+#define  GMI_TXX_INT_XSDEF                    BIT_ULL(2)
-+#define  GMI_TXX_INT_XSCOL                    BIT_ULL(1)
-+#define  GMI_TXX_INT_UNDFLW                   BIT_ULL(0)
- #define BGX_MSIX_VEC_0_29_ADDR                0x400000 /* +(0..29) << 4 */
- #define BGX_MSIX_VEC_0_29_CTL         0x400008
index 5536e3f61c3095a506516b12d5b487a2fbeeb9b1..98ea5f557c3670c1756af6f09082acf32ed8c06a 100644 (file)
@@ -49,8 +49,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
                break;
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -412,6 +412,7 @@ struct phy_device {
-       bool suspended;
+@@ -414,6 +414,7 @@ struct phy_device {
+       bool suspended_by_mdio_bus;
        bool sysfs_links;
        bool loopback_enabled;
 +      bool no_auto_carrier_off;