KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
-LINUX_VERSION-4.14 = .155
+LINUX_VERSION-4.14 = .158
-LINUX_KERNEL_HASH-4.14.155 = 157cc3a734c0daabfe228aac13fe5fa2a277a7cc77325d73a140b45cb698264a
+LINUX_KERNEL_HASH-4.14.158 = e6479839c08c2f33ec8d8078818d48cb5a159ca695a768d69a20690638245904
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) {
--- 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)
par->hook_mask = 1 << ops->hooknum;
} else {
-@@ -318,7 +318,7 @@ static int nft_target_validate(const str
+@@ -337,7 +337,7 @@ static int nft_target_validate(const str
if (nft_is_base_chain(ctx->chain)) {
const struct nft_base_chain *basechain =
nft_base_chain(ctx->chain);
hook_mask = 1 << ops->hooknum;
if (target->hooks && !(hook_mask & target->hooks))
-@@ -415,7 +415,7 @@ nft_match_set_mtchk_param(struct xt_mtch
+@@ -434,7 +434,7 @@ nft_match_set_mtchk_param(struct xt_mtch
if (nft_is_base_chain(ctx->chain)) {
const struct nft_base_chain *basechain =
nft_base_chain(ctx->chain);
par->hook_mask = 1 << ops->hooknum;
} else {
-@@ -566,7 +566,7 @@ static int nft_match_validate(const stru
+@@ -586,7 +586,7 @@ static int nft_match_validate(const stru
if (nft_is_base_chain(ctx->chain)) {
const struct nft_base_chain *basechain =
nft_base_chain(ctx->chain);
if (par.target->destroy != NULL)
par.target->destroy(&par);
-@@ -390,7 +390,7 @@ nft_match_set_mtchk_param(struct xt_mtch
+@@ -409,7 +409,7 @@ nft_match_set_mtchk_param(struct xt_mtch
{
par->net = ctx->net;
par->table = ctx->table->name;
case AF_INET:
entry->e4.ip.proto = proto;
entry->e4.ip.invflags = inv ? IPT_INV_PROTO : 0;
-@@ -421,7 +421,7 @@ nft_match_set_mtchk_param(struct xt_mtch
+@@ -440,7 +440,7 @@ nft_match_set_mtchk_param(struct xt_mtch
} else {
par->hook_mask = 0;
}
par->nft_compat = true;
}
-@@ -504,7 +504,7 @@ __nft_match_destroy(const struct nft_ctx
+@@ -523,7 +523,7 @@ __nft_match_destroy(const struct nft_ctx
par.net = ctx->net;
par.match = match;
par.matchinfo = info;
if (par.match->destroy != NULL)
par.match->destroy(&par);
-@@ -734,7 +734,7 @@ nft_match_select_ops(const struct nft_ct
+@@ -754,7 +754,7 @@ nft_match_select_ops(const struct nft_ct
mt_name = nla_data(tb[NFTA_MATCH_NAME]);
rev = ntohl(nla_get_be32(tb[NFTA_MATCH_REV]));
/* Re-use the existing match if it's already loaded. */
list_for_each_entry(nft_match, &nft_match_list, head) {
-@@ -825,7 +825,7 @@ nft_target_select_ops(const struct nft_c
+@@ -845,7 +845,7 @@ nft_target_select_ops(const struct nft_c
tg_name = nla_data(tb[NFTA_TARGET_NAME]);
rev = ntohl(nla_get_be32(tb[NFTA_TARGET_REV]));
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
errors per {size} bytes".
--- a/drivers/mtd/maps/physmap_of_core.c
+++ b/drivers/mtd/maps/physmap_of_core.c
-@@ -114,37 +114,9 @@ static struct mtd_info *obsolete_probe(s
+@@ -105,37 +105,9 @@ static struct mtd_info *obsolete_probe(s
static const char * const part_probe_types_def[] = {
"cmdlinepart", "RedBoot", "ofpart", "ofoldpart", NULL };
const struct of_device_id *match;
struct device_node *dp = dev->dev.of_node;
struct resource res;
-@@ -310,14 +282,8 @@ static int of_flash_probe(struct platfor
+@@ -293,14 +265,8 @@ static int of_flash_probe(struct platfor
info->cmtd->dev.parent = &dev->dev;
mtd_set_of_node(info->cmtd, dp);
#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;
}
if MTD
-+menu "libreCMC specific MTD options"
++menu "OpenWrt specific MTD options"
+
+config MTD_ROOTFS_ROOT_DEV
+ bool "Automatically set 'rootfs' partition to be root filesystem"
/*
* 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);
CONFIG_SERIO_I8042=y
CONFIG_SERIO_LIBPS2=y
CONFIG_SERIO_SERPORT=y
+# CONFIG_SGL_ALLOC is not set
CONFIG_SG_POOL=y
# CONFIG_SMSC37B787_WDT is not set
# CONFIG_SMSC_SCH311X_WDT is not set
CONFIG_X86_GENERIC=y
# CONFIG_X86_GX_SUSPMOD is not set
# CONFIG_X86_INTEL_PSTATE is not set
+# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set
+CONFIG_X86_INTEL_TSX_MODE_OFF=y
+# CONFIG_X86_INTEL_TSX_MODE_ON is not set
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
CONFIG_X86_IO_APIC=y