kernel: bump 4.14 to 4.14.27

* Refreshed patches.
* Deleted 812-pci-dwc-fix-enumeration.patch (was accepted upstream)

Compile-tested: ramips/mt7621, x86/64
Run-tested: ramips/mt7621, x86/64

Signed-off-by: Stijn Segers <foss@volatilesystems.org>
This commit is contained in:
Stijn Segers 2018-03-15 22:00:08 +01:00 committed by Hauke Mehrtens
parent 895ea64a76
commit 9899ffcfd3
18 changed files with 38 additions and 98 deletions

View file

@ -5,12 +5,12 @@ LINUX_RELEASE?=1
LINUX_VERSION-3.18 = .71 LINUX_VERSION-3.18 = .71
LINUX_VERSION-4.4 = .121 LINUX_VERSION-4.4 = .121
LINUX_VERSION-4.9 = .87 LINUX_VERSION-4.9 = .87
LINUX_VERSION-4.14 = .25 LINUX_VERSION-4.14 = .27
LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240 LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
LINUX_KERNEL_HASH-4.4.121 = 44a88268b5088dc326b30c9b9133ac35a9a200b636b7268d08f32abeae6ca729 LINUX_KERNEL_HASH-4.4.121 = 44a88268b5088dc326b30c9b9133ac35a9a200b636b7268d08f32abeae6ca729
LINUX_KERNEL_HASH-4.9.87 = 7ac9f6af69dc5a7e38bf35cc3fa889e3a4b22504a85f57fdc87734a8abe4c917 LINUX_KERNEL_HASH-4.9.87 = 7ac9f6af69dc5a7e38bf35cc3fa889e3a4b22504a85f57fdc87734a8abe4c917
LINUX_KERNEL_HASH-4.14.25 = 6dcfbf79c068e51c1b06edb1ce58ddc9ca351f862bf2a144e96106ec3f21e587 LINUX_KERNEL_HASH-4.14.27 = 0911a449c71a06c7232ece07dfcc041bd07efaf7e67799b9e2d0cf4bd9a028ea
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

@ -52,9 +52,9 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
cur_offset = slave->offset + slave->mtd.size; cur_offset = slave->offset + slave->mtd.size;
} }
@@ -1162,7 +1161,9 @@ int parse_mtd_partitions(struct mtd_info @@ -1134,7 +1133,9 @@ static int mtd_part_of_parse(struct mtd_
types = types_of; const char *fixed = "fixed-partitions";
} int ret, err = 0;
- np = of_get_child_by_name(mtd_get_of_node(master), "partitions"); - np = of_get_child_by_name(mtd_get_of_node(master), "partitions");
+ np = mtd_get_of_node(master); + np = mtd_get_of_node(master);
@ -63,9 +63,9 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
of_property_for_each_string(np, "compatible", prop, compat) { of_property_for_each_string(np, "compatible", prop, compat) {
parser = mtd_part_get_compatible_parser(compat); parser = mtd_part_get_compatible_parser(compat);
if (!parser) if (!parser)
@@ -1178,8 +1179,12 @@ int parse_mtd_partitions(struct mtd_info @@ -1206,8 +1207,12 @@ int parse_mtd_partitions(struct mtd_info
types = types_of;
} }
of_node_put(np);
- if (!types) - if (!types)
+ if (!types) { + if (!types) {
@ -76,4 +76,4 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
+ } + }
for ( ; *types; types++) { for ( ; *types; types++) {
pr_debug("%s: parsing partitions %s\n", master->name, *types); /*

View file

@ -10,10 +10,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -410,8 +410,8 @@ KERNELRELEASE = $(shell cat include/conf @@ -433,8 +433,8 @@ KBUILD_CFLAGS_MODULE := -DMODULE
KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION) KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds
GCC_PLUGINS_CFLAGS :=
export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION
-export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC -export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC
-export CPP AR NM STRIP OBJCOPY OBJDUMP HOSTLDFLAGS HOST_LOADLIBES -export CPP AR NM STRIP OBJCOPY OBJDUMP HOSTLDFLAGS HOST_LOADLIBES
+export ARCH SRCARCH SUBARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD +export ARCH SRCARCH SUBARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD

View file

@ -116,7 +116,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
.saveroute = nf_ip_saveroute, .saveroute = nf_ip_saveroute,
--- a/net/ipv6/netfilter.c --- a/net/ipv6/netfilter.c
+++ b/net/ipv6/netfilter.c +++ b/net/ipv6/netfilter.c
@@ -192,12 +192,12 @@ static __sum16 nf_ip6_checksum_partial(s @@ -193,12 +193,12 @@ static __sum16 nf_ip6_checksum_partial(s
static const struct nf_ipv6_ops ipv6ops = { static const struct nf_ipv6_ops ipv6ops = {
.chk_addr = ipv6_chk_addr, .chk_addr = ipv6_chk_addr,
.route_input = ip6_route_input, .route_input = ip6_route_input,

View file

@ -151,7 +151,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
.reroute = nf_ip_reroute, .reroute = nf_ip_reroute,
--- a/net/ipv6/netfilter.c --- a/net/ipv6/netfilter.c
+++ b/net/ipv6/netfilter.c +++ b/net/ipv6/netfilter.c
@@ -190,15 +190,15 @@ static __sum16 nf_ip6_checksum_partial(s @@ -191,15 +191,15 @@ static __sum16 nf_ip6_checksum_partial(s
}; };
static const struct nf_ipv6_ops ipv6ops = { static const struct nf_ipv6_ops ipv6ops = {

View file

@ -125,7 +125,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
}; };
--- a/net/ipv6/netfilter.c --- a/net/ipv6/netfilter.c
+++ b/net/ipv6/netfilter.c +++ b/net/ipv6/netfilter.c
@@ -68,31 +68,6 @@ int ip6_route_me_harder(struct net *net, @@ -69,31 +69,6 @@ int ip6_route_me_harder(struct net *net,
} }
EXPORT_SYMBOL(ip6_route_me_harder); EXPORT_SYMBOL(ip6_route_me_harder);
@ -157,7 +157,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
static int nf_ip6_reroute(struct net *net, struct sk_buff *skb, static int nf_ip6_reroute(struct net *net, struct sk_buff *skb,
const struct nf_queue_entry *entry) const struct nf_queue_entry *entry)
{ {
@@ -200,7 +175,6 @@ static const struct nf_ipv6_ops ipv6ops @@ -201,7 +176,6 @@ static const struct nf_ipv6_ops ipv6ops
static const struct nf_afinfo nf_ip6_afinfo = { static const struct nf_afinfo nf_ip6_afinfo = {
.family = AF_INET6, .family = AF_INET6,
.route = nf_ip6_route, .route = nf_ip6_route,

View file

@ -114,7 +114,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
}; };
--- a/net/ipv6/netfilter.c --- a/net/ipv6/netfilter.c
+++ b/net/ipv6/netfilter.c +++ b/net/ipv6/netfilter.c
@@ -170,11 +170,11 @@ static const struct nf_ipv6_ops ipv6ops @@ -171,11 +171,11 @@ static const struct nf_ipv6_ops ipv6ops
.fragment = ip6_fragment, .fragment = ip6_fragment,
.checksum = nf_ip6_checksum, .checksum = nf_ip6_checksum,
.checksum_partial = nf_ip6_checksum_partial, .checksum_partial = nf_ip6_checksum_partial,

View file

@ -138,7 +138,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
--- a/net/ipv6/netfilter.c --- a/net/ipv6/netfilter.c
+++ b/net/ipv6/netfilter.c +++ b/net/ipv6/netfilter.c
@@ -68,7 +68,7 @@ int ip6_route_me_harder(struct net *net, @@ -69,7 +69,7 @@ int ip6_route_me_harder(struct net *net,
} }
EXPORT_SYMBOL(ip6_route_me_harder); EXPORT_SYMBOL(ip6_route_me_harder);
@ -147,7 +147,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
const struct nf_queue_entry *entry) const struct nf_queue_entry *entry)
{ {
struct ip6_rt_info *rt_info = nf_queue_entry_reroute(entry); struct ip6_rt_info *rt_info = nf_queue_entry_reroute(entry);
@@ -78,7 +78,7 @@ static int nf_ip6_reroute(struct net *ne @@ -79,7 +79,7 @@ static int nf_ip6_reroute(struct net *ne
if (!ipv6_addr_equal(&iph->daddr, &rt_info->daddr) || if (!ipv6_addr_equal(&iph->daddr, &rt_info->daddr) ||
!ipv6_addr_equal(&iph->saddr, &rt_info->saddr) || !ipv6_addr_equal(&iph->saddr, &rt_info->saddr) ||
skb->mark != rt_info->mark) skb->mark != rt_info->mark)
@ -156,7 +156,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
} }
return 0; return 0;
} }
@@ -171,11 +171,11 @@ static const struct nf_ipv6_ops ipv6ops @@ -172,11 +172,11 @@ static const struct nf_ipv6_ops ipv6ops
.checksum = nf_ip6_checksum, .checksum = nf_ip6_checksum,
.checksum_partial = nf_ip6_checksum_partial, .checksum_partial = nf_ip6_checksum_partial,
.route = nf_ip6_route, .route = nf_ip6_route,

View file

@ -29,7 +29,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
static int __init ipv4_netfilter_init(void) static int __init ipv4_netfilter_init(void)
--- a/net/ipv6/netfilter.c --- a/net/ipv6/netfilter.c
+++ b/net/ipv6/netfilter.c +++ b/net/ipv6/netfilter.c
@@ -176,7 +176,6 @@ static const struct nf_ipv6_ops ipv6ops @@ -177,7 +177,6 @@ static const struct nf_ipv6_ops ipv6ops
static const struct nf_afinfo nf_ip6_afinfo = { static const struct nf_afinfo nf_ip6_afinfo = {
.family = AF_INET6, .family = AF_INET6,

View file

@ -102,7 +102,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-subsys_initcall(ipv4_netfilter_init); -subsys_initcall(ipv4_netfilter_init);
--- a/net/ipv6/netfilter.c --- a/net/ipv6/netfilter.c
+++ b/net/ipv6/netfilter.c +++ b/net/ipv6/netfilter.c
@@ -174,14 +174,10 @@ static const struct nf_ipv6_ops ipv6ops @@ -175,14 +175,10 @@ static const struct nf_ipv6_ops ipv6ops
.reroute = nf_ip6_reroute, .reroute = nf_ip6_reroute,
}; };
@ -118,7 +118,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
} }
/* This can be called from inet6_init() on errors, so it cannot /* This can be called from inet6_init() on errors, so it cannot
@@ -190,5 +186,4 @@ int __init ipv6_netfilter_init(void) @@ -191,5 +187,4 @@ int __init ipv6_netfilter_init(void)
void ipv6_netfilter_fini(void) void ipv6_netfilter_fini(void)
{ {
RCU_INIT_POINTER(nf_ipv6_ops, NULL); RCU_INIT_POINTER(nf_ipv6_ops, NULL);

View file

@ -196,7 +196,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
--- a/net/ipv6/netfilter/nf_nat_l3proto_ipv6.c --- a/net/ipv6/netfilter/nf_nat_l3proto_ipv6.c
+++ b/net/ipv6/netfilter/nf_nat_l3proto_ipv6.c +++ b/net/ipv6/netfilter/nf_nat_l3proto_ipv6.c
@@ -368,10 +368,6 @@ nf_nat_ipv6_out(void *priv, struct sk_bu @@ -372,10 +372,6 @@ nf_nat_ipv6_out(void *priv, struct sk_bu
#endif #endif
unsigned int ret; unsigned int ret;
@ -207,7 +207,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
ret = nf_nat_ipv6_fn(priv, skb, state, do_chain); ret = nf_nat_ipv6_fn(priv, skb, state, do_chain);
#ifdef CONFIG_XFRM #ifdef CONFIG_XFRM
if (ret != NF_DROP && ret != NF_STOLEN && if (ret != NF_DROP && ret != NF_STOLEN &&
@@ -407,10 +403,6 @@ nf_nat_ipv6_local_fn(void *priv, struct @@ -411,10 +407,6 @@ nf_nat_ipv6_local_fn(void *priv, struct
unsigned int ret; unsigned int ret;
int err; int err;

View file

@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -402,7 +402,7 @@ KBUILD_AFLAGS_KERNEL := @@ -430,7 +430,7 @@ KBUILD_AFLAGS_KERNEL :=
KBUILD_CFLAGS_KERNEL := KBUILD_CFLAGS_KERNEL :=
KBUILD_AFLAGS_MODULE := -DMODULE KBUILD_AFLAGS_MODULE := -DMODULE
KBUILD_CFLAGS_MODULE := -DMODULE KBUILD_CFLAGS_MODULE := -DMODULE
@ -21,4 +21,4 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+KBUILD_LDFLAGS_MODULE = -T $(srctree)/scripts/module-common.lds $(if $(CONFIG_PROFILING),,-s) +KBUILD_LDFLAGS_MODULE = -T $(srctree)/scripts/module-common.lds $(if $(CONFIG_PROFILING),,-s)
GCC_PLUGINS_CFLAGS := GCC_PLUGINS_CFLAGS :=
# Read KERNELRELEASE from include/config/kernel.release (if it exists) export ARCH SRCARCH SUBARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD

View file

@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -1213,7 +1213,6 @@ all: modules @@ -1224,7 +1224,6 @@ all: modules
PHONY += modules PHONY += modules
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
@$(kecho) ' Building modules, stage 2.'; @$(kecho) ' Building modules, stage 2.';
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
@@ -1242,7 +1241,6 @@ _modinst_: @@ -1253,7 +1252,6 @@ _modinst_:
rm -f $(MODLIB)/build ; \ rm -f $(MODLIB)/build ; \
ln -s $(CURDIR) $(MODLIB)/build ; \ ln -s $(CURDIR) $(MODLIB)/build ; \
fi fi

View file

@ -21,9 +21,9 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -405,6 +405,11 @@ KBUILD_CFLAGS_MODULE := -DMODULE @@ -272,6 +272,11 @@ else
KBUILD_LDFLAGS_MODULE = -T $(srctree)/scripts/module-common.lds $(if $(CONFIG_PROFILING),,-s) scripts/Kbuild.include: ;
GCC_PLUGINS_CFLAGS := include scripts/Kbuild.include
+ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION +ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
+KBUILD_CFLAGS_KERNEL += $(call cc-option,-ffunction-sections,) +KBUILD_CFLAGS_KERNEL += $(call cc-option,-ffunction-sections,)
@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
# Read KERNELRELEASE from include/config/kernel.release (if it exists) # Read KERNELRELEASE from include/config/kernel.release (if it exists)
KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null) KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION) KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
@@ -785,11 +790,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH @@ -787,11 +792,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH
KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once) KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once)
endif endif

View file

@ -90,7 +90,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
__used \ __used \
--- a/scripts/Makefile.build --- a/scripts/Makefile.build
+++ b/scripts/Makefile.build +++ b/scripts/Makefile.build
@@ -426,7 +426,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $( @@ -434,7 +434,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $(
# Linker scripts preprocessor (.lds.S -> .lds) # Linker scripts preprocessor (.lds.S -> .lds)
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
quiet_cmd_cpp_lds_S = LDS $@ quiet_cmd_cpp_lds_S = LDS $@

View file

@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -639,12 +639,12 @@ KBUILD_CFLAGS += $(call cc-disable-warni @@ -650,12 +650,12 @@ KBUILD_CFLAGS += $(call cc-disable-warni
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
KBUILD_CFLAGS += $(call cc-option,-Oz,-Os) KBUILD_CFLAGS += $(call cc-option,-Oz,-Os)

View file

@ -59,7 +59,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static bool static bool
ip_checkentry(const struct ipt_ip *ip) ip_checkentry(const struct ipt_ip *ip)
{ {
@@ -532,6 +558,8 @@ find_check_entry(struct ipt_entry *e, st @@ -537,6 +563,8 @@ find_check_entry(struct ipt_entry *e, st
struct xt_mtchk_param mtpar; struct xt_mtchk_param mtpar;
struct xt_entry_match *ematch; struct xt_entry_match *ematch;
@ -68,7 +68,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!xt_percpu_counter_alloc(alloc_state, &e->counters)) if (!xt_percpu_counter_alloc(alloc_state, &e->counters))
return -ENOMEM; return -ENOMEM;
@@ -812,6 +840,7 @@ copy_entries_to_user(unsigned int total_ @@ -817,6 +845,7 @@ copy_entries_to_user(unsigned int total_
const struct xt_table_info *private = table->private; const struct xt_table_info *private = table->private;
int ret = 0; int ret = 0;
const void *loc_cpu_entry; const void *loc_cpu_entry;
@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
counters = alloc_counters(table); counters = alloc_counters(table);
if (IS_ERR(counters)) if (IS_ERR(counters))
@@ -839,6 +868,14 @@ copy_entries_to_user(unsigned int total_ @@ -844,6 +873,14 @@ copy_entries_to_user(unsigned int total_
goto free_counters; goto free_counters;
} }
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
for (i = sizeof(struct ipt_entry); for (i = sizeof(struct ipt_entry);
i < e->target_offset; i < e->target_offset;
i += m->u.match_size) { i += m->u.match_size) {
@@ -1219,12 +1256,15 @@ compat_copy_entry_to_user(struct ipt_ent @@ -1224,12 +1261,15 @@ compat_copy_entry_to_user(struct ipt_ent
compat_uint_t origsize; compat_uint_t origsize;
const struct xt_entry_match *ematch; const struct xt_entry_match *ematch;
int ret = 0; int ret = 0;

View file

@ -1,60 +0,0 @@
From patchwork Tue Jan 9 14:42:21 2018
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: PCI: dwc: fix enumeration end when reaching root subordinate
From: Koen Vandeputte <koen.vandeputte@ncentric.com>
X-Patchwork-Id: 10152443
Message-Id: <1515508941-20055-1-git-send-email-koen.vandeputte@ncentric.com>
To: linux-pci@vger.kernel.org
Cc: bhelgaas@google.com, lorenzo.pieralisi@arm.com,
Joao.Pinto@synopsys.com, jingoohan1@gmail.com, niklas.cassel@axis.com,
Koen Vandeputte <koen.vandeputte@ncentric.com>,
Mika Westerberg <mika.westerberg@linux.intel.com>
Date: Tue, 9 Jan 2018 15:42:21 +0100
The subordinate value indicates the highest bus number which can be
reached downstream though a certain device.
Commit a20c7f36bd3d ("PCI: Do not allocate more buses than available in
parent")
ensures that downstream devices cannot assign busnumbers higher than the
upstream device subordinate number, which was indeed illogical.
By default, dw_pcie_setup_rc() inits the Root Complex subordinate to a
value of 0x01.
Due to this combined with above commit, enumeration stops digging deeper
downstream as soon as bus num 0x01 has been assigned, which is always
the case for a bridge device.
This results in all devices behind a bridge bus to remain undetected, as
these would be connected to bus 0x02 or higher.
Fix this by initializing the RC to a subordinate value of 0xff, meaning
that all busses [0x00-0xff] are reachable through this RC.
Fixes: a20c7f36bd3d ("PCI: Do not allocate more buses than available in
parent")
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Tested-by: Niklas Cassel <niklas.cassel@axis.com>
Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
---
Will send separate patches to stable as this file got moved/renamed
drivers/pci/dwc/pcie-designware-host.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/pci/dwc/pcie-designware-host.c
+++ b/drivers/pci/dwc/pcie-designware-host.c
@@ -607,7 +607,7 @@ void dw_pcie_setup_rc(struct pcie_port *
/* setup bus numbers */
val = dw_pcie_readl_dbi(pci, PCI_PRIMARY_BUS);
val &= 0xff000000;
- val |= 0x00010100;
+ val |= 0x00ff0100;
dw_pcie_writel_dbi(pci, PCI_PRIMARY_BUS, val);
/* setup command register */