kernel: bump 5.4 to 5.4.42

Refreshed patches, removed upstreamed patch:

 generic/pending: 001-v5.4-pinctrl-qcom-fix-wrong-write-in-update_dual_edge.patch.patch

Run tested: qemu-x86-64
Build tested: x86/64, ath79/nand, imx6, sunxi/a53

Signed-off-by: Petr Štetiar <ynezz@true.cz>
This commit is contained in:
Petr Štetiar 2020-05-20 12:15:27 +02:00
parent 982d787773
commit 1b2fefb244
27 changed files with 65 additions and 91 deletions

View File

@ -8,11 +8,11 @@ endif
LINUX_VERSION-4.14 = .180 LINUX_VERSION-4.14 = .180
LINUX_VERSION-4.19 = .123 LINUX_VERSION-4.19 = .123
LINUX_VERSION-5.4 = .41 LINUX_VERSION-5.4 = .42
LINUX_KERNEL_HASH-4.14.180 = 444ef973d9b6a6ea174e4a9086f0aea980d8575d13302e431ad688f22e27ed0e LINUX_KERNEL_HASH-4.14.180 = 444ef973d9b6a6ea174e4a9086f0aea980d8575d13302e431ad688f22e27ed0e
LINUX_KERNEL_HASH-4.19.123 = a79914d31a8d8c6b0e2bb0f2b143d615fe8a6c4dd2e0f36e97aa20efd69a993f LINUX_KERNEL_HASH-4.19.123 = a79914d31a8d8c6b0e2bb0f2b143d615fe8a6c4dd2e0f36e97aa20efd69a993f
LINUX_KERNEL_HASH-5.4.41 = 1e64e7c247d7440b0dd9fa63135cf7078c3e09b933ae66dfb3e07b05dcf8b057 LINUX_KERNEL_HASH-5.4.42 = 4e431b7c0266a07b76fdb77f8917ad681f0fa34ffba0eb8a172b67f7ef57bc31
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))

View File

@ -1040,7 +1040,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
} }
--- a/drivers/usb/core/hub.c --- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c
@@ -5318,7 +5318,7 @@ static void port_event(struct usb_hub *h @@ -5319,7 +5319,7 @@ static void port_event(struct usb_hub *h
port_dev->over_current_count++; port_dev->over_current_count++;
port_over_current_notify(port_dev); port_over_current_notify(port_dev);

View File

@ -222,7 +222,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
static inline int mmc_blk_part_switch(struct mmc_card *card, static inline int mmc_blk_part_switch(struct mmc_card *card,
unsigned int part_type); unsigned int part_type);
@@ -2867,6 +2874,7 @@ static int mmc_blk_probe(struct mmc_card @@ -2868,6 +2875,7 @@ static int mmc_blk_probe(struct mmc_card
{ {
struct mmc_blk_data *md, *part_md; struct mmc_blk_data *md, *part_md;
char cap_str[10]; char cap_str[10];
@ -230,7 +230,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
/* /*
* Check that the card supports the command class(es) we need. * Check that the card supports the command class(es) we need.
@@ -2874,7 +2882,16 @@ static int mmc_blk_probe(struct mmc_card @@ -2875,7 +2883,16 @@ static int mmc_blk_probe(struct mmc_card
if (!(card->csd.cmdclass & CCC_BLOCK_READ)) if (!(card->csd.cmdclass & CCC_BLOCK_READ))
return -ENODEV; return -ENODEV;
@ -248,7 +248,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
card->complete_wq = alloc_workqueue("mmc_complete", card->complete_wq = alloc_workqueue("mmc_complete",
WQ_MEM_RECLAIM | WQ_HIGHPRI, 0); WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
@@ -2889,9 +2906,14 @@ static int mmc_blk_probe(struct mmc_card @@ -2890,9 +2907,14 @@ static int mmc_blk_probe(struct mmc_card
string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2, string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2,
cap_str, sizeof(cap_str)); cap_str, sizeof(cap_str));

View File

@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -1238,6 +1238,9 @@ ifneq ($(dtstree),) @@ -1246,6 +1246,9 @@ ifneq ($(dtstree),)
%.dtb: include/config/kernel.release scripts_dtc %.dtb: include/config/kernel.release scripts_dtc
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@

View File

@ -15,7 +15,7 @@ Signed-off-by: Nataliya Korovkina <malus.brandywine@gmail.com>
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -1238,7 +1238,7 @@ ifneq ($(dtstree),) @@ -1246,7 +1246,7 @@ ifneq ($(dtstree),)
%.dtb: include/config/kernel.release scripts_dtc %.dtb: include/config/kernel.release scripts_dtc
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@

View File

@ -96,7 +96,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/init/Kconfig --- a/init/Kconfig
+++ b/init/Kconfig +++ b/init/Kconfig
@@ -2213,6 +2213,13 @@ config TRIM_UNUSED_KSYMS @@ -2195,6 +2195,13 @@ config TRIM_UNUSED_KSYMS
If unsure, or if you need to build out-of-tree modules, say N. If unsure, or if you need to build out-of-tree modules, say N.

View File

@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/include/net/sch_generic.h --- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h +++ b/include/net/sch_generic.h
@@ -569,12 +569,13 @@ extern struct Qdisc_ops noop_qdisc_ops; @@ -570,12 +570,13 @@ extern struct Qdisc_ops noop_qdisc_ops;
extern struct Qdisc_ops pfifo_fast_ops; extern struct Qdisc_ops pfifo_fast_ops;
extern struct Qdisc_ops mq_qdisc_ops; extern struct Qdisc_ops mq_qdisc_ops;
extern struct Qdisc_ops noqueue_qdisc_ops; extern struct Qdisc_ops noqueue_qdisc_ops;

View File

@ -1,26 +0,0 @@
From 17d4771b9740e0c504067b18d527cc29ba490e16 Mon Sep 17 00:00:00 2001
From: Ansuel Smith <ansuelsmth@gmail.com>
Date: Tue, 14 Apr 2020 02:28:00 +0200
Subject: [PATCH] pinctrl: qcom: fix wrong write in update_dual_edge
Fix a typo in the readl/writel accessor conversion where val is used
instead of pol changing the behavior of the original code.
Fixes: 6c73698904aa pinctrl: qcom: Introduce readl/writel accessors
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
---
drivers/pinctrl/qcom/pinctrl-msm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/pinctrl/qcom/pinctrl-msm.c
+++ b/drivers/pinctrl/qcom/pinctrl-msm.c
@@ -688,7 +688,7 @@ static void msm_gpio_update_dual_edge_po
pol = msm_readl_intr_cfg(pctrl, g);
pol ^= BIT(g->intr_polarity_bit);
- msm_writel_intr_cfg(val, pctrl, g);
+ msm_writel_intr_cfg(pol, pctrl, g);
val2 = msm_readl_io(pctrl, g) & BIT(g->in_bit);
intstat = msm_readl_intr_status(pctrl, g);

View File

@ -28,4 +28,4 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+KBUILD_CFLAGS += -Os -fno-reorder-blocks -fno-tree-ch $(EXTRA_OPTIMIZATION) +KBUILD_CFLAGS += -Os -fno-reorder-blocks -fno-tree-ch $(EXTRA_OPTIMIZATION)
endif endif
ifdef CONFIG_CC_DISABLE_WARN_MAYBE_UNINITIALIZED # Tell gcc to never replace conditional load with a non-conditional one

View File

@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/init/Kconfig --- a/init/Kconfig
+++ b/init/Kconfig +++ b/init/Kconfig
@@ -1295,6 +1295,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW @@ -1277,6 +1277,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
the unaligned access emulation. the unaligned access emulation.
see arch/parisc/kernel/unaligned.c for reference see arch/parisc/kernel/unaligned.c for reference

View File

@ -73,7 +73,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#include <linux/nsproxy.h> #include <linux/nsproxy.h>
#include <net/net_namespace.h> #include <net/net_namespace.h>
#include <net/netns/generic.h> #include <net/netns/generic.h>
@@ -971,8 +976,36 @@ static int pppoe_xmit(struct ppp_channel @@ -974,8 +979,36 @@ static int pppoe_xmit(struct ppp_channel
return __pppoe_xmit(sk, skb); return __pppoe_xmit(sk, skb);
} }

View File

@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
case RTN_THROW: case RTN_THROW:
case RTN_UNREACHABLE: case RTN_UNREACHABLE:
default: default:
@@ -4414,6 +4433,17 @@ static int ip6_pkt_prohibit_out(struct n @@ -4416,6 +4435,17 @@ static int ip6_pkt_prohibit_out(struct n
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES); return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
} }
@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
/* /*
* Allocate a dst for local (unicast / anycast) address. * Allocate a dst for local (unicast / anycast) address.
*/ */
@@ -4894,7 +4924,8 @@ static int rtm_to_fib6_config(struct sk_ @@ -4896,7 +4926,8 @@ static int rtm_to_fib6_config(struct sk_
if (rtm->rtm_type == RTN_UNREACHABLE || if (rtm->rtm_type == RTN_UNREACHABLE ||
rtm->rtm_type == RTN_BLACKHOLE || rtm->rtm_type == RTN_BLACKHOLE ||
rtm->rtm_type == RTN_PROHIBIT || rtm->rtm_type == RTN_PROHIBIT ||
@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
cfg->fc_flags |= RTF_REJECT; cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL) if (rtm->rtm_type == RTN_LOCAL)
@@ -6014,6 +6045,8 @@ static int ip6_route_dev_notify(struct n @@ -6016,6 +6047,8 @@ static int ip6_route_dev_notify(struct n
#ifdef CONFIG_IPV6_MULTIPLE_TABLES #ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.ip6_prohibit_entry->dst.dev = dev; net->ipv6.ip6_prohibit_entry->dst.dev = dev;
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
#endif #endif
@@ -6025,6 +6058,7 @@ static int ip6_route_dev_notify(struct n @@ -6027,6 +6060,7 @@ static int ip6_route_dev_notify(struct n
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev); in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES #ifdef CONFIG_IPV6_MULTIPLE_TABLES
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev); in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev); in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
#endif #endif
} }
@@ -6217,6 +6251,8 @@ static int __net_init ip6_route_net_init @@ -6219,6 +6253,8 @@ static int __net_init ip6_route_net_init
#ifdef CONFIG_IPV6_MULTIPLE_TABLES #ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.fib6_has_custom_rules = false; net->ipv6.fib6_has_custom_rules = false;
@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template, net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
sizeof(*net->ipv6.ip6_prohibit_entry), sizeof(*net->ipv6.ip6_prohibit_entry),
GFP_KERNEL); GFP_KERNEL);
@@ -6227,11 +6263,21 @@ static int __net_init ip6_route_net_init @@ -6229,11 +6265,21 @@ static int __net_init ip6_route_net_init
ip6_template_metrics, true); ip6_template_metrics, true);
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached); INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
ip6_template_metrics, true); ip6_template_metrics, true);
@@ -6255,6 +6301,8 @@ out: @@ -6257,6 +6303,8 @@ out:
return ret; return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
out_ip6_prohibit_entry: out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry); kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry: out_ip6_null_entry:
@@ -6274,6 +6322,7 @@ static void __net_exit ip6_route_net_exi @@ -6276,6 +6324,7 @@ static void __net_exit ip6_route_net_exi
kfree(net->ipv6.ip6_null_entry); kfree(net->ipv6.ip6_null_entry);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES #ifdef CONFIG_IPV6_MULTIPLE_TABLES
kfree(net->ipv6.ip6_prohibit_entry); kfree(net->ipv6.ip6_prohibit_entry);
@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
kfree(net->ipv6.ip6_blk_hole_entry); kfree(net->ipv6.ip6_blk_hole_entry);
#endif #endif
dst_entries_destroy(&net->ipv6.ip6_dst_ops); dst_entries_destroy(&net->ipv6.ip6_dst_ops);
@@ -6351,6 +6400,9 @@ void __init ip6_route_init_special_entri @@ -6353,6 +6402,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_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->dst.dev = init_net.loopback_dev;
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);

View File

@ -13,7 +13,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
--- a/init/Kconfig --- a/init/Kconfig
+++ b/init/Kconfig +++ b/init/Kconfig
@@ -1680,6 +1680,15 @@ config EMBEDDED @@ -1662,6 +1662,15 @@ config EMBEDDED
an embedded system so certain expert options are available an embedded system so certain expert options are available
for configuration. for configuration.

View File

@ -101,7 +101,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
} }
/* For each FQ, decide on which core to process incoming frames */ /* For each FQ, decide on which core to process incoming frames */
@@ -2694,7 +2699,7 @@ static int setup_rx_flow(struct dpaa2_et @@ -2699,7 +2704,7 @@ static int setup_rx_flow(struct dpaa2_et
int err; int err;
err = dpni_get_queue(priv->mc_io, 0, priv->mc_token, err = dpni_get_queue(priv->mc_io, 0, priv->mc_token,
@ -110,7 +110,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
if (err) { if (err) {
dev_err(dev, "dpni_get_queue(RX) failed\n"); dev_err(dev, "dpni_get_queue(RX) failed\n");
return err; return err;
@@ -2707,7 +2712,7 @@ static int setup_rx_flow(struct dpaa2_et @@ -2712,7 +2717,7 @@ static int setup_rx_flow(struct dpaa2_et
queue.destination.priority = 1; queue.destination.priority = 1;
queue.user_context = (u64)(uintptr_t)fq; queue.user_context = (u64)(uintptr_t)fq;
err = dpni_set_queue(priv->mc_io, 0, priv->mc_token, err = dpni_set_queue(priv->mc_io, 0, priv->mc_token,
@ -119,7 +119,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
DPNI_QUEUE_OPT_USER_CTX | DPNI_QUEUE_OPT_DEST, DPNI_QUEUE_OPT_USER_CTX | DPNI_QUEUE_OPT_DEST,
&queue); &queue);
if (err) { if (err) {
@@ -2716,6 +2721,10 @@ static int setup_rx_flow(struct dpaa2_et @@ -2721,6 +2726,10 @@ static int setup_rx_flow(struct dpaa2_et
} }
/* xdp_rxq setup */ /* xdp_rxq setup */
@ -130,7 +130,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
err = xdp_rxq_info_reg(&fq->channel->xdp_rxq, priv->net_dev, err = xdp_rxq_info_reg(&fq->channel->xdp_rxq, priv->net_dev,
fq->flowid); fq->flowid);
if (err) { if (err) {
@@ -2853,7 +2862,7 @@ static int config_legacy_hash_key(struct @@ -2858,7 +2867,7 @@ static int config_legacy_hash_key(struct
{ {
struct device *dev = priv->net_dev->dev.parent; struct device *dev = priv->net_dev->dev.parent;
struct dpni_rx_tc_dist_cfg dist_cfg; struct dpni_rx_tc_dist_cfg dist_cfg;
@ -139,7 +139,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
memset(&dist_cfg, 0, sizeof(dist_cfg)); memset(&dist_cfg, 0, sizeof(dist_cfg));
@@ -2861,9 +2870,14 @@ static int config_legacy_hash_key(struct @@ -2866,9 +2875,14 @@ static int config_legacy_hash_key(struct
dist_cfg.dist_size = dpaa2_eth_queue_count(priv); dist_cfg.dist_size = dpaa2_eth_queue_count(priv);
dist_cfg.dist_mode = DPNI_DIST_MODE_HASH; dist_cfg.dist_mode = DPNI_DIST_MODE_HASH;
@ -157,7 +157,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
return err; return err;
} }
@@ -2873,7 +2887,7 @@ static int config_hash_key(struct dpaa2_ @@ -2878,7 +2892,7 @@ static int config_hash_key(struct dpaa2_
{ {
struct device *dev = priv->net_dev->dev.parent; struct device *dev = priv->net_dev->dev.parent;
struct dpni_rx_dist_cfg dist_cfg; struct dpni_rx_dist_cfg dist_cfg;
@ -166,7 +166,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
memset(&dist_cfg, 0, sizeof(dist_cfg)); memset(&dist_cfg, 0, sizeof(dist_cfg));
@@ -2881,9 +2895,15 @@ static int config_hash_key(struct dpaa2_ @@ -2886,9 +2900,15 @@ static int config_hash_key(struct dpaa2_
dist_cfg.dist_size = dpaa2_eth_queue_count(priv); dist_cfg.dist_size = dpaa2_eth_queue_count(priv);
dist_cfg.enable = 1; dist_cfg.enable = 1;
@ -185,7 +185,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
return err; return err;
} }
@@ -2893,7 +2913,7 @@ static int config_cls_key(struct dpaa2_e @@ -2898,7 +2918,7 @@ static int config_cls_key(struct dpaa2_e
{ {
struct device *dev = priv->net_dev->dev.parent; struct device *dev = priv->net_dev->dev.parent;
struct dpni_rx_dist_cfg dist_cfg; struct dpni_rx_dist_cfg dist_cfg;
@ -194,7 +194,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
memset(&dist_cfg, 0, sizeof(dist_cfg)); memset(&dist_cfg, 0, sizeof(dist_cfg));
@@ -2901,9 +2921,15 @@ static int config_cls_key(struct dpaa2_e @@ -2906,9 +2926,15 @@ static int config_cls_key(struct dpaa2_e
dist_cfg.dist_size = dpaa2_eth_queue_count(priv); dist_cfg.dist_size = dpaa2_eth_queue_count(priv);
dist_cfg.enable = 1; dist_cfg.enable = 1;

View File

@ -18,7 +18,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
@@ -2603,6 +2603,118 @@ out_err: @@ -2608,6 +2608,118 @@ out_err:
priv->enqueue = dpaa2_eth_enqueue_qd; priv->enqueue = dpaa2_eth_enqueue_qd;
} }
@ -137,7 +137,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
/* Configure the DPNI object this interface is associated with */ /* Configure the DPNI object this interface is associated with */
static int setup_dpni(struct fsl_mc_device *ls_dev) static int setup_dpni(struct fsl_mc_device *ls_dev)
{ {
@@ -2665,6 +2777,10 @@ static int setup_dpni(struct fsl_mc_devi @@ -2670,6 +2782,10 @@ static int setup_dpni(struct fsl_mc_devi
goto close; goto close;
} }
@ -150,7 +150,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
if (!priv->cls_rules) if (!priv->cls_rules)
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
@@ -413,6 +413,7 @@ struct dpaa2_eth_priv { @@ -414,6 +414,7 @@ struct dpaa2_eth_priv {
u64 rx_cls_fields; u64 rx_cls_fields;
struct dpaa2_eth_cls_rule *cls_rules; struct dpaa2_eth_cls_rule *cls_rules;
u8 rx_cls_enabled; u8 rx_cls_enabled;

View File

@ -27,7 +27,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
/* Chech link state; speed / duplex changes are not treated yet */ /* Chech link state; speed / duplex changes are not treated yet */
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
@@ -494,6 +494,17 @@ enum dpaa2_eth_rx_dist { @@ -495,6 +495,17 @@ enum dpaa2_eth_rx_dist {
(dpaa2_eth_cmp_dpni_ver((priv), DPNI_PAUSE_VER_MAJOR, \ (dpaa2_eth_cmp_dpni_ver((priv), DPNI_PAUSE_VER_MAJOR, \
DPNI_PAUSE_VER_MINOR) >= 0) DPNI_PAUSE_VER_MINOR) >= 0)

View File

@ -33,7 +33,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
depends on FSL_DPAA2_ETH && PTP_1588_CLOCK_QORIQ depends on FSL_DPAA2_ETH && PTP_1588_CLOCK_QORIQ
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
@@ -3607,6 +3607,81 @@ static void del_ch_napi(struct dpaa2_eth @@ -3612,6 +3612,81 @@ static void del_ch_napi(struct dpaa2_eth
} }
} }
@ -115,7 +115,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
static int dpaa2_eth_probe(struct fsl_mc_device *dpni_dev) static int dpaa2_eth_probe(struct fsl_mc_device *dpni_dev)
{ {
struct device *dev; struct device *dev;
@@ -3696,6 +3771,15 @@ static int dpaa2_eth_probe(struct fsl_mc @@ -3701,6 +3776,15 @@ static int dpaa2_eth_probe(struct fsl_mc
if (err) if (err)
goto err_alloc_rings; goto err_alloc_rings;
@ -141,7 +141,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/if_vlan.h> #include <linux/if_vlan.h>
#include <linux/fsl/mc.h> #include <linux/fsl/mc.h>
@@ -422,6 +423,10 @@ struct dpaa2_eth_priv { @@ -423,6 +424,10 @@ struct dpaa2_eth_priv {
struct dpaa2_eth_cls_rule *cls_rules; struct dpaa2_eth_cls_rule *cls_rules;
u8 rx_cls_enabled; u8 rx_cls_enabled;
u8 vlan_cls_enabled; u8 vlan_cls_enabled;

View File

@ -26,7 +26,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
@@ -3613,6 +3613,9 @@ static int dpaa2_eth_dcbnl_ieee_getpfc(s @@ -3618,6 +3618,9 @@ static int dpaa2_eth_dcbnl_ieee_getpfc(s
{ {
struct dpaa2_eth_priv *priv = netdev_priv(net_dev); struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
@ -36,7 +36,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
memcpy(pfc, &priv->pfc, sizeof(priv->pfc)); memcpy(pfc, &priv->pfc, sizeof(priv->pfc));
pfc->pfc_cap = dpaa2_eth_tc_count(priv); pfc->pfc_cap = dpaa2_eth_tc_count(priv);
@@ -3623,6 +3626,8 @@ static int dpaa2_eth_dcbnl_ieee_setpfc(s @@ -3628,6 +3631,8 @@ static int dpaa2_eth_dcbnl_ieee_setpfc(s
struct ieee_pfc *pfc) struct ieee_pfc *pfc)
{ {
struct dpaa2_eth_priv *priv = netdev_priv(net_dev); struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
@ -45,7 +45,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
if (pfc->mbc || pfc->delay) if (pfc->mbc || pfc->delay)
return -EOPNOTSUPP; return -EOPNOTSUPP;
@@ -3631,6 +3636,24 @@ static int dpaa2_eth_dcbnl_ieee_setpfc(s @@ -3636,6 +3641,24 @@ static int dpaa2_eth_dcbnl_ieee_setpfc(s
if (priv->pfc.pfc_en == pfc->pfc_en) if (priv->pfc.pfc_en == pfc->pfc_en)
return 0; return 0;

View File

@ -19,7 +19,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
@@ -3622,6 +3622,47 @@ static int dpaa2_eth_dcbnl_ieee_getpfc(s @@ -3627,6 +3627,47 @@ static int dpaa2_eth_dcbnl_ieee_getpfc(s
return 0; return 0;
} }
@ -67,7 +67,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
static int dpaa2_eth_dcbnl_ieee_setpfc(struct net_device *net_dev, static int dpaa2_eth_dcbnl_ieee_setpfc(struct net_device *net_dev,
struct ieee_pfc *pfc) struct ieee_pfc *pfc)
{ {
@@ -3639,7 +3680,8 @@ static int dpaa2_eth_dcbnl_ieee_setpfc(s @@ -3644,7 +3685,8 @@ static int dpaa2_eth_dcbnl_ieee_setpfc(s
/* We allow PFC configuration even if it won't have any effect until /* We allow PFC configuration even if it won't have any effect until
* general pause frames are enabled * general pause frames are enabled
*/ */
@ -77,7 +77,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
netdev_warn(net_dev, "Pause support must be enabled in order for PFC to work!\n"); netdev_warn(net_dev, "Pause support must be enabled in order for PFC to work!\n");
link_cfg.rate = priv->link_state.rate; link_cfg.rate = priv->link_state.rate;
@@ -3654,6 +3696,11 @@ static int dpaa2_eth_dcbnl_ieee_setpfc(s @@ -3659,6 +3701,11 @@ static int dpaa2_eth_dcbnl_ieee_setpfc(s
return err; return err;
} }

View File

@ -87,7 +87,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
/* Chech link state; speed / duplex changes are not treated yet */ /* Chech link state; speed / duplex changes are not treated yet */
if (priv->link_state.up == state.up) if (priv->link_state.up == state.up)
@@ -3668,6 +3683,7 @@ static int dpaa2_eth_dcbnl_ieee_setpfc(s @@ -3673,6 +3688,7 @@ static int dpaa2_eth_dcbnl_ieee_setpfc(s
{ {
struct dpaa2_eth_priv *priv = netdev_priv(net_dev); struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
struct dpni_link_cfg link_cfg = {0}; struct dpni_link_cfg link_cfg = {0};
@ -95,7 +95,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
int err; int err;
if (pfc->mbc || pfc->delay) if (pfc->mbc || pfc->delay)
@@ -3680,8 +3696,8 @@ static int dpaa2_eth_dcbnl_ieee_setpfc(s @@ -3685,8 +3701,8 @@ static int dpaa2_eth_dcbnl_ieee_setpfc(s
/* We allow PFC configuration even if it won't have any effect until /* We allow PFC configuration even if it won't have any effect until
* general pause frames are enabled * general pause frames are enabled
*/ */
@ -106,7 +106,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
netdev_warn(net_dev, "Pause support must be enabled in order for PFC to work!\n"); netdev_warn(net_dev, "Pause support must be enabled in order for PFC to work!\n");
link_cfg.rate = priv->link_state.rate; link_cfg.rate = priv->link_state.rate;
@@ -3702,6 +3718,9 @@ static int dpaa2_eth_dcbnl_ieee_setpfc(s @@ -3707,6 +3723,9 @@ static int dpaa2_eth_dcbnl_ieee_setpfc(s
return err; return err;
memcpy(&priv->pfc, pfc, sizeof(priv->pfc)); memcpy(&priv->pfc, pfc, sizeof(priv->pfc));
@ -118,7 +118,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
} }
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
@@ -422,7 +422,8 @@ struct dpaa2_eth_priv { @@ -423,7 +423,8 @@ struct dpaa2_eth_priv {
struct dpaa2_eth_drv_stats __percpu *percpu_extras; struct dpaa2_eth_drv_stats __percpu *percpu_extras;
u16 mc_token; u16 mc_token;
@ -128,7 +128,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
struct dpni_link_state link_state; struct dpni_link_state link_state;
bool do_link_poll; bool do_link_poll;
@@ -434,6 +435,7 @@ struct dpaa2_eth_priv { @@ -435,6 +436,7 @@ struct dpaa2_eth_priv {
struct dpaa2_eth_cls_rule *cls_rules; struct dpaa2_eth_cls_rule *cls_rules;
u8 rx_cls_enabled; u8 rx_cls_enabled;
u8 vlan_cls_enabled; u8 vlan_cls_enabled;

View File

@ -19,7 +19,7 @@ Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
@@ -3771,6 +3771,83 @@ const struct dcbnl_rtnl_ops dpaa2_eth_dc @@ -3776,6 +3776,83 @@ const struct dcbnl_rtnl_ops dpaa2_eth_dc
}; };
#endif #endif
@ -103,7 +103,7 @@ Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
static int dpaa2_eth_probe(struct fsl_mc_device *dpni_dev) static int dpaa2_eth_probe(struct fsl_mc_device *dpni_dev)
{ {
struct device *dev; struct device *dev;
@@ -3890,6 +3967,7 @@ static int dpaa2_eth_probe(struct fsl_mc @@ -3895,6 +3972,7 @@ static int dpaa2_eth_probe(struct fsl_mc
#ifdef CONFIG_DEBUG_FS #ifdef CONFIG_DEBUG_FS
dpaa2_dbg_add(priv); dpaa2_dbg_add(priv);
#endif #endif
@ -111,7 +111,7 @@ Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
dev_info(dev, "Probed interface %s\n", net_dev->name); dev_info(dev, "Probed interface %s\n", net_dev->name);
return 0; return 0;
@@ -3937,6 +4015,8 @@ static int dpaa2_eth_remove(struct fsl_m @@ -3942,6 +4020,8 @@ static int dpaa2_eth_remove(struct fsl_m
#ifdef CONFIG_DEBUG_FS #ifdef CONFIG_DEBUG_FS
dpaa2_dbg_remove(priv); dpaa2_dbg_remove(priv);
#endif #endif
@ -132,7 +132,7 @@ Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
/* Maximum number of Tx confirmation frames to be processed /* Maximum number of Tx confirmation frames to be processed
* in a single NAPI call * in a single NAPI call
*/ */
@@ -444,6 +447,7 @@ struct dpaa2_eth_priv { @@ -445,6 +448,7 @@ struct dpaa2_eth_priv {
#ifdef CONFIG_DEBUG_FS #ifdef CONFIG_DEBUG_FS
struct dpaa2_debugfs dbg; struct dpaa2_debugfs dbg;
#endif #endif

View File

@ -113,7 +113,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
/* For each FQ, decide on which core to process incoming frames */ /* For each FQ, decide on which core to process incoming frames */
set_fq_affinity(priv); set_fq_affinity(priv);
} }
@@ -2939,6 +2993,40 @@ static int setup_tx_flow(struct dpaa2_et @@ -2944,6 +2998,40 @@ static int setup_tx_flow(struct dpaa2_et
return 0; return 0;
} }
@ -154,7 +154,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
/* Supported header fields for Rx hash distribution key */ /* Supported header fields for Rx hash distribution key */
static const struct dpaa2_eth_dist_fields dist_fields[] = { static const struct dpaa2_eth_dist_fields dist_fields[] = {
{ {
@@ -3308,7 +3396,11 @@ static int bind_dpni(struct dpaa2_eth_pr @@ -3313,7 +3401,11 @@ static int bind_dpni(struct dpaa2_eth_pr
/* Configure handling of error frames */ /* Configure handling of error frames */
err_cfg.errors = DPAA2_FAS_RX_ERR_MASK; err_cfg.errors = DPAA2_FAS_RX_ERR_MASK;
err_cfg.set_frame_annotation = 1; err_cfg.set_frame_annotation = 1;
@ -166,7 +166,7 @@ Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
err = dpni_set_errors_behavior(priv->mc_io, 0, priv->mc_token, err = dpni_set_errors_behavior(priv->mc_io, 0, priv->mc_token,
&err_cfg); &err_cfg);
if (err) { if (err) {
@@ -3325,6 +3417,11 @@ static int bind_dpni(struct dpaa2_eth_pr @@ -3330,6 +3422,11 @@ static int bind_dpni(struct dpaa2_eth_pr
case DPAA2_TX_CONF_FQ: case DPAA2_TX_CONF_FQ:
err = setup_tx_flow(priv, &priv->fq[i]); err = setup_tx_flow(priv, &priv->fq[i]);
break; break;

View File

@ -15,7 +15,7 @@ Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
@@ -3888,7 +3888,7 @@ static ssize_t dpaa2_eth_write_tx_shapin @@ -3893,7 +3893,7 @@ static ssize_t dpaa2_eth_write_tx_shapin
{ {
int err, items; int err, items;
struct dpaa2_eth_priv *priv = netdev_priv(to_net_dev(dev)); struct dpaa2_eth_priv *priv = netdev_priv(to_net_dev(dev));
@ -24,7 +24,7 @@ Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
items = sscanf(buf, "%u %hu", &scfg.rate_limit, &scfg.max_burst_size); items = sscanf(buf, "%u %hu", &scfg.rate_limit, &scfg.max_burst_size);
if (items != 2) { if (items != 2) {
@@ -3902,7 +3902,8 @@ static ssize_t dpaa2_eth_write_tx_shapin @@ -3907,7 +3907,8 @@ static ssize_t dpaa2_eth_write_tx_shapin
return -EINVAL; return -EINVAL;
} }

View File

@ -1561,7 +1561,7 @@ Signed-off-by: Camelia Groza <camelia.groza@nxp.com>
static const struct net_device_ops dpaa2_eth_ops = { static const struct net_device_ops dpaa2_eth_ops = {
.ndo_open = dpaa2_eth_open, .ndo_open = dpaa2_eth_open,
.ndo_start_xmit = dpaa2_eth_tx, .ndo_start_xmit = dpaa2_eth_tx,
@@ -4166,18 +4186,27 @@ static int __init dpaa2_eth_driver_init( @@ -4171,18 +4191,27 @@ static int __init dpaa2_eth_driver_init(
dpaa2_eth_dbg_init(); dpaa2_eth_dbg_init();
err = fsl_mc_driver_register(&dpaa2_eth_driver); err = fsl_mc_driver_register(&dpaa2_eth_driver);
@ -1596,7 +1596,7 @@ Signed-off-by: Camelia Groza <camelia.groza@nxp.com>
module_init(dpaa2_eth_driver_init); module_init(dpaa2_eth_driver_init);
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
@@ -453,6 +453,8 @@ struct dpaa2_eth_priv { @@ -454,6 +454,8 @@ struct dpaa2_eth_priv {
struct dpaa2_debugfs dbg; struct dpaa2_debugfs dbg;
#endif #endif
struct dpni_tx_shaping_cfg shaping_cfg; struct dpni_tx_shaping_cfg shaping_cfg;
@ -1605,7 +1605,7 @@ Signed-off-by: Camelia Groza <camelia.groza@nxp.com>
}; };
#define DPAA2_RXH_SUPPORTED (RXH_L2DA | RXH_VLAN | RXH_L3_PROTO \ #define DPAA2_RXH_SUPPORTED (RXH_L2DA | RXH_VLAN | RXH_L3_PROTO \
@@ -573,6 +575,11 @@ static inline unsigned int dpaa2_eth_rx_ @@ -574,6 +576,11 @@ static inline unsigned int dpaa2_eth_rx_
return priv->tx_data_offset - DPAA2_ETH_RX_HWA_SIZE; return priv->tx_data_offset - DPAA2_ETH_RX_HWA_SIZE;
} }

View File

@ -36,7 +36,7 @@ Signed-off-by: Valentin Catalin Neacsu <valentin-catalin.neacsu@nxp.com>
"dpni_get_link_state() failed\n"); "dpni_get_link_state() failed\n");
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
@@ -542,6 +542,9 @@ static inline bool dpaa2_eth_rx_pause_en @@ -543,6 +543,9 @@ static inline bool dpaa2_eth_rx_pause_en
return !!(link_options & DPNI_LINK_OPT_PAUSE); return !!(link_options & DPNI_LINK_OPT_PAUSE);
} }

View File

@ -54,7 +54,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
* All 3.1 IP version constants are greater than the 3.0 IP * All 3.1 IP version constants are greater than the 3.0 IP
--- a/drivers/usb/dwc3/gadget.c --- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c
@@ -3392,6 +3392,10 @@ int dwc3_gadget_init(struct dwc3 *dwc) @@ -3389,6 +3389,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
dwc->gadget.sg_supported = true; dwc->gadget.sg_supported = true;
dwc->gadget.name = "dwc3-gadget"; dwc->gadget.name = "dwc3-gadget";
dwc->gadget.lpm_capable = true; dwc->gadget.lpm_capable = true;

View File

@ -20,7 +20,7 @@ Signed-off-by: Li Jun <jun.li@freescale.com>
--- a/drivers/usb/core/hub.c --- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c
@@ -4728,7 +4728,8 @@ hub_port_init(struct usb_hub *hub, struc @@ -4729,7 +4729,8 @@ hub_port_init(struct usb_hub *hub, struc
} }
if (r) { if (r) {
if (r != -ENODEV) if (r != -ENODEV)