LINUX_VERSION-3.18 = .135
LINUX_VERSION-4.9 = .159
-LINUX_VERSION-4.14 = .101
+LINUX_VERSION-4.14 = .102
LINUX_VERSION-4.19 = .23
LINUX_KERNEL_HASH-3.18.135 = d1853eb6e5438abb0b54d11478c0792554e39325d37a3f04b68f6c151ed8f8eb
LINUX_KERNEL_HASH-4.9.159 = 9f9df13168a090d12314e2e8dac040e71ce3f2ed89eafbece2b14dabb6771742
-LINUX_KERNEL_HASH-4.14.101 = 142ff7c51b001c66e9be134fcec2722f9a47b89879a18e6f65b09b4585cdb69a
+LINUX_KERNEL_HASH-4.14.102 = d8a982cfa2804edc2ae9d20792ab0e3897f3976ced5632f2392c2e1918562501
LINUX_KERNEL_HASH-4.19.23 = 2d9b25678aac7f3f109c52e6266fb6ee89cc424b597518a2875874bacb8f130a
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
--- a/arch/arm/mm/proc-macros.S
+++ b/arch/arm/mm/proc-macros.S
-@@ -325,6 +325,8 @@ ENTRY(\name\()_cache_fns)
+@@ -335,6 +335,8 @@ ENTRY(\name\()_cache_fns)
.long \name\()_flush_kern_dcache_area
.long \name\()_dma_map_area
.long \name\()_dma_unmap_area
vfp_save_state(&thread->vfpstate, fpexc | FPEXC_EN);
fmxr(FPEXC, fpexc);
}
-@@ -602,6 +609,8 @@ int vfp_restore_user_hwstate(struct user
+@@ -598,6 +605,8 @@ int vfp_restore_user_hwstate(struct user
struct thread_info *thread = current_thread_info();
struct vfp_hard_struct *hwstate = &thread->vfpstate.hard;
unsigned long fpexc;
/* Disable VFP to avoid corrupting the new thread state. */
vfp_flush_hwstate(thread);
-@@ -624,8 +633,12 @@ int vfp_restore_user_hwstate(struct user
+@@ -620,8 +629,12 @@ int vfp_restore_user_hwstate(struct user
/* Ensure the VFP is enabled. */
fpexc |= FPEXC_EN;
hwstate->fpexc = fpexc;
hwstate->fpinst = ufp_exc->fpinst;
-@@ -695,7 +708,8 @@ void kernel_neon_begin(void)
+@@ -691,7 +704,8 @@ void kernel_neon_begin(void)
cpu = get_cpu();
fpexc = fmrx(FPEXC) | FPEXC_EN;
#define memset(p,v,n) \
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
-@@ -459,6 +459,9 @@ do { \
+@@ -496,6 +496,9 @@ do { \
extern unsigned long __must_check
arm_copy_from_user(void *to, const void __user *from, unsigned long n);
#ifdef CONFIG_CPU_SPECTRE
get_thread_info r3
ldr r3, [r3, #TI_ADDR_LIMIT]
-@@ -103,6 +104,7 @@ ENTRY(arm_copy_from_user)
+@@ -99,6 +100,7 @@ ENTRY(arm_copy_from_user)
#include "copy_template.S"
ENDPROC(arm_copy_from_user)
unsigned long ua_flags = uaccess_save_and_enable();
n = __copy_to_user_std(to, from, n);
uaccess_restore(ua_flags);
-@@ -156,6 +252,26 @@ arm_copy_to_user(void __user *to, const
+@@ -157,6 +253,26 @@ arm_copy_to_user(void __user *to, const
}
return n;
}
+++ /dev/null
-From 649affd04813c43e0a72886517fcfccd63230981 Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke@hauke-m.de>
-Date: Mon, 29 Jun 2015 16:53:03 +0200
-Subject: uapi/if_ether.h: prevent redefinition of struct ethhdr
-
-Musl provides its own ethhdr struct definition. Add a guard to prevent
-its definition of the appropriate musl header has already been included.
-
-glibc does not implement this header, but when glibc will implement this
-they can just define __UAPI_DEF_ETHHDR 0 to make it work with the
-kernel.
-
-Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
----
- include/uapi/linux/if_ether.h | 3 +++
- include/uapi/linux/libc-compat.h | 6 ++++++
- 2 files changed, 9 insertions(+)
-
---- a/include/uapi/linux/if_ether.h
-+++ b/include/uapi/linux/if_ether.h
-@@ -23,6 +23,7 @@
- #define _UAPI_LINUX_IF_ETHER_H
-
- #include <linux/types.h>
-+#include <linux/libc-compat.h>
-
- /*
- * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble
-@@ -150,11 +151,13 @@
- * This is an Ethernet frame header.
- */
-
-+#if __UAPI_DEF_ETHHDR
- struct ethhdr {
- unsigned char h_dest[ETH_ALEN]; /* destination eth addr */
- unsigned char h_source[ETH_ALEN]; /* source ether addr */
- __be16 h_proto; /* packet type ID field */
- } __attribute__((packed));
-+#endif
-
-
- #endif /* _UAPI_LINUX_IF_ETHER_H */
---- a/include/uapi/linux/libc-compat.h
-+++ b/include/uapi/linux/libc-compat.h
-@@ -264,4 +264,10 @@
-
- #endif /* __GLIBC__ */
-
-+/* Definitions for if_ether.h */
-+/* allow libcs like musl to deactivate this, glibc does not implement this. */
-+#ifndef __UAPI_DEF_ETHHDR
-+#define __UAPI_DEF_ETHHDR 1
-+#endif
-+
- #endif /* _UAPI_LIBC_COMPAT_H */
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
---- a/drivers/pinctrl/qcom/pinctrl-msm.c
-+++ b/drivers/pinctrl/qcom/pinctrl-msm.c
-@@ -839,11 +839,24 @@ static int msm_gpio_init(struct msm_pinc
- return ret;
- }
-
-- ret = gpiochip_add_pin_range(&pctrl->chip, dev_name(pctrl->dev), 0, 0, chip->ngpio);
-- if (ret) {
-- dev_err(pctrl->dev, "Failed to add pin range\n");
-- gpiochip_remove(&pctrl->chip);
-- return ret;
-+ /*
-+ * For DeviceTree-supported systems, the gpio core checks the
-+ * pinctrl's device node for the "gpio-ranges" property.
-+ * If it is present, it takes care of adding the pin ranges
-+ * for the driver. In this case the driver can skip ahead.
-+ *
-+ * In order to remain compatible with older, existing DeviceTree
-+ * files which don't set the "gpio-ranges" property or systems that
-+ * utilize ACPI the driver has to call gpiochip_add_pin_range().
-+ */
-+ if (!of_property_read_bool(pctrl->dev->of_node, "gpio-ranges")) {
-+ ret = gpiochip_add_pin_range(&pctrl->chip,
-+ dev_name(pctrl->dev), 0, 0, chip->ngpio);
-+ if (ret) {
-+ dev_err(pctrl->dev, "Failed to add pin range\n");
-+ gpiochip_remove(&pctrl->chip);
-+ return ret;
-+ }
- }
-
- ret = gpiochip_irqchip_add(chip,
/* Update configuration for gpio.
* RAW_STATUS_EN is left on for all gpio irqs. Due to the
-@@ -962,4 +985,3 @@ int msm_pinctrl_remove(struct platform_d
+@@ -975,4 +998,3 @@ int msm_pinctrl_remove(struct platform_d
return 0;
}
EXPORT_SYMBOL(msm_pinctrl_remove);
--- a/drivers/md/dm-thin.c
+++ b/drivers/md/dm-thin.c
-@@ -3645,6 +3645,19 @@ static int process_create_thin_mesg(unsi
+@@ -3690,6 +3690,19 @@ static int process_create_thin_mesg(unsi
return r;
}