kernel: Update to 3.13.2.
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 15 Feb 2014 20:06:26 +0000 (21:06 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 15 Feb 2014 20:06:26 +0000 (21:06 +0100)
Adds an ARM LPAE kernel.

14 files changed:
kernel/config-arm-generic
kernel/config-armv5tel-kirkwood
kernel/config-armv7hl-default
kernel/config-armv7hl-generic [new file with mode: 0644]
kernel/config-armv7hl-lpae [new file with mode: 0644]
kernel/config-generic
kernel/config-i686-default
kernel/config-i686-legacy
kernel/config-x86-generic
kernel/config-x86_64-default
kernel/kernel.nm
kernel/patches/grsecurity-3.0-3.13.2-201402091134.patch [moved from kernel/patches/grsecurity-3.0-3.12.4-201312081754.patch with 89% similarity]
kernel/patches/linux-2.6-silence-acpi-blacklist.patch [deleted file]
kernel/scripts/configure

index 2e33703..319f296 100644 (file)
@@ -1,37 +1,18 @@
 CONFIG_ARM=y
-CONFIG_MIGHT_HAVE_PCI=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 CONFIG_VECTORS_BASE=0xffff0000
 CONFIG_ARM_PATCH_PHYS_VIRT=y
 
-#
-# General setup
-#
-CONFIG_BROKEN_ON_SMP=y
-
 #
 # IRQ subsystem
 #
 CONFIG_HARDIRQS_SW_RESEND=y
 CONFIG_KTIME_SCALAR=y
 
-#
-# Timers subsystem
-#
-CONFIG_NO_HZ_IDLE=y
-
-#
-# CPU/Task time and stats accounting
-#
-CONFIG_TICK_CPU_ACCOUNTING=y
-# CONFIG_IRQ_TIME_ACCOUNTING is not set
-
 #
 # RCU Subsystem
 #
-CONFIG_TINY_RCU=y
-# CONFIG_RCU_STALL_COMMON is not set
 CONFIG_GENERIC_SCHED_CLOCK=y
 CONFIG_PERF_USE_VMALLOC=y
 
@@ -52,10 +33,8 @@ CONFIG_LBDAF=y
 #
 # System Type
 #
-# CONFIG_ARCH_MULTIPLATFORM is not set
 # CONFIG_ARCH_INTEGRATOR is not set
 # CONFIG_ARCH_REALVIEW is not set
-CONFIG_ARCH_VERSATILE=y
 # CONFIG_ARCH_AT91 is not set
 # CONFIG_ARCH_CLPS711X is not set
 # CONFIG_ARCH_GEMINI is not set
@@ -68,7 +47,6 @@ CONFIG_ARCH_VERSATILE=y
 # CONFIG_ARCH_IOP33X is not set
 # CONFIG_ARCH_IXP4XX is not set
 # CONFIG_ARCH_DOVE is not set
-# CONFIG_ARCH_KIRKWOOD is not set
 # CONFIG_ARCH_MV78XX0 is not set
 # CONFIG_ARCH_ORION5X is not set
 # CONFIG_ARCH_MMP is not set
@@ -86,59 +64,32 @@ CONFIG_ARCH_VERSATILE=y
 # CONFIG_ARCH_S5PC100 is not set
 # CONFIG_ARCH_S5PV210 is not set
 # CONFIG_ARCH_EXYNOS is not set
-# CONFIG_ARCH_SHARK is not set
 # CONFIG_ARCH_DAVINCI is not set
 # CONFIG_ARCH_OMAP1 is not set
-# CONFIG_PLAT_SPEAR is not set
 
 #
-# Versatile platform type
+# OMAP Legacy Platform Data Board Type
 #
-CONFIG_ARCH_VERSATILE_PB=y
-CONFIG_MACH_VERSATILE_AB=y
-CONFIG_MACH_VERSATILE_DT=y
-CONFIG_PLAT_VERSATILE_CLOCK=y
-CONFIG_PLAT_VERSATILE_CLCD=y
-CONFIG_PLAT_VERSATILE_LEDS=y
-CONFIG_PLAT_VERSATILE_SCHED_CLOCK=y
-CONFIG_PLAT_VERSATILE=y
-CONFIG_ARM_TIMER_SP804=y
+# CONFIG_PLAT_SPEAR is not set
 
 #
 # Processor Type
 #
-CONFIG_CPU_ARM926T=y
-CONFIG_CPU_32v5=y
-CONFIG_CPU_ABRT_EV5TJ=y
-CONFIG_CPU_PABRT_LEGACY=y
-CONFIG_CPU_CACHE_VIVT=y
-CONFIG_CPU_COPY_V4WB=y
-CONFIG_CPU_TLB_V4WBI=y
 CONFIG_CPU_CP15=y
 CONFIG_CPU_CP15_MMU=y
-CONFIG_CPU_USE_DOMAINS=y
 
 #
 # Processor Features
 #
-# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
 CONFIG_ARM_THUMB=y
 # CONFIG_CPU_ICACHE_DISABLE is not set
 # CONFIG_CPU_DCACHE_DISABLE is not set
-# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
-# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
-CONFIG_NEED_KUSER_HELPERS=y
-CONFIG_KUSER_HELPERS=y
-# CONFIG_CACHE_L2X0 is not set
-CONFIG_ARM_L1_CACHE_SHIFT=5
 CONFIG_ARM_NR_BANKS=8
 CONFIG_MULTI_IRQ_HANDLER=y
-CONFIG_ICST=y
 
 #
 # Bus support
 #
-CONFIG_ARM_AMBA=y
 CONFIG_PCI_SYSCALL=y
 # CONFIG_PCI_PRI is not set
 # CONFIG_PCI_PASID is not set
@@ -156,7 +107,6 @@ CONFIG_VMSPLIT_3G=y
 # CONFIG_VMSPLIT_2G is not set
 # CONFIG_VMSPLIT_1G is not set
 CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_ARCH_NR_GPIO=0
 CONFIG_HZ_FIXED=0
 # CONFIG_HZ_200 is not set
 # CONFIG_HZ_500 is not set
@@ -169,14 +119,7 @@ CONFIG_HIGHMEM=y
 CONFIG_HW_PERF_EVENTS=y
 CONFIG_FLATMEM=y
 CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_SPLIT_PTLOCK_CPUS=999999
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=0
-CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
-CONFIG_NEED_PER_CPU_KM=y
-CONFIG_FORCE_MAX_ZONEORDER=11
 CONFIG_ALIGNMENT_TRAP=y
-# CONFIG_UACCESS_WITH_MEMCPY is not set
 
 #
 # Boot options
@@ -187,12 +130,9 @@ CONFIG_ATAGS=y
 CONFIG_ZBOOT_ROM_TEXT=0
 CONFIG_ZBOOT_ROM_BSS=0
 CONFIG_ARM_APPENDED_DTB=y
-# CONFIG_ARM_ATAG_DTB_COMPAT is not set
-CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/sda1 rootdelay=20"
 CONFIG_CMDLINE_FROM_BOOTLOADER=y
 # CONFIG_CMDLINE_EXTEND is not set
 # CONFIG_CMDLINE_FORCE is not set
-# CONFIG_XIP_KERNEL is not set
 CONFIG_AUTO_ZRELADDR=y
 
 #
@@ -260,14 +200,12 @@ CONFIG_OF_MDIO=y
 CONFIG_OF_PCI=y
 CONFIG_OF_PCI_IRQ=y
 # CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
-# CONFIG_MG_DISK is not set
 
 #
 # Misc devices
 #
 # CONFIG_SENSORS_LIS3LV02D is not set
 # CONFIG_SGI_IOC4 is not set
-# CONFIG_ARM_CHARLCD is not set
 
 #
 # SCSI Transports
@@ -307,11 +245,6 @@ CONFIG_MDIO_BUS_MUX=m
 CONFIG_MDIO_BUS_MUX_GPIO=m
 CONFIG_MDIO_BUS_MUX_MMIOREG=m
 
-#
-# ISDN feature submodules
-#
-# CONFIG_ISDN_DRV_LOOP is not set
-
 #
 # Userland interfaces
 #
@@ -320,12 +253,11 @@ CONFIG_MDIO_BUS_MUX_MMIOREG=m
 #
 # Input Device Drivers
 #
-CONFIG_INPUT_PWM_BEEPER=m
+# CONFIG_KEYBOARD_SH_KEYSC is not set
 
 #
 # Hardware I/O ports
 #
-CONFIG_SERIO_AMBAKMI=m
 CONFIG_SERIO_APBPS2=m
 # CONFIG_SERIO_OLPC_APSP is not set
 
@@ -338,10 +270,12 @@ CONFIG_SERIO_APBPS2=m
 #
 # Non-8250 serial port support
 #
-CONFIG_SERIAL_AMBA_PL011=y
-CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_SH_SCI=y
+CONFIG_SERIAL_SH_SCI_NR_UARTS=2
+# CONFIG_SERIAL_SH_SCI_CONSOLE is not set
 CONFIG_SERIAL_OF_PLATFORM=y
 # CONFIG_SERIAL_XILINX_PS_UART is not set
+CONFIG_SERIAL_ST_ASC=m
 # CONFIG_HVC_DCC is not set
 
 #
@@ -357,11 +291,11 @@ CONFIG_I2C_SIS630=m
 # I2C system bus drivers (mostly embedded / system-on-chip)
 #
 # CONFIG_I2C_DESIGNWARE_PLATFORM is not set
-CONFIG_I2C_NOMADIK=m
-CONFIG_I2C_VERSATILE=m
+CONFIG_I2C_SH_MOBILE=m
+CONFIG_I2C_RCAR=m
 
 #
-# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+# Pin controllers
 #
 CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
 CONFIG_OF_GPIO=y
@@ -370,7 +304,6 @@ CONFIG_OF_GPIO=y
 # Memory mapped GPIO drivers:
 #
 # CONFIG_GPIO_EM is not set
-# CONFIG_GPIO_PL061 is not set
 # CONFIG_GPIO_RCAR is not set
 # CONFIG_GPIO_GRGPIO is not set
 
@@ -379,6 +312,11 @@ CONFIG_OF_GPIO=y
 #
 CONFIG_GPIO_ADNP=m
 
+#
+# MODULbus GPIO expanders:
+#
+CONFIG_GPIO_BCM_KONA=y
+
 #
 # 1-wire Slaves
 #
@@ -395,7 +333,6 @@ CONFIG_SENSORS_VEXPRESS=m
 #
 # Watchdog Device Drivers
 #
-# CONFIG_ARM_SP805_WATCHDOG is not set
 # CONFIG_DW_WATCHDOG is not set
 # CONFIG_MAX63XX_WATCHDOG is not set
 
@@ -434,6 +371,7 @@ CONFIG_DRM_I2C_CH7006=m
 CONFIG_DRM_I2C_SIL164=m
 # CONFIG_DRM_RADEON is not set
 # CONFIG_DRM_NOUVEAU is not set
+CONFIG_DRM_ARMADA=m
 CONFIG_DRM_RCAR_DU=m
 CONFIG_DRM_RCAR_LVDS=y
 CONFIG_DRM_SHMOBILE=m
@@ -443,12 +381,6 @@ CONFIG_FB_SYS_COPYAREA=y
 CONFIG_FB_SYS_IMAGEBLIT=y
 # CONFIG_FB_BACKLIGHT is not set
 
-#
-# Frame buffer hardware drivers
-#
-# CONFIG_FB_ARMCLCD is not set
-CONFIG_BACKLIGHT_PWM=m
-
 #
 # Console display driver support
 #
@@ -456,7 +388,6 @@ CONFIG_BACKLIGHT_PWM=m
 CONFIG_SND_COMPRESS_OFFLOAD=m
 # CONFIG_SND_ALI5451 is not set
 CONFIG_SND_ARM=y
-CONFIG_SND_ARMAACI=m
 CONFIG_SND_SOC=m
 CONFIG_SND_ATMEL_SOC=m
 CONFIG_SND_DESIGNWARE_I2S=m
@@ -466,23 +397,19 @@ CONFIG_SND_SIMPLE_CARD=m
 #
 # USB Physical Layer drivers
 #
+CONFIG_AM335X_CONTROL_USB=m
+CONFIG_AM335X_PHY_USB=m
 CONFIG_USB_ULPI=y
 
 #
 # MMC/SD/SDIO Host Controller Drivers
 #
-CONFIG_MMC_ARMMMCI=m
 CONFIG_MMC_DW=m
 # CONFIG_MMC_DW_IDMAC is not set
 CONFIG_MMC_DW_PLTFM=m
 CONFIG_MMC_DW_EXYNOS=m
 CONFIG_MMC_DW_PCI=m
 
-#
-# LED drivers
-#
-CONFIG_LEDS_PWM=m
-
 #
 # iptables trigger is under Netfilter config (LED target)
 #
@@ -491,16 +418,12 @@ CONFIG_LEDS_PWM=m
 #
 # on-CPU RTC drivers
 #
-CONFIG_RTC_DRV_PL030=m
-CONFIG_RTC_DRV_PL031=m
 CONFIG_RTC_DRV_SNVS=m
 
 #
 # DMA Devices
 #
-# CONFIG_AMBA_PL08X is not set
 # CONFIG_DW_DMAC is not set
-CONFIG_PL330_DMA=y
 CONFIG_DMA_OF=y
 
 #
@@ -508,8 +431,8 @@ CONFIG_DMA_OF=y
 #
 CONFIG_CLKSRC_OF=y
 CONFIG_CLKSRC_MMIO=y
-CONFIG_PL320_MBOX=y
 CONFIG_OF_IOMMU=y
+# CONFIG_SHMOBILE_IOMMU is not set
 
 #
 # Analog to digital converters
@@ -519,14 +442,12 @@ CONFIG_OF_IOMMU=y
 #
 # Temperature sensors
 #
-CONFIG_PWM=y
-CONFIG_PWM_SYSFS=y
-CONFIG_PWM_PCA9685=m
 CONFIG_IRQCHIP=y
-CONFIG_ARM_VIC=y
-CONFIG_ARM_VIC_NR=2
-CONFIG_VERSATILE_FPGA_IRQ=y
-CONFIG_VERSATILE_FPGA_IRQ_NR=4
+
+#
+# PHY Subsystem
+#
+CONFIG_PHY_EXYNOS_DP_VIDEO=m
 
 #
 # Memory Debugging
@@ -545,23 +466,6 @@ CONFIG_ARM_UNWIND=y
 CONFIG_OLD_MCOUNT=y
 # CONFIG_DEBUG_USER is not set
 # CONFIG_DEBUG_LL is not set
-CONFIG_DEBUG_LL_INCLUDE="debug/pl01x.S"
-CONFIG_DEBUG_UART_PL01X=y
-# CONFIG_DEBUG_UART_8250 is not set
-CONFIG_DEBUG_UART_PHYS=0x101f1000
-CONFIG_DEBUG_UART_VIRT=0xf11f1000
-CONFIG_UNCOMPRESS_INCLUDE="mach/uncompress.h"
-# CONFIG_OC_ETM is not set
-
-#
-# Miscellaneous hardening features
-#
-CONFIG_PAX_MEMORY_SANITIZE=y
-
-#
-# Memory Protections
-#
-CONFIG_GRKERNSEC_JIT_HARDEN=y
 
 #
 # Executable Protections
@@ -603,5 +507,5 @@ CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
 #
 # Library routines
 #
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
 CONFIG_AUDIT_GENERIC=y
-CONFIG_GENERIC_ATOMIC64=y
index 1334b02..b05506f 100644 (file)
@@ -1,13 +1,37 @@
 CONFIG_ARCH_HAS_CPUFREQ=y
 
+#
+# General setup
+#
+CONFIG_BROKEN_ON_SMP=y
+
 #
 # IRQ subsystem
 #
 CONFIG_GENERIC_IRQ_CHIP=y
 
+#
+# Timers subsystem
+#
+CONFIG_NO_HZ_IDLE=y
+
+#
+# CPU/Task time and stats accounting
+#
+CONFIG_TICK_CPU_ACCOUNTING=y
+# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TINY_RCU=y
+# CONFIG_RCU_STALL_COMMON is not set
+
 #
 # System Type
 #
+# CONFIG_ARCH_MULTIPLATFORM is not set
 # CONFIG_ARCH_VERSATILE is not set
 CONFIG_ARCH_KIRKWOOD=y
 
@@ -41,21 +65,55 @@ CONFIG_PLAT_ORION_LEGACY=y
 #
 CONFIG_CPU_FEROCEON=y
 # CONFIG_CPU_FEROCEON_OLD_ID is not set
+CONFIG_CPU_32v5=y
 CONFIG_CPU_ABRT_EV5T=y
+CONFIG_CPU_PABRT_LEGACY=y
+CONFIG_CPU_CACHE_VIVT=y
 CONFIG_CPU_COPY_FEROCEON=y
 CONFIG_CPU_TLB_FEROCEON=y
+CONFIG_CPU_USE_DOMAINS=y
 
 #
 # Processor Features
 #
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+CONFIG_NEED_KUSER_HELPERS=y
+CONFIG_KUSER_HELPERS=y
 CONFIG_OUTER_CACHE=y
 CONFIG_CACHE_FEROCEON_L2=y
 # CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set
+# CONFIG_CACHE_L2X0 is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
 
 #
 # PCI host controller drivers
 #
 CONFIG_PCI_MVEBU=y
+CONFIG_PCCARD=m
+# CONFIG_PCMCIA is not set
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+
+#
+# Kernel Features
+#
+CONFIG_ARCH_NR_GPIO=0
+CONFIG_SPLIT_PTLOCK_CPUS=999999
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
+CONFIG_NEED_PER_CPU_KM=y
+CONFIG_FORCE_MAX_ZONEORDER=11
+# CONFIG_UACCESS_WITH_MEMCPY is not set
 
 #
 # Boot options
@@ -63,12 +121,13 @@ CONFIG_PCI_MVEBU=y
 CONFIG_ARM_ATAG_DTB_COMPAT=y
 CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y
 # CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set
+CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/sda1 rootdelay=20"
+# CONFIG_XIP_KERNEL is not set
 
 #
 # CPU Frequency scaling
 #
 CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_TABLE=y
 CONFIG_CPU_FREQ_GOV_COMMON=y
 CONFIG_CPU_FREQ_STAT=m
 CONFIG_CPU_FREQ_STAT_DETAILS=y
@@ -88,26 +147,122 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
 #
 CONFIG_ARM_KIRKWOOD_CPUFREQ=y
 
+#
+# CPU Idle
+#
+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
+
 #
 # Bluetooth device drivers
 #
 CONFIG_RFKILL_REGULATOR=m
 
+#
+# Generic Driver Options
+#
+# CONFIG_FIRMWARE_IN_KERNEL is not set
+CONFIG_REGMAP_I2C=m
+
 #
 # Bus devices
 #
 CONFIG_MVEBU_MBUS=y
+# CONFIG_MTD is not set
+
+#
+# Device Tree and Open Firmware support
+#
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+# CONFIG_PARPORT_PC_FIFO is not set
+# CONFIG_PARPORT_PC_SUPERIO is not set
+# CONFIG_PARPORT_GSC is not set
+# CONFIG_PARPORT_AX88796 is not set
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+# CONFIG_PARIDE is not set
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_MG_DISK is not set
+
+#
+# Misc devices
+#
+# CONFIG_SRAM is not set
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+
+#
+# PIO-only SFF controllers
+#
+# CONFIG_PATA_PLATFORM is not set
 
 #
 # Distributed Switch Architecture drivers
 #
+CONFIG_VORTEX=m
+CONFIG_PCMCIA_XIRCOM=m
 CONFIG_MV643XX_ETH=m
 
+#
+# MII PHY device drivers
+#
+# CONFIG_PLIP is not set
+
+#
+# ISDN feature submodules
+#
+# CONFIG_ISDN_DRV_LOOP is not set
+
+#
+# Input device support
+#
+# CONFIG_INPUT_FF_MEMLESS is not set
+CONFIG_INPUT_MATRIXKMAP=m
+
+#
+# Input Device Drivers
+#
+# CONFIG_KEYBOARD_SAMSUNG is not set
+# CONFIG_MOUSE_GPIO is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO_PARKBD is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_SCCNXP=m
+CONFIG_SERIAL_ARC=m
+CONFIG_PRINTER=m
+CONFIG_LP_CONSOLE=y
+CONFIG_PPDEV=m
+CONFIG_I2C=m
+CONFIG_I2C_ALGOBIT=m
+
 #
 # I2C system bus drivers (mostly embedded / system-on-chip)
 #
 CONFIG_I2C_MV64XXX=m
 
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_PARPORT=m
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_PARPORT is not set
+
 #
 # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
 #
@@ -157,9 +312,12 @@ CONFIG_ORION_WATCHDOG=m
 #
 # Multifunction device drivers
 #
+CONFIG_MFD_CORE=m
+# CONFIG_ABX500_CORE is not set
+# CONFIG_MFD_SYSCON is not set
+# CONFIG_MFD_TPS65912 is not set
 CONFIG_REGULATOR=y
 # CONFIG_REGULATOR_DEBUG is not set
-# CONFIG_REGULATOR_DUMMY is not set
 CONFIG_REGULATOR_FIXED_VOLTAGE=y
 # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
 # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
@@ -184,14 +342,62 @@ CONFIG_REGULATOR_PFUZE100=m
 # CONFIG_REGULATOR_TPS6507X is not set
 CONFIG_REGULATOR_VEXPRESS=m
 
+#
+# Multimedia core support
+#
+CONFIG_VIDEO_V4L2=m
+
+#
+# Supported MMC/SDIO adapters
+#
+# CONFIG_MEDIA_PARPORT_SUPPORT is not set
+
+#
+# Media ancillary drivers (tuners, sensors, i2c, frontends)
+#
+CONFIG_VIDEO_IR_I2C=m
+
+#
+# soc_camera sensor drivers
+#
+CONFIG_MEDIA_TUNER=m
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+
+#
+# Graphics support
+#
+CONFIG_DRM=m
+CONFIG_DRM_USB=m
+CONFIG_DRM_KMS_HELPER=m
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_UDL=m
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+# CONFIG_FB_MODE_HELPERS is not set
+
 #
 # Frame buffer hardware drivers
 #
+CONFIG_LCD_PLATFORM=m
 # CONFIG_BACKLIGHT_PWM is not set
 
 #
 # Console display driver support
 #
+CONFIG_SND_MTS64=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_LX6464ES=m
 CONFIG_SND_KIRKWOOD_SOC=m
 CONFIG_SND_KIRKWOOD_SOC_OPENRD=m
 CONFIG_SND_KIRKWOOD_SOC_T5325=m
@@ -203,18 +409,46 @@ CONFIG_SND_SOC_CS42L51=m
 #
 CONFIG_USB_EHCI_HCD_ORION=y
 
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+
+#
+# USB Physical Layer drivers
+#
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_SAMSUNG_USBPHY=m
+CONFIG_SAMSUNG_USB2PHY=m
+CONFIG_SAMSUNG_USB3PHY=m
+CONFIG_MMC=m
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+
 #
 # MMC/SD/SDIO Host Controller Drivers
 #
+CONFIG_MMC_SDHCI=m
 CONFIG_MMC_MVSDIO=m
 
 #
 # LED drivers
 #
+# CONFIG_LEDS_GPIO is not set
+CONFIG_LEDS_PWM=m
 CONFIG_LEDS_REGULATOR=m
 CONFIG_LEDS_NS2=m
 CONFIG_LEDS_NETXBIG=m
 
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+
 #
 # on-CPU RTC drivers
 #
@@ -226,6 +460,16 @@ CONFIG_RTC_DRV_MV=m
 CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y
 CONFIG_MV_XOR=y
 
+#
+# DMA Clients
+#
+CONFIG_DMA_ENGINE_RAID=y
+
+#
+# Microsoft Hyper-V guest support
+#
+# CONFIG_PANEL is not set
+
 #
 # Android
 #
@@ -252,8 +496,19 @@ CONFIG_MVEBU_DEVBUS=y
 #
 # Temperature sensors
 #
+CONFIG_PWM=y
+CONFIG_PWM_SYSFS=y
+CONFIG_PWM_PCA9685=m
 CONFIG_ORION_IRQCHIP=y
 
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+
 #
 # Runtime Testing
 #
@@ -265,6 +520,7 @@ CONFIG_DEBUG_UART_VIRT=0xfed12000
 CONFIG_DEBUG_UART_8250_SHIFT=2
 # CONFIG_DEBUG_UART_8250_WORD is not set
 # CONFIG_DEBUG_UART_8250_FLOW_CONTROL is not set
+CONFIG_UNCOMPRESS_INCLUDE="mach/uncompress.h"
 
 #
 # Random Number Generation
@@ -275,3 +531,6 @@ CONFIG_CRYPTO_DEV_MV_CESA=m
 # Library routines
 #
 CONFIG_RATIONAL=y
+CONFIG_HAS_IOPORT=y
+CONFIG_GENERIC_ATOMIC64=y
+# CONFIG_DDR is not set
index 7c0e368..1ab7492 100644 (file)
@@ -1,59 +1,40 @@
 CONFIG_NO_IOPORT=y
-CONFIG_ARCH_HAS_CPUFREQ=y
-CONFIG_ARCH_HAS_BANDGAP=y
 CONFIG_ZONE_DMA=y
 CONFIG_FIQ=y
 
 #
-# IRQ subsystem
+# Timers subsystem
 #
-CONFIG_GENERIC_IRQ_CHIP=y
-CONFIG_SPARSE_IRQ=y
-CONFIG_ARCH_HAS_TICK_BROADCAST=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+# CONFIG_NO_HZ_IDLE is not set
+CONFIG_NO_HZ_FULL=y
+CONFIG_NO_HZ_FULL_ALL=y
+# CONFIG_NO_HZ_FULL_SYSIDLE is not set
+
+#
+# CPU/Task time and stats accounting
+#
+CONFIG_VIRT_CPU_ACCOUNTING=y
+CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
 
 #
 # RCU Subsystem
 #
-CONFIG_TREE_RCU=y
-CONFIG_RCU_STALL_COMMON=y
 CONFIG_CONTEXT_TRACKING=y
 CONFIG_RCU_USER_QS=y
 CONFIG_CONTEXT_TRACKING_FORCE=y
-CONFIG_RCU_FANOUT=32
-CONFIG_RCU_FANOUT_LEAF=16
-# CONFIG_RCU_FANOUT_EXACT is not set
 CONFIG_RCU_FAST_NO_HZ=y
 CONFIG_RCU_NOCB_CPU=y
-# CONFIG_RCU_NOCB_CPU_NONE is not set
-# CONFIG_RCU_NOCB_CPU_ZERO is not set
 CONFIG_RCU_NOCB_CPU_ALL=y
 
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_SLUB_CPU_PARTIAL=y
-CONFIG_USE_GENERIC_SMP_HELPERS=y
-
 #
 # IO Schedulers
 #
 CONFIG_PADATA=y
-CONFIG_MUTEX_SPIN_ON_OWNER=y
-
-#
-# System Type
-#
-CONFIG_ARCH_MULTIPLATFORM=y
-# CONFIG_ARCH_VERSATILE is not set
 
 #
 # CPU Core family selection
 #
 CONFIG_ARCH_MULTI_V6=y
-CONFIG_ARCH_MULTI_V7=y
-CONFIG_ARCH_MULTI_V6_V7=y
-# CONFIG_ARCH_MULTI_CPU_AUTO is not set
 CONFIG_ARCH_MVEBU=y
 
 #
@@ -63,6 +44,11 @@ CONFIG_MACH_ARMADA_370_XP=y
 CONFIG_MACH_ARMADA_370=y
 CONFIG_MACH_ARMADA_XP=y
 CONFIG_ARCH_BCM=y
+
+#
+# Broadcom SoC Selection
+#
+# CONFIG_ARCH_BCM_MOBILE is not set
 CONFIG_ARCH_BCM2835=y
 CONFIG_ARCH_CNS3XXX=y
 
@@ -156,38 +142,25 @@ CONFIG_IMX_HAVE_PLATFORM_SPI_IMX=y
 CONFIG_POWER_AVS_OMAP=y
 CONFIG_POWER_AVS_OMAP_CLASS3=y
 CONFIG_OMAP_RESET_CLOCKS=y
-CONFIG_OMAP_MUX=y
-# CONFIG_OMAP_MUX_DEBUG is not set
-CONFIG_OMAP_MUX_WARNINGS=y
-CONFIG_OMAP_32K_TIMER=y
 # CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
-CONFIG_OMAP_DM_TIMER=y
-CONFIG_OMAP_PM_NOOP=y
-CONFIG_MACH_OMAP_GENERIC=y
-CONFIG_ARCH_OMAP=y
 # CONFIG_ARCH_OMAP2 is not set
 CONFIG_ARCH_OMAP3=y
 CONFIG_ARCH_OMAP4=y
-CONFIG_SOC_OMAP5=y
 CONFIG_SOC_AM33XX=y
 CONFIG_SOC_AM43XX=y
-CONFIG_ARCH_OMAP2PLUS=y
 
 #
 # TI OMAP2/3/4 Specific Features
 #
-CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
 CONFIG_SOC_HAS_OMAP2_SDRC=y
-CONFIG_SOC_HAS_REALTIME_COUNTER=y
 CONFIG_SOC_DRA7XX=y
 CONFIG_SOC_OMAP3430=y
 CONFIG_SOC_TI81XX=y
 CONFIG_OMAP_PACKAGE_CBB=y
 CONFIG_OMAP_PACKAGE_CUS=y
-CONFIG_OMAP_PACKAGE_CBP=y
 
 #
-# OMAP Board Type
+# OMAP Legacy Platform Data Board Type
 #
 CONFIG_MACH_OMAP3_BEAGLE=y
 CONFIG_MACH_DEVKIT8000=y
@@ -195,23 +168,16 @@ CONFIG_MACH_OMAP_LDP=y
 CONFIG_MACH_OMAP3530_LV_SOM=y
 CONFIG_MACH_OMAP3_TORPEDO=y
 CONFIG_MACH_OVERO=y
-CONFIG_MACH_OMAP3EVM=y
 CONFIG_MACH_OMAP3517EVM=y
 CONFIG_MACH_CRANEBOARD=y
 CONFIG_MACH_OMAP3_PANDORA=y
 CONFIG_MACH_TOUCHBOOK=y
 CONFIG_MACH_OMAP_3430SDP=y
-CONFIG_MACH_NOKIA_RM680=y
 CONFIG_MACH_NOKIA_RX51=y
-CONFIG_MACH_OMAP_ZOOM2=y
-CONFIG_MACH_OMAP_ZOOM3=y
 CONFIG_MACH_CM_T35=y
 CONFIG_MACH_CM_T3517=y
 CONFIG_MACH_CM_T3730=y
-CONFIG_MACH_IGEP0020=y
-CONFIG_MACH_IGEP0030=y
 CONFIG_MACH_SBC3530=y
-CONFIG_MACH_OMAP_3630SDP=y
 CONFIG_MACH_TI8168EVM=y
 CONFIG_MACH_TI8148EVM=y
 CONFIG_OMAP3_EMU=y
@@ -232,7 +198,7 @@ CONFIG_ARCH_EMEV2=y
 #
 # SH-Mobile Board Type
 #
-CONFIG_MACH_KZM9D_REFERENCE=y
+CONFIG_MACH_KZM9D=y
 
 #
 # Timer and clock configuration
@@ -251,7 +217,6 @@ CONFIG_ARCH_ATLAS6=y
 CONFIG_ARCH_PRIMA2=y
 CONFIG_ARCH_MARCO=y
 CONFIG_SIRF_IRQ=y
-CONFIG_ARCH_TEGRA=y
 
 #
 # NVIDIA Tegra options
@@ -259,10 +224,8 @@ CONFIG_ARCH_TEGRA=y
 CONFIG_ARCH_TEGRA_2x_SOC=y
 CONFIG_ARCH_TEGRA_3x_SOC=y
 CONFIG_ARCH_TEGRA_114_SOC=y
-CONFIG_TEGRA_AHB=y
-# CONFIG_TEGRA_EMC_SCALING_ENABLE is not set
+CONFIG_ARCH_TEGRA_124_SOC=y
 CONFIG_ARCH_U8500=y
-CONFIG_UX500_SOC_COMMON=y
 CONFIG_UX500_SOC_DB8500=y
 
 #
@@ -281,12 +244,17 @@ CONFIG_ARCH_VEXPRESS=y
 #
 CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y
 CONFIG_ARCH_VEXPRESS_CA9X4=y
+CONFIG_ARCH_VEXPRESS_SPC=y
+CONFIG_PLAT_VERSATILE_CLCD=y
+CONFIG_PLAT_VERSATILE_SCHED_CLOCK=y
 CONFIG_ARCH_VIRT=y
 CONFIG_ARCH_VT8500=y
 CONFIG_ARCH_WM8750=y
 CONFIG_ARCH_WM8850=y
 CONFIG_ARCH_ZYNQ=y
 CONFIG_PLAT_ORION=y
+CONFIG_PLAT_VERSATILE=y
+CONFIG_ARM_TIMER_SP804=y
 
 #
 # Processor Type
@@ -294,37 +262,23 @@ CONFIG_PLAT_ORION=y
 CONFIG_CPU_PJ4B=y
 CONFIG_CPU_V6=y
 CONFIG_CPU_V6K=y
-CONFIG_CPU_V7=y
 CONFIG_CPU_32v6=y
-CONFIG_CPU_32v6K=y
-CONFIG_CPU_32v7=y
 CONFIG_CPU_ABRT_EV6=y
-CONFIG_CPU_ABRT_EV7=y
 CONFIG_CPU_PABRT_V6=y
-CONFIG_CPU_PABRT_V7=y
 CONFIG_CPU_CACHE_V6=y
-CONFIG_CPU_CACHE_V7=y
-CONFIG_CPU_CACHE_VIPT=y
-CONFIG_CPU_COPY_V6=y
 CONFIG_CPU_TLB_V6=y
-CONFIG_CPU_TLB_V7=y
-CONFIG_CPU_HAS_ASID=y
 
 #
 # Processor Features
 #
-# CONFIG_ARM_THUMBEE is not set
-CONFIG_ARM_VIRT_EXT=y
-CONFIG_SWP_EMULATE=y
-# CONFIG_CPU_BPREDICT_DISABLE is not set
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_KUSER_HELPERS=y
 CONFIG_DMA_CACHE_RWFO=y
 CONFIG_OUTER_CACHE=y
 CONFIG_OUTER_CACHE_SYNC=y
-CONFIG_MIGHT_HAVE_CACHE_L2X0=y
 CONFIG_CACHE_L2X0=y
-CONFIG_ARM_L1_CACHE_SHIFT_6=y
-CONFIG_ARM_L1_CACHE_SHIFT=6
-CONFIG_ARM_DMA_MEM_BUFFERABLE=y
+CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
 CONFIG_PJ4B_ERRATA_4742=y
 # CONFIG_ARM_ERRATA_326103 is not set
 CONFIG_ARM_ERRATA_411920=y
@@ -339,37 +293,31 @@ CONFIG_ARM_ERRATA_364296=y
 CONFIG_ARM_ERRATA_764369=y
 CONFIG_PL310_ERRATA_769419=y
 CONFIG_ARM_ERRATA_775420=y
-CONFIG_ARM_ERRATA_798181=y
-# CONFIG_ARM_ERRATA_773022 is not set
-CONFIG_TI_PRIV_EDMA=y
+CONFIG_ICST=y
 
 #
 # Bus support
 #
+CONFIG_ARM_AMBA=y
 CONFIG_PCI_DOMAINS=y
 
 #
 # PCI host controller drivers
 #
 CONFIG_PCI_MVEBU=y
+CONFIG_PCIE_DW=y
+CONFIG_PCI_IMX6=y
 CONFIG_PCI_TEGRA=y
 # CONFIG_PCCARD is not set
 
 #
 # Kernel Features
 #
-CONFIG_SMP=y
-CONFIG_SMP_ON_UP=y
-CONFIG_ARM_CPU_TOPOLOGY=y
 CONFIG_SCHED_MC=y
 CONFIG_SCHED_SMT=y
-# CONFIG_MCPM is not set
 CONFIG_NR_CPUS=8
-CONFIG_HOTPLUG_CPU=y
 CONFIG_ARM_PSCI=y
-CONFIG_ARCH_NR_GPIO=1024
-CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_PHYS_ADDR_T_64BIT is not set
 CONFIG_ZONE_DMA_FLAG=1
 CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
 CONFIG_FORCE_MAX_ZONEORDER=12
@@ -379,11 +327,6 @@ CONFIG_FORCE_MAX_ZONEORDER=12
 #
 CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc mem=256M"
 
-#
-# CPU Frequency scaling
-#
-# CONFIG_CPU_FREQ is not set
-
 #
 # CPU Idle
 #
@@ -392,35 +335,18 @@ CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED=y
 #
 # At least one emulation must be selected
 #
-CONFIG_VFPv3=y
-CONFIG_NEON=y
 CONFIG_KERNEL_MODE_NEON=y
 
 #
 # Power management options
 #
-CONFIG_PM_SLEEP_SMP=y
 CONFIG_ARCH_HAS_OPP=y
 CONFIG_PM_OPP=y
 
-#
-# Classification
-#
-CONFIG_RPS=y
-CONFIG_RFS_ACCEL=y
-CONFIG_XPS=y
-CONFIG_NET_FLOW_LIMIT=y
-
-#
-# Bluetooth device drivers
-#
-# CONFIG_RFKILL_REGULATOR is not set
-
 #
 # Generic Driver Options
 #
 CONFIG_FIRMWARE_IN_KERNEL=y
-CONFIG_SOC_BUS=y
 CONFIG_REGMAP_I2C=y
 CONFIG_REGMAP_MMIO=y
 
@@ -534,6 +460,17 @@ CONFIG_BLK_DEV_RAM_SIZE=65536
 CONFIG_MG_DISK=m
 CONFIG_MG_DISK_RES=0
 
+#
+# Misc devices
+#
+# CONFIG_ARM_CHARLCD is not set
+CONFIG_SRAM=y
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_SUNXI_SID=m
+
 #
 # Controllers with non-SFF native interface
 #
@@ -603,11 +540,18 @@ CONFIG_INPUT_TWL6040_VIBRA=y
 # CONFIG_INPUT_WM831X_ON is not set
 CONFIG_INPUT_SIRFSOC_ONKEY=y
 
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO_AMBAKMI=m
+
 #
 # Non-8250 serial port support
 #
 CONFIG_SERIAL_AMBA_PL010=y
 # CONFIG_SERIAL_AMBA_PL010_CONSOLE is not set
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
 CONFIG_SERIAL_SIRFSOC=y
 # CONFIG_SERIAL_SIRFSOC_CONSOLE is not set
 CONFIG_SERIAL_TEGRA=y
@@ -625,8 +569,8 @@ CONFIG_SERIAL_ARC=y
 # CONFIG_SERIAL_ARC_CONSOLE is not set
 CONFIG_HW_RANDOM_BCM2835=y
 CONFIG_HW_RANDOM_OMAP=m
+CONFIG_HW_RANDOM_OMAP3_ROM=m
 CONFIG_HW_RANDOM_MXC_RNGA=m
-CONFIG_I2C=y
 CONFIG_I2C_ALGOBIT=y
 
 #
@@ -637,28 +581,24 @@ CONFIG_I2C_DAVINCI=m
 CONFIG_I2C_IMX=y
 CONFIG_I2C_MV64XXX=y
 CONFIG_I2C_NOMADIK=y
-CONFIG_I2C_OMAP=y
 CONFIG_I2C_SIRF=y
+CONFIG_I2C_ST=m
 CONFIG_I2C_TEGRA=y
+CONFIG_I2C_VERSATILE=m
 CONFIG_I2C_WMT=y
 
-#
-# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
-#
-CONFIG_PINCTRL=y
-
 #
 # Pin controllers
 #
 CONFIG_PINMUX=y
 CONFIG_PINCONF=y
 CONFIG_GENERIC_PINCONF=y
-# CONFIG_DEBUG_PINCTRL is not set
 CONFIG_PINCTRL_ABX500=y
 CONFIG_PINCTRL_AB8500=y
 CONFIG_PINCTRL_AB8540=y
 CONFIG_PINCTRL_AB9540=y
 CONFIG_PINCTRL_AB8505=y
+# CONFIG_PINCTRL_AS3722 is not set
 CONFIG_PINCTRL_BCM2835=y
 CONFIG_PINCTRL_IMX=y
 CONFIG_PINCTRL_IMX35=y
@@ -671,7 +611,6 @@ CONFIG_PINCTRL_NOMADIK=y
 CONFIG_PINCTRL_DB8500=y
 CONFIG_PINCTRL_DB8540=y
 CONFIG_PINCTRL_ROCKCHIP=y
-# CONFIG_PINCTRL_SINGLE is not set
 CONFIG_PINCTRL_SIRF=y
 CONFIG_PINCTRL_SUNXI=y
 CONFIG_PINCTRL_ST=y
@@ -686,7 +625,7 @@ CONFIG_PINCTRL_ARMADA_XP=y
 CONFIG_PINCTRL_WMT=y
 CONFIG_PINCTRL_WM8750=y
 CONFIG_PINCTRL_WM8850=y
-CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
 CONFIG_GPIO_GENERIC=y
 # CONFIG_GPIO_DA9052 is not set
 # CONFIG_GPIO_DA9055 is not set
@@ -704,7 +643,6 @@ CONFIG_GPIO_PL061=y
 #
 CONFIG_GPIO_MC9S08DZ60=y
 # CONFIG_GPIO_RC5T583 is not set
-# CONFIG_GPIO_SX150X is not set
 # CONFIG_GPIO_STMPE is not set
 # CONFIG_GPIO_TC3589X is not set
 # CONFIG_GPIO_TPS65912 is not set
@@ -726,7 +664,6 @@ CONFIG_GPIO_TWL6040=m
 # 1-wire Bus Masters
 #
 CONFIG_W1_MASTER_MXC=m
-# CONFIG_HDQ_MASTER_OMAP is not set
 
 #
 # 1-wire Slaves
@@ -741,7 +678,6 @@ CONFIG_W1_MASTER_MXC=m
 # CONFIG_BATTERY_TWL4030_MADC is not set
 # CONFIG_BATTERY_RX51 is not set
 # CONFIG_CHARGER_TWL4030 is not set
-# CONFIG_CHARGER_MANAGER is not set
 # CONFIG_CHARGER_MAX8997 is not set
 # CONFIG_CHARGER_MAX8998 is not set
 # CONFIG_CHARGER_TPS65090 is not set
@@ -774,11 +710,13 @@ CONFIG_DRA752_THERMAL=y
 # CONFIG_DA9055_WATCHDOG is not set
 # CONFIG_WM831X_WATCHDOG is not set
 # CONFIG_WM8350_WATCHDOG is not set
+# CONFIG_ARM_SP805_WATCHDOG is not set
 CONFIG_OMAP_WATCHDOG=y
 CONFIG_SUNXI_WATCHDOG=m
 # CONFIG_TWL4030_WATCHDOG is not set
 CONFIG_IMX2_WDT=m
 CONFIG_UX500_WATCHDOG=y
+CONFIG_SIRFSOC_WATCHDOG=m
 CONFIG_BCM2835_WDT=m
 
 #
@@ -786,6 +724,7 @@ CONFIG_BCM2835_WDT=m
 #
 CONFIG_MFD_CORE=y
 CONFIG_MFD_AS3711=y
+CONFIG_MFD_AS3722=y
 CONFIG_PMIC_ADP5520=y
 CONFIG_MFD_AAT2870_CORE=y
 CONFIG_PMIC_DA903X=y
@@ -821,7 +760,6 @@ CONFIG_MFD_STMPE=y
 CONFIG_STMPE_I2C=y
 CONFIG_MFD_SYSCON=y
 CONFIG_MFD_LP8788=y
-CONFIG_MFD_OMAP_USB_HOST=y
 CONFIG_MFD_PALMAS=y
 CONFIG_MFD_TPS65090=y
 CONFIG_MFD_TPS6586X=y
@@ -841,12 +779,7 @@ CONFIG_MFD_WM831X_I2C=y
 CONFIG_MFD_WM8350=y
 CONFIG_MFD_WM8350_I2C=y
 CONFIG_MFD_WM8994=y
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-# CONFIG_REGULATOR_DUMMY is not set
 CONFIG_REGULATOR_FIXED_VOLTAGE=y
-# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
-# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
 CONFIG_REGULATOR_88PM800=m
 CONFIG_REGULATOR_88PM8607=y
 CONFIG_REGULATOR_AD5398=m
@@ -855,6 +788,7 @@ CONFIG_REGULATOR_AAT2870=m
 CONFIG_REGULATOR_AB3100=y
 CONFIG_REGULATOR_AB8500=y
 CONFIG_REGULATOR_AS3711=m
+CONFIG_REGULATOR_AS3722=m
 CONFIG_REGULATOR_DA903X=m
 CONFIG_REGULATOR_DA9052=m
 CONFIG_REGULATOR_DA9055=m
@@ -904,9 +838,9 @@ CONFIG_REGULATOR_WM8400=m
 CONFIG_REGULATOR_WM8994=m
 
 #
-# Multimedia core support
+# Media drivers
 #
-CONFIG_VIDEO_V4L2=y
+# CONFIG_RC_ST is not set
 
 #
 # Media digital TV PCI Adapters
@@ -916,31 +850,16 @@ CONFIG_VIDEO_OMAP2_VOUT_VRFB=y
 CONFIG_VIDEO_OMAP2_VOUT=m
 CONFIG_VIDEO_MX3=m
 CONFIG_VIDEO_CODA=m
-
-#
-# Media ancillary drivers (tuners, sensors, i2c, frontends)
-#
-CONFIG_VIDEO_IR_I2C=y
-
-#
-# soc_camera sensor drivers
-#
-CONFIG_MEDIA_TUNER=y
-CONFIG_MEDIA_TUNER_SIMPLE=y
-CONFIG_MEDIA_TUNER_TDA8290=y
-CONFIG_MEDIA_TUNER_TDA827X=y
-CONFIG_MEDIA_TUNER_TDA18271=y
-CONFIG_MEDIA_TUNER_TDA9887=y
-CONFIG_MEDIA_TUNER_MT20XX=y
-CONFIG_MEDIA_TUNER_XC2028=y
-CONFIG_MEDIA_TUNER_XC5000=y
-CONFIG_MEDIA_TUNER_XC4000=y
-CONFIG_MEDIA_TUNER_MC44S803=y
+CONFIG_VIDEO_TI_VPE=m
+# CONFIG_VIDEO_TI_VPE_DEBUG is not set
 
 #
 # Graphics support
 #
+CONFIG_TEGRA_HOST1X=y
+# CONFIG_TEGRA_HOST1X_FIREWALL is not set
 CONFIG_DRM=y
+CONFIG_DRM_KMS_HELPER=y
 
 #
 # I2C encoder or helper chips
@@ -953,7 +872,9 @@ CONFIG_DRM_EXYNOS_G2D=y
 # CONFIG_DRM_UDL is not set
 CONFIG_DRM_OMAP=m
 CONFIG_DRM_OMAP_NUM_CRTCS=1
-# CONFIG_TEGRA_HOST1X is not set
+CONFIG_DRM_TEGRA=y
+# CONFIG_DRM_TEGRA_DEBUG is not set
+# CONFIG_DRM_TEGRA_STAGING is not set
 # CONFIG_VIDEO_OUTPUT_CONTROL is not set
 CONFIG_VIDEOMODE_HELPERS=y
 CONFIG_FB_MODE_HELPERS=y
@@ -961,6 +882,7 @@ CONFIG_FB_MODE_HELPERS=y
 #
 # Frame buffer hardware drivers
 #
+# CONFIG_FB_ARMCLCD is not set
 # CONFIG_FB_IMX is not set
 # CONFIG_FB_VT8500 is not set
 # CONFIG_FB_WM8505 is not set
@@ -1008,8 +930,12 @@ CONFIG_DISPLAY_PANEL_SHARP_LS037V7DW01=m
 # Console display driver support
 #
 CONFIG_SND_DMAENGINE_PCM=m
+CONFIG_SND_ARMAACI=m
 CONFIG_SND_SOC_AC97_BUS=y
 CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
+CONFIG_SND_DAVINCI_SOC=m
+CONFIG_SND_DAVINCI_SOC_MCASP=m
+CONFIG_SND_AM33XX_SOC_EVM=m
 CONFIG_SND_SOC_FSL_SSI=m
 CONFIG_SND_SOC_FSL_SPDIF=m
 CONFIG_SND_IMX_SOC=m
@@ -1065,16 +991,10 @@ CONFIG_SND_SOC_WM8962=m
 CONFIG_SND_SOC_WM9712=m
 CONFIG_SND_SOC_TPA6130A2=m
 
-#
-# I2C HID support
-#
-CONFIG_USB_ARCH_HAS_EHCI=y
-
 #
 # USB Host Controller Drivers
 #
 CONFIG_USB_EHCI_MXC=m
-CONFIG_USB_EHCI_HCD_OMAP=y
 CONFIG_USB_EHCI_HCD_ORION=m
 CONFIG_USB_EHCI_TEGRA=y
 # CONFIG_USB_CNS3XXX_EHCI is not set
@@ -1088,15 +1008,12 @@ CONFIG_USB_IMX21_HCD=m
 # USB Physical Layer drivers
 #
 CONFIG_AB8500_USB=m
-CONFIG_NOP_USB_XCEIV=y
 CONFIG_OMAP_CONTROL_USB=m
-CONFIG_OMAP_USB2=m
 CONFIG_OMAP_USB3=m
 CONFIG_SAMSUNG_USBPHY=y
 CONFIG_SAMSUNG_USB2PHY=y
 CONFIG_SAMSUNG_USB3PHY=y
 CONFIG_USB_MXS_PHY=m
-CONFIG_USB_ULPI_VIEWPORT=y
 CONFIG_MMC=y
 
 #
@@ -1107,6 +1024,7 @@ CONFIG_MMC_BLOCK=y
 #
 # MMC/SD/SDIO Host Controller Drivers
 #
+CONFIG_MMC_ARMMMCI=m
 CONFIG_MMC_SDHCI=y
 CONFIG_MMC_SDHCI_IO_ACCESSORS=y
 CONFIG_MMC_SDHCI_CNS3XXX=m
@@ -1151,6 +1069,7 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
 #
 # CONFIG_RTC_DRV_88PM860X is not set
 # CONFIG_RTC_DRV_88PM80X is not set
+CONFIG_RTC_DRV_AS3722=m
 # CONFIG_RTC_DRV_LP8788 is not set
 # CONFIG_RTC_DRV_MAX8907 is not set
 # CONFIG_RTC_DRV_MAX8925 is not set
@@ -1163,6 +1082,7 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
 # CONFIG_RTC_DRV_TPS65910 is not set
 # CONFIG_RTC_DRV_TPS80031 is not set
 # CONFIG_RTC_DRV_RC5T583 is not set
+CONFIG_RTC_DRV_S5M=m
 
 #
 # Platform RTC drivers
@@ -1179,6 +1099,8 @@ CONFIG_RTC_DRV_AB3100=y
 #
 CONFIG_RTC_DRV_IMXDI=m
 CONFIG_RTC_DRV_OMAP=m
+CONFIG_RTC_DRV_PL030=m
+CONFIG_RTC_DRV_PL031=m
 CONFIG_RTC_DRV_VT8500=m
 CONFIG_RTC_DRV_MV=m
 CONFIG_RTC_DRV_TEGRA=m
@@ -1189,6 +1111,7 @@ CONFIG_RTC_DRV_SIRFSOC=m
 # DMA Devices
 #
 CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y
+# CONFIG_AMBA_PL08X is not set
 CONFIG_MV_XOR=y
 CONFIG_MX3_IPU=y
 CONFIG_MX3_IPU_IRQS=4
@@ -1196,6 +1119,7 @@ CONFIG_TEGRA20_APB_DMA=y
 # CONFIG_STE_DMA40 is not set
 CONFIG_SIRF_DMA=y
 CONFIG_TI_EDMA=y
+CONFIG_PL330_DMA=y
 CONFIG_IMX_SDMA=m
 CONFIG_IMX_DMA=m
 # CONFIG_MXS_DMA is not set
@@ -1204,20 +1128,13 @@ CONFIG_TI_CPPI41=m
 CONFIG_DMA_VIRTUAL_CHANNELS=y
 
 #
-# Speakup console speech
+# DMA Clients
 #
-# CONFIG_MFD_NVEC is not set
-
-#
-# Android
-#
-# CONFIG_DRM_IMX is not set
-CONFIG_COMMON_CLK=y
+CONFIG_DMA_ENGINE_RAID=y
 
 #
 # Common Clock Framework
 #
-# CONFIG_COMMON_CLK_DEBUG is not set
 # CONFIG_COMMON_CLK_WM831X is not set
 CONFIG_COMMON_CLK_VERSATILE=y
 # CONFIG_COMMON_CLK_MAX77686 is not set
@@ -1225,6 +1142,7 @@ CONFIG_COMMON_CLK_SI5351=m
 CONFIG_COMMON_CLK_S2MPS11=m
 CONFIG_CLK_TWL6040=m
 CONFIG_COMMON_CLK_AXI_CLKGEN=m
+CONFIG_COMMON_CLK_KEYSTONE=y
 CONFIG_MVEBU_CLK_COMMON=y
 CONFIG_MVEBU_CLK_CPU=y
 CONFIG_ARMADA_370_CLK=y
@@ -1245,16 +1163,14 @@ CONFIG_CADENCE_TTC_TIMER=y
 CONFIG_CLKSRC_NOMADIK_MTU=y
 CONFIG_CLKSRC_DBX500_PRCMU=y
 CONFIG_CLKSRC_DBX500_PRCMU_SCHED_CLOCK=y
-CONFIG_ARM_ARCH_TIMER=y
 CONFIG_ARM_GLOBAL_TIMER=y
 CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y
 CONFIG_VF_PIT_TIMER=y
+CONFIG_PL320_MBOX=y
 CONFIG_OMAP_MBOX=m
 CONFIG_OMAP2PLUS_MBOX=m
 CONFIG_OMAP_MBOX_KFIFO_SIZE=256
-# CONFIG_OMAP_IOMMU is not set
 # CONFIG_TEGRA_IOMMU_GART is not set
-# CONFIG_TEGRA_IOMMU_SMMU is not set
 
 #
 # Rpmsg drivers
@@ -1274,39 +1190,30 @@ CONFIG_TEGRA30_MC=y
 # Temperature sensors
 #
 # CONFIG_PWM is not set
-CONFIG_ARM_GIC=y
+CONFIG_ARM_VIC=y
+CONFIG_ARM_VIC_NR=2
 CONFIG_ARCH_HAS_RESET_CONTROLLER=y
 
 #
-# File systems
+# PHY Subsystem
 #
-CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_OMAP_USB2=m
 
 #
 # Pseudo filesystems
 #
 # CONFIG_JFFS2_FS is not set
 
-#
-# Memory Debugging
-#
-# CONFIG_DEBUG_PER_CPU_MAPS is not set
-
 #
 # RCU Debugging
 #
 CONFIG_RCU_CPU_STALL_TIMEOUT=60
-# CONFIG_RCU_CPU_STALL_INFO is not set
 
 #
 # Runtime Testing
 #
 CONFIG_DEBUG_IMX_UART_PORT=1
-CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
-# CONFIG_DEBUG_UART_PL01X is not set
-CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
 CONFIG_OC_ETM=y
-# CONFIG_PID_IN_CONTEXTIDR is not set
 
 #
 # Non-executable pages
@@ -1339,6 +1246,12 @@ CONFIG_GRKERNSEC_RWXMAP_LOG=y
 # Crypto core or helper
 #
 CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_ABLK_HELPER=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES_ARM_BS=m
 
 #
 # Random Number Generation
@@ -1359,5 +1272,5 @@ CONFIG_CRYPTO_DEV_UX500=m
 CONFIG_RATIONAL=y
 CONFIG_STMP_DEVICE=y
 CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_CPU_RMAP=y
+CONFIG_GENERIC_ATOMIC64=y
 CONFIG_DDR=y
diff --git a/kernel/config-armv7hl-generic b/kernel/config-armv7hl-generic
new file mode 100644 (file)
index 0000000..f3df469
--- /dev/null
@@ -0,0 +1,311 @@
+CONFIG_MIGHT_HAVE_PCI=y
+CONFIG_ARCH_HAS_CPUFREQ=y
+CONFIG_ARCH_HAS_BANDGAP=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_ARCH_HAS_TICK_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+CONFIG_RCU_STALL_COMMON=y
+CONFIG_RCU_FANOUT=32
+CONFIG_RCU_FANOUT_LEAF=16
+# CONFIG_RCU_FANOUT_EXACT is not set
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_SLUB_CPU_PARTIAL=y
+
+#
+# IO Schedulers
+#
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+
+#
+# System Type
+#
+CONFIG_ARCH_MULTIPLATFORM=y
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+
+#
+# CPU Core family selection
+#
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARCH_MULTI_V6_V7=y
+# CONFIG_ARCH_MULTI_CPU_AUTO is not set
+
+#
+# OMAP Feature Selections
+#
+CONFIG_OMAP_MUX=y
+# CONFIG_OMAP_MUX_DEBUG is not set
+CONFIG_OMAP_MUX_WARNINGS=y
+CONFIG_OMAP_32K_TIMER=y
+CONFIG_OMAP_DM_TIMER=y
+CONFIG_OMAP_PM_NOOP=y
+CONFIG_MACH_OMAP_GENERIC=y
+CONFIG_ARCH_OMAP=y
+CONFIG_SOC_OMAP5=y
+CONFIG_ARCH_OMAP2PLUS=y
+
+#
+# TI OMAP2/3/4 Specific Features
+#
+CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
+CONFIG_SOC_HAS_REALTIME_COUNTER=y
+
+#
+# OMAP Legacy Platform Data Board Type
+#
+CONFIG_ARCH_TEGRA=y
+
+#
+# NVIDIA Tegra options
+#
+CONFIG_TEGRA_AHB=y
+# CONFIG_TEGRA_EMC_SCALING_ENABLE is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_V7=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV7=y
+CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_HAS_ASID=y
+
+#
+# Processor Features
+#
+# CONFIG_ARM_THUMBEE is not set
+CONFIG_ARM_VIRT_EXT=y
+CONFIG_SWP_EMULATE=y
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_MIGHT_HAVE_CACHE_L2X0=y
+CONFIG_ARM_L1_CACHE_SHIFT_6=y
+CONFIG_ARM_L1_CACHE_SHIFT=6
+CONFIG_ARM_DMA_MEM_BUFFERABLE=y
+CONFIG_ARM_ERRATA_798181=y
+# CONFIG_ARM_ERRATA_773022 is not set
+CONFIG_TI_PRIV_EDMA=y
+
+#
+# Kernel Features
+#
+CONFIG_SMP=y
+CONFIG_SMP_ON_UP=y
+CONFIG_ARM_CPU_TOPOLOGY=y
+# CONFIG_MCPM is not set
+# CONFIG_BIG_LITTLE is not set
+CONFIG_HOTPLUG_CPU=y
+CONFIG_ARCH_NR_GPIO=1024
+CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+
+#
+# Boot options
+#
+# CONFIG_ARM_ATAG_DTB_COMPAT is not set
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+
+#
+# At least one emulation must be selected
+#
+CONFIG_VFPv3=y
+CONFIG_NEON=y
+
+#
+# Power management options
+#
+CONFIG_PM_SLEEP_SMP=y
+
+#
+# Classification
+#
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+CONFIG_NET_FLOW_LIMIT=y
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_RFKILL_REGULATOR is not set
+
+#
+# Generic Driver Options
+#
+CONFIG_SOC_BUS=y
+
+#
+# Non-8250 serial port support
+#
+CONFIG_I2C=y
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_OMAP=y
+
+#
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+#
+CONFIG_PINCTRL=y
+
+#
+# Pin controllers
+#
+# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_PINCTRL_SINGLE is not set
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+
+#
+# Memory mapped GPIO drivers:
+#
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+
+#
+# I2C GPIO expanders:
+#
+# CONFIG_GPIO_SX150X is not set
+
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MCP23S08 is not set
+
+#
+# 1-wire Bus Masters
+#
+# CONFIG_HDQ_MASTER_OMAP is not set
+
+#
+# 1-wire Slaves
+#
+# CONFIG_CHARGER_MANAGER is not set
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_OMAP_USB_HOST=y
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+
+#
+# Multimedia core support
+#
+CONFIG_VIDEO_V4L2=y
+
+#
+# Media ancillary drivers (tuners, sensors, i2c, frontends)
+#
+CONFIG_VIDEO_IR_I2C=y
+
+#
+# soc_camera sensor drivers
+#
+CONFIG_MEDIA_TUNER=y
+CONFIG_MEDIA_TUNER_SIMPLE=y
+CONFIG_MEDIA_TUNER_TDA8290=y
+CONFIG_MEDIA_TUNER_TDA827X=y
+CONFIG_MEDIA_TUNER_TDA18271=y
+CONFIG_MEDIA_TUNER_TDA9887=y
+CONFIG_MEDIA_TUNER_MT20XX=y
+CONFIG_MEDIA_TUNER_XC2028=y
+CONFIG_MEDIA_TUNER_XC5000=y
+CONFIG_MEDIA_TUNER_XC4000=y
+CONFIG_MEDIA_TUNER_MC44S803=y
+
+#
+# I2C HID support
+#
+CONFIG_USB_ARCH_HAS_EHCI=y
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD_OMAP=y
+
+#
+# USB Physical Layer drivers
+#
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_USB_ULPI_VIEWPORT=y
+
+#
+# Speakup console speech
+#
+# CONFIG_MFD_NVEC is not set
+
+#
+# Android
+#
+# CONFIG_DRM_IMX is not set
+CONFIG_COMMON_CLK=y
+
+#
+# Common Clock Framework
+#
+# CONFIG_COMMON_CLK_DEBUG is not set
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
+# CONFIG_OMAP_IOMMU is not set
+# CONFIG_TEGRA_IOMMU_SMMU is not set
+
+#
+# Temperature sensors
+#
+CONFIG_ARM_GIC=y
+
+#
+# File systems
+#
+CONFIG_DCACHE_WORD_ACCESS=y
+
+#
+# Memory Debugging
+#
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+
+#
+# RCU Debugging
+#
+# CONFIG_RCU_CPU_STALL_INFO is not set
+
+#
+# Runtime Testing
+#
+CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
+# CONFIG_DEBUG_UART_PL01X is not set
+# CONFIG_DEBUG_UART_8250 is not set
+CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
+# CONFIG_PID_IN_CONTEXTIDR is not set
+
+#
+# Library routines
+#
+CONFIG_CPU_RMAP=y
diff --git a/kernel/config-armv7hl-lpae b/kernel/config-armv7hl-lpae
new file mode 100644 (file)
index 0000000..8d6b89d
--- /dev/null
@@ -0,0 +1,500 @@
+
+#
+# Timers subsystem
+#
+CONFIG_NO_HZ_IDLE=y
+# CONFIG_NO_HZ_FULL is not set
+
+#
+# CPU/Task time and stats accounting
+#
+CONFIG_TICK_CPU_ACCOUNTING=y
+# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+
+#
+# RCU Subsystem
+#
+# CONFIG_RCU_USER_QS is not set
+# CONFIG_RCU_FAST_NO_HZ is not set
+# CONFIG_RCU_NOCB_CPU is not set
+
+#
+# CPU Core family selection
+#
+# CONFIG_ARCH_MULTI_V6 is not set
+# CONFIG_ARCH_MVEBU is not set
+# CONFIG_ARCH_BCM is not set
+# CONFIG_ARCH_HIGHBANK is not set
+# CONFIG_ARCH_KEYSTONE is not set
+# CONFIG_ARCH_MXC is not set
+
+#
+# OMAP Feature Selections
+#
+# CONFIG_OMAP_RESET_CLOCKS is not set
+# CONFIG_ARCH_OMAP3 is not set
+# CONFIG_ARCH_OMAP4 is not set
+# CONFIG_SOC_AM33XX is not set
+# CONFIG_SOC_AM43XX is not set
+
+#
+# TI OMAP2/3/4 Specific Features
+#
+# CONFIG_SOC_HAS_OMAP2_SDRC is not set
+# CONFIG_SOC_DRA7XX is not set
+
+#
+# OMAP Legacy Platform Data Board Type
+#
+# CONFIG_ARCH_ROCKCHIP is not set
+# CONFIG_ARCH_SOCFPGA is not set
+# CONFIG_ARCH_STI is not set
+# CONFIG_ARCH_SHMOBILE_MULTI is not set
+# CONFIG_ARCH_SUNXI is not set
+# CONFIG_ARCH_SIRF is not set
+
+#
+# NVIDIA Tegra options
+#
+# CONFIG_ARCH_TEGRA_2x_SOC is not set
+# CONFIG_ARCH_TEGRA_3x_SOC is not set
+# CONFIG_ARCH_TEGRA_114_SOC is not set
+# CONFIG_ARCH_TEGRA_124_SOC is not set
+# CONFIG_ARCH_U8500 is not set
+# CONFIG_ARCH_VEXPRESS is not set
+# CONFIG_ARCH_VIRT is not set
+# CONFIG_ARCH_WM8850 is not set
+# CONFIG_ARCH_ZYNQ is not set
+
+#
+# Processor Features
+#
+CONFIG_ARM_LPAE=y
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+# CONFIG_CACHE_L2X0 is not set
+# CONFIG_ARM_ERRATA_430973 is not set
+# CONFIG_ARM_ERRATA_643719 is not set
+# CONFIG_ARM_ERRATA_720789 is not set
+# CONFIG_ARM_ERRATA_754322 is not set
+# CONFIG_ARM_ERRATA_754327 is not set
+# CONFIG_ARM_ERRATA_764369 is not set
+# CONFIG_ARM_ERRATA_775420 is not set
+
+#
+# PCI host controller drivers
+#
+# CONFIG_PCI_TEGRA is not set
+CONFIG_PCCARD=m
+# CONFIG_PCMCIA is not set
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+
+#
+# Kernel Features
+#
+# CONFIG_SCHED_MC is not set
+# CONFIG_SCHED_SMT is not set
+CONFIG_NR_CPUS=4
+# CONFIG_ARM_PSCI is not set
+# CONFIG_THUMB2_KERNEL is not set
+CONFIG_SYS_SUPPORTS_HUGETLBFS=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
+# CONFIG_TRANSPARENT_HUGEPAGE is not set
+CONFIG_FORCE_MAX_ZONEORDER=11
+# CONFIG_UACCESS_WITH_MEMCPY is not set
+# CONFIG_XEN is not set
+
+#
+# Boot options
+#
+CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/sda1 rootdelay=20"
+
+#
+# CPU Idle
+#
+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
+
+#
+# At least one emulation must be selected
+#
+# CONFIG_KERNEL_MODE_NEON is not set
+
+#
+# Generic Driver Options
+#
+# CONFIG_FIRMWARE_IN_KERNEL is not set
+CONFIG_REGMAP_I2C=m
+
+#
+# Bus devices
+#
+# CONFIG_OMAP_OCP2SCP is not set
+# CONFIG_OMAP_INTERCONNECT is not set
+# CONFIG_MTD is not set
+
+#
+# Device Tree and Open Firmware support
+#
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+# CONFIG_PARPORT_PC_FIFO is not set
+# CONFIG_PARPORT_PC_SUPERIO is not set
+# CONFIG_PARPORT_GSC is not set
+# CONFIG_PARPORT_AX88796 is not set
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+# CONFIG_PARIDE is not set
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_MG_DISK is not set
+
+#
+# Misc devices
+#
+# CONFIG_SRAM is not set
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+
+#
+# PIO-only SFF controllers
+#
+# CONFIG_PATA_PLATFORM is not set
+
+#
+# Distributed Switch Architecture drivers
+#
+CONFIG_VORTEX=m
+CONFIG_PCMCIA_XIRCOM=m
+
+#
+# MII PHY device drivers
+#
+# CONFIG_PLIP is not set
+
+#
+# Input device support
+#
+# CONFIG_INPUT_FF_MEMLESS is not set
+CONFIG_INPUT_MATRIXKMAP=m
+
+#
+# Input Device Drivers
+#
+# CONFIG_KEYBOARD_TEGRA is not set
+# CONFIG_KEYBOARD_SAMSUNG is not set
+# CONFIG_KEYBOARD_OMAP4 is not set
+# CONFIG_MOUSE_GPIO is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO_PARKBD is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_OMAP is not set
+CONFIG_SERIAL_SCCNXP=m
+CONFIG_SERIAL_ARC=m
+CONFIG_PRINTER=m
+CONFIG_LP_CONSOLE=y
+CONFIG_PPDEV=m
+CONFIG_HW_RANDOM_OMAP=y
+CONFIG_I2C_ALGOBIT=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_TEGRA is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_PARPORT=m
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_PARPORT is not set
+
+#
+# Pin controllers
+#
+# CONFIG_PINMUX is not set
+# CONFIG_PINCONF is not set
+
+#
+# Texas Instruments thermal drivers
+#
+# CONFIG_TI_SOC_THERMAL is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_OMAP_WATCHDOG is not set
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=m
+# CONFIG_MFD_AS3711 is not set
+# CONFIG_MFD_AS3722 is not set
+# CONFIG_PMIC_ADP5520 is not set
+# CONFIG_MFD_AAT2870_CORE is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_MFD_DA9052_I2C is not set
+# CONFIG_MFD_DA9055 is not set
+# CONFIG_MFD_DA9063 is not set
+# CONFIG_HTC_I2CPLD is not set
+# CONFIG_MFD_88PM800 is not set
+# CONFIG_MFD_88PM805 is not set
+# CONFIG_MFD_88PM860X is not set
+# CONFIG_MFD_MAX77686 is not set
+# CONFIG_MFD_MAX77693 is not set
+# CONFIG_MFD_MAX8907 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
+# CONFIG_MFD_RC5T583 is not set
+# CONFIG_MFD_SEC_CORE is not set
+# CONFIG_MFD_SMSC is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_MFD_STMPE is not set
+# CONFIG_MFD_SYSCON is not set
+# CONFIG_MFD_LP8788 is not set
+# CONFIG_MFD_PALMAS is not set
+# CONFIG_MFD_TPS65090 is not set
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+# CONFIG_MFD_TPS80031 is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_TWL6040_CORE is not set
+# CONFIG_MFD_TC3589X is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_WM8994 is not set
+# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+# CONFIG_REGULATOR_AD5398 is not set
+# CONFIG_REGULATOR_DA9210 is not set
+# CONFIG_REGULATOR_FAN53555 is not set
+# CONFIG_REGULATOR_GPIO is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_LP872X is not set
+# CONFIG_REGULATOR_LP8755 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_MAX8973 is not set
+# CONFIG_REGULATOR_PFUZE100 is not set
+# CONFIG_REGULATOR_TI_ABB is not set
+# CONFIG_REGULATOR_TPS51632 is not set
+# CONFIG_REGULATOR_TPS62360 is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_VEXPRESS is not set
+
+#
+# Supported MMC/SDIO adapters
+#
+# CONFIG_MEDIA_PARPORT_SUPPORT is not set
+
+#
+# Graphics support
+#
+# CONFIG_TEGRA_HOST1X is not set
+CONFIG_DRM=m
+CONFIG_DRM_USB=m
+CONFIG_DRM_KMS_HELPER=m
+
+#
+# I2C encoder or helper chips
+#
+# CONFIG_DRM_EXYNOS is not set
+CONFIG_DRM_UDL=m
+# CONFIG_DRM_TEGRA is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+# CONFIG_FB_MODE_HELPERS is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_OMAP2_DSS is not set
+CONFIG_LCD_PLATFORM=m
+CONFIG_BACKLIGHT_PWM=m
+
+#
+# Console display driver support
+#
+CONFIG_SND_MTS64=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_LX6464ES=m
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_EHCI_TEGRA is not set
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+
+#
+# USB Physical Layer drivers
+#
+# CONFIG_OMAP_CONTROL_USB is not set
+# CONFIG_OMAP_USB3 is not set
+CONFIG_SAMSUNG_USBPHY=m
+CONFIG_SAMSUNG_USB2PHY=m
+CONFIG_SAMSUNG_USB3PHY=m
+CONFIG_MMC=m
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+# CONFIG_MMC_SDHCI_TEGRA is not set
+# CONFIG_MMC_OMAP is not set
+# CONFIG_MMC_OMAP_HS is not set
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_GPIO is not set
+CONFIG_LEDS_PWM=m
+# CONFIG_LEDS_REGULATOR is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_TEGRA is not set
+
+#
+# DMA Devices
+#
+# CONFIG_TEGRA20_APB_DMA is not set
+# CONFIG_TI_EDMA is not set
+# CONFIG_DMA_OMAP is not set
+# CONFIG_TI_CPPI41 is not set
+
+#
+# Microsoft Hyper-V guest support
+#
+# CONFIG_PANEL is not set
+
+#
+# Common Clock Framework
+#
+# CONFIG_COMMON_CLK_SI5351 is not set
+
+#
+# Hardware Spinlock drivers
+#
+# CONFIG_HWSPINLOCK_OMAP is not set
+# CONFIG_OMAP2PLUS_MBOX is not set
+# CONFIG_ARM_SMMU is not set
+
+#
+# Rpmsg drivers
+#
+# CONFIG_TI_EMIF is not set
+
+#
+# Temperature sensors
+#
+CONFIG_PWM=y
+CONFIG_PWM_SYSFS=y
+CONFIG_PWM_PCA9685=m
+# CONFIG_PWM_TEGRA is not set
+
+#
+# PHY Subsystem
+#
+# CONFIG_OMAP_USB2 is not set
+
+#
+# Pseudo filesystems
+#
+# CONFIG_HUGETLBFS is not set
+
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+
+#
+# RCU Debugging
+#
+CONFIG_RCU_CPU_STALL_TIMEOUT=21
+
+#
+# Non-executable pages
+#
+# CONFIG_PAX_NOEXEC is not set
+
+#
+# Miscellaneous hardening features
+#
+# CONFIG_PAX_REFCOUNT is not set
+
+#
+# Memory Protections
+#
+# CONFIG_GRKERNSEC_OLD_ARM_USERLAND is not set
+
+#
+# Crypto core or helper
+#
+# CONFIG_CRYPTO_PCRYPT is not set
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_DEV_OMAP_SHAM is not set
+# CONFIG_CRYPTO_DEV_OMAP_AES is not set
+# CONFIG_CRYPTO_DEV_TEGRA_AES is not set
+
+#
+# Library routines
+#
+CONFIG_HAS_IOPORT=y
+# CONFIG_DDR is not set
+# CONFIG_KVM is not set
index 341447d..933d8ac 100644 (file)
@@ -2,7 +2,6 @@
 #
 CONFIG_LOCKDEP_SUPPORT=y
 CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 CONFIG_MMU=y
 CONFIG_NEED_DMA_MAP_STATE=y
 CONFIG_GENERIC_BUG=y
@@ -43,7 +42,6 @@ CONFIG_AUDIT=y
 CONFIG_AUDITSYSCALL=y
 CONFIG_AUDIT_WATCH=y
 CONFIG_AUDIT_TREE=y
-CONFIG_AUDIT_LOGINUID_IMMUTABLE=y
 
 #
 # IRQ subsystem
@@ -165,6 +163,8 @@ CONFIG_GENERIC_SMP_IDLE_THREAD=y
 CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
 CONFIG_HAVE_CLK=y
 CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
 CONFIG_HAVE_ARCH_JUMP_LABEL=y
 CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
 CONFIG_SECCOMP_FILTER=y
@@ -178,6 +178,7 @@ CONFIG_OLD_SIGSUSPEND3=y
 CONFIG_SLABINFO=y
 CONFIG_RT_MUTEXES=y
 CONFIG_BASE_SMALL=0
+CONFIG_SYSTEM_TRUSTED_KEYRING=y
 CONFIG_MODULES=y
 # CONFIG_MODULE_FORCE_LOAD is not set
 CONFIG_MODULE_UNLOAD=y
@@ -240,6 +241,8 @@ CONFIG_FREEZER=y
 #
 # Processor type and features
 #
+CONFIG_SWIOTLB=y
+CONFIG_IOMMU_HELPER=y
 CONFIG_PREEMPT_NONE=y
 # CONFIG_PREEMPT_VOLUNTARY is not set
 # CONFIG_PREEMPT is not set
@@ -297,7 +300,6 @@ CONFIG_PM_CLK=y
 #
 # CPU Idle
 #
-# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
 
 #
 # Memory power savings
@@ -325,19 +327,10 @@ CONFIG_PCI_IOV=y
 #
 # PCI host controller drivers
 #
-CONFIG_PCCARD=m
-# CONFIG_PCMCIA is not set
-CONFIG_CARDBUS=y
 
 #
 # PC-card bridges
 #
-CONFIG_YENTA=m
-CONFIG_YENTA_O2=y
-CONFIG_YENTA_RICOH=y
-CONFIG_YENTA_TI=y
-CONFIG_YENTA_ENE_TUNE=y
-CONFIG_YENTA_TOSHIBA=y
 
 #
 # Executable file formats / Emulations
@@ -416,7 +409,6 @@ CONFIG_DEFAULT_CUBIC=y
 CONFIG_DEFAULT_TCP_CONG="cubic"
 CONFIG_TCP_MD5SIG=y
 CONFIG_IPV6=y
-CONFIG_IPV6_PRIVACY=y
 CONFIG_IPV6_ROUTER_PREF=y
 CONFIG_IPV6_ROUTE_INFO=y
 CONFIG_IPV6_OPTIMISTIC_DAD=y
@@ -430,6 +422,7 @@ CONFIG_INET6_XFRM_MODE_TRANSPORT=m
 CONFIG_INET6_XFRM_MODE_TUNNEL=m
 CONFIG_INET6_XFRM_MODE_BEET=m
 CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_VTI=m
 CONFIG_IPV6_SIT=m
 CONFIG_IPV6_SIT_6RD=y
 CONFIG_IPV6_NDISC_NODETYPE=y
@@ -494,6 +487,17 @@ CONFIG_NF_NAT_IRC=m
 CONFIG_NF_NAT_SIP=m
 CONFIG_NF_NAT_TFTP=m
 CONFIG_NETFILTER_SYNPROXY=m
+CONFIG_NF_TABLES=m
+CONFIG_NFT_EXTHDR=m
+CONFIG_NFT_META=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_RBTREE=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_COUNTER=m
+CONFIG_NFT_LOG=m
+CONFIG_NFT_LIMIT=m
+CONFIG_NFT_NAT=m
+# CONFIG_NFT_COMPAT is not set
 CONFIG_NETFILTER_XTABLES=y
 
 #
@@ -587,7 +591,9 @@ CONFIG_IP_SET_HASH_IP=m
 CONFIG_IP_SET_HASH_IPPORT=m
 CONFIG_IP_SET_HASH_IPPORTIP=m
 CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_NETPORTNET=m
 CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETNET=m
 CONFIG_IP_SET_HASH_NETPORT=m
 CONFIG_IP_SET_HASH_NETIFACE=m
 CONFIG_IP_SET_LIST_SET=m
@@ -638,6 +644,11 @@ CONFIG_IP_VS_PE_SIP=m
 CONFIG_NF_DEFRAG_IPV4=y
 CONFIG_NF_CONNTRACK_IPV4=y
 # CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
+CONFIG_NF_TABLES_IPV4=m
+CONFIG_NFT_REJECT_IPV4=m
+CONFIG_NFT_CHAIN_ROUTE_IPV4=m
+CONFIG_NFT_CHAIN_NAT_IPV4=m
+CONFIG_NF_TABLES_ARP=m
 CONFIG_IP_NF_IPTABLES=y
 CONFIG_IP_NF_MATCH_AH=m
 CONFIG_IP_NF_MATCH_ECN=m
@@ -670,6 +681,9 @@ CONFIG_IP_NF_ARP_MANGLE=m
 #
 CONFIG_NF_DEFRAG_IPV6=y
 CONFIG_NF_CONNTRACK_IPV6=y
+CONFIG_NF_TABLES_IPV6=m
+CONFIG_NFT_CHAIN_ROUTE_IPV6=m
+CONFIG_NFT_CHAIN_NAT_IPV6=m
 CONFIG_IP6_NF_IPTABLES=y
 CONFIG_IP6_NF_MATCH_AH=m
 CONFIG_IP6_NF_MATCH_EUI64=m
@@ -690,6 +704,7 @@ CONFIG_IP6_NF_SECURITY=m
 CONFIG_NF_NAT_IPV6=m
 CONFIG_IP6_NF_TARGET_MASQUERADE=m
 CONFIG_IP6_NF_TARGET_NPT=m
+CONFIG_NF_TABLES_BRIDGE=m
 CONFIG_BRIDGE_NF_EBTABLES=m
 CONFIG_BRIDGE_EBT_BROUTE=m
 CONFIG_BRIDGE_EBT_T_FILTER=m
@@ -799,6 +814,7 @@ CONFIG_NET_CLS_RSVP=m
 CONFIG_NET_CLS_RSVP6=m
 CONFIG_NET_CLS_FLOW=m
 CONFIG_NET_CLS_CGROUP=m
+CONFIG_NET_CLS_BPF=m
 CONFIG_NET_EMATCH=y
 CONFIG_NET_EMATCH_STACK=32
 CONFIG_NET_EMATCH_CMP=m
@@ -834,6 +850,7 @@ CONFIG_VSOCKETS=m
 CONFIG_NETLINK_MMAP=y
 CONFIG_NETLINK_DIAG=m
 # CONFIG_NET_MPLS_GSO is not set
+# CONFIG_HSR is not set
 CONFIG_NETPRIO_CGROUP=m
 CONFIG_NET_RX_BUSY_POLL=y
 CONFIG_BQL=y
@@ -930,14 +947,12 @@ CONFIG_DEVTMPFS_MOUNT=y
 CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 CONFIG_FW_LOADER=y
-# CONFIG_FIRMWARE_IN_KERNEL is not set
 CONFIG_EXTRA_FIRMWARE=""
 CONFIG_FW_LOADER_USER_HELPER=y
 # CONFIG_DEBUG_DRIVER is not set
 # CONFIG_DEBUG_DEVRES is not set
 # CONFIG_GENERIC_CPU_DEVICES is not set
 CONFIG_REGMAP=y
-CONFIG_REGMAP_I2C=m
 CONFIG_REGMAP_IRQ=y
 CONFIG_DMA_SHARED_BUFFER=y
 
@@ -946,22 +961,13 @@ CONFIG_DMA_SHARED_BUFFER=y
 #
 CONFIG_CONNECTOR=y
 CONFIG_PROC_EVENTS=y
-# CONFIG_MTD is not set
-CONFIG_PARPORT=m
-CONFIG_PARPORT_PC=m
-CONFIG_PARPORT_SERIAL=m
-# CONFIG_PARPORT_PC_FIFO is not set
-# CONFIG_PARPORT_PC_SUPERIO is not set
-# CONFIG_PARPORT_GSC is not set
-# CONFIG_PARPORT_AX88796 is not set
-CONFIG_PARPORT_1284=y
-CONFIG_PARPORT_NOT_PC=y
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
 
 #
 # Protocols
 #
 CONFIG_BLK_DEV=y
-# CONFIG_PARIDE is not set
+# CONFIG_BLK_DEV_NULL_BLK is not set
 CONFIG_BLK_CPQ_CISS_DA=m
 # CONFIG_CISS_SCSI_TAPE is not set
 CONFIG_BLK_DEV_DAC960=m
@@ -977,7 +983,6 @@ CONFIG_BLK_DEV_NVME=m
 CONFIG_BLK_DEV_SX8=m
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=16384
 # CONFIG_BLK_DEV_XIP is not set
 # CONFIG_CDROM_PKTCDVD is not set
 # CONFIG_ATA_OVER_ETH is not set
@@ -1011,7 +1016,6 @@ CONFIG_BMP085=y
 CONFIG_BMP085_I2C=m
 CONFIG_PCH_PHUB=m
 CONFIG_USB_SWITCH_FSA9480=m
-# CONFIG_SRAM is not set
 # CONFIG_C2PORT is not set
 
 #
@@ -1035,6 +1039,14 @@ CONFIG_TI_ST=m
 # Altera FPGA firmware download module
 #
 CONFIG_ALTERA_STAPL=m
+
+#
+# Intel MIC Host Driver
+#
+
+#
+# Intel MIC Card Driver
+#
 CONFIG_HAVE_IDE=y
 # CONFIG_IDE is not set
 
@@ -1135,10 +1147,6 @@ CONFIG_SCSI_FUTURE_DOMAIN=m
 CONFIG_SCSI_IPS=m
 CONFIG_SCSI_INITIO=m
 CONFIG_SCSI_INIA100=m
-CONFIG_SCSI_PPA=m
-CONFIG_SCSI_IMM=m
-# CONFIG_SCSI_IZIP_EPP16 is not set
-# CONFIG_SCSI_IZIP_SLOW_CTR is not set
 CONFIG_SCSI_STEX=m
 CONFIG_SCSI_SYM53C8XX_2=m
 CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
@@ -1260,7 +1268,6 @@ CONFIG_PATA_CMD640_PCI=m
 CONFIG_PATA_MPIIX=m
 CONFIG_PATA_NS87410=m
 CONFIG_PATA_OPTI=m
-# CONFIG_PATA_PLATFORM is not set
 CONFIG_PATA_RZ1000=m
 
 #
@@ -1280,7 +1287,6 @@ CONFIG_MD_MULTIPATH=m
 CONFIG_MD_FAULTY=m
 CONFIG_BCACHE=m
 # CONFIG_BCACHE_DEBUG is not set
-# CONFIG_BCACHE_EDEBUG is not set
 # CONFIG_BCACHE_CLOSURES_DEBUG is not set
 CONFIG_BLK_DEV_DM=y
 # CONFIG_DM_DEBUG is not set
@@ -1294,8 +1300,8 @@ CONFIG_DM_CACHE=m
 CONFIG_DM_CACHE_MQ=m
 CONFIG_DM_CACHE_CLEANER=m
 CONFIG_DM_MIRROR=y
-CONFIG_DM_RAID=m
 CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_RAID=m
 CONFIG_DM_ZERO=y
 CONFIG_DM_MULTIPATH=m
 CONFIG_DM_MULTIPATH_QL=m
@@ -1384,7 +1390,6 @@ CONFIG_NET_DSA_MV88E6123_61_65=y
 CONFIG_ETHERNET=y
 CONFIG_MDIO=m
 CONFIG_NET_VENDOR_3COM=y
-CONFIG_VORTEX=m
 CONFIG_TYPHOON=m
 CONFIG_NET_VENDOR_ADAPTEC=y
 CONFIG_ADAPTEC_STARFIRE=m
@@ -1438,7 +1443,6 @@ CONFIG_TULIP_NAPI_HW_MITIGATION=y
 CONFIG_WINBOND_840=m
 CONFIG_DM9102=m
 CONFIG_ULI526X=m
-CONFIG_PCMCIA_XIRCOM=m
 CONFIG_NET_VENDOR_DLINK=y
 CONFIG_DL2K=m
 CONFIG_SUNDANCE=m
@@ -1573,7 +1577,6 @@ CONFIG_MICREL_PHY=m
 CONFIG_FIXED_PHY=y
 CONFIG_MDIO_BITBANG=m
 # CONFIG_MDIO_GPIO is not set
-# CONFIG_PLIP is not set
 CONFIG_PPP=m
 CONFIG_PPP_BSDCOMP=m
 CONFIG_PPP_DEFLATE=m
@@ -1603,6 +1606,7 @@ CONFIG_USB_NET_AX88179_178A=m
 CONFIG_USB_NET_CDCETHER=m
 CONFIG_USB_NET_CDC_EEM=m
 CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_HUAWEI_CDC_NCM=m
 CONFIG_USB_NET_CDC_MBIM=m
 CONFIG_USB_NET_DM9601=m
 CONFIG_USB_NET_SR9700=m
@@ -1677,6 +1681,8 @@ CONFIG_ATH10K_PCI=m
 # CONFIG_ATH10K_DEBUG is not set
 # CONFIG_ATH10K_DEBUGFS is not set
 # CONFIG_ATH10K_TRACING is not set
+CONFIG_WCN36XX=m
+# CONFIG_WCN36XX_DEBUGFS is not set
 CONFIG_B43=m
 CONFIG_B43_SSB=y
 CONFIG_B43_PCI_AUTOSELECT=y
@@ -1760,6 +1766,7 @@ CONFIG_RT2800USB_RT53XX=y
 CONFIG_RT2800USB_RT55XX=y
 CONFIG_RT2800USB_UNKNOWN=y
 CONFIG_RT2800_LIB=m
+CONFIG_RT2800_LIB_MMIO=m
 CONFIG_RT2X00_LIB_MMIO=m
 CONFIG_RT2X00_LIB_PCI=m
 CONFIG_RT2X00_LIB_USB=m
@@ -1905,10 +1912,8 @@ CONFIG_ISDN_HDLC=m
 # Input device support
 #
 CONFIG_INPUT=y
-# CONFIG_INPUT_FF_MEMLESS is not set
 CONFIG_INPUT_POLLDEV=m
 CONFIG_INPUT_SPARSEKMAP=m
-CONFIG_INPUT_MATRIXKMAP=m
 
 #
 # Userland interfaces
@@ -1943,7 +1948,6 @@ CONFIG_KEYBOARD_LM8333=m
 # CONFIG_KEYBOARD_MPR121 is not set
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_OPENCORES is not set
-# CONFIG_KEYBOARD_SAMSUNG is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_KEYBOARD_SUNKBD is not set
 # CONFIG_KEYBOARD_XTKBD is not set
@@ -1962,7 +1966,6 @@ CONFIG_MOUSE_APPLETOUCH=m
 CONFIG_MOUSE_BCM5974=m
 CONFIG_MOUSE_CYAPA=m
 CONFIG_MOUSE_VSXXXAA=m
-# CONFIG_MOUSE_GPIO is not set
 CONFIG_MOUSE_SYNAPTICS_I2C=m
 CONFIG_MOUSE_SYNAPTICS_USB=m
 # CONFIG_INPUT_JOYSTICK is not set
@@ -1994,7 +1997,6 @@ CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
 #
 CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
-# CONFIG_SERIO_PARKBD is not set
 # CONFIG_SERIO_PCIPS2 is not set
 CONFIG_SERIO_LIBPS2=y
 CONFIG_SERIO_RAW=m
@@ -2053,21 +2055,15 @@ CONFIG_SERIAL_8250_RSA=y
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_SERIAL_JSM=m
-CONFIG_SERIAL_SCCNXP=m
 # CONFIG_SERIAL_TIMBERDALE is not set
 # CONFIG_SERIAL_ALTERA_JTAGUART is not set
 # CONFIG_SERIAL_ALTERA_UART is not set
 # CONFIG_SERIAL_PCH_UART is not set
-CONFIG_SERIAL_ARC=m
 CONFIG_SERIAL_ARC_NR_PORTS=1
 CONFIG_SERIAL_RP2=m
 CONFIG_SERIAL_RP2_NR_UARTS=32
 CONFIG_SERIAL_FSL_LPUART=m
-CONFIG_SERIAL_ST_ASC=m
 # CONFIG_TTY_PRINTK is not set
-CONFIG_PRINTER=m
-CONFIG_LP_CONSOLE=y
-CONFIG_PPDEV=m
 CONFIG_HVC_DRIVER=y
 CONFIG_VIRTIO_CONSOLE=y
 CONFIG_IPMI_HANDLER=m
@@ -2087,14 +2083,12 @@ CONFIG_R3964=m
 CONFIG_RAW_DRIVER=y
 CONFIG_MAX_RAW_DEVS=8192
 # CONFIG_TCG_TPM is not set
-CONFIG_I2C=m
 CONFIG_I2C_BOARDINFO=y
 CONFIG_I2C_COMPAT=y
 CONFIG_I2C_CHARDEV=m
 # CONFIG_I2C_MUX is not set
 CONFIG_I2C_HELPER_AUTO=y
 CONFIG_I2C_SMBUS=m
-CONFIG_I2C_ALGOBIT=m
 CONFIG_I2C_ALGOPCA=m
 
 #
@@ -2136,7 +2130,6 @@ CONFIG_I2C_SIMTEC=m
 # External I2C/SMBus adapter drivers
 #
 CONFIG_I2C_DIOLAN_U2C=m
-CONFIG_I2C_PARPORT=m
 CONFIG_I2C_PARPORT_LIGHT=m
 # CONFIG_I2C_TAOS_EVM is not set
 CONFIG_I2C_TINY_USB=m
@@ -2169,7 +2162,6 @@ CONFIG_PPS=m
 #
 # CONFIG_PPS_CLIENT_KTIMER is not set
 # CONFIG_PPS_CLIENT_LDISC is not set
-# CONFIG_PPS_CLIENT_PARPORT is not set
 # CONFIG_PPS_CLIENT_GPIO is not set
 
 #
@@ -2188,16 +2180,14 @@ CONFIG_PTP_1588_CLOCK=m
 #
 # Pin controllers
 #
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-CONFIG_GPIO_DEVRES=y
 CONFIG_GPIOLIB=y
+CONFIG_GPIO_DEVRES=y
 # CONFIG_DEBUG_GPIO is not set
 CONFIG_GPIO_SYSFS=y
 
 #
 # Memory mapped GPIO drivers:
 #
-# CONFIG_GPIO_GENERIC_PLATFORM is not set
 CONFIG_GPIO_TS5500=m
 # CONFIG_GPIO_VX855 is not set
 
@@ -2220,7 +2210,6 @@ CONFIG_GPIO_TS5500=m
 #
 # SPI GPIO expanders:
 #
-# CONFIG_GPIO_MCP23S08 is not set
 
 #
 # AC97 GPIO expanders:
@@ -2287,6 +2276,7 @@ CONFIG_GENERIC_ADC_BATTERY=m
 # CONFIG_CHARGER_GPIO is not set
 # CONFIG_CHARGER_BQ2415X is not set
 # CONFIG_CHARGER_BQ24190 is not set
+# CONFIG_CHARGER_BQ24735 is not set
 # CONFIG_CHARGER_SMB347 is not set
 CONFIG_POWER_RESET=y
 CONFIG_POWER_AVS=y
@@ -2481,7 +2471,6 @@ CONFIG_BCMA_POSSIBLE=y
 #
 # Multifunction device drivers
 #
-CONFIG_MFD_CORE=m
 # CONFIG_MFD_CROS_EC is not set
 # CONFIG_MFD_MC13XXX_I2C is not set
 # CONFIG_HTC_PASIC3 is not set
@@ -2498,21 +2487,17 @@ CONFIG_MFD_RTSX_PCI=m
 # CONFIG_MFD_SI476X_CORE is not set
 CONFIG_MFD_SM501=m
 CONFIG_MFD_SM501_GPIO=y
-# CONFIG_ABX500_CORE is not set
-# CONFIG_MFD_SYSCON is not set
 # CONFIG_MFD_TI_AM335X_TSCADC is not set
 # CONFIG_TPS6105X is not set
 # CONFIG_TPS65010 is not set
 # CONFIG_TPS6507X is not set
 # CONFIG_MFD_TPS65217 is not set
-# CONFIG_MFD_TPS65912 is not set
 CONFIG_MFD_WL1273_CORE=m
 CONFIG_MFD_LM3533=m
 # CONFIG_MFD_TIMBERDALE is not set
 # CONFIG_MFD_TMIO is not set
 CONFIG_MFD_VX855=m
 # CONFIG_MFD_ARIZONA_I2C is not set
-# CONFIG_REGULATOR is not set
 CONFIG_MEDIA_SUPPORT=y
 
 #
@@ -2526,7 +2511,6 @@ CONFIG_MEDIA_RC_SUPPORT=y
 CONFIG_MEDIA_CONTROLLER=y
 CONFIG_VIDEO_DEV=y
 CONFIG_VIDEO_V4L2_SUBDEV_API=y
-CONFIG_VIDEO_V4L2=m
 # CONFIG_VIDEO_ADV_DEBUG is not set
 # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
 CONFIG_VIDEO_TUNER=m
@@ -2791,7 +2775,6 @@ CONFIG_VIDEO_RENESAS_VSP1=m
 # Supported MMC/SDIO adapters
 #
 # CONFIG_SMS_SDIO_DRV is not set
-# CONFIG_MEDIA_PARPORT_SUPPORT is not set
 
 #
 # Supported FireWire (IEEE 1394) Adapters
@@ -2818,7 +2801,6 @@ CONFIG_SMS_SIANO_RC=y
 #
 CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
 CONFIG_MEDIA_ATTACH=y
-CONFIG_VIDEO_IR_I2C=m
 
 #
 # Audio decoders, processors and mixers
@@ -2864,7 +2846,7 @@ CONFIG_VIDEO_MT9V011=m
 #
 
 #
-# Miscelaneous helper chips
+# Miscellaneous helper chips
 #
 
 #
@@ -2888,24 +2870,13 @@ CONFIG_SOC_CAMERA_OV9640=m
 CONFIG_SOC_CAMERA_OV9740=m
 CONFIG_SOC_CAMERA_RJ54N1=m
 CONFIG_SOC_CAMERA_TW9910=m
-CONFIG_MEDIA_TUNER=m
-CONFIG_MEDIA_TUNER_SIMPLE=m
-CONFIG_MEDIA_TUNER_TDA8290=m
-CONFIG_MEDIA_TUNER_TDA827X=m
-CONFIG_MEDIA_TUNER_TDA18271=m
-CONFIG_MEDIA_TUNER_TDA9887=m
-CONFIG_MEDIA_TUNER_MT20XX=m
 CONFIG_MEDIA_TUNER_MT2060=m
 CONFIG_MEDIA_TUNER_MT2063=m
 CONFIG_MEDIA_TUNER_MT2266=m
 CONFIG_MEDIA_TUNER_MT2131=m
 CONFIG_MEDIA_TUNER_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=m
-CONFIG_MEDIA_TUNER_XC5000=m
-CONFIG_MEDIA_TUNER_XC4000=m
 CONFIG_MEDIA_TUNER_MXL5005S=m
 CONFIG_MEDIA_TUNER_MXL5007T=m
-CONFIG_MEDIA_TUNER_MC44S803=m
 CONFIG_MEDIA_TUNER_MAX2165=m
 CONFIG_MEDIA_TUNER_TDA18218=m
 CONFIG_MEDIA_TUNER_FC0011=m
@@ -2955,6 +2926,7 @@ CONFIG_DVB_TUNER_CX24113=m
 CONFIG_DVB_TDA826X=m
 CONFIG_DVB_TUA6100=m
 CONFIG_DVB_CX24116=m
+CONFIG_DVB_CX24117=m
 CONFIG_DVB_SI21XX=m
 CONFIG_DVB_TS2020=m
 CONFIG_DVB_DS3000=m
@@ -3048,9 +3020,7 @@ CONFIG_DVB_AF9033=m
 #
 CONFIG_VGA_ARB=y
 CONFIG_VGA_ARB_MAX_GPUS=16
-CONFIG_DRM=m
-CONFIG_DRM_USB=m
-CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_KMS_FB_HELPER=y
 # CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
 CONFIG_DRM_TTM=m
 
@@ -3065,13 +3035,11 @@ CONFIG_DRM_VIA=m
 CONFIG_DRM_SAVAGE=m
 CONFIG_DRM_VMWGFX=m
 # CONFIG_DRM_VMWGFX_FBCON is not set
-CONFIG_DRM_UDL=m
 CONFIG_DRM_AST=m
 CONFIG_DRM_MGAG200=m
 CONFIG_DRM_CIRRUS_QEMU=m
 CONFIG_DRM_QXL=m
 # CONFIG_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=m
 CONFIG_HDMI=y
 CONFIG_FB=y
 CONFIG_FIRMWARE_EDID=y
@@ -3086,7 +3054,6 @@ CONFIG_FB_SYS_FOPS=m
 CONFIG_FB_DEFERRED_IO=y
 # CONFIG_FB_SVGALIB is not set
 # CONFIG_FB_MACMODES is not set
-# CONFIG_FB_MODE_HELPERS is not set
 CONFIG_FB_TILEBLITTING=y
 
 #
@@ -3132,13 +3099,12 @@ CONFIG_FB_TILEBLITTING=y
 # CONFIG_EXYNOS_VIDEO is not set
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=m
-CONFIG_LCD_PLATFORM=m
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 # CONFIG_BACKLIGHT_GENERIC is not set
 # CONFIG_BACKLIGHT_LM3533 is not set
 # CONFIG_BACKLIGHT_ADP8860 is not set
 # CONFIG_BACKLIGHT_ADP8870 is not set
-# CONFIG_BACKLIGHT_LM3630 is not set
+# CONFIG_BACKLIGHT_LM3630A is not set
 # CONFIG_BACKLIGHT_LM3639 is not set
 # CONFIG_BACKLIGHT_LP855X is not set
 # CONFIG_BACKLIGHT_GPIO is not set
@@ -3198,10 +3164,8 @@ CONFIG_SND_DUMMY=m
 CONFIG_SND_ALOOP=m
 CONFIG_SND_VIRMIDI=m
 CONFIG_SND_MTPAV=m
-CONFIG_SND_MTS64=m
 CONFIG_SND_SERIAL_U16550=m
 CONFIG_SND_MPU401=m
-CONFIG_SND_PORTMAN2X4=m
 CONFIG_SND_AC97_POWER_SAVE=y
 CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
 CONFIG_SND_PCI=y
@@ -3277,7 +3241,6 @@ CONFIG_SND_INTEL8X0=m
 CONFIG_SND_INTEL8X0M=m
 CONFIG_SND_KORG1212=m
 CONFIG_SND_LOLA=m
-CONFIG_SND_LX6464ES=m
 CONFIG_SND_MAESTRO3=m
 CONFIG_SND_MAESTRO3_INPUT=y
 CONFIG_SND_MIXART=m
@@ -3303,6 +3266,7 @@ CONFIG_SND_USB_6FIRE=m
 CONFIG_SND_USB_HIFACE=m
 CONFIG_SND_FIREWIRE=y
 CONFIG_SND_FIREWIRE_LIB=m
+# CONFIG_SND_DICE is not set
 CONFIG_SND_FIREWIRE_SPEAKERS=m
 # CONFIG_SND_ISIGHT is not set
 # CONFIG_SND_SCS1X is not set
@@ -3508,7 +3472,6 @@ CONFIG_USB_CHIPIDEA=m
 #
 # USB port drivers
 #
-CONFIG_USB_USS720=m
 CONFIG_USB_SERIAL=m
 CONFIG_USB_SERIAL_GENERIC=y
 CONFIG_USB_SERIAL_SIMPLE=m
@@ -3538,7 +3501,6 @@ CONFIG_USB_SERIAL_KLSI=m
 CONFIG_USB_SERIAL_MCT_U232=m
 # CONFIG_USB_SERIAL_METRO is not set
 CONFIG_USB_SERIAL_MOS7720=m
-CONFIG_USB_SERIAL_MOS7715_PARPORT=y
 CONFIG_USB_SERIAL_MOS7840=m
 # CONFIG_USB_SERIAL_NAVMAN is not set
 CONFIG_USB_SERIAL_PL2303=m
@@ -3600,12 +3562,6 @@ CONFIG_USB_XUSBATM=m
 # USB Physical Layer drivers
 #
 CONFIG_USB_PHY=y
-CONFIG_NOP_USB_XCEIV=m
-CONFIG_AM335X_CONTROL_USB=m
-CONFIG_AM335X_PHY_USB=m
-CONFIG_SAMSUNG_USBPHY=m
-CONFIG_SAMSUNG_USB2PHY=m
-CONFIG_SAMSUNG_USB3PHY=m
 CONFIG_USB_GPIO_VBUS=m
 CONFIG_USB_ISP1301=m
 CONFIG_USB_RCAR_PHY=m
@@ -3614,7 +3570,6 @@ CONFIG_UWB=m
 CONFIG_UWB_HWA=m
 CONFIG_UWB_WHCI=m
 CONFIG_UWB_I1480U=m
-CONFIG_MMC=m
 # CONFIG_MMC_DEBUG is not set
 # CONFIG_MMC_UNSAFE_RESUME is not set
 # CONFIG_MMC_CLKGATE is not set
@@ -3622,7 +3577,6 @@ CONFIG_MMC=m
 #
 # MMC/SD/SDIO Card Drivers
 #
-CONFIG_MMC_BLOCK=m
 CONFIG_MMC_BLOCK_MINORS=8
 CONFIG_MMC_BLOCK_BOUNCE=y
 # CONFIG_SDIO_UART is not set
@@ -3631,7 +3585,6 @@ CONFIG_MMC_BLOCK_BOUNCE=y
 #
 # MMC/SD/SDIO Host Controller Drivers
 #
-CONFIG_MMC_SDHCI=m
 CONFIG_MMC_SDHCI_PCI=m
 CONFIG_MMC_RICOH_MMC=y
 CONFIG_MMC_SDHCI_PLTFM=m
@@ -3670,7 +3623,6 @@ CONFIG_LEDS_LM3530=m
 CONFIG_LEDS_LM3533=m
 CONFIG_LEDS_LM3642=m
 # CONFIG_LEDS_PCA9532 is not set
-# CONFIG_LEDS_GPIO is not set
 CONFIG_LEDS_LP3944=m
 CONFIG_LEDS_LP55XX_COMMON=m
 CONFIG_LEDS_LP5521=m
@@ -3679,6 +3631,7 @@ CONFIG_LEDS_LP5562=m
 CONFIG_LEDS_LP8501=m
 # CONFIG_LEDS_PCA955X is not set
 CONFIG_LEDS_PCA963X=m
+CONFIG_LEDS_PCA9685=m
 # CONFIG_LEDS_BD2802 is not set
 CONFIG_LEDS_LT3593=m
 CONFIG_LEDS_TCA6507=m
@@ -3692,7 +3645,6 @@ CONFIG_LEDS_BLINKM=m
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=m
 CONFIG_LEDS_TRIGGER_ONESHOT=m
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
 CONFIG_LEDS_TRIGGER_BACKLIGHT=m
 # CONFIG_LEDS_TRIGGER_CPU is not set
 CONFIG_LEDS_TRIGGER_GPIO=m
@@ -3792,7 +3744,6 @@ CONFIG_DMA_ENGINE=y
 #
 # DMA Clients
 #
-CONFIG_NET_DMA=y
 CONFIG_ASYNC_TX_DMA=y
 # CONFIG_DMATEST is not set
 # CONFIG_AUXDISPLAY is not set
@@ -3829,7 +3780,6 @@ CONFIG_ET131X=m
 # CONFIG_PRISM2_USB is not set
 # CONFIG_ECHO is not set
 # CONFIG_COMEDI is not set
-# CONFIG_PANEL is not set
 # CONFIG_R8187SE is not set
 # CONFIG_RTL8192U is not set
 CONFIG_RTLLIB=m
@@ -3994,6 +3944,7 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
 # Analog to digital converters
 #
 # CONFIG_MAX1363 is not set
+# CONFIG_MCP3422 is not set
 # CONFIG_NAU7802 is not set
 # CONFIG_TI_ADC081C is not set
 # CONFIG_VIPERBOARD_ADC is not set
@@ -4007,7 +3958,6 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
 #
 CONFIG_HID_SENSOR_IIO_COMMON=m
 CONFIG_HID_SENSOR_IIO_TRIGGER=m
-# CONFIG_HID_SENSOR_ENUM_BASE_QUIRKS is not set
 CONFIG_IIO_ST_SENSORS_I2C=m
 CONFIG_IIO_ST_SENSORS_CORE=m
 
@@ -4049,15 +3999,20 @@ CONFIG_IIO_ST_SENSORS_CORE=m
 #
 # CONFIG_ADJD_S311 is not set
 # CONFIG_APDS9300 is not set
+# CONFIG_CM36651 is not set
+# CONFIG_GP2AP020A00F is not set
 # CONFIG_HID_SENSOR_ALS is not set
 # CONFIG_SENSORS_LM3533 is not set
+# CONFIG_TCS3472 is not set
 # CONFIG_SENSORS_TSL2563 is not set
+# CONFIG_TSL4531 is not set
 # CONFIG_VCNL4000 is not set
 
 #
 # Magnetometer sensors
 #
 # CONFIG_AK8975 is not set
+# CONFIG_MAG3110 is not set
 # CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set
 # CONFIG_IIO_ST_MAGN_3AXIS is not set
 
@@ -4082,6 +4037,13 @@ CONFIG_IIO_ST_PRESS_I2C=m
 # CONFIG_RESET_CONTROLLER is not set
 # CONFIG_FMC is not set
 
+#
+# PHY Subsystem
+#
+CONFIG_GENERIC_PHY=m
+CONFIG_PHY_EXYNOS_MIPI_VIDEO=m
+# CONFIG_POWERCAP is not set
+
 #
 # Firmware Drivers
 #
@@ -4229,6 +4191,7 @@ CONFIG_PNFS_FILE_LAYOUT=m
 CONFIG_PNFS_BLOCK=m
 CONFIG_PNFS_OBJLAYOUT=m
 CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="ipfire.org"
+# CONFIG_NFS_V4_1_MIGRATION is not set
 CONFIG_NFS_V4_SECURITY_LABEL=y
 CONFIG_NFS_FSCACHE=y
 # CONFIG_NFS_USE_LEGACY_DNS is not set
@@ -4348,6 +4311,7 @@ CONFIG_HEADERS_CHECK=y
 CONFIG_FRAME_POINTER=y
 # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
 CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
 CONFIG_DEBUG_KERNEL=y
 
 #
@@ -4384,10 +4348,6 @@ CONFIG_TIMER_STATS=y
 # CONFIG_RT_MUTEX_TESTER is not set
 # CONFIG_DEBUG_SPINLOCK is not set
 # CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
 # CONFIG_DEBUG_ATOMIC_SLEEP is not set
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
 CONFIG_STACKTRACE=y
@@ -4451,6 +4411,7 @@ CONFIG_RING_BUFFER_BENCHMARK=m
 # CONFIG_BACKTRACE_SELF_TEST is not set
 CONFIG_RBTREE_TEST=m
 # CONFIG_INTERVAL_TREE_TEST is not set
+# CONFIG_PERCPU_TEST is not set
 # CONFIG_ATOMIC64_SELFTEST is not set
 CONFIG_ASYNC_RAID6_TEST=m
 # CONFIG_TEST_STRING_HELPERS is not set
@@ -4510,6 +4471,7 @@ CONFIG_PAX_RANDMMAP=y
 #
 # Miscellaneous hardening features
 #
+CONFIG_PAX_MEMORY_SANITIZE=y
 CONFIG_PAX_MEMORY_STRUCTLEAK=y
 CONFIG_PAX_USERCOPY=y
 # CONFIG_PAX_LATENT_ENTROPY is not set
@@ -4524,6 +4486,7 @@ CONFIG_GRKERNSEC_PROC_MEMMAP=y
 CONFIG_GRKERNSEC_BRUTE=y
 # CONFIG_GRKERNSEC_MODHARDEN is not set
 CONFIG_GRKERNSEC_HIDESYM=y
+# CONFIG_GRKERNSEC_RANDSTRUCT is not set
 CONFIG_GRKERNSEC_KERN_LOCKOUT=y
 
 #
@@ -4611,6 +4574,8 @@ CONFIG_GRKERNSEC_NO_SIMULT_CONNECT=y
 CONFIG_GRKERNSEC_FLOODTIME=10
 CONFIG_GRKERNSEC_FLOODBURST=6
 CONFIG_KEYS=y
+CONFIG_PERSISTENT_KEYRINGS=y
+# CONFIG_BIG_KEYS is not set
 # CONFIG_ENCRYPTED_KEYS is not set
 CONFIG_KEYS_DEBUG_PROC_KEYS=y
 CONFIG_SECURITY_DMESG_RESTRICT=y
@@ -4751,6 +4716,7 @@ CONFIG_CRYPTO_ANSI_CPRNG=m
 CONFIG_CRYPTO_USER_API=y
 CONFIG_CRYPTO_USER_API_HASH=y
 CONFIG_CRYPTO_USER_API_SKCIPHER=y
+CONFIG_CRYPTO_HASH_INFO=y
 CONFIG_CRYPTO_HW=y
 CONFIG_ASYMMETRIC_KEY_TYPE=m
 CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m
@@ -4782,6 +4748,7 @@ CONFIG_CRC32_SLICEBY8=y
 CONFIG_CRC7=m
 CONFIG_LIBCRC32C=m
 CONFIG_CRC8=m
+CONFIG_RANDOM32_SELFTEST=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
 CONFIG_LZO_COMPRESS=y
@@ -4808,8 +4775,8 @@ CONFIG_TEXTSEARCH=y
 CONFIG_TEXTSEARCH_KMP=m
 CONFIG_TEXTSEARCH_BM=m
 CONFIG_TEXTSEARCH_FSM=m
+CONFIG_ASSOCIATIVE_ARRAY=y
 CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
 CONFIG_HAS_DMA=y
 CONFIG_CHECK_SIGNATURE=y
 CONFIG_DQL=y
@@ -4818,7 +4785,6 @@ CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
 CONFIG_AVERAGE=y
 CONFIG_CLZ_TAB=y
 CONFIG_CORDIC=m
-# CONFIG_DDR is not set
 CONFIG_MPILIB=m
 CONFIG_OID_REGISTRY=m
 CONFIG_FONT_SUPPORT=y
index 13c5f27..7d39dde 100644 (file)
@@ -119,7 +119,6 @@ CONFIG_PHYSICAL_ALIGN=0x400000
 #
 # Power management and ACPI options
 #
-CONFIG_ACPI_BLACKLIST_YEAR=1999
 CONFIG_X86_APM_BOOT=y
 CONFIG_APM=y
 # CONFIG_APM_IGNORE_USER_SUSPEND is not set
@@ -221,11 +220,6 @@ CONFIG_I2C_SIS630=m
 #
 CONFIG_SCx200_ACB=m
 
-#
-# PCI GPIO expanders:
-#
-# CONFIG_GPIO_LANGWELL is not set
-
 #
 # Watchdog Device Drivers
 #
index 7e72ab3..c3ae439 100644 (file)
@@ -75,7 +75,6 @@ CONFIG_MDIO_BUS_MUX_MMIOREG=m
 # Input Device Drivers
 #
 CONFIG_MOUSE_PS2_OLPC=y
-CONFIG_INPUT_PWM_BEEPER=m
 
 #
 # Hardware I/O ports
@@ -122,6 +121,11 @@ CONFIG_GPIO_ADNP=m
 CONFIG_GPIO_CS5535=y
 # CONFIG_GPIO_SODAVILLE is not set
 
+#
+# MODULbus GPIO expanders:
+#
+# CONFIG_GPIO_BCM_KONA is not set
+
 #
 # 1-wire Slaves
 #
@@ -192,6 +196,11 @@ CONFIG_PWM_SYSFS=y
 CONFIG_PWM_PCA9685=m
 CONFIG_IRQCHIP=y
 
+#
+# PHY Subsystem
+#
+CONFIG_PHY_EXYNOS_DP_VIDEO=m
+
 #
 # Non-executable pages
 #
index df50644..c6b9e21 100644 (file)
@@ -14,7 +14,6 @@ CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
 CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
 CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
 CONFIG_X86_HT=y
-CONFIG_ARCH_CPU_PROBE_RELEASE=y
 CONFIG_ARCH_SUPPORTS_UPROBES=y
 
 #
@@ -54,7 +53,6 @@ CONFIG_SLUB_CPU_PARTIAL=y
 CONFIG_OPROFILE_NMI_TIMER=y
 CONFIG_ARCH_USE_BUILTIN_BSWAP=y
 CONFIG_USER_RETURN_NOTIFIER=y
-CONFIG_USE_GENERIC_SMP_HELPERS=y
 CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
 
 #
@@ -106,8 +104,6 @@ CONFIG_CPU_SUP_CENTAUR=y
 CONFIG_HPET_TIMER=y
 CONFIG_HPET_EMULATE_RTC=y
 CONFIG_DMI=y
-CONFIG_SWIOTLB=y
-CONFIG_IOMMU_HELPER=y
 CONFIG_SCHED_SMT=y
 CONFIG_SCHED_MC=y
 CONFIG_X86_LOCAL_APIC=y
@@ -135,6 +131,7 @@ CONFIG_ARCH_SELECT_MEMORY_MODEL=y
 CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_ARCH_DISCARD_MEMBLOCK=y
 CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
 CONFIG_PHYS_ADDR_T_64BIT=y
 CONFIG_ZONE_DMA_FLAG=1
 CONFIG_VIRT_TO_BUS=y
@@ -169,13 +166,10 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
 # Power management and ACPI options
 #
 CONFIG_HIBERNATE_CALLBACKS=y
-CONFIG_HIBERNATION=y
-CONFIG_PM_STD_PARTITION=""
 CONFIG_PM_SLEEP_SMP=y
 CONFIG_ACPI=y
 CONFIG_ACPI_SLEEP=y
 CONFIG_ACPI_PROCFS=y
-# CONFIG_ACPI_PROCFS_POWER is not set
 CONFIG_ACPI_EC_DEBUGFS=m
 CONFIG_ACPI_AC=y
 CONFIG_ACPI_BATTERY=y
@@ -204,13 +198,13 @@ CONFIG_ACPI_APEI_PCIEAER=y
 CONFIG_ACPI_APEI_MEMORY_FAILURE=y
 # CONFIG_ACPI_APEI_EINJ is not set
 # CONFIG_ACPI_APEI_ERST_DEBUG is not set
+CONFIG_ACPI_EXTLOG=m
 CONFIG_SFI=y
 
 #
 # CPU Frequency scaling
 #
 CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_TABLE=y
 CONFIG_CPU_FREQ_GOV_COMMON=y
 CONFIG_CPU_FREQ_STAT=m
 CONFIG_CPU_FREQ_STAT_DETAILS=y
@@ -249,6 +243,7 @@ CONFIG_CPU_IDLE=y
 # CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set
 CONFIG_CPU_IDLE_GOV_LADDER=y
 CONFIG_CPU_IDLE_GOV_MENU=y
+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
 CONFIG_INTEL_IDLE=y
 
 #
@@ -272,10 +267,19 @@ CONFIG_PCI_LABEL=y
 #
 CONFIG_ISA_DMA_API=y
 CONFIG_AMD_NB=y
+CONFIG_PCCARD=m
+# CONFIG_PCMCIA is not set
+CONFIG_CARDBUS=y
 
 #
 # PC-card bridges
 #
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
 CONFIG_HOTPLUG_PCI=y
 CONFIG_HOTPLUG_PCI_ACPI=y
 CONFIG_HOTPLUG_PCI_ACPI_IBM=m
@@ -300,11 +304,23 @@ CONFIG_RFKILL_GPIO=m
 #
 # Generic Driver Options
 #
+# CONFIG_FIRMWARE_IN_KERNEL is not set
 CONFIG_SYS_HYPERVISOR=y
+CONFIG_REGMAP_I2C=m
 
 #
 # Bus devices
 #
+# CONFIG_MTD is not set
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+# CONFIG_PARPORT_PC_FIFO is not set
+# CONFIG_PARPORT_PC_SUPERIO is not set
+# CONFIG_PARPORT_GSC is not set
+# CONFIG_PARPORT_AX88796 is not set
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
 CONFIG_PNP=y
 # CONFIG_PNP_DEBUG_MESSAGES is not set
 
@@ -313,8 +329,9 @@ CONFIG_PNP=y
 #
 CONFIG_PNPACPI=y
 CONFIG_BLK_DEV_FD=m
+# CONFIG_PARIDE is not set
 CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
-CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_DEV_RAM_SIZE=16384
 CONFIG_XEN_BLKDEV_FRONTEND=m
 CONFIG_XEN_BLKDEV_BACKEND=m
 # CONFIG_BLK_DEV_HD is not set
@@ -324,6 +341,7 @@ CONFIG_XEN_BLKDEV_BACKEND=m
 #
 CONFIG_SENSORS_LIS3LV02D=m
 CONFIG_VMWARE_BALLOON=m
+# CONFIG_SRAM is not set
 
 #
 # Altera FPGA firmware download module
@@ -347,9 +365,18 @@ CONFIG_SCSI_EATA_TAGGED_QUEUE=y
 CONFIG_SCSI_EATA_MAX_TAGS=16
 CONFIG_SCSI_GDTH=m
 CONFIG_SCSI_ISCI=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
 CONFIG_ATA_ACPI=y
 # CONFIG_SATA_ZPODD is not set
 
+#
+# PIO-only SFF controllers
+#
+# CONFIG_PATA_PLATFORM is not set
+
 #
 # Generic fallback / legacy drivers
 #
@@ -381,7 +408,9 @@ CONFIG_VHOST=m
 #
 # Distributed Switch Architecture drivers
 #
+CONFIG_VORTEX=m
 CONFIG_DE4X5=m
+CONFIG_PCMCIA_XIRCOM=m
 CONFIG_IGB_DCA=y
 CONFIG_IXGBE_DCA=y
 CONFIG_MLX4_EN=m
@@ -394,6 +423,11 @@ CONFIG_ATP=m
 CONFIG_SUNGEM=m
 # CONFIG_NET_SB1000 is not set
 
+#
+# MII PHY device drivers
+#
+# CONFIG_PLIP is not set
+
 #
 # USB Network Adapters
 #
@@ -412,10 +446,18 @@ CONFIG_HISAX_NETJET=y
 CONFIG_HISAX_NETJET_U=y
 CONFIG_HISAX_ENTERNOW_PCI=y
 
+#
+# Input device support
+#
+# CONFIG_INPUT_FF_MEMLESS is not set
+CONFIG_INPUT_MATRIXKMAP=m
+
 #
 # Input Device Drivers
 #
+# CONFIG_KEYBOARD_SAMSUNG is not set
 CONFIG_MOUSE_PS2_LIFEBOOK=y
+# CONFIG_MOUSE_GPIO is not set
 CONFIG_INPUT_PCSPKR=m
 CONFIG_INPUT_APANEL=m
 CONFIG_INPUT_ATLAS_BTNS=m
@@ -427,6 +469,7 @@ CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
 #
 CONFIG_SERIO_I8042=y
 # CONFIG_SERIO_CT82C710 is not set
+# CONFIG_SERIO_PARKBD is not set
 
 #
 # Character devices
@@ -443,6 +486,11 @@ CONFIG_SERIAL_8250_DW=m
 #
 # Non-8250 serial port support
 #
+CONFIG_SERIAL_SCCNXP=m
+CONFIG_SERIAL_ARC=m
+CONFIG_PRINTER=m
+CONFIG_LP_CONSOLE=y
+CONFIG_PPDEV=m
 CONFIG_HVC_IRQ=y
 CONFIG_HVC_XEN=y
 CONFIG_HVC_XEN_FRONTEND=y
@@ -454,6 +502,8 @@ CONFIG_HPET=y
 # CONFIG_HPET_MMAP is not set
 CONFIG_HANGCHECK_TIMER=m
 # CONFIG_TELCLOCK is not set
+CONFIG_I2C=m
+CONFIG_I2C_ALGOBIT=m
 
 #
 # PC SMBus host controller drivers
@@ -473,6 +523,16 @@ CONFIG_I2C_SCMI=m
 CONFIG_I2C_DESIGNWARE_CORE=m
 CONFIG_I2C_DESIGNWARE_PLATFORM=m
 
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_PARPORT=m
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_PARPORT is not set
+
 #
 # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
 #
@@ -486,11 +546,13 @@ CONFIG_PINCTRL=y
 # CONFIG_PINCONF is not set
 # CONFIG_DEBUG_PINCTRL is not set
 # CONFIG_PINCTRL_BAYTRAIL is not set
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
 CONFIG_GPIO_ACPI=y
 
 #
 # Memory mapped GPIO drivers:
 #
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
 # CONFIG_GPIO_IT8761E is not set
 # CONFIG_GPIO_F7188X is not set
 CONFIG_GPIO_SCH=m
@@ -501,8 +563,14 @@ CONFIG_GPIO_ICH=m
 # PCI GPIO expanders:
 #
 # CONFIG_GPIO_CS5535 is not set
+# CONFIG_GPIO_INTEL_MID is not set
 # CONFIG_GPIO_PCH is not set
 
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MCP23S08 is not set
+
 #
 # Native drivers
 #
@@ -568,7 +636,17 @@ CONFIG_XEN_WDT=m
 #
 # Multifunction device drivers
 #
+CONFIG_MFD_CORE=m
 CONFIG_MFD_CS5535=m
+# CONFIG_ABX500_CORE is not set
+# CONFIG_MFD_SYSCON is not set
+# CONFIG_MFD_TPS65912 is not set
+# CONFIG_REGULATOR is not set
+
+#
+# Multimedia core support
+#
+CONFIG_VIDEO_V4L2=m
 
 #
 # Media drivers
@@ -596,6 +674,31 @@ CONFIG_SOC_CAMERA_SCALE_CROP=m
 CONFIG_VIDEO_SH_MOBILE_CSI2=m
 CONFIG_VIDEO_SH_MOBILE_CEU=m
 
+#
+# Supported MMC/SDIO adapters
+#
+# CONFIG_MEDIA_PARPORT_SUPPORT is not set
+
+#
+# Media ancillary drivers (tuners, sensors, i2c, frontends)
+#
+CONFIG_VIDEO_IR_I2C=m
+
+#
+# soc_camera sensor drivers
+#
+CONFIG_MEDIA_TUNER=m
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+
 #
 # Graphics support
 #
@@ -605,6 +708,9 @@ CONFIG_AGP_INTEL=y
 CONFIG_AGP_SIS=y
 CONFIG_AGP_VIA=y
 CONFIG_VGA_SWITCHEROO=y
+CONFIG_DRM=m
+CONFIG_DRM_USB=m
+CONFIG_DRM_KMS_HELPER=m
 
 #
 # I2C encoder or helper chips
@@ -620,15 +726,19 @@ CONFIG_DRM_NOUVEAU_BACKLIGHT=y
 CONFIG_DRM_I810=m
 CONFIG_DRM_I915=m
 CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_I915_FBDEV=y
 # CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set
 CONFIG_DRM_SIS=m
 CONFIG_DRM_GMA500=m
 CONFIG_DRM_GMA600=y
 CONFIG_DRM_GMA3600=y
+CONFIG_DRM_UDL=m
+CONFIG_VIDEO_OUTPUT_CONTROL=m
 CONFIG_FB_SYS_FILLRECT=m
 CONFIG_FB_SYS_COPYAREA=m
 CONFIG_FB_SYS_IMAGEBLIT=m
 CONFIG_FB_BACKLIGHT=y
+# CONFIG_FB_MODE_HELPERS is not set
 
 #
 # Frame buffer hardware drivers
@@ -643,6 +753,7 @@ CONFIG_FB_BACKLIGHT=y
 # CONFIG_FB_INTEL is not set
 # CONFIG_FB_VIA is not set
 CONFIG_XEN_FBDEV_FRONTEND=m
+CONFIG_LCD_PLATFORM=m
 CONFIG_BACKLIGHT_APPLE=m
 # CONFIG_BACKLIGHT_SAHARA is not set
 
@@ -653,6 +764,8 @@ CONFIG_VGA_CONSOLE=y
 # CONFIG_VGACON_SOFT_SCROLLBACK is not set
 CONFIG_SND_DMA_SGBUF=y
 CONFIG_SND_PCSP=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_PORTMAN2X4=m
 CONFIG_SND_SB_COMMON=m
 CONFIG_SND_SB16_DSP=m
 CONFIG_SND_ALS4000=m
@@ -660,23 +773,51 @@ CONFIG_SND_ALI5451=m
 CONFIG_SND_ASIHPI=m
 CONFIG_SND_CS5530=m
 CONFIG_SND_HDA_I915=y
+CONFIG_SND_LX6464ES=m
 CONFIG_SND_USB_USX2Y=m
 CONFIG_SND_USB_US122L=m
 # CONFIG_SND_SOC is not set
 
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+
+#
+# USB Physical Layer drivers
+#
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_SAMSUNG_USBPHY=m
+CONFIG_SAMSUNG_USB2PHY=m
+CONFIG_SAMSUNG_USB3PHY=m
+CONFIG_MMC=m
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+
 #
 # MMC/SD/SDIO Host Controller Drivers
 #
+CONFIG_MMC_SDHCI=m
 CONFIG_MMC_SDHCI_ACPI=m
 CONFIG_MMC_WBSD=m
 
 #
 # LED drivers
 #
+# CONFIG_LEDS_GPIO is not set
 CONFIG_LEDS_CLEVO_MAIL=m
 CONFIG_LEDS_INTEL_SS4200=m
 CONFIG_LEDS_DELL_NETBOOKS=m
 
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+
 #
 # iptables trigger is under Netfilter config (LED target)
 #
@@ -709,6 +850,7 @@ CONFIG_DMA_ACPI=y
 #
 # DMA Clients
 #
+CONFIG_DMA_ENGINE_RAID=y
 CONFIG_DCA=m
 # CONFIG_VFIO is not set
 
@@ -738,6 +880,7 @@ CONFIG_XEN_PRIVCMD=m
 CONFIG_XEN_ACPI_PROCESSOR=m
 CONFIG_XEN_HAVE_PVMMU=y
 # CONFIG_SLICOSS is not set
+# CONFIG_PANEL is not set
 
 #
 # Triggers - standalone
@@ -751,7 +894,6 @@ CONFIG_X86_PLATFORM_DEVICES=y
 CONFIG_ACER_WMI=m
 CONFIG_ACERHDF=m
 CONFIG_ASUS_LAPTOP=m
-CONFIG_CHROMEOS_LAPTOP=m
 CONFIG_DELL_LAPTOP=m
 CONFIG_DELL_WMI=m
 CONFIG_DELL_WMI_AIO=m
@@ -797,6 +939,8 @@ CONFIG_SAMSUNG_Q10=m
 # CONFIG_INTEL_RST is not set
 CONFIG_INTEL_SMARTCONNECT=m
 CONFIG_PVPANIC=m
+CONFIG_CHROME_PLATFORMS=y
+CONFIG_CHROMEOS_LAPTOP=m
 CONFIG_COMMON_CLK=y
 
 #
@@ -843,6 +987,7 @@ CONFIG_ISCSI_IBFT=m
 CONFIG_EFI_VARS=y
 CONFIG_EFI_VARS_PSTORE=y
 # CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
+CONFIG_UEFI_CPER=y
 
 #
 # File systems
@@ -874,6 +1019,14 @@ CONFIG_HARDLOCKUP_DETECTOR=y
 # CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
 CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
 
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+
 #
 # RCU Debugging
 #
@@ -893,6 +1046,7 @@ CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
 # CONFIG_X86_VERBOSE_BOOTUP is not set
 CONFIG_EARLY_PRINTK=y
 # CONFIG_EARLY_PRINTK_DBGP is not set
+CONFIG_EARLY_PRINTK_EFI=y
 # CONFIG_X86_PTDUMP is not set
 CONFIG_DEBUG_NX_TEST=m
 CONFIG_DOUBLEFAULT=y
@@ -961,7 +1115,7 @@ CONFIG_LSM_MMAP_MIN_ADDR=65536
 #
 CONFIG_CRYPTO_GF128MUL=y
 CONFIG_CRYPTO_PCRYPT=m
-CONFIG_CRYPTO_ABLK_HELPER_X86=y
+CONFIG_CRYPTO_ABLK_HELPER=y
 
 #
 # Block modes
@@ -989,6 +1143,7 @@ CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
 CONFIG_KVM_APIC_ARCHITECTURE=y
 CONFIG_KVM_MMIO=y
 CONFIG_KVM_ASYNC_PF=y
+CONFIG_KVM_VFIO=y
 CONFIG_KVM=m
 CONFIG_KVM_INTEL=m
 CONFIG_KVM_AMD=m
@@ -1002,5 +1157,7 @@ CONFIG_RATIONAL=y
 CONFIG_GENERIC_FIND_FIRST_BIT=y
 CONFIG_GENERIC_IOMAP=y
 CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_HAS_IOPORT=y
 CONFIG_CPU_RMAP=y
+# CONFIG_DDR is not set
 CONFIG_UCS2_STRING=y
index 4410927..5df966d 100644 (file)
@@ -35,6 +35,7 @@ CONFIG_CONTEXT_TRACKING=y
 CONFIG_RCU_USER_QS=y
 CONFIG_CONTEXT_TRACKING_FORCE=y
 CONFIG_RCU_FANOUT=64
+CONFIG_ARCH_SUPPORTS_INT128=y
 # CONFIG_NUMA_BALANCING is not set
 
 #
@@ -90,9 +91,7 @@ CONFIG_USE_PERCPU_NUMA_NODE_ID=y
 #
 # Power management and ACPI options
 #
-CONFIG_ARCH_HIBERNATION_HEADER=y
 CONFIG_ACPI_NUMA=y
-CONFIG_ACPI_BLACKLIST_YEAR=0
 
 #
 # Memory power savings
@@ -130,6 +129,11 @@ CONFIG_COMPAT_NETLINK_MESSAGES=y
 #
 CONFIG_BPF_JIT=y
 
+#
+# Protocols
+#
+CONFIG_BLK_DEV_SKD=m
+
 #
 # Misc devices
 #
@@ -137,6 +141,16 @@ CONFIG_BPF_JIT=y
 CONFIG_SGI_IOC4=m
 # CONFIG_CS5535_MFGPT is not set
 
+#
+# Intel MIC Host Driver
+#
+# CONFIG_INTEL_MIC_HOST is not set
+
+#
+# Intel MIC Card Driver
+#
+# CONFIG_INTEL_MIC_CARD is not set
+
 #
 # SCSI Transports
 #
@@ -151,11 +165,6 @@ CONFIG_SCSI_FLASHPOINT=y
 # CONFIG_I2C_SIS5595 is not set
 # CONFIG_I2C_SIS630 is not set
 
-#
-# PCI GPIO expanders:
-#
-CONFIG_GPIO_LANGWELL=y
-
 #
 # Media digital TV PCI Adapters
 #
@@ -241,4 +250,3 @@ CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
 # Library routines
 #
 CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
-CONFIG_CMPXCHG_LOCKREF=y
index b53ab8e..1650e89 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = kernel
-version    = 3.12.4
+version    = 3.13.2
 release    = 1
 thisapp    = linux-%{version}
 
@@ -107,6 +107,7 @@ build
        if "%{DISTRO_ARCH}" == "armv7hl"
                # Build the default unified kernel.
                build_kernel_default = 1
+               build_kernel_lpae = 1
 
                kernel_arch = arm
                kernel_target = zImage
@@ -127,11 +128,20 @@ build
                kernels += legacy
        end
 
+       # Build lpae kernel
+       if "%{build_kernel_lpae}" == "1"
+               kernels += lpae
+       end
+
        # Build ARM kirkwood kernel.
        if "%{build_kernel_kirkwood}" == "1"
                kernels += kirkwood
        end
 
+       perf_make = make %{MAKETUNING} -C tools/perf V=1 WERROR=0 \
+               NO_LIBUNWIND=1 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_LIBNUMA=1 \
+               NO_STRLCPY=1 NO_BIONIC=1 prefix=%{prefix} perfexecdir=lib/perf-core
+
        prepare_cmds
                rm -f %{DIR_APP}/localversion-grsec
 
@@ -177,6 +187,10 @@ build
                for kernel in %{kernels}; do
                        configure_kernel ${kernel}
                done
+
+               # Tools
+               # Prevent perf from installing any files in /usr/libexec
+               sed -i %{DIR_APP}/tools/perf/config/Makefile -e "s/libexec/lib/g"
        end
 
        build
@@ -303,19 +317,43 @@ build
                done
 
                # Build tools.
+               # perf
+               %{perf_make} DESTDIR=%{BUILDROOT} all
+
                # cpupower
                chmod +x tools/power/cpupower/utils/version-gen.sh
                make -C tools/power/cpupower CPUFREQ_BENCH=false %{PARALLELISMFLAGS}
 
                if [ "%{DISTRO_ARCH}" = "x86_64" ]; then
                        pushd tools/power/cpupower/debug/x86_64
-                       make %{MAKETUNING}
+                       make %{MAKETUNING} centrino-decode powernow-k8-decode
                        popd
                elif [ "%{DISTRO_ARCH}" = "i686" ]; then
                        pushd tools/power/cpupower/debug/i386
-                       make %{MAKETUNING}
+                       make %{MAKETUNING} centrino-decode powernow-k8-decode
                        popd
                fi
+
+               # Should be built for all x86 architectures
+               if [ "%{DISTRO_ARCH}" = "x86_64" ]; then
+                       # Won't compile on i686
+                       # x86_energy_perf_policy.c: In function ‘validate_cpuid’:
+                       # x86_energy_perf_policy.c:154:2: error: PIC register clobbered by ‘ebx’ in ‘asm’
+                       #   asm("cpuid" : "=a" (fms), "=c" (ecx), "=d" (edx) : "a" (1) : "ebx");
+                       #   ^
+                       pushd tools/power/x86/x86_energy_perf_policy
+                       make
+                       popd
+
+                       # Same as above
+                       pushd tools/power/x86/turbostat
+                       make
+                       popd
+               fi
+
+               pushd tools/thermal/tmon
+               make
+               popd
        end
 
        install
@@ -339,9 +377,7 @@ build
                rm -rfv %{BUILDROOT}/lib/firmware
 
                # Install tools.
-               make -C tools/perf DESTDIR=%{BUILDROOT} WERROR=0 \
-                       HAVE_CPLUS_DEMANGLE=1 prefix=/usr perfexecdir=lib/perf-core \
-                       install install-man install-python_ext
+               %{perf_make} DESTDIR=%{BUILDROOT} install-bin install-python_ext
 
                # cpupower
                make -C tools/power/cpupower DESTDIR=%{BUILDROOT} libdir=%{libdir} \
@@ -364,6 +400,24 @@ build
                fi
 
                chmod 0755 %{BUILDROOT}%{libdir}/libcpupower.so*
+
+               # This should be built for all x86 architectures
+               if [ "%{DISTRO_ARCH}" = "x86_64" ]; then
+                       mkdir -pv %{BUILDROOT}%{mandir}/man8
+
+                       pushd tools/power/x86/x86_energy_perf_policy
+                       make DESTDIR=%{BUILDROOT} install
+                       popd
+
+                       pushd tools/power/x86/turbostat
+                       make DESTDIR=%{BUILDROOT} install
+                       popd
+               fi
+
+               # tmon
+               pushd tools/thermal/tmon
+               make INSTALL_ROOT=%{BUILDROOT} install
+               popd
        end
 end
 
@@ -514,6 +568,22 @@ packages
                end
        end
 
+       if "%{build_kernel_lpae}" == "1"
+               package kernel-lpae
+                       template KERNEL
+
+                       kernel_name = kernel-lpae
+                       kernel_release = %{fullver}.lpae
+               end
+
+               package kernel-lpae-devel
+                       template KERNELDEVEL
+
+                       kernel_name = kernel-lpae
+                       kernel_release = %{fullver}.lpae
+               end
+       end
+
        if "%{build_kernel_kirkwood}" == "1"
                package kernel-kirkwood
                        template KERNEL
@@ -1,5 +1,5 @@
 diff --git a/Documentation/dontdiff b/Documentation/dontdiff
-index b89a739..79768fb 100644
+index b89a739..e289b9b 100644
 --- a/Documentation/dontdiff
 +++ b/Documentation/dontdiff
 @@ -2,9 +2,11 @@
@@ -61,7 +61,7 @@ index b89a739..79768fb 100644
  asm-offsets.h
  asm_offsets.h
  autoconf.h*
-@@ -92,19 +101,24 @@ bounds.h
+@@ -92,32 +101,40 @@ bounds.h
  bsetup
  btfixupprep
  build
@@ -86,7 +86,11 @@ index b89a739..79768fb 100644
  conmakehash
  consolemap_deftbl.c*
  cpustr.h
-@@ -115,9 +129,11 @@ devlist.h*
+ crc32table.h*
+ cscope.*
+ defkeymap.c
++devicetable-offsets.h
+ devlist.h*
  dnotify_test
  docproc
  dslm
@@ -98,7 +102,7 @@ index b89a739..79768fb 100644
  fixdep
  flask.h
  fore200e_mkfirm
-@@ -125,12 +141,15 @@ fore200e_pca_fw.c*
+@@ -125,12 +142,15 @@ fore200e_pca_fw.c*
  gconf
  gconf.glade.h
  gen-devlist
@@ -114,7 +118,7 @@ index b89a739..79768fb 100644
  hpet_example
  hugepage-mmap
  hugepage-shm
-@@ -145,14 +164,14 @@ int32.c
+@@ -145,14 +165,14 @@ int32.c
  int4.c
  int8.c
  kallsyms
@@ -131,7 +135,7 @@ index b89a739..79768fb 100644
  logo_*.c
  logo_*_clut224.c
  logo_*_mono.c
-@@ -162,14 +181,15 @@ mach-types.h
+@@ -162,14 +182,15 @@ mach-types.h
  machtypes.h
  map
  map_hugetlb
@@ -148,7 +152,7 @@ index b89a739..79768fb 100644
  mkprep
  mkregtable
  mktables
-@@ -185,6 +205,8 @@ oui.c*
+@@ -185,6 +206,8 @@ oui.c*
  page-types
  parse.c
  parse.h
@@ -157,7 +161,7 @@ index b89a739..79768fb 100644
  patches*
  pca200e.bin
  pca200e_ecd.bin2
-@@ -194,6 +216,7 @@ perf-archive
+@@ -194,6 +217,7 @@ perf-archive
  piggyback
  piggy.gzip
  piggy.S
@@ -165,10 +169,12 @@ index b89a739..79768fb 100644
  pnmtologo
  ppc_defs.h*
  pss_boot.h
-@@ -203,7 +226,10 @@ r200_reg_safe.h
+@@ -203,7 +227,12 @@ r200_reg_safe.h
  r300_reg_safe.h
  r420_reg_safe.h
  r600_reg_safe.h
++randomize_layout_hash.h
++randomize_layout_seed.h
 +realmode.lds
 +realmode.relocs
  recordmcount
@@ -176,7 +182,7 @@ index b89a739..79768fb 100644
  relocs
  rlim_names.h
  rn50_reg_safe.h
-@@ -213,8 +239,12 @@ series
+@@ -213,8 +242,12 @@ series
  setup
  setup.bin
  setup.elf
@@ -189,7 +195,7 @@ index b89a739..79768fb 100644
  split-include
  syscalltab.h
  tables.c
-@@ -224,6 +254,7 @@ tftpboot.img
+@@ -224,6 +257,7 @@ tftpboot.img
  timeconst.h
  times.h*
  trix_boot.h
@@ -197,7 +203,7 @@ index b89a739..79768fb 100644
  utsrelease.h*
  vdso-syms.lds
  vdso.lds
-@@ -235,13 +266,17 @@ vdso32.lds
+@@ -235,13 +269,17 @@ vdso32.lds
  vdso32.so.dbg
  vdso64.lds
  vdso64.so.dbg
@@ -215,7 +221,7 @@ index b89a739..79768fb 100644
  vmlinuz
  voffset.h
  vsyscall.lds
-@@ -249,9 +284,12 @@ vsyscall_32.lds
+@@ -249,9 +287,12 @@ vsyscall_32.lds
  wanxlfw.inc
  uImage
  unifdef
@@ -229,10 +235,10 @@ index b89a739..79768fb 100644
 +zconf.lex.c
  zoffset.h
 diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
-index fcbb736..5508d8c 100644
+index b9e9bd8..bf49b92 100644
 --- a/Documentation/kernel-parameters.txt
 +++ b/Documentation/kernel-parameters.txt
-@@ -1031,6 +1031,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
+@@ -1033,6 +1033,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        Format: <unsigned int> such that (rxsize & ~0x1fffc0) == 0.
                        Default: 1024
  
@@ -243,7 +249,7 @@ index fcbb736..5508d8c 100644
        hashdist=       [KNL,NUMA] Large hashes allocated during boot
                        are distributed across NUMA nodes.  Defaults on
                        for 64-bit NUMA, off otherwise.
-@@ -1999,6 +2003,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
+@@ -2018,6 +2022,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        noexec=on: enable non-executable mappings (default)
                        noexec=off: disable non-executable mappings
  
@@ -254,7 +260,7 @@ index fcbb736..5508d8c 100644
        nosmap          [X86]
                        Disable SMAP (Supervisor Mode Access Prevention)
                        even if it is supported by processor.
-@@ -2266,6 +2274,25 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
+@@ -2285,6 +2293,25 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        the specified number of seconds.  This is to be used if
                        your oopses keep scrolling off the screen.
  
@@ -281,10 +287,10 @@ index fcbb736..5508d8c 100644
  
        pcd.            [PARIDE]
 diff --git a/Makefile b/Makefile
-index 3b7165e..9112a63 100644
+index a7fd5d9..dc8e4db 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -241,8 +241,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
+@@ -244,8 +244,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
  
  HOSTCC       = gcc
  HOSTCXX      = g++
@@ -296,7 +302,23 @@ index 3b7165e..9112a63 100644
  
  # Decide whether to build built-in, modular, or both.
  # Normally, just do built-in.
-@@ -414,8 +415,8 @@ export RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn \
+@@ -311,9 +312,15 @@ endif
+ # If the user is running make -s (silent mode), suppress echoing of
+ # commands
++ifneq ($(filter 4.%,$(MAKE_VERSION)),)        # make-4
++ifneq ($(filter %s ,$(firstword x$(MAKEFLAGS))),)
++ quiet=silent_
++endif
++else                                  # make-3.8x
+ ifneq ($(filter s% -s%,$(MAKEFLAGS)),)
+   quiet=silent_
+ endif
++endif
+ export quiet Q KBUILD_VERBOSE
+@@ -417,8 +424,8 @@ export RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn \
  # Rules shared between *config targets and build targets
  
  # Basic helpers built in scripts/
@@ -307,7 +329,7 @@ index 3b7165e..9112a63 100644
        $(Q)$(MAKE) $(build)=scripts/basic
        $(Q)rm -f .tmp_quiet_recordmcount
  
-@@ -576,6 +577,65 @@ else
+@@ -579,6 +586,72 @@ else
  KBUILD_CFLAGS += -O2
  endif
  
@@ -333,6 +355,12 @@ index 3b7165e..9112a63 100644
 +KERNEXEC_PLUGIN_CFLAGS += -fplugin-arg-kernexec_plugin-method=$(CONFIG_PAX_KERNEXEC_PLUGIN_METHOD) -DKERNEXEC_PLUGIN
 +KERNEXEC_PLUGIN_AFLAGS := -DKERNEXEC_PLUGIN
 +endif
++ifdef CONFIG_GRKERNSEC_RANDSTRUCT
++RANDSTRUCT_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/randomize_layout_plugin.so -DRANDSTRUCT_PLUGIN
++ifdef CONFIG_GRKERNSEC_RANDSTRUCT_PERFORMANCE
++RANDSTRUCT_PLUGIN_CFLAGS += -fplugin-arg-randomize_layout_plugin-performance-mode
++endif
++endif
 +ifdef CONFIG_CHECKER_PLUGIN
 +ifeq ($(call cc-ifversion, -ge, 0406, y), y)
 +CHECKER_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/checker_plugin.so -DCHECKER_PLUGIN
@@ -351,6 +379,7 @@ index 3b7165e..9112a63 100644
 +GCC_PLUGINS_CFLAGS := $(CONSTIFY_PLUGIN_CFLAGS) $(STACKLEAK_PLUGIN_CFLAGS) $(KALLOCSTAT_PLUGIN_CFLAGS)
 +GCC_PLUGINS_CFLAGS += $(KERNEXEC_PLUGIN_CFLAGS) $(CHECKER_PLUGIN_CFLAGS) $(COLORIZE_PLUGIN_CFLAGS)
 +GCC_PLUGINS_CFLAGS += $(SIZE_OVERFLOW_PLUGIN_CFLAGS) $(LATENT_ENTROPY_PLUGIN_CFLAGS) $(STRUCTLEAK_PLUGIN_CFLAGS)
++GCC_PLUGINS_CFLAGS += $(RANDSTRUCT_PLUGIN_CFLAGS)
 +GCC_PLUGINS_AFLAGS := $(KERNEXEC_PLUGIN_AFLAGS)
 +export PLUGINCC GCC_PLUGINS_CFLAGS GCC_PLUGINS_AFLAGS CONSTIFY_PLUGIN
 +ifeq ($(KBUILD_EXTMOD),)
@@ -373,7 +402,16 @@ index 3b7165e..9112a63 100644
  include $(srctree)/arch/$(SRCARCH)/Makefile
  
  ifdef CONFIG_READABLE_ASM
-@@ -733,7 +793,7 @@ export mod_sign_cmd
+@@ -619,7 +692,7 @@ endif
+ ifdef CONFIG_DEBUG_INFO
+ KBUILD_CFLAGS += -g
+-KBUILD_AFLAGS += -gdwarf-2
++KBUILD_AFLAGS += -Wa,--gdwarf-2
+ endif
+ ifdef CONFIG_DEBUG_INFO_REDUCED
+@@ -754,7 +827,7 @@ export mod_sign_cmd
  
  
  ifeq ($(KBUILD_EXTMOD),)
@@ -382,7 +420,7 @@ index 3b7165e..9112a63 100644
  
  vmlinux-dirs  := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
                     $(core-y) $(core-m) $(drivers-y) $(drivers-m) \
-@@ -782,6 +842,8 @@ endif
+@@ -803,6 +876,8 @@ endif
  
  # The actual objects are generated when descending, 
  # make sure no implicit rule kicks in
@@ -391,7 +429,7 @@ index 3b7165e..9112a63 100644
  $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
  
  # Handle descending into subdirectories listed in $(vmlinux-dirs)
-@@ -791,7 +853,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
+@@ -812,7 +887,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
  # Error messages still appears in the original language
  
  PHONY += $(vmlinux-dirs)
@@ -400,7 +438,13 @@ index 3b7165e..9112a63 100644
        $(Q)$(MAKE) $(build)=$@
  
  define filechk_kernel.release
-@@ -838,6 +900,7 @@ prepare0: archprepare FORCE
+@@ -855,10 +930,13 @@ prepare1: prepare2 $(version_h) include/generated/utsrelease.h \
+ archprepare: archheaders archscripts prepare1 scripts_basic
++prepare0: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
++prepare0: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
+ prepare0: archprepare FORCE
        $(Q)$(MAKE) $(build)=.
  
  # All the preparing..
@@ -408,7 +452,7 @@ index 3b7165e..9112a63 100644
  prepare: prepare0
  
  # Generate some files
-@@ -945,6 +1008,8 @@ all: modules
+@@ -966,6 +1044,8 @@ all: modules
  #     using awk while concatenating to the final file.
  
  PHONY += modules
@@ -417,7 +461,7 @@ index 3b7165e..9112a63 100644
  modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
        $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
        @$(kecho) '  Building modules, stage 2.';
-@@ -960,7 +1025,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)
+@@ -981,7 +1061,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)
  
  # Target to prepare building external modules
  PHONY += modules_prepare
@@ -426,16 +470,17 @@ index 3b7165e..9112a63 100644
  
  # Target to install modules
  PHONY += modules_install
-@@ -1026,7 +1091,7 @@ MRPROPER_FILES += .config .config.old .version .old_version $(version_h) \
+@@ -1047,7 +1127,8 @@ MRPROPER_FILES += .config .config.old .version .old_version $(version_h) \
                  Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS \
                  signing_key.priv signing_key.x509 x509.genkey         \
                  extra_certificates signing_key.x509.keyid             \
 -                signing_key.x509.signer
-+                signing_key.x509.signer tools/gcc/size_overflow_hash.h
++                signing_key.x509.signer tools/gcc/size_overflow_hash.h \
++                tools/gcc/randomize_layout_seed.h
  
  # clean - Delete most, but leave enough to build external modules
  #
-@@ -1066,6 +1131,7 @@ distclean: mrproper
+@@ -1087,6 +1168,7 @@ distclean: mrproper
                \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
                -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
                -o -name '.*.rej' \
@@ -443,7 +488,7 @@ index 3b7165e..9112a63 100644
                -o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \
                -type f -print | xargs rm -f
  
-@@ -1227,6 +1293,8 @@ PHONY += $(module-dirs) modules
+@@ -1248,6 +1330,8 @@ PHONY += $(module-dirs) modules
  $(module-dirs): crmodverdir $(objtree)/Module.symvers
        $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)
  
@@ -452,7 +497,7 @@ index 3b7165e..9112a63 100644
  modules: $(module-dirs)
        @$(kecho) '  Building modules, stage 2.';
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
-@@ -1366,17 +1434,21 @@ else
+@@ -1387,17 +1471,21 @@ else
          target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@))
  endif
  
@@ -478,7 +523,7 @@ index 3b7165e..9112a63 100644
        $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
  %.symtypes: %.c prepare scripts FORCE
        $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
-@@ -1386,11 +1458,15 @@ endif
+@@ -1407,11 +1495,15 @@ endif
        $(cmd_crmodverdir)
        $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
        $(build)=$(build-dir)
@@ -562,7 +607,7 @@ index 968d999..d36b2df 100644
     registered using atexit.  This provides a mean for the dynamic
     linker to call DT_FINI functions for shared libraries that have
 diff --git a/arch/alpha/include/asm/pgalloc.h b/arch/alpha/include/asm/pgalloc.h
-index bc2a0da..8ad11ee 100644
+index aab14a0..b4fa3e7 100644
 --- a/arch/alpha/include/asm/pgalloc.h
 +++ b/arch/alpha/include/asm/pgalloc.h
 @@ -29,6 +29,12 @@ pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
@@ -829,10 +874,10 @@ index 98838a0..b304fb4 100644
                /* Allow reads even for write-only mappings */
                if (!(vma->vm_flags & (VM_READ | VM_WRITE)))
 diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index 1ad6fb6..9406b3d 100644
+index c1f1a7e..554b0cd 100644
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -1832,7 +1832,7 @@ config ALIGNMENT_TRAP
+@@ -1828,7 +1828,7 @@ config ALIGNMENT_TRAP
  
  config UACCESS_WITH_MEMCPY
        bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user()"
@@ -841,7 +886,7 @@ index 1ad6fb6..9406b3d 100644
        default y if CPU_FEROCEON
        help
          Implement faster copy_to_user and clear_user methods for CPU
-@@ -2097,6 +2097,7 @@ config XIP_PHYS_ADDR
+@@ -2100,6 +2100,7 @@ config XIP_PHYS_ADDR
  config KEXEC
        bool "Kexec system call (EXPERIMENTAL)"
        depends on (!SMP || PM_SLEEP_SMP)
@@ -850,10 +895,10 @@ index 1ad6fb6..9406b3d 100644
          kexec is a system call that implements the ability to shutdown your
          current kernel, and to start another kernel.  It is like a reboot
 diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h
-index da1c77d..2ee6056 100644
+index 62d2cb5..7a13651 100644
 --- a/arch/arm/include/asm/atomic.h
 +++ b/arch/arm/include/asm/atomic.h
-@@ -17,17 +17,35 @@
+@@ -18,17 +18,35 @@
  #include <asm/barrier.h>
  #include <asm/cmpxchg.h>
  
@@ -889,9 +934,9 @@ index da1c77d..2ee6056 100644
  
  #if __LINUX_ARM_ARCH__ >= 6
  
-@@ -42,6 +60,35 @@ static inline void atomic_add(int i, atomic_t *v)
-       int result;
+@@ -44,6 +62,36 @@ static inline void atomic_add(int i, atomic_t *v)
  
+       prefetchw(&v->counter);
        __asm__ __volatile__("@ atomic_add\n"
 +"1:   ldrex   %1, [%3]\n"
 +"     adds    %0, %1, %4\n"
@@ -921,11 +966,12 @@ index da1c77d..2ee6056 100644
 +      unsigned long tmp;
 +      int result;
 +
++      prefetchw(&v->counter);
 +      __asm__ __volatile__("@ atomic_add_unchecked\n"
  "1:   ldrex   %0, [%3]\n"
  "     add     %0, %0, %4\n"
  "     strex   %1, %0, [%3]\n"
-@@ -60,6 +107,42 @@ static inline int atomic_add_return(int i, atomic_t *v)
+@@ -62,6 +110,42 @@ static inline int atomic_add_return(int i, atomic_t *v)
        smp_mb();
  
        __asm__ __volatile__("@ atomic_add_return\n"
@@ -968,9 +1014,9 @@ index da1c77d..2ee6056 100644
  "1:   ldrex   %0, [%3]\n"
  "     add     %0, %0, %4\n"
  "     strex   %1, %0, [%3]\n"
-@@ -80,6 +163,35 @@ static inline void atomic_sub(int i, atomic_t *v)
-       int result;
+@@ -83,6 +167,36 @@ static inline void atomic_sub(int i, atomic_t *v)
  
+       prefetchw(&v->counter);
        __asm__ __volatile__("@ atomic_sub\n"
 +"1:   ldrex   %1, [%3]\n"
 +"     subs    %0, %1, %4\n"
@@ -1000,11 +1046,12 @@ index da1c77d..2ee6056 100644
 +      unsigned long tmp;
 +      int result;
 +
++      prefetchw(&v->counter);
 +      __asm__ __volatile__("@ atomic_sub_unchecked\n"
  "1:   ldrex   %0, [%3]\n"
  "     sub     %0, %0, %4\n"
  "     strex   %1, %0, [%3]\n"
-@@ -98,11 +210,25 @@ static inline int atomic_sub_return(int i, atomic_t *v)
+@@ -101,11 +215,25 @@ static inline int atomic_sub_return(int i, atomic_t *v)
        smp_mb();
  
        __asm__ __volatile__("@ atomic_sub_return\n"
@@ -1032,7 +1079,7 @@ index da1c77d..2ee6056 100644
        : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
        : "r" (&v->counter), "Ir" (i)
        : "cc");
-@@ -134,6 +260,28 @@ static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
+@@ -138,6 +266,28 @@ static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
        return oldval;
  }
  
@@ -1058,10 +1105,10 @@ index da1c77d..2ee6056 100644
 +      return oldval;
 +}
 +
- static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
- {
-       unsigned long tmp, tmp2;
-@@ -167,7 +315,17 @@ static inline int atomic_add_return(int i, atomic_t *v)
+ #else /* ARM_ARCH_6 */
+ #ifdef CONFIG_SMP
+@@ -156,7 +306,17 @@ static inline int atomic_add_return(int i, atomic_t *v)
  
        return val;
  }
@@ -1079,7 +1126,7 @@ index da1c77d..2ee6056 100644
  
  static inline int atomic_sub_return(int i, atomic_t *v)
  {
-@@ -182,6 +340,10 @@ static inline int atomic_sub_return(int i, atomic_t *v)
+@@ -171,6 +331,10 @@ static inline int atomic_sub_return(int i, atomic_t *v)
        return val;
  }
  #define atomic_sub(i, v)      (void) atomic_sub_return(i, v)
@@ -1090,7 +1137,7 @@ index da1c77d..2ee6056 100644
  
  static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
  {
-@@ -197,6 +359,11 @@ static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
+@@ -186,9 +350,18 @@ static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
        return ret;
  }
  
@@ -1099,10 +1146,6 @@ index da1c77d..2ee6056 100644
 +      return atomic_cmpxchg(v, old, new);
 +}
 +
- static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
- {
-       unsigned long flags;
-@@ -209,6 +376,10 @@ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
  #endif /* __LINUX_ARM_ARCH__ */
  
  #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
@@ -1113,7 +1156,7 @@ index da1c77d..2ee6056 100644
  
  static inline int __atomic_add_unless(atomic_t *v, int a, int u)
  {
-@@ -221,11 +392,27 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
+@@ -201,11 +374,27 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
  }
  
  #define atomic_inc(v)         atomic_add(1, v)
@@ -1141,13 +1184,13 @@ index da1c77d..2ee6056 100644
  #define atomic_dec_return(v)    (atomic_sub_return(1, v))
  #define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0)
  
-@@ -241,6 +428,14 @@ typedef struct {
-       u64 __aligned(8) counter;
+@@ -221,6 +410,14 @@ typedef struct {
+       long long counter;
  } atomic64_t;
  
 +#ifdef CONFIG_PAX_REFCOUNT
 +typedef struct {
-+      u64 __aligned(8) counter;
++      long long counter;
 +} atomic64_unchecked_t;
 +#else
 +typedef atomic64_t atomic64_unchecked_t;
@@ -1156,13 +1199,13 @@ index da1c77d..2ee6056 100644
  #define ATOMIC64_INIT(i) { (i) }
  
  #ifdef CONFIG_ARM_LPAE
-@@ -257,6 +452,19 @@ static inline u64 atomic64_read(const atomic64_t *v)
+@@ -237,6 +434,19 @@ static inline long long atomic64_read(const atomic64_t *v)
        return result;
  }
  
-+static inline u64 atomic64_read_unchecked(const atomic64_unchecked_t *v)
++static inline long long atomic64_read_unchecked(const atomic64_unchecked_t *v)
 +{
-+      u64 result;
++      long long result;
 +
 +      __asm__ __volatile__("@ atomic64_read_unchecked\n"
 +"     ldrd    %0, %H0, [%1]"
@@ -1173,15 +1216,15 @@ index da1c77d..2ee6056 100644
 +      return result;
 +}
 +
- static inline void atomic64_set(atomic64_t *v, u64 i)
+ static inline void atomic64_set(atomic64_t *v, long long i)
  {
        __asm__ __volatile__("@ atomic64_set\n"
-@@ -265,6 +473,15 @@ static inline void atomic64_set(atomic64_t *v, u64 i)
+@@ -245,6 +455,15 @@ static inline void atomic64_set(atomic64_t *v, long long i)
        : "r" (&v->counter), "r" (i)
        );
  }
 +
-+static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, u64 i)
++static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long long i)
 +{
 +      __asm__ __volatile__("@ atomic64_set_unchecked\n"
 +"     strd    %2, %H2, [%1]"
@@ -1190,15 +1233,15 @@ index da1c77d..2ee6056 100644
 +      );
 +}
  #else
- static inline u64 atomic64_read(const atomic64_t *v)
+ static inline long long atomic64_read(const atomic64_t *v)
  {
-@@ -279,6 +496,19 @@ static inline u64 atomic64_read(const atomic64_t *v)
+@@ -259,6 +478,19 @@ static inline long long atomic64_read(const atomic64_t *v)
        return result;
  }
  
-+static inline u64 atomic64_read_unchecked(atomic64_unchecked_t *v)
++static inline long long atomic64_read_unchecked(const atomic64_unchecked_t *v)
 +{
-+      u64 result;
++      long long result;
 +
 +      __asm__ __volatile__("@ atomic64_read_unchecked\n"
 +"     ldrexd  %0, %H0, [%1]"
@@ -1209,18 +1252,19 @@ index da1c77d..2ee6056 100644
 +      return result;
 +}
 +
- static inline void atomic64_set(atomic64_t *v, u64 i)
+ static inline void atomic64_set(atomic64_t *v, long long i)
  {
-       u64 tmp;
-@@ -292,6 +522,21 @@ static inline void atomic64_set(atomic64_t *v, u64 i)
+       long long tmp;
+@@ -273,6 +505,21 @@ static inline void atomic64_set(atomic64_t *v, long long i)
        : "r" (&v->counter), "r" (i)
        : "cc");
  }
 +
-+static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, u64 i)
++static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long long i)
 +{
-+      u64 tmp;
++      long long tmp;
 +
++      prefetchw(&v->counter);
 +      __asm__ __volatile__("@ atomic64_set_unchecked\n"
 +"1:   ldrexd  %0, %H0, [%2]\n"
 +"     strexd  %0, %3, %H3, [%2]\n"
@@ -1230,15 +1274,14 @@ index da1c77d..2ee6056 100644
 +      : "r" (&v->counter), "r" (i)
 +      : "cc");
 +}
-+
  #endif
  
- static inline void atomic64_add(u64 i, atomic64_t *v)
-@@ -302,6 +547,36 @@ static inline void atomic64_add(u64 i, atomic64_t *v)
+ static inline void atomic64_add(long long i, atomic64_t *v)
+@@ -284,6 +531,37 @@ static inline void atomic64_add(long long i, atomic64_t *v)
        __asm__ __volatile__("@ atomic64_add\n"
  "1:   ldrexd  %0, %H0, [%3]\n"
- "     adds    %0, %0, %4\n"
-+"     adcs    %H0, %H0, %H4\n"
+ "     adds    %Q0, %Q0, %Q4\n"
++"     adcs    %R0, %R0, %R4\n"
 +
 +#ifdef CONFIG_PAX_REFCOUNT
 +"     bvc     3f\n"
@@ -1260,31 +1303,23 @@ index da1c77d..2ee6056 100644
 +      : "cc");
 +}
 +
-+static inline void atomic64_add_unchecked(u64 i, atomic64_unchecked_t *v)
++static inline void atomic64_add_unchecked(long long i, atomic64_unchecked_t *v)
 +{
-+      u64 result;
++      long long result;
 +      unsigned long tmp;
 +
++      prefetchw(&v->counter);
 +      __asm__ __volatile__("@ atomic64_add_unchecked\n"
 +"1:   ldrexd  %0, %H0, [%3]\n"
-+"     adds    %0, %0, %4\n"
- "     adc     %H0, %H0, %H4\n"
++"     adds    %Q0, %Q0, %Q4\n"
+ "     adc     %R0, %R0, %R4\n"
  "     strexd  %1, %0, %H0, [%3]\n"
  "     teq     %1, #0\n"
-@@ -313,12 +588,49 @@ static inline void atomic64_add(u64 i, atomic64_t *v)
- static inline u64 atomic64_add_return(u64 i, atomic64_t *v)
- {
--      u64 result;
--      unsigned long tmp;
-+      u64 result, tmp;
-       smp_mb();
+@@ -303,6 +581,44 @@ static inline long long atomic64_add_return(long long i, atomic64_t *v)
        __asm__ __volatile__("@ atomic64_add_return\n"
-+"1:   ldrexd  %1, %H1, [%3]\n"
-+"     adds    %0, %1, %4\n"
-+"     adcs    %H0, %H1, %H4\n"
+ "1:   ldrexd  %0, %H0, [%3]\n"
+ "     adds    %Q0, %Q0, %Q4\n"
++"     adcs    %R0, %R0, %R4\n"
 +
 +#ifdef CONFIG_PAX_REFCOUNT
 +"     bvc     3f\n"
@@ -1312,22 +1347,24 @@ index da1c77d..2ee6056 100644
 +      return result;
 +}
 +
-+static inline u64 atomic64_add_return_unchecked(u64 i, atomic64_unchecked_t *v)
++static inline long long atomic64_add_return_unchecked(long long i, atomic64_unchecked_t *v)
 +{
-+      u64 result;
++      long long result;
 +      unsigned long tmp;
 +
 +      smp_mb();
 +
 +      __asm__ __volatile__("@ atomic64_add_return_unchecked\n"
- "1:   ldrexd  %0, %H0, [%3]\n"
- "     adds    %0, %0, %4\n"
- "     adc     %H0, %H0, %H4\n"
-@@ -342,6 +654,36 @@ static inline void atomic64_sub(u64 i, atomic64_t *v)
++"1:   ldrexd  %0, %H0, [%3]\n"
++"     adds    %Q0, %Q0, %Q4\n"
+ "     adc     %R0, %R0, %R4\n"
+ "     strexd  %1, %0, %H0, [%3]\n"
+ "     teq     %1, #0\n"
+@@ -325,6 +641,37 @@ static inline void atomic64_sub(long long i, atomic64_t *v)
        __asm__ __volatile__("@ atomic64_sub\n"
  "1:   ldrexd  %0, %H0, [%3]\n"
- "     subs    %0, %0, %4\n"
-+"     sbcs    %H0, %H0, %H4\n"
+ "     subs    %Q0, %Q0, %Q4\n"
++"     sbcs    %R0, %R0, %R4\n"
 +
 +#ifdef CONFIG_PAX_REFCOUNT
 +"     bvc     3f\n"
@@ -1349,34 +1386,24 @@ index da1c77d..2ee6056 100644
 +      : "cc");
 +}
 +
-+static inline void atomic64_sub_unchecked(u64 i, atomic64_unchecked_t *v)
++static inline void atomic64_sub_unchecked(long long i, atomic64_unchecked_t *v)
 +{
-+      u64 result;
++      long long result;
 +      unsigned long tmp;
 +
++      prefetchw(&v->counter);
 +      __asm__ __volatile__("@ atomic64_sub_unchecked\n"
 +"1:   ldrexd  %0, %H0, [%3]\n"
-+"     subs    %0, %0, %4\n"
- "     sbc     %H0, %H0, %H4\n"
++"     subs    %Q0, %Q0, %Q4\n"
+ "     sbc     %R0, %R0, %R4\n"
  "     strexd  %1, %0, %H0, [%3]\n"
  "     teq     %1, #0\n"
-@@ -353,18 +695,32 @@ static inline void atomic64_sub(u64 i, atomic64_t *v)
- static inline u64 atomic64_sub_return(u64 i, atomic64_t *v)
- {
--      u64 result;
--      unsigned long tmp;
-+      u64 result, tmp;
-       smp_mb();
+@@ -344,17 +691,28 @@ static inline long long atomic64_sub_return(long long i, atomic64_t *v)
        __asm__ __volatile__("@ atomic64_sub_return\n"
--"1:   ldrexd  %0, %H0, [%3]\n"
--"     subs    %0, %0, %4\n"
--"     sbc     %H0, %H0, %H4\n"
-+"1:   ldrexd  %1, %H1, [%3]\n"
-+"     subs    %0, %1, %4\n"
-+"     sbcs    %H0, %H1, %H4\n"
+ "1:   ldrexd  %0, %H0, [%3]\n"
+ "     subs    %Q0, %Q0, %Q4\n"
+-"     sbc     %R0, %R0, %R4\n"
++"     sbcs    %R0, %R0, %R4\n"
 +
 +#ifdef CONFIG_PAX_REFCOUNT
 +"     bvc     3f\n"
@@ -1398,13 +1425,21 @@ index da1c77d..2ee6056 100644
        : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
        : "r" (&v->counter), "r" (i)
        : "cc");
-@@ -398,6 +754,30 @@ static inline u64 atomic64_cmpxchg(atomic64_t *ptr, u64 old, u64 new)
+-
+-      smp_mb();
+-
+-      return result;
+ }
+ static inline long long atomic64_cmpxchg(atomic64_t *ptr, long long old,
+@@ -382,6 +740,31 @@ static inline long long atomic64_cmpxchg(atomic64_t *ptr, long long old,
        return oldval;
  }
  
-+static inline u64 atomic64_cmpxchg_unchecked(atomic64_unchecked_t *ptr, u64 old, u64 new)
++static inline long long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *ptr, long long old,
++                                      long long new)
 +{
-+      u64 oldval;
++      long long oldval;
 +      unsigned long res;
 +
 +      smp_mb();
@@ -1426,36 +1461,35 @@ index da1c77d..2ee6056 100644
 +      return oldval;
 +}
 +
- static inline u64 atomic64_xchg(atomic64_t *ptr, u64 new)
+ static inline long long atomic64_xchg(atomic64_t *ptr, long long new)
  {
-       u64 result;
-@@ -421,21 +801,34 @@ static inline u64 atomic64_xchg(atomic64_t *ptr, u64 new)
- static inline u64 atomic64_dec_if_positive(atomic64_t *v)
+       long long result;
+@@ -406,20 +789,34 @@ static inline long long atomic64_xchg(atomic64_t *ptr, long long new)
+ static inline long long atomic64_dec_if_positive(atomic64_t *v)
  {
--      u64 result;
+       long long result;
 -      unsigned long tmp;
-+      u64 result, tmp;
++      u64 tmp;
  
        smp_mb();
  
        __asm__ __volatile__("@ atomic64_dec_if_positive\n"
 -"1:   ldrexd  %0, %H0, [%3]\n"
--"     subs    %0, %0, #1\n"
--"     sbc     %H0, %H0, #0\n"
+-"     subs    %Q0, %Q0, #1\n"
+-"     sbc     %R0, %R0, #0\n"
 +"1:   ldrexd  %1, %H1, [%3]\n"
-+"     subs    %0, %1, #1\n"
-+"     sbcs    %H0, %H1, #0\n"
++"     subs    %Q0, %Q1, #1\n"
++"     sbcs    %R0, %R1, #0\n"
 +
 +#ifdef CONFIG_PAX_REFCOUNT
 +"     bvc     3f\n"
-+"     mov     %0, %1\n"
-+"     mov     %H0, %H1\n"
++"     mov     %Q0, %Q1\n"
++"     mov     %R0, %R1\n"
 +"2:   bkpt    0xf103\n"
 +"3:\n"
 +#endif
 +
- "     teq     %H0, #0\n"
+ "     teq     %R0, #0\n"
 -"     bmi     2f\n"
 +"     bmi     4f\n"
  "     strexd  %1, %0, %H0, [%3]\n"
@@ -1471,15 +1505,15 @@ index da1c77d..2ee6056 100644
        : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
        : "r" (&v->counter)
        : "cc");
-@@ -458,13 +851,25 @@ static inline int atomic64_add_unless(atomic64_t *v, u64 a, u64 u)
+@@ -442,13 +839,25 @@ static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u)
  "     teq     %0, %5\n"
  "     teqeq   %H0, %H5\n"
  "     moveq   %1, #0\n"
 -"     beq     2f\n"
 +"     beq     4f\n"
- "     adds    %0, %0, %6\n"
--"     adc     %H0, %H0, %H6\n"
-+"     adcs    %H0, %H0, %H6\n"
+ "     adds    %Q0, %Q0, %Q6\n"
+-"     adc     %R0, %R0, %R6\n"
++"     adcs    %R0, %R0, %R6\n"
 +
 +#ifdef CONFIG_PAX_REFCOUNT
 +"     bvc     3f\n"
@@ -1500,7 +1534,7 @@ index da1c77d..2ee6056 100644
        : "=&r" (val), "+r" (ret), "=&r" (tmp), "+Qo" (v->counter)
        : "r" (&v->counter), "r" (u), "r" (a)
        : "cc");
-@@ -477,10 +882,13 @@ static inline int atomic64_add_unless(atomic64_t *v, u64 a, u64 u)
+@@ -461,10 +870,13 @@ static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u)
  
  #define atomic64_add_negative(a, v)   (atomic64_add_return((a), (v)) < 0)
  #define atomic64_inc(v)                       atomic64_add(1LL, (v))
@@ -1538,7 +1572,7 @@ index 75fe66b..ba3dee4 100644
  
  #endif
 diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h
-index 15f2d5b..43ffa53 100644
+index ee753f1..c9c30a5 100644
 --- a/arch/arm/include/asm/cacheflush.h
 +++ b/arch/arm/include/asm/cacheflush.h
 @@ -116,7 +116,7 @@ struct cpu_cache_fns {
@@ -1576,7 +1610,7 @@ index 6dcc164..b14d917 100644
  /*
   *    Fold a partial checksum without adding pseudo headers
 diff --git a/arch/arm/include/asm/cmpxchg.h b/arch/arm/include/asm/cmpxchg.h
-index 4f009c1..466c59b 100644
+index df2fbba..63fe3e1 100644
 --- a/arch/arm/include/asm/cmpxchg.h
 +++ b/arch/arm/include/asm/cmpxchg.h
 @@ -102,6 +102,8 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
@@ -1825,7 +1859,7 @@ index 4355f0e..c229913 100644
  #ifdef MULTI_USER
  extern struct cpu_user_fns cpu_user;
 diff --git a/arch/arm/include/asm/pgalloc.h b/arch/arm/include/asm/pgalloc.h
-index 943504f..c37a730 100644
+index 78a7793..e3dc06c 100644
 --- a/arch/arm/include/asm/pgalloc.h
 +++ b/arch/arm/include/asm/pgalloc.h
 @@ -17,6 +17,7 @@
@@ -1856,7 +1890,7 @@ index 943504f..c37a730 100644
  
  #endif        /* CONFIG_ARM_LPAE */
  
-@@ -126,6 +133,19 @@ static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
+@@ -128,6 +135,19 @@ static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
        __free_page(pte);
  }
  
@@ -1876,7 +1910,7 @@ index 943504f..c37a730 100644
  static inline void __pmd_populate(pmd_t *pmdp, phys_addr_t pte,
                                  pmdval_t prot)
  {
-@@ -155,7 +175,7 @@ pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmdp, pte_t *ptep)
+@@ -157,7 +177,7 @@ pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmdp, pte_t *ptep)
  static inline void
  pmd_populate(struct mm_struct *mm, pmd_t *pmdp, pgtable_t ptep)
  {
@@ -1922,7 +1956,7 @@ index 5cfba15..f415e1a 100644
  #define PTE_EXT_AP0           (_AT(pteval_t, 1) << 4)
  #define PTE_EXT_AP1           (_AT(pteval_t, 2) << 4)
 diff --git a/arch/arm/include/asm/pgtable-2level.h b/arch/arm/include/asm/pgtable-2level.h
-index f97ee02..cc9fe9e 100644
+index 86a659a..70e0120 100644
 --- a/arch/arm/include/asm/pgtable-2level.h
 +++ b/arch/arm/include/asm/pgtable-2level.h
 @@ -126,6 +126,9 @@
@@ -1948,7 +1982,7 @@ index 626989f..9d67a33 100644
  
  /*
 diff --git a/arch/arm/include/asm/pgtable-3level.h b/arch/arm/include/asm/pgtable-3level.h
-index 5689c18..eea12f9 100644
+index 4f95039..b2dd513 100644
 --- a/arch/arm/include/asm/pgtable-3level.h
 +++ b/arch/arm/include/asm/pgtable-3level.h
 @@ -82,6 +82,7 @@
@@ -1968,7 +2002,7 @@ index 5689c18..eea12f9 100644
  #define L_PTE_DIRTY_HIGH      (1 << (55 - 32))
  
 diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h
-index be956db..c8f25e2 100644
+index 1571d12..b8a9b43 100644
 --- a/arch/arm/include/asm/pgtable.h
 +++ b/arch/arm/include/asm/pgtable.h
 @@ -33,6 +33,9 @@
@@ -2087,10 +2121,10 @@ index c4ae171..ea0c0c2 100644
  extern struct psci_operations psci_ops;
  extern struct smp_operations psci_smp_ops;
 diff --git a/arch/arm/include/asm/smp.h b/arch/arm/include/asm/smp.h
-index a8cae71c..65dd797 100644
+index 22a3b9b..7f214ee 100644
 --- a/arch/arm/include/asm/smp.h
 +++ b/arch/arm/include/asm/smp.h
-@@ -110,7 +110,7 @@ struct smp_operations {
+@@ -112,7 +112,7 @@ struct smp_operations {
        int  (*cpu_disable)(unsigned int cpu);
  #endif
  #endif
@@ -2100,7 +2134,7 @@ index a8cae71c..65dd797 100644
  /*
   * set platform specific SMP operations
 diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h
-index df5e13d..97efb82 100644
+index 71a06b2..8bb9ae1 100644
 --- a/arch/arm/include/asm/thread_info.h
 +++ b/arch/arm/include/asm/thread_info.h
 @@ -88,9 +88,9 @@ struct thread_info {
@@ -2116,7 +2150,7 @@ index df5e13d..97efb82 100644
        .restart_block  = {                                             \
                .fn     = do_no_restart_syscall,                        \
        },                                                              \
-@@ -163,7 +163,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
+@@ -157,7 +157,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
  #define TIF_SYSCALL_AUDIT     9
  #define TIF_SYSCALL_TRACEPOINT        10
  #define TIF_SECCOMP           11      /* seccomp syscall filtering active */
@@ -2129,7 +2163,7 @@ index df5e13d..97efb82 100644
  #define TIF_USING_IWMMXT      17
  #define TIF_MEMDIE            18      /* is terminating due to OOM killer */
  #define TIF_RESTORE_SIGMASK   20
-@@ -176,10 +180,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
+@@ -170,10 +174,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
  #define _TIF_SYSCALL_TRACEPOINT       (1 << TIF_SYSCALL_TRACEPOINT)
  #define _TIF_SECCOMP          (1 << TIF_SECCOMP)
  #define _TIF_USING_IWMMXT     (1 << TIF_USING_IWMMXT)
@@ -2340,7 +2374,7 @@ index 5af0ed1..cea83883 100644
  #define PSR_ENDIAN_MASK       0x00000200      /* Endianness state mask */
  
 diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
-index 60d3b73..e5a0f22 100644
+index 1f031dd..d9b5e4a 100644
 --- a/arch/arm/kernel/armksyms.c
 +++ b/arch/arm/kernel/armksyms.c
 @@ -53,7 +53,7 @@ EXPORT_SYMBOL(arm_delay_ops);
@@ -2366,7 +2400,7 @@ index 60d3b73..e5a0f22 100644
  EXPORT_SYMBOL(__get_user_1);
  EXPORT_SYMBOL(__get_user_2);
 diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
-index ec3e5cf..b450ee3 100644
+index b3fb8c9..59cfab2 100644
 --- a/arch/arm/kernel/entry-armv.S
 +++ b/arch/arm/kernel/entry-armv.S
 @@ -47,6 +47,87 @@
@@ -2515,10 +2549,10 @@ index ec3e5cf..b450ee3 100644
 +      pax_open_userland
  1:    ldrt    r0, [r4]
 +      pax_close_userland
- #ifdef CONFIG_CPU_ENDIAN_BE8
-       rev     r0, r0                          @ little endian instruction
- #endif
-@@ -451,10 +550,14 @@ __und_usr_thumb:
+  ARM_BE8(rev  r0, r0)                         @ little endian instruction
+       @ r0 = 32-bit ARM instruction which caused the exception
+@@ -450,10 +549,14 @@ __und_usr_thumb:
   */
        .arch   armv6t2
  #endif
@@ -2533,7 +2567,7 @@ index ec3e5cf..b450ee3 100644
        add     r2, r2, #2                      @ r2 is PC + 2, make it PC + 4
        str     r2, [sp, #S_PC]                 @ it's a 2x16bit instr, update
        orr     r0, r0, r5, lsl #16
-@@ -483,7 +586,8 @@ ENDPROC(__und_usr)
+@@ -482,7 +585,8 @@ ENDPROC(__und_usr)
   */
        .pushsection .fixup, "ax"
        .align  2
@@ -2543,7 +2577,7 @@ index ec3e5cf..b450ee3 100644
        .popsection
        .pushsection __ex_table,"a"
        .long   1b, 4b
-@@ -693,7 +797,7 @@ ENTRY(__switch_to)
+@@ -692,7 +796,7 @@ ENTRY(__switch_to)
   THUMB(       str     lr, [ip], #4               )
        ldr     r4, [r2, #TI_TP_VALUE]
        ldr     r5, [r2, #TI_TP_VALUE + 4]
@@ -2552,7 +2586,7 @@ index ec3e5cf..b450ee3 100644
        ldr     r6, [r2, #TI_CPU_DOMAIN]
  #endif
        switch_tls r1, r4, r5, r3, r7
-@@ -702,7 +806,7 @@ ENTRY(__switch_to)
+@@ -701,7 +805,7 @@ ENTRY(__switch_to)
        ldr     r8, =__stack_chk_guard
        ldr     r7, [r7, #TSK_STACK_CANARY]
  #endif
@@ -2562,7 +2596,7 @@ index ec3e5cf..b450ee3 100644
  #endif
        mov     r5, r0
 diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
-index bc6bd96..bd026cb 100644
+index a2dcafd..1048b5a 100644
 --- a/arch/arm/kernel/entry-common.S
 +++ b/arch/arm/kernel/entry-common.S
 @@ -10,18 +10,46 @@
@@ -2615,7 +2649,7 @@ index bc6bd96..bd026cb 100644
        .align  5
  /*
   * This is the fast syscall return path.  We do as little as
-@@ -413,6 +441,12 @@ ENTRY(vector_swi)
+@@ -411,6 +439,12 @@ ENTRY(vector_swi)
   USER(        ldr     scno, [lr, #-4]         )       @ get SWI instruction
  #endif
  
@@ -2729,7 +2763,7 @@ index 918875d..cd5fa27 100644
                flush_icache_range((unsigned long)base + offset, offset +
                                   length);
 diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
-index 476de57..4857a76 100644
+index 32f317e..710ae07 100644
 --- a/arch/arm/kernel/head.S
 +++ b/arch/arm/kernel/head.S
 @@ -52,7 +52,9 @@
@@ -2743,7 +2777,7 @@ index 476de57..4857a76 100644
        .endm
  
  /*
-@@ -432,7 +434,7 @@ __enable_mmu:
+@@ -436,7 +438,7 @@ __enable_mmu:
        mov     r5, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \
                      domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \
                      domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \
@@ -2753,10 +2787,10 @@ index 476de57..4857a76 100644
        mcr     p15, 0, r4, c2, c0, 0           @ load page table pointer
  #endif
 diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c
-index 084dc88..fce4e68 100644
+index 45e4781..8eac93d 100644
 --- a/arch/arm/kernel/module.c
 +++ b/arch/arm/kernel/module.c
-@@ -37,12 +37,39 @@
+@@ -38,12 +38,39 @@
  #endif
  
  #ifdef CONFIG_MMU
@@ -2766,8 +2800,8 @@ index 084dc88..fce4e68 100644
 +      if (!size || PAGE_ALIGN(size) > MODULES_END - MODULES_VADDR)
 +              return NULL;
        return __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END,
--                              GFP_KERNEL, PAGE_KERNEL_EXEC, -1,
-+                              GFP_KERNEL, prot, -1,
+-                              GFP_KERNEL, PAGE_KERNEL_EXEC, NUMA_NO_NODE,
++                              GFP_KERNEL, prot, NUMA_NO_NODE,
                                __builtin_return_address(0));
  }
 +
@@ -2819,7 +2853,7 @@ index 07314af..c46655c 100644
        flush_icache_range((uintptr_t)(addr),
                           (uintptr_t)(addr) + size);
 diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
-index 94f6b05..efd7312 100644
+index 92f7b15..7048500 100644
 --- a/arch/arm/kernel/process.c
 +++ b/arch/arm/kernel/process.c
 @@ -217,6 +217,7 @@ void machine_power_off(void)
@@ -2850,7 +2884,7 @@ index 94f6b05..efd7312 100644
        printk("pc : [<%08lx>]    lr : [<%08lx>]    psr: %08lx\n"
               "sp : %08lx  ip : %08lx  fp : %08lx\n",
                regs->ARM_pc, regs->ARM_lr, regs->ARM_cpsr,
-@@ -422,12 +423,6 @@ unsigned long get_wchan(struct task_struct *p)
+@@ -425,12 +426,6 @@ unsigned long get_wchan(struct task_struct *p)
        return 0;
  }
  
@@ -2863,7 +2897,7 @@ index 94f6b05..efd7312 100644
  #ifdef CONFIG_MMU
  #ifdef CONFIG_KUSER_HELPERS
  /*
-@@ -443,7 +438,7 @@ static struct vm_area_struct gate_vma = {
+@@ -446,7 +441,7 @@ static struct vm_area_struct gate_vma = {
  
  static int __init gate_vma_init(void)
  {
@@ -2872,7 +2906,7 @@ index 94f6b05..efd7312 100644
        return 0;
  }
  arch_initcall(gate_vma_init);
-@@ -469,41 +464,16 @@ int in_gate_area_no_mm(unsigned long addr)
+@@ -472,41 +467,16 @@ int in_gate_area_no_mm(unsigned long addr)
  
  const char *arch_vma_name(struct vm_area_struct *vma)
  {
@@ -2955,10 +2989,10 @@ index 0dd3b79..e018f64 100644
        if (secure_computing(scno) == -1)
                return -1;
 diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
-index 0e1e2b3..c0e821d 100644
+index 987a7f5..d9d6071 100644
 --- a/arch/arm/kernel/setup.c
 +++ b/arch/arm/kernel/setup.c
-@@ -98,21 +98,23 @@ EXPORT_SYMBOL(system_serial_high);
+@@ -100,21 +100,23 @@ EXPORT_SYMBOL(system_serial_high);
  unsigned int elf_hwcap __read_mostly;
  EXPORT_SYMBOL(elf_hwcap);
  
@@ -2987,7 +3021,7 @@ index 0e1e2b3..c0e821d 100644
  EXPORT_SYMBOL(outer_cache);
  #endif
  
-@@ -245,9 +247,13 @@ static int __get_cpu_architecture(void)
+@@ -247,9 +249,13 @@ static int __get_cpu_architecture(void)
                asm("mrc        p15, 0, %0, c0, c1, 4"
                    : "=r" (mmfr0));
                if ((mmfr0 & 0x0000000f) >= 0x00000003 ||
@@ -3003,7 +3037,7 @@ index 0e1e2b3..c0e821d 100644
                         (mmfr0 & 0x000000f0) == 0x00000020)
                        cpu_arch = CPU_ARCH_ARMv6;
                else
-@@ -571,7 +577,7 @@ static void __init setup_processor(void)
+@@ -573,7 +579,7 @@ static void __init setup_processor(void)
        __cpu_architecture = __get_cpu_architecture();
  
  #ifdef MULTI_CPU
@@ -3013,19 +3047,19 @@ index 0e1e2b3..c0e821d 100644
  #ifdef MULTI_TLB
        cpu_tlb = *list->tlb;
 diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
-index ab33042..11248a8 100644
+index 04d6388..5115238 100644
 --- a/arch/arm/kernel/signal.c
 +++ b/arch/arm/kernel/signal.c
-@@ -45,8 +45,6 @@ static const unsigned long sigreturn_codes[7] = {
-       MOV_R7_NR_RT_SIGRETURN, SWI_SYS_RT_SIGRETURN, SWI_THUMB_RT_SIGRETURN,
};
+@@ -23,8 +23,6 @@
extern const unsigned long sigreturn_codes[7];
  
 -static unsigned long signal_return_offset;
 -
  #ifdef CONFIG_CRUNCH
  static int preserve_crunch_context(struct crunch_sigframe __user *frame)
  {
-@@ -411,8 +409,7 @@ setup_return(struct pt_regs *regs, struct ksignal *ksig,
+@@ -395,8 +393,7 @@ setup_return(struct pt_regs *regs, struct ksignal *ksig,
                         * except when the MPU has protected the vectors
                         * page from PL0
                         */
@@ -3035,7 +3069,7 @@ index ab33042..11248a8 100644
                } else
  #endif
                {
-@@ -616,33 +613,3 @@ do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall)
+@@ -600,33 +597,3 @@ do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall)
        } while (thread_flags & _TIF_WORK_MASK);
        return 0;
  }
@@ -3070,10 +3104,10 @@ index ab33042..11248a8 100644
 -      return page;
 -}
 diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
-index 72024ea..ae302dd 100644
+index dc894ab..f929a0d 100644
 --- a/arch/arm/kernel/smp.c
 +++ b/arch/arm/kernel/smp.c
-@@ -70,7 +70,7 @@ enum ipi_msg_type {
+@@ -73,7 +73,7 @@ enum ipi_msg_type {
  
  static DECLARE_COMPLETION(cpu_running);
  
@@ -3083,10 +3117,10 @@ index 72024ea..ae302dd 100644
  void __init smp_set_ops(struct smp_operations *ops)
  {
 diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
-index 8fcda14..4512b9d 100644
+index 4636d56..ce4ec3d 100644
 --- a/arch/arm/kernel/traps.c
 +++ b/arch/arm/kernel/traps.c
-@@ -55,7 +55,7 @@ static void dump_mem(const char *, const char *, unsigned long, unsigned long);
+@@ -62,7 +62,7 @@ static void dump_mem(const char *, const char *, unsigned long, unsigned long);
  void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame)
  {
  #ifdef CONFIG_KALLSYMS
@@ -3095,7 +3129,7 @@ index 8fcda14..4512b9d 100644
  #else
        printk("Function entered at [<%08lx>] from [<%08lx>]\n", where, from);
  #endif
-@@ -257,6 +257,8 @@ static arch_spinlock_t die_lock = __ARCH_SPIN_LOCK_UNLOCKED;
+@@ -264,6 +264,8 @@ static arch_spinlock_t die_lock = __ARCH_SPIN_LOCK_UNLOCKED;
  static int die_owner = -1;
  static unsigned int die_nest_count;
  
@@ -3104,7 +3138,7 @@ index 8fcda14..4512b9d 100644
  static unsigned long oops_begin(void)
  {
        int cpu;
-@@ -299,6 +301,9 @@ static void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
+@@ -306,6 +308,9 @@ static void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
                panic("Fatal exception in interrupt");
        if (panic_on_oops)
                panic("Fatal exception");
@@ -3114,7 +3148,7 @@ index 8fcda14..4512b9d 100644
        if (signr)
                do_exit(signr);
  }
-@@ -628,7 +633,9 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs)
+@@ -642,7 +647,9 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs)
                         * The user helper at 0xffff0fe0 must be used instead.
                         * (see entry-armv.S for details)
                         */
@@ -3124,7 +3158,7 @@ index 8fcda14..4512b9d 100644
                }
                return 0;
  
-@@ -885,7 +892,11 @@ void __init early_trap_init(void *vectors_base)
+@@ -899,7 +906,11 @@ void __init early_trap_init(void *vectors_base)
        kuser_init(vectors_base);
  
        flush_icache_range(vectors, vectors + PAGE_SIZE * 2);
@@ -3208,7 +3242,7 @@ index 7bcee5c..e2f3249 100644
        __data_loc = .;
  #endif
 diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c
-index 9c697db..115237f 100644
+index 2a700e0..745b980 100644
 --- a/arch/arm/kvm/arm.c
 +++ b/arch/arm/kvm/arm.c
 @@ -56,7 +56,7 @@ static unsigned long hyp_default_vectors;
@@ -3220,7 +3254,7 @@ index 9c697db..115237f 100644
  static u8 kvm_next_vmid;
  static DEFINE_SPINLOCK(kvm_vmid_lock);
  
-@@ -396,7 +396,7 @@ void force_vm_exit(const cpumask_t *mask)
+@@ -397,7 +397,7 @@ void force_vm_exit(const cpumask_t *mask)
   */
  static bool need_new_vmid_gen(struct kvm *kvm)
  {
@@ -3229,7 +3263,7 @@ index 9c697db..115237f 100644
  }
  
  /**
-@@ -429,7 +429,7 @@ static void update_vttbr(struct kvm *kvm)
+@@ -430,7 +430,7 @@ static void update_vttbr(struct kvm *kvm)
  
        /* First user of a new VMID generation? */
        if (unlikely(kvm_next_vmid == 0)) {
@@ -3238,7 +3272,7 @@ index 9c697db..115237f 100644
                kvm_next_vmid = 1;
  
                /*
-@@ -446,7 +446,7 @@ static void update_vttbr(struct kvm *kvm)
+@@ -447,7 +447,7 @@ static void update_vttbr(struct kvm *kvm)
                kvm_call_hyp(__kvm_flush_vm_context);
        }
  
@@ -3372,10 +3406,10 @@ index 5306de3..aed6d03 100644
        .const_udelay   = __loop_const_udelay,
        .udelay         = __loop_udelay,
 diff --git a/arch/arm/lib/uaccess_with_memcpy.c b/arch/arm/lib/uaccess_with_memcpy.c
-index 025f742..a9e5b3b 100644
+index 3e58d71..029817c 100644
 --- a/arch/arm/lib/uaccess_with_memcpy.c
 +++ b/arch/arm/lib/uaccess_with_memcpy.c
-@@ -104,7 +104,7 @@ out:
+@@ -136,7 +136,7 @@ out:
  }
  
  unsigned long
@@ -3384,7 +3418,7 @@ index 025f742..a9e5b3b 100644
  {
        /*
         * This test is stubbed out of the main function above to keep
-@@ -155,7 +155,7 @@ out:
+@@ -190,7 +190,7 @@ out:
        return n;
  }
  
@@ -3394,7 +3428,7 @@ index 025f742..a9e5b3b 100644
        /* See rational for this in __copy_to_user() above. */
        if (n < 64)
 diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
-index 1767611..d2e7e24 100644
+index f3407a5..bd4256f 100644
 --- a/arch/arm/mach-kirkwood/common.c
 +++ b/arch/arm/mach-kirkwood/common.c
 @@ -156,7 +156,16 @@ static void clk_gate_fn_disable(struct clk_hw *hw)
@@ -3444,7 +3478,7 @@ index 827d1500..2885dc6 100644
  };
  
 diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
-index 579697a..1d5a3b2 100644
+index d24926e..a7645a6 100644
 --- a/arch/arm/mach-omap2/gpmc.c
 +++ b/arch/arm/mach-omap2/gpmc.c
 @@ -148,7 +148,6 @@ struct omap3_gpmc_regs {
@@ -3513,10 +3547,10 @@ index f991016..145ebeb 100644
        .resume                 = dummy_cpu_resume,
        .scu_prepare            = dummy_scu_prepare,
 diff --git a/arch/arm/mach-omap2/omap-wakeupgen.c b/arch/arm/mach-omap2/omap-wakeupgen.c
-index 813c615..ce467c6 100644
+index 3664562..72f85c6 100644
 --- a/arch/arm/mach-omap2/omap-wakeupgen.c
 +++ b/arch/arm/mach-omap2/omap-wakeupgen.c
-@@ -339,7 +339,7 @@ static int irq_cpu_hotplug_notify(struct notifier_block *self,
+@@ -343,7 +343,7 @@ static int irq_cpu_hotplug_notify(struct notifier_block *self,
        return NOTIFY_OK;
  }
  
@@ -3526,10 +3560,10 @@ index 813c615..ce467c6 100644
  };
  
 diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c
-index 53f0735..5b54eb6 100644
+index e0a398c..a470fa5 100644
 --- a/arch/arm/mach-omap2/omap_device.c
 +++ b/arch/arm/mach-omap2/omap_device.c
-@@ -504,7 +504,7 @@ void omap_device_delete(struct omap_device *od)
+@@ -508,7 +508,7 @@ void omap_device_delete(struct omap_device *od)
  struct platform_device __init *omap_device_build(const char *pdev_name,
                                                 int pdev_id,
                                                 struct omap_hwmod *oh,
@@ -3538,7 +3572,7 @@ index 53f0735..5b54eb6 100644
  {
        struct omap_hwmod *ohs[] = { oh };
  
-@@ -532,7 +532,7 @@ struct platform_device __init *omap_device_build(const char *pdev_name,
+@@ -536,7 +536,7 @@ struct platform_device __init *omap_device_build(const char *pdev_name,
  struct platform_device __init *omap_device_build_ss(const char *pdev_name,
                                                    int pdev_id,
                                                    struct omap_hwmod **ohs,
@@ -3548,10 +3582,10 @@ index 53f0735..5b54eb6 100644
  {
        int ret = -ENOMEM;
 diff --git a/arch/arm/mach-omap2/omap_device.h b/arch/arm/mach-omap2/omap_device.h
-index 17ca1ae..beba869 100644
+index 78c02b3..c94109a 100644
 --- a/arch/arm/mach-omap2/omap_device.h
 +++ b/arch/arm/mach-omap2/omap_device.h
-@@ -71,12 +71,12 @@ int omap_device_idle(struct platform_device *pdev);
+@@ -72,12 +72,12 @@ int omap_device_idle(struct platform_device *pdev);
  /* Core code interface */
  
  struct platform_device *omap_device_build(const char *pdev_name, int pdev_id,
@@ -3567,7 +3601,7 @@ index 17ca1ae..beba869 100644
  struct omap_device *omap_device_alloc(struct platform_device *pdev,
                                      struct omap_hwmod **ohs, int oh_cnt);
 diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
-index 3d5db8c..ddfa144 100644
+index 8a1b5e0..5f30074 100644
 --- a/arch/arm/mach-omap2/omap_hwmod.c
 +++ b/arch/arm/mach-omap2/omap_hwmod.c
 @@ -194,10 +194,10 @@ struct omap_hwmod_soc_ops {
@@ -3583,6 +3617,29 @@ index 3d5db8c..ddfa144 100644
  
  /* omap_hwmod_list contains all registered struct omap_hwmods */
  static LIST_HEAD(omap_hwmod_list);
+diff --git a/arch/arm/mach-omap2/powerdomains43xx_data.c b/arch/arm/mach-omap2/powerdomains43xx_data.c
+index 95fee54..cfa9cf1 100644
+--- a/arch/arm/mach-omap2/powerdomains43xx_data.c
++++ b/arch/arm/mach-omap2/powerdomains43xx_data.c
+@@ -10,6 +10,7 @@
+ #include <linux/kernel.h>
+ #include <linux/init.h>
++#include <asm/pgtable.h>
+ #include "powerdomain.h"
+@@ -129,7 +130,9 @@ static int am43xx_check_vcvp(void)
+ void __init am43xx_powerdomains_init(void)
+ {
+-      omap4_pwrdm_operations.pwrdm_has_voltdm = am43xx_check_vcvp;
++      pax_open_kernel();
++      *(void **)&omap4_pwrdm_operations.pwrdm_has_voltdm = am43xx_check_vcvp;
++      pax_close_kernel();
+       pwrdm_register_platform_funcs(&omap4_pwrdm_operations);
+       pwrdm_register_pwrdms(powerdomains_am43xx);
+       pwrdm_complete_init();
 diff --git a/arch/arm/mach-omap2/wd_timer.c b/arch/arm/mach-omap2/wd_timer.c
 index d15c7bb..b2d1f0c 100644
 --- a/arch/arm/mach-omap2/wd_timer.c
@@ -3621,10 +3678,10 @@ index b82dcae..44ee5b6 100644
        cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
  
 diff --git a/arch/arm/mach-ux500/setup.h b/arch/arm/mach-ux500/setup.h
-index 656324a..0beba28 100644
+index bdb3564..cebb96f 100644
 --- a/arch/arm/mach-ux500/setup.h
 +++ b/arch/arm/mach-ux500/setup.h
-@@ -40,13 +40,6 @@ extern void ux500_timer_init(void);
+@@ -39,13 +39,6 @@ extern void ux500_timer_init(void);
        .type           = MT_DEVICE,            \
  }
  
@@ -3639,7 +3696,7 @@ index 656324a..0beba28 100644
  extern void ux500_cpu_die(unsigned int cpu);
  
 diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
-index cd2c88e..4dd9b67 100644
+index 1f8fed9..14d7823 100644
 --- a/arch/arm/mm/Kconfig
 +++ b/arch/arm/mm/Kconfig
 @@ -446,7 +446,7 @@ config CPU_32v5
@@ -3677,10 +3734,10 @@ index cd2c88e..4dd9b67 100644
  
          If all of the binaries and libraries which run on your platform
 diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c
-index 6f4585b..7b6f52b 100644
+index 9240364..a2b8cf3 100644
 --- a/arch/arm/mm/alignment.c
 +++ b/arch/arm/mm/alignment.c
-@@ -211,10 +211,12 @@ union offset_union {
+@@ -212,10 +212,12 @@ union offset_union {
  #define __get16_unaligned_check(ins,val,addr)                 \
        do {                                                    \
                unsigned int err = 0, v, a = addr;              \
@@ -3693,7 +3750,7 @@ index 6f4585b..7b6f52b 100644
                if (err)                                        \
                        goto fault;                             \
        } while (0)
-@@ -228,6 +230,7 @@ union offset_union {
+@@ -229,6 +231,7 @@ union offset_union {
  #define __get32_unaligned_check(ins,val,addr)                 \
        do {                                                    \
                unsigned int err = 0, v, a = addr;              \
@@ -3701,7 +3758,7 @@ index 6f4585b..7b6f52b 100644
                __get8_unaligned_check(ins,v,a,err);            \
                val =  v << ((BE) ? 24 :  0);                   \
                __get8_unaligned_check(ins,v,a,err);            \
-@@ -236,6 +239,7 @@ union offset_union {
+@@ -237,6 +240,7 @@ union offset_union {
                val |= v << ((BE) ?  8 : 16);                   \
                __get8_unaligned_check(ins,v,a,err);            \
                val |= v << ((BE) ?  0 : 24);                   \
@@ -3709,7 +3766,7 @@ index 6f4585b..7b6f52b 100644
                if (err)                                        \
                        goto fault;                             \
        } while (0)
-@@ -249,6 +253,7 @@ union offset_union {
+@@ -250,6 +254,7 @@ union offset_union {
  #define __put16_unaligned_check(ins,val,addr)                 \
        do {                                                    \
                unsigned int err = 0, v = val, a = addr;        \
@@ -3717,7 +3774,7 @@ index 6f4585b..7b6f52b 100644
                __asm__( FIRST_BYTE_16                          \
         ARM(   "1:     "ins"   %1, [%2], #1\n" )               \
         THUMB( "1:     "ins"   %1, [%2]\n"     )               \
-@@ -268,6 +273,7 @@ union offset_union {
+@@ -269,6 +274,7 @@ union offset_union {
                "       .popsection\n"                          \
                : "=r" (err), "=&r" (v), "=&r" (a)              \
                : "0" (err), "1" (v), "2" (a));                 \
@@ -3725,7 +3782,7 @@ index 6f4585b..7b6f52b 100644
                if (err)                                        \
                        goto fault;                             \
        } while (0)
-@@ -281,6 +287,7 @@ union offset_union {
+@@ -282,6 +288,7 @@ union offset_union {
  #define __put32_unaligned_check(ins,val,addr)                 \
        do {                                                    \
                unsigned int err = 0, v = val, a = addr;        \
@@ -3733,7 +3790,7 @@ index 6f4585b..7b6f52b 100644
                __asm__( FIRST_BYTE_32                          \
         ARM(   "1:     "ins"   %1, [%2], #1\n" )               \
         THUMB( "1:     "ins"   %1, [%2]\n"     )               \
-@@ -310,6 +317,7 @@ union offset_union {
+@@ -311,6 +318,7 @@ union offset_union {
                "       .popsection\n"                          \
                : "=r" (err), "=&r" (v), "=&r" (a)              \
                : "0" (err), "1" (v), "2" (a));                 \
@@ -4047,7 +4104,7 @@ index cf08bdf..772656c 100644
  unsigned long search_exception_table(unsigned long addr);
  
 diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
-index 18ec4c5..479bb6a 100644
+index 3e8f106..a0a1fe4 100644
 --- a/arch/arm/mm/init.c
 +++ b/arch/arm/mm/init.c
 @@ -30,6 +30,8 @@
@@ -4059,7 +4116,7 @@ index 18ec4c5..479bb6a 100644
  
  #include <asm/mach/arch.h>
  #include <asm/mach/map.h>
-@@ -684,7 +686,46 @@ void free_initmem(void)
+@@ -681,7 +683,46 @@ void free_initmem(void)
  {
  #ifdef CONFIG_HAVE_TCM
        extern char __tcm_start, __tcm_end;
@@ -4123,7 +4180,7 @@ index f123d6e..04bf569 100644
        return __arm_ioremap_caller(phys_addr, size, mtype,
                        __builtin_return_address(0));
 diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c
-index 0c63562..7128a90 100644
+index 5e85ed3..b10a7ed 100644
 --- a/arch/arm/mm/mmap.c
 +++ b/arch/arm/mm/mmap.c
 @@ -59,6 +59,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
@@ -4234,10 +4291,10 @@ index 0c63562..7128a90 100644
        }
  }
 diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
-index b1d17ee..7a6f4d3 100644
+index 580ef2d..2da06ca 100644
 --- a/arch/arm/mm/mmu.c
 +++ b/arch/arm/mm/mmu.c
-@@ -36,6 +36,22 @@
+@@ -38,6 +38,22 @@
  #include "mm.h"
  #include "tcm.h"
  
@@ -4260,7 +4317,7 @@ index b1d17ee..7a6f4d3 100644
  /*
   * empty_zero_page is a special page that is used for
   * zero-initialized data and COW.
-@@ -228,10 +244,18 @@ __setup("noalign", noalign_setup);
+@@ -230,10 +246,18 @@ __setup("noalign", noalign_setup);
  
  #endif /* ifdef CONFIG_CPU_CP15 / else */
  
@@ -4281,7 +4338,7 @@ index b1d17ee..7a6f4d3 100644
        [MT_DEVICE] = {           /* Strongly ordered / ARMv6 shared device */
                .prot_pte       = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED |
                                  L_PTE_SHARED,
-@@ -260,16 +284,16 @@ static struct mem_type mem_types[] = {
+@@ -262,16 +286,16 @@ static struct mem_type mem_types[] = {
        [MT_UNCACHED] = {
                .prot_pte       = PROT_PTE_DEVICE,
                .prot_l1        = PMD_TYPE_TABLE,
@@ -4301,7 +4358,7 @@ index b1d17ee..7a6f4d3 100644
                .domain    = DOMAIN_KERNEL,
        },
  #endif
-@@ -277,36 +301,54 @@ static struct mem_type mem_types[] = {
+@@ -279,36 +303,54 @@ static struct mem_type mem_types[] = {
                .prot_pte  = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
                                L_PTE_RDONLY,
                .prot_l1   = PMD_TYPE_TABLE,
@@ -4364,7 +4421,7 @@ index b1d17ee..7a6f4d3 100644
                .domain    = DOMAIN_KERNEL,
        },
        [MT_MEMORY_ITCM] = {
-@@ -316,10 +358,10 @@ static struct mem_type mem_types[] = {
+@@ -318,10 +360,10 @@ static struct mem_type mem_types[] = {
        },
        [MT_MEMORY_SO] = {
                .prot_pte  = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
@@ -4377,7 +4434,7 @@ index b1d17ee..7a6f4d3 100644
                .domain    = DOMAIN_KERNEL,
        },
        [MT_MEMORY_DMA_READY] = {
-@@ -405,9 +447,35 @@ static void __init build_mem_type_table(void)
+@@ -407,9 +449,35 @@ static void __init build_mem_type_table(void)
                         * to prevent speculative instruction fetches.
                         */
                        mem_types[MT_DEVICE].prot_sect |= PMD_SECT_XN;
@@ -4413,7 +4470,7 @@ index b1d17ee..7a6f4d3 100644
                }
                if (cpu_arch >= CPU_ARCH_ARMv7 && (cr & CR_TRE)) {
                        /*
-@@ -468,6 +536,9 @@ static void __init build_mem_type_table(void)
+@@ -470,6 +538,9 @@ static void __init build_mem_type_table(void)
                 * from SVC mode and no access from userspace.
                 */
                mem_types[MT_ROM].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
@@ -4423,7 +4480,7 @@ index b1d17ee..7a6f4d3 100644
                mem_types[MT_MINICLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
                mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
  #endif
-@@ -485,11 +556,17 @@ static void __init build_mem_type_table(void)
+@@ -487,11 +558,17 @@ static void __init build_mem_type_table(void)
                        mem_types[MT_DEVICE_WC].prot_pte |= L_PTE_SHARED;
                        mem_types[MT_DEVICE_CACHED].prot_sect |= PMD_SECT_S;
                        mem_types[MT_DEVICE_CACHED].prot_pte |= L_PTE_SHARED;
@@ -4445,7 +4502,7 @@ index b1d17ee..7a6f4d3 100644
                }
        }
  
-@@ -500,15 +577,20 @@ static void __init build_mem_type_table(void)
+@@ -502,15 +579,20 @@ static void __init build_mem_type_table(void)
        if (cpu_arch >= CPU_ARCH_ARMv6) {
                if (cpu_arch >= CPU_ARCH_ARMv7 && (cr & CR_TRE)) {
                        /* Non-cacheable Normal is XCB = 001 */
@@ -4469,7 +4526,7 @@ index b1d17ee..7a6f4d3 100644
        }
  
  #ifdef CONFIG_ARM_LPAE
-@@ -524,6 +606,8 @@ static void __init build_mem_type_table(void)
+@@ -526,6 +608,8 @@ static void __init build_mem_type_table(void)
        vecs_pgprot |= PTE_EXT_AF;
  #endif
  
@@ -4478,7 +4535,7 @@ index b1d17ee..7a6f4d3 100644
        for (i = 0; i < 16; i++) {
                pteval_t v = pgprot_val(protection_map[i]);
                protection_map[i] = __pgprot(v | user_pgprot);
-@@ -541,10 +625,15 @@ static void __init build_mem_type_table(void)
+@@ -543,10 +627,15 @@ static void __init build_mem_type_table(void)
  
        mem_types[MT_LOW_VECTORS].prot_l1 |= ecc_mask;
        mem_types[MT_HIGH_VECTORS].prot_l1 |= ecc_mask;
@@ -4497,7 +4554,7 @@ index b1d17ee..7a6f4d3 100644
        mem_types[MT_ROM].prot_sect |= cp->pmd;
  
        switch (cp->pmd) {
-@@ -1186,18 +1275,15 @@ void __init arm_mm_memblock_reserve(void)
+@@ -1188,18 +1277,15 @@ void __init arm_mm_memblock_reserve(void)
   * called function.  This means you can't use any function or debugging
   * method which may touch any device, otherwise the kernel _will_ crash.
   */
@@ -4520,7 +4577,7 @@ index b1d17ee..7a6f4d3 100644
  
        for (addr = VMALLOC_START; addr; addr += PMD_SIZE)
                pmd_clear(pmd_off_k(addr));
-@@ -1237,7 +1323,7 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
+@@ -1239,7 +1325,7 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
         * location (0xffff0000).  If we aren't using high-vectors, also
         * create a mapping at the low-vectors virtual address.
         */
@@ -4529,7 +4586,7 @@ index b1d17ee..7a6f4d3 100644
        map.virtual = 0xffff0000;
        map.length = PAGE_SIZE;
  #ifdef CONFIG_KUSER_HELPERS
-@@ -1309,8 +1395,39 @@ static void __init map_lowmem(void)
+@@ -1311,8 +1397,39 @@ static void __init map_lowmem(void)
                map.pfn = __phys_to_pfn(start);
                map.virtual = __phys_to_virt(start);
                map.length = end - start;
@@ -4846,7 +4903,7 @@ index f4ca594..adc72fd6 100644
  #define __cacheline_aligned   __aligned(L1_CACHE_BYTES)
  #define ____cacheline_aligned __aligned(L1_CACHE_BYTES)
 diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
-index 7740ab1..17fa8c5 100644
+index 4e4119b..dd7de0a 100644
 --- a/arch/ia64/Kconfig
 +++ b/arch/ia64/Kconfig
 @@ -554,6 +554,7 @@ source "drivers/sn/Kconfig"
@@ -4918,7 +4975,7 @@ index 5a83c5c..4d7f553 100644
  
  /* IA-64 relocations: */
 diff --git a/arch/ia64/include/asm/pgalloc.h b/arch/ia64/include/asm/pgalloc.h
-index 96a8d92..617a1cf 100644
+index 5767cdf..7462574 100644
 --- a/arch/ia64/include/asm/pgalloc.h
 +++ b/arch/ia64/include/asm/pgalloc.h
 @@ -39,6 +39,12 @@ pgd_populate(struct mm_struct *mm, pgd_t * pgd_entry, pud_t * pud)
@@ -5277,7 +5334,7 @@ index 68232db..6ca80af 100644
  }
  
 diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c
-index b6f7f43..c04320d 100644
+index 88504ab..cbb6c9f 100644
 --- a/arch/ia64/mm/init.c
 +++ b/arch/ia64/mm/init.c
 @@ -120,6 +120,19 @@ ia64_init_addr_space (void)
@@ -5388,10 +5445,10 @@ index 4efe96a..60e8699 100644
  #define SMP_CACHE_BYTES       L1_CACHE_BYTES
  
 diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
-index f75ab4a..adc6968 100644
+index 650de39..6982b02 100644
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -2283,6 +2283,7 @@ source "kernel/Kconfig.preempt"
+@@ -2268,6 +2268,7 @@ source "kernel/Kconfig.preempt"
  
  config KEXEC
        bool "Kexec system call"
@@ -5400,7 +5457,7 @@ index f75ab4a..adc6968 100644
          kexec is a system call that implements the ability to shutdown your
          current kernel, and to start another kernel.  It is like a reboot
 diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h
-index 08b6079..8b554d2 100644
+index 7eed2f2..c4e385d 100644
 --- a/arch/mips/include/asm/atomic.h
 +++ b/arch/mips/include/asm/atomic.h
 @@ -21,15 +21,39 @@
@@ -6324,10 +6381,10 @@ index b4db69f..8f3b093 100644
  #define SMP_CACHE_SHIFT               L1_CACHE_SHIFT
  #define SMP_CACHE_BYTES               L1_CACHE_BYTES
 diff --git a/arch/mips/include/asm/elf.h b/arch/mips/include/asm/elf.h
-index cf3ae24..238d22f 100644
+index a66359e..d3d474a 100644
 --- a/arch/mips/include/asm/elf.h
 +++ b/arch/mips/include/asm/elf.h
-@@ -372,13 +372,16 @@ extern const char *__elf_platform;
+@@ -373,13 +373,16 @@ extern const char *__elf_platform;
  #define ELF_ET_DYN_BASE               (TASK_SIZE / 3 * 2)
  #endif
  
@@ -6465,7 +6522,7 @@ index f6be474..12ad554 100644
       typedef struct { unsigned long long pte; } pte_t;
       #define pte_val(x) ((x).pte)
 diff --git a/arch/mips/include/asm/pgalloc.h b/arch/mips/include/asm/pgalloc.h
-index 881d18b..cea38bc 100644
+index b336037..5b874cc 100644
 --- a/arch/mips/include/asm/pgalloc.h
 +++ b/arch/mips/include/asm/pgalloc.h
 @@ -37,6 +37,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
@@ -6493,43 +6550,44 @@ index 25da651..ae2a259 100644
  
  #endif /* __ASM_SMTC_PROC_H */
 diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h
-index 61215a3..213ee0e 100644
+index 4f58ef6..5e7081b 100644
 --- a/arch/mips/include/asm/thread_info.h
 +++ b/arch/mips/include/asm/thread_info.h
-@@ -116,6 +116,8 @@ static inline struct thread_info *current_thread_info(void)
- #define TIF_32BIT_ADDR                23      /* 32-bit address space (o32/n32) */
+@@ -115,6 +115,8 @@ static inline struct thread_info *current_thread_info(void)
  #define TIF_FPUBOUND          24      /* thread bound to FPU-full CPU set */
  #define TIF_LOAD_WATCH                25      /* If set, load watch registers */
+ #define TIF_SYSCALL_TRACEPOINT        26      /* syscall tracepoint instrumentation */
 +/* li takes a 32bit immediate */
 +#define TIF_GRSEC_SETXID      29      /* update credentials on syscall entry/exit */
  #define TIF_SYSCALL_TRACE     31      /* syscall trace active */
  
  #define _TIF_SYSCALL_TRACE    (1<<TIF_SYSCALL_TRACE)
-@@ -132,20 +134,18 @@ static inline struct thread_info *current_thread_info(void)
- #define _TIF_32BIT_ADDR               (1<<TIF_32BIT_ADDR)
+@@ -132,13 +134,14 @@ static inline struct thread_info *current_thread_info(void)
  #define _TIF_FPUBOUND         (1<<TIF_FPUBOUND)
  #define _TIF_LOAD_WATCH               (1<<TIF_LOAD_WATCH)
+ #define _TIF_SYSCALL_TRACEPOINT       (1<<TIF_SYSCALL_TRACEPOINT)
 +#define _TIF_GRSEC_SETXID     (1<<TIF_GRSEC_SETXID)
  
--#define _TIF_WORK_SYSCALL_ENTRY       (_TIF_NOHZ | _TIF_SYSCALL_TRACE |       \
--                               _TIF_SYSCALL_AUDIT)
-+#define _TIF_WORK_SYSCALL_ENTRY       (_TIF_NOHZ | _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_GRSEC_SETXID)
+ #define _TIF_WORK_SYSCALL_ENTRY       (_TIF_NOHZ | _TIF_SYSCALL_TRACE |       \
+-                               _TIF_SYSCALL_AUDIT | _TIF_SYSCALL_TRACEPOINT)
++                               _TIF_SYSCALL_AUDIT | _TIF_SYSCALL_TRACEPOINT | _TIF_GRSEC_SETXID)
  
  /* work to do in syscall_trace_leave() */
--#define _TIF_WORK_SYSCALL_EXIT        (_TIF_NOHZ | _TIF_SYSCALL_TRACE |       \
--                               _TIF_SYSCALL_AUDIT)
-+#define _TIF_WORK_SYSCALL_EXIT        (_TIF_NOHZ | _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_GRSEC_SETXID)
+ #define _TIF_WORK_SYSCALL_EXIT        (_TIF_NOHZ | _TIF_SYSCALL_TRACE |       \
+-                               _TIF_SYSCALL_AUDIT | _TIF_SYSCALL_TRACEPOINT)
++                               _TIF_SYSCALL_AUDIT | _TIF_SYSCALL_TRACEPOINT | _TIF_GRSEC_SETXID)
  
  /* work to do on interrupt/exception return */
  #define _TIF_WORK_MASK                \
-       (_TIF_SIGPENDING | _TIF_NEED_RESCHED | _TIF_NOTIFY_RESUME)
+@@ -146,7 +149,7 @@ static inline struct thread_info *current_thread_info(void)
  /* work to do on any return to u-space */
--#define _TIF_ALLWORK_MASK     (_TIF_NOHZ | _TIF_WORK_MASK |           \
--                               _TIF_WORK_SYSCALL_EXIT)
-+#define _TIF_ALLWORK_MASK     (_TIF_NOHZ | _TIF_WORK_MASK | _TIF_WORK_SYSCALL_EXIT | _TIF_GRSEC_SETXID)
- #endif /* __KERNEL__ */
+ #define _TIF_ALLWORK_MASK     (_TIF_NOHZ | _TIF_WORK_MASK |           \
+                                _TIF_WORK_SYSCALL_EXIT |               \
+-                               _TIF_SYSCALL_TRACEPOINT)
++                               _TIF_SYSCALL_TRACEPOINT | _TIF_GRSEC_SETXID)
  
+ /*
+  * We stash processor id into a COP0 register to retrieve it fast
 diff --git a/arch/mips/kernel/binfmt_elfn32.c b/arch/mips/kernel/binfmt_elfn32.c
 index 1188e00..41cf144 100644
 --- a/arch/mips/kernel/binfmt_elfn32.c
@@ -6612,11 +6670,11 @@ index ddc7610..8c58f17 100644
 -      return sp & ALMASK;
 -}
 diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c
-index 8ae1ebe..1bcbf47 100644
+index b52e1d2..1a3ca09 100644
 --- a/arch/mips/kernel/ptrace.c
 +++ b/arch/mips/kernel/ptrace.c
-@@ -529,6 +529,10 @@ static inline int audit_arch(void)
-       return arch;
+@@ -652,6 +652,10 @@ long arch_ptrace(struct task_struct *child, long request,
+       return ret;
  }
  
 +#ifdef CONFIG_GRKERNSEC_SETXID
@@ -6626,17 +6684,17 @@ index 8ae1ebe..1bcbf47 100644
  /*
   * Notification of system call entry/exit
   * - triggered by current->work.syscall_trace
-@@ -540,6 +544,11 @@ asmlinkage void syscall_trace_enter(struct pt_regs *regs)
-       /* do the secure computing check first */
-       secure_computing_strict(regs->regs[2]);
+@@ -668,6 +672,11 @@ asmlinkage void syscall_trace_enter(struct pt_regs *regs)
+           tracehook_report_syscall_entry(regs))
+               ret = -1;
  
 +#ifdef CONFIG_GRKERNSEC_SETXID
 +      if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
 +              gr_delayed_cred_worker();
 +#endif
 +
-       if (!(current->ptrace & PT_PTRACED))
-               goto out;
+       if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
+               trace_sys_enter(regs, regs->regs[2]);
  
 diff --git a/arch/mips/kernel/smtc-proc.c b/arch/mips/kernel/smtc-proc.c
 index c10aa84..9ec2e60 100644
@@ -6752,10 +6810,10 @@ index 84536bf..79caa4d 100644
        }
        /* Arrange for an interrupt in a short while */
 diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
-index 524841f..3eef41e 100644
+index f9c8746..78b64e3 100644
 --- a/arch/mips/kernel/traps.c
 +++ b/arch/mips/kernel/traps.c
-@@ -684,7 +684,18 @@ asmlinkage void do_ov(struct pt_regs *regs)
+@@ -690,7 +690,18 @@ asmlinkage void do_ov(struct pt_regs *regs)
        siginfo_t info;
  
        prev_state = exception_enter();
@@ -7076,7 +7134,7 @@ index ad2b503..bdf1651 100644
     instruction set this CPU supports.  This could be done in user space,
     but it's not easy, and we've already done it here.  */
 diff --git a/arch/parisc/include/asm/pgalloc.h b/arch/parisc/include/asm/pgalloc.h
-index fc987a1..6e068ef 100644
+index f213f5b..0af3e8e 100644
 --- a/arch/parisc/include/asm/pgalloc.h
 +++ b/arch/parisc/include/asm/pgalloc.h
 @@ -61,6 +61,11 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
@@ -7122,10 +7180,10 @@ index 34899b5..02dd060 100644
  #define PAGE_KERNEL_EXEC      __pgprot(_PAGE_KERNEL_EXEC)
  #define PAGE_KERNEL_RWX       __pgprot(_PAGE_KERNEL_RWX)
 diff --git a/arch/parisc/include/asm/uaccess.h b/arch/parisc/include/asm/uaccess.h
-index e0a8235..ce2f1e1 100644
+index 4006964..fcb3cc2 100644
 --- a/arch/parisc/include/asm/uaccess.h
 +++ b/arch/parisc/include/asm/uaccess.h
-@@ -245,10 +245,10 @@ static inline unsigned long __must_check copy_from_user(void *to,
+@@ -246,10 +246,10 @@ static inline unsigned long __must_check copy_from_user(void *to,
                                            const void __user *from,
                                            unsigned long n)
  {
@@ -7139,7 +7197,7 @@ index e0a8235..ce2f1e1 100644
          else
                  copy_from_user_overflow();
 diff --git a/arch/parisc/kernel/module.c b/arch/parisc/kernel/module.c
-index 2a625fb..9908930 100644
+index 50dfafc..b9fc230 100644
 --- a/arch/parisc/kernel/module.c
 +++ b/arch/parisc/kernel/module.c
 @@ -98,16 +98,38 @@
@@ -7242,7 +7300,7 @@ index 2a625fb..9908930 100644
        DEBUGP("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n",
               me->arch.unwind_section, table, end, gp);
 diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c
-index 5dfd248..64914ac 100644
+index 0d3a9d4..20a99b0 100644
 --- a/arch/parisc/kernel/sys_parisc.c
 +++ b/arch/parisc/kernel/sys_parisc.c
 @@ -33,9 +33,11 @@
@@ -7250,11 +7308,11 @@ index 5dfd248..64914ac 100644
  #include <linux/personality.h>
  
 -static unsigned long get_unshared_area(unsigned long addr, unsigned long len)
-+static unsigned long get_unshared_area(struct file *filp, unsigned long addr, unsigned long len,
++static unsigned long get_unshared_area(unsigned long addr, unsigned long len,
 +                                      unsigned long flags)
  {
        struct vm_unmapped_area_info info;
-+      unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
++      unsigned long offset = gr_rand_threadstack_offset(current->mm, NULL, flags);
  
        info.flags = 0;
        info.length = len;
@@ -7266,29 +7324,27 @@ index 5dfd248..64914ac 100644
        return vm_unmapped_area(&info);
  }
  
-@@ -61,10 +64,11 @@ static int get_offset(struct address_space *mapping)
-       return (unsigned long) mapping >> 8;
+@@ -69,9 +72,10 @@ static unsigned long shared_align_offset(struct file *filp, unsigned long pgoff)
  }
  
--static unsigned long get_shared_area(struct address_space *mapping,
--              unsigned long addr, unsigned long len, unsigned long pgoff)
-+static unsigned long get_shared_area(struct file *filp, struct address_space *mapping,
-+              unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags)
+ static unsigned long get_shared_area(struct file *filp, unsigned long addr,
+-              unsigned long len, unsigned long pgoff)
++              unsigned long len, unsigned long pgoff, unsigned long flags)
  {
        struct vm_unmapped_area_info info;
 +      unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
  
        info.flags = 0;
        info.length = len;
-@@ -72,6 +76,7 @@ static unsigned long get_shared_area(struct address_space *mapping,
+@@ -79,6 +83,7 @@ static unsigned long get_shared_area(struct file *filp, unsigned long addr,
        info.high_limit = TASK_SIZE;
        info.align_mask = PAGE_MASK & (SHMLBA - 1);
-       info.align_offset = (get_offset(mapping) + pgoff) << PAGE_SHIFT;
+       info.align_offset = shared_align_offset(filp, pgoff);
 +      info.threadstack_offset = offset;
        return vm_unmapped_area(&info);
  }
  
-@@ -86,15 +91,22 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
+@@ -93,13 +98,20 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
                        return -EINVAL;
                return addr;
        }
@@ -7303,16 +7359,13 @@ index 5dfd248..64914ac 100644
 +
 +      }
 +
-       if (filp) {
--              addr = get_shared_area(filp->f_mapping, addr, len, pgoff);
-+              addr = get_shared_area(filp, filp->f_mapping, addr, len, pgoff, flags);
-       } else if(flags & MAP_SHARED) {
--              addr = get_shared_area(NULL, addr, len, pgoff);
-+              addr = get_shared_area(filp, NULL, addr, len, pgoff, flags);
-       } else {
+       if (filp || (flags & MAP_SHARED))
+-              addr = get_shared_area(filp, addr, len, pgoff);
++              addr = get_shared_area(filp, addr, len, pgoff, flags);
+       else
 -              addr = get_unshared_area(addr, len);
-+              addr = get_unshared_area(filp, addr, len, flags);
-       }
++              addr = get_unshared_area(addr, len, flags);
        return addr;
  }
 diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
@@ -7331,7 +7384,7 @@ index 1cd1d0c..44ec918 100644
                                fault_space = regs->iasq[0];
  
 diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c
-index 0293588..3b229aa 100644
+index 9d08c71..e2b4d20 100644
 --- a/arch/parisc/mm/fault.c
 +++ b/arch/parisc/mm/fault.c
 @@ -15,6 +15,7 @@
@@ -7468,7 +7521,7 @@ index 0293588..3b229aa 100644
  int fixup_exception(struct pt_regs *regs)
  {
        const struct exception_table_entry *fix;
-@@ -204,8 +315,33 @@ retry:
+@@ -210,8 +321,33 @@ retry:
  
  good_area:
  
@@ -7504,10 +7557,10 @@ index 0293588..3b229aa 100644
        /*
         * If for any reason at all we couldn't handle the fault, make
 diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
-index 38f3b7e..7e485c0 100644
+index b44b52c..4cd253c 100644
 --- a/arch/powerpc/Kconfig
 +++ b/arch/powerpc/Kconfig
-@@ -378,6 +378,7 @@ config ARCH_ENABLE_MEMORY_HOTREMOVE
+@@ -382,6 +382,7 @@ config ARCH_ENABLE_MEMORY_HOTREMOVE
  config KEXEC
        bool "kexec system call"
        depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP))
@@ -7558,7 +7611,7 @@ index 9e495c9..b6878e5 100644
  #define       SMP_CACHE_BYTES         L1_CACHE_BYTES
  
 diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h
-index cc0655a..13eac2e 100644
+index 935b5e7..7001d2d 100644
 --- a/arch/powerpc/include/asm/elf.h
 +++ b/arch/powerpc/include/asm/elf.h
 @@ -28,8 +28,19 @@
@@ -7581,9 +7634,9 @@ index cc0655a..13eac2e 100644
 +#endif
 +#endif
  
- /*
-  * Our registers are always unsigned longs, whether we're a 32 bit
-@@ -123,10 +134,6 @@ extern int arch_setup_additional_pages(struct linux_binprm *bprm,
+ #define ELF_CORE_EFLAGS (is_elf2_task() ? 2 : 0)
+@@ -127,10 +138,6 @@ extern int arch_setup_additional_pages(struct linux_binprm *bprm,
        (0x7ff >> (PAGE_SHIFT - 12)) : \
        (0x3ffff >> (PAGE_SHIFT - 12)))
  
@@ -7633,7 +7686,7 @@ index 8565c25..2865190 100644
        return (vm_flags & VM_SAO) ? __pgprot(_PAGE_SAO) : __pgprot(0);
  }
 diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h
-index b9f4262..dcf04f7 100644
+index 32e4e21..62afb12 100644
 --- a/arch/powerpc/include/asm/page.h
 +++ b/arch/powerpc/include/asm/page.h
 @@ -230,8 +230,9 @@ extern long long virt_phys_offset;
@@ -7684,10 +7737,10 @@ index 88693ce..ac6f9ab 100644
  #include <asm-generic/getorder.h>
  
 diff --git a/arch/powerpc/include/asm/pgalloc-64.h b/arch/powerpc/include/asm/pgalloc-64.h
-index f65e27b..23ffb5b 100644
+index 4b0be20..c15a27d 100644
 --- a/arch/powerpc/include/asm/pgalloc-64.h
 +++ b/arch/powerpc/include/asm/pgalloc-64.h
-@@ -53,6 +53,7 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
+@@ -54,6 +54,7 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
  #ifndef CONFIG_PPC_64K_PAGES
  
  #define pgd_populate(MM, PGD, PUD)    pgd_set(PGD, PUD)
@@ -7695,7 +7748,7 @@ index f65e27b..23ffb5b 100644
  
  static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
  {
-@@ -70,6 +71,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
+@@ -71,6 +72,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
        pud_set(pud, (unsigned long)pmd);
  }
  
@@ -7707,7 +7760,7 @@ index f65e27b..23ffb5b 100644
  #define pmd_populate(mm, pmd, pte_page) \
        pmd_populate_kernel(mm, pmd, page_address(pte_page))
  #define pmd_populate_kernel(mm, pmd, pte) pmd_set(pmd, (unsigned long)(pte))
-@@ -171,6 +177,7 @@ extern void __tlb_remove_table(void *_table);
+@@ -173,6 +179,7 @@ extern void __tlb_remove_table(void *_table);
  #endif
  
  #define pud_populate(mm, pud, pmd)    pud_set(pud, (unsigned long)pmd)
@@ -7740,10 +7793,10 @@ index 4aad413..85d86bf 100644
  #define _PAGE_NO_CACHE        0x020   /* I: cache inhibit */
  #define _PAGE_WRITETHRU       0x040   /* W: cache write-through */
 diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
-index 10d1ef0..8f83abc 100644
+index fa8388e..f985549 100644
 --- a/arch/powerpc/include/asm/reg.h
 +++ b/arch/powerpc/include/asm/reg.h
-@@ -234,6 +234,7 @@
+@@ -239,6 +239,7 @@
  #define SPRN_DBCR     0x136   /* e300 Data Breakpoint Control Reg */
  #define SPRN_DSISR    0x012   /* Data Storage Interrupt Status Register */
  #define   DSISR_NOHPTE                0x40000000      /* no translation found */
@@ -7752,10 +7805,10 @@ index 10d1ef0..8f83abc 100644
  #define   DSISR_ISSTORE               0x02000000      /* access was a store */
  #define   DSISR_DABRMATCH     0x00400000      /* hit data breakpoint */
 diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h
-index 98da78e..dc68271 100644
+index 084e080..9415a3d 100644
 --- a/arch/powerpc/include/asm/smp.h
 +++ b/arch/powerpc/include/asm/smp.h
-@@ -50,7 +50,7 @@ struct smp_ops_t {
+@@ -51,7 +51,7 @@ struct smp_ops_t {
        int   (*cpu_disable)(void);
        void  (*cpu_die)(unsigned int nr);
        int   (*cpu_bootable)(unsigned int nr);
@@ -7765,10 +7818,10 @@ index 98da78e..dc68271 100644
  extern void smp_send_debugger_break(void);
  extern void start_secondary_resume(void);
 diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
-index ba7b197..d292e26 100644
+index 9854c56..7517190 100644
 --- a/arch/powerpc/include/asm/thread_info.h
 +++ b/arch/powerpc/include/asm/thread_info.h
-@@ -93,7 +93,6 @@ static inline struct thread_info *current_thread_info(void)
+@@ -91,7 +91,6 @@ static inline struct thread_info *current_thread_info(void)
  #define TIF_POLLING_NRFLAG    3       /* true if poll_idle() is polling
                                           TIF_NEED_RESCHED */
  #define TIF_32BIT             4       /* 32 bit binary */
@@ -7776,17 +7829,17 @@ index ba7b197..d292e26 100644
  #define TIF_PERFMON_CTXSW     6       /* perfmon needs ctxsw calls */
  #define TIF_SYSCALL_AUDIT     7       /* syscall auditing active */
  #define TIF_SINGLESTEP                8       /* singlestepping active */
-@@ -107,6 +106,9 @@ static inline struct thread_info *current_thread_info(void)
- #define TIF_EMULATE_STACK_STORE       16      /* Is an instruction emulation
                                              for stack store? */
- #define TIF_MEMDIE            17      /* is terminating due to OOM killer */
-+#define TIF_PERFMON_WORK      18      /* work for pfm_handle_work() */
+@@ -108,6 +107,9 @@ static inline struct thread_info *current_thread_info(void)
+ #if defined(CONFIG_PPC64)
#define TIF_ELF2ABI           18      /* function descriptors must die! */
+ #endif
++#define TIF_PERFMON_WORK      19      /* work for pfm_handle_work() */
 +/* mask must be expressable within 16 bits to satisfy 'andi' instruction reqs */
 +#define TIF_GRSEC_SETXID      5       /* update credentials on syscall entry/exit */
  
  /* as above, but as bit values */
  #define _TIF_SYSCALL_TRACE    (1<<TIF_SYSCALL_TRACE)
-@@ -126,9 +128,10 @@ static inline struct thread_info *current_thread_info(void)
+@@ -127,9 +129,10 @@ static inline struct thread_info *current_thread_info(void)
  #define _TIF_SYSCALL_TRACEPOINT       (1<<TIF_SYSCALL_TRACEPOINT)
  #define _TIF_EMULATE_STACK_STORE      (1<<TIF_EMULATE_STACK_STORE)
  #define _TIF_NOHZ             (1<<TIF_NOHZ)
@@ -7971,10 +8024,10 @@ index 9485b43..4718d50 100644
  
  static inline unsigned long clear_user(void __user *addr, unsigned long size)
 diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S
-index 2d06704..1616f1b 100644
+index e775156..af2d1c0 100644
 --- a/arch/powerpc/kernel/exceptions-64e.S
 +++ b/arch/powerpc/kernel/exceptions-64e.S
-@@ -757,6 +757,7 @@ storage_fault_common:
+@@ -759,6 +759,7 @@ storage_fault_common:
        std     r14,_DAR(r1)
        std     r15,_DSISR(r1)
        addi    r3,r1,STACK_FRAME_OVERHEAD
@@ -7982,7 +8035,7 @@ index 2d06704..1616f1b 100644
        mr      r4,r14
        mr      r5,r15
        ld      r14,PACA_EXGEN+EX_R14(r13)
-@@ -765,8 +766,7 @@ storage_fault_common:
+@@ -767,8 +768,7 @@ storage_fault_common:
        cmpdi   r3,0
        bne-    1f
        b       .ret_from_except_lite
@@ -7993,10 +8046,10 @@ index 2d06704..1616f1b 100644
        ld      r4,_DAR(r1)
        bl      .bad_page_fault
 diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
-index 3a9ed6a..b534681 100644
+index 9f905e4..1d6b3d2 100644
 --- a/arch/powerpc/kernel/exceptions-64s.S
 +++ b/arch/powerpc/kernel/exceptions-64s.S
-@@ -1364,10 +1364,10 @@ handle_page_fault:
+@@ -1390,10 +1390,10 @@ handle_page_fault:
  11:   ld      r4,_DAR(r1)
        ld      r5,_DSISR(r1)
        addi    r3,r1,STACK_FRAME_OVERHEAD
@@ -8009,10 +8062,10 @@ index 3a9ed6a..b534681 100644
        addi    r3,r1,STACK_FRAME_OVERHEAD
        lwz     r4,_DAR(r1)
 diff --git a/arch/powerpc/kernel/module_32.c b/arch/powerpc/kernel/module_32.c
-index 2e3200c..72095ce 100644
+index 6cff040..74ac5d1 100644
 --- a/arch/powerpc/kernel/module_32.c
 +++ b/arch/powerpc/kernel/module_32.c
-@@ -162,7 +162,7 @@ int module_frob_arch_sections(Elf32_Ehdr *hdr,
+@@ -161,7 +161,7 @@ int module_frob_arch_sections(Elf32_Ehdr *hdr,
                        me->arch.core_plt_section = i;
        }
        if (!me->arch.core_plt_section || !me->arch.init_plt_section) {
@@ -8021,7 +8074,7 @@ index 2e3200c..72095ce 100644
                return -ENOEXEC;
        }
  
-@@ -192,11 +192,16 @@ static uint32_t do_plt_call(void *location,
+@@ -191,11 +191,16 @@ static uint32_t do_plt_call(void *location,
  
        DEBUGP("Doing plt for call to 0x%x at 0x%x\n", val, (unsigned int)location);
        /* Init, or core PLT? */
@@ -8041,11 +8094,20 @@ index 2e3200c..72095ce 100644
  
        /* Find this entry, or if that fails, the next avail. entry */
        while (entry->jump[0]) {
+@@ -299,7 +304,7 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
+       }
+ #ifdef CONFIG_DYNAMIC_FTRACE
+       module->arch.tramp =
+-              do_plt_call(module->module_core,
++              do_plt_call(module->module_core_rx,
+                           (unsigned long)ftrace_caller,
+                           sechdrs, module);
+ #endif
 diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
-index 96d2fdf..f6d10c8 100644
+index 4a96556..dd95f6c 100644
 --- a/arch/powerpc/kernel/process.c
 +++ b/arch/powerpc/kernel/process.c
-@@ -886,8 +886,8 @@ void show_regs(struct pt_regs * regs)
+@@ -888,8 +888,8 @@ void show_regs(struct pt_regs * regs)
         * Lookup NIP late so we have the best change of getting the
         * above info out without failing
         */
@@ -8054,9 +8116,9 @@ index 96d2fdf..f6d10c8 100644
 +      printk("NIP ["REG"] %pA\n", regs->nip, (void *)regs->nip);
 +      printk("LR ["REG"] %pA\n", regs->link, (void *)regs->link);
  #endif
- #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
-       printk("PACATMSCRATCH [%llx]\n", get_paca()->tm_scratch);
-@@ -1352,10 +1352,10 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
+       show_stack(current, (unsigned long *) regs->gpr[1]);
+       if (!user_mode(regs))
+@@ -1376,10 +1376,10 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
                newsp = stack[0];
                ip = stack[STACK_FRAME_LR_SAVE];
                if (!firstframe || ip != lr) {
@@ -8069,7 +8131,7 @@ index 96d2fdf..f6d10c8 100644
                                       (void *)current->ret_stack[curr_frame].ret);
                                curr_frame--;
                        }
-@@ -1375,7 +1375,7 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
+@@ -1399,7 +1399,7 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
                        struct pt_regs *regs = (struct pt_regs *)
                                (sp + STACK_FRAME_OVERHEAD);
                        lr = regs->link;
@@ -8078,7 +8140,7 @@ index 96d2fdf..f6d10c8 100644
                               regs->trap, (void *)regs->nip, (void *)lr);
                        firstframe = 1;
                }
-@@ -1411,58 +1411,3 @@ void notrace __ppc64_runlatch_off(void)
+@@ -1435,58 +1435,3 @@ void notrace __ppc64_runlatch_off(void)
        mtspr(SPRN_CTRLT, ctrl);
  }
  #endif /* CONFIG_PPC64 */
@@ -8138,10 +8200,10 @@ index 96d2fdf..f6d10c8 100644
 -      return ret;
 -}
 diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
-index 9a0d24c..e7fbedf 100644
+index 2e3d2bf..35df241 100644
 --- a/arch/powerpc/kernel/ptrace.c
 +++ b/arch/powerpc/kernel/ptrace.c
-@@ -1761,6 +1761,10 @@ long arch_ptrace(struct task_struct *child, long request,
+@@ -1762,6 +1762,10 @@ long arch_ptrace(struct task_struct *child, long request,
        return ret;
  }
  
@@ -8152,7 +8214,7 @@ index 9a0d24c..e7fbedf 100644
  /*
   * We must return the syscall number to actually look up in the table.
   * This can be -1L to skip running any syscall at all.
-@@ -1773,6 +1777,11 @@ long do_syscall_trace_enter(struct pt_regs *regs)
+@@ -1774,6 +1778,11 @@ long do_syscall_trace_enter(struct pt_regs *regs)
  
        secure_computing_strict(regs->gpr[0]);
  
@@ -8164,7 +8226,7 @@ index 9a0d24c..e7fbedf 100644
        if (test_thread_flag(TIF_SYSCALL_TRACE) &&
            tracehook_report_syscall_entry(regs))
                /*
-@@ -1807,6 +1816,11 @@ void do_syscall_trace_leave(struct pt_regs *regs)
+@@ -1808,6 +1817,11 @@ void do_syscall_trace_leave(struct pt_regs *regs)
  {
        int step;
  
@@ -8177,10 +8239,10 @@ index 9a0d24c..e7fbedf 100644
  
        if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
 diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
-index fea2dba..a779f6b 100644
+index 68027bf..b26fd31 100644
 --- a/arch/powerpc/kernel/signal_32.c
 +++ b/arch/powerpc/kernel/signal_32.c
-@@ -1002,7 +1002,7 @@ int handle_rt_signal32(unsigned long sig, struct k_sigaction *ka,
+@@ -1004,7 +1004,7 @@ int handle_rt_signal32(unsigned long sig, struct k_sigaction *ka,
        /* Save user registers on the stack */
        frame = &rt_sf->uc.uc_mcontext;
        addr = frame;
@@ -8190,10 +8252,10 @@ index fea2dba..a779f6b 100644
                tramp = current->mm->context.vdso_base + vdso32_rt_sigtramp;
        } else {
 diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c
-index 1e7ba88..17afb1b 100644
+index 4299104..29e2c51 100644
 --- a/arch/powerpc/kernel/signal_64.c
 +++ b/arch/powerpc/kernel/signal_64.c
-@@ -763,7 +763,7 @@ int handle_rt_signal64(int signr, struct k_sigaction *ka, siginfo_t *info,
+@@ -758,7 +758,7 @@ int handle_rt_signal64(int signr, struct k_sigaction *ka, siginfo_t *info,
  #endif
  
        /* Set up to return from userspace. */
@@ -8203,7 +8265,7 @@ index 1e7ba88..17afb1b 100644
        } else {
                err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]);
 diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
-index f783c93..619baf1 100644
+index 907a472..4ba206f 100644
 --- a/arch/powerpc/kernel/traps.c
 +++ b/arch/powerpc/kernel/traps.c
 @@ -142,6 +142,8 @@ static unsigned __kprobes long oops_begin(struct pt_regs *regs)
@@ -8226,18 +8288,18 @@ index f783c93..619baf1 100644
  }
  
 diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c
-index 1d9c926..25f4741 100644
+index 094e45c..d82b848 100644
 --- a/arch/powerpc/kernel/vdso.c
 +++ b/arch/powerpc/kernel/vdso.c
-@@ -34,6 +34,7 @@
- #include <asm/firmware.h>
+@@ -35,6 +35,7 @@
  #include <asm/vdso.h>
  #include <asm/vdso_datapage.h>
+ #include <asm/setup.h>
 +#include <asm/mman.h>
  
- #include "setup.h"
+ #undef DEBUG
  
-@@ -222,7 +223,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
+@@ -221,7 +222,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
        vdso_base = VDSO32_MBASE;
  #endif
  
@@ -8246,7 +8308,7 @@ index 1d9c926..25f4741 100644
  
        /* vDSO has a problem and was disabled, just don't "enable" it for the
         * process
-@@ -242,7 +243,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
+@@ -241,7 +242,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
        vdso_base = get_unmapped_area(NULL, vdso_base,
                                      (vdso_pages << PAGE_SHIFT) +
                                      ((VDSO_ALIGNMENT - 1) & PAGE_MASK),
@@ -8482,10 +8544,10 @@ index 9098692..3d54cd1 100644
        struct spu_context *ctx = vma->vm_file->private_data;
        unsigned long offset = address - vma->vm_start;
 diff --git a/arch/s390/include/asm/atomic.h b/arch/s390/include/asm/atomic.h
-index c797832..ce575c8 100644
+index fa9aaf7..3f5d836 100644
 --- a/arch/s390/include/asm/atomic.h
 +++ b/arch/s390/include/asm/atomic.h
-@@ -326,6 +326,16 @@ static inline long long atomic64_dec_if_positive(atomic64_t *v)
+@@ -398,6 +398,16 @@ static inline long long atomic64_dec_if_positive(atomic64_t *v)
  #define atomic64_dec_and_test(_v)     (atomic64_sub_return(1, _v) == 0)
  #define atomic64_inc_not_zero(v)      atomic64_add_unless((v), 1, 0)
  
@@ -8562,10 +8624,10 @@ index c4a93d6..4d2a9b4 100644
  
  #endif /* __ASM_EXEC_H */
 diff --git a/arch/s390/include/asm/uaccess.h b/arch/s390/include/asm/uaccess.h
-index 9c33ed4..e40cbef 100644
+index 79330af..a3a7b06 100644
 --- a/arch/s390/include/asm/uaccess.h
 +++ b/arch/s390/include/asm/uaccess.h
-@@ -252,6 +252,10 @@ static inline unsigned long __must_check
+@@ -245,6 +245,10 @@ static inline unsigned long __must_check
  copy_to_user(void __user *to, const void *from, unsigned long n)
  {
        might_fault();
@@ -8576,17 +8638,17 @@ index 9c33ed4..e40cbef 100644
        return __copy_to_user(to, from, n);
  }
  
-@@ -275,6 +279,9 @@ copy_to_user(void __user *to, const void *from, unsigned long n)
+@@ -268,6 +272,9 @@ copy_to_user(void __user *to, const void *from, unsigned long n)
  static inline unsigned long __must_check
  __copy_from_user(void *to, const void __user *from, unsigned long n)
  {
 +      if ((long)n < 0)
 +              return n;
 +
-       if (__builtin_constant_p(n) && (n <= 256))
-               return uaccess.copy_from_user_small(n, from, to);
-       else
-@@ -306,10 +313,14 @@ __compiletime_warning("copy_from_user() buffer size is not provably correct")
+       return uaccess.copy_from_user(n, from, to);
+ }
+@@ -296,10 +303,14 @@ __compiletime_warning("copy_from_user() buffer size is not provably correct")
  static inline unsigned long __must_check
  copy_from_user(void *to, const void __user *from, unsigned long n)
  {
@@ -8604,7 +8666,7 @@ index 9c33ed4..e40cbef 100644
                return n;
        }
 diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
-index 7845e15..59c4353 100644
+index b89b591..fd9609d 100644
 --- a/arch/s390/kernel/module.c
 +++ b/arch/s390/kernel/module.c
 @@ -169,11 +169,11 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs,
@@ -8679,10 +8741,10 @@ index 7845e15..59c4353 100644
                if (r_type == R_390_GOTPC)
                        rc = apply_rela_bits(loc, val, 1, 32, 0);
 diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
-index c5dbb33..b41f4ee 100644
+index 7ed0d4e..1dfc145 100644
 --- a/arch/s390/kernel/process.c
 +++ b/arch/s390/kernel/process.c
-@@ -237,39 +237,3 @@ unsigned long get_wchan(struct task_struct *p)
+@@ -242,39 +242,3 @@ unsigned long get_wchan(struct task_struct *p)
        }
        return 0;
  }
@@ -8723,13 +8785,13 @@ index c5dbb33..b41f4ee 100644
 -      return ret;
 -}
 diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c
-index 4002329..99b67cb 100644
+index 9b436c2..54fbf0a 100644
 --- a/arch/s390/mm/mmap.c
 +++ b/arch/s390/mm/mmap.c
-@@ -90,9 +90,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
+@@ -95,9 +95,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
         */
        if (mmap_is_legacy()) {
-               mm->mmap_base = TASK_UNMAPPED_BASE;
+               mm->mmap_base = mmap_base_legacy();
 +
 +#ifdef CONFIG_PAX_RANDMMAP
 +              if (mm->pax_flags & MF_PAX_RANDMMAP)
@@ -8748,10 +8810,10 @@ index 4002329..99b67cb 100644
                mm->get_unmapped_area = arch_get_unmapped_area_topdown;
        }
  }
-@@ -173,9 +185,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
+@@ -170,9 +182,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
         */
        if (mmap_is_legacy()) {
-               mm->mmap_base = TASK_UNMAPPED_BASE;
+               mm->mmap_base = mmap_base_legacy();
 +
 +#ifdef CONFIG_PAX_RANDMMAP
 +              if (mm->pax_flags & MF_PAX_RANDMMAP)
@@ -9334,7 +9396,7 @@ index 9689176..63c18ea 100644
        unsigned long mask, tmp1, tmp2, result;
  
 diff --git a/arch/sparc/include/asm/thread_info_32.h b/arch/sparc/include/asm/thread_info_32.h
-index dd38075..e7cac83 100644
+index 96efa7a..16858bf 100644
 --- a/arch/sparc/include/asm/thread_info_32.h
 +++ b/arch/sparc/include/asm/thread_info_32.h
 @@ -49,6 +49,8 @@ struct thread_info {
@@ -9347,7 +9409,7 @@ index dd38075..e7cac83 100644
  
  /*
 diff --git a/arch/sparc/include/asm/thread_info_64.h b/arch/sparc/include/asm/thread_info_64.h
-index d5e5042..9bfee76 100644
+index a5f01ac..703b554 100644
 --- a/arch/sparc/include/asm/thread_info_64.h
 +++ b/arch/sparc/include/asm/thread_info_64.h
 @@ -63,6 +63,8 @@ struct thread_info {
@@ -9359,12 +9421,14 @@ index d5e5042..9bfee76 100644
        unsigned long           fpregs[0] __attribute__ ((aligned(64)));
  };
  
-@@ -192,10 +194,11 @@ register struct thread_info *current_thread_info_reg asm("g6");
+@@ -188,12 +190,13 @@ register struct thread_info *current_thread_info_reg asm("g6");
+ #define TIF_NEED_RESCHED      3       /* rescheduling necessary */
+ /* flag bit 4 is available */
  #define TIF_UNALIGNED         5       /* allowed to do unaligned accesses */
- /* flag bit 6 is available */
+-/* flag bit 6 is available */
++#define TIF_GRSEC_SETXID      6       /* update credentials on syscall entry/exit */
  #define TIF_32BIT             7       /* 32-bit binary */
--/* flag bit 8 is available */
-+#define TIF_GRSEC_SETXID      8       /* update credentials on syscall entry/exit */
+ #define TIF_NOHZ              8       /* in adaptive nohz mode */
  #define TIF_SECCOMP           9       /* secure computing */
  #define TIF_SYSCALL_AUDIT     10      /* syscall auditing active */
  #define TIF_SYSCALL_TRACEPOINT        11      /* syscall tracepoint instrumentation */
@@ -9372,7 +9436,7 @@ index d5e5042..9bfee76 100644
  /* NOTE: Thread flags >= 12 should be ones we have no interest
   *       in using in assembly, else we can't use the mask as
   *       an immediate value in instructions such as andcc.
-@@ -214,12 +217,18 @@ register struct thread_info *current_thread_info_reg asm("g6");
+@@ -213,12 +216,18 @@ register struct thread_info *current_thread_info_reg asm("g6");
  #define _TIF_SYSCALL_AUDIT    (1<<TIF_SYSCALL_AUDIT)
  #define _TIF_SYSCALL_TRACEPOINT       (1<<TIF_SYSCALL_TRACEPOINT)
  #define _TIF_POLLING_NRFLAG   (1<<TIF_POLLING_NRFLAG)
@@ -9385,7 +9449,7 @@ index d5e5042..9bfee76 100644
  
 +#define _TIF_WORK_SYSCALL             \
 +      (_TIF_SYSCALL_TRACE | _TIF_SECCOMP | _TIF_SYSCALL_AUDIT | \
-+       _TIF_SYSCALL_TRACEPOINT | _TIF_GRSEC_SETXID)
++       _TIF_SYSCALL_TRACEPOINT | _TIF_NOHZ | _TIF_GRSEC_SETXID)
 +
 +
  /*
@@ -9458,7 +9522,7 @@ index 53a28dd..50c38c3 100644
  }
  
 diff --git a/arch/sparc/include/asm/uaccess_64.h b/arch/sparc/include/asm/uaccess_64.h
-index e562d3c..191f176 100644
+index ad7e178..c9e7423 100644
 --- a/arch/sparc/include/asm/uaccess_64.h
 +++ b/arch/sparc/include/asm/uaccess_64.h
 @@ -10,6 +10,7 @@
@@ -9547,10 +9611,10 @@ index fdd819d..5af08c8 100644
        } while (++count < 16);
        printk("\n");
 diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c
-index baebab2..9cd13b1 100644
+index 32a280e..84fc6a9 100644
 --- a/arch/sparc/kernel/process_64.c
 +++ b/arch/sparc/kernel/process_64.c
-@@ -158,7 +158,7 @@ static void show_regwindow(struct pt_regs *regs)
+@@ -159,7 +159,7 @@ static void show_regwindow(struct pt_regs *regs)
        printk("i4: %016lx i5: %016lx i6: %016lx i7: %016lx\n",
               rwk->ins[4], rwk->ins[5], rwk->ins[6], rwk->ins[7]);
        if (regs->tstate & TSTATE_PRIV)
@@ -9559,7 +9623,7 @@ index baebab2..9cd13b1 100644
  }
  
  void show_regs(struct pt_regs *regs)
-@@ -167,7 +167,7 @@ void show_regs(struct pt_regs *regs)
+@@ -168,7 +168,7 @@ void show_regs(struct pt_regs *regs)
  
        printk("TSTATE: %016lx TPC: %016lx TNPC: %016lx Y: %08x    %s\n", regs->tstate,
               regs->tpc, regs->tnpc, regs->y, print_tainted());
@@ -9568,7 +9632,7 @@ index baebab2..9cd13b1 100644
        printk("g0: %016lx g1: %016lx g2: %016lx g3: %016lx\n",
               regs->u_regs[0], regs->u_regs[1], regs->u_regs[2],
               regs->u_regs[3]);
-@@ -180,7 +180,7 @@ void show_regs(struct pt_regs *regs)
+@@ -181,7 +181,7 @@ void show_regs(struct pt_regs *regs)
        printk("o4: %016lx o5: %016lx sp: %016lx ret_pc: %016lx\n",
               regs->u_regs[12], regs->u_regs[13], regs->u_regs[14],
               regs->u_regs[15]);
@@ -9577,7 +9641,7 @@ index baebab2..9cd13b1 100644
        show_regwindow(regs);
        show_stack(current, (unsigned long *) regs->u_regs[UREG_FP]);
  }
-@@ -269,7 +269,7 @@ void arch_trigger_all_cpu_backtrace(void)
+@@ -270,7 +270,7 @@ void arch_trigger_all_cpu_backtrace(void)
                       ((tp && tp->task) ? tp->task->pid : -1));
  
                if (gp->tstate & TSTATE_PRIV) {
@@ -9600,10 +9664,10 @@ index 79cc0d1..ec62734 100644
        .getproplen = prom_getproplen,
        .getproperty = prom_getproperty,
 diff --git a/arch/sparc/kernel/ptrace_64.c b/arch/sparc/kernel/ptrace_64.c
-index 773c1f2..a8bdd87 100644
+index c13c9f2..d572c34 100644
 --- a/arch/sparc/kernel/ptrace_64.c
 +++ b/arch/sparc/kernel/ptrace_64.c
-@@ -1059,6 +1059,10 @@ long arch_ptrace(struct task_struct *child, long request,
+@@ -1060,6 +1060,10 @@ long arch_ptrace(struct task_struct *child, long request,
        return ret;
  }
  
@@ -9614,9 +9678,9 @@ index 773c1f2..a8bdd87 100644
  asmlinkage int syscall_trace_enter(struct pt_regs *regs)
  {
        int ret = 0;
-@@ -1066,6 +1070,11 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
-       /* do the secure computing check first */
-       secure_computing_strict(regs->u_regs[UREG_G1]);
+@@ -1070,6 +1074,11 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
+       if (test_thread_flag(TIF_NOHZ))
+               user_exit();
  
 +#ifdef CONFIG_GRKERNSEC_SETXID
 +      if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
@@ -9626,10 +9690,10 @@ index 773c1f2..a8bdd87 100644
        if (test_thread_flag(TIF_SYSCALL_TRACE))
                ret = tracehook_report_syscall_entry(regs);
  
-@@ -1086,6 +1095,11 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
+@@ -1093,6 +1102,11 @@ asmlinkage void syscall_trace_leave(struct pt_regs *regs)
+       if (test_thread_flag(TIF_NOHZ))
+               user_exit();
  
- asmlinkage void syscall_trace_leave(struct pt_regs *regs)
- {
 +#ifdef CONFIG_GRKERNSEC_SETXID
 +      if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
 +              gr_delayed_cred_worker();
@@ -9639,10 +9703,10 @@ index 773c1f2..a8bdd87 100644
  
        if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
 diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
-index e142545..fd29654 100644
+index b085311..6f885f7 100644
 --- a/arch/sparc/kernel/smp_64.c
 +++ b/arch/sparc/kernel/smp_64.c
-@@ -869,8 +869,8 @@ extern unsigned long xcall_flush_dcache_page_cheetah;
+@@ -870,8 +870,8 @@ extern unsigned long xcall_flush_dcache_page_cheetah;
  extern unsigned long xcall_flush_dcache_page_spitfire;
  
  #ifdef CONFIG_DEBUG_DCFLUSH
@@ -9653,7 +9717,7 @@ index e142545..fd29654 100644
  #endif
  
  static inline void __local_flush_dcache_page(struct page *page)
-@@ -894,7 +894,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
+@@ -895,7 +895,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
                return;
  
  #ifdef CONFIG_DEBUG_DCFLUSH
@@ -9662,7 +9726,7 @@ index e142545..fd29654 100644
  #endif
  
        this_cpu = get_cpu();
-@@ -918,7 +918,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
+@@ -919,7 +919,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
                        xcall_deliver(data0, __pa(pg_addr),
                                      (u64) pg_addr, cpumask_of(cpu));
  #ifdef CONFIG_DEBUG_DCFLUSH
@@ -9671,7 +9735,7 @@ index e142545..fd29654 100644
  #endif
                }
        }
-@@ -937,7 +937,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
+@@ -938,7 +938,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
        preempt_disable();
  
  #ifdef CONFIG_DEBUG_DCFLUSH
@@ -9680,7 +9744,7 @@ index e142545..fd29654 100644
  #endif
        data0 = 0;
        pg_addr = page_address(page);
-@@ -954,7 +954,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
+@@ -955,7 +955,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
                xcall_deliver(data0, __pa(pg_addr),
                              (u64) pg_addr, cpu_online_mask);
  #ifdef CONFIG_DEBUG_DCFLUSH
@@ -9703,10 +9767,10 @@ index 3a8d184..49498a8 100644
        info.flags = 0;
        info.length = len;
 diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c
-index 51561b8..8256764 100644
+index beb0b5a..5a153f7 100644
 --- a/arch/sparc/kernel/sys_sparc_64.c
 +++ b/arch/sparc/kernel/sys_sparc_64.c
-@@ -90,13 +90,14 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
+@@ -88,13 +88,14 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
        struct vm_area_struct * vma;
        unsigned long task_size = TASK_SIZE;
        int do_color_align;
@@ -9722,7 +9786,7 @@ index 51561b8..8256764 100644
                    ((addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1)))
                        return -EINVAL;
                return addr;
-@@ -111,6 +112,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
+@@ -109,6 +110,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
        if (filp || (flags & MAP_SHARED))
                do_color_align = 1;
  
@@ -9733,7 +9797,7 @@ index 51561b8..8256764 100644
        if (addr) {
                if (do_color_align)
                        addr = COLOR_ALIGN(addr, pgoff);
-@@ -118,22 +123,28 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
+@@ -116,22 +121,28 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
                        addr = PAGE_ALIGN(addr);
  
                vma = find_vma(mm, addr);
@@ -9765,7 +9829,7 @@ index 51561b8..8256764 100644
                info.high_limit = task_size;
                addr = vm_unmapped_area(&info);
        }
-@@ -151,6 +162,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -149,6 +160,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
        unsigned long task_size = STACK_TOP32;
        unsigned long addr = addr0;
        int do_color_align;
@@ -9773,7 +9837,7 @@ index 51561b8..8256764 100644
        struct vm_unmapped_area_info info;
  
        /* This should only ever run for 32-bit processes.  */
-@@ -160,7 +172,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -158,7 +170,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
                /* We do not accept a shared mapping if it would violate
                 * cache aliasing constraints.
                 */
@@ -9782,7 +9846,7 @@ index 51561b8..8256764 100644
                    ((addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1)))
                        return -EINVAL;
                return addr;
-@@ -173,6 +185,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -171,6 +183,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
        if (filp || (flags & MAP_SHARED))
                do_color_align = 1;
  
@@ -9793,7 +9857,7 @@ index 51561b8..8256764 100644
        /* requesting a specific address */
        if (addr) {
                if (do_color_align)
-@@ -181,8 +197,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -179,8 +195,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
                        addr = PAGE_ALIGN(addr);
  
                vma = find_vma(mm, addr);
@@ -9803,7 +9867,7 @@ index 51561b8..8256764 100644
                        return addr;
        }
  
-@@ -192,6 +207,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -190,6 +205,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
        info.high_limit = mm->mmap_base;
        info.align_mask = do_color_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
        info.align_offset = pgoff << PAGE_SHIFT;
@@ -9811,7 +9875,7 @@ index 51561b8..8256764 100644
        addr = vm_unmapped_area(&info);
  
        /*
-@@ -204,6 +220,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -202,6 +218,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
                VM_BUG_ON(addr != -ENOMEM);
                info.flags = 0;
                info.low_limit = TASK_UNMAPPED_BASE;
@@ -9824,7 +9888,7 @@ index 51561b8..8256764 100644
                info.high_limit = STACK_TOP32;
                addr = vm_unmapped_area(&info);
        }
-@@ -260,10 +282,14 @@ unsigned long get_fb_unmapped_area(struct file *filp, unsigned long orig_addr, u
+@@ -258,10 +280,14 @@ unsigned long get_fb_unmapped_area(struct file *filp, unsigned long orig_addr, u
  EXPORT_SYMBOL(get_fb_unmapped_area);
  
  /* Essentially the same as PowerPC.  */
@@ -9840,7 +9904,7 @@ index 51561b8..8256764 100644
        if (current->flags & PF_RANDOMIZE) {
                unsigned long val = get_random_int();
                if (test_thread_flag(TIF_32BIT))
-@@ -276,7 +302,7 @@ static unsigned long mmap_rnd(void)
+@@ -274,7 +300,7 @@ static unsigned long mmap_rnd(void)
  
  void arch_pick_mmap_layout(struct mm_struct *mm)
  {
@@ -9849,7 +9913,7 @@ index 51561b8..8256764 100644
        unsigned long gap;
  
        /*
-@@ -289,6 +315,12 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
+@@ -287,6 +313,12 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
            gap == RLIM_INFINITY ||
            sysctl_legacy_va_layout) {
                mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
@@ -9862,7 +9926,7 @@ index 51561b8..8256764 100644
                mm->get_unmapped_area = arch_get_unmapped_area;
        } else {
                /* We know it's 32-bit */
-@@ -300,6 +332,12 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
+@@ -298,6 +330,12 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
                        gap = (task_size / 6 * 5);
  
                mm->mmap_base = PAGE_ALIGN(task_size - gap - random_factor);
@@ -9876,14 +9940,14 @@ index 51561b8..8256764 100644
        }
  }
 diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S
-index d950197..192f9d8 100644
+index 87729ff..192f9d8 100644
 --- a/arch/sparc/kernel/syscalls.S
 +++ b/arch/sparc/kernel/syscalls.S
 @@ -52,7 +52,7 @@ sys32_rt_sigreturn:
  #endif
        .align  32
  1:    ldx     [%g6 + TI_FLAGS], %l5
--      andcc   %l5, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0
+-      andcc   %l5, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
 +      andcc   %l5, _TIF_WORK_SYSCALL, %g0
        be,pt   %icc, rtrap
         nop
@@ -9892,7 +9956,7 @@ index d950197..192f9d8 100644
  
        srl     %i3, 0, %o3                             ! IEU0
        srl     %i2, 0, %o2                             ! IEU0  Group
--      andcc   %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0
+-      andcc   %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
 +      andcc   %l0, _TIF_WORK_SYSCALL, %g0
        bne,pn  %icc, linux_syscall_trace32             ! CTI
         mov    %i0, %l5                                ! IEU1
@@ -9901,7 +9965,7 @@ index d950197..192f9d8 100644
  
        mov     %i3, %o3                                ! IEU1
        mov     %i4, %o4                                ! IEU0  Group
--      andcc   %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0
+-      andcc   %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
 +      andcc   %l0, _TIF_WORK_SYSCALL, %g0
        bne,pn  %icc, linux_syscall_trace               ! CTI   Group
         mov    %i0, %l5                                ! IEU0
@@ -9910,7 +9974,7 @@ index d950197..192f9d8 100644
  
        cmp     %o0, -ERESTART_RESTARTBLOCK
        bgeu,pn %xcc, 1f
--       andcc  %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0
+-       andcc  %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
 +       andcc  %l0, _TIF_WORK_SYSCALL, %g0
        ldx     [%sp + PTREGS_OFF + PT_V9_TNPC], %l1 ! pc = npc
  
@@ -9949,10 +10013,10 @@ index 6629829..036032d 100644
  }
  
 diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c
-index b3f833a..f485f80 100644
+index 4ced92f..965eeed 100644
 --- a/arch/sparc/kernel/traps_64.c
 +++ b/arch/sparc/kernel/traps_64.c
-@@ -76,7 +76,7 @@ static void dump_tl1_traplog(struct tl1_traplog *p)
+@@ -77,7 +77,7 @@ static void dump_tl1_traplog(struct tl1_traplog *p)
                       i + 1,
                       p->trapstack[i].tstate, p->trapstack[i].tpc,
                       p->trapstack[i].tnpc, p->trapstack[i].tt);
@@ -9961,7 +10025,7 @@ index b3f833a..f485f80 100644
        }
  }
  
-@@ -96,6 +96,12 @@ void bad_trap(struct pt_regs *regs, long lvl)
+@@ -97,6 +97,12 @@ void bad_trap(struct pt_regs *regs, long lvl)
  
        lvl -= 0x100;
        if (regs->tstate & TSTATE_PRIV) {
@@ -9974,7 +10038,7 @@ index b3f833a..f485f80 100644
                sprintf(buffer, "Kernel bad sw trap %lx", lvl);
                die_if_kernel(buffer, regs);
        }
-@@ -114,11 +120,16 @@ void bad_trap(struct pt_regs *regs, long lvl)
+@@ -115,11 +121,16 @@ void bad_trap(struct pt_regs *regs, long lvl)
  void bad_trap_tl1(struct pt_regs *regs, long lvl)
  {
        char buffer[32];
@@ -9992,7 +10056,7 @@ index b3f833a..f485f80 100644
        dump_tl1_traplog((struct tl1_traplog *)(regs + 1));
  
        sprintf (buffer, "Bad trap %lx at tl>0", lvl);
-@@ -1142,7 +1153,7 @@ static void cheetah_log_errors(struct pt_regs *regs, struct cheetah_err_info *in
+@@ -1149,7 +1160,7 @@ static void cheetah_log_errors(struct pt_regs *regs, struct cheetah_err_info *in
               regs->tpc, regs->tnpc, regs->u_regs[UREG_I7], regs->tstate);
        printk("%s" "ERROR(%d): ",
               (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id());
@@ -10001,7 +10065,7 @@ index b3f833a..f485f80 100644
        printk("%s" "ERROR(%d): M_SYND(%lx),  E_SYND(%lx)%s%s\n",
               (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id(),
               (afsr & CHAFSR_M_SYNDROME) >> CHAFSR_M_SYNDROME_SHIFT,
-@@ -1749,7 +1760,7 @@ void cheetah_plus_parity_error(int type, struct pt_regs *regs)
+@@ -1756,7 +1767,7 @@ void cheetah_plus_parity_error(int type, struct pt_regs *regs)
                       smp_processor_id(),
                       (type & 0x1) ? 'I' : 'D',
                       regs->tpc);
@@ -10010,7 +10074,7 @@ index b3f833a..f485f80 100644
                panic("Irrecoverable Cheetah+ parity error.");
        }
  
-@@ -1757,7 +1768,7 @@ void cheetah_plus_parity_error(int type, struct pt_regs *regs)
+@@ -1764,7 +1775,7 @@ void cheetah_plus_parity_error(int type, struct pt_regs *regs)
               smp_processor_id(),
               (type & 0x1) ? 'I' : 'D',
               regs->tpc);
@@ -10019,7 +10083,7 @@ index b3f833a..f485f80 100644
  }
  
  struct sun4v_error_entry {
-@@ -1830,8 +1841,8 @@ struct sun4v_error_entry {
+@@ -1837,8 +1848,8 @@ struct sun4v_error_entry {
  /*0x38*/u64           reserved_5;
  };
  
@@ -10030,7 +10094,7 @@ index b3f833a..f485f80 100644
  
  static const char *sun4v_err_type_to_str(u8 type)
  {
-@@ -1923,7 +1934,7 @@ static void sun4v_report_real_raddr(const char *pfx, struct pt_regs *regs)
+@@ -1930,7 +1941,7 @@ static void sun4v_report_real_raddr(const char *pfx, struct pt_regs *regs)
  }
  
  static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent,
@@ -10039,7 +10103,7 @@ index b3f833a..f485f80 100644
  {
        u64 *raw_ptr = (u64 *) ent;
        u32 attrs;
-@@ -1981,8 +1992,8 @@ static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent,
+@@ -1988,8 +1999,8 @@ static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent,
  
        show_regs(regs);
  
@@ -10050,7 +10114,7 @@ index b3f833a..f485f80 100644
                wmb();
                printk("%s: Queue overflowed %d times.\n",
                       pfx, cnt);
-@@ -2036,7 +2047,7 @@ void sun4v_resum_error(struct pt_regs *regs, unsigned long offset)
+@@ -2046,7 +2057,7 @@ out:
   */
  void sun4v_resum_overflow(struct pt_regs *regs)
  {
@@ -10059,7 +10123,7 @@ index b3f833a..f485f80 100644
  }
  
  /* We run with %pil set to PIL_NORMAL_MAX and PSTATE_IE enabled in %pstate.
-@@ -2089,7 +2100,7 @@ void sun4v_nonresum_overflow(struct pt_regs *regs)
+@@ -2099,7 +2110,7 @@ void sun4v_nonresum_overflow(struct pt_regs *regs)
        /* XXX Actually even this can make not that much sense.  Perhaps
         * XXX we should just pull the plug and panic directly from here?
         */
@@ -10068,7 +10132,7 @@ index b3f833a..f485f80 100644
  }
  
  unsigned long sun4v_err_itlb_vaddr;
-@@ -2104,9 +2115,9 @@ void sun4v_itlb_error_report(struct pt_regs *regs, int tl)
+@@ -2114,9 +2125,9 @@ void sun4v_itlb_error_report(struct pt_regs *regs, int tl)
  
        printk(KERN_EMERG "SUN4V-ITLB: Error at TPC[%lx], tl %d\n",
               regs->tpc, tl);
@@ -10080,7 +10144,7 @@ index b3f833a..f485f80 100644
               (void *) regs->u_regs[UREG_I7]);
        printk(KERN_EMERG "SUN4V-ITLB: vaddr[%lx] ctx[%lx] "
               "pte[%lx] error[%lx]\n",
-@@ -2128,9 +2139,9 @@ void sun4v_dtlb_error_report(struct pt_regs *regs, int tl)
+@@ -2138,9 +2149,9 @@ void sun4v_dtlb_error_report(struct pt_regs *regs, int tl)
  
        printk(KERN_EMERG "SUN4V-DTLB: Error at TPC[%lx], tl %d\n",
               regs->tpc, tl);
@@ -10092,7 +10156,7 @@ index b3f833a..f485f80 100644
               (void *) regs->u_regs[UREG_I7]);
        printk(KERN_EMERG "SUN4V-DTLB: vaddr[%lx] ctx[%lx] "
               "pte[%lx] error[%lx]\n",
-@@ -2336,13 +2347,13 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
+@@ -2359,13 +2370,13 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
                        fp = (unsigned long)sf->fp + STACK_BIAS;
                }
  
@@ -10108,7 +10172,7 @@ index b3f833a..f485f80 100644
                                graph++;
                        }
                }
-@@ -2360,6 +2371,8 @@ static inline struct reg_window *kernel_stack_up(struct reg_window *rw)
+@@ -2383,6 +2394,8 @@ static inline struct reg_window *kernel_stack_up(struct reg_window *rw)
        return (struct reg_window *) (fp + STACK_BIAS);
  }
  
@@ -10117,7 +10181,7 @@ index b3f833a..f485f80 100644
  void die_if_kernel(char *str, struct pt_regs *regs)
  {
        static int die_counter;
-@@ -2388,7 +2401,7 @@ void die_if_kernel(char *str, struct pt_regs *regs)
+@@ -2411,7 +2424,7 @@ void die_if_kernel(char *str, struct pt_regs *regs)
                while (rw &&
                       count++ < 30 &&
                       kstack_valid(tp, (unsigned long) rw)) {
@@ -10126,7 +10190,7 @@ index b3f833a..f485f80 100644
                               (void *) rw->ins[7]);
  
                        rw = kernel_stack_up(rw);
-@@ -2401,8 +2414,10 @@ void die_if_kernel(char *str, struct pt_regs *regs)
+@@ -2424,8 +2437,10 @@ void die_if_kernel(char *str, struct pt_regs *regs)
                }
                user_instruction_dump ((unsigned int __user *) regs->tpc);
        }
@@ -10139,10 +10203,10 @@ index b3f833a..f485f80 100644
  }
  EXPORT_SYMBOL(die_if_kernel);
 diff --git a/arch/sparc/kernel/unaligned_64.c b/arch/sparc/kernel/unaligned_64.c
-index 8201c25e..072a2a7 100644
+index 3c1a7cb..73e1923 100644
 --- a/arch/sparc/kernel/unaligned_64.c
 +++ b/arch/sparc/kernel/unaligned_64.c
-@@ -286,7 +286,7 @@ static void log_unaligned(struct pt_regs *regs)
+@@ -289,7 +289,7 @@ static void log_unaligned(struct pt_regs *regs)
        static DEFINE_RATELIMIT_STATE(ratelimit, 5 * HZ, 5);
  
        if (__ratelimit(&ratelimit)) {
@@ -10732,20 +10796,20 @@ index 59dbd46..1dd7f5e 100644
                if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
                        goto bad_area;
 diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c
-index 2ebec26..b212598 100644
+index 69bb818..6ca35c8 100644
 --- a/arch/sparc/mm/fault_64.c
 +++ b/arch/sparc/mm/fault_64.c
-@@ -21,6 +21,9 @@
- #include <linux/kprobes.h>
+@@ -22,6 +22,9 @@
  #include <linux/kdebug.h>
  #include <linux/percpu.h>
+ #include <linux/context_tracking.h>
 +#include <linux/slab.h>
 +#include <linux/pagemap.h>
 +#include <linux/compiler.h>
  
  #include <asm/page.h>
  #include <asm/pgtable.h>
-@@ -74,7 +77,7 @@ static void __kprobes bad_kernel_pc(struct pt_regs *regs, unsigned long vaddr)
+@@ -75,7 +78,7 @@ static void __kprobes bad_kernel_pc(struct pt_regs *regs, unsigned long vaddr)
        printk(KERN_CRIT "OOPS: Bogus kernel PC [%016lx] in fault handler\n",
               regs->tpc);
        printk(KERN_CRIT "OOPS: RPC [%016lx]\n", regs->u_regs[15]);
@@ -10754,7 +10818,7 @@ index 2ebec26..b212598 100644
        printk(KERN_CRIT "OOPS: Fault was to vaddr[%lx]\n", vaddr);
        dump_stack();
        unhandled_fault(regs->tpc, current, regs);
-@@ -270,6 +273,466 @@ static void noinline __kprobes bogus_32bit_fault_address(struct pt_regs *regs,
+@@ -271,6 +274,466 @@ static void noinline __kprobes bogus_32bit_fault_address(struct pt_regs *regs,
        show_regs(regs);
  }
  
@@ -11220,8 +11284,8 @@ index 2ebec26..b212598 100644
 +
  asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
  {
-       struct mm_struct *mm = current->mm;
-@@ -342,6 +805,29 @@ retry:
+       enum ctx_state prev_state = exception_enter();
+@@ -344,6 +807,29 @@ retry:
        if (!vma)
                goto bad_area;
  
@@ -11252,10 +11316,10 @@ index 2ebec26..b212598 100644
         * load/store/atomic was a write or not, it only says that there
         * was no match.  So in such a case we (carefully) read the
 diff --git a/arch/sparc/mm/hugetlbpage.c b/arch/sparc/mm/hugetlbpage.c
-index 9639964..806cd0c 100644
+index 3096317..a7b7654 100644
 --- a/arch/sparc/mm/hugetlbpage.c
 +++ b/arch/sparc/mm/hugetlbpage.c
-@@ -28,7 +28,8 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp,
+@@ -26,7 +26,8 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp,
                                                        unsigned long addr,
                                                        unsigned long len,
                                                        unsigned long pgoff,
@@ -11265,7 +11329,7 @@ index 9639964..806cd0c 100644
  {
        unsigned long task_size = TASK_SIZE;
        struct vm_unmapped_area_info info;
-@@ -38,15 +39,22 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp,
+@@ -36,15 +37,22 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp,
  
        info.flags = 0;
        info.length = len;
@@ -11289,7 +11353,7 @@ index 9639964..806cd0c 100644
                info.high_limit = task_size;
                addr = vm_unmapped_area(&info);
        }
-@@ -58,7 +66,8 @@ static unsigned long
+@@ -56,7 +64,8 @@ static unsigned long
  hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
                                  const unsigned long len,
                                  const unsigned long pgoff,
@@ -11299,7 +11363,7 @@ index 9639964..806cd0c 100644
  {
        struct mm_struct *mm = current->mm;
        unsigned long addr = addr0;
-@@ -73,6 +82,7 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -71,6 +80,7 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
        info.high_limit = mm->mmap_base;
        info.align_mask = PAGE_MASK & ~HPAGE_MASK;
        info.align_offset = 0;
@@ -11307,7 +11371,7 @@ index 9639964..806cd0c 100644
        addr = vm_unmapped_area(&info);
  
        /*
-@@ -85,6 +95,12 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -83,6 +93,12 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
                VM_BUG_ON(addr != -ENOMEM);
                info.flags = 0;
                info.low_limit = TASK_UNMAPPED_BASE;
@@ -11320,7 +11384,7 @@ index 9639964..806cd0c 100644
                info.high_limit = STACK_TOP32;
                addr = vm_unmapped_area(&info);
        }
-@@ -99,6 +115,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
+@@ -97,6 +113,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
        struct mm_struct *mm = current->mm;
        struct vm_area_struct *vma;
        unsigned long task_size = TASK_SIZE;
@@ -11328,7 +11392,7 @@ index 9639964..806cd0c 100644
  
        if (test_thread_flag(TIF_32BIT))
                task_size = STACK_TOP32;
-@@ -114,19 +131,22 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
+@@ -112,19 +129,22 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
                return addr;
        }
  
@@ -11356,7 +11420,7 @@ index 9639964..806cd0c 100644
  
  pte_t *huge_pte_alloc(struct mm_struct *mm,
 diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
-index ed82eda..0d80e77 100644
+index 5322e53..f820c5e 100644
 --- a/arch/sparc/mm/init_64.c
 +++ b/arch/sparc/mm/init_64.c
 @@ -188,9 +188,9 @@ unsigned long sparc64_kern_sec_context __read_mostly;
@@ -11394,10 +11458,10 @@ index ed82eda..0d80e77 100644
  #endif /* CONFIG_DEBUG_DCFLUSH */
  }
 diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig
-index d45a2c4..3c05a78 100644
+index b3692ce..e4517c9 100644
 --- a/arch/tile/Kconfig
 +++ b/arch/tile/Kconfig
-@@ -185,6 +185,7 @@ source "kernel/Kconfig.hz"
+@@ -184,6 +184,7 @@ source "kernel/Kconfig.hz"
  
  config KEXEC
        bool "kexec system call"
@@ -11481,10 +11545,10 @@ index 0cb3bba..7338b2d 100644
  
        /*
 diff --git a/arch/um/Makefile b/arch/um/Makefile
-index 133f7de..1d6f2f1 100644
+index 36e658a..71a5c5a 100644
 --- a/arch/um/Makefile
 +++ b/arch/um/Makefile
-@@ -62,6 +62,10 @@ USER_CFLAGS = $(patsubst $(KERNEL_DEFINES),,$(patsubst -D__KERNEL__,,\
+@@ -72,6 +72,10 @@ USER_CFLAGS = $(patsubst $(KERNEL_DEFINES),,$(patsubst -D__KERNEL__,,\
        $(patsubst -I%,,$(KBUILD_CFLAGS)))) $(ARCH_INCLUDE) $(MODE_INCLUDE) \
        $(filter -I%,$(CFLAGS)) -D_FILE_OFFSET_BITS=64 -idirafter include
  
@@ -11495,18 +11559,6 @@ index 133f7de..1d6f2f1 100644
  #This will adjust *FLAGS accordingly to the platform.
  include $(srctree)/$(ARCH_DIR)/Makefile-os-$(OS)
  
-diff --git a/arch/um/defconfig b/arch/um/defconfig
-index 2665e6b..3e3822b 100644
---- a/arch/um/defconfig
-+++ b/arch/um/defconfig
-@@ -51,7 +51,6 @@ CONFIG_X86_CMPXCHG=y
- CONFIG_X86_L1_CACHE_SHIFT=5
- CONFIG_X86_XADD=y
- CONFIG_X86_PPRO_FENCE=y
--CONFIG_X86_WP_WORKS_OK=y
- CONFIG_X86_INVLPG=y
- CONFIG_X86_BSWAP=y
- CONFIG_X86_POPAD_OK=y
 diff --git a/arch/um/include/asm/cache.h b/arch/um/include/asm/cache.h
 index 19e1bdd..3665b77 100644
 --- a/arch/um/include/asm/cache.h
@@ -11566,10 +11618,10 @@ index 0032f92..cd151e0 100644
  #ifdef CONFIG_64BIT
  #define set_pud(pudptr, pudval) set_64bit((u64 *) (pudptr), pud_val(pudval))
 diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c
-index bbcef52..6a2a483 100644
+index eecc414..48adb87 100644
 --- a/arch/um/kernel/process.c
 +++ b/arch/um/kernel/process.c
-@@ -367,22 +367,6 @@ int singlestepping(void * t)
+@@ -356,22 +356,6 @@ int singlestepping(void * t)
        return 2;
  }
  
@@ -11610,10 +11662,10 @@ index ad8f795..2c7eec6 100644
  /*
   * Memory returned by kmalloc() may be used for DMA, so we must make
 diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index f67e839..bfd4748 100644
+index 0952ecd..75e0e8a 100644
 --- a/arch/x86/Kconfig
 +++ b/arch/x86/Kconfig
-@@ -247,7 +247,7 @@ config X86_HT
+@@ -249,7 +249,7 @@ config X86_HT
  
  config X86_32_LAZY_GS
        def_bool y
@@ -11622,7 +11674,7 @@ index f67e839..bfd4748 100644
  
  config ARCH_HWEIGHT_CFLAGS
        string
-@@ -1099,6 +1099,7 @@ config MICROCODE_EARLY
+@@ -1104,6 +1104,7 @@ config MICROCODE_EARLY
  
  config X86_MSR
        tristate "/dev/cpu/*/msr - Model-specific register support"
@@ -11630,7 +11682,7 @@ index f67e839..bfd4748 100644
        ---help---
          This device gives privileged processes access to the x86
          Model-Specific Registers (MSRs).  It is a character device with
-@@ -1122,7 +1123,7 @@ choice
+@@ -1127,7 +1128,7 @@ choice
  
  config NOHIGHMEM
        bool "off"
@@ -11639,7 +11691,7 @@ index f67e839..bfd4748 100644
        ---help---
          Linux can use up to 64 Gigabytes of physical memory on x86 systems.
          However, the address space of 32-bit x86 processors is only 4
-@@ -1159,7 +1160,7 @@ config NOHIGHMEM
+@@ -1164,7 +1165,7 @@ config NOHIGHMEM
  
  config HIGHMEM4G
        bool "4GB"
@@ -11648,7 +11700,7 @@ index f67e839..bfd4748 100644
        ---help---
          Select this if you have a 32-bit processor and between 1 and 4
          gigabytes of physical RAM.
-@@ -1212,7 +1213,7 @@ config PAGE_OFFSET
+@@ -1217,7 +1218,7 @@ config PAGE_OFFSET
        hex
        default 0xB0000000 if VMSPLIT_3G_OPT
        default 0x80000000 if VMSPLIT_2G
@@ -11657,7 +11709,7 @@ index f67e839..bfd4748 100644
        default 0x40000000 if VMSPLIT_1G
        default 0xC0000000
        depends on X86_32
-@@ -1614,6 +1615,7 @@ config SECCOMP
+@@ -1619,6 +1620,7 @@ config SECCOMP
  
  config CC_STACKPROTECTOR
        bool "Enable -fstack-protector buffer overflow detection"
@@ -11665,7 +11717,7 @@ index f67e839..bfd4748 100644
        ---help---
          This option turns on the -fstack-protector GCC feature. This
          feature puts, at the beginning of functions, a canary value on
-@@ -1632,6 +1634,7 @@ source kernel/Kconfig.hz
+@@ -1637,6 +1639,7 @@ source kernel/Kconfig.hz
  
  config KEXEC
        bool "kexec system call"
@@ -11673,7 +11725,7 @@ index f67e839..bfd4748 100644
        ---help---
          kexec is a system call that implements the ability to shutdown your
          current kernel, and to start another kernel.  It is like a reboot
-@@ -1733,6 +1736,8 @@ config X86_NEED_RELOCS
+@@ -1738,6 +1741,8 @@ config X86_NEED_RELOCS
  config PHYSICAL_ALIGN
        hex "Alignment value to which kernel should be aligned"
        default "0x1000000"
@@ -11682,7 +11734,7 @@ index f67e839..bfd4748 100644
        range 0x2000 0x1000000 if X86_32
        range 0x200000 0x1000000 if X86_64
        ---help---
-@@ -1812,9 +1817,10 @@ config DEBUG_HOTPLUG_CPU0
+@@ -1817,9 +1822,10 @@ config DEBUG_HOTPLUG_CPU0
          If unsure, say N.
  
  config COMPAT_VDSO
@@ -11726,10 +11778,10 @@ index c026cca..14657ae 100644
  config X86_MINIMUM_CPU_FAMILY
        int
 diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
-index 78d91af..8ceb94b 100644
+index 0f3621e..282f24b 100644
 --- a/arch/x86/Kconfig.debug
 +++ b/arch/x86/Kconfig.debug
-@@ -74,7 +74,7 @@ config X86_PTDUMP
+@@ -84,7 +84,7 @@ config X86_PTDUMP
  config DEBUG_RODATA
        bool "Write protect kernel read-only data structures"
        default y
@@ -11738,7 +11790,7 @@ index 78d91af..8ceb94b 100644
        ---help---
          Mark the kernel read-only data as write-protected in the pagetables,
          in order to catch accidental (and incorrect) writes to such const
-@@ -92,7 +92,7 @@ config DEBUG_RODATA_TEST
+@@ -102,7 +102,7 @@ config DEBUG_RODATA_TEST
  
  config DEBUG_SET_MODULE_RONX
        bool "Set loadable kernel module data as NX and text as RO"
@@ -11748,10 +11800,10 @@ index 78d91af..8ceb94b 100644
          This option helps catch unintended modifications to loadable
          kernel module's text and read-only data. It also prevents execution
 diff --git a/arch/x86/Makefile b/arch/x86/Makefile
-index 41250fb..863762e 100644
+index 57d0215..b4373fb 100644
 --- a/arch/x86/Makefile
 +++ b/arch/x86/Makefile
-@@ -46,14 +46,12 @@ ifeq ($(CONFIG_X86_32),y)
+@@ -49,14 +49,12 @@ ifeq ($(CONFIG_X86_32),y)
          # CPU-specific tuning. Anything which can be shared with UML should go here.
          include $(srctree)/arch/x86/Makefile_32.cpu
          KBUILD_CFLAGS += $(cflags-y)
@@ -11767,7 +11819,7 @@ index 41250fb..863762e 100644
          KBUILD_AFLAGS += -m64
          KBUILD_CFLAGS += -m64
  
-@@ -83,6 +81,9 @@ else
+@@ -89,6 +87,9 @@ else
          KBUILD_CFLAGS += -maccumulate-outgoing-args
  endif
  
@@ -11777,7 +11829,7 @@ index 41250fb..863762e 100644
  ifdef CONFIG_CC_STACKPROTECTOR
        cc_has_sp := $(srctree)/scripts/gcc-x86_$(BITS)-has-stack-protector.sh
          ifeq ($(shell $(CONFIG_SHELL) $(cc_has_sp) $(CC) $(KBUILD_CPPFLAGS) $(biarch)),y)
-@@ -241,3 +242,12 @@ define archhelp
+@@ -247,3 +248,12 @@ define archhelp
    echo  '                  FDINITRD=file initrd for the booted kernel'
    echo  '  kvmconfig  - Enable additional options for guest kernel support'
  endef
@@ -11791,13 +11843,13 @@ index 41250fb..863762e 100644
 +archprepare:
 +      $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD)))
 diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile
-index 379814b..add62ce 100644
+index d9c1195..a26ca0d 100644
 --- a/arch/x86/boot/Makefile
 +++ b/arch/x86/boot/Makefile
-@@ -65,6 +65,9 @@ KBUILD_CFLAGS        := $(USERINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \
+@@ -65,6 +65,9 @@ KBUILD_CFLAGS        := $(USERINCLUDE) -m32 -g -Os -D_SETUP -D__KERNEL__ \
+                  $(call cc-option, -fno-unit-at-a-time)) \
                   $(call cc-option, -fno-stack-protector) \
                   $(call cc-option, -mpreferred-stack-boundary=2)
- KBUILD_CFLAGS += $(call cc-option, -m32)
 +ifdef CONSTIFY_PLUGIN
 +KBUILD_CFLAGS += -fplugin-arg-constify_plugin-no-constify
 +endif
@@ -11849,11 +11901,11 @@ index ef72bae..353a184 100644
        return diff;
  }
 diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
-index dcd90df..c830d7d 100644
+index c8a6792..2402765 100644
 --- a/arch/x86/boot/compressed/Makefile
 +++ b/arch/x86/boot/compressed/Makefile
-@@ -15,6 +15,9 @@ cflags-$(CONFIG_X86_64) := -mcmodel=small
- KBUILD_CFLAGS += $(cflags-y)
+@@ -16,6 +16,9 @@ KBUILD_CFLAGS += $(cflags-y)
+ KBUILD_CFLAGS += -mno-mmx -mno-sse
  KBUILD_CFLAGS += $(call cc-option,-ffreestanding)
  KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector)
 +ifdef CONSTIFY_PLUGIN
@@ -11862,26 +11914,6 @@ index dcd90df..c830d7d 100644
  
  KBUILD_AFLAGS  := $(KBUILD_CFLAGS) -D__ASSEMBLY__
  GCOV_PROFILE := n
-diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
-index b7388a4..03844ec 100644
---- a/arch/x86/boot/compressed/eboot.c
-+++ b/arch/x86/boot/compressed/eboot.c
-@@ -150,7 +150,6 @@ again:
-               *addr = max_addr;
-       }
--free_pool:
-       efi_call_phys1(sys_table->boottime->free_pool, map);
- fail:
-@@ -214,7 +213,6 @@ static efi_status_t low_alloc(unsigned long size, unsigned long align,
-       if (i == map_size / desc_size)
-               status = EFI_NOT_FOUND;
--free_pool:
-       efi_call_phys1(sys_table->boottime->free_pool, map);
- fail:
-       return status;
 diff --git a/arch/x86/boot/compressed/efi_stub_32.S b/arch/x86/boot/compressed/efi_stub_32.S
 index a53440e..c3dbf1e 100644
 --- a/arch/x86/boot/compressed/efi_stub_32.S
@@ -12159,7 +12191,7 @@ index 43eda28..5ab5fdb 100644
        unsigned int v;
  
 diff --git a/arch/x86/crypto/aes-x86_64-asm_64.S b/arch/x86/crypto/aes-x86_64-asm_64.S
-index 9105655..5e37f27 100644
+index 9105655..41779c1 100644
 --- a/arch/x86/crypto/aes-x86_64-asm_64.S
 +++ b/arch/x86/crypto/aes-x86_64-asm_64.S
 @@ -8,6 +8,8 @@
@@ -12175,13 +12207,13 @@ index 9105655..5e37f27 100644
        je      B192;                   \
        leaq    32(r9),r9;
  
-+#define ret   pax_force_retaddr 0, 1; ret
++#define ret   pax_force_retaddr; ret
 +
  #define epilogue(FUNC,r1,r2,r3,r4,r5,r6,r7,r8,r9) \
        movq    r1,r2;                  \
        movq    r3,r4;                  \
 diff --git a/arch/x86/crypto/aesni-intel_asm.S b/arch/x86/crypto/aesni-intel_asm.S
-index 477e9d7..3ab339f 100644
+index 477e9d7..c92c7d8 100644
 --- a/arch/x86/crypto/aesni-intel_asm.S
 +++ b/arch/x86/crypto/aesni-intel_asm.S
 @@ -31,6 +31,7 @@
@@ -12192,19 +12224,240 @@ index 477e9d7..3ab339f 100644
  
  #ifdef __x86_64__
  .data
-@@ -1441,6 +1442,7 @@ _return_T_done_decrypt:
+@@ -205,7 +206,7 @@ enc:        .octa 0x2
+ * num_initial_blocks = b mod 4
+ * encrypt the initial num_initial_blocks blocks and apply ghash on
+ * the ciphertext
+-* %r10, %r11, %r12, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
++* %r10, %r11, %r15, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
+ * are clobbered
+ * arg1, %arg2, %arg3, %r14 are used as a pointer only, not modified
+ */
+@@ -214,8 +215,8 @@ enc:        .octa 0x2
+ .macro INITIAL_BLOCKS_DEC num_initial_blocks TMP1 TMP2 TMP3 TMP4 TMP5 XMM0 XMM1 \
+ XMM2 XMM3 XMM4 XMMDst TMP6 TMP7 i i_seq operation
+       mov        arg7, %r10           # %r10 = AAD
+-      mov        arg8, %r12           # %r12 = aadLen
+-      mov        %r12, %r11
++      mov        arg8, %r15           # %r15 = aadLen
++      mov        %r15, %r11
+       pxor       %xmm\i, %xmm\i
+ _get_AAD_loop\num_initial_blocks\operation:
+       movd       (%r10), \TMP1
+@@ -223,15 +224,15 @@ _get_AAD_loop\num_initial_blocks\operation:
+       psrldq     $4, %xmm\i
+       pxor       \TMP1, %xmm\i
+       add        $4, %r10
+-      sub        $4, %r12
++      sub        $4, %r15
+       jne        _get_AAD_loop\num_initial_blocks\operation
+       cmp        $16, %r11
+       je         _get_AAD_loop2_done\num_initial_blocks\operation
+-      mov        $16, %r12
++      mov        $16, %r15
+ _get_AAD_loop2\num_initial_blocks\operation:
+       psrldq     $4, %xmm\i
+-      sub        $4, %r12
+-      cmp        %r11, %r12
++      sub        $4, %r15
++      cmp        %r11, %r15
+       jne        _get_AAD_loop2\num_initial_blocks\operation
+ _get_AAD_loop2_done\num_initial_blocks\operation:
+         movdqa     SHUF_MASK(%rip), %xmm14
+@@ -443,7 +444,7 @@ _initial_blocks_done\num_initial_blocks\operation:
+ * num_initial_blocks = b mod 4
+ * encrypt the initial num_initial_blocks blocks and apply ghash on
+ * the ciphertext
+-* %r10, %r11, %r12, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
++* %r10, %r11, %r15, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
+ * are clobbered
+ * arg1, %arg2, %arg3, %r14 are used as a pointer only, not modified
+ */
+@@ -452,8 +453,8 @@ _initial_blocks_done\num_initial_blocks\operation:
+ .macro INITIAL_BLOCKS_ENC num_initial_blocks TMP1 TMP2 TMP3 TMP4 TMP5 XMM0 XMM1 \
+ XMM2 XMM3 XMM4 XMMDst TMP6 TMP7 i i_seq operation
+       mov        arg7, %r10           # %r10 = AAD
+-      mov        arg8, %r12           # %r12 = aadLen
+-      mov        %r12, %r11
++      mov        arg8, %r15           # %r15 = aadLen
++      mov        %r15, %r11
+       pxor       %xmm\i, %xmm\i
+ _get_AAD_loop\num_initial_blocks\operation:
+       movd       (%r10), \TMP1
+@@ -461,15 +462,15 @@ _get_AAD_loop\num_initial_blocks\operation:
+       psrldq     $4, %xmm\i
+       pxor       \TMP1, %xmm\i
+       add        $4, %r10
+-      sub        $4, %r12
++      sub        $4, %r15
+       jne        _get_AAD_loop\num_initial_blocks\operation
+       cmp        $16, %r11
+       je         _get_AAD_loop2_done\num_initial_blocks\operation
+-      mov        $16, %r12
++      mov        $16, %r15
+ _get_AAD_loop2\num_initial_blocks\operation:
+       psrldq     $4, %xmm\i
+-      sub        $4, %r12
+-      cmp        %r11, %r12
++      sub        $4, %r15
++      cmp        %r11, %r15
+       jne        _get_AAD_loop2\num_initial_blocks\operation
+ _get_AAD_loop2_done\num_initial_blocks\operation:
+         movdqa     SHUF_MASK(%rip), %xmm14
+@@ -1269,7 +1270,7 @@ TMP7 XMM1 XMM2 XMM3 XMM4 XMMDst
+ *
+ *****************************************************************************/
+ ENTRY(aesni_gcm_dec)
+-      push    %r12
++      push    %r15
+       push    %r13
+       push    %r14
+       mov     %rsp, %r14
+@@ -1279,8 +1280,8 @@ ENTRY(aesni_gcm_dec)
+ */
+       sub     $VARIABLE_OFFSET, %rsp
+       and     $~63, %rsp                        # align rsp to 64 bytes
+-      mov     %arg6, %r12
+-      movdqu  (%r12), %xmm13                    # %xmm13 = HashKey
++      mov     %arg6, %r15
++      movdqu  (%r15), %xmm13                    # %xmm13 = HashKey
+         movdqa  SHUF_MASK(%rip), %xmm2
+       PSHUFB_XMM %xmm2, %xmm13
+@@ -1308,10 +1309,10 @@ ENTRY(aesni_gcm_dec)
+       movdqa %xmm13, HashKey(%rsp)           # store HashKey<<1 (mod poly)
+       mov %arg4, %r13    # save the number of bytes of plaintext/ciphertext
+       and $-16, %r13                      # %r13 = %r13 - (%r13 mod 16)
+-      mov %r13, %r12
+-      and $(3<<4), %r12
++      mov %r13, %r15
++      and $(3<<4), %r15
+       jz _initial_num_blocks_is_0_decrypt
+-      cmp $(2<<4), %r12
++      cmp $(2<<4), %r15
+       jb _initial_num_blocks_is_1_decrypt
+       je _initial_num_blocks_is_2_decrypt
+ _initial_num_blocks_is_3_decrypt:
+@@ -1361,16 +1362,16 @@ _zero_cipher_left_decrypt:
+       sub $16, %r11
+       add %r13, %r11
+       movdqu (%arg3,%r11,1), %xmm1   # receive the last <16 byte block
+-      lea SHIFT_MASK+16(%rip), %r12
+-      sub %r13, %r12
++      lea SHIFT_MASK+16(%rip), %r15
++      sub %r13, %r15
+ # adjust the shuffle mask pointer to be able to shift 16-%r13 bytes
+ # (%r13 is the number of bytes in plaintext mod 16)
+-      movdqu (%r12), %xmm2           # get the appropriate shuffle mask
++      movdqu (%r15), %xmm2           # get the appropriate shuffle mask
+       PSHUFB_XMM %xmm2, %xmm1            # right shift 16-%r13 butes
+       movdqa  %xmm1, %xmm2
+       pxor %xmm1, %xmm0            # Ciphertext XOR E(K, Yn)
+-      movdqu ALL_F-SHIFT_MASK(%r12), %xmm1
++      movdqu ALL_F-SHIFT_MASK(%r15), %xmm1
+       # get the appropriate mask to mask out top 16-%r13 bytes of %xmm0
+       pand %xmm1, %xmm0            # mask out top 16-%r13 bytes of %xmm0
+       pand    %xmm1, %xmm2
+@@ -1399,9 +1400,9 @@ _less_than_8_bytes_left_decrypt:
+       sub     $1, %r13
+       jne     _less_than_8_bytes_left_decrypt
+ _multiple_of_16_bytes_decrypt:
+-      mov     arg8, %r12                # %r13 = aadLen (number of bytes)
+-      shl     $3, %r12                  # convert into number of bits
+-      movd    %r12d, %xmm15             # len(A) in %xmm15
++      mov     arg8, %r15                # %r13 = aadLen (number of bytes)
++      shl     $3, %r15                  # convert into number of bits
++      movd    %r15d, %xmm15             # len(A) in %xmm15
+       shl     $3, %arg4                 # len(C) in bits (*128)
+       MOVQ_R64_XMM    %arg4, %xmm1
+       pslldq  $8, %xmm15                # %xmm15 = len(A)||0x0000000000000000
+@@ -1440,7 +1441,8 @@ _return_T_done_decrypt:
+       mov     %r14, %rsp
        pop     %r14
        pop     %r13
-       pop     %r12
-+      pax_force_retaddr 0, 1
+-      pop     %r12
++      pop     %r15
++      pax_force_retaddr
        ret
  ENDPROC(aesni_gcm_dec)
  
-@@ -1705,6 +1707,7 @@ _return_T_done_encrypt:
+@@ -1529,7 +1531,7 @@ ENDPROC(aesni_gcm_dec)
+ * poly = x^128 + x^127 + x^126 + x^121 + 1
+ ***************************************************************************/
+ ENTRY(aesni_gcm_enc)
+-      push    %r12
++      push    %r15
+       push    %r13
+       push    %r14
+       mov     %rsp, %r14
+@@ -1539,8 +1541,8 @@ ENTRY(aesni_gcm_enc)
+ #
+       sub     $VARIABLE_OFFSET, %rsp
+       and     $~63, %rsp
+-      mov     %arg6, %r12
+-      movdqu  (%r12), %xmm13
++      mov     %arg6, %r15
++      movdqu  (%r15), %xmm13
+         movdqa  SHUF_MASK(%rip), %xmm2
+       PSHUFB_XMM %xmm2, %xmm13
+@@ -1564,13 +1566,13 @@ ENTRY(aesni_gcm_enc)
+       movdqa  %xmm13, HashKey(%rsp)
+       mov     %arg4, %r13            # %xmm13 holds HashKey<<1 (mod poly)
+       and     $-16, %r13
+-      mov     %r13, %r12
++      mov     %r13, %r15
+         # Encrypt first few blocks
+-      and     $(3<<4), %r12
++      and     $(3<<4), %r15
+       jz      _initial_num_blocks_is_0_encrypt
+-      cmp     $(2<<4), %r12
++      cmp     $(2<<4), %r15
+       jb      _initial_num_blocks_is_1_encrypt
+       je      _initial_num_blocks_is_2_encrypt
+ _initial_num_blocks_is_3_encrypt:
+@@ -1623,14 +1625,14 @@ _zero_cipher_left_encrypt:
+       sub $16, %r11
+       add %r13, %r11
+       movdqu (%arg3,%r11,1), %xmm1     # receive the last <16 byte blocks
+-      lea SHIFT_MASK+16(%rip), %r12
+-      sub %r13, %r12
++      lea SHIFT_MASK+16(%rip), %r15
++      sub %r13, %r15
+       # adjust the shuffle mask pointer to be able to shift 16-r13 bytes
+       # (%r13 is the number of bytes in plaintext mod 16)
+-      movdqu  (%r12), %xmm2           # get the appropriate shuffle mask
++      movdqu  (%r15), %xmm2           # get the appropriate shuffle mask
+       PSHUFB_XMM      %xmm2, %xmm1            # shift right 16-r13 byte
+       pxor    %xmm1, %xmm0            # Plaintext XOR Encrypt(K, Yn)
+-      movdqu  ALL_F-SHIFT_MASK(%r12), %xmm1
++      movdqu  ALL_F-SHIFT_MASK(%r15), %xmm1
+       # get the appropriate mask to mask out top 16-r13 bytes of xmm0
+       pand    %xmm1, %xmm0            # mask out top 16-r13 bytes of xmm0
+         movdqa SHUF_MASK(%rip), %xmm10
+@@ -1663,9 +1665,9 @@ _less_than_8_bytes_left_encrypt:
+       sub $1, %r13
+       jne _less_than_8_bytes_left_encrypt
+ _multiple_of_16_bytes_encrypt:
+-      mov     arg8, %r12    # %r12 = addLen (number of bytes)
+-      shl     $3, %r12
+-      movd    %r12d, %xmm15       # len(A) in %xmm15
++      mov     arg8, %r15    # %r15 = addLen (number of bytes)
++      shl     $3, %r15
++      movd    %r15d, %xmm15       # len(A) in %xmm15
+       shl     $3, %arg4               # len(C) in bits (*128)
+       MOVQ_R64_XMM    %arg4, %xmm1
+       pslldq  $8, %xmm15          # %xmm15 = len(A)||0x0000000000000000
+@@ -1704,7 +1706,8 @@ _return_T_done_encrypt:
+       mov     %r14, %rsp
        pop     %r14
        pop     %r13
-       pop     %r12
-+      pax_force_retaddr 0, 1
+-      pop     %r12
++      pop     %r15
++      pax_force_retaddr
        ret
  ENDPROC(aesni_gcm_enc)
  
@@ -12212,7 +12465,7 @@ index 477e9d7..3ab339f 100644
        pxor %xmm1, %xmm0
        movaps %xmm0, (TKEYP)
        add $0x10, TKEYP
-+      pax_force_retaddr_bts
++      pax_force_retaddr
        ret
  ENDPROC(_key_expansion_128)
  ENDPROC(_key_expansion_256a)
@@ -12220,7 +12473,7 @@ index 477e9d7..3ab339f 100644
        shufps $0b01001110, %xmm2, %xmm1
        movaps %xmm1, 0x10(TKEYP)
        add $0x20, TKEYP
-+      pax_force_retaddr_bts
++      pax_force_retaddr
        ret
  ENDPROC(_key_expansion_192a)
  
@@ -12228,7 +12481,7 @@ index 477e9d7..3ab339f 100644
  
        movaps %xmm0, (TKEYP)
        add $0x10, TKEYP
-+      pax_force_retaddr_bts
++      pax_force_retaddr
        ret
  ENDPROC(_key_expansion_192b)
  
@@ -12236,7 +12489,7 @@ index 477e9d7..3ab339f 100644
        pxor %xmm1, %xmm2
        movaps %xmm2, (TKEYP)
        add $0x10, TKEYP
-+      pax_force_retaddr_bts
++      pax_force_retaddr
        ret
  ENDPROC(_key_expansion_256b)
  
@@ -12244,7 +12497,7 @@ index 477e9d7..3ab339f 100644
  #ifndef __x86_64__
        popl KEYP
  #endif
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  ENDPROC(aesni_set_key)
  
@@ -12252,7 +12505,7 @@ index 477e9d7..3ab339f 100644
        popl KLEN
        popl KEYP
  #endif
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  ENDPROC(aesni_enc)
  
@@ -12260,7 +12513,7 @@ index 477e9d7..3ab339f 100644
        AESENC KEY STATE
        movaps 0x70(TKEYP), KEY
        AESENCLAST KEY STATE
-+      pax_force_retaddr_bts
++      pax_force_retaddr
        ret
  ENDPROC(_aesni_enc1)
  
@@ -12268,7 +12521,7 @@ index 477e9d7..3ab339f 100644
        AESENCLAST KEY STATE2
        AESENCLAST KEY STATE3
        AESENCLAST KEY STATE4
-+      pax_force_retaddr_bts
++      pax_force_retaddr
        ret
  ENDPROC(_aesni_enc4)
  
@@ -12276,7 +12529,7 @@ index 477e9d7..3ab339f 100644
        popl KLEN
        popl KEYP
  #endif
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  ENDPROC(aesni_dec)
  
@@ -12284,7 +12537,7 @@ index 477e9d7..3ab339f 100644
        AESDEC KEY STATE
        movaps 0x70(TKEYP), KEY
        AESDECLAST KEY STATE
-+      pax_force_retaddr_bts
++      pax_force_retaddr
        ret
  ENDPROC(_aesni_dec1)
  
@@ -12292,7 +12545,7 @@ index 477e9d7..3ab339f 100644
        AESDECLAST KEY STATE2
        AESDECLAST KEY STATE3
        AESDECLAST KEY STATE4
-+      pax_force_retaddr_bts
++      pax_force_retaddr
        ret
  ENDPROC(_aesni_dec4)
  
@@ -12300,7 +12553,7 @@ index 477e9d7..3ab339f 100644
        popl KEYP
        popl LEN
  #endif
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  ENDPROC(aesni_ecb_enc)
  
@@ -12308,7 +12561,7 @@ index 477e9d7..3ab339f 100644
        popl KEYP
        popl LEN
  #endif
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  ENDPROC(aesni_ecb_dec)
  
@@ -12316,7 +12569,7 @@ index 477e9d7..3ab339f 100644
        popl LEN
        popl IVP
  #endif
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  ENDPROC(aesni_cbc_enc)
  
@@ -12324,7 +12577,7 @@ index 477e9d7..3ab339f 100644
        popl LEN
        popl IVP
  #endif
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  ENDPROC(aesni_cbc_dec)
  
@@ -12332,7 +12585,7 @@ index 477e9d7..3ab339f 100644
        mov $1, TCTR_LOW
        MOVQ_R64_XMM TCTR_LOW INC
        MOVQ_R64_XMM CTR TCTR_LOW
-+      pax_force_retaddr_bts
++      pax_force_retaddr
        ret
  ENDPROC(_aesni_inc_init)
  
@@ -12340,7 +12593,7 @@ index 477e9d7..3ab339f 100644
  .Linc_low:
        movaps CTR, IV
        PSHUFB_XMM BSWAP_MASK IV
-+      pax_force_retaddr_bts
++      pax_force_retaddr
        ret
  ENDPROC(_aesni_inc)
  
@@ -12348,7 +12601,7 @@ index 477e9d7..3ab339f 100644
  .Lctr_enc_ret:
        movups IV, (IVP)
  .Lctr_enc_just_ret:
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  ENDPROC(aesni_ctr_enc)
  
@@ -12356,12 +12609,12 @@ index 477e9d7..3ab339f 100644
        pxor INC, STATE4
        movdqu STATE4, 0x70(OUTP)
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  ENDPROC(aesni_xts_crypt8)
  
 diff --git a/arch/x86/crypto/blowfish-x86_64-asm_64.S b/arch/x86/crypto/blowfish-x86_64-asm_64.S
-index 246c670..4d1ed00 100644
+index 246c670..466e2d6 100644
 --- a/arch/x86/crypto/blowfish-x86_64-asm_64.S
 +++ b/arch/x86/crypto/blowfish-x86_64-asm_64.S
 @@ -21,6 +21,7 @@
@@ -12376,11 +12629,11 @@ index 246c670..4d1ed00 100644
        jnz .L__enc_xor;
  
        write_block();
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  .L__enc_xor:
        xor_block();
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(__blowfish_enc_blk)
  
@@ -12388,7 +12641,7 @@ index 246c670..4d1ed00 100644
  
        movq %r11, %rbp;
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(blowfish_dec_blk)
  
@@ -12396,7 +12649,7 @@ index 246c670..4d1ed00 100644
  
        popq %rbx;
        popq %rbp;
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  
  .L__enc_xor4:
@@ -12404,7 +12657,7 @@ index 246c670..4d1ed00 100644
  
        popq %rbx;
        popq %rbp;
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(__blowfish_enc_blk_4way)
  
@@ -12412,11 +12665,11 @@ index 246c670..4d1ed00 100644
        popq %rbx;
        popq %rbp;
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(blowfish_dec_blk_4way)
 diff --git a/arch/x86/crypto/camellia-aesni-avx-asm_64.S b/arch/x86/crypto/camellia-aesni-avx-asm_64.S
-index ce71f92..2dd5b1e 100644
+index ce71f92..1dce7ec 100644
 --- a/arch/x86/crypto/camellia-aesni-avx-asm_64.S
 +++ b/arch/x86/crypto/camellia-aesni-avx-asm_64.S
 @@ -16,6 +16,7 @@
@@ -12431,7 +12684,7 @@ index ce71f92..2dd5b1e 100644
        roundsm16(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7,
                  %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, %xmm15,
                  %rcx, (%r9));
-+      pax_force_retaddr_bts
++      pax_force_retaddr
        ret;
  ENDPROC(roundsm16_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd)
  
@@ -12439,7 +12692,7 @@ index ce71f92..2dd5b1e 100644
        roundsm16(%xmm4, %xmm5, %xmm6, %xmm7, %xmm0, %xmm1, %xmm2, %xmm3,
                  %xmm12, %xmm13, %xmm14, %xmm15, %xmm8, %xmm9, %xmm10, %xmm11,
                  %rax, (%r9));
-+      pax_force_retaddr_bts
++      pax_force_retaddr
        ret;
  ENDPROC(roundsm16_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab)
  
@@ -12447,7 +12700,7 @@ index ce71f92..2dd5b1e 100644
                    %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14,
                    %xmm15, (key_table)(CTX, %r8, 8), (%rax), 1 * 16(%rax));
  
-+      pax_force_retaddr_bts
++      pax_force_retaddr
        ret;
  
  .align 8
@@ -12455,7 +12708,7 @@ index ce71f92..2dd5b1e 100644
                    %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14,
                    %xmm15, (key_table)(CTX), (%rax), 1 * 16(%rax));
  
-+      pax_force_retaddr_bts
++      pax_force_retaddr
        ret;
  
  .align 8
@@ -12463,7 +12716,7 @@ index ce71f92..2dd5b1e 100644
                     %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
                     %xmm8, %rsi);
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(camellia_ecb_enc_16way)
  
@@ -12471,7 +12724,7 @@ index ce71f92..2dd5b1e 100644
                     %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
                     %xmm8, %rsi);
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(camellia_ecb_dec_16way)
  
@@ -12479,7 +12732,7 @@ index ce71f92..2dd5b1e 100644
                     %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
                     %xmm8, %rsi);
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(camellia_cbc_dec_16way)
  
@@ -12487,7 +12740,7 @@ index ce71f92..2dd5b1e 100644
                     %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
                     %xmm8, %rsi);
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(camellia_ctr_16way)
  
@@ -12495,12 +12748,12 @@ index ce71f92..2dd5b1e 100644
                     %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
                     %xmm8, %rsi);
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(camellia_xts_crypt_16way)
  
 diff --git a/arch/x86/crypto/camellia-aesni-avx2-asm_64.S b/arch/x86/crypto/camellia-aesni-avx2-asm_64.S
-index 0e0b886..8fc756a 100644
+index 0e0b886..5a3123c 100644
 --- a/arch/x86/crypto/camellia-aesni-avx2-asm_64.S
 +++ b/arch/x86/crypto/camellia-aesni-avx2-asm_64.S
 @@ -11,6 +11,7 @@
@@ -12515,7 +12768,7 @@ index 0e0b886..8fc756a 100644
        roundsm32(%ymm0, %ymm1, %ymm2, %ymm3, %ymm4, %ymm5, %ymm6, %ymm7,
                  %ymm8, %ymm9, %ymm10, %ymm11, %ymm12, %ymm13, %ymm14, %ymm15,
                  %rcx, (%r9));
-+      pax_force_retaddr_bts
++      pax_force_retaddr
        ret;
  ENDPROC(roundsm32_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd)
  
@@ -12523,7 +12776,7 @@ index 0e0b886..8fc756a 100644
        roundsm32(%ymm4, %ymm5, %ymm6, %ymm7, %ymm0, %ymm1, %ymm2, %ymm3,
                  %ymm12, %ymm13, %ymm14, %ymm15, %ymm8, %ymm9, %ymm10, %ymm11,
                  %rax, (%r9));
-+      pax_force_retaddr_bts
++      pax_force_retaddr
        ret;
  ENDPROC(roundsm32_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab)
  
@@ -12531,7 +12784,7 @@ index 0e0b886..8fc756a 100644
                    %ymm8, %ymm9, %ymm10, %ymm11, %ymm12, %ymm13, %ymm14,
                    %ymm15, (key_table)(CTX, %r8, 8), (%rax), 1 * 32(%rax));
  
-+      pax_force_retaddr_bts
++      pax_force_retaddr
        ret;
  
  .align 8
@@ -12539,7 +12792,7 @@ index 0e0b886..8fc756a 100644
                    %ymm8, %ymm9, %ymm10, %ymm11, %ymm12, %ymm13, %ymm14,
                    %ymm15, (key_table)(CTX), (%rax), 1 * 32(%rax));
  
-+      pax_force_retaddr_bts
++      pax_force_retaddr
        ret;
  
  .align 8
@@ -12547,7 +12800,7 @@ index 0e0b886..8fc756a 100644
  
        vzeroupper;
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(camellia_ecb_enc_32way)
  
@@ -12555,7 +12808,7 @@ index 0e0b886..8fc756a 100644
  
        vzeroupper;
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(camellia_ecb_dec_32way)
  
@@ -12563,7 +12816,7 @@ index 0e0b886..8fc756a 100644
  
        vzeroupper;
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(camellia_cbc_dec_32way)
  
@@ -12571,7 +12824,7 @@ index 0e0b886..8fc756a 100644
  
        vzeroupper;
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(camellia_ctr_32way)
  
@@ -12579,12 +12832,12 @@ index 0e0b886..8fc756a 100644
  
        vzeroupper;
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(camellia_xts_crypt_32way)
  
 diff --git a/arch/x86/crypto/camellia-x86_64-asm_64.S b/arch/x86/crypto/camellia-x86_64-asm_64.S
-index 310319c..ce174a4 100644
+index 310319c..db3d7b5 100644
 --- a/arch/x86/crypto/camellia-x86_64-asm_64.S
 +++ b/arch/x86/crypto/camellia-x86_64-asm_64.S
 @@ -21,6 +21,7 @@
@@ -12599,14 +12852,14 @@ index 310319c..ce174a4 100644
        enc_outunpack(mov, RT1);
  
        movq RRBP, %rbp;
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  
  .L__enc_xor:
        enc_outunpack(xor, RT1);
  
        movq RRBP, %rbp;
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(__camellia_enc_blk)
  
@@ -12614,7 +12867,7 @@ index 310319c..ce174a4 100644
        dec_outunpack();
  
        movq RRBP, %rbp;
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(camellia_dec_blk)
  
@@ -12622,7 +12875,7 @@ index 310319c..ce174a4 100644
  
        movq RRBP, %rbp;
        popq %rbx;
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  
  .L__enc2_xor:
@@ -12630,7 +12883,7 @@ index 310319c..ce174a4 100644
  
        movq RRBP, %rbp;
        popq %rbx;
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(__camellia_enc_blk_2way)
  
@@ -12638,11 +12891,11 @@ index 310319c..ce174a4 100644
  
        movq RRBP, %rbp;
        movq RXOR, %rbx;
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(camellia_dec_blk_2way)
 diff --git a/arch/x86/crypto/cast5-avx-x86_64-asm_64.S b/arch/x86/crypto/cast5-avx-x86_64-asm_64.S
-index c35fd5d..c1ee236 100644
+index c35fd5d..2d8c7db 100644
 --- a/arch/x86/crypto/cast5-avx-x86_64-asm_64.S
 +++ b/arch/x86/crypto/cast5-avx-x86_64-asm_64.S
 @@ -24,6 +24,7 @@
@@ -12657,7 +12910,7 @@ index c35fd5d..c1ee236 100644
        outunpack_blocks(RR3, RL3, RTMP, RX, RKM);
        outunpack_blocks(RR4, RL4, RTMP, RX, RKM);
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(__cast5_enc_blk16)
  
@@ -12665,7 +12918,7 @@ index c35fd5d..c1ee236 100644
        outunpack_blocks(RR3, RL3, RTMP, RX, RKM);
        outunpack_blocks(RR4, RL4, RTMP, RX, RKM);
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  
  .L__skip_dec:
@@ -12685,23 +12938,103 @@ index c35fd5d..c1ee236 100644
        ret;
  ENDPROC(cast5_ecb_dec_16way)
  
-@@ -469,6 +474,7 @@ ENTRY(cast5_cbc_dec_16way)
+@@ -430,10 +435,10 @@ ENTRY(cast5_cbc_dec_16way)
+        *      %rdx: src
+        */
  
-       popq %r12;
+-      pushq %r12;
++      pushq %r14;
+       movq %rsi, %r11;
+-      movq %rdx, %r12;
++      movq %rdx, %r14;
+       vmovdqu (0*16)(%rdx), RL1;
+       vmovdqu (1*16)(%rdx), RR1;
+@@ -447,16 +452,16 @@ ENTRY(cast5_cbc_dec_16way)
+       call __cast5_dec_blk16;
+       /* xor with src */
+-      vmovq (%r12), RX;
++      vmovq (%r14), RX;
+       vpshufd $0x4f, RX, RX;
+       vpxor RX, RR1, RR1;
+-      vpxor 0*16+8(%r12), RL1, RL1;
+-      vpxor 1*16+8(%r12), RR2, RR2;
+-      vpxor 2*16+8(%r12), RL2, RL2;
+-      vpxor 3*16+8(%r12), RR3, RR3;
+-      vpxor 4*16+8(%r12), RL3, RL3;
+-      vpxor 5*16+8(%r12), RR4, RR4;
+-      vpxor 6*16+8(%r12), RL4, RL4;
++      vpxor 0*16+8(%r14), RL1, RL1;
++      vpxor 1*16+8(%r14), RR2, RR2;
++      vpxor 2*16+8(%r14), RL2, RL2;
++      vpxor 3*16+8(%r14), RR3, RR3;
++      vpxor 4*16+8(%r14), RL3, RL3;
++      vpxor 5*16+8(%r14), RR4, RR4;
++      vpxor 6*16+8(%r14), RL4, RL4;
+       vmovdqu RR1, (0*16)(%r11);
+       vmovdqu RL1, (1*16)(%r11);
+@@ -467,8 +472,9 @@ ENTRY(cast5_cbc_dec_16way)
+       vmovdqu RR4, (6*16)(%r11);
+       vmovdqu RL4, (7*16)(%r11);
+-      popq %r12;
++      popq %r14;
  
 +      pax_force_retaddr
        ret;
  ENDPROC(cast5_cbc_dec_16way)
  
-@@ -542,5 +548,6 @@ ENTRY(cast5_ctr_16way)
+@@ -480,10 +486,10 @@ ENTRY(cast5_ctr_16way)
+        *      %rcx: iv (big endian, 64bit)
+        */
  
-       popq %r12;
+-      pushq %r12;
++      pushq %r14;
+       movq %rsi, %r11;
+-      movq %rdx, %r12;
++      movq %rdx, %r14;
+       vpcmpeqd RTMP, RTMP, RTMP;
+       vpsrldq $8, RTMP, RTMP; /* low: -1, high: 0 */
+@@ -523,14 +529,14 @@ ENTRY(cast5_ctr_16way)
+       call __cast5_enc_blk16;
+       /* dst = src ^ iv */
+-      vpxor (0*16)(%r12), RR1, RR1;
+-      vpxor (1*16)(%r12), RL1, RL1;
+-      vpxor (2*16)(%r12), RR2, RR2;
+-      vpxor (3*16)(%r12), RL2, RL2;
+-      vpxor (4*16)(%r12), RR3, RR3;
+-      vpxor (5*16)(%r12), RL3, RL3;
+-      vpxor (6*16)(%r12), RR4, RR4;
+-      vpxor (7*16)(%r12), RL4, RL4;
++      vpxor (0*16)(%r14), RR1, RR1;
++      vpxor (1*16)(%r14), RL1, RL1;
++      vpxor (2*16)(%r14), RR2, RR2;
++      vpxor (3*16)(%r14), RL2, RL2;
++      vpxor (4*16)(%r14), RR3, RR3;
++      vpxor (5*16)(%r14), RL3, RL3;
++      vpxor (6*16)(%r14), RR4, RR4;
++      vpxor (7*16)(%r14), RL4, RL4;
+       vmovdqu RR1, (0*16)(%r11);
+       vmovdqu RL1, (1*16)(%r11);
+       vmovdqu RR2, (2*16)(%r11);
+@@ -540,7 +546,8 @@ ENTRY(cast5_ctr_16way)
+       vmovdqu RR4, (6*16)(%r11);
+       vmovdqu RL4, (7*16)(%r11);
+-      popq %r12;
++      popq %r14;
  
 +      pax_force_retaddr
        ret;
  ENDPROC(cast5_ctr_16way)
 diff --git a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S
-index e3531f8..18ded3a 100644
+index e3531f8..e123f35 100644
 --- a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S
 +++ b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S
 @@ -24,6 +24,7 @@
@@ -12716,7 +13049,7 @@ index e3531f8..18ded3a 100644
        outunpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM);
        outunpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM);
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(__cast6_enc_blk8)
  
@@ -12724,7 +13057,7 @@ index e3531f8..18ded3a 100644
        outunpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM);
        outunpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM);
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(__cast6_dec_blk8)
  
@@ -12744,17 +13077,52 @@ index e3531f8..18ded3a 100644
        ret;
  ENDPROC(cast6_ecb_dec_8way)
  
-@@ -399,6 +404,7 @@ ENTRY(cast6_cbc_dec_8way)
+@@ -386,19 +391,20 @@ ENTRY(cast6_cbc_dec_8way)
+        *      %rdx: src
+        */
+-      pushq %r12;
++      pushq %r14;
+       movq %rsi, %r11;
+-      movq %rdx, %r12;
++      movq %rdx, %r14;
+       load_8way(%rdx, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
+       call __cast6_dec_blk8;
+-      store_cbc_8way(%r12, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
++      store_cbc_8way(%r14, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
  
-       popq %r12;
+-      popq %r12;
++      popq %r14;
  
 +      pax_force_retaddr
        ret;
  ENDPROC(cast6_cbc_dec_8way)
  
-@@ -424,6 +430,7 @@ ENTRY(cast6_ctr_8way)
+@@ -410,20 +416,21 @@ ENTRY(cast6_ctr_8way)
+        *      %rcx: iv (little endian, 128bit)
+        */
+-      pushq %r12;
++      pushq %r14;
+       movq %rsi, %r11;
+-      movq %rdx, %r12;
++      movq %rdx, %r14;
+       load_ctr_8way(%rcx, .Lbswap128_mask, RA1, RB1, RC1, RD1, RA2, RB2, RC2,
+                     RD2, RX, RKR, RKM);
+       call __cast6_enc_blk8;
  
-       popq %r12;
+-      store_ctr_8way(%r12, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
++      store_ctr_8way(%r14, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
+-      popq %r12;
++      popq %r14;
  
 +      pax_force_retaddr
        ret;
@@ -12776,7 +13144,7 @@ index e3531f8..18ded3a 100644
        ret;
  ENDPROC(cast6_xts_dec_8way)
 diff --git a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
-index dbc4339..3d868c5 100644
+index dbc4339..de6e120 100644
 --- a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
 +++ b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
 @@ -45,6 +45,7 @@
@@ -12791,7 +13159,7 @@ index dbc4339..3d868c5 100644
        popq    %rsi
        popq    %rdi
        popq    %rbx
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
          ret
  
          ################################################################
@@ -12839,7 +13207,7 @@ index 586f41a..d02851e 100644
        ret
  ENDPROC(clmul_ghash_setkey)
 diff --git a/arch/x86/crypto/salsa20-x86_64-asm_64.S b/arch/x86/crypto/salsa20-x86_64-asm_64.S
-index 9279e0b..9270820 100644
+index 9279e0b..c4b3d2c 100644
 --- a/arch/x86/crypto/salsa20-x86_64-asm_64.S
 +++ b/arch/x86/crypto/salsa20-x86_64-asm_64.S
 @@ -1,4 +1,5 @@
@@ -12852,7 +13220,7 @@ index 9279e0b..9270820 100644
        add     %r11,%rsp
        mov     %rdi,%rax
        mov     %rsi,%rdx
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  #   bytesatleast65:
  ._bytesatleast65:
@@ -13056,7 +13424,7 @@ index acc066c..1559cc4 100644
        ret;
  ENDPROC(serpent_dec_blk_8way)
 diff --git a/arch/x86/crypto/sha1_ssse3_asm.S b/arch/x86/crypto/sha1_ssse3_asm.S
-index a410950..3356d42 100644
+index a410950..9dfe7ad 100644
 --- a/arch/x86/crypto/sha1_ssse3_asm.S
 +++ b/arch/x86/crypto/sha1_ssse3_asm.S
 @@ -29,6 +29,7 @@
@@ -13067,16 +13435,35 @@ index a410950..3356d42 100644
  
  #define CTX   %rdi    // arg1
  #define BUF   %rsi    // arg2
-@@ -104,6 +105,7 @@
-       pop     %r12
+@@ -75,9 +76,9 @@
+       push    %rbx
+       push    %rbp
+-      push    %r12
++      push    %r14
+-      mov     %rsp, %r12
++      mov     %rsp, %r14
+       sub     $64, %rsp               # allocate workspace
+       and     $~15, %rsp              # align stack
+@@ -99,11 +100,12 @@
+       xor     %rax, %rax
+       rep stosq
+-      mov     %r12, %rsp              # deallocate workspace
++      mov     %r14, %rsp              # deallocate workspace
+-      pop     %r12
++      pop     %r14
        pop     %rbp
        pop     %rbx
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  
        ENDPROC(\name)
 diff --git a/arch/x86/crypto/sha256-avx-asm.S b/arch/x86/crypto/sha256-avx-asm.S
-index 642f156..4ab07b9 100644
+index 642f156..51a513c 100644
 --- a/arch/x86/crypto/sha256-avx-asm.S
 +++ b/arch/x86/crypto/sha256-avx-asm.S
 @@ -49,6 +49,7 @@
@@ -13091,12 +13478,12 @@ index 642f156..4ab07b9 100644
        popq    %r13
        popq    %rbp
        popq    %rbx
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  ENDPROC(sha256_transform_avx)
  
 diff --git a/arch/x86/crypto/sha256-avx2-asm.S b/arch/x86/crypto/sha256-avx2-asm.S
-index 9e86944..2e7f95a 100644
+index 9e86944..3795e6a 100644
 --- a/arch/x86/crypto/sha256-avx2-asm.S
 +++ b/arch/x86/crypto/sha256-avx2-asm.S
 @@ -50,6 +50,7 @@
@@ -13111,12 +13498,12 @@ index 9e86944..2e7f95a 100644
        popq    %r12
        popq    %rbp
        popq    %rbx
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  ENDPROC(sha256_transform_rorx)
  
 diff --git a/arch/x86/crypto/sha256-ssse3-asm.S b/arch/x86/crypto/sha256-ssse3-asm.S
-index f833b74..c36ed14 100644
+index f833b74..8c62a9e 100644
 --- a/arch/x86/crypto/sha256-ssse3-asm.S
 +++ b/arch/x86/crypto/sha256-ssse3-asm.S
 @@ -47,6 +47,7 @@
@@ -13131,12 +13518,12 @@ index f833b74..c36ed14 100644
        popq    %rbp
        popq    %rbx
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  ENDPROC(sha256_transform_ssse3)
  
 diff --git a/arch/x86/crypto/sha512-avx-asm.S b/arch/x86/crypto/sha512-avx-asm.S
-index 974dde9..4533d34 100644
+index 974dde9..a823ff9 100644
 --- a/arch/x86/crypto/sha512-avx-asm.S
 +++ b/arch/x86/crypto/sha512-avx-asm.S
 @@ -49,6 +49,7 @@
@@ -13151,12 +13538,12 @@ index 974dde9..4533d34 100644
        mov     frame_RSPSAVE(%rsp), %rsp
  
  nowork:
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  ENDPROC(sha512_transform_avx)
  
 diff --git a/arch/x86/crypto/sha512-avx2-asm.S b/arch/x86/crypto/sha512-avx2-asm.S
-index 568b961..061ef1d 100644
+index 568b961..ed20c37 100644
 --- a/arch/x86/crypto/sha512-avx2-asm.S
 +++ b/arch/x86/crypto/sha512-avx2-asm.S
 @@ -51,6 +51,7 @@
@@ -13171,12 +13558,12 @@ index 568b961..061ef1d 100644
  
        # Restore Stack Pointer
        mov     frame_RSPSAVE(%rsp), %rsp
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  ENDPROC(sha512_transform_rorx)
  
 diff --git a/arch/x86/crypto/sha512-ssse3-asm.S b/arch/x86/crypto/sha512-ssse3-asm.S
-index fb56855..e23914f 100644
+index fb56855..6edd768 100644
 --- a/arch/x86/crypto/sha512-ssse3-asm.S
 +++ b/arch/x86/crypto/sha512-ssse3-asm.S
 @@ -48,6 +48,7 @@
@@ -13191,12 +13578,12 @@ index fb56855..e23914f 100644
        mov     frame_RSPSAVE(%rsp), %rsp
  
  nowork:
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  ENDPROC(sha512_transform_ssse3)
  
 diff --git a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S
-index 0505813..63b1d00 100644
+index 0505813..b067311 100644
 --- a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S
 +++ b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S
 @@ -24,6 +24,7 @@
@@ -13211,7 +13598,7 @@ index 0505813..63b1d00 100644
        outunpack_blocks(RC1, RD1, RA1, RB1, RK1, RX0, RY0, RK2);
        outunpack_blocks(RC2, RD2, RA2, RB2, RK1, RX0, RY0, RK2);
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(__twofish_enc_blk8)
  
@@ -13219,7 +13606,7 @@ index 0505813..63b1d00 100644
        outunpack_blocks(RA1, RB1, RC1, RD1, RK1, RX0, RY0, RK2);
        outunpack_blocks(RA2, RB2, RC2, RD2, RK1, RX0, RY0, RK2);
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(__twofish_dec_blk8)
  
@@ -13227,7 +13614,7 @@ index 0505813..63b1d00 100644
  
        store_8way(%r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(twofish_ecb_enc_8way)
  
@@ -13235,23 +13622,58 @@ index 0505813..63b1d00 100644
  
        store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(twofish_ecb_dec_8way)
  
-@@ -383,6 +388,7 @@ ENTRY(twofish_cbc_dec_8way)
+@@ -370,19 +375,20 @@ ENTRY(twofish_cbc_dec_8way)
+        *      %rdx: src
+        */
+-      pushq %r12;
++      pushq %r14;
  
-       popq %r12;
+       movq %rsi, %r11;
+-      movq %rdx, %r12;
++      movq %rdx, %r14;
  
-+      pax_force_retaddr 0, 1
+       load_8way(%rdx, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
+       call __twofish_dec_blk8;
+-      store_cbc_8way(%r12, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
++      store_cbc_8way(%r14, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
+-      popq %r12;
++      popq %r14;
++      pax_force_retaddr
        ret;
  ENDPROC(twofish_cbc_dec_8way)
  
-@@ -408,6 +414,7 @@ ENTRY(twofish_ctr_8way)
+@@ -394,20 +400,21 @@ ENTRY(twofish_ctr_8way)
+        *      %rcx: iv (little endian, 128bit)
+        */
  
-       popq %r12;
+-      pushq %r12;
++      pushq %r14;
  
-+      pax_force_retaddr 0, 1
+       movq %rsi, %r11;
+-      movq %rdx, %r12;
++      movq %rdx, %r14;
+       load_ctr_8way(%rcx, .Lbswap128_mask, RA1, RB1, RC1, RD1, RA2, RB2, RC2,
+                     RD2, RX0, RX1, RY0);
+       call __twofish_enc_blk8;
+-      store_ctr_8way(%r12, %r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
++      store_ctr_8way(%r14, %r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
+-      popq %r12;
++      popq %r14;
++      pax_force_retaddr
        ret;
  ENDPROC(twofish_ctr_8way)
  
@@ -13259,7 +13681,7 @@ index 0505813..63b1d00 100644
        /* dst <= regs xor IVs(in dst) */
        store_xts_8way(%r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(twofish_xts_enc_8way)
  
@@ -13267,11 +13689,11 @@ index 0505813..63b1d00 100644
        /* dst <= regs xor IVs(in dst) */
        store_xts_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
  
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(twofish_xts_dec_8way)
 diff --git a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
-index 1c3b7ce..b365c5e 100644
+index 1c3b7ce..02f578d 100644
 --- a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
 +++ b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
 @@ -21,6 +21,7 @@
@@ -13286,7 +13708,7 @@ index 1c3b7ce..b365c5e 100644
        popq %r13;
        popq %r14;
        popq %r15;
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  
  .L__enc_xor3:
@@ -13294,7 +13716,7 @@ index 1c3b7ce..b365c5e 100644
        popq %r13;
        popq %r14;
        popq %r15;
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(__twofish_enc_blk_3way)
  
@@ -13302,11 +13724,11 @@ index 1c3b7ce..b365c5e 100644
        popq %r13;
        popq %r14;
        popq %r15;
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret;
  ENDPROC(twofish_dec_blk_3way)
 diff --git a/arch/x86/crypto/twofish-x86_64-asm_64.S b/arch/x86/crypto/twofish-x86_64-asm_64.S
-index a039d21..29e7615 100644
+index a039d21..524b8b2 100644
 --- a/arch/x86/crypto/twofish-x86_64-asm_64.S
 +++ b/arch/x86/crypto/twofish-x86_64-asm_64.S
 @@ -22,6 +22,7 @@
@@ -13321,7 +13743,7 @@ index a039d21..29e7615 100644
  
        popq    R1
        movq    $1,%rax
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  ENDPROC(twofish_enc_blk)
  
@@ -13329,14 +13751,14 @@ index a039d21..29e7615 100644
  
        popq    R1
        movq    $1,%rax
-+      pax_force_retaddr 0, 1
++      pax_force_retaddr
        ret
  ENDPROC(twofish_dec_blk)
 diff --git a/arch/x86/ia32/ia32_aout.c b/arch/x86/ia32/ia32_aout.c
-index bae3aba..c1788c1 100644
+index d21ff89..6da8e6e 100644
 --- a/arch/x86/ia32/ia32_aout.c
 +++ b/arch/x86/ia32/ia32_aout.c
-@@ -159,6 +159,8 @@ static int aout_core_dump(long signr, struct pt_regs *regs, struct file *file,
+@@ -153,6 +153,8 @@ static int aout_core_dump(struct coredump_params *cprm)
        unsigned long dump_start, dump_size;
        struct user32 dump;
  
@@ -13346,9 +13768,18 @@ index bae3aba..c1788c1 100644
        set_fs(KERNEL_DS);
        has_dumped = 1;
 diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c
-index 665a730..8e7a67a 100644
+index 2206757..85cbcfa 100644
 --- a/arch/x86/ia32/ia32_signal.c
 +++ b/arch/x86/ia32/ia32_signal.c
+@@ -218,7 +218,7 @@ asmlinkage long sys32_sigreturn(void)
+       if (__get_user(set.sig[0], &frame->sc.oldmask)
+           || (_COMPAT_NSIG_WORDS > 1
+               && __copy_from_user((((char *) &set.sig) + 4),
+-                                  &frame->extramask,
++                                  frame->extramask,
+                                   sizeof(frame->extramask))))
+               goto badframe;
 @@ -338,7 +338,7 @@ static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs,
        sp -= frame_size;
        /* Align the stack pointer according to the i386 ABI,
@@ -13358,6 +13789,15 @@ index 665a730..8e7a67a 100644
        return (void __user *) sp;
  }
  
+@@ -386,7 +386,7 @@ int ia32_setup_frame(int sig, struct ksignal *ksig,
+                       restorer = VDSO32_SYMBOL(current->mm->context.vdso,
+                                                sigreturn);
+               else
+-                      restorer = &frame->retcode;
++                      restorer = frame->retcode;
+       }
+       put_user_try {
 @@ -396,7 +396,7 @@ int ia32_setup_frame(int sig, struct ksignal *ksig,
                 * These are actually not used anymore, but left because some
                 * gdb versions depend on them as a marker.