LINUX_RELEASE?=1
-LINUX_VERSION-4.4 = .108
+LINUX_VERSION-4.4 = .115
+
+LINUX_KERNEL_HASH-4.4.115 = 184861c36af4094120417c2270abaca4b90a275019f667c79574f6f8e41858ca
-LINUX_KERNEL_HASH-4.4.108 = aaf270b84e7b55e7cad0777a6d17515b9afa681d320178364d66926acebd8cb3
ifdef KERNEL_PATCHVER
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
endif
-HACK: register the GPIO driver earlier to ensure that gpio_request calls
-from mach files succeed.
-
--- a/drivers/gpio/gpio-ath79.c
+++ b/drivers/gpio/gpio-ath79.c
-@@ -202,4 +202,8 @@ static struct platform_driver ath79_gpio
+@@ -202,7 +202,11 @@ static struct platform_driver ath79_gpio
.probe = ath79_gpio_probe,
};
+ return platform_driver_register(&ath79_gpio_driver);
+}
+postcore_initcall(ath79_gpio_init);
+
+ MODULE_DESCRIPTION("Atheros AR71XX/AR724X/AR913X GPIO API support");
+ MODULE_LICENSE("GPL v2");
+++ /dev/null
-From b7c6d2675899cfff0180412c63fc9cbd5bacdb4d Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet@google.com>
-Date: Wed, 19 Apr 2017 09:59:21 -0700
-Subject: [PATCH] smsc75xx: use skb_cow_head() to deal with cloned skbs
-
-We need to ensure there is enough headroom to push extra header,
-but we also need to check if we are allowed to change headers.
-
-skb_cow_head() is the proper helper to deal with this.
-
-Fixes: d0cad871703b ("smsc75xx: SMSC LAN75xx USB gigabit ethernet adapter driver")
-Signed-off-by: Eric Dumazet <edumazet@google.com>
-Cc: James Hughes <james.hughes@raspberrypi.org>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/usb/smsc75xx.c | 8 ++------
- 1 file changed, 2 insertions(+), 6 deletions(-)
-
---- a/drivers/net/usb/smsc75xx.c
-+++ b/drivers/net/usb/smsc75xx.c
-@@ -2193,13 +2193,9 @@ static struct sk_buff *smsc75xx_tx_fixup
- {
- u32 tx_cmd_a, tx_cmd_b;
-
-- if (skb_headroom(skb) < SMSC75XX_TX_OVERHEAD) {
-- struct sk_buff *skb2 =
-- skb_copy_expand(skb, SMSC75XX_TX_OVERHEAD, 0, flags);
-+ if (skb_cow_head(skb, SMSC75XX_TX_OVERHEAD)) {
- dev_kfree_skb_any(skb);
-- skb = skb2;
-- if (!skb)
-- return NULL;
-+ return NULL;
- }
-
- tx_cmd_a = (u32)(skb->len & TX_CMD_A_LEN) | TX_CMD_A_FCS;
+++ /dev/null
-From a9e840a2081ed28c2b7caa6a9a0041c950b3c37d Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet@google.com>
-Date: Wed, 19 Apr 2017 09:59:22 -0700
-Subject: [PATCH] cx82310_eth: use skb_cow_head() to deal with cloned skbs
-
-We need to ensure there is enough headroom to push extra header,
-but we also need to check if we are allowed to change headers.
-
-skb_cow_head() is the proper helper to deal with this.
-
-Fixes: cc28a20e77b2 ("introduce cx82310_eth: Conexant CX82310-based ADSL router USB ethernet driver")
-Signed-off-by: Eric Dumazet <edumazet@google.com>
-Cc: James Hughes <james.hughes@raspberrypi.org>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/usb/cx82310_eth.c | 7 ++-----
- 1 file changed, 2 insertions(+), 5 deletions(-)
-
---- a/drivers/net/usb/cx82310_eth.c
-+++ b/drivers/net/usb/cx82310_eth.c
-@@ -293,12 +293,9 @@ static struct sk_buff *cx82310_tx_fixup(
- {
- int len = skb->len;
-
-- if (skb_headroom(skb) < 2) {
-- struct sk_buff *skb2 = skb_copy_expand(skb, 2, 0, flags);
-+ if (skb_cow_head(skb, 2)) {
- dev_kfree_skb_any(skb);
-- skb = skb2;
-- if (!skb)
-- return NULL;
-+ return NULL;
- }
- skb_push(skb, 2);
-
+++ /dev/null
-From d532c1082f68176363ed766d09bf187616e282fe Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet@google.com>
-Date: Wed, 19 Apr 2017 09:59:23 -0700
-Subject: [PATCH] sr9700: use skb_cow_head() to deal with cloned skbs
-
-We need to ensure there is enough headroom to push extra header,
-but we also need to check if we are allowed to change headers.
-
-skb_cow_head() is the proper helper to deal with this.
-
-Fixes: c9b37458e956 ("USB2NET : SR9700 : One chip USB 1.1 USB2NET SR9700Device Driver Support")
-Signed-off-by: Eric Dumazet <edumazet@google.com>
-Cc: James Hughes <james.hughes@raspberrypi.org>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/usb/sr9700.c | 9 ++-------
- 1 file changed, 2 insertions(+), 7 deletions(-)
-
---- a/drivers/net/usb/sr9700.c
-+++ b/drivers/net/usb/sr9700.c
-@@ -456,14 +456,9 @@ static struct sk_buff *sr9700_tx_fixup(s
-
- len = skb->len;
-
-- if (skb_headroom(skb) < SR_TX_OVERHEAD) {
-- struct sk_buff *skb2;
--
-- skb2 = skb_copy_expand(skb, SR_TX_OVERHEAD, 0, flags);
-+ if (skb_cow_head(skb, SR_TX_OVERHEAD)) {
- dev_kfree_skb_any(skb);
-- skb = skb2;
-- if (!skb)
-- return NULL;
-+ return NULL;
- }
-
- __skb_push(skb, SR_TX_OVERHEAD);
+++ /dev/null
-From d4ca73591916b760478d2b04334d5dcadc028e9c Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet@google.com>
-Date: Wed, 19 Apr 2017 09:59:24 -0700
-Subject: [PATCH] lan78xx: use skb_cow_head() to deal with cloned skbs
-
-We need to ensure there is enough headroom to push extra header,
-but we also need to check if we are allowed to change headers.
-
-skb_cow_head() is the proper helper to deal with this.
-
-Fixes: 55d7de9de6c3 ("Microchip's LAN7800 family USB 2/3 to 10/100/1000 Ethernet device driver")
-Signed-off-by: Eric Dumazet <edumazet@google.com>
-Cc: James Hughes <james.hughes@raspberrypi.org>
-Cc: Woojung Huh <woojung.huh@microchip.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/usb/lan78xx.c | 9 ++-------
- 1 file changed, 2 insertions(+), 7 deletions(-)
-
---- a/drivers/net/usb/lan78xx.c
-+++ b/drivers/net/usb/lan78xx.c
-@@ -2050,14 +2050,9 @@ static struct sk_buff *lan78xx_tx_prep(s
- {
- u32 tx_cmd_a, tx_cmd_b;
-
-- if (skb_headroom(skb) < TX_OVERHEAD) {
-- struct sk_buff *skb2;
--
-- skb2 = skb_copy_expand(skb, TX_OVERHEAD, 0, flags);
-+ if (skb_cow_head(skb, TX_OVERHEAD)) {
- dev_kfree_skb_any(skb);
-- skb = skb2;
-- if (!skb)
-- return NULL;
-+ return NULL;
- }
-
- if (lan78xx_linearize(skb) < 0)
static bool
ip_checkentry(const struct ipt_ip *ip)
{
-@@ -664,6 +690,8 @@ find_check_entry(struct ipt_entry *e, st
- struct xt_mtchk_param mtpar;
- struct xt_entry_match *ematch;
-
-+ ip_checkdefault(&e->ip);
-+
- e->counters.pcnt = xt_percpu_counter_alloc();
- if (IS_ERR_VALUE(e->counters.pcnt))
- return -ENOMEM;
-@@ -948,6 +976,7 @@ copy_entries_to_user(unsigned int total_
+@@ -953,6 +979,7 @@ copy_entries_to_user(unsigned int total_
const struct xt_table_info *private = table->private;
int ret = 0;
const void *loc_cpu_entry;
counters = alloc_counters(table);
if (IS_ERR(counters))
-@@ -974,6 +1003,14 @@ copy_entries_to_user(unsigned int total_
+@@ -979,6 +1006,14 @@ copy_entries_to_user(unsigned int total_
ret = -EFAULT;
goto free_counters;
}
+++ /dev/null
---- a/drivers/net/ppp/pppoe.c
-+++ b/drivers/net/ppp/pppoe.c
-@@ -879,7 +879,7 @@ static int pppoe_sendmsg(struct socket *
- goto end;
-
-
-- skb = sock_wmalloc(sk, total_len + dev->hard_header_len + 32,
-+ skb = sock_wmalloc(sk, total_len + dev->hard_header_len + 32 + NET_SKB_PAD,
- 0, GFP_KERNEL);
- if (!skb) {
- error = -ENOMEM;
-@@ -887,7 +887,7 @@ static int pppoe_sendmsg(struct socket *
- }
-
- /* Reserve space for headers. */
-- skb_reserve(skb, dev->hard_header_len);
-+ skb_reserve(skb, dev->hard_header_len + NET_SKB_PAD);
- skb_reset_network_header(skb);
-
- skb->dev = dev;
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y
-CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
+CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
CONFIG_ARCH_WANT_FRAME_POINTERS=y
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_CPU_SUP_UMC_32=y
# CONFIG_CRASHLOG is not set
CONFIG_CRC16=y
-CONFIG_CRYPTO_AES_586=y
CONFIG_CRYPTO_CRC32C=y
# CONFIG_CRYPTO_CRC32_PCLMUL is not set
CONFIG_CRYPTO_HASH=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_FIRMWARE_MEMMAP=y
CONFIG_FIX_EARLYCON_MEM=y
+# CONFIG_FLATMEM_MANUAL is not set
CONFIG_FS_MBCACHE=y
CONFIG_FUSION=y
# CONFIG_FUSION_CTL is not set
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y
+# CONFIG_GENERIC_CPU is not set
CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_GENERIC_CPU_VULNERABILITIES=y
CONFIG_GENERIC_EARLY_IOREMAP=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_GENERIC_IO=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_HAVE_MEMBLOCK=y
CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
CONFIG_HAVE_NET_DSA=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HIGHMEM=y
CONFIG_HIGHMEM4G=y
+# CONFIG_HIGHMEM64G is not set
# CONFIG_HIGHPTE is not set
CONFIG_HPET_EMULATE_RTC=y
CONFIG_HPET_TIMER=y
# CONFIG_HUGETLBFS is not set
CONFIG_HW_CONSOLE=y
CONFIG_HW_RANDOM=y
-CONFIG_HW_RANDOM_GEODE=y
CONFIG_HW_RANDOM_VIA=y
# CONFIG_HYPERVISOR_GUEST is not set
CONFIG_HZ_PERIODIC=y
CONFIG_KEXEC_CORE=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_LEDS_CLEVO_MAIL is not set
-CONFIG_M486=y
+# CONFIG_LEGACY_VSYSCALL_EMULATE is not set
+# CONFIG_LEGACY_VSYSCALL_NATIVE is not set
+# CONFIG_LEGACY_VSYSCALL_NONE is not set
+# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586MMX is not set
# CONFIG_M586TSC is not set
-# CONFIG_M686 is not set
+CONFIG_M686=y
# CONFIG_MACHZ_WDT is not set
# CONFIG_MATOM is not set
# CONFIG_MCORE2 is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MELAN is not set
+# CONFIG_MEMORY_HOTPLUG is not set
# CONFIG_MFD_INTEL_LPSS_PCI is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
+# CONFIG_MPSC is not set
# CONFIG_MTD is not set
CONFIG_MTRR=y
# CONFIG_MTRR_SANITIZER is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MWINCHIPC6 is not set
CONFIG_NAMESPACES=y
+CONFIG_NEED_NODE_MEMMAP_SIZE=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_KM=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_PERF_EVENTS=y
CONFIG_PERF_EVENTS_INTEL_UNCORE=y
CONFIG_PGTABLE_LEVELS=2
-CONFIG_PHYSICAL_ALIGN=0x100000
+CONFIG_PHYSICAL_ALIGN=0x200000
CONFIG_PHYSICAL_START=0x1000000
CONFIG_PMC_ATOM=y
CONFIG_POWER_SUPPLY=y
CONFIG_RD_BZIP2=y
CONFIG_RD_GZIP=y
# CONFIG_RELOCATABLE is not set
+CONFIG_RETPOLINE=y
CONFIG_RTC_CLASS=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
# CONFIG_SBC7240_WDT is not set
# CONFIG_SCHED_INFO is not set
CONFIG_SCSI=y
CONFIG_SCSI_SPI_ATTRS=y
-CONFIG_SCx200=y
-CONFIG_SCx200HR_TIMER=y
-# CONFIG_SCx200_GPIO is not set
-# CONFIG_SCx200_WDT is not set
+# CONFIG_SCx200 is not set
# CONFIG_SERIAL_8250_FSL is not set
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIO=y
CONFIG_SERIO_SERPORT=y
# CONFIG_SMSC37B787_WDT is not set
# CONFIG_SMSC_SCH311X_WDT is not set
+CONFIG_SPARSEMEM=y
+CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_SPARSE_IRQ=y
CONFIG_SRCU=y
CONFIG_X86_32=y
# CONFIG_X86_32_IRIS is not set
CONFIG_X86_32_LAZY_GS=y
-CONFIG_X86_ALIGNMENT_16=y
# CONFIG_X86_ANCIENT_MCE is not set
# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
+CONFIG_X86_CMOV=y
+CONFIG_X86_CMPXCHG64=y
# CONFIG_X86_CPUFREQ_NFORCE2 is not set
# CONFIG_X86_CPUID is not set
+CONFIG_X86_DEBUGCTLMSR=y
# CONFIG_X86_DEBUG_FPU is not set
# CONFIG_X86_EXTENDED_PLATFORM is not set
-CONFIG_X86_F00F_BUG=y
CONFIG_X86_FEATURE_NAMES=y
-CONFIG_X86_GENERIC=y
+# CONFIG_X86_GENERIC is not set
# CONFIG_X86_GX_SUSPMOD is not set
# CONFIG_X86_INTEL_MPX is not set
# CONFIG_X86_INTEL_PSTATE is not set
-CONFIG_X86_INTEL_USERCOPY=y
-CONFIG_X86_INTERNODE_CACHE_SHIFT=6
-CONFIG_X86_INVD_BUG=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=5
CONFIG_X86_IO_APIC=y
-CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_L1_CACHE_SHIFT=5
# CONFIG_X86_LEGACY_VM86 is not set
CONFIG_X86_LOCAL_APIC=y
# CONFIG_X86_LONGRUN is not set
# CONFIG_X86_MCE_INJECT is not set
CONFIG_X86_MCE_INTEL=y
CONFIG_X86_MCE_THRESHOLD=y
-CONFIG_X86_MINIMUM_CPU_FAMILY=4
+CONFIG_X86_MINIMUM_CPU_FAMILY=5
CONFIG_X86_MPPARSE=y
CONFIG_X86_MSR=y
# CONFIG_X86_P4_CLOCKMOD is not set
CONFIG_X86_PLATFORM_DEVICES=y
# CONFIG_X86_POWERNOW_K6 is not set
# CONFIG_X86_POWERNOW_K7 is not set
-CONFIG_X86_PPRO_FENCE=y
+# CONFIG_X86_PPRO_FENCE is not set
# CONFIG_X86_PTDUMP is not set
# CONFIG_X86_PTDUMP_CORE is not set
# CONFIG_X86_REBOOTFIXUPS is not set
# CONFIG_X86_SPEEDSTEP_ICH is not set
# CONFIG_X86_SPEEDSTEP_LIB is not set
# CONFIG_X86_SPEEDSTEP_SMI is not set
-CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_X86_TSC=y
CONFIG_X86_UP_APIC=y
-CONFIG_X86_UP_IOAPIC=y
+# CONFIG_X86_UP_IOAPIC is not set
+CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_VERBOSE_BOOTUP=y
CONFIG_XZ_DEC_BCJ=y
CONFIG_XZ_DEC_X86=y