]> git.ipfire.org Git - people/ms/ipfire-3.x.git/commitdiff
kernel: Add an ARM LPAE kernel. kernel-3.13
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 10 Feb 2014 19:27:41 +0000 (19:27 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 10 Feb 2014 19:27:41 +0000 (19:27 +0000)
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-x86-generic
kernel/kernel.nm
kernel/patches/grsecurity-3.0-3.13.2-201402091134.patch [moved from kernel/patches/grsecurity-3.0-3.13.1-201401292203.patch with 99% similarity]
kernel/scripts/configure

index a1b48df7ce883e75421f30357e58761b27744b9f..319f296f7e6e28ecbd080aa37059532afca8928b 100644 (file)
@@ -1,38 +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_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
 CONFIG_GENERIC_SCHED_CLOCK=y
 CONFIG_PERF_USE_VMALLOC=y
 
@@ -53,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
@@ -69,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
@@ -89,56 +66,30 @@ CONFIG_ARCH_VERSATILE=y
 # CONFIG_ARCH_EXYNOS 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
 #
@@ -325,7 +258,6 @@ CONFIG_MDIO_BUS_MUX_MMIOREG=m
 #
 # Hardware I/O ports
 #
-CONFIG_SERIO_AMBAKMI=m
 CONFIG_SERIO_APBPS2=m
 # CONFIG_SERIO_OLPC_APSP is not set
 
@@ -338,8 +270,6 @@ 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
@@ -361,13 +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_SH_MOBILE=m
-CONFIG_I2C_VERSATILE=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
@@ -376,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
 
@@ -406,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
 
@@ -455,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
 #
@@ -468,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
@@ -485,18 +404,12 @@ 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)
 #
@@ -505,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
 
 #
@@ -522,7 +431,6 @@ 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
 
@@ -534,14 +442,7 @@ 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
@@ -565,13 +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
 
 #
 # Executable Protections
@@ -615,4 +509,3 @@ CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
 #
 CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
 CONFIG_AUDIT_GENERIC=y
-CONFIG_GENERIC_ATOMIC64=y
index d335e8c2fb499e1ea21ea1e7c7e5f996ba73199f..b05506fa7c2af1f9a005859091a297af00acc8e3 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,6 +121,8 @@ 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
@@ -87,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.
 #
@@ -156,6 +312,10 @@ 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_FIXED_VOLTAGE=y
@@ -182,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
@@ -201,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
 #
@@ -229,6 +465,11 @@ CONFIG_MV_XOR=y
 #
 CONFIG_DMA_ENGINE_RAID=y
 
+#
+# Microsoft Hyper-V guest support
+#
+# CONFIG_PANEL is not set
+
 #
 # Android
 #
@@ -255,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
 #
@@ -268,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
@@ -278,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 0dc1fc5d1d3d155aa57eb3cb0feda5e1244ee865..1ab74929e8f2e7599cfcd6fd37cce27d688e1215 100644 (file)
@@ -1,17 +1,7 @@
 CONFIG_NO_IOPORT=y
-CONFIG_ARCH_HAS_CPUFREQ=y
-CONFIG_ARCH_HAS_BANDGAP=y
 CONFIG_ZONE_DMA=y
 CONFIG_FIQ=y
 
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_IRQ_CHIP=y
-CONFIG_SPARSE_IRQ=y
-CONFIG_ARCH_HAS_TICK_BROADCAST=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
-
 #
 # Timers subsystem
 #
@@ -24,50 +14,27 @@ CONFIG_NO_HZ_FULL_ALL=y
 # CPU/Task time and stats accounting
 #
 CONFIG_VIRT_CPU_ACCOUNTING=y
-# CONFIG_TICK_CPU_ACCOUNTING is not set
 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
-
 #
 # 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
 
 #
@@ -175,29 +142,17 @@ 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
@@ -262,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
@@ -271,8 +225,6 @@ CONFIG_ARCH_TEGRA_2x_SOC=y
 CONFIG_ARCH_TEGRA_3x_SOC=y
 CONFIG_ARCH_TEGRA_114_SOC=y
 CONFIG_ARCH_TEGRA_124_SOC=y
-CONFIG_TEGRA_AHB=y
-# CONFIG_TEGRA_EMC_SCALING_ENABLE is not set
 CONFIG_ARCH_U8500=y
 CONFIG_UX500_SOC_DB8500=y
 
@@ -293,12 +245,16 @@ 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
@@ -306,38 +262,22 @@ 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_ARCH_PHYS_ADDR_T_64BIT is not set
 # CONFIG_CPU_BIG_ENDIAN is not set
-# CONFIG_CPU_BPREDICT_DISABLE 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
@@ -353,13 +293,12 @@ 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
 
 #
@@ -374,19 +313,11 @@ CONFIG_PCI_TEGRA=y
 #
 # 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_BIG_LITTLE 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
@@ -396,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
 #
@@ -409,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
 
@@ -554,6 +463,7 @@ CONFIG_MG_DISK_RES=0
 #
 # Misc devices
 #
+# CONFIG_ARM_CHARLCD is not set
 CONFIG_SRAM=y
 
 #
@@ -630,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
@@ -654,7 +571,6 @@ 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
 
 #
@@ -665,24 +581,18 @@ 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
@@ -701,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
@@ -716,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
@@ -734,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
@@ -756,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
@@ -771,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
@@ -804,6 +710,7 @@ 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
@@ -853,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
@@ -873,11 +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_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
@@ -935,11 +837,6 @@ CONFIG_REGULATOR_WM8350=m
 CONFIG_REGULATOR_WM8400=m
 CONFIG_REGULATOR_WM8994=m
 
-#
-# Multimedia core support
-#
-CONFIG_VIDEO_V4L2=y
-
 #
 # Media drivers
 #
@@ -956,26 +853,6 @@ CONFIG_VIDEO_CODA=m
 CONFIG_VIDEO_TI_VPE=m
 # CONFIG_VIDEO_TI_VPE_DEBUG is not set
 
-#
-# 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
-
 #
 # Graphics support
 #
@@ -1005,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
@@ -1052,6 +930,7 @@ 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
@@ -1112,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
@@ -1135,14 +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_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
 
 #
@@ -1153,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
@@ -1227,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
@@ -1237,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
@@ -1244,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
@@ -1256,21 +1132,9 @@ CONFIG_DMA_VIRTUAL_CHANNELS=y
 #
 CONFIG_DMA_ENGINE_RAID=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
 # CONFIG_COMMON_CLK_WM831X is not set
 CONFIG_COMMON_CLK_VERSATILE=y
 # CONFIG_COMMON_CLK_MAX77686 is not set
@@ -1299,17 +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_ARCH_TIMER_EVTSTREAM=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
@@ -1329,7 +1190,8 @@ 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
 
 #
@@ -1337,36 +1199,21 @@ CONFIG_ARCH_HAS_RESET_CONTROLLER=y
 #
 CONFIG_OMAP_USB2=m
 
-#
-# File systems
-#
-CONFIG_DCACHE_WORD_ACCESS=y
-
 #
 # 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
@@ -1425,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 e9e2e5acb81a6aa3a26358cbfa55513559099110..933d8ac5b90ae8e9c7ef408528f752176842eb98 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
@@ -301,7 +300,6 @@ CONFIG_PM_CLK=y
 #
 # CPU Idle
 #
-# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
 
 #
 # Memory power savings
@@ -329,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
@@ -958,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
 
@@ -974,24 +961,13 @@ CONFIG_DMA_SHARED_BUFFER=y
 #
 CONFIG_CONNECTOR=y
 CONFIG_PROC_EVENTS=y
-# CONFIG_MTD is not set
-CONFIG_PARPORT=m
 CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
-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
 
 #
 # Protocols
 #
 CONFIG_BLK_DEV=y
 # CONFIG_BLK_DEV_NULL_BLK is not set
-# CONFIG_PARIDE is not set
 CONFIG_BLK_CPQ_CISS_DA=m
 # CONFIG_CISS_SCSI_TAPE is not set
 CONFIG_BLK_DEV_DAC960=m
@@ -1007,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
@@ -1041,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
 
 #
@@ -1173,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
@@ -1298,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
 
 #
@@ -1421,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
@@ -1475,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
@@ -1610,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
@@ -1946,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
@@ -1984,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
@@ -2003,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
@@ -2035,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
@@ -2094,20 +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_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
@@ -2127,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
 
 #
@@ -2176,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
@@ -2209,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
 
 #
@@ -2228,7 +2180,6 @@ CONFIG_PTP_1588_CLOCK=m
 #
 # Pin controllers
 #
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
 CONFIG_GPIOLIB=y
 CONFIG_GPIO_DEVRES=y
 # CONFIG_DEBUG_GPIO is not set
@@ -2237,7 +2188,6 @@ 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
 
@@ -2260,7 +2210,6 @@ CONFIG_GPIO_TS5500=m
 #
 # SPI GPIO expanders:
 #
-# CONFIG_GPIO_MCP23S08 is not set
 
 #
 # AC97 GPIO expanders:
@@ -2522,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
@@ -2539,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
 
 #
@@ -2567,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
@@ -2832,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
@@ -2859,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
@@ -2929,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
@@ -3090,9 +3020,6 @@ 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
@@ -3108,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
@@ -3129,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
 
 #
@@ -3175,7 +3099,6 @@ 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
@@ -3241,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
@@ -3320,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
@@ -3552,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
@@ -3582,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
@@ -3644,10 +3562,6 @@ CONFIG_USB_XUSBATM=m
 # USB Physical Layer drivers
 #
 CONFIG_USB_PHY=y
-CONFIG_NOP_USB_XCEIV=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
@@ -3656,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
@@ -3664,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
@@ -3673,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
@@ -3712,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
@@ -3735,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
@@ -3871,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
@@ -4440,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
@@ -4873,7 +4777,6 @@ 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
@@ -4882,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 4ff4f5494b6db99486363758f0dcd0e513d58756..c6b9e21dc1cdc709f8d53a4ba761feb0444561d2 100644 (file)
@@ -243,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
 
 #
@@ -266,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
@@ -294,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
 
@@ -307,7 +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_DEV_RAM_SIZE=16384
 CONFIG_XEN_BLKDEV_FRONTEND=m
 CONFIG_XEN_BLKDEV_BACKEND=m
 # CONFIG_BLK_DEV_HD is not set
@@ -317,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
@@ -340,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
 #
@@ -374,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
@@ -387,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
 #
@@ -405,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
@@ -420,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
@@ -436,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
@@ -447,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
@@ -466,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.
 #
@@ -479,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
@@ -497,6 +566,11 @@ CONFIG_GPIO_ICH=m
 # CONFIG_GPIO_INTEL_MID is not set
 # CONFIG_GPIO_PCH is not set
 
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MCP23S08 is not set
+
 #
 # Native drivers
 #
@@ -562,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
@@ -590,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
 #
@@ -599,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,10 +732,13 @@ 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
@@ -638,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
 
@@ -648,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
@@ -655,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)
 #
@@ -734,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
@@ -872,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
 #
@@ -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 7ca1ab994705e458ad61bba564efcf601c1009d8..1650e89107a0902dc94fea83aca4240b09f20608 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = kernel
-version    = 3.13.1
+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,6 +128,11 @@ 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
@@ -562,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
similarity index 99%
rename from kernel/patches/grsecurity-3.0-3.13.1-201401292203.patch
rename to kernel/patches/grsecurity-3.0-3.13.2-201402091134.patch
index 2848c606a3dd40e6d7c0bcd450ed1c7d9a542095..df6cd994fc6a5d7694547ce59040d4a0551846e5 100644 (file)
@@ -1,5 +1,5 @@
 diff --git a/Documentation/dontdiff b/Documentation/dontdiff
-index b89a739..31509cb 100644
+index b89a739..e289b9b 100644
 --- a/Documentation/dontdiff
 +++ b/Documentation/dontdiff
 @@ -2,9 +2,11 @@
@@ -173,8 +173,8 @@ index b89a739..31509cb 100644
  r300_reg_safe.h
  r420_reg_safe.h
  r600_reg_safe.h
-+randstruct.seed
-+randstruct.hashed_seed
++randomize_layout_hash.h
++randomize_layout_seed.h
 +realmode.lds
 +realmode.relocs
  recordmcount
@@ -287,7 +287,7 @@ index b9e9bd8..bf49b92 100644
  
        pcd.            [PARIDE]
 diff --git a/Makefile b/Makefile
-index de4cda9..d1183df 100644
+index a7fd5d9..dc8e4db 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -244,8 +244,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
@@ -302,7 +302,23 @@ index de4cda9..d1183df 100644
  
  # Decide whether to build built-in, modular, or both.
  # Normally, just do built-in.
-@@ -417,8 +418,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/
@@ -313,7 +329,7 @@ index de4cda9..d1183df 100644
        $(Q)$(MAKE) $(build)=scripts/basic
        $(Q)rm -f .tmp_quiet_recordmcount
  
-@@ -579,6 +580,76 @@ else
+@@ -579,6 +586,72 @@ else
  KBUILD_CFLAGS += -O2
  endif
  
@@ -340,12 +356,8 @@ index de4cda9..d1183df 100644
 +KERNEXEC_PLUGIN_AFLAGS := -DKERNEXEC_PLUGIN
 +endif
 +ifdef CONFIG_GRKERNSEC_RANDSTRUCT
-+GRKERNSEC_RANDSTRUCT_SEED := $(shell $(CONFIG_SHELL) $(srctree)/scripts/gen-random-seed.sh)
 +RANDSTRUCT_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/randomize_layout_plugin.so -DRANDSTRUCT_PLUGIN
-+RANDSTRUCT_PLUGIN_CFLAGS += -fplugin-arg-randomize_layout_plugin-seed=$(GRKERNSEC_RANDSTRUCT_SEED)
-+RANDSTRUCT_HASHED_SEED := $(shell cat "$(srctree)/tools/gcc/randstruct.hashed_seed")
-+RANDSTRUCT_PLUGIN_CFLAGS += -DRANDSTRUCT_HASHED_SEED="\"$(RANDSTRUCT_HASHED_SEED)\""
-+ifdef CONFIG_GRKERNSEC_RANDSTRUCT
++ifdef CONFIG_GRKERNSEC_RANDSTRUCT_PERFORMANCE
 +RANDSTRUCT_PLUGIN_CFLAGS += -fplugin-arg-randomize_layout_plugin-performance-mode
 +endif
 +endif
@@ -390,7 +402,16 @@ index de4cda9..d1183df 100644
  include $(srctree)/arch/$(SRCARCH)/Makefile
  
  ifdef CONFIG_READABLE_ASM
-@@ -754,7 +825,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),)
@@ -399,7 +420,7 @@ index de4cda9..d1183df 100644
  
  vmlinux-dirs  := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
                     $(core-y) $(core-m) $(drivers-y) $(drivers-m) \
-@@ -803,6 +874,8 @@ endif
+@@ -803,6 +876,8 @@ endif
  
  # The actual objects are generated when descending, 
  # make sure no implicit rule kicks in
@@ -408,7 +429,7 @@ index de4cda9..d1183df 100644
  $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
  
  # Handle descending into subdirectories listed in $(vmlinux-dirs)
-@@ -812,7 +885,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)
@@ -417,7 +438,7 @@ index de4cda9..d1183df 100644
        $(Q)$(MAKE) $(build)=$@
  
  define filechk_kernel.release
-@@ -855,10 +928,13 @@ prepare1: prepare2 $(version_h) include/generated/utsrelease.h \
+@@ -855,10 +930,13 @@ prepare1: prepare2 $(version_h) include/generated/utsrelease.h \
  
  archprepare: archheaders archscripts prepare1 scripts_basic
  
@@ -431,7 +452,7 @@ index de4cda9..d1183df 100644
  prepare: prepare0
  
  # Generate some files
-@@ -966,6 +1042,8 @@ all: modules
+@@ -966,6 +1044,8 @@ all: modules
  #     using awk while concatenating to the final file.
  
  PHONY += modules
@@ -440,7 +461,7 @@ index de4cda9..d1183df 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.';
-@@ -981,7 +1059,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
@@ -449,17 +470,17 @@ index de4cda9..d1183df 100644
  
  # Target to install modules
  PHONY += modules_install
-@@ -1047,7 +1125,8 @@ 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 \
-+                tools/gcc/randstruct.seed tools/gcc/randstruct.hashed_seed
++                tools/gcc/randomize_layout_seed.h
  
  # clean - Delete most, but leave enough to build external modules
  #
-@@ -1087,6 +1166,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' \
@@ -467,7 +488,7 @@ index de4cda9..d1183df 100644
                -o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \
                -type f -print | xargs rm -f
  
-@@ -1248,6 +1328,8 @@ PHONY += $(module-dirs) modules
+@@ -1248,6 +1330,8 @@ PHONY += $(module-dirs) modules
  $(module-dirs): crmodverdir $(objtree)/Module.symvers
        $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)
  
@@ -476,7 +497,7 @@ index de4cda9..d1183df 100644
  modules: $(module-dirs)
        @$(kecho) '  Building modules, stage 2.';
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
-@@ -1387,17 +1469,21 @@ else
+@@ -1387,17 +1471,21 @@ else
          target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@))
  endif
  
@@ -502,7 +523,7 @@ index de4cda9..d1183df 100644
        $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
  %.symtypes: %.c prepare scripts FORCE
        $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
-@@ -1407,11 +1493,15 @@ endif
+@@ -1407,11 +1495,15 @@ endif
        $(cmd_crmodverdir)
        $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
        $(build)=$(build-dir)
@@ -3596,6 +3617,29 @@ index 8a1b5e0..5f30074 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
@@ -18643,7 +18687,7 @@ index 3ba3de4..6c113b2 100644
  #endif
  #endif /* _ASM_X86_THREAD_INFO_H */
 diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h
-index e6d90ba..0897f44 100644
+index e6d90ba..f81f114 100644
 --- a/arch/x86/include/asm/tlbflush.h
 +++ b/arch/x86/include/asm/tlbflush.h
 @@ -17,18 +17,44 @@
@@ -18697,11 +18741,10 @@ index e6d90ba..0897f44 100644
  }
  
  static inline void __native_flush_tlb_global(void)
-@@ -49,6 +75,42 @@ static inline void __native_flush_tlb_global(void)
+@@ -49,6 +75,41 @@ static inline void __native_flush_tlb_global(void)
  
  static inline void __native_flush_tlb_single(unsigned long addr)
  {
-+
 +      if (static_cpu_has(X86_FEATURE_INVPCID)) {
 +              u64 descriptor[2];
 +
@@ -20255,10 +20298,10 @@ index 47b56a7..efc2bc6 100644
  obj-y                 += proc.o capflags.o powerflags.o common.o
  obj-y                 += rdrand.o
 diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
-index bca023b..c544908 100644
+index 59bfebc..d8f27bd 100644
 --- a/arch/x86/kernel/cpu/amd.c
 +++ b/arch/x86/kernel/cpu/amd.c
-@@ -743,7 +743,7 @@ static void init_amd(struct cpuinfo_x86 *c)
+@@ -753,7 +753,7 @@ static void init_amd(struct cpuinfo_x86 *c)
  static unsigned int amd_size_cache(struct cpuinfo_x86 *c, unsigned int size)
  {
        /* AMD errata T13 (order #21922) */
@@ -27510,7 +27553,7 @@ index c697625..a032162 100644
  
  out:
 diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
-index 775702f..737d4a9 100644
+index d86ff15..e77b023 100644
 --- a/arch/x86/kvm/lapic.c
 +++ b/arch/x86/kvm/lapic.c
 @@ -55,7 +55,7 @@
@@ -27723,10 +27766,10 @@ index da7837e..86c6ebf 100644
  
        vcpu->arch.regs_avail = ~((1 << VCPU_REGS_RIP) | (1 << VCPU_REGS_RSP)
 diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
-index 5d004da..0802480 100644
+index d89d51b..f3c612a 100644
 --- a/arch/x86/kvm/x86.c
 +++ b/arch/x86/kvm/x86.c
-@@ -1788,8 +1788,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data)
+@@ -1791,8 +1791,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data)
  {
        struct kvm *kvm = vcpu->kvm;
        int lm = is_long_mode(vcpu);
@@ -27737,7 +27780,7 @@ index 5d004da..0802480 100644
        u8 blob_size = lm ? kvm->arch.xen_hvm_config.blob_size_64
                : kvm->arch.xen_hvm_config.blob_size_32;
        u32 page_num = data & ~PAGE_MASK;
-@@ -2673,6 +2673,8 @@ long kvm_arch_dev_ioctl(struct file *filp,
+@@ -2676,6 +2676,8 @@ long kvm_arch_dev_ioctl(struct file *filp,
                if (n < msr_list.nmsrs)
                        goto out;
                r = -EFAULT;
@@ -27746,7 +27789,7 @@ index 5d004da..0802480 100644
                if (copy_to_user(user_msr_list->indices, &msrs_to_save,
                                 num_msrs_to_save * sizeof(u32)))
                        goto out;
-@@ -5482,7 +5484,7 @@ static struct notifier_block pvclock_gtod_notifier = {
+@@ -5485,7 +5487,7 @@ static struct notifier_block pvclock_gtod_notifier = {
  };
  #endif
  
@@ -35509,7 +35552,7 @@ index c482f8c..c832240 100644
                                unsigned long timeout_msec)
  {
 diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
-index 1393a58..3bf8cbe 100644
+index 1a3dbd1..dfc6e5c 100644
 --- a/drivers/ata/libata-core.c
 +++ b/drivers/ata/libata-core.c
 @@ -98,7 +98,7 @@ static unsigned int ata_dev_set_xfermode(struct ata_device *dev);
@@ -35521,7 +35564,7 @@ index 1393a58..3bf8cbe 100644
  
  struct ata_force_param {
        const char      *name;
-@@ -4823,7 +4823,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
+@@ -4850,7 +4850,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
        struct ata_port *ap;
        unsigned int tag;
  
@@ -35530,7 +35573,7 @@ index 1393a58..3bf8cbe 100644
        ap = qc->ap;
  
        qc->flags = 0;
-@@ -4839,7 +4839,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
+@@ -4866,7 +4866,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
        struct ata_port *ap;
        struct ata_link *link;
  
@@ -35539,7 +35582,7 @@ index 1393a58..3bf8cbe 100644
        WARN_ON_ONCE(!(qc->flags & ATA_QCFLAG_ACTIVE));
        ap = qc->ap;
        link = qc->dev->link;
-@@ -5958,6 +5958,7 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
+@@ -5985,6 +5985,7 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
                return;
  
        spin_lock(&lock);
@@ -35547,7 +35590,7 @@ index 1393a58..3bf8cbe 100644
  
        for (cur = ops->inherits; cur; cur = cur->inherits) {
                void **inherit = (void **)cur;
-@@ -5971,8 +5972,9 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
+@@ -5998,8 +5999,9 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
                if (IS_ERR(*pp))
                        *pp = NULL;
  
@@ -35558,7 +35601,7 @@ index 1393a58..3bf8cbe 100644
        spin_unlock(&lock);
  }
  
-@@ -6165,7 +6167,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
+@@ -6192,7 +6194,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
  
        /* give ports names and add SCSI hosts */
        for (i = 0; i < host->n_ports; i++) {
@@ -35568,10 +35611,10 @@ index 1393a58..3bf8cbe 100644
        }
  
 diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
-index 377eb88..8591b44 100644
+index ef8567d..8bdbd03 100644
 --- a/drivers/ata/libata-scsi.c
 +++ b/drivers/ata/libata-scsi.c
-@@ -4135,7 +4135,7 @@ int ata_sas_port_init(struct ata_port *ap)
+@@ -4147,7 +4147,7 @@ int ata_sas_port_init(struct ata_port *ap)
  
        if (rc)
                return rc;
@@ -39035,6 +39078,27 @@ index 9902732..64b62dd 100644
  
        return -EINVAL;
  }
+diff --git a/drivers/gpu/drm/armada/armada_drv.c b/drivers/gpu/drm/armada/armada_drv.c
+index 62d0ff3..073dbf3 100644
+--- a/drivers/gpu/drm/armada/armada_drv.c
++++ b/drivers/gpu/drm/armada/armada_drv.c
+@@ -68,15 +68,7 @@ void __armada_drm_queue_unref_work(struct drm_device *dev,
+ {
+       struct armada_private *priv = dev->dev_private;
+-      /*
+-       * Yes, we really must jump through these hoops just to store a
+-       * _pointer_ to something into the kfifo.  This is utterly insane
+-       * and idiotic, because it kfifo requires the _data_ pointed to by
+-       * the pointer const, not the pointer itself.  Not only that, but
+-       * you have to pass a pointer _to_ the pointer you want stored.
+-       */
+-      const struct drm_framebuffer *silly_api_alert = fb;
+-      WARN_ON(!kfifo_put(&priv->fb_unref, &silly_api_alert));
++      WARN_ON(!kfifo_put(&priv->fb_unref, fb));
+       schedule_work(&priv->fb_unref_work);
+ }
 diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
 index d6cf77c..2842146 100644
 --- a/drivers/gpu/drm/drm_crtc.c
@@ -40354,6 +40418,19 @@ index ae1cb31..5b5b6b7c 100644
  
        err = drm_debugfs_create_files(dc->debugfs_files,
                                       ARRAY_SIZE(debugfs_files),
+diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
+index 0cd9bc2..9759be4 100644
+--- a/drivers/gpu/drm/tegra/hdmi.c
++++ b/drivers/gpu/drm/tegra/hdmi.c
+@@ -57,7 +57,7 @@ struct tegra_hdmi {
+       bool stereo;
+       bool dvi;
+-      struct drm_info_list *debugfs_files;
++      drm_info_list_no_const *debugfs_files;
+       struct drm_minor *minor;
+       struct dentry *debugfs;
+ };
 diff --git a/drivers/gpu/drm/ttm/ttm_bo_manager.c b/drivers/gpu/drm/ttm/ttm_bo_manager.c
 index c58eba33..83c2728 100644
 --- a/drivers/gpu/drm/ttm/ttm_bo_manager.c
@@ -44379,6 +44456,21 @@ index 464419b..64bae8d 100644
  
        c2dev->dev = device_create(c2port_class, NULL, 0, c2dev,
                                   "c2port%d", c2dev->id);
+diff --git a/drivers/misc/eeprom/sunxi_sid.c b/drivers/misc/eeprom/sunxi_sid.c
+index 9c34e57..b981cda 100644
+--- a/drivers/misc/eeprom/sunxi_sid.c
++++ b/drivers/misc/eeprom/sunxi_sid.c
+@@ -127,7 +127,9 @@ static int sunxi_sid_probe(struct platform_device *pdev)
+       platform_set_drvdata(pdev, sid_data);
+-      sid_bin_attr.size = sid_data->keysize;
++      pax_open_kernel();
++      *(size_t *)&sid_bin_attr.size = sid_data->keysize;
++      pax_close_kernel();
+       if (device_create_bin_file(&pdev->dev, &sid_bin_attr))
+               return -ENODEV;
 diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c
 index 36f5d52..32311c3 100644
 --- a/drivers/misc/kgdbts.c
@@ -44809,6 +44901,25 @@ index f320579..7b7ebac 100644
                mmci_write_datactrlreg(host, MCI_ST_DPSM_BUSYMODE);
        }
  
+diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
+index 1dcaf8a..025af25 100644
+--- a/drivers/mmc/host/sdhci-esdhc-imx.c
++++ b/drivers/mmc/host/sdhci-esdhc-imx.c
+@@ -1009,9 +1009,12 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
+               host->quirks2 |= SDHCI_QUIRK2_PRESET_VALUE_BROKEN;
+       }
+-      if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING)
+-              sdhci_esdhc_ops.platform_execute_tuning =
++      if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) {
++              pax_open_kernel();
++              *(void **)&sdhci_esdhc_ops.platform_execute_tuning =
+                                       esdhc_executing_tuning;
++              pax_close_kernel();
++      }
+       boarddata = &imx_data->boarddata;
+       if (sdhci_esdhc_imx_probe_dt(pdev, boarddata) < 0) {
+               if (!host->mmc->parent->platform_data) {
 diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
 index 6debda9..2ba7427 100644
 --- a/drivers/mmc/host/sdhci-s3c.c
@@ -45549,10 +45660,10 @@ index a79e9d3..78cd4fa 100644
  
        /* we will have to manufacture ethernet headers, prepare template */
 diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
-index ed384fe..9e3f4f4 100644
+index 0247973..088193a 100644
 --- a/drivers/net/vxlan.c
 +++ b/drivers/net/vxlan.c
-@@ -2617,7 +2617,7 @@ nla_put_failure:
+@@ -2615,7 +2615,7 @@ nla_put_failure:
        return -EMSGSIZE;
  }
  
@@ -46226,10 +46337,10 @@ index 7aad766..06addb4 100644
                       data->sku_cap_band_24GHz_enable ? "" : "NOT", "enabled",
                       data->sku_cap_band_52GHz_enable ? "" : "NOT", "enabled",
 diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c
-index cde9c16..e485cfe 100644
+index f53ef83..5e34bcb 100644
 --- a/drivers/net/wireless/iwlwifi/pcie/trans.c
 +++ b/drivers/net/wireless/iwlwifi/pcie/trans.c
-@@ -1368,7 +1368,7 @@ static ssize_t iwl_dbgfs_interrupt_write(struct file *file,
+@@ -1390,7 +1390,7 @@ static ssize_t iwl_dbgfs_interrupt_write(struct file *file,
        struct isr_statistics *isr_stats = &trans_pcie->isr_stats;
  
        char buf[8];
@@ -46238,7 +46349,7 @@ index cde9c16..e485cfe 100644
        u32 reset_flag;
  
        memset(buf, 0, sizeof(buf));
-@@ -1389,7 +1389,7 @@ static ssize_t iwl_dbgfs_csr_write(struct file *file,
+@@ -1411,7 +1411,7 @@ static ssize_t iwl_dbgfs_csr_write(struct file *file,
  {
        struct iwl_trans *trans = file->private_data;
        char buf[8];
@@ -48544,10 +48655,10 @@ index 084d1fd..9f939eb 100644
        uint32_t default_time2wait;       /* Default Min time between
                                           * relogins (+aens) */
 diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
-index a28d5e6..000a8af 100644
+index cf174a4..128a420 100644
 --- a/drivers/scsi/qla4xxx/ql4_os.c
 +++ b/drivers/scsi/qla4xxx/ql4_os.c
-@@ -3308,12 +3308,12 @@ static void qla4xxx_check_relogin_flash_ddb(struct iscsi_cls_session *cls_sess)
+@@ -3311,12 +3311,12 @@ static void qla4xxx_check_relogin_flash_ddb(struct iscsi_cls_session *cls_sess)
                 */
                if (!iscsi_is_session_online(cls_sess)) {
                        /* Reset retry relogin timer */
@@ -48562,7 +48673,7 @@ index a28d5e6..000a8af 100644
                                ddb_entry->default_time2wait + 4));
                        set_bit(DPC_RELOGIN_DEVICE, &ha->dpc_flags);
                        atomic_set(&ddb_entry->retry_relogin_timer,
-@@ -5455,7 +5455,7 @@ static void qla4xxx_setup_flash_ddb_entry(struct scsi_qla_host *ha,
+@@ -5458,7 +5458,7 @@ static void qla4xxx_setup_flash_ddb_entry(struct scsi_qla_host *ha,
  
        atomic_set(&ddb_entry->retry_relogin_timer, INVALID_ENTRY);
        atomic_set(&ddb_entry->relogin_timer, 0);
@@ -50607,7 +50718,7 @@ index d0e3a44..5f8b754 100644
                        ret = -EPERM;
                        goto reterr;
 diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
-index f7beb6e..8c0bbd0 100644
+index a673e5b..36e5d32 100644
 --- a/drivers/uio/uio.c
 +++ b/drivers/uio/uio.c
 @@ -25,6 +25,7 @@
@@ -50886,7 +50997,7 @@ index 6bffb8c..b404e8b 100644
                        wake_up(&usb_kill_urb_queue);
                usb_put_urb(urb);
 diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
-index bd9dc35..c04ae2f 100644
+index 07e6654..6420edf 100644
 --- a/drivers/usb/core/hub.c
 +++ b/drivers/usb/core/hub.c
 @@ -27,6 +27,7 @@
@@ -50897,7 +51008,7 @@ index bd9dc35..c04ae2f 100644
  
  #include <asm/uaccess.h>
  #include <asm/byteorder.h>
-@@ -4463,6 +4464,10 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
+@@ -4442,6 +4443,10 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
                        goto done;
                return;
        }
@@ -56118,10 +56229,10 @@ index a4b38f9..f86a509 100644
        spin_lock_init(&delayed_root->lock);
        init_waitqueue_head(&delayed_root->wait);
 diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
-index 21da576..3551e09 100644
+index 9f831bb..14afde5 100644
 --- a/fs/btrfs/ioctl.c
 +++ b/fs/btrfs/ioctl.c
-@@ -3451,9 +3451,12 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
+@@ -3457,9 +3457,12 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
        for (i = 0; i < num_types; i++) {
                struct btrfs_space_info *tmp;
  
@@ -56134,7 +56245,7 @@ index 21da576..3551e09 100644
                info = NULL;
                rcu_read_lock();
                list_for_each_entry_rcu(tmp, &root->fs_info->space_info,
-@@ -3475,10 +3478,7 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
+@@ -3481,10 +3484,7 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
                                memcpy(dest, &space, sizeof(space));
                                dest++;
                                space_args.total_spaces++;
@@ -57166,7 +57277,7 @@ index bc3fbcd..6031650 100644
                return 0;
        while (nr) {
 diff --git a/fs/dcache.c b/fs/dcache.c
-index cb4a106..b75581f 100644
+index fdbe230..ba17c1f 100644
 --- a/fs/dcache.c
 +++ b/fs/dcache.c
 @@ -1495,7 +1495,7 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
@@ -57178,7 +57289,7 @@ index cb4a106..b75581f 100644
                if (!dname) {
                        kmem_cache_free(dentry_cache, dentry); 
                        return NULL;
-@@ -3429,7 +3429,8 @@ void __init vfs_caches_init(unsigned long mempages)
+@@ -3428,7 +3428,8 @@ void __init vfs_caches_init(unsigned long mempages)
        mempages -= reserve;
  
        names_cachep = kmem_cache_create("names_cache", PATH_MAX, 0,
@@ -60150,7 +60261,7 @@ index 92a0f0a..45a48f0 100644
  
        spin_lock(&inode->i_lock);
 diff --git a/fs/mount.h b/fs/mount.h
-index d64c594..6c283db 100644
+index a17458c..e69fb5b 100644
 --- a/fs/mount.h
 +++ b/fs/mount.h
 @@ -11,7 +11,7 @@ struct mnt_namespace {
@@ -64110,10 +64221,10 @@ index 104455b..764c512 100644
                kfree(s);
 diff --git a/grsecurity/Kconfig b/grsecurity/Kconfig
 new file mode 100644
-index 0000000..c2c7f17
+index 0000000..e98584b
 --- /dev/null
 +++ b/grsecurity/Kconfig
-@@ -0,0 +1,1146 @@
+@@ -0,0 +1,1147 @@
 +#
 +# grecurity configuration
 +#
@@ -64330,6 +64441,7 @@ index 0000000..c2c7f17
 +      bool "Randomize layout of sensitive kernel structures"
 +      default y if GRKERNSEC_CONFIG_AUTO
 +      select GRKERNSEC_HIDESYM
++      select MODVERSIONS if MODULES
 +      help
 +        If you say Y here, the layouts of a number of sensitive kernel
 +        structures (task, fs, cred, etc) and all structures composed entirely
@@ -64342,7 +64454,7 @@ index 0000000..c2c7f17
 +        Volatility against the system (unless the kernel source tree isn't
 +        cleaned after kernel installation).
 +
-+        The seed used for compilation is located at tools/gcc/randstruct.seed.
++        The seed used for compilation is located at tools/gcc/randomize_layout_seed.h.
 +        It remains after a make clean to allow for external modules to be compiled
 +        with the existing seed and will be removed by a make mrproper or
 +        make distclean.
@@ -65262,17 +65374,27 @@ index 0000000..c2c7f17
 +endmenu
 diff --git a/grsecurity/Makefile b/grsecurity/Makefile
 new file mode 100644
-index 0000000..d1344d2
+index 0000000..5307c8a
 --- /dev/null
 +++ b/grsecurity/Makefile
-@@ -0,0 +1,43 @@
-+# grsecurity's ACL system was originally written in 2001 by Michael Dalton
-+# during 2001-2009 it has been completely redesigned by Brad Spengler
-+# into an RBAC system
+@@ -0,0 +1,54 @@
++# grsecurity â€“ access control and security hardening for Linux
++# All code in this directory and various hooks located throughout the Linux kernel are
++# Copyright (C) 2001-2014 Bradley Spengler, Open Source Security, Inc.
++# http://www.grsecurity.net spender@grsecurity.net
 +#
-+# All code in this directory and various hooks inserted throughout the kernel
-+# are copyright Brad Spengler - Open Source Security, Inc., and released 
-+# under the GPL v2
++# This program is free software; you can redistribute it and/or
++# modify it under the terms of the GNU General Public License version 2
++# as published by the Free Software Foundation.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 +
 +KBUILD_CFLAGS += -Werror
 +
@@ -65307,14 +65429,15 @@ index 0000000..d1344d2
 +      @-chmod -f 500 /lib64/modules
 +      @-chmod -f 500 /lib32/modules
 +      @-chmod -f 700 .
++      @-chmod -f 700 $(objtree)
 +      @echo '  grsec: protected kernel image paths'
 +endif
 diff --git a/grsecurity/gracl.c b/grsecurity/gracl.c
 new file mode 100644
-index 0000000..7232a45
+index 0000000..19a5b7c
 --- /dev/null
 +++ b/grsecurity/gracl.c
-@@ -0,0 +1,2677 @@
+@@ -0,0 +1,2678 @@
 +#include <linux/kernel.h>
 +#include <linux/module.h>
 +#include <linux/sched.h>
@@ -67798,8 +67921,8 @@ index 0000000..7232a45
 +void
 +gr_acl_handle_psacct(struct task_struct *task, const long code)
 +{
-+      unsigned long runtime;
-+      unsigned long cputime;
++      unsigned long runtime, cputime;
++      cputime_t utime, stime;
 +      unsigned int wday, cday;
 +      __u8 whr, chr;
 +      __u8 wmin, cmin;
@@ -67812,19 +67935,20 @@ index 0000000..7232a45
 +
 +      do_posix_clock_monotonic_gettime(&timeval);
 +      runtime = timeval.tv_sec - task->start_time.tv_sec;
-+      wday = runtime / (3600 * 24);
-+      runtime -= wday * (3600 * 24);
-+      whr = runtime / 3600;
-+      runtime -= whr * 3600;
++      wday = runtime / (60 * 60 * 24);
++      runtime -= wday * (60 * 60 * 24);
++      whr = runtime / (60 * 60);
++      runtime -= whr * (60 * 60);
 +      wmin = runtime / 60;
 +      runtime -= wmin * 60;
 +      wsec = runtime;
 +
-+      cputime = (task->utime + task->stime) / HZ;
-+      cday = cputime / (3600 * 24);
-+      cputime -= cday * (3600 * 24);
-+      chr = cputime / 3600;
-+      cputime -= chr * 3600;
++      task_cputime(task, &utime, &stime);
++      cputime = cputime_to_secs(utime + stime);
++      cday = cputime / (60 * 60 * 24);
++      cputime -= cday * (60 * 60 * 24);
++      chr = cputime / (60 * 60);
++      cputime -= chr * (60 * 60);
 +      cmin = cputime / 60;
 +      cputime -= cmin * 60;
 +      csec = cputime;
@@ -75700,7 +75824,7 @@ index e73c19e..5b89e00 100644
  struct crypto_instance {
        struct crypto_alg alg;
 diff --git a/include/drm/drmP.h b/include/drm/drmP.h
-index 1d4a920..53a3229 100644
+index 1d4a920..da65658 100644
 --- a/include/drm/drmP.h
 +++ b/include/drm/drmP.h
 @@ -66,6 +66,7 @@
@@ -75739,16 +75863,17 @@ index 1d4a920..53a3229 100644
  
  /**
   * Creates a driver or general drm_ioctl_desc array entry for the given
-@@ -1013,7 +1016,7 @@ struct drm_info_list {
+@@ -1013,7 +1016,8 @@ struct drm_info_list {
        int (*show)(struct seq_file*, void*); /** show callback */
        u32 driver_features; /**< Required driver features for this entry */
        void *data;
 -};
 +} __do_const;
++typedef struct drm_info_list __no_const drm_info_list_no_const;
  
  /**
   * debugfs node structure. This structure represents a debugfs file.
-@@ -1097,7 +1100,7 @@ struct drm_device {
+@@ -1097,7 +1101,7 @@ struct drm_device {
  
        /** \name Usage Counters */
        /*@{ */
@@ -75796,6 +75921,18 @@ index 72dcbe8..8db58d7 100644
  
  /**
   * struct ttm_mem_global - Global memory accounting structure.
+diff --git a/include/drm/ttm/ttm_page_alloc.h b/include/drm/ttm/ttm_page_alloc.h
+index d1f61bf..2239439 100644
+--- a/include/drm/ttm/ttm_page_alloc.h
++++ b/include/drm/ttm/ttm_page_alloc.h
+@@ -78,6 +78,7 @@ void ttm_dma_page_alloc_fini(void);
+  */
+ extern int ttm_dma_page_alloc_debugfs(struct seq_file *m, void *data);
++struct device;
+ extern int ttm_dma_populate(struct ttm_dma_tt *ttm_dma, struct device *dev);
+ extern void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, struct device *dev);
 diff --git a/include/keys/asymmetric-subtype.h b/include/keys/asymmetric-subtype.h
 index 4b840e8..155d235 100644
 --- a/include/keys/asymmetric-subtype.h
@@ -78609,10 +78746,10 @@ index 9523d2a..16c0424 100644
  
  int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu);
 diff --git a/include/linux/libata.h b/include/linux/libata.h
-index 9b50337..712d748 100644
+index bec6dbe..2873d64 100644
 --- a/include/linux/libata.h
 +++ b/include/linux/libata.h
-@@ -973,7 +973,7 @@ struct ata_port_operations {
+@@ -975,7 +975,7 @@ struct ata_port_operations {
         * fields must be pointers.
         */
        const struct ata_port_operations        *inherits;
@@ -81204,10 +81341,10 @@ index 239e277..22a5cf5 100644
  
  #ifdef CONFIG_UTS_NS
 diff --git a/include/linux/vermagic.h b/include/linux/vermagic.h
-index 6f8fbcf..e2a0e61 100644
+index 6f8fbcf..4efc177 100644
 --- a/include/linux/vermagic.h
 +++ b/include/linux/vermagic.h
-@@ -25,9 +25,41 @@
+@@ -25,9 +25,42 @@
  #define MODULE_ARCH_VERMAGIC ""
  #endif
  
@@ -81230,6 +81367,7 @@ index 6f8fbcf..e2a0e61 100644
 +#endif
 +
 +#ifdef RANDSTRUCT_PLUGIN
++#include <generated/randomize_layout_hash.h>
 +#define MODULE_RANDSTRUCT_PLUGIN "RANDSTRUCT_PLUGIN_" RANDSTRUCT_HASHED_SEED
 +#else
 +#define MODULE_RANDSTRUCT_PLUGIN
@@ -85488,7 +85626,7 @@ index 1d96dd0..994ff19 100644
  
        default:
 diff --git a/kernel/module.c b/kernel/module.c
-index f5a3b1e..1f5578b 100644
+index f5a3b1e..97ebb15 100644
 --- a/kernel/module.c
 +++ b/kernel/module.c
 @@ -61,6 +61,7 @@
@@ -85554,7 +85692,37 @@ index f5a3b1e..1f5578b 100644
  }
  
  static struct module_attribute modinfo_initsize =
-@@ -1286,7 +1288,7 @@ resolve_symbol_wait(struct module *mod,
+@@ -1165,12 +1167,29 @@ static int check_version(Elf_Shdr *sechdrs,
+               goto bad_version;
+       }
++#ifdef CONFIG_GRKERNSEC_RANDSTRUCT
++      /*
++       * avoid potentially printing jibberish on attempted load
++       * of a module randomized with a different seed
++       */
++      pr_warn("no symbol version for %s\n", symname);
++#else
+       pr_warn("%s: no symbol version for %s\n", mod->name, symname);
++#endif
+       return 0;
+ bad_version:
++#ifdef CONFIG_GRKERNSEC_RANDSTRUCT
++      /*
++       * avoid potentially printing jibberish on attempted load
++       * of a module randomized with a different seed
++       */
++      printk("attempted module disagrees about version of symbol %s\n",
++             symname);
++#else
+       printk("%s: disagrees about version of symbol %s\n",
+              mod->name, symname);
++#endif
+       return 0;
+ }
+@@ -1286,7 +1305,7 @@ resolve_symbol_wait(struct module *mod,
   */
  #ifdef CONFIG_SYSFS
  
@@ -85563,7 +85731,7 @@ index f5a3b1e..1f5578b 100644
  static inline bool sect_empty(const Elf_Shdr *sect)
  {
        return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0;
-@@ -1426,7 +1428,7 @@ static void add_notes_attrs(struct module *mod, const struct load_info *info)
+@@ -1426,7 +1445,7 @@ static void add_notes_attrs(struct module *mod, const struct load_info *info)
  {
        unsigned int notes, loaded, i;
        struct module_notes_attrs *notes_attrs;
@@ -85572,7 +85740,7 @@ index f5a3b1e..1f5578b 100644
  
        /* failed to create section attributes, so can't create notes */
        if (!mod->sect_attrs)
-@@ -1538,7 +1540,7 @@ static void del_usage_links(struct module *mod)
+@@ -1538,7 +1557,7 @@ static void del_usage_links(struct module *mod)
  static int module_add_modinfo_attrs(struct module *mod)
  {
        struct module_attribute *attr;
@@ -85581,7 +85749,7 @@ index f5a3b1e..1f5578b 100644
        int error = 0;
        int i;
  
-@@ -1759,21 +1761,21 @@ static void set_section_ro_nx(void *base,
+@@ -1759,21 +1778,21 @@ static void set_section_ro_nx(void *base,
  
  static void unset_module_core_ro_nx(struct module *mod)
  {
@@ -85611,7 +85779,7 @@ index f5a3b1e..1f5578b 100644
                set_memory_rw);
  }
  
-@@ -1786,14 +1788,14 @@ void set_all_modules_text_rw(void)
+@@ -1786,14 +1805,14 @@ void set_all_modules_text_rw(void)
        list_for_each_entry_rcu(mod, &modules, list) {
                if (mod->state == MODULE_STATE_UNFORMED)
                        continue;
@@ -85632,7 +85800,7 @@ index f5a3b1e..1f5578b 100644
                                                set_memory_rw);
                }
        }
-@@ -1809,14 +1811,14 @@ void set_all_modules_text_ro(void)
+@@ -1809,14 +1828,14 @@ void set_all_modules_text_ro(void)
        list_for_each_entry_rcu(mod, &modules, list) {
                if (mod->state == MODULE_STATE_UNFORMED)
                        continue;
@@ -85653,7 +85821,7 @@ index f5a3b1e..1f5578b 100644
                                                set_memory_ro);
                }
        }
-@@ -1867,16 +1869,19 @@ static void free_module(struct module *mod)
+@@ -1867,16 +1886,19 @@ static void free_module(struct module *mod)
  
        /* This may be NULL, but that's OK */
        unset_module_init_ro_nx(mod);
@@ -85676,7 +85844,7 @@ index f5a3b1e..1f5578b 100644
  
  #ifdef CONFIG_MPU
        update_protections(current->mm);
-@@ -1945,9 +1950,31 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
+@@ -1945,9 +1967,31 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
        int ret = 0;
        const struct kernel_symbol *ksym;
  
@@ -85708,7 +85876,7 @@ index f5a3b1e..1f5578b 100644
                switch (sym[i].st_shndx) {
                case SHN_COMMON:
                        /* We compiled with -fno-common.  These are not
-@@ -1968,7 +1995,9 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
+@@ -1968,7 +2012,9 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
                        ksym = resolve_symbol_wait(mod, info, name);
                        /* Ok if resolved.  */
                        if (ksym && !IS_ERR(ksym)) {
@@ -85718,7 +85886,7 @@ index f5a3b1e..1f5578b 100644
                                break;
                        }
  
-@@ -1987,11 +2016,20 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
+@@ -1987,11 +2033,20 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
                                secbase = (unsigned long)mod_percpu(mod);
                        else
                                secbase = info->sechdrs[sym[i].st_shndx].sh_addr;
@@ -85739,7 +85907,7 @@ index f5a3b1e..1f5578b 100644
        return ret;
  }
  
-@@ -2075,22 +2113,12 @@ static void layout_sections(struct module *mod, struct load_info *info)
+@@ -2075,22 +2130,12 @@ static void layout_sections(struct module *mod, struct load_info *info)
                            || s->sh_entsize != ~0UL
                            || strstarts(sname, ".init"))
                                continue;
@@ -85766,7 +85934,7 @@ index f5a3b1e..1f5578b 100644
        }
  
        pr_debug("Init section allocation order:\n");
-@@ -2104,23 +2132,13 @@ static void layout_sections(struct module *mod, struct load_info *info)
+@@ -2104,23 +2149,13 @@ static void layout_sections(struct module *mod, struct load_info *info)
                            || s->sh_entsize != ~0UL
                            || !strstarts(sname, ".init"))
                                continue;
@@ -85795,7 +85963,7 @@ index f5a3b1e..1f5578b 100644
        }
  }
  
-@@ -2293,7 +2311,7 @@ static void layout_symtab(struct module *mod, struct load_info *info)
+@@ -2293,7 +2328,7 @@ static void layout_symtab(struct module *mod, struct load_info *info)
  
        /* Put symbol section at end of init part of module. */
        symsect->sh_flags |= SHF_ALLOC;
@@ -85804,7 +85972,7 @@ index f5a3b1e..1f5578b 100644
                                         info->index.sym) | INIT_OFFSET_MASK;
        pr_debug("\t%s\n", info->secstrings + symsect->sh_name);
  
-@@ -2310,13 +2328,13 @@ static void layout_symtab(struct module *mod, struct load_info *info)
+@@ -2310,13 +2345,13 @@ static void layout_symtab(struct module *mod, struct load_info *info)
        }
  
        /* Append room for core symbols at end of core part. */
@@ -85822,7 +85990,7 @@ index f5a3b1e..1f5578b 100644
                                         info->index.str) | INIT_OFFSET_MASK;
        pr_debug("\t%s\n", info->secstrings + strsect->sh_name);
  }
-@@ -2334,12 +2352,14 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
+@@ -2334,12 +2369,14 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
        /* Make sure we get permanent strtab: don't use info->strtab. */
        mod->strtab = (void *)info->sechdrs[info->index.str].sh_addr;
  
@@ -85839,7 +86007,7 @@ index f5a3b1e..1f5578b 100644
        src = mod->symtab;
        for (ndst = i = 0; i < mod->num_symtab; i++) {
                if (i == 0 ||
-@@ -2351,6 +2371,8 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
+@@ -2351,6 +2388,8 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
                }
        }
        mod->core_num_syms = ndst;
@@ -85848,7 +86016,7 @@ index f5a3b1e..1f5578b 100644
  }
  #else
  static inline void layout_symtab(struct module *mod, struct load_info *info)
-@@ -2384,17 +2406,33 @@ void * __weak module_alloc(unsigned long size)
+@@ -2384,17 +2423,33 @@ void * __weak module_alloc(unsigned long size)
        return vmalloc_exec(size);
  }
  
@@ -85887,7 +86055,23 @@ index f5a3b1e..1f5578b 100644
                mutex_unlock(&module_mutex);
        }
        return ret;
-@@ -2667,8 +2705,14 @@ static struct module *setup_load_info(struct load_info *info, int flags)
+@@ -2651,7 +2706,15 @@ static struct module *setup_load_info(struct load_info *info, int flags)
+       mod = (void *)info->sechdrs[info->index.mod].sh_addr;
+       if (info->index.sym == 0) {
++#ifdef CONFIG_GRKERNSEC_RANDSTRUCT
++              /*
++               * avoid potentially printing jibberish on attempted load
++               * of a module randomized with a different seed
++               */
++              pr_warn("module has no symbols (stripped?)\n");
++#else
+               pr_warn("%s: module has no symbols (stripped?)\n", mod->name);
++#endif
+               return ERR_PTR(-ENOEXEC);
+       }
+@@ -2667,8 +2730,14 @@ static struct module *setup_load_info(struct load_info *info, int flags)
  static int check_modinfo(struct module *mod, struct load_info *info, int flags)
  {
        const char *modmagic = get_modinfo(info, "vermagic");
@@ -85902,7 +86086,7 @@ index f5a3b1e..1f5578b 100644
        if (flags & MODULE_INIT_IGNORE_VERMAGIC)
                modmagic = NULL;
  
-@@ -2693,7 +2737,7 @@ static int check_modinfo(struct module *mod, struct load_info *info, int flags)
+@@ -2693,7 +2762,7 @@ static int check_modinfo(struct module *mod, struct load_info *info, int flags)
        }
  
        /* Set up license info based on the info section */
@@ -85911,7 +86095,7 @@ index f5a3b1e..1f5578b 100644
  
        return 0;
  }
-@@ -2787,7 +2831,7 @@ static int move_module(struct module *mod, struct load_info *info)
+@@ -2787,7 +2856,7 @@ static int move_module(struct module *mod, struct load_info *info)
        void *ptr;
  
        /* Do the allocs. */
@@ -85920,7 +86104,7 @@ index f5a3b1e..1f5578b 100644
        /*
         * The pointer to this block is stored in the module structure
         * which is inside the block. Just mark it as not being a
-@@ -2797,11 +2841,11 @@ static int move_module(struct module *mod, struct load_info *info)
+@@ -2797,11 +2866,11 @@ static int move_module(struct module *mod, struct load_info *info)
        if (!ptr)
                return -ENOMEM;
  
@@ -85936,7 +86120,7 @@ index f5a3b1e..1f5578b 100644
                /*
                 * The pointer to this block is stored in the module structure
                 * which is inside the block. This block doesn't need to be
-@@ -2810,13 +2854,45 @@ static int move_module(struct module *mod, struct load_info *info)
+@@ -2810,13 +2879,45 @@ static int move_module(struct module *mod, struct load_info *info)
                 */
                kmemleak_ignore(ptr);
                if (!ptr) {
@@ -85986,7 +86170,7 @@ index f5a3b1e..1f5578b 100644
  
        /* Transfer each section which specifies SHF_ALLOC */
        pr_debug("final section addresses:\n");
-@@ -2827,16 +2903,45 @@ static int move_module(struct module *mod, struct load_info *info)
+@@ -2827,16 +2928,45 @@ static int move_module(struct module *mod, struct load_info *info)
                if (!(shdr->sh_flags & SHF_ALLOC))
                        continue;
  
@@ -86039,7 +86223,7 @@ index f5a3b1e..1f5578b 100644
                pr_debug("\t0x%lx %s\n",
                         (long)shdr->sh_addr, info->secstrings + shdr->sh_name);
        }
-@@ -2893,12 +2998,12 @@ static void flush_module_icache(const struct module *mod)
+@@ -2893,12 +3023,12 @@ static void flush_module_icache(const struct module *mod)
         * Do it before processing of module parameters, so the module
         * can provide parameter accessor functions of its own.
         */
@@ -86058,7 +86242,7 @@ index f5a3b1e..1f5578b 100644
  
        set_fs(old_fs);
  }
-@@ -2955,8 +3060,10 @@ static struct module *layout_and_allocate(struct load_info *info, int flags)
+@@ -2955,8 +3085,10 @@ static struct module *layout_and_allocate(struct load_info *info, int flags)
  static void module_deallocate(struct module *mod, struct load_info *info)
  {
        percpu_modfree(mod);
@@ -86071,7 +86255,7 @@ index f5a3b1e..1f5578b 100644
  }
  
  int __weak module_finalize(const Elf_Ehdr *hdr,
-@@ -2969,7 +3076,9 @@ int __weak module_finalize(const Elf_Ehdr *hdr,
+@@ -2969,7 +3101,9 @@ int __weak module_finalize(const Elf_Ehdr *hdr,
  static int post_relocation(struct module *mod, const struct load_info *info)
  {
        /* Sort exception table now relocations are done. */
@@ -86081,7 +86265,7 @@ index f5a3b1e..1f5578b 100644
  
        /* Copy relocated percpu area over. */
        percpu_modcopy(mod, (void *)info->sechdrs[info->index.pcpu].sh_addr,
-@@ -3023,16 +3132,16 @@ static int do_init_module(struct module *mod)
+@@ -3023,16 +3157,16 @@ static int do_init_module(struct module *mod)
                        MODULE_STATE_COMING, mod);
  
        /* Set RO and NX regions for core */
@@ -86106,7 +86290,7 @@ index f5a3b1e..1f5578b 100644
  
        do_mod_ctors(mod);
        /* Start the module */
-@@ -3093,11 +3202,12 @@ static int do_init_module(struct module *mod)
+@@ -3093,11 +3227,12 @@ static int do_init_module(struct module *mod)
        mod->strtab = mod->core_strtab;
  #endif
        unset_module_init_ro_nx(mod);
@@ -86124,7 +86308,7 @@ index f5a3b1e..1f5578b 100644
        mutex_unlock(&module_mutex);
        wake_up_all(&module_wq);
  
-@@ -3240,9 +3350,38 @@ static int load_module(struct load_info *info, const char __user *uargs,
+@@ -3240,9 +3375,38 @@ static int load_module(struct load_info *info, const char __user *uargs,
        if (err)
                goto free_unload;
  
@@ -86163,7 +86347,7 @@ index f5a3b1e..1f5578b 100644
        /* Fix up syms, so that st_value is a pointer to location. */
        err = simplify_symbols(mod, info);
        if (err < 0)
-@@ -3258,13 +3397,6 @@ static int load_module(struct load_info *info, const char __user *uargs,
+@@ -3258,13 +3422,6 @@ static int load_module(struct load_info *info, const char __user *uargs,
  
        flush_module_icache(mod);
  
@@ -86177,7 +86361,7 @@ index f5a3b1e..1f5578b 100644
        dynamic_debug_setup(info->debug, info->num_debug);
  
        /* Finally it's fully formed, ready to start executing. */
-@@ -3299,11 +3431,10 @@ static int load_module(struct load_info *info, const char __user *uargs,
+@@ -3299,11 +3456,10 @@ static int load_module(struct load_info *info, const char __user *uargs,
   ddebug_cleanup:
        dynamic_debug_remove(info->debug);
        synchronize_sched();
@@ -86190,7 +86374,7 @@ index f5a3b1e..1f5578b 100644
   free_unload:
        module_unload_free(mod);
   unlink_mod:
-@@ -3386,10 +3517,16 @@ static const char *get_ksymbol(struct module *mod,
+@@ -3386,10 +3542,16 @@ static const char *get_ksymbol(struct module *mod,
        unsigned long nextval;
  
        /* At worse, next value is at end of module */
@@ -86210,7 +86394,7 @@ index f5a3b1e..1f5578b 100644
  
        /* Scan for closest preceding symbol, and next symbol. (ELF
           starts real symbols at 1). */
-@@ -3640,7 +3777,7 @@ static int m_show(struct seq_file *m, void *p)
+@@ -3640,7 +3802,7 @@ static int m_show(struct seq_file *m, void *p)
                return 0;
  
        seq_printf(m, "%s %u",
@@ -86219,7 +86403,7 @@ index f5a3b1e..1f5578b 100644
        print_unload_info(m, mod);
  
        /* Informative for users. */
-@@ -3649,7 +3786,7 @@ static int m_show(struct seq_file *m, void *p)
+@@ -3649,7 +3811,7 @@ static int m_show(struct seq_file *m, void *p)
                   mod->state == MODULE_STATE_COMING ? "Loading":
                   "Live");
        /* Used by oprofile and other similar tools. */
@@ -86228,7 +86412,7 @@ index f5a3b1e..1f5578b 100644
  
        /* Taints info */
        if (mod->taints)
-@@ -3685,7 +3822,17 @@ static const struct file_operations proc_modules_operations = {
+@@ -3685,7 +3847,17 @@ static const struct file_operations proc_modules_operations = {
  
  static int __init proc_modules_init(void)
  {
@@ -86246,7 +86430,7 @@ index f5a3b1e..1f5578b 100644
        return 0;
  }
  module_init(proc_modules_init);
-@@ -3746,14 +3893,14 @@ struct module *__module_address(unsigned long addr)
+@@ -3746,14 +3918,14 @@ struct module *__module_address(unsigned long addr)
  {
        struct module *mod;
  
@@ -86264,7 +86448,7 @@ index f5a3b1e..1f5578b 100644
                        return mod;
        }
        return NULL;
-@@ -3788,11 +3935,20 @@ bool is_module_text_address(unsigned long addr)
+@@ -3788,11 +3960,20 @@ bool is_module_text_address(unsigned long addr)
   */
  struct module *__module_text_address(unsigned long addr)
  {
@@ -91228,7 +91412,7 @@ index 6768ce9..4c41d69 100644
        mm = get_task_mm(tsk);
        if (!mm)
 diff --git a/mm/mempolicy.c b/mm/mempolicy.c
-index 0cd2c4d..9558c83 100644
+index e1bd997..055f496 100644
 --- a/mm/mempolicy.c
 +++ b/mm/mempolicy.c
 @@ -747,6 +747,10 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
@@ -95456,7 +95640,7 @@ index 4a5df7b..9ad1f1d 100644
  
        switch (ss->ss_family) {
 diff --git a/net/compat.c b/net/compat.c
-index dd32e34..0529c9c 100644
+index f50161f..94fa415 100644
 --- a/net/compat.c
 +++ b/net/compat.c
 @@ -73,9 +73,9 @@ int get_compat_msghdr(struct msghdr *kmsg, struct compat_msghdr __user *umsg)
@@ -95586,16 +95770,7 @@ index dd32e34..0529c9c 100644
        struct group_filter __user *kgf;
        int __user      *koptlen;
        u32 interface, fmode, numsrc;
-@@ -783,7 +783,7 @@ asmlinkage long compat_sys_recvmmsg(int fd, struct compat_mmsghdr __user *mmsg,
-       if (COMPAT_USE_64BIT_TIME)
-               return __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen,
-                                     flags | MSG_CMSG_COMPAT,
--                                    (struct timespec *) timeout);
-+                                    (struct timespec __force_kernel *) timeout);
-       if (timeout == NULL)
-               return __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen,
-@@ -808,7 +808,7 @@ asmlinkage long compat_sys_socketcall(int call, u32 __user *args)
+@@ -803,7 +803,7 @@ asmlinkage long compat_sys_socketcall(int call, u32 __user *args)
  
        if (call < SYS_SOCKET || call > SYS_SENDMMSG)
                return -EINVAL;
@@ -96409,7 +96584,7 @@ index a1b5bcb..62ec5c6 100644
  #endif
        if (dflt != &ipv4_devconf_dflt)
 diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
-index d846304..d0622bb 100644
+index c7539e2..b455e51 100644
 --- a/net/ipv4/fib_frontend.c
 +++ b/net/ipv4/fib_frontend.c
 @@ -1015,12 +1015,12 @@ static int fib_inetaddr_event(struct notifier_block *this, unsigned long event,
@@ -96427,7 +96602,7 @@ index d846304..d0622bb 100644
                if (ifa->ifa_dev->ifa_list == NULL) {
                        /* Last address was deleted from this interface.
                         * Disable IP.
-@@ -1056,7 +1056,7 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo
+@@ -1058,7 +1058,7 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo
  #ifdef CONFIG_IP_ROUTE_MULTIPATH
                fib_sync_up(dev);
  #endif
@@ -96559,7 +96734,7 @@ index 2481993..2d9a7a7 100644
        return -ENOMEM;
  }
 diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
-index e560ef3..218c5c5 100644
+index d306360..1c1a1f1 100644
 --- a/net/ipv4/ip_gre.c
 +++ b/net/ipv4/ip_gre.c
 @@ -115,7 +115,7 @@ static bool log_ecn_error = true;
@@ -101206,20 +101381,6 @@ index 0000000..5e0222d
 +      [[ "$plugincc" =~ "$1" ]] && echo "$1"
 +      [[ "$plugincc" =~ "$2" ]] && echo "$2"
 +fi
-diff --git a/scripts/gen-random-seed.sh b/scripts/gen-random-seed.sh
-new file mode 100644
-index 0000000..17b3162
---- /dev/null
-+++ b/scripts/gen-random-seed.sh
-@@ -0,0 +1,8 @@
-+#!/bin/sh
-+
-+if [ ! -f 'tools/gcc/randstruct.seed' ]; then
-+      SEED=`od -A n -t x8 -N 32 /dev/urandom | tr -d ' \n'`
-+      echo "$SEED" > tools/gcc/randstruct.seed
-+fi
-+cat tools/gcc/randstruct.seed | sha256sum | cut -d" " -f1 | tr -d "\n" > tools/gcc/randstruct.hashed_seed
-+cat tools/gcc/randstruct.seed
 diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh
 index 5de5660..d3deb89 100644
 --- a/scripts/headers_install.sh
@@ -101503,10 +101664,10 @@ index 8fac3fd..32ff38d 100644
        unsigned int secindex_strings;
  
 diff --git a/security/Kconfig b/security/Kconfig
-index e9c6ac7..9551ea7 100644
+index e9c6ac7..0ebde711 100644
 --- a/security/Kconfig
 +++ b/security/Kconfig
-@@ -4,6 +4,958 @@
+@@ -4,6 +4,959 @@
  
  menu "Security options"
  
@@ -101541,6 +101702,7 @@ index e9c6ac7..9551ea7 100644
 +      select PROC_FS
 +      select STOP_MACHINE
 +      select TTY
++      select DEBUG_KERNEL
 +      select DEBUG_LIST
 +      help
 +        If you say Y here, you will be able to configure many features
@@ -102465,7 +102627,7 @@ index e9c6ac7..9551ea7 100644
  source security/keys/Kconfig
  
  config SECURITY_DMESG_RESTRICT
-@@ -103,7 +1055,7 @@ config INTEL_TXT
+@@ -103,7 +1056,7 @@ config INTEL_TXT
  config LSM_MMAP_MIN_ADDR
        int "Low address space for LSM to protect from user allocation"
        depends on SECURITY && SECURITY_SELINUX
@@ -102851,6 +103013,21 @@ index 48c3cc9..8022cf7 100644
        rtnl_lock();
        for_each_net(net)
                rt_genid_bump_all(net);
+diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c
+index d106733..539aadd 100644
+--- a/security/selinux/ss/services.c
++++ b/security/selinux/ss/services.c
+@@ -1232,6 +1232,10 @@ static int security_context_to_sid_core(const char *scontext, u32 scontext_len,
+       struct context context;
+       int rc = 0;
++      /* An empty security context is never valid. */
++      if (!scontext_len)
++              return -EINVAL;
++
+       if (!ss_initialized) {
+               int i;
 diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c
 index b0be893..646bd94 100644
 --- a/security/smack/smack_lsm.c
@@ -103648,19 +103825,18 @@ index 7778b8e..3d619fc 100644
  
 diff --git a/tools/gcc/.gitignore b/tools/gcc/.gitignore
 new file mode 100644
-index 0000000..8eb55ca
+index 0000000..4c2c45c
 --- /dev/null
 +++ b/tools/gcc/.gitignore
-@@ -0,0 +1,3 @@
+@@ -0,0 +1,2 @@
++randomize_layout_seed.h
 +size_overflow_hash.h
-+randstruct.seed
-+randstruct.hashed_seed
 diff --git a/tools/gcc/Makefile b/tools/gcc/Makefile
 new file mode 100644
-index 0000000..f8ef8a3
+index 0000000..0d1d9d3
 --- /dev/null
 +++ b/tools/gcc/Makefile
-@@ -0,0 +1,47 @@
+@@ -0,0 +1,54 @@
 +#CC := gcc
 +#PLUGIN_SOURCE_FILES := pax_plugin.c
 +#PLUGIN_OBJECT_FILES := $(patsubst %.c,%.o,$(PLUGIN_SOURCE_FILES))
@@ -103700,6 +103876,7 @@ index 0000000..f8ef8a3
 +randomize_layout_plugin-objs := randomize_layout_plugin.o
 +
 +$(obj)/size_overflow_plugin.o: $(objtree)/$(obj)/size_overflow_hash.h
++$(obj)/randomize_layout_plugin.o: $(objtree)/$(obj)/randomize_layout_seed.h
 +
 +quiet_cmd_build_size_overflow_hash = GENHASH  $@
 +      cmd_build_size_overflow_hash = \
@@ -103707,7 +103884,13 @@ index 0000000..f8ef8a3
 +$(objtree)/$(obj)/size_overflow_hash.h: $(src)/size_overflow_hash.data FORCE
 +      $(call if_changed,build_size_overflow_hash)
 +
-+targets += size_overflow_hash.h
++quiet_cmd_create_randomize_layout_seed = GENSEED  $@
++      cmd_create_randomize_layout_seed = \
++      $(CONFIG_SHELL) $(srctree)/$(src)/gen-random-seed.sh $@ $(objtree)/include/generated/randomize_layout_hash.h
++$(objtree)/$(obj)/randomize_layout_seed.h: FORCE
++      $(call if_changed,create_randomize_layout_seed)
++
++targets += size_overflow_hash.h randomize_layout_seed.h randomize_layout_hash.h
 diff --git a/tools/gcc/checker_plugin.c b/tools/gcc/checker_plugin.c
 new file mode 100644
 index 0000000..5452feea
@@ -104599,10 +104782,10 @@ index 0000000..4f67ac1
 +}
 diff --git a/tools/gcc/gcc-common.h b/tools/gcc/gcc-common.h
 new file mode 100644
-index 0000000..986f39b
+index 0000000..312d3b6
 --- /dev/null
 +++ b/tools/gcc/gcc-common.h
-@@ -0,0 +1,267 @@
+@@ -0,0 +1,268 @@
 +#ifndef GCC_COMMON_H_INCLUDED
 +#define GCC_COMMON_H_INCLUDED
 +
@@ -104693,6 +104876,7 @@ index 0000000..986f39b
 +#if BUILDING_GCC_VERSION >= 4009
 +#include "tree-ssa-operands.h"
 +#include "tree-phinodes.h"
++#include "tree-cfg.h"
 +#include "gimple-iterator.h"
 +#include "gimple-ssa.h"
 +#include "ssa-iterators.h"
@@ -104870,6 +105054,20 @@ index 0000000..986f39b
 +#endif
 +
 +#endif
+diff --git a/tools/gcc/gen-random-seed.sh b/tools/gcc/gen-random-seed.sh
+new file mode 100644
+index 0000000..7514850
+--- /dev/null
++++ b/tools/gcc/gen-random-seed.sh
+@@ -0,0 +1,8 @@
++#!/bin/sh
++
++if [ ! -f "$1" ]; then
++      SEED=`od -A n -t x8 -N 32 /dev/urandom | tr -d ' \n'`
++      echo "const char *randstruct_seed = \"$SEED\";" > "$1"
++      HASH=`echo -n "$SEED" | sha256sum | cut -d" " -f1 | tr -d ' \n'`
++      echo "#define RANDSTRUCT_HASHED_SEED \"$HASH\"" > "$2"
++fi
 diff --git a/tools/gcc/generate_size_overflow_hash.sh b/tools/gcc/generate_size_overflow_hash.sh
 new file mode 100644
 index 0000000..e518932
@@ -105685,7 +105883,7 @@ index 0000000..dd73713
 +}
 diff --git a/tools/gcc/latent_entropy_plugin.c b/tools/gcc/latent_entropy_plugin.c
 new file mode 100644
-index 0000000..f04b680
+index 0000000..592b923
 --- /dev/null
 +++ b/tools/gcc/latent_entropy_plugin.c
 @@ -0,0 +1,325 @@
@@ -106008,7 +106206,7 @@ index 0000000..f04b680
 +      }
 +
 +      register_callback(plugin_name, PLUGIN_INFO, NULL, &latent_entropy_plugin_info);
-+      register_callback ("start_unit", PLUGIN_START_UNIT, &start_unit_callback, NULL);
++      register_callback(plugin_name, PLUGIN_START_UNIT, &start_unit_callback, NULL);
 +      register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &latent_entropy_pass_info);
 +      register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
 +
@@ -106016,10 +106214,10 @@ index 0000000..f04b680
 +}
 diff --git a/tools/gcc/randomize_layout_plugin.c b/tools/gcc/randomize_layout_plugin.c
 new file mode 100644
-index 0000000..4aceb10
+index 0000000..fed12bf
 --- /dev/null
 +++ b/tools/gcc/randomize_layout_plugin.c
-@@ -0,0 +1,746 @@
+@@ -0,0 +1,902 @@
 +/*
 + * Copyright 2014 by Open Source Security, Inc., Brad Spengler <spender@grsecurity.net>
 + *                   and PaX Team <pageexec@freemail.hu>
@@ -106034,6 +106232,7 @@ index 0000000..4aceb10
 + */
 +
 +#include "gcc-common.h"
++#include "randomize_layout_seed.h"
 +
 +#define ORIG_TYPE_NAME(node) \
 +      (TYPE_NAME(TYPE_MAIN_VARIANT(node)) != NULL_TREE ? ((const unsigned char *)IDENTIFIER_POINTER(TYPE_NAME(TYPE_MAIN_VARIANT(node)))) : (const unsigned char *)"anonymous")
@@ -106043,9 +106242,8 @@ index 0000000..4aceb10
 +static int performance_mode;
 +
 +static struct plugin_info randomize_layout_plugin_info = {
-+      .version        = "201401251240",
++      .version        = "201402061950",
 +      .help           = "disable\t\t\tdo not activate plugin\n"
-+                        "seed\t\t\tprovide a required 64-byte seed in hex format\n"
 +                        "performance-mode\tenable cacheline-aware layout randomization\n"
 +};
 +
@@ -106318,6 +106516,7 @@ index 0000000..4aceb10
 +      unsigned long i;
 +      tree list;
 +      tree variant;
++      expanded_location xloc;
 +
 +      if (TYPE_FIELDS(type) == NULL_TREE)
 +              return 0;
@@ -106333,6 +106532,12 @@ index 0000000..4aceb10
 +          lookup_attribute("no_randomize_layout", TYPE_ATTRIBUTES(TYPE_MAIN_VARIANT(type))))
 +              return 0;
 +
++      /* throw out any structs in uapi */
++      xloc = expand_location(DECL_SOURCE_LOCATION(TYPE_FIELDS(type)));
++
++      if (strstr(xloc.file, "/uapi/"))
++              error(G_("attempted to randomize userland API struct %s"), ORIG_TYPE_NAME(type));
++
 +      for (field = TYPE_FIELDS(type), i = 0; field; field = TREE_CHAIN(field), i++) {
 +              gcc_assert(TREE_CODE(field) == FIELD_DECL);
 +              newtree[i] = field;
@@ -106445,6 +106650,28 @@ index 0000000..4aceb10
 +#endif
 +}
 +
++static void finish_decl(void *event_data, void *data)
++{
++      tree decl = (tree)event_data;
++      tree type;
++
++      if (decl == NULL_TREE || decl == error_mark_node)
++              return;
++
++      type = TREE_TYPE(decl);
++
++      if (TREE_CODE(decl) != VAR_DECL)
++              return;
++
++      if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
++              return;
++
++      if (!lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(type)))
++              return;
++
++      relayout_decl(decl);
++}
++
 +static void finish_type(void *event_data, void *data)
 +{
 +      tree type = (tree)event_data;
@@ -106540,6 +106767,133 @@ index 0000000..4aceb10
 +      register_attribute(&randomize_performed_attr);
 +}
 +
++static void check_bad_casts_in_constructor(tree var, tree init)
++{
++      unsigned HOST_WIDE_INT idx;
++      tree field, val;
++      tree field_type, val_type;
++
++      FOR_EACH_CONSTRUCTOR_ELT(CONSTRUCTOR_ELTS(init), idx, field, val) {
++              if (TREE_CODE(val) == CONSTRUCTOR) {
++                      check_bad_casts_in_constructor(var, val);
++                      continue;
++              }
++
++              field_type = TREE_TYPE(field);
++              val_type = TREE_TYPE(val);
++
++              if (TREE_CODE(field_type) != POINTER_TYPE || TREE_CODE(val_type) != POINTER_TYPE)
++                      continue;
++
++              if (field_type == val_type)
++                      continue;
++
++              field_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(field_type))));
++              val_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(val_type))));
++
++              if (field_type == void_type_node)
++                      continue;
++              if (field_type == val_type)
++                      continue;
++              if (TREE_CODE(val_type) != RECORD_TYPE)
++                      continue;
++
++              if (!lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(val_type)))
++                      continue;
++              inform(DECL_SOURCE_LOCATION(var), "found mismatched struct pointer types: %qT and %qT\n", TYPE_MAIN_VARIANT(field_type), TYPE_MAIN_VARIANT(val_type));
++      }
++}
++
++/* derived from the constify plugin */
++static void check_global_variables(void *event_data, void *data)
++{
++      struct varpool_node *node;
++      tree init;
++
++      FOR_EACH_VARIABLE(node) {
++              tree var = NODE_DECL(node);
++              init = DECL_INITIAL(var);
++              if (init == NULL_TREE)
++                      continue;
++
++              if (TREE_CODE(init) != CONSTRUCTOR)
++                      continue;
++
++              check_bad_casts_in_constructor(var, init);
++      }
++}
++
++static bool dominated_by_is_err(const_tree rhs, basic_block bb)
++{
++      basic_block dom;
++      gimple dom_stmt;
++      gimple call_stmt;
++      const_tree dom_lhs;
++      const_tree poss_is_err_cond;
++      const_tree poss_is_err_func;
++      const_tree is_err_arg;
++
++      dom = get_immediate_dominator(CDI_DOMINATORS, bb);
++      if (!dom)
++              return false;
++
++      dom_stmt = last_stmt(dom);
++      if (!dom_stmt)
++              return false;
++
++      if (gimple_code(dom_stmt) != GIMPLE_COND)
++              return false;
++
++      if (gimple_cond_code(dom_stmt) != NE_EXPR)
++              return false;
++
++      if (!integer_zerop(gimple_cond_rhs(dom_stmt)))
++              return false;
++
++      poss_is_err_cond = gimple_cond_lhs(dom_stmt);
++
++      if (TREE_CODE(poss_is_err_cond) != SSA_NAME)
++              return false;
++
++      call_stmt = SSA_NAME_DEF_STMT(poss_is_err_cond);
++
++      if (gimple_code(call_stmt) != GIMPLE_CALL)
++              return false;
++
++      dom_lhs = gimple_get_lhs(call_stmt);
++      poss_is_err_func = gimple_call_fndecl(call_stmt);
++      if (!poss_is_err_func)
++              return false;
++      if (dom_lhs != poss_is_err_cond)
++              return false;
++      if (strcmp(DECL_NAME_POINTER(poss_is_err_func), "IS_ERR"))
++              return false;
++
++      is_err_arg = gimple_call_arg(call_stmt, 0);
++      if (!is_err_arg)
++              return false;
++
++      if (is_err_arg != rhs)
++              return false;
++
++      return true;
++}
++
++static void handle_local_var_initializers(void)
++{
++      tree var;
++      unsigned int i;
++
++      FOR_EACH_LOCAL_DECL(cfun, i, var) {
++              tree init = DECL_INITIAL(var);
++              if (!init)
++                      continue;
++              if (TREE_CODE(init) != CONSTRUCTOR)
++                      continue;
++              check_bad_casts_in_constructor(var, init);
++      }
++}
++
 +/*
 + * iterate over all statements to find "bad" casts:
 + * those where the address of the start of a structure is cast
@@ -106550,7 +106904,9 @@ index 0000000..4aceb10
 +{
 +      basic_block bb;
 +
-+      FOR_ALL_BB(bb) {
++      handle_local_var_initializers();
++
++      FOR_ALL_BB_FN(bb, cfun) {
 +              gimple_stmt_iterator gsi;
 +
 +              for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
@@ -106597,13 +106953,16 @@ index 0000000..4aceb10
 +                          TREE_CODE(lhs_type) != POINTER_TYPE)
 +                              continue;
 +
-+                      ptr_lhs_type = strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(lhs_type)));
-+                      ptr_rhs_type = strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(rhs_type)));
++                      ptr_lhs_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(lhs_type))));
++                      ptr_rhs_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(rhs_type))));
 +
-+                      if (TREE_CODE(ptr_lhs_type) != RECORD_TYPE)
++                      if (ptr_rhs_type == void_type_node)
 +                              continue;
 +
-+                      if (ptr_rhs_type == void_type_node)
++                      if (ptr_lhs_type == void_type_node)
++                              continue;
++
++                      if (dominated_by_is_err(rhs1, bb))
 +                              continue;
 +
 +                      if (TREE_CODE(ptr_rhs_type) != RECORD_TYPE) {
@@ -106626,7 +106985,7 @@ index 0000000..4aceb10
 +                              if (TREE_CODE(op0) != VAR_DECL)
 +                                      continue;
 +
-+                              op0_type = strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(op0)));
++                              op0_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(op0))));
 +                              if (op0_type == ptr_lhs_type)
 +                                      continue;
 +
@@ -106677,7 +107036,7 @@ index 0000000..4aceb10
 +              .properties_provided    = 0,
 +              .properties_destroyed   = 0,
 +              .todo_flags_start       = 0,
-+              .todo_flags_finish      = TODO_dump_func | TODO_verify_ssa | TODO_verify_stmts | TODO_remove_unused_locals | TODO_update_ssa_no_phi | TODO_cleanup_cfg | TODO_ggc_collect | TODO_verify_flow
++              .todo_flags_finish      = TODO_dump_func
 +#if BUILDING_GCC_VERSION < 4009
 +      }
 +#endif
@@ -106736,22 +107095,15 @@ index 0000000..4aceb10
 +                      performance_mode = 1;
 +                      continue;
 +              }
-+              if (!strcmp(argv[i].key, "seed")) {
-+                      if (!argv[i].value) {
-+                              error(G_("no value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
-+                              continue;
-+                      }
-+                      if (strlen(argv[i].value) != 64) {
-+                              error(G_("invalid value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
-+                              continue;
-+                      }
-+                      obtained_seed = sscanf(argv[i].value, "%016llx%016llx%016llx%016llx",
-+                              &shuffle_seed[0], &shuffle_seed[1], &shuffle_seed[2], &shuffle_seed[3]);
-+                      continue;
-+              }
 +              error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
 +      }
 +
++      if (strlen(randstruct_seed) != 64) {
++              error(G_("invalid seed value supplied for %s plugin"), plugin_name);
++              return 1;
++      }
++      obtained_seed = sscanf(randstruct_seed, "%016llx%016llx%016llx%016llx",
++              &shuffle_seed[0], &shuffle_seed[1], &shuffle_seed[2], &shuffle_seed[3]);
 +      if (obtained_seed != 4) {
 +              error(G_("Invalid seed supplied for %s plugin"), plugin_name);
 +              return 1;
@@ -106759,8 +107111,10 @@ index 0000000..4aceb10
 +
 +      register_callback(plugin_name, PLUGIN_INFO, NULL, &randomize_layout_plugin_info);
 +      if (enable) {
++              register_callback(plugin_name, PLUGIN_ALL_IPA_PASSES_START, check_global_variables, NULL);
 +              register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &randomize_layout_bad_cast_info);
 +              register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL);
++              register_callback(plugin_name, PLUGIN_FINISH_DECL, finish_decl, NULL);
 +      }
 +      register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
 +
@@ -112471,7 +112825,7 @@ index 0000000..0c980be
 +nvme_trans_standard_inquiry_page_65526 nvme_trans_standard_inquiry_page 4 65526 NULL
 diff --git a/tools/gcc/size_overflow_plugin.c b/tools/gcc/size_overflow_plugin.c
 new file mode 100644
-index 0000000..94aa56d
+index 0000000..4a637ab
 --- /dev/null
 +++ b/tools/gcc/size_overflow_plugin.c
 @@ -0,0 +1,4040 @@
@@ -116505,7 +116859,7 @@ index 0000000..94aa56d
 +
 +      register_callback(plugin_name, PLUGIN_INFO, NULL, &size_overflow_plugin_info);
 +      if (enable) {
-+              register_callback("start_unit", PLUGIN_START_UNIT, &start_unit_callback, NULL);
++              register_callback(plugin_name, PLUGIN_START_UNIT, &start_unit_callback, NULL);
 +              register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &insert_size_overflow_asm_pass_info);
 +//            register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &dump_before_pass_info);
 +              register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &ipa_pass_info);
index c691ce03436e4deb4818b55fe631e47a174f21ac..01d6262646e0f3468e28d7b5d82a6578b607a648 100755 (executable)
@@ -14,7 +14,7 @@ CONFIGS="x86_64:default"
 CONFIGS="${CONFIGS} i686:legacy i686:default"
 
 # armv7hl
-CONFIGS="${CONFIGS} armv7hl:default"
+CONFIGS="${CONFIGS} armv7hl:lpae armv7hl:default"
 
 # armv5tel
 CONFIGS="${CONFIGS} armv5tel:versatile armv5tel:kirkwood"
@@ -74,7 +74,12 @@ function merge_config() {
                        configs="${configs} config-arm-generic config-armv5tel-kirkwood"
                        ;;
                armv7hl:default)
-                       configs="${configs} config-arm-generic config-armv7hl-default"
+                       configs="${configs} config-arm-generic config-armv7hl-generic"
+                       configs="${configs} config-armv7hl-default"
+                       ;;
+               armv7hl:lpae)
+                       configs="${configs} config-arm-generic config-armv7hl-generic"
+                       configs="${configs} config-armv7hl-lpae"
                        ;;
                *)
                        echo >&2 "ERROR: Invalid parameters given: $@"
@@ -175,6 +180,7 @@ function diff_configs() {
        local extra_configs="$@"
 
        declare -A arch_configs
+       declare -A subarch_configs
 
        tmpdir=$(mktemp -d)
 
@@ -191,11 +197,6 @@ function diff_configs() {
                        i686:legacy)
                                continue
                                ;;
-                       armv5tel:versatile)
-                               ;;
-                       arm*)
-                               continue
-                               ;;
                esac
 
                case "${arch}" in
@@ -209,6 +210,8 @@ function diff_configs() {
                                echo >&2 "ERROR: Invalid architecture: ${arch}"
                                ;;
                esac
+
+               subarch_configs[${arch}]="${subarch_configs[${arch}]} ${filename}"
        done
 
        common_configs=""
@@ -222,11 +225,18 @@ function diff_configs() {
 
        ${SCRIPTS_DIR}/configcommon.py ${common_configs} > ${tmpdir}/config-generic
 
-       ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-generic ${tmpdir}/config-arm-common \
-               > ${tmpdir}/config-arm-generic
+       for arch in x86 arm; do
+               ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-generic \
+                       ${tmpdir}/config-${arch}-common > ${tmpdir}/config-${arch}-generic
+       done
+
+       for arch in armv7hl; do
+               ${SCRIPTS_DIR}/configcommon.py ${subarch_configs[${arch}]} \
+                       > ${tmpdir}/config-${arch}-common
 
-       ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-generic ${tmpdir}/config-x86-common \
-               > ${tmpdir}/config-x86-generic
+               ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-arm-common \
+                       ${tmpdir}/config-${arch}-common > ${tmpdir}/config-${arch}-generic
+       done
 
        for config in ${CONFIGS}; do
                arch=${config%:*}
@@ -248,6 +258,11 @@ function diff_configs() {
                                ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-i686-default \
                                        ${filename} > ${filename}.tmp
                                ;;
+                       armv7hl:*)
+                               # armv7hl depends on a config-armv7hl
+                               ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-${arch}-common \
+                                       ${filename} > ${filename}.tmp
+                               ;;
                        armv5tel:versatile)
                                rm -f ${filename}
                                continue