Refreshed all patches.
Altered patches:
- 400-mtd-add-rootfs-split-support.patch
Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
-LINUX_VERSION-4.14 = .156
+LINUX_VERSION-4.14 = .158
-LINUX_KERNEL_HASH-4.14.156 = f8889feb0cbd7df36ff35bd4c72c1e2010567621bfcb218fcfa501bc5c7787c0
+LINUX_KERNEL_HASH-4.14.158 = 0d49ec72e273f6fc7462ad56849b2285f13fd5f4185e8f932a0074fc2eca1bb3
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
#include <linux/uaccess.h>
#include <linux/ipv6.h>
#include <linux/icmpv6.h>
-@@ -819,10 +820,10 @@ static void tcp_v6_send_response(const s
+@@ -820,10 +821,10 @@ static void tcp_v6_send_response(const s
topt = (__be32 *)(t1 + 1);
if (tsecr) {
#include <linux/uaccess.h>
#include <linux/ipv6.h>
#include <linux/icmpv6.h>
-@@ -819,10 +820,10 @@ static void tcp_v6_send_response(const s
+@@ -820,10 +821,10 @@ static void tcp_v6_send_response(const s
topt = (__be32 *)(t1 + 1);
if (tsecr) {
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
-@@ -1965,7 +1965,8 @@ static const struct usb_device_id option
+@@ -1968,7 +1968,8 @@ static const struct usb_device_id option
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) }, /* D-Link DWM-156 (variant) */
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
#include "mtdcore.h"
-@@ -894,6 +895,92 @@ static int mtd_part_do_parse(struct mtd_
+@@ -919,6 +920,92 @@ static int mtd_part_do_parse(struct mtd_
}
/**
* parse_mtd_partitions - parse MTD partitions
* @master: the master partition (describes whole MTD device)
* @types: names of partition parsers to try or %NULL
-@@ -925,19 +1012,30 @@ int parse_mtd_partitions(struct mtd_info
+@@ -950,19 +1037,30 @@ int parse_mtd_partitions(struct mtd_info
types = default_mtd_part_types;
for ( ; *types; types++) {
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
-@@ -940,7 +940,7 @@ static int mtd_part_of_parse(struct mtd_
+@@ -965,7 +965,7 @@ static int mtd_part_of_parse(struct mtd_
struct device_node *np;
struct property *prop;
const char *compat;
int ret, err = 0;
np = of_get_child_by_name(mtd_get_of_node(master), "partitions");
-@@ -960,7 +960,7 @@ static int mtd_part_of_parse(struct mtd_
+@@ -985,7 +985,7 @@ static int mtd_part_of_parse(struct mtd_
of_node_put(np);
/*
}
static struct mtd_part *allocate_partition(struct mtd_info *parent,
-@@ -981,30 +968,27 @@ static int mtd_part_of_parse(struct mtd_
+@@ -1006,30 +993,27 @@ static int mtd_part_of_parse(struct mtd_
}
/**
struct mtd_part_parser *parser;
int ret, err = 0;
-@@ -1018,7 +1002,7 @@ int parse_mtd_partitions(struct mtd_info
+@@ -1043,7 +1027,7 @@ int parse_mtd_partitions(struct mtd_info
* handled in a separated function.
*/
if (!strcmp(*types, "ofpart")) {
} else {
pr_debug("%s: parsing partitions %s\n", master->name,
*types);
-@@ -1029,13 +1013,17 @@ int parse_mtd_partitions(struct mtd_info
+@@ -1054,13 +1038,17 @@ int parse_mtd_partitions(struct mtd_info
parser ? parser->name : NULL);
if (!parser)
continue;
static struct mtd_part *allocate_partition(struct mtd_info *parent,
const struct mtd_partition *part, int partno,
uint64_t cur_offset)
-@@ -783,8 +767,8 @@ int add_mtd_partitions(struct mtd_info *
+@@ -803,8 +787,8 @@ int add_mtd_partitions(struct mtd_info *
+ }
- add_mtd_device(&slave->mtd);
mtd_add_partition_attrs(slave);
- if (parts[i].types)
- mtd_parse_part(slave, parts[i].types);
cur_offset = slave->offset + slave->mtd.size;
}
-@@ -860,6 +844,12 @@ static const char * const default_mtd_pa
+@@ -885,6 +869,12 @@ static const char * const default_mtd_pa
NULL
};
static int mtd_part_do_parse(struct mtd_part_parser *parser,
struct mtd_info *master,
struct mtd_partitions *pparts,
-@@ -930,7 +920,9 @@ static int mtd_part_of_parse(struct mtd_
+@@ -955,7 +945,9 @@ static int mtd_part_of_parse(struct mtd_
const char *fixed = "fixed-partitions";
int ret, err = 0;
of_property_for_each_string(np, "compatible", prop, compat) {
parser = mtd_part_get_compatible_parser(compat);
if (!parser)
-@@ -993,7 +985,8 @@ int parse_mtd_partitions(struct mtd_info
+@@ -1018,7 +1010,8 @@ int parse_mtd_partitions(struct mtd_info
int ret, err = 0;
if (!types)
depends on BROKEN || !FRV
--- a/kernel/Makefile
+++ b/kernel/Makefile
-@@ -113,6 +113,7 @@ obj-$(CONFIG_CONTEXT_TRACKING) += contex
+@@ -110,6 +110,7 @@ obj-$(CONFIG_CONTEXT_TRACKING) += contex
obj-$(CONFIG_TORTURE_TEST) += torture.o
obj-$(CONFIG_HAS_IOMEM) += memremap.o
#include <linux/err.h>
#include <linux/of.h>
-@@ -844,6 +845,37 @@ void deregister_mtd_parser(struct mtd_pa
+@@ -869,6 +870,37 @@ void deregister_mtd_parser(struct mtd_pa
}
EXPORT_SYMBOL_GPL(deregister_mtd_parser);
/*
* Do not forget to update 'parse_mtd_partitions()' kerneldoc comment if you
* are changing this array!
-@@ -993,6 +1025,13 @@ int parse_mtd_partitions(struct mtd_info
+@@ -1018,6 +1050,13 @@ int parse_mtd_partitions(struct mtd_info
struct mtd_partitions pparts = { };
struct mtd_part_parser *parser;
int ret, err = 0;
if (!types)
types = mtd_is_partition(master) ? default_subpartition_types :
-@@ -1034,6 +1073,7 @@ int parse_mtd_partitions(struct mtd_info
+@@ -1059,6 +1098,7 @@ int parse_mtd_partitions(struct mtd_info
if (ret < 0 && !err)
err = ret;
}
/*
* Given a pointer to the MTD object in the mtd_part structure, we can retrieve
* the pointer to that structure.
-@@ -668,6 +672,7 @@ int mtd_add_partition(struct mtd_info *p
- mutex_unlock(&mtd_partitions_mutex);
+@@ -671,6 +675,7 @@ int mtd_add_partition(struct mtd_info *p
+ if (ret)
+ goto err_remove_part;
- add_mtd_device(&new->mtd);
+ mtd_partition_split(parent, new);
-
mtd_add_partition_attrs(new);
-@@ -746,6 +751,29 @@ int mtd_del_partition(struct mtd_info *m
+ return 0;
+@@ -757,6 +762,29 @@ int mtd_del_partition(struct mtd_info *m
}
EXPORT_SYMBOL_GPL(mtd_del_partition);
/*
* This function, given a master MTD object and a partition table, creates
* and registers slave MTD objects which are bound to the master according to
-@@ -777,6 +805,7 @@ int add_mtd_partitions(struct mtd_info *
- mutex_unlock(&mtd_partitions_mutex);
+@@ -797,6 +825,7 @@ int add_mtd_partitions(struct mtd_info *
+ goto err_del_partitions;
+ }
- add_mtd_device(&slave->mtd);
+ mtd_partition_split(master, slave);
mtd_add_partition_attrs(slave);
/* Look for subpartitions */
/*
* Given a pointer to the MTD object in the mtd_part structure, we can retrieve
-@@ -751,6 +755,36 @@ int mtd_del_partition(struct mtd_info *m
+@@ -762,6 +766,36 @@ int mtd_del_partition(struct mtd_info *m
}
EXPORT_SYMBOL_GPL(mtd_del_partition);
#ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME
#define SPLIT_FIRMWARE_NAME CONFIG_MTD_SPLIT_FIRMWARE_NAME
#else
-@@ -1122,6 +1156,61 @@ void mtd_part_parser_cleanup(struct mtd_
+@@ -1147,6 +1181,61 @@ void mtd_part_parser_cleanup(struct mtd_
}
}
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
-@@ -793,6 +793,7 @@ run_parsers_by_type(struct mtd_part *sla
+@@ -804,6 +804,7 @@ run_parsers_by_type(struct mtd_part *sla
static void split_firmware(struct mtd_info *master, struct mtd_part *part)
{
}
static void mtd_partition_split(struct mtd_info *master, struct mtd_part *part)
-@@ -802,6 +803,12 @@ static void mtd_partition_split(struct m
+@@ -813,6 +814,12 @@ static void mtd_partition_split(struct m
if (rootfs_found)
return;
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
-@@ -1235,6 +1235,24 @@ int mtd_is_partition(const struct mtd_in
+@@ -1260,6 +1260,24 @@ int mtd_is_partition(const struct mtd_in
}
EXPORT_SYMBOL_GPL(mtd_is_partition);
help
--- a/init/main.c
+++ b/init/main.c
-@@ -359,6 +359,29 @@ static inline void setup_nr_cpu_ids(void
+@@ -358,6 +358,29 @@ static inline void setup_nr_cpu_ids(void
static inline void smp_prepare_cpus(unsigned int maxcpus) { }
#endif
/*
* We need to store the untouched command line for future reference.
* We also need to store the touched command line since the parameter
-@@ -540,6 +563,7 @@ asmlinkage __visible void __init start_k
+@@ -539,6 +562,7 @@ asmlinkage __visible void __init start_k
add_device_randomness(command_line, strlen(command_line));
boot_init_stack_canary();
mm_init_cpumask(&init_mm);
static int kernel_init(void *);
extern void init_IRQ(void);
-@@ -574,6 +578,18 @@ asmlinkage __visible void __init start_k
+@@ -573,6 +577,18 @@ asmlinkage __visible void __init start_k
page_alloc_init();
pr_notice("Kernel command line: %s\n", boot_command_line);
} else if (has_acpi_companion(dma_dev)) {
--- a/drivers/gpu/ipu-v3/ipu-pre.c
+++ b/drivers/gpu/ipu-v3/ipu-pre.c
-@@ -124,7 +124,8 @@ ipu_pre_lookup_by_phandle(struct device
+@@ -125,7 +125,8 @@ ipu_pre_lookup_by_phandle(struct device
list_for_each_entry(pre, &ipu_pre_list, list) {
if (pre_node == pre->dev->of_node) {
mutex_unlock(&ipu_pre_list_mutex);
static int kernel_init(void *);
extern void init_IRQ(void);
-@@ -574,6 +578,18 @@ asmlinkage __visible void __init start_k
+@@ -573,6 +577,18 @@ asmlinkage __visible void __init start_k
page_alloc_init();
pr_notice("Kernel command line: %s\n", boot_command_line);
static int kernel_init(void *);
extern void init_IRQ(void);
-@@ -574,6 +578,18 @@ asmlinkage __visible void __init start_k
+@@ -573,6 +577,18 @@ asmlinkage __visible void __init start_k
page_alloc_init();
pr_notice("Kernel command line: %s\n", boot_command_line);
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
-@@ -2735,6 +2735,18 @@ static const struct usb_device_id uvc_id
+@@ -2737,6 +2737,18 @@ static const struct usb_device_id uvc_id
.bInterfaceSubClass = 1,
.bInterfaceProtocol = 0,
.driver_info = UVC_QUIRK_FORCE_Y8 },
--- a/arch/mips/ralink/of.c
+++ b/arch/mips/ralink/of.c
-@@ -106,6 +106,8 @@ void __init plat_mem_setup(void)
+@@ -89,6 +89,8 @@ void __init plat_mem_setup(void)
of_scan_flat_dt(early_init_dt_find_memory, NULL);
if (memory_dtb)
of_scan_flat_dt(early_init_dt_scan_memory, NULL);