-LINUX_VERSION-5.15 = .67
-LINUX_KERNEL_HASH-5.15.67 = da47d9a80b694548835ccb553b6eb1a1f3f5d5cddd9e2bd6f4886b99ca14f940
+LINUX_VERSION-5.15 = .68
+LINUX_KERNEL_HASH-5.15.68 = 17bbb3cb5c9ba18583b6679cc28f828aec49c72abbfc6fbde310b0cb17218b7e
-diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index 66f5d6c3..05cd3385 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -571,6 +571,18 @@ config ARCH_VIRT
- select HAVE_ARM_ARCH_TIMER
- select ARCH_SUPPORTS_BIG_ENDIAN
-
+ select HAVE_ARM_ARCH_TIMER
+ select ARCH_SUPPORTS_BIG_ENDIAN
+
+config ARCH_AIROHA
+ bool "Airoha SoC Support"
+ depends on ARCH_MULTI_V7
#
# This is sorted alphabetically by mach-* pathname. However, plat-*
# Kconfigs may be included either alphabetically (according to the
-diff --git a/arch/arm/Makefile b/arch/arm/Makefile
-index fa45837b..c34f7463 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
-@@ -156,6 +156,7 @@ textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000
+@@ -156,6 +156,7 @@ textofs-$(CONFIG_ARCH_AXXIA) := 0x003080
# Machine directory name. This list is sorted alphanumerically
# by CONFIG_* macro name.
machine-$(CONFIG_ARCH_ACTIONS) += actions
-diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig
-index c5b3dc97..c973ac1a 100644
--- a/drivers/clk/Kconfig
+++ b/drivers/clk/Kconfig
@@ -192,6 +192,15 @@ config COMMON_CLK_CS2000_CP
- help
- If you say yes here you get support for the CS2000 clock multiplier.
-
+ help
+ If you say yes here you get support for the CS2000 clock multiplier.
+
+config COMMON_CLK_EN7523
+ bool "Clock driver for Airoha EN7523 SoC system clocks"
+ depends on OF
+ ARM silicon.
+
config COMMON_CLK_FSL_FLEXSPI
- tristate "Clock driver for FlexSPI on Layerscape SoCs"
- depends on ARCH_LAYERSCAPE || COMPILE_TEST
-diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile
-index e4231212..be11d88c 100644
+ tristate "Clock driver for FlexSPI on Layerscape SoCs"
+ depends on ARCH_LAYERSCAPE || COMPILE_TEST
--- a/drivers/clk/Makefile
+++ b/drivers/clk/Makefile
-@@ -27,6 +27,7 @@ obj-$(CONFIG_COMMON_CLK_CDCE925) += clk-cdce925.o
+@@ -27,6 +27,7 @@ obj-$(CONFIG_COMMON_CLK_CDCE925) += clk-
obj-$(CONFIG_ARCH_CLPS711X) += clk-clps711x.o
obj-$(CONFIG_COMMON_CLK_CS2000_CP) += clk-cs2000-cp.o
obj-$(CONFIG_ARCH_SPARX5) += clk-sparx5.o
-diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
-index cbfb6f13..b3106df6 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -247,6 +247,16 @@ config GPIO_EM
- help
- Say yes here to support GPIO on Renesas Emma Mobile SoCs.
-
+ help
+ Say yes here to support GPIO on Renesas Emma Mobile SoCs.
+
+config GPIO_EN7523
+ tristate "Airoha GPIO support"
+ depends on ARCH_AIROHA
+ Airoha EN7523 SoC. It supports two banks of 32 GPIOs.
+
config GPIO_EP93XX
- def_bool y
- depends on ARCH_EP93XX
-diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
-index 61202717..4c73ce82 100644
+ def_bool y
+ depends on ARCH_EP93XX
--- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile
@@ -57,6 +57,7 @@ obj-$(CONFIG_GPIO_DLN2) += gpio-dln2.o
.../arm/boot/compressed/fdt_check_mem_start.c | 48 ++++++++++++++++---
1 file changed, 42 insertions(+), 6 deletions(-)
-diff --git a/arch/arm/boot/compressed/fdt_check_mem_start.c b/arch/arm/boot/compressed/fdt_check_mem_start.c
-index 62450d824c3c..9291a2661bdf 100644
--- a/arch/arm/boot/compressed/fdt_check_mem_start.c
+++ b/arch/arm/boot/compressed/fdt_check_mem_start.c
-@@ -55,16 +55,17 @@ static uint64_t get_val(const fdt32_t *cells, uint32_t ncells)
+@@ -55,16 +55,17 @@ static uint64_t get_val(const fdt32_t *c
* DTB, and, if out-of-range, replace it by the real start address.
* To preserve backwards compatibility (systems reserving a block of memory
* at the start of physical memory, kdump, ...), the traditional method is
{
- uint32_t addr_cells, size_cells, base;
+ uint32_t addr_cells, size_cells, usable_base, base;
- uint32_t fdt_mem_start = 0xffffffff;
+ uint32_t fdt_mem_start = 0xffffffff;
- const fdt32_t *reg, *endp;
- uint64_t size, end;
+ const fdt32_t *usable, *reg, *endp;
+ uint64_t size, usable_end, end;
- const char *type;
- int offset, len;
-
-@@ -80,6 +81,27 @@ uint32_t fdt_check_mem_start(uint32_t mem_start, const void *fdt)
- if (addr_cells > 2 || size_cells > 2)
- return mem_start;
-
+ const char *type;
+ int offset, len;
+
+@@ -80,6 +81,27 @@ uint32_t fdt_check_mem_start(uint32_t me
+ if (addr_cells > 2 || size_cells > 2)
+ return mem_start;
+
+ /*
+ * Usable memory in case of a crash dump kernel
+ * This property describes a limitation: memory within this range is
+ usable_end = usable_base + size;
+ }
+
- /* Walk all memory nodes and regions */
- for (offset = fdt_next_node(fdt, -1, NULL); offset >= 0;
- offset = fdt_next_node(fdt, offset, NULL)) {
-@@ -107,7 +129,20 @@ uint32_t fdt_check_mem_start(uint32_t mem_start, const void *fdt)
-
- base = fdt32_ld(reg + addr_cells - 1);
- end = base + size;
+ /* Walk all memory nodes and regions */
+ for (offset = fdt_next_node(fdt, -1, NULL); offset >= 0;
+ offset = fdt_next_node(fdt, offset, NULL)) {
+@@ -107,7 +129,20 @@ uint32_t fdt_check_mem_start(uint32_t me
+
+ base = fdt32_ld(reg + addr_cells - 1);
+ end = base + size;
- if (mem_start >= base && mem_start < end) {
+ if (usable) {
+ /*
+ if (end <= base)
+ continue;
+ } else if (mem_start >= base && mem_start < end) {
- /* Calculated address is valid, use it */
- return mem_start;
- }
-@@ -123,7 +158,8 @@ uint32_t fdt_check_mem_start(uint32_t mem_start, const void *fdt)
- }
-
- /*
+ /* Calculated address is valid, use it */
+ return mem_start;
+ }
+@@ -123,7 +158,8 @@ uint32_t fdt_check_mem_start(uint32_t me
+ }
+
+ /*
- * The calculated address is not usable.
+ * The calculated address is not usable, or was overridden by the
+ * "linux,usable-memory-range" property.
- * Use the lowest usable physical memory address from the DTB instead,
- * and make sure this is a multiple of 2 MiB for phys/virt patching.
- */
---
-2.35.1
+ * Use the lowest usable physical memory address from the DTB instead,
+ * and make sure this is a multiple of 2 MiB for phys/virt patching.
+ */
-diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
-index 83e352b0..5f7defe4 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -308,6 +308,12 @@ config SPI_DLN2
- This driver can also be built as a module. If so, the module
- will be called spi-dln2.
-
+ This driver can also be built as a module. If so, the module
+ will be called spi-dln2.
+
+config SPI_AIROHA_EN7523
+ bool "Airoha EN7523 SPI controller support"
+ depends on ARCH_AIROHA
+ This enables SPI controller support for the Airoha EN7523 SoC.
+
config SPI_EP93XX
- tristate "Cirrus Logic EP93xx SPI controller"
- depends on ARCH_EP93XX || COMPILE_TEST
-diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
-index 699db95c..6c9460f7 100644
+ tristate "Cirrus Logic EP93xx SPI controller"
+ depends on ARCH_EP93XX || COMPILE_TEST
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
-@@ -45,6 +45,7 @@ obj-$(CONFIG_SPI_DW_BT1) += spi-dw-bt1.o
+@@ -45,6 +45,7 @@ obj-$(CONFIG_SPI_DW_BT1) += spi-dw-bt1.
obj-$(CONFIG_SPI_DW_MMIO) += spi-dw-mmio.o
obj-$(CONFIG_SPI_DW_PCI) += spi-dw-pci.o
obj-$(CONFIG_SPI_EP93XX) += spi-ep93xx.o
obj-$(CONFIG_SPI_FALCON) += spi-falcon.o
obj-$(CONFIG_SPI_FSI) += spi-fsi.o
obj-$(CONFIG_SPI_FSL_CPM) += spi-fsl-cpm.o
-diff --git a/drivers/spi/spi-en7523.c b/drivers/spi/spi-en7523.c
-new file mode 100644
-index 00000000..322bf2eb
--- /dev/null
+++ b/drivers/spi/spi-en7523.c
@@ -0,0 +1,311 @@
drivers/pci/controller/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig
-index b8d96d38064d..2f6806dc2a20 100644
--- a/drivers/pci/controller/Kconfig
+++ b/drivers/pci/controller/Kconfig
-@@ -237,7 +237,7 @@ config PCIE_ROCKCHIP_EP
-
+@@ -233,7 +233,7 @@ config PCIE_ROCKCHIP_EP
+
config PCIE_MEDIATEK
- tristate "MediaTek PCIe controller"
+ tristate "MediaTek PCIe controller"
- depends on ARCH_MEDIATEK || COMPILE_TEST
+ depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST
- depends on OF
- depends on PCI_MSI_IRQ_DOMAIN
- help
---
-2.35.1
+ depends on OF
+ depends on PCI_MSI_IRQ_DOMAIN
+ help
EXPORT_SYMBOL(xfrm_parse_spi);
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
-@@ -4140,14 +4140,16 @@ static bool tcp_parse_aligned_timestamp(
+@@ -4151,14 +4151,16 @@ static bool tcp_parse_aligned_timestamp(
{
const __be32 *ptr = (const __be32 *)(th + 1);
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
-@@ -5834,6 +5834,9 @@ int __init cgroup_init_early(void)
+@@ -5875,6 +5875,9 @@ int __init cgroup_init_early(void)
return 0;
}
/**
* cgroup_init - cgroup initialization
*
-@@ -5872,6 +5875,12 @@ int __init cgroup_init(void)
+@@ -5913,6 +5916,12 @@ int __init cgroup_init(void)
mutex_unlock(&cgroup_mutex);
for_each_subsys(ss, ssid) {
if (ss->early_init) {
struct cgroup_subsys_state *css =
-@@ -6456,6 +6465,10 @@ static int __init cgroup_disable(char *s
+@@ -6497,6 +6506,10 @@ static int __init cgroup_disable(char *s
strcmp(token, ss->legacy_name))
continue;
static_branch_disable(cgroup_subsys_enabled_key[i]);
pr_info("Disabling %s control group subsystem\n",
ss->name);
-@@ -6474,6 +6487,31 @@ static int __init cgroup_disable(char *s
+@@ -6515,6 +6528,31 @@ static int __init cgroup_disable(char *s
}
__setup("cgroup_disable=", cgroup_disable);
*/
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2824,6 +2824,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -2851,6 +2851,10 @@ static inline int pskb_trim(struct sk_bu
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
}
/**
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
* @skb: buffer to alter
-@@ -2974,16 +2978,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -3001,16 +3005,6 @@ static inline struct sk_buff *dev_alloc_
}
--- a/arch/arm64/kernel/cpufeature.c
+++ b/arch/arm64/kernel/cpufeature.c
-@@ -2184,6 +2184,16 @@ static const struct arm64_cpu_capabiliti
+@@ -2187,6 +2187,16 @@ static const struct arm64_cpu_capabiliti
.matches = has_hw_dbm,
.cpu_enable = cpu_enable_hw_dbm,
},
mmdrop(mm);
}
-@@ -2616,6 +2618,13 @@ pid_t kernel_clone(struct kernel_clone_a
+@@ -2617,6 +2619,13 @@ pid_t kernel_clone(struct kernel_clone_a
get_task_struct(p);
}
/*
* Get the required data from the packet.
*/
-@@ -1160,7 +1163,7 @@ int nf_conntrack_tcp_packet(struct nf_co
+@@ -1191,7 +1194,7 @@ int nf_conntrack_tcp_packet(struct nf_co
IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED &&
timeouts[new_state] > timeouts[TCP_CONNTRACK_UNACK])
timeout = timeouts[TCP_CONNTRACK_UNACK];
timeouts[new_state] > timeouts[TCP_CONNTRACK_RETRANS])
timeout = timeouts[TCP_CONNTRACK_RETRANS];
else
-@@ -1476,6 +1479,9 @@ void nf_conntrack_tcp_init_net(struct ne
+@@ -1507,6 +1510,9 @@ void nf_conntrack_tcp_init_net(struct ne
*/
tn->tcp_be_liberal = 0;
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2790,7 +2790,7 @@ static inline int pskb_network_may_pull(
+@@ -2817,7 +2817,7 @@ static inline int pskb_network_may_pull(
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/
#ifndef NET_SKB_PAD
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
-@@ -1794,6 +1794,14 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_MANGL
+@@ -1729,6 +1729,14 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
endchoice
default ""
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
-@@ -1059,6 +1059,17 @@ int __init early_init_dt_scan_chosen(uns
+@@ -1162,6 +1162,17 @@ int __init early_init_dt_scan_chosen(uns
if (p != NULL && l > 0)
strlcat(data, p, min_t(int, strlen(data) + (int)l, COMMAND_LINE_SIZE));
arch/powerpc/platforms/85xx/Makefile | 1 +
4 files changed, 20 insertions(+), 1 deletion(-)
-Index: linux-5.15.67/arch/powerpc/boot/Makefile
-===================================================================
---- linux-5.15.67.orig/arch/powerpc/boot/Makefile
-+++ linux-5.15.67/arch/powerpc/boot/Makefile
+--- a/arch/powerpc/boot/Makefile
++++ b/arch/powerpc/boot/Makefile
@@ -162,6 +162,7 @@ src-plat-$(CONFIG_PPC_PSERIES) += pserie
src-plat-$(CONFIG_PPC_POWERNV) += pseries-head.S
src-plat-$(CONFIG_PPC_IBM_CELL_BLADE) += pseries-head.S
# Board ports in arch/powerpc/platform/86xx/Kconfig
image-$(CONFIG_MVME7100) += dtbImage.mvme7100
-Index: linux-5.15.67/arch/powerpc/boot/wrapper
-===================================================================
---- linux-5.15.67.orig/arch/powerpc/boot/wrapper
-+++ linux-5.15.67/arch/powerpc/boot/wrapper
+--- a/arch/powerpc/boot/wrapper
++++ b/arch/powerpc/boot/wrapper
@@ -326,6 +326,11 @@ adder875-redboot)
platformo="$object/fixed-head.o $object/redboot-8xx.o"
binary=y
simpleboot-*)
platformo="$object/fixed-head.o $object/simpleboot.o"
binary=y
-Index: linux-5.15.67/arch/powerpc/platforms/85xx/Kconfig
-===================================================================
---- linux-5.15.67.orig/arch/powerpc/platforms/85xx/Kconfig
-+++ linux-5.15.67/arch/powerpc/platforms/85xx/Kconfig
+--- a/arch/powerpc/platforms/85xx/Kconfig
++++ b/arch/powerpc/platforms/85xx/Kconfig
@@ -170,6 +170,18 @@ config STX_GP3
select CPM2
select DEFAULT_UIMAGE
config TQM8540
bool "TQ Components TQM8540"
help
-Index: linux-5.15.67/arch/powerpc/platforms/85xx/Makefile
-===================================================================
---- linux-5.15.67.orig/arch/powerpc/platforms/85xx/Makefile
-+++ linux-5.15.67/arch/powerpc/platforms/85xx/Makefile
+--- a/arch/powerpc/platforms/85xx/Makefile
++++ b/arch/powerpc/platforms/85xx/Makefile
@@ -27,6 +27,7 @@ obj-$(CONFIG_TWR_P102x) += twr_p102x.o
obj-$(CONFIG_CORENET_GENERIC) += corenet_generic.o
obj-$(CONFIG_FB_FSL_DIU) += t1042rdb_diu.o
-Index: linux-5.15.67/arch/powerpc/Kconfig
-===================================================================
---- linux-5.15.67.orig/arch/powerpc/Kconfig
-+++ linux-5.15.67/arch/powerpc/Kconfig
+--- a/arch/powerpc/Kconfig
++++ b/arch/powerpc/Kconfig
@@ -915,6 +915,14 @@ config CMDLINE_FORCE
endchoice
config EXTRA_TARGETS
string "Additional default image types"
help
-Index: linux-5.15.67/drivers/of/fdt.c
-===================================================================
---- linux-5.15.67.orig/drivers/of/fdt.c
-+++ linux-5.15.67/drivers/of/fdt.c
+--- a/drivers/of/fdt.c
++++ b/drivers/of/fdt.c
@@ -1162,6 +1162,17 @@ int __init early_init_dt_scan_chosen(uns
if (p != NULL && l > 0)
strlcat(data, p, min_t(int, strlen(data) + (int)l, COMMAND_LINE_SIZE));
-Index: linux-5.15.67/arch/powerpc/platforms/85xx/Kconfig
-===================================================================
---- linux-5.15.67.orig/arch/powerpc/platforms/85xx/Kconfig
-+++ linux-5.15.67/arch/powerpc/platforms/85xx/Kconfig
+--- a/arch/powerpc/platforms/85xx/Kconfig
++++ b/arch/powerpc/platforms/85xx/Kconfig
@@ -173,6 +173,16 @@ config XES_MPC85xx
Manufacturer: Extreme Engineering Solutions, Inc.
URL: <https://www.xes-inc.com/>
config STX_GP3
bool "Silicon Turnkey Express GP3"
help
-Index: linux-5.15.67/arch/powerpc/platforms/85xx/Makefile
-===================================================================
---- linux-5.15.67.orig/arch/powerpc/platforms/85xx/Makefile
-+++ linux-5.15.67/arch/powerpc/platforms/85xx/Makefile
+--- a/arch/powerpc/platforms/85xx/Makefile
++++ b/arch/powerpc/platforms/85xx/Makefile
@@ -27,6 +27,7 @@ obj-$(CONFIG_P1023_RDB) += p1023_rdb.o
obj-$(CONFIG_TWR_P102x) += twr_p102x.o
obj-$(CONFIG_CORENET_GENERIC) += corenet_generic.o
drivers/gpio/gpio-mpc8xxx.c | 1 +
1 file changed, 1 insertion(+)
-Index: linux-5.15.67/drivers/gpio/gpio-mpc8xxx.c
-===================================================================
---- linux-5.15.67.orig/drivers/gpio/gpio-mpc8xxx.c
-+++ linux-5.15.67/drivers/gpio/gpio-mpc8xxx.c
+--- a/drivers/gpio/gpio-mpc8xxx.c
++++ b/drivers/gpio/gpio-mpc8xxx.c
@@ -172,6 +172,7 @@ static int mpc8xxx_irq_set_type(struct i
switch (flow_type) {
arch/powerpc/boot/Makefile | 9 ---------
1 file changed, 9 deletions(-)
-Index: linux-5.15.67/arch/powerpc/boot/Makefile
-===================================================================
---- linux-5.15.67.orig/arch/powerpc/boot/Makefile
-+++ linux-5.15.67/arch/powerpc/boot/Makefile
+--- a/arch/powerpc/boot/Makefile
++++ b/arch/powerpc/boot/Makefile
@@ -271,7 +271,6 @@ image-$(CONFIG_PPC_CHRP) += zImage.chrp
image-$(CONFIG_PPC_EFIKA) += zImage.chrp
image-$(CONFIG_PPC_PMAC) += zImage.pmac