kernel: bump 4.14 to 4.14.20
Refresh patches. Remove upstreamed patches: - backport/080-v4.15-0001-arch-define-weak-abort.patch - backport/081-v4.15-0002-kernel-exit.c-export-abort-to-modules.patch Update patch that no longer applies: pending/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch Fixes CVE-2017-8824. Compile-tested: octeon, x86/64. Runtime-tested: octeon, x86/64. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
This commit is contained in:
		| @@ -5,12 +5,12 @@ LINUX_RELEASE?=1 | |||||||
| LINUX_VERSION-3.18 = .71 | LINUX_VERSION-3.18 = .71 | ||||||
| LINUX_VERSION-4.4 = .112 | LINUX_VERSION-4.4 = .112 | ||||||
| LINUX_VERSION-4.9 = .77 | LINUX_VERSION-4.9 = .77 | ||||||
| LINUX_VERSION-4.14 = .18 | LINUX_VERSION-4.14 = .20 | ||||||
|  |  | ||||||
| LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240 | LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240 | ||||||
| LINUX_KERNEL_HASH-4.4.112 = 544b42cbeed022896115c76a18fc97b4507d5b41d7ac0ce1dce9afd6ffd11ecd | LINUX_KERNEL_HASH-4.4.112 = 544b42cbeed022896115c76a18fc97b4507d5b41d7ac0ce1dce9afd6ffd11ecd | ||||||
| LINUX_KERNEL_HASH-4.9.77 = 7c29bc3fb96f1e23d98f664e786dddd53a1599f56431b9b7fdfba402a4b3705c | LINUX_KERNEL_HASH-4.9.77 = 7c29bc3fb96f1e23d98f664e786dddd53a1599f56431b9b7fdfba402a4b3705c | ||||||
| LINUX_KERNEL_HASH-4.14.18 = 866a94c1c38d923ae18e74b683d7a8a79b674ebdfe7f40f1a3be9a27d39fe354 | LINUX_KERNEL_HASH-4.14.20 = 4ab7f42aa6af9c1e3b00cba6b1fa305a87407666aaa2fae555f7fbdaafb6d292 | ||||||
|  |  | ||||||
| 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))))))) | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> | |||||||
|  |  | ||||||
| --- a/drivers/net/ethernet/stmicro/stmmac/common.h | --- a/drivers/net/ethernet/stmicro/stmmac/common.h | ||||||
| +++ b/drivers/net/ethernet/stmicro/stmmac/common.h | +++ b/drivers/net/ethernet/stmicro/stmmac/common.h | ||||||
| @@ -49,7 +49,7 @@ | @@ -46,7 +46,7 @@ | ||||||
|  #define STMMAC_GET_ENTRY(x, size)	((x + 1) & (size - 1)) |  #define STMMAC_GET_ENTRY(x, size)	((x + 1) & (size - 1)) | ||||||
|   |   | ||||||
|  #undef FRAME_FILTER_DEBUG |  #undef FRAME_FILTER_DEBUG | ||||||
|   | |||||||
| @@ -55,7 +55,7 @@ Cc: Kir Kolyshkin <kir@openvz.org> | |||||||
|  	rwlock_t		sk_callback_lock; |  	rwlock_t		sk_callback_lock; | ||||||
| --- a/net/core/sock.c | --- a/net/core/sock.c | ||||||
| +++ b/net/core/sock.c | +++ b/net/core/sock.c | ||||||
| @@ -2744,6 +2744,7 @@ void sock_init_data(struct socket *sock, | @@ -2741,6 +2741,7 @@ void sock_init_data(struct socket *sock, | ||||||
|   |   | ||||||
|  	sk->sk_max_pacing_rate = ~0U; |  	sk->sk_max_pacing_rate = ~0U; | ||||||
|  	sk->sk_pacing_rate = ~0U; |  	sk->sk_pacing_rate = ~0U; | ||||||
|   | |||||||
| @@ -1,46 +0,0 @@ | |||||||
| From 7c2c11b208be09c156573fc0076b7b3646e05219 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Sudip Mukherjee <sudipm.mukherjee@gmail.com> |  | ||||||
| Date: Thu, 14 Dec 2017 15:33:19 -0800 |  | ||||||
| Subject: [PATCH] arch: define weak abort() |  | ||||||
|  |  | ||||||
| gcc toggle -fisolate-erroneous-paths-dereference (default at -O2 |  | ||||||
| onwards) isolates faulty code paths such as null pointer access, divide |  | ||||||
| by zero etc.  If gcc port doesnt implement __builtin_trap, an abort() is |  | ||||||
| generated which causes kernel link error. |  | ||||||
|  |  | ||||||
| In this case, gcc is generating abort due to 'divide by zero' in |  | ||||||
| lib/mpi/mpih-div.c. |  | ||||||
|  |  | ||||||
| Currently 'frv' and 'arc' are failing.  Previously other arch was also |  | ||||||
| broken like m32r was fixed by commit d22e3d69ee1a ("m32r: fix build |  | ||||||
| failure"). |  | ||||||
|  |  | ||||||
| Let's define this weak function which is common for all arch and fix the |  | ||||||
| problem permanently.  We can even remove the arch specific 'abort' after |  | ||||||
| this is done. |  | ||||||
|  |  | ||||||
| Link: http://lkml.kernel.org/r/1513118956-8718-1-git-send-email-sudipm.mukherjee@gmail.com |  | ||||||
| Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com> |  | ||||||
| Cc: Alexey Brodkin <Alexey.Brodkin@synopsys.com> |  | ||||||
| Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com> |  | ||||||
| Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com> |  | ||||||
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |  | ||||||
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |  | ||||||
| --- |  | ||||||
|  kernel/exit.c | 8 ++++++++ |  | ||||||
|  1 file changed, 8 insertions(+) |  | ||||||
|  |  | ||||||
| --- a/kernel/exit.c |  | ||||||
| +++ b/kernel/exit.c |  | ||||||
| @@ -1755,3 +1755,11 @@ Efault: |  | ||||||
|  	return -EFAULT; |  | ||||||
|  } |  | ||||||
|  #endif |  | ||||||
| + |  | ||||||
| +__weak void abort(void) |  | ||||||
| +{ |  | ||||||
| +	BUG(); |  | ||||||
| + |  | ||||||
| +	/* if that doesn't kill us, halt */ |  | ||||||
| +	panic("Oops failed to kill thread"); |  | ||||||
| +} |  | ||||||
| @@ -1,63 +0,0 @@ | |||||||
| From dc8635b78cd8669c37e230058d18c33af7451ab1 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Andrew Morton <akpm@linux-foundation.org> |  | ||||||
| Date: Thu, 4 Jan 2018 16:17:56 -0800 |  | ||||||
| Subject: [PATCH] kernel/exit.c: export abort() to modules |  | ||||||
|  |  | ||||||
| gcc -fisolate-erroneous-paths-dereference can generate calls to abort() |  | ||||||
| from modular code too. |  | ||||||
|  |  | ||||||
| [arnd@arndb.de: drop duplicate exports of abort()] |  | ||||||
|   Link: http://lkml.kernel.org/r/20180102103311.706364-1-arnd@arndb.de |  | ||||||
| Reported-by: Vineet Gupta <Vineet.Gupta1@synopsys.com> |  | ||||||
| Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com> |  | ||||||
| Cc: Arnd Bergmann <arnd@arndb.de> |  | ||||||
| Cc: Alexey Brodkin <Alexey.Brodkin@synopsys.com> |  | ||||||
| Cc: Russell King <rmk+kernel@armlinux.org.uk> |  | ||||||
| Cc: Jose Abreu <Jose.Abreu@synopsys.com> |  | ||||||
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |  | ||||||
| Signed-off-by: Arnd Bergmann <arnd@arndb.de> |  | ||||||
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |  | ||||||
| --- |  | ||||||
|  arch/arm/kernel/traps.c       | 1 - |  | ||||||
|  arch/m32r/kernel/traps.c      | 1 - |  | ||||||
|  arch/unicore32/kernel/traps.c | 1 - |  | ||||||
|  kernel/exit.c                 | 1 + |  | ||||||
|  4 files changed, 1 insertion(+), 3 deletions(-) |  | ||||||
|  |  | ||||||
| --- a/arch/arm/kernel/traps.c |  | ||||||
| +++ b/arch/arm/kernel/traps.c |  | ||||||
| @@ -790,7 +790,6 @@ void abort(void) |  | ||||||
|  	/* if that doesn't kill us, halt */ |  | ||||||
|  	panic("Oops failed to kill thread"); |  | ||||||
|  } |  | ||||||
| -EXPORT_SYMBOL(abort); |  | ||||||
|   |  | ||||||
|  void __init trap_init(void) |  | ||||||
|  { |  | ||||||
| --- a/arch/m32r/kernel/traps.c |  | ||||||
| +++ b/arch/m32r/kernel/traps.c |  | ||||||
| @@ -122,7 +122,6 @@ void abort(void) |  | ||||||
|  	/* if that doesn't kill us, halt */ |  | ||||||
|  	panic("Oops failed to kill thread"); |  | ||||||
|  } |  | ||||||
| -EXPORT_SYMBOL(abort); |  | ||||||
|   |  | ||||||
|  void __init trap_init(void) |  | ||||||
|  { |  | ||||||
| --- a/arch/unicore32/kernel/traps.c |  | ||||||
| +++ b/arch/unicore32/kernel/traps.c |  | ||||||
| @@ -298,7 +298,6 @@ void abort(void) |  | ||||||
|  	/* if that doesn't kill us, halt */ |  | ||||||
|  	panic("Oops failed to kill thread"); |  | ||||||
|  } |  | ||||||
| -EXPORT_SYMBOL(abort); |  | ||||||
|   |  | ||||||
|  void __init trap_init(void) |  | ||||||
|  { |  | ||||||
| --- a/kernel/exit.c |  | ||||||
| +++ b/kernel/exit.c |  | ||||||
| @@ -1763,3 +1763,4 @@ __weak void abort(void) |  | ||||||
|  	/* if that doesn't kill us, halt */ |  | ||||||
|  	panic("Oops failed to kill thread"); |  | ||||||
|  } |  | ||||||
| +EXPORT_SYMBOL(abort); |  | ||||||
| @@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  |  | ||||||
| --- a/Makefile | --- a/Makefile | ||||||
| +++ b/Makefile | +++ b/Makefile | ||||||
| @@ -1212,7 +1212,6 @@ all: modules | @@ -1213,7 +1213,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 | ||||||
|   |   | ||||||
| @@ -1241,7 +1240,6 @@ _modinst_: | @@ -1242,7 +1241,6 @@ _modinst_: | ||||||
|  		rm -f $(MODLIB)/build ; \ |  		rm -f $(MODLIB)/build ; \ | ||||||
|  		ln -s $(CURDIR) $(MODLIB)/build ; \ |  		ln -s $(CURDIR) $(MODLIB)/build ; \ | ||||||
|  	fi |  	fi | ||||||
|   | |||||||
| @@ -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) | ||||||
| @@ -784,11 +789,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH | @@ -785,11 +790,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 | ||||||
|   |   | ||||||
|   | |||||||
| @@ -327,7 +327,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|   |   | ||||||
| --- a/net/core/sock.c | --- a/net/core/sock.c | ||||||
| +++ b/net/core/sock.c | +++ b/net/core/sock.c | ||||||
| @@ -3383,6 +3383,8 @@ static __net_initdata struct pernet_oper | @@ -3380,6 +3380,8 @@ static __net_initdata struct pernet_oper | ||||||
|   |   | ||||||
|  static int __init proto_init(void) |  static int __init proto_init(void) | ||||||
|  { |  { | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  |  | ||||||
| --- a/Makefile | --- a/Makefile | ||||||
| +++ b/Makefile | +++ b/Makefile | ||||||
| @@ -638,12 +638,12 @@ KBUILD_CFLAGS	+= $(call cc-disable-warni | @@ -639,12 +639,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) | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> | |||||||
|  |  | ||||||
| --- a/drivers/mtd/ubi/block.c | --- a/drivers/mtd/ubi/block.c | ||||||
| +++ b/drivers/mtd/ubi/block.c | +++ b/drivers/mtd/ubi/block.c | ||||||
| @@ -625,6 +625,44 @@ static void __init ubiblock_create_from_ | @@ -633,6 +633,44 @@ static void __init ubiblock_create_from_ | ||||||
|  	} |  	} | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -53,7 +53,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> | |||||||
|  static void ubiblock_remove_all(void) |  static void ubiblock_remove_all(void) | ||||||
|  { |  { | ||||||
|  	struct ubiblock *next; |  	struct ubiblock *next; | ||||||
| @@ -655,6 +693,10 @@ int __init ubiblock_init(void) | @@ -665,6 +703,10 @@ int __init ubiblock_init(void) | ||||||
|  	 */ |  	 */ | ||||||
|  	ubiblock_create_from_param(); |  	ubiblock_create_from_param(); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -17,9 +17,9 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> | |||||||
|  #include "ubi-media.h" |  #include "ubi-media.h" | ||||||
|  #include "ubi.h" |  #include "ubi.h" | ||||||
| @@ -445,6 +446,15 @@ int ubiblock_create(struct ubi_volume_in | @@ -445,6 +446,15 @@ int ubiblock_create(struct ubi_volume_in | ||||||
|  	add_disk(dev->gd); |  | ||||||
|  	dev_info(disk_to_dev(dev->gd), "created from ubi%d:%d(%s)", |  	dev_info(disk_to_dev(dev->gd), "created from ubi%d:%d(%s)", | ||||||
|  		 dev->ubi_num, dev->vol_id, vi->name); |  		 dev->ubi_num, dev->vol_id, vi->name); | ||||||
|  |  	mutex_unlock(&devices_mutex); | ||||||
| + | + | ||||||
| +	if (!strcmp(vi->name, "rootfs") && | +	if (!strcmp(vi->name, "rootfs") && | ||||||
| +	    IS_ENABLED(CONFIG_MTD_ROOTFS_ROOT_DEV) && | +	    IS_ENABLED(CONFIG_MTD_ROOTFS_ROOT_DEV) && | ||||||
|   | |||||||
| @@ -14,10 +14,8 @@ Acked-by: Philipp Zabel <p.zabel@pengutronix.de> | |||||||
|  drivers/clk/mediatek/clk-mt2701.c | 4 ++++ |  drivers/clk/mediatek/clk-mt2701.c | 4 ++++ | ||||||
|  1 file changed, 4 insertions(+) |  1 file changed, 4 insertions(+) | ||||||
|  |  | ||||||
| Index: linux-4.14.11/drivers/clk/mediatek/clk-mt2701.c | --- a/drivers/clk/mediatek/clk-mt2701.c | ||||||
| =================================================================== | +++ b/drivers/clk/mediatek/clk-mt2701.c | ||||||
| --- linux-4.14.11.orig/drivers/clk/mediatek/clk-mt2701.c |  | ||||||
| +++ linux-4.14.11/drivers/clk/mediatek/clk-mt2701.c |  | ||||||
| @@ -771,6 +771,8 @@ static void mtk_infrasys_init_early(stru | @@ -771,6 +771,8 @@ static void mtk_infrasys_init_early(stru | ||||||
|  	if (r) |  	if (r) | ||||||
|  		pr_err("%s(): could not register clock provider: %d\n", |  		pr_err("%s(): could not register clock provider: %d\n", | ||||||
|   | |||||||
| @@ -16,10 +16,8 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  drivers/net/ethernet/mediatek/mtk_eth_soc.c | 35 +++++++++++++++++------------ |  drivers/net/ethernet/mediatek/mtk_eth_soc.c | 35 +++++++++++++++++------------ | ||||||
|  1 file changed, 21 insertions(+), 14 deletions(-) |  1 file changed, 21 insertions(+), 14 deletions(-) | ||||||
|  |  | ||||||
| Index: linux-4.14.11/drivers/net/ethernet/mediatek/mtk_eth_soc.c | --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c | ||||||
| =================================================================== | +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c | ||||||
| --- linux-4.14.11.orig/drivers/net/ethernet/mediatek/mtk_eth_soc.c |  | ||||||
| +++ linux-4.14.11/drivers/net/ethernet/mediatek/mtk_eth_soc.c |  | ||||||
| @@ -779,7 +779,16 @@ static int mtk_tx_map(struct sk_buff *sk | @@ -779,7 +779,16 @@ static int mtk_tx_map(struct sk_buff *sk | ||||||
|  	WRITE_ONCE(itxd->txd3, (TX_DMA_SWC | TX_DMA_PLEN0(skb_headlen(skb)) | |  	WRITE_ONCE(itxd->txd3, (TX_DMA_SWC | TX_DMA_PLEN0(skb_headlen(skb)) | | ||||||
|  				(!nr_frags * TX_DMA_LS0))); |  				(!nr_frags * TX_DMA_LS0))); | ||||||
|   | |||||||
| @@ -10,10 +10,8 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  drivers/net/ethernet/mediatek/mtk_eth_soc.c | 3 +++ |  drivers/net/ethernet/mediatek/mtk_eth_soc.c | 3 +++ | ||||||
|  2 files changed, 8 insertions(+) |  2 files changed, 8 insertions(+) | ||||||
|  |  | ||||||
| Index: linux-4.14.11/drivers/net/dsa/mt7530.c | --- a/drivers/net/dsa/mt7530.c | ||||||
| =================================================================== | +++ b/drivers/net/dsa/mt7530.c | ||||||
| --- linux-4.14.11.orig/drivers/net/dsa/mt7530.c |  | ||||||
| +++ linux-4.14.11/drivers/net/dsa/mt7530.c |  | ||||||
| @@ -991,6 +991,11 @@ mt7530_setup(struct dsa_switch *ds) | @@ -991,6 +991,11 @@ mt7530_setup(struct dsa_switch *ds) | ||||||
|  	val = mt7530_read(priv, MT7530_MHWTRAP); |  	val = mt7530_read(priv, MT7530_MHWTRAP); | ||||||
|  	val &= ~MHWTRAP_P6_DIS & ~MHWTRAP_PHY_ACCESS; |  	val &= ~MHWTRAP_P6_DIS & ~MHWTRAP_PHY_ACCESS; | ||||||
|   | |||||||
| @@ -1,7 +1,5 @@ | |||||||
| Index: linux-4.14.14/drivers/net/dsa/mt7530.c | --- a/drivers/net/dsa/mt7530.c | ||||||
| =================================================================== | +++ b/drivers/net/dsa/mt7530.c | ||||||
| --- linux-4.14.14.orig/drivers/net/dsa/mt7530.c |  | ||||||
| +++ linux-4.14.14/drivers/net/dsa/mt7530.c |  | ||||||
| @@ -670,6 +670,9 @@ static int | @@ -670,6 +670,9 @@ static int | ||||||
|  mt7530_cpu_port_enable(struct mt7530_priv *priv, |  mt7530_cpu_port_enable(struct mt7530_priv *priv, | ||||||
|  		       int port) |  		       int port) | ||||||
| @@ -98,10 +96,8 @@ Index: linux-4.14.14/drivers/net/dsa/mt7530.c | |||||||
|  	val |= MHWTRAP_MANUAL; |  	val |= MHWTRAP_MANUAL; | ||||||
|  	if (!dsa_is_cpu_port(ds, 5)) { |  	if (!dsa_is_cpu_port(ds, 5)) { | ||||||
|  		val |= MHWTRAP_P5_DIS; |  		val |= MHWTRAP_P5_DIS; | ||||||
| Index: linux-4.14.14/include/net/dsa.h | --- a/include/net/dsa.h | ||||||
| =================================================================== | +++ b/include/net/dsa.h | ||||||
| --- linux-4.14.14.orig/include/net/dsa.h |  | ||||||
| +++ linux-4.14.14/include/net/dsa.h |  | ||||||
| @@ -185,6 +185,10 @@ struct dsa_port { | @@ -185,6 +185,10 @@ struct dsa_port { | ||||||
|  	u8			stp_state; |  	u8			stp_state; | ||||||
|  	struct net_device	*bridge_dev; |  	struct net_device	*bridge_dev; | ||||||
| @@ -144,10 +140,8 @@ Index: linux-4.14.14/include/net/dsa.h | |||||||
|  typedef int dsa_fdb_dump_cb_t(const unsigned char *addr, u16 vid, |  typedef int dsa_fdb_dump_cb_t(const unsigned char *addr, u16 vid, | ||||||
|  			      bool is_static, void *data); |  			      bool is_static, void *data); | ||||||
|  struct dsa_switch_ops { |  struct dsa_switch_ops { | ||||||
| Index: linux-4.14.14/net/dsa/dsa2.c | --- a/net/dsa/dsa2.c | ||||||
| =================================================================== | +++ b/net/dsa/dsa2.c | ||||||
| --- linux-4.14.14.orig/net/dsa/dsa2.c |  | ||||||
| +++ linux-4.14.14/net/dsa/dsa2.c |  | ||||||
| @@ -253,6 +253,8 @@ static int dsa_cpu_port_apply(struct dsa | @@ -253,6 +253,8 @@ static int dsa_cpu_port_apply(struct dsa | ||||||
|  	memset(&port->devlink_port, 0, sizeof(port->devlink_port)); |  	memset(&port->devlink_port, 0, sizeof(port->devlink_port)); | ||||||
|  	err = devlink_port_register(ds->devlink, &port->devlink_port, |  	err = devlink_port_register(ds->devlink, &port->devlink_port, | ||||||
| @@ -232,10 +226,8 @@ Index: linux-4.14.14/net/dsa/dsa2.c | |||||||
|  			/* Initialize enabled_port_mask now for drv->setup() |  			/* Initialize enabled_port_mask now for drv->setup() | ||||||
|  			 * to have access to a correct value, just like what |  			 * to have access to a correct value, just like what | ||||||
|  			 * net/dsa/dsa.c::dsa_switch_setup_one does. |  			 * net/dsa/dsa.c::dsa_switch_setup_one does. | ||||||
| Index: linux-4.14.14/net/dsa/dsa_priv.h | --- a/net/dsa/dsa_priv.h | ||||||
| =================================================================== | +++ b/net/dsa/dsa_priv.h | ||||||
| --- linux-4.14.14.orig/net/dsa/dsa_priv.h |  | ||||||
| +++ linux-4.14.14/net/dsa/dsa_priv.h |  | ||||||
| @@ -91,6 +91,8 @@ struct dsa_slave_priv { | @@ -91,6 +91,8 @@ struct dsa_slave_priv { | ||||||
|   |   | ||||||
|  	/* TC context */ |  	/* TC context */ | ||||||
| @@ -255,10 +247,8 @@ Index: linux-4.14.14/net/dsa/dsa_priv.h | |||||||
|  	return p->dp->cpu_dp->netdev; |  	return p->dp->cpu_dp->netdev; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| Index: linux-4.14.14/net/dsa/slave.c | --- a/net/dsa/slave.c | ||||||
| =================================================================== | +++ b/net/dsa/slave.c | ||||||
| --- linux-4.14.14.orig/net/dsa/slave.c |  | ||||||
| +++ linux-4.14.14/net/dsa/slave.c |  | ||||||
| @@ -1257,7 +1257,7 @@ int dsa_slave_create(struct dsa_port *po | @@ -1257,7 +1257,7 @@ int dsa_slave_create(struct dsa_port *po | ||||||
|  	int ret; |  	int ret; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  |  | ||||||
| --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c | --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c | ||||||
| +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c | +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c | ||||||
| @@ -643,8 +643,8 @@ static int mtk_tx_map(struct sk_buff *sk | @@ -709,8 +709,8 @@ static int mtk_tx_map(struct sk_buff *sk | ||||||
|  		txd4 |= TX_DMA_CHKSUM; |  		txd4 |= TX_DMA_CHKSUM; | ||||||
|   |   | ||||||
|  	/* VLAN header offload */ |  	/* VLAN header offload */ | ||||||
| @@ -22,7 +22,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|   |   | ||||||
|  	mapped_addr = dma_map_single(eth->dev, skb->data, |  	mapped_addr = dma_map_single(eth->dev, skb->data, | ||||||
|  				     skb_headlen(skb), DMA_TO_DEVICE); |  				     skb_headlen(skb), DMA_TO_DEVICE); | ||||||
| @@ -1874,7 +1874,10 @@ static int mtk_hw_init(struct mtk_eth *e | @@ -1979,7 +1979,10 @@ static int mtk_hw_init(struct mtk_eth *e | ||||||
|  	mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL); |  	mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL); | ||||||
|   |   | ||||||
|  	/* Enable RX VLan Offloading */ |  	/* Enable RX VLan Offloading */ | ||||||
| @@ -32,8 +32,8 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
| +	else | +	else | ||||||
| +		mtk_w32(eth, 0, MTK_CDMP_EG_CTRL); | +		mtk_w32(eth, 0, MTK_CDMP_EG_CTRL); | ||||||
|   |   | ||||||
|  	/* disable delay and normal interrupt */ |  	/* enable interrupt delay for RX */ | ||||||
|  	mtk_w32(eth, 0, MTK_QDMA_DELAY_INT); |  	mtk_w32(eth, MTK_PDMA_DELAY_RX_DELAY, MTK_PDMA_DELAY_INT); | ||||||
| --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h | --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h | ||||||
| +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h | +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h | ||||||
| @@ -34,8 +34,6 @@ | @@ -34,8 +34,6 @@ | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  |  | ||||||
| --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c | --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c | ||||||
| +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c | +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c | ||||||
| @@ -933,10 +933,16 @@ static int mtk_poll_rx(struct napi_struc | @@ -999,10 +999,16 @@ static int mtk_poll_rx(struct napi_struc | ||||||
|  		if (!(trxd.rxd2 & RX_DMA_DONE)) |  		if (!(trxd.rxd2 & RX_DMA_DONE)) | ||||||
|  			break; |  			break; | ||||||
|   |   | ||||||
| @@ -36,11 +36,11 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
| +			mac--; | +			mac--; | ||||||
| +		} | +		} | ||||||
|   |   | ||||||
|  		netdev = eth->netdev[mac]; |  		if (unlikely(mac < 0 || mac >= MTK_MAC_COUNT || | ||||||
|   |  			     !eth->netdev[mac])) | ||||||
| --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h | --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h | ||||||
| +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h | +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h | ||||||
| @@ -284,6 +284,7 @@ | @@ -287,6 +287,7 @@ | ||||||
|   |   | ||||||
|  /* QDMA descriptor rxd4 */ |  /* QDMA descriptor rxd4 */ | ||||||
|  #define RX_DMA_L4_VALID		BIT(24) |  #define RX_DMA_L4_VALID		BIT(24) | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  |  | ||||||
| --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c | --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c | ||||||
| +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c | +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c | ||||||
| @@ -1894,6 +1894,8 @@ static int mtk_hw_init(struct mtk_eth *e | @@ -1983,6 +1983,8 @@ static int mtk_hw_init(struct mtk_eth *e | ||||||
|  	 */ |  	 */ | ||||||
|  	val = mtk_r32(eth, MTK_CDMQ_IG_CTRL); |  	val = mtk_r32(eth, MTK_CDMQ_IG_CTRL); | ||||||
|  	mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL); |  	mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL); | ||||||
| @@ -28,7 +28,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  	if (MTK_HW_FEATURES & NETIF_F_HW_VLAN_CTAG_RX) |  	if (MTK_HW_FEATURES & NETIF_F_HW_VLAN_CTAG_RX) | ||||||
| --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h | --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h | ||||||
| +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h | +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h | ||||||
| @@ -76,6 +76,10 @@ | @@ -72,6 +72,10 @@ | ||||||
|  #define MTK_CDMQ_IG_CTRL	0x1400 |  #define MTK_CDMQ_IG_CTRL	0x1400 | ||||||
|  #define MTK_CDMQ_STAG_EN	BIT(0) |  #define MTK_CDMQ_STAG_EN	BIT(0) | ||||||
|   |   | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  |  | ||||||
| --- a/drivers/net/dsa/mt7530.c | --- a/drivers/net/dsa/mt7530.c | ||||||
| +++ b/drivers/net/dsa/mt7530.c | +++ b/drivers/net/dsa/mt7530.c | ||||||
| @@ -742,6 +742,11 @@ mt7530_cpu_port_enable(struct mt7530_pri | @@ -677,6 +677,11 @@ mt7530_cpu_port_enable(struct mt7530_pri | ||||||
|  	mt7530_write(priv, MT7530_PVC_P(port), |  	mt7530_write(priv, MT7530_PVC_P(port), | ||||||
|  		     PORT_SPEC_TAG); |  		     PORT_SPEC_TAG); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -8,10 +8,8 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  drivers/net/dsa/mt7530.c | 23 +++++++++++++++-------- |  drivers/net/dsa/mt7530.c | 23 +++++++++++++++-------- | ||||||
|  1 file changed, 15 insertions(+), 8 deletions(-) |  1 file changed, 15 insertions(+), 8 deletions(-) | ||||||
|  |  | ||||||
| Index: linux-4.14.12/drivers/net/dsa/mt7530.c | --- a/drivers/net/dsa/mt7530.c | ||||||
| =================================================================== | +++ b/drivers/net/dsa/mt7530.c | ||||||
| --- linux-4.14.12.orig/drivers/net/dsa/mt7530.c |  | ||||||
| +++ linux-4.14.12/drivers/net/dsa/mt7530.c |  | ||||||
| @@ -1049,10 +1049,10 @@ static const struct dsa_switch_ops mt753 | @@ -1049,10 +1049,10 @@ static const struct dsa_switch_ops mt753 | ||||||
|  }; |  }; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -9,10 +9,8 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  drivers/net/ethernet/mediatek/mtk_eth_soc.h | 8 +++++++- |  drivers/net/ethernet/mediatek/mtk_eth_soc.h | 8 +++++++- | ||||||
|  2 files changed, 13 insertions(+), 2 deletions(-) |  2 files changed, 13 insertions(+), 2 deletions(-) | ||||||
|  |  | ||||||
| Index: linux-4.14.11/drivers/net/ethernet/mediatek/mtk_eth_soc.c | --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c | ||||||
| =================================================================== | +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c | ||||||
| --- linux-4.14.11.orig/drivers/net/ethernet/mediatek/mtk_eth_soc.c |  | ||||||
| +++ linux-4.14.11/drivers/net/ethernet/mediatek/mtk_eth_soc.c |  | ||||||
| @@ -1994,6 +1994,7 @@ static int mtk_hw_init(struct mtk_eth *e | @@ -1994,6 +1994,7 @@ static int mtk_hw_init(struct mtk_eth *e | ||||||
|   |   | ||||||
|  	/* enable interrupt delay for RX */ |  	/* enable interrupt delay for RX */ | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  |  | ||||||
| --- a/net/core/dev.c | --- a/net/core/dev.c | ||||||
| +++ b/net/core/dev.c | +++ b/net/core/dev.c | ||||||
| @@ -3551,6 +3551,58 @@ set_rps_cpu(struct net_device *dev, stru | @@ -3621,6 +3621,58 @@ set_rps_cpu(struct net_device *dev, stru | ||||||
|  	return rflow; |  	return rflow; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -69,7 +69,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  /* |  /* | ||||||
|   * get_rps_cpu is called from netif_receive_skb and returns the target |   * get_rps_cpu is called from netif_receive_skb and returns the target | ||||||
|   * CPU from the RPS map of the receiving queue for a given skb. |   * CPU from the RPS map of the receiving queue for a given skb. | ||||||
| @@ -3640,7 +3692,7 @@ static int get_rps_cpu(struct net_device | @@ -3710,7 +3762,7 @@ static int get_rps_cpu(struct net_device | ||||||
|  try_rps: |  try_rps: | ||||||
|   |   | ||||||
|  	if (map) { |  	if (map) { | ||||||
| @@ -78,7 +78,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  		if (cpu_online(tcpu)) { |  		if (cpu_online(tcpu)) { | ||||||
|  			cpu = tcpu; |  			cpu = tcpu; | ||||||
|  			goto done; |  			goto done; | ||||||
| @@ -8431,6 +8483,9 @@ static int __init net_dev_init(void) | @@ -8795,6 +8847,9 @@ static int __init net_dev_init(void) | ||||||
|  		sd->backlog.weight = weight_p; |  		sd->backlog.weight = weight_p; | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  |  | ||||||
| --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c | --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c | ||||||
| +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c | +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c | ||||||
| @@ -2384,7 +2384,7 @@ static int mtk_add_mac(struct mtk_eth *e | @@ -2453,7 +2453,7 @@ static int mtk_add_mac(struct mtk_eth *e | ||||||
|  	mac->hw_stats->reg_offset = id * MTK_STAT_OFFSET; |  	mac->hw_stats->reg_offset = id * MTK_STAT_OFFSET; | ||||||
|   |   | ||||||
|  	SET_NETDEV_DEV(eth->netdev[id], eth->dev); |  	SET_NETDEV_DEV(eth->netdev[id], eth->dev); | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  |  | ||||||
| --- a/drivers/net/phy/phy_device.c | --- a/drivers/net/phy/phy_device.c | ||||||
| +++ b/drivers/net/phy/phy_device.c | +++ b/drivers/net/phy/phy_device.c | ||||||
| @@ -1804,7 +1804,7 @@ static struct phy_driver genphy_driver[] | @@ -1912,7 +1912,7 @@ static struct phy_driver genphy_driver = | ||||||
|  	.config_init	= genphy_config_init, |  	.config_init	= genphy_config_init, | ||||||
|  	.features	= PHY_GBIT_FEATURES | SUPPORTED_MII | |  	.features	= PHY_GBIT_FEATURES | SUPPORTED_MII | | ||||||
|  			  SUPPORTED_AUI | SUPPORTED_FIBRE | |  			  SUPPORTED_AUI | SUPPORTED_FIBRE | | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c | --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c | ||||||
| +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c | +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c | ||||||
| @@ -97,7 +97,10 @@ static int mtk_mdio_busy_wait(struct mtk | @@ -76,7 +76,10 @@ static int mtk_mdio_busy_wait(struct mtk | ||||||
|  			return 0; |  			return 0; | ||||||
|  		if (time_after(jiffies, t_start + PHY_IAC_TIMEOUT)) |  		if (time_after(jiffies, t_start + PHY_IAC_TIMEOUT)) | ||||||
|  			break; |  			break; | ||||||
|   | |||||||
| @@ -1,7 +1,5 @@ | |||||||
| Index: linux-4.14.12/drivers/net/ethernet/mediatek/mtk_eth_soc.c | --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c | ||||||
| =================================================================== | +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c | ||||||
| --- linux-4.14.12.orig/drivers/net/ethernet/mediatek/mtk_eth_soc.c |  | ||||||
| +++ linux-4.14.12/drivers/net/ethernet/mediatek/mtk_eth_soc.c |  | ||||||
| @@ -409,6 +409,7 @@ static int mtk_mdio_init(struct mtk_eth | @@ -409,6 +409,7 @@ static int mtk_mdio_init(struct mtk_eth | ||||||
|   |   | ||||||
|  	snprintf(eth->mii_bus->id, MII_BUS_ID_SIZE, "%s", mii_np->name); |  	snprintf(eth->mii_bus->id, MII_BUS_ID_SIZE, "%s", mii_np->name); | ||||||
|   | |||||||
| @@ -1,7 +1,5 @@ | |||||||
| Index: linux-4.14.18/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts | --- a/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts | ||||||
| =================================================================== | +++ b/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts | ||||||
| --- linux-4.14.18.orig/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts |  | ||||||
| +++ linux-4.14.18/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts |  | ||||||
| @@ -21,6 +21,10 @@ | @@ -21,6 +21,10 @@ | ||||||
|  		stdout-path = "serial2:115200n8"; |  		stdout-path = "serial2:115200n8"; | ||||||
|  	}; |  	}; | ||||||
| @@ -117,10 +115,8 @@ Index: linux-4.14.18/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts | |||||||
|   |   | ||||||
|  &i2c0 { |  &i2c0 { | ||||||
|  	pinctrl-names = "default"; |  	pinctrl-names = "default"; | ||||||
| Index: linux-4.14.18/arch/arm/boot/dts/Makefile | --- a/arch/arm/boot/dts/Makefile | ||||||
| =================================================================== | +++ b/arch/arm/boot/dts/Makefile | ||||||
| --- linux-4.14.18.orig/arch/arm/boot/dts/Makefile |  | ||||||
| +++ linux-4.14.18/arch/arm/boot/dts/Makefile |  | ||||||
| @@ -1061,6 +1061,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \ | @@ -1061,6 +1061,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \ | ||||||
|  	mt6580-evbp1.dtb \ |  	mt6580-evbp1.dtb \ | ||||||
|  	mt6589-aquaris5.dtb \ |  	mt6589-aquaris5.dtb \ | ||||||
| @@ -129,10 +125,8 @@ Index: linux-4.14.18/arch/arm/boot/dts/Makefile | |||||||
|  	mt7623n-rfb-nand.dtb \ |  	mt7623n-rfb-nand.dtb \ | ||||||
|  	mt7623n-bananapi-bpi-r2.dtb \ |  	mt7623n-bananapi-bpi-r2.dtb \ | ||||||
|  	mt8127-moose.dtb \ |  	mt8127-moose.dtb \ | ||||||
| Index: linux-4.14.18/arch/arm/boot/dts/mt7623a-rfb-emmc.dts |  | ||||||
| =================================================================== |  | ||||||
| --- /dev/null | --- /dev/null | ||||||
| +++ linux-4.14.18/arch/arm/boot/dts/mt7623a-rfb-emmc.dts | +++ b/arch/arm/boot/dts/mt7623a-rfb-emmc.dts | ||||||
| @@ -0,0 +1,449 @@ | @@ -0,0 +1,449 @@ | ||||||
| +/* | +/* | ||||||
| + * Copyright 2017 Sean Wang <sean.wang@mediatek.com> | + * Copyright 2017 Sean Wang <sean.wang@mediatek.com> | ||||||
| @@ -583,10 +577,8 @@ Index: linux-4.14.18/arch/arm/boot/dts/mt7623a-rfb-emmc.dts | |||||||
| +	status = "okay"; | +	status = "okay"; | ||||||
| +}; | +}; | ||||||
| + | + | ||||||
| Index: linux-4.14.18/arch/arm/boot/dts/mt7623.dtsi | --- a/arch/arm/boot/dts/mt7623.dtsi | ||||||
| =================================================================== | +++ b/arch/arm/boot/dts/mt7623.dtsi | ||||||
| --- linux-4.14.18.orig/arch/arm/boot/dts/mt7623.dtsi |  | ||||||
| +++ linux-4.14.18/arch/arm/boot/dts/mt7623.dtsi |  | ||||||
| @@ -753,6 +753,7 @@ | @@ -753,6 +753,7 @@ | ||||||
|  			     "syscon"; |  			     "syscon"; | ||||||
|  		reg = <0 0x1b000000 0 0x1000>; |  		reg = <0 0x1b000000 0 0x1000>; | ||||||
|   | |||||||
| @@ -17,8 +17,6 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com> | |||||||
|  drivers/net/ethernet/cavium/thunder/thunder_xcv.c | 31 ++++++++++++++++++----- |  drivers/net/ethernet/cavium/thunder/thunder_xcv.c | 31 ++++++++++++++++++----- | ||||||
|  3 files changed, 35 insertions(+), 11 deletions(-) |  3 files changed, 35 insertions(+), 11 deletions(-) | ||||||
|  |  | ||||||
| diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c |  | ||||||
| index 5e5c4d7..805c02a 100644 |  | ||||||
| --- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c | --- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c | ||||||
| +++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c | +++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c | ||||||
| @@ -55,6 +55,7 @@ struct bgx { | @@ -55,6 +55,7 @@ struct bgx { | ||||||
| @@ -29,7 +27,7 @@ index 5e5c4d7..805c02a 100644 | |||||||
|  }; |  }; | ||||||
|   |   | ||||||
|  static struct bgx *bgx_vnic[MAX_BGX_THUNDER]; |  static struct bgx *bgx_vnic[MAX_BGX_THUNDER]; | ||||||
| @@ -841,12 +842,12 @@ static void bgx_poll_for_link(struct work_struct *work) | @@ -841,12 +842,12 @@ static void bgx_poll_for_link(struct wor | ||||||
|  	queue_delayed_work(lmac->check_link, &lmac->dwork, HZ * 2); |  	queue_delayed_work(lmac->check_link, &lmac->dwork, HZ * 2); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -44,7 +42,7 @@ index 5e5c4d7..805c02a 100644 | |||||||
|   |   | ||||||
|  	return PHY_INTERFACE_MODE_SGMII; |  	return PHY_INTERFACE_MODE_SGMII; | ||||||
|  } |  } | ||||||
| @@ -912,7 +913,8 @@ static int bgx_lmac_enable(struct bgx *bgx, u8 lmacid) | @@ -912,7 +913,8 @@ static int bgx_lmac_enable(struct bgx *b | ||||||
|   |   | ||||||
|  		if (phy_connect_direct(&lmac->netdev, lmac->phydev, |  		if (phy_connect_direct(&lmac->netdev, lmac->phydev, | ||||||
|  				       bgx_lmac_handler, |  				       bgx_lmac_handler, | ||||||
| @@ -54,7 +52,7 @@ index 5e5c4d7..805c02a 100644 | |||||||
|  			return -ENODEV; |  			return -ENODEV; | ||||||
|   |   | ||||||
|  		phy_start_aneg(lmac->phydev); |  		phy_start_aneg(lmac->phydev); | ||||||
| @@ -1287,6 +1289,8 @@ static int bgx_init_of_phy(struct bgx *bgx) | @@ -1287,6 +1289,8 @@ static int bgx_init_of_phy(struct bgx *b | ||||||
|  		bgx->lmac[lmac].lmacid = lmac; |  		bgx->lmac[lmac].lmacid = lmac; | ||||||
|   |   | ||||||
|  		phy_np = of_parse_phandle(node, "phy-handle", 0); |  		phy_np = of_parse_phandle(node, "phy-handle", 0); | ||||||
| @@ -63,7 +61,7 @@ index 5e5c4d7..805c02a 100644 | |||||||
|  		/* If there is no phy or defective firmware presents |  		/* If there is no phy or defective firmware presents | ||||||
|  		 * this cortina phy, for which there is no driver |  		 * this cortina phy, for which there is no driver | ||||||
|  		 * support, ignore it. |  		 * support, ignore it. | ||||||
| @@ -1390,7 +1394,6 @@ static int bgx_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | @@ -1390,7 +1394,6 @@ static int bgx_probe(struct pci_dev *pde | ||||||
|  		bgx->max_lmac = 1; |  		bgx->max_lmac = 1; | ||||||
|  		bgx->bgx_id = MAX_BGX_PER_CN81XX - 1; |  		bgx->bgx_id = MAX_BGX_PER_CN81XX - 1; | ||||||
|  		bgx_vnic[bgx->bgx_id] = bgx; |  		bgx_vnic[bgx->bgx_id] = bgx; | ||||||
| @@ -71,7 +69,7 @@ index 5e5c4d7..805c02a 100644 | |||||||
|  	} |  	} | ||||||
|   |   | ||||||
|  	/* On 81xx all are DLMs and on 83xx there are 3 BGX QLMs and one |  	/* 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 *pdev, const struct pci_device_id *ent) | @@ -1407,6 +1410,8 @@ static int bgx_probe(struct pci_dev *pde | ||||||
|  	if (err) |  	if (err) | ||||||
|  		goto err_enable; |  		goto err_enable; | ||||||
|   |   | ||||||
| @@ -80,11 +78,9 @@ index 5e5c4d7..805c02a 100644 | |||||||
|  	bgx_init_hw(bgx); |  	bgx_init_hw(bgx); | ||||||
|   |   | ||||||
|  	/* Enable all LMACs */ |  	/* Enable all LMACs */ | ||||||
| diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.h b/drivers/net/ethernet/cavium/thunder/thunder_bgx.h |  | ||||||
| index 23acdc5..2bba9d1 100644 |  | ||||||
| --- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.h | --- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.h | ||||||
| +++ b/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, int bgx_idx, | @@ -226,7 +226,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_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); |  void bgx_lmac_set_pfc(int node, int bgx_idx, int lmacid, void *pause); | ||||||
|   |   | ||||||
| @@ -93,8 +89,6 @@ index 23acdc5..2bba9d1 100644 | |||||||
|  void xcv_setup_link(bool link_up, int link_speed); |  void xcv_setup_link(bool link_up, int link_speed); | ||||||
|   |   | ||||||
|  u64 bgx_get_rx_stats(int node, int bgx_idx, int lmac, int idx); |  u64 bgx_get_rx_stats(int node, int bgx_idx, int lmac, int idx); | ||||||
| diff --git a/drivers/net/ethernet/cavium/thunder/thunder_xcv.c b/drivers/net/ethernet/cavium/thunder/thunder_xcv.c |  | ||||||
| index 578c7f8..7e0c4cb 100644 |  | ||||||
| --- a/drivers/net/ethernet/cavium/thunder/thunder_xcv.c | --- a/drivers/net/ethernet/cavium/thunder/thunder_xcv.c | ||||||
| +++ b/drivers/net/ethernet/cavium/thunder/thunder_xcv.c | +++ b/drivers/net/ethernet/cavium/thunder/thunder_xcv.c | ||||||
| @@ -65,7 +65,7 @@ MODULE_LICENSE("GPL v2"); | @@ -65,7 +65,7 @@ MODULE_LICENSE("GPL v2"); | ||||||
| @@ -143,6 +137,3 @@ index 578c7f8..7e0c4cb 100644 | |||||||
|  	writeq_relaxed(cfg, xcv->reg_base + XCV_DLL_CTL); |  	writeq_relaxed(cfg, xcv->reg_base + XCV_DLL_CTL); | ||||||
|   |   | ||||||
|  	/* Enable compensation controller and force the |  	/* Enable compensation controller and force the | ||||||
| --  |  | ||||||
| 2.7.4 |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -13,8 +13,6 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com> | |||||||
|  drivers/net/ethernet/cavium/thunder/thunder_bgx.h |  9 ++++ |  drivers/net/ethernet/cavium/thunder/thunder_bgx.h |  9 ++++ | ||||||
|  2 files changed, 63 insertions(+) |  2 files changed, 63 insertions(+) | ||||||
|  |  | ||||||
| diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c |  | ||||||
| index 805c02a..0690966 100644 |  | ||||||
| --- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c | --- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c | ||||||
| +++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c | +++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c | ||||||
| @@ -1344,6 +1344,54 @@ static int bgx_init_phy(struct bgx *bgx) | @@ -1344,6 +1344,54 @@ static int bgx_init_phy(struct bgx *bgx) | ||||||
| @@ -72,7 +70,7 @@ index 805c02a..0690966 100644 | |||||||
|  static int bgx_probe(struct pci_dev *pdev, const struct pci_device_id *ent) |  static int bgx_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | ||||||
|  { |  { | ||||||
|  	int err; |  	int err; | ||||||
| @@ -1414,6 +1462,8 @@ static int bgx_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | @@ -1414,6 +1462,8 @@ static int bgx_probe(struct pci_dev *pde | ||||||
|  		xcv_init_hw(bgx->phy_mode); |  		xcv_init_hw(bgx->phy_mode); | ||||||
|  	bgx_init_hw(bgx); |  	bgx_init_hw(bgx); | ||||||
|   |   | ||||||
| @@ -81,7 +79,7 @@ index 805c02a..0690966 100644 | |||||||
|  	/* Enable all LMACs */ |  	/* Enable all LMACs */ | ||||||
|  	for (lmac = 0; lmac < bgx->lmac_count; lmac++) { |  	for (lmac = 0; lmac < bgx->lmac_count; lmac++) { | ||||||
|  		err = bgx_lmac_enable(bgx, lmac); |  		err = bgx_lmac_enable(bgx, lmac); | ||||||
| @@ -1424,6 +1474,10 @@ static int bgx_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | @@ -1424,6 +1474,10 @@ static int bgx_probe(struct pci_dev *pde | ||||||
|  				bgx_lmac_disable(bgx, --lmac); |  				bgx_lmac_disable(bgx, --lmac); | ||||||
|  			goto err_enable; |  			goto err_enable; | ||||||
|  		} |  		} | ||||||
| @@ -92,8 +90,6 @@ index 805c02a..0690966 100644 | |||||||
|  	} |  	} | ||||||
|   |   | ||||||
|  	return 0; |  	return 0; | ||||||
| diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.h b/drivers/net/ethernet/cavium/thunder/thunder_bgx.h |  | ||||||
| index 2bba9d1..be9148f9 100644 |  | ||||||
| --- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.h | --- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.h | ||||||
| +++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.h | +++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.h | ||||||
| @@ -179,6 +179,15 @@ | @@ -179,6 +179,15 @@ | ||||||
| @@ -112,6 +108,3 @@ index 2bba9d1..be9148f9 100644 | |||||||
|   |   | ||||||
|  #define BGX_MSIX_VEC_0_29_ADDR		0x400000 /* +(0..29) << 4 */ |  #define BGX_MSIX_VEC_0_29_ADDR		0x400000 /* +(0..29) << 4 */ | ||||||
|  #define BGX_MSIX_VEC_0_29_CTL		0x400008 |  #define BGX_MSIX_VEC_0_29_CTL		0x400008 | ||||||
| --  |  | ||||||
| 2.7.4 |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ | |||||||
|  	int (*onfi_get_features)(struct mtd_info *mtd, struct nand_chip *chip, |  	int (*onfi_get_features)(struct mtd_info *mtd, struct nand_chip *chip, | ||||||
| --- a/drivers/mtd/nand/nand_base.c | --- a/drivers/mtd/nand/nand_base.c | ||||||
| +++ b/drivers/mtd/nand/nand_base.c | +++ b/drivers/mtd/nand/nand_base.c | ||||||
| @@ -2753,9 +2753,14 @@ static int nand_do_write_ops(struct mtd_ | @@ -2756,9 +2756,14 @@ static int nand_do_write_ops(struct mtd_ | ||||||
|  			memset(chip->oob_poi, 0xff, mtd->oobsize); |  			memset(chip->oob_poi, 0xff, mtd->oobsize); | ||||||
|  		} |  		} | ||||||
|   |   | ||||||
| @@ -30,7 +30,7 @@ | |||||||
|  		if (ret) |  		if (ret) | ||||||
|  			break; |  			break; | ||||||
|   |   | ||||||
| @@ -4711,6 +4716,9 @@ int nand_scan_tail(struct mtd_info *mtd) | @@ -4714,6 +4719,9 @@ int nand_scan_tail(struct mtd_info *mtd) | ||||||
|  		} |  		} | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ | |||||||
|  			if (ret < 0) { |  			if (ret < 0) { | ||||||
|  				if (use_bufpoi) |  				if (use_bufpoi) | ||||||
|  					/* Invalidate page cache */ |  					/* Invalidate page cache */ | ||||||
| @@ -3076,8 +3080,11 @@ int nand_erase_nand(struct mtd_info *mtd | @@ -3079,8 +3083,11 @@ int nand_erase_nand(struct mtd_info *mtd | ||||||
|  		    (page + pages_per_block)) |  		    (page + pages_per_block)) | ||||||
|  			chip->pagebuf = -1; |  			chip->pagebuf = -1; | ||||||
|   |   | ||||||
| @@ -31,7 +31,7 @@ | |||||||
|  		/* See if block erase succeeded */ |  		/* See if block erase succeeded */ | ||||||
|  		if (status & NAND_STATUS_FAIL) { |  		if (status & NAND_STATUS_FAIL) { | ||||||
|  			pr_debug("%s: failed erase, page 0x%08x\n", |  			pr_debug("%s: failed erase, page 0x%08x\n", | ||||||
| @@ -4207,6 +4214,7 @@ int nand_scan_ident(struct mtd_info *mtd | @@ -4210,6 +4217,7 @@ int nand_scan_ident(struct mtd_info *mtd | ||||||
|  		 * cmdfunc() both expect cmd_ctrl() to be populated, |  		 * cmdfunc() both expect cmd_ctrl() to be populated, | ||||||
|  		 * so we need to check that that's the case |  		 * so we need to check that that's the case | ||||||
|  		 */ |  		 */ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Stijn Tintel
					Stijn Tintel