From: Michael Tremer Date: Mon, 10 Feb 2014 19:27:41 +0000 (+0000) Subject: kernel: Add an ARM LPAE kernel. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fheads%2Fkernel-3.13;p=people%2Fms%2Fipfire-3.x.git kernel: Add an ARM LPAE kernel. --- diff --git a/kernel/config-arm-generic b/kernel/config-arm-generic index a1b48df7c..319f296f7 100644 --- a/kernel/config-arm-generic +++ b/kernel/config-arm-generic @@ -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 diff --git a/kernel/config-armv5tel-kirkwood b/kernel/config-armv5tel-kirkwood index d335e8c2f..b05506fa7 100644 --- a/kernel/config-armv5tel-kirkwood +++ b/kernel/config-armv5tel-kirkwood @@ -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 diff --git a/kernel/config-armv7hl-default b/kernel/config-armv7hl-default index 0dc1fc5d1..1ab74929e 100644 --- a/kernel/config-armv7hl-default +++ b/kernel/config-armv7hl-default @@ -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 index 000000000..f3df46959 --- /dev/null +++ b/kernel/config-armv7hl-generic @@ -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 index 000000000..8d6b89de1 --- /dev/null +++ b/kernel/config-armv7hl-lpae @@ -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 diff --git a/kernel/config-generic b/kernel/config-generic index e9e2e5acb..933d8ac5b 100644 --- a/kernel/config-generic +++ b/kernel/config-generic @@ -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 diff --git a/kernel/config-x86-generic b/kernel/config-x86-generic index 4ff4f5494..c6b9e21dc 100644 --- a/kernel/config-x86-generic +++ b/kernel/config-x86-generic @@ -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 diff --git a/kernel/kernel.nm b/kernel/kernel.nm index 7ca1ab994..1650e8910 100644 --- a/kernel/kernel.nm +++ b/kernel/kernel.nm @@ -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 diff --git a/kernel/patches/grsecurity-3.0-3.13.1-201401292203.patch b/kernel/patches/grsecurity-3.0-3.13.2-201402091134.patch 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 2848c606a..df6cd994f 100644 --- a/kernel/patches/grsecurity-3.0-3.13.1-201401292203.patch +++ b/kernel/patches/grsecurity-3.0-3.13.2-201402091134.patch @@ -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 + #include ++#include + + #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 #include -@@ -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 +#include +#include @@ -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 +#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 + * and PaX Team @@ -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); diff --git a/kernel/scripts/configure b/kernel/scripts/configure index c691ce034..01d626264 100755 --- a/kernel/scripts/configure +++ b/kernel/scripts/configure @@ -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