瀏覽代碼

Upgraded kernel to v3.11.2

Maxim Kammerer 11 年之前
父節點
當前提交
3153b64b17

+ 3 - 3
doc/changelog.txt

@@ -1,8 +1,8 @@
-2013-09-XX
-  + 2013.09 release
+2013-11-XX
+  + 2013.11 release
   * Release naming convention is YYYY.MM from now on
   * Release naming convention is YYYY.MM from now on
 
 
-  * Kernel 3.9.9 with module signing and BFQ I/O scheduler
+  * Kernel 3.11.2 with module signing
   * DM-Verity for faster SquashFS image verification
   * DM-Verity for faster SquashFS image verification
   * Support for installation to GPT media
   * Support for installation to GPT media
   * Added support for exFAT filesystem
   * Added support for exFAT filesystem

+ 3 - 3
src/etc/portage/make.conf

@@ -34,9 +34,9 @@ USE="aac acpi alsa apng archive bluetooth bs2b cairo caps cdda cjk
      staticsocket svg symlink thesaurus threads tiff truetype uuid usb v4l
      staticsocket svg symlink thesaurus threads tiff truetype uuid usb v4l
      vorbis wavpack webgl wifi wmf X X509 xattr xft xinerama xmp xv"
      vorbis wavpack webgl wifi wmf X X509 xattr xft xinerama xmp xv"
 
 
-USE="${USE} -ant -berkdb -cracklib -cramfs -cups -cxx -enca -fts3 -gdbm -git
-     -http-cache -ipv6 -lvm1 -mudflap -orc -ptpax -qt4 -sendmail -session
-     -sqlite -static -tcpd -thin -xscreensaver -zeroconf"
+USE="${USE} -ant -berkdb -cracklib -cramfs -cups -cxx -enca -firmware-loader
+     -fts3 -gdbm -git -http-cache -ipv6 -lvm1 -mudflap -orc -ptpax -qt4 -sendmail
+     -session -sqlite -static -tcpd -thin -xscreensaver -zeroconf"
 
 
 # PaX markings
 # PaX markings
 PAX_MARKINGS="XT"
 PAX_MARKINGS="XT"

+ 0 - 1
src/etc/portage/package.accept_keywords

@@ -3,7 +3,6 @@
 =sys-power/cpupower-3.11*
 =sys-power/cpupower-3.11*
 
 
 # Boot process (cdrtools: EFI platform support)
 # Boot process (cdrtools: EFI platform support)
-=sys-boot/grub-2.00*:2
 =sys-fs/cryptsetup-1.6.2*
 =sys-fs/cryptsetup-1.6.2*
 
 
 # Network
 # Network

+ 19 - 11
src/etc/portage/savedconfig/sys-kernel/linux-firmware

@@ -14,6 +14,15 @@ ar5523.bin
 htc_7010.fw
 htc_7010.fw
 htc_9271.fw
 htc_9271.fw
 
 
+# ATH10K
+# (missing)
+ath10k/QCA988X/hw1.0/firmware.bin
+ath10k/QCA988X/hw1.0/otp.bin
+ath10k/QCA988X/hw1.0/board.bin
+ath10k/QCA988X/hw2.0/firmware.bin
+ath10k/QCA988X/hw2.0/otp.bin
+ath10k/QCA988X/hw2.0/board.bin
+
 # BRCMFMAC
 # BRCMFMAC
 brcm/brcmfmac43236b.bin
 brcm/brcmfmac43236b.bin
 # (missing)
 # (missing)
@@ -49,15 +58,11 @@ iwlwifi-2030-6.ucode
 iwlwifi-5000-5.ucode
 iwlwifi-5000-5.ucode
 iwlwifi-5150-2.ucode
 iwlwifi-5150-2.ucode
 iwlwifi-6000-4.ucode
 iwlwifi-6000-4.ucode
-iwlwifi-6000g2a-6.ucode
+iwlwifi-6000g2a-5.ucode
 iwlwifi-6000g2b-6.ucode
 iwlwifi-6000g2b-6.ucode
 iwlwifi-6050-5.ucode
 iwlwifi-6050-5.ucode
-# (missing)
-# only -4 in linux-firmware
-# iwlwifi-6000-6.ucode
-# only -7 in linux-firmware
-iwlwifi-3160-6.ucode
-iwlwifi-7260-6.ucode
+iwlwifi-3160-7.ucode
+iwlwifi-7260-7.ucode
 
 
 # MWIFIEX
 # MWIFIEX
 mrvl/usb8797_uapsta.bin
 mrvl/usb8797_uapsta.bin
@@ -91,6 +96,8 @@ rt3290.bin
 rt2870.bin
 rt2870.bin
 
 
 # RTL{8192{CE,CU,SE,DE},8723AE}
 # RTL{8192{CE,CU,SE,DE},8723AE}
+# grep -r MODULE_FIRMWARE /usr/src/linux/drivers/net/wireless/rtlwifi
+rtlwifi/rtl8188efw.bin
 rtlwifi/rtl8192cfw.bin
 rtlwifi/rtl8192cfw.bin
 rtlwifi/rtl8192cufw.bin
 rtlwifi/rtl8192cufw.bin
 rtlwifi/rtl8192sefw.bin
 rtlwifi/rtl8192sefw.bin
@@ -99,9 +106,6 @@ rtlwifi/rtl8192cfwU.bin
 rtlwifi/rtl8192cfwU_B.bin
 rtlwifi/rtl8192cfwU_B.bin
 rtlwifi/rtl8723fw.bin
 rtlwifi/rtl8723fw.bin
 rtlwifi/rtl8723fw_B.bin
 rtlwifi/rtl8723fw_B.bin
-# (missing)
-rtlwifi/rtl8723aefw.bin
-rtlwifi/rtl8723aefw_B.bin
 
 
 
 
 # --- Bluetooth ---
 # --- Bluetooth ---
@@ -141,8 +145,10 @@ e100/d101s_ucode.bin
 e100/d102e_ucode.bin
 e100/d102e_ucode.bin
 
 
 # R8169
 # R8169
+# grep '^#define FIRMWARE_' /usr/src/linux/drivers/net/ethernet/realtek/r8169.c
 rtl_nic/rtl8105e-1.fw
 rtl_nic/rtl8105e-1.fw
 rtl_nic/rtl8106e-1.fw
 rtl_nic/rtl8106e-1.fw
+rtl_nic/rtl8106e-2.fw
 rtl_nic/rtl8168d-1.fw
 rtl_nic/rtl8168d-1.fw
 rtl_nic/rtl8168d-2.fw
 rtl_nic/rtl8168d-2.fw
 rtl_nic/rtl8168e-1.fw
 rtl_nic/rtl8168e-1.fw
@@ -150,9 +156,11 @@ rtl_nic/rtl8168e-2.fw
 rtl_nic/rtl8168e-3.fw
 rtl_nic/rtl8168e-3.fw
 rtl_nic/rtl8168f-1.fw
 rtl_nic/rtl8168f-1.fw
 rtl_nic/rtl8168f-2.fw
 rtl_nic/rtl8168f-2.fw
-rtl_nic/rtl8168g-1.fw
+rtl_nic/rtl8168g-2.fw
+rtl_nic/rtl8168g-3.fw
 rtl_nic/rtl8402-1.fw
 rtl_nic/rtl8402-1.fw
 rtl_nic/rtl8411-1.fw
 rtl_nic/rtl8411-1.fw
+rtl_nic/rtl8411-2.fw
 
 
 # TIGON3
 # TIGON3
 tigon/tg3.bin
 tigon/tg3.bin

+ 1 - 1
src/root/config/kversion

@@ -1 +1 @@
-3.9.9
+3.11.2

+ 104 - 49
src/root/config/linux-3.9.9-hardened-kexec-64.config → src/root/config/linux-3.11.2-hardened-kexec-64.config

@@ -1,6 +1,6 @@
 #
 #
 # Automatically generated file; DO NOT EDIT.
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86_64 3.9.9-hardened Kernel Configuration
+# Linux/x86_64 3.11.2-hardened Kernel Configuration
 #
 #
 CONFIG_64BIT=y
 CONFIG_64BIT=y
 CONFIG_X86_64=y
 CONFIG_X86_64=y
@@ -22,7 +22,6 @@ CONFIG_ARCH_MAY_HAVE_PC_FDC=y
 CONFIG_RWSEM_XCHGADD_ALGORITHM=y
 CONFIG_RWSEM_XCHGADD_ALGORITHM=y
 CONFIG_GENERIC_CALIBRATE_DELAY=y
 CONFIG_GENERIC_CALIBRATE_DELAY=y
 CONFIG_ARCH_HAS_CPU_RELAX=y
 CONFIG_ARCH_HAS_CPU_RELAX=y
-CONFIG_ARCH_HAS_DEFAULT_IDLE=y
 CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
 CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
 CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
 CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
 CONFIG_HAVE_SETUP_PER_CPU_AREA=y
 CONFIG_HAVE_SETUP_PER_CPU_AREA=y
@@ -30,6 +29,8 @@ CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
 CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
 CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
 CONFIG_ZONE_DMA32=y
 CONFIG_ZONE_DMA32=y
 CONFIG_AUDIT_ARCH=y
 CONFIG_AUDIT_ARCH=y
 CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
 CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
@@ -46,6 +47,7 @@ CONFIG_BUILDTIME_EXTABLE_SORT=y
 CONFIG_BROKEN_ON_SMP=y
 CONFIG_BROKEN_ON_SMP=y
 CONFIG_INIT_ENV_ARG_LIMIT=32
 CONFIG_INIT_ENV_ARG_LIMIT=32
 CONFIG_CROSS_COMPILE=""
 CONFIG_CROSS_COMPILE=""
+# CONFIG_COMPILE_TEST is not set
 CONFIG_LOCALVERSION=""
 CONFIG_LOCALVERSION=""
 # CONFIG_LOCALVERSION_AUTO is not set
 # CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_HAVE_KERNEL_GZIP=y
 CONFIG_HAVE_KERNEL_GZIP=y
@@ -53,11 +55,13 @@ CONFIG_HAVE_KERNEL_BZIP2=y
 CONFIG_HAVE_KERNEL_LZMA=y
 CONFIG_HAVE_KERNEL_LZMA=y
 CONFIG_HAVE_KERNEL_XZ=y
 CONFIG_HAVE_KERNEL_XZ=y
 CONFIG_HAVE_KERNEL_LZO=y
 CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_HAVE_KERNEL_LZ4=y
 # CONFIG_KERNEL_GZIP is not set
 # CONFIG_KERNEL_GZIP is not set
 # CONFIG_KERNEL_BZIP2 is not set
 # CONFIG_KERNEL_BZIP2 is not set
 # CONFIG_KERNEL_LZMA is not set
 # CONFIG_KERNEL_LZMA is not set
 CONFIG_KERNEL_XZ=y
 CONFIG_KERNEL_XZ=y
 # CONFIG_KERNEL_LZO is not set
 # CONFIG_KERNEL_LZO is not set
+# CONFIG_KERNEL_LZ4 is not set
 CONFIG_DEFAULT_HOSTNAME="liberte"
 CONFIG_DEFAULT_HOSTNAME="liberte"
 # CONFIG_SYSVIPC is not set
 # CONFIG_SYSVIPC is not set
 # CONFIG_FHANDLE is not set
 # CONFIG_FHANDLE is not set
@@ -84,6 +88,9 @@ CONFIG_GENERIC_CMOS_UPDATE=y
 # Timers subsystem
 # Timers subsystem
 #
 #
 CONFIG_TICK_ONESHOT=y
 CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_NO_HZ_IDLE=y
 CONFIG_NO_HZ=y
 CONFIG_NO_HZ=y
 # CONFIG_HIGH_RES_TIMERS is not set
 # CONFIG_HIGH_RES_TIMERS is not set
 
 
@@ -122,21 +129,21 @@ CONFIG_INITRAMFS_ROOT_GID=0
 # CONFIG_RD_LZMA is not set
 # CONFIG_RD_LZMA is not set
 CONFIG_RD_XZ=y
 CONFIG_RD_XZ=y
 # CONFIG_RD_LZO is not set
 # CONFIG_RD_LZO is not set
+# CONFIG_RD_LZ4 is not set
 # CONFIG_INITRAMFS_COMPRESSION_NONE is not set
 # CONFIG_INITRAMFS_COMPRESSION_NONE is not set
 CONFIG_INITRAMFS_COMPRESSION_XZ=y
 CONFIG_INITRAMFS_COMPRESSION_XZ=y
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 CONFIG_ANON_INODES=y
 CONFIG_ANON_INODES=y
-CONFIG_EXPERT=y
 CONFIG_HAVE_UID16=y
 CONFIG_HAVE_UID16=y
-# CONFIG_UID16 is not set
 CONFIG_SYSCTL_EXCEPTION_TRACE=y
 CONFIG_SYSCTL_EXCEPTION_TRACE=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
+CONFIG_EXPERT=y
+# CONFIG_UID16 is not set
 CONFIG_KALLSYMS=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_ALL is not set
 # CONFIG_KALLSYMS_ALL is not set
-CONFIG_HOTPLUG=y
 CONFIG_PRINTK=y
 CONFIG_PRINTK=y
 CONFIG_BUG=y
 CONFIG_BUG=y
 # CONFIG_PCSPKR_PLATFORM is not set
 # CONFIG_PCSPKR_PLATFORM is not set
-CONFIG_HAVE_PCSPKR_PLATFORM=y
 # CONFIG_BASE_FULL is not set
 # CONFIG_BASE_FULL is not set
 # CONFIG_FUTEX is not set
 # CONFIG_FUTEX is not set
 # CONFIG_EPOLL is not set
 # CONFIG_EPOLL is not set
@@ -145,6 +152,7 @@ CONFIG_HAVE_PCSPKR_PLATFORM=y
 # CONFIG_EVENTFD is not set
 # CONFIG_EVENTFD is not set
 # CONFIG_SHMEM is not set
 # CONFIG_SHMEM is not set
 # CONFIG_AIO is not set
 # CONFIG_AIO is not set
+CONFIG_PCI_QUIRKS=y
 # CONFIG_EMBEDDED is not set
 # CONFIG_EMBEDDED is not set
 CONFIG_HAVE_PERF_EVENTS=y
 CONFIG_HAVE_PERF_EVENTS=y
 
 
@@ -154,7 +162,6 @@ CONFIG_HAVE_PERF_EVENTS=y
 CONFIG_PERF_EVENTS=y
 CONFIG_PERF_EVENTS=y
 # CONFIG_DEBUG_PERF_USE_VMALLOC is not set
 # CONFIG_DEBUG_PERF_USE_VMALLOC is not set
 # CONFIG_VM_EVENT_COUNTERS is not set
 # CONFIG_VM_EVENT_COUNTERS is not set
-CONFIG_PCI_QUIRKS=y
 CONFIG_COMPAT_BRK=y
 CONFIG_COMPAT_BRK=y
 # CONFIG_SLAB is not set
 # CONFIG_SLAB is not set
 # CONFIG_SLUB is not set
 # CONFIG_SLUB is not set
@@ -192,6 +199,7 @@ CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
 CONFIG_HAVE_CONTEXT_TRACKING=y
 CONFIG_HAVE_CONTEXT_TRACKING=y
 CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
 CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
 CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
 CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_HAVE_ARCH_SOFT_DIRTY=y
 CONFIG_MODULES_USE_ELF_RELA=y
 CONFIG_MODULES_USE_ELF_RELA=y
 CONFIG_OLD_SIGSUSPEND3=y
 CONFIG_OLD_SIGSUSPEND3=y
 CONFIG_COMPAT_OLD_SIGACTION=y
 CONFIG_COMPAT_OLD_SIGACTION=y
@@ -220,14 +228,14 @@ CONFIG_ZONE_DMA=y
 # CONFIG_X86_INTEL_LPSS is not set
 # CONFIG_X86_INTEL_LPSS is not set
 CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
 CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
 # CONFIG_SCHED_OMIT_FRAME_POINTER is not set
 # CONFIG_SCHED_OMIT_FRAME_POINTER is not set
-CONFIG_PARAVIRT_GUEST=y
-# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+CONFIG_HYPERVISOR_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_DEBUG is not set
 # CONFIG_XEN is not set
 # CONFIG_XEN is not set
 # CONFIG_XEN_PRIVILEGED_GUEST is not set
 # CONFIG_XEN_PRIVILEGED_GUEST is not set
 CONFIG_KVM_GUEST=y
 CONFIG_KVM_GUEST=y
-CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
 CONFIG_PARAVIRT_CLOCK=y
 CONFIG_PARAVIRT_CLOCK=y
-# CONFIG_PARAVIRT_DEBUG is not set
 CONFIG_NO_BOOTMEM=y
 CONFIG_NO_BOOTMEM=y
 CONFIG_MEMTEST=y
 CONFIG_MEMTEST=y
 # CONFIG_MK8 is not set
 # CONFIG_MK8 is not set
@@ -267,6 +275,8 @@ CONFIG_X86_MCE_THRESHOLD=y
 CONFIG_X86_THERMAL_VECTOR=y
 CONFIG_X86_THERMAL_VECTOR=y
 # CONFIG_I8K is not set
 # CONFIG_I8K is not set
 # CONFIG_MICROCODE is not set
 # CONFIG_MICROCODE is not set
+# CONFIG_MICROCODE_INTEL_EARLY is not set
+# CONFIG_MICROCODE_AMD_EARLY is not set
 # CONFIG_X86_MSR is not set
 # CONFIG_X86_MSR is not set
 # CONFIG_X86_CPUID is not set
 # CONFIG_X86_CPUID is not set
 CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
 CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
@@ -304,6 +314,7 @@ CONFIG_MEMORY_FAILURE=y
 # CONFIG_CROSS_MEMORY_ATTACH is not set
 # CONFIG_CROSS_MEMORY_ATTACH is not set
 CONFIG_NEED_PER_CPU_KM=y
 CONFIG_NEED_PER_CPU_KM=y
 # CONFIG_CLEANCACHE is not set
 # CONFIG_CLEANCACHE is not set
+# CONFIG_ZBUD is not set
 # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
 # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
 CONFIG_X86_RESERVE_LOW=64
 CONFIG_X86_RESERVE_LOW=64
 # CONFIG_MTRR is not set
 # CONFIG_MTRR is not set
@@ -392,6 +403,10 @@ CONFIG_HT_IRQ=y
 # CONFIG_PCI_PASID is not set
 # CONFIG_PCI_PASID is not set
 # CONFIG_PCI_IOAPIC is not set
 # CONFIG_PCI_IOAPIC is not set
 CONFIG_PCI_LABEL=y
 CONFIG_PCI_LABEL=y
+
+#
+# PCI host controller drivers
+#
 CONFIG_ISA_DMA_API=y
 CONFIG_ISA_DMA_API=y
 CONFIG_AMD_NB=y
 CONFIG_AMD_NB=y
 # CONFIG_PCCARD is not set
 # CONFIG_PCCARD is not set
@@ -403,6 +418,7 @@ CONFIG_AMD_NB=y
 CONFIG_BINFMT_ELF=y
 CONFIG_BINFMT_ELF=y
 CONFIG_COMPAT_BINFMT_ELF=y
 CONFIG_COMPAT_BINFMT_ELF=y
 CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
 CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
+# CONFIG_BINFMT_SCRIPT is not set
 # CONFIG_HAVE_AOUT is not set
 # CONFIG_HAVE_AOUT is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_COREDUMP is not set
 # CONFIG_COREDUMP is not set
@@ -451,9 +467,9 @@ CONFIG_PNPACPI=y
 # Misc devices
 # Misc devices
 #
 #
 # CONFIG_SENSORS_LIS3LV02D is not set
 # CONFIG_SENSORS_LIS3LV02D is not set
+# CONFIG_DUMMY_IRQ is not set
 # CONFIG_IBM_ASM is not set
 # CONFIG_IBM_ASM is not set
 # CONFIG_PHANTOM is not set
 # CONFIG_PHANTOM is not set
-# CONFIG_INTEL_MID_PTI is not set
 # CONFIG_SGI_IOC4 is not set
 # CONFIG_SGI_IOC4 is not set
 # CONFIG_TIFM_CORE is not set
 # CONFIG_TIFM_CORE is not set
 # CONFIG_ATMEL_SSC is not set
 # CONFIG_ATMEL_SSC is not set
@@ -461,6 +477,7 @@ CONFIG_PNPACPI=y
 # CONFIG_HP_ILO is not set
 # CONFIG_HP_ILO is not set
 # CONFIG_VMWARE_BALLOON is not set
 # CONFIG_VMWARE_BALLOON is not set
 # CONFIG_PCH_PHUB is not set
 # CONFIG_PCH_PHUB is not set
+# CONFIG_SRAM is not set
 # CONFIG_C2PORT is not set
 # CONFIG_C2PORT is not set
 
 
 #
 #
@@ -476,6 +493,7 @@ CONFIG_PNPACPI=y
 #
 #
 # Altera FPGA firmware download module
 # Altera FPGA firmware download module
 #
 #
+# CONFIG_VMWARE_VMCI is not set
 CONFIG_HAVE_IDE=y
 CONFIG_HAVE_IDE=y
 
 
 #
 #
@@ -575,12 +593,11 @@ CONFIG_SERIAL_CORE=y
 # CONFIG_SERIAL_PCH_UART is not set
 # CONFIG_SERIAL_PCH_UART is not set
 # CONFIG_SERIAL_ARC is not set
 # CONFIG_SERIAL_ARC is not set
 # CONFIG_SERIAL_RP2 is not set
 # CONFIG_SERIAL_RP2 is not set
+# CONFIG_SERIAL_FSL_LPUART is not set
 # CONFIG_TTY_PRINTK is not set
 # CONFIG_TTY_PRINTK is not set
 # CONFIG_IPMI_HANDLER is not set
 # CONFIG_IPMI_HANDLER is not set
 # CONFIG_HW_RANDOM is not set
 # CONFIG_HW_RANDOM is not set
 # CONFIG_NVRAM is not set
 # CONFIG_NVRAM is not set
-# CONFIG_RTC is not set
-# CONFIG_GEN_RTC is not set
 # CONFIG_R3964 is not set
 # CONFIG_R3964 is not set
 # CONFIG_APPLICOM is not set
 # CONFIG_APPLICOM is not set
 # CONFIG_MWAVE is not set
 # CONFIG_MWAVE is not set
@@ -627,6 +644,11 @@ CONFIG_THERMAL_GOV_STEP_WISE=y
 # CONFIG_THERMAL_GOV_USER_SPACE is not set
 # CONFIG_THERMAL_GOV_USER_SPACE is not set
 # CONFIG_THERMAL_EMULATION is not set
 # CONFIG_THERMAL_EMULATION is not set
 # CONFIG_INTEL_POWERCLAMP is not set
 # CONFIG_INTEL_POWERCLAMP is not set
+# CONFIG_X86_PKG_TEMP_THERMAL is not set
+
+#
+# Texas Instruments thermal drivers
+#
 # CONFIG_WATCHDOG is not set
 # CONFIG_WATCHDOG is not set
 CONFIG_SSB_POSSIBLE=y
 CONFIG_SSB_POSSIBLE=y
 
 
@@ -645,17 +667,20 @@ CONFIG_BCMA_POSSIBLE=y
 # Multifunction device drivers
 # Multifunction device drivers
 #
 #
 # CONFIG_MFD_CORE is not set
 # CONFIG_MFD_CORE is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_MFD_RTSX_PCI is not set
-# CONFIG_MFD_TI_AM335X_TSCADC is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_ABX500_CORE is not set
 # CONFIG_MFD_CS5535 is not set
 # CONFIG_MFD_CS5535 is not set
-# CONFIG_LPC_SCH is not set
+# CONFIG_MFD_CROS_EC is not set
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_LPC_ICH is not set
 # CONFIG_LPC_ICH is not set
-# CONFIG_MFD_RDC321X is not set
+# CONFIG_LPC_SCH is not set
 # CONFIG_MFD_JANZ_CMODIO is not set
 # CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_KEMPLD is not set
+# CONFIG_MFD_RDC321X is not set
+# CONFIG_MFD_RTSX_PCI is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_MFD_SYSCON is not set
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TMIO is not set
 # CONFIG_MFD_VX855 is not set
 # CONFIG_MFD_VX855 is not set
 # CONFIG_REGULATOR is not set
 # CONFIG_REGULATOR is not set
 # CONFIG_MEDIA_SUPPORT is not set
 # CONFIG_MEDIA_SUPPORT is not set
@@ -685,9 +710,6 @@ CONFIG_DUMMY_CONSOLE=y
 # HID support
 # HID support
 #
 #
 # CONFIG_HID is not set
 # CONFIG_HID is not set
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB_ARCH_HAS_XHCI=y
 # CONFIG_USB_SUPPORT is not set
 # CONFIG_USB_SUPPORT is not set
 # CONFIG_UWB is not set
 # CONFIG_UWB is not set
 # CONFIG_MMC is not set
 # CONFIG_MMC is not set
@@ -714,10 +736,12 @@ CONFIG_EDAC_I5000=y
 CONFIG_EDAC_I5100=y
 CONFIG_EDAC_I5100=y
 # CONFIG_EDAC_I7300 is not set
 # CONFIG_EDAC_I7300 is not set
 CONFIG_EDAC_SBRIDGE=y
 CONFIG_EDAC_SBRIDGE=y
+CONFIG_RTC_LIB=y
 # CONFIG_RTC_CLASS is not set
 # CONFIG_RTC_CLASS is not set
 # CONFIG_DMADEVICES is not set
 # CONFIG_DMADEVICES is not set
 # CONFIG_AUXDISPLAY is not set
 # CONFIG_AUXDISPLAY is not set
 # CONFIG_UIO is not set
 # CONFIG_UIO is not set
+# CONFIG_VIRT_DRIVERS is not set
 
 
 #
 #
 # Virtio drivers
 # Virtio drivers
@@ -749,7 +773,6 @@ CONFIG_CLKBLD_I8253=y
 #
 #
 # Rpmsg drivers
 # Rpmsg drivers
 #
 #
-# CONFIG_VIRT_DRIVERS is not set
 # CONFIG_PM_DEVFREQ is not set
 # CONFIG_PM_DEVFREQ is not set
 # CONFIG_EXTCON is not set
 # CONFIG_EXTCON is not set
 CONFIG_MEMORY=y
 CONFIG_MEMORY=y
@@ -758,6 +781,8 @@ CONFIG_MEMORY=y
 # CONFIG_VME_BUS is not set
 # CONFIG_VME_BUS is not set
 # CONFIG_PWM is not set
 # CONFIG_PWM is not set
 # CONFIG_IPACK_BUS is not set
 # CONFIG_IPACK_BUS is not set
+# CONFIG_RESET_CONTROLLER is not set
+# CONFIG_FMC is not set
 
 
 #
 #
 # Firmware Drivers
 # Firmware Drivers
@@ -859,58 +884,83 @@ CONFIG_NLS_DEFAULT="iso8859-1"
 # Kernel hacking
 # Kernel hacking
 #
 #
 CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+
+#
+# printk and dmesg options
+#
 # CONFIG_PRINTK_TIME is not set
 # CONFIG_PRINTK_TIME is not set
 CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
 CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
+# CONFIG_BOOT_PRINTK_DELAY is not set
+
+#
+# Compile-time checks and compiler options
+#
+# CONFIG_DEBUG_INFO is not set
 CONFIG_ENABLE_WARN_DEPRECATED=y
 CONFIG_ENABLE_WARN_DEPRECATED=y
 CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_FRAME_WARN=2048
 CONFIG_FRAME_WARN=2048
-# CONFIG_MAGIC_SYSRQ is not set
 CONFIG_STRIP_ASM_SYMS=y
 CONFIG_STRIP_ASM_SYMS=y
 # CONFIG_READABLE_ASM is not set
 # CONFIG_READABLE_ASM is not set
 # CONFIG_UNUSED_SYMBOLS is not set
 # CONFIG_UNUSED_SYMBOLS is not set
 # CONFIG_DEBUG_FS is not set
 # CONFIG_DEBUG_FS is not set
 # CONFIG_HEADERS_CHECK is not set
 # CONFIG_HEADERS_CHECK is not set
 # CONFIG_DEBUG_SECTION_MISMATCH is not set
 # CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_MAGIC_SYSRQ is not set
 CONFIG_DEBUG_KERNEL=y
 CONFIG_DEBUG_KERNEL=y
+
+#
+# Memory Debugging
+#
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_DEBUG_OBJECTS is not set
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
 # CONFIG_DEBUG_SHIRQ is not set
 # CONFIG_DEBUG_SHIRQ is not set
+
+#
+# Debug Lockups and Hangs
+#
 CONFIG_LOCKUP_DETECTOR=y
 CONFIG_LOCKUP_DETECTOR=y
 CONFIG_HARDLOCKUP_DETECTOR=y
 CONFIG_HARDLOCKUP_DETECTOR=y
 CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y
 CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y
 CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=1
 CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=1
 CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
 CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
 CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1
 CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1
-CONFIG_PANIC_ON_OOPS=y
-CONFIG_PANIC_ON_OOPS_VALUE=1
 CONFIG_DETECT_HUNG_TASK=y
 CONFIG_DETECT_HUNG_TASK=y
 CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
 CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
 CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
 CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
 CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=1
 CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=1
-# CONFIG_DEBUG_OBJECTS is not set
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-# CONFIG_DEBUG_KMEMLEAK is not set
+CONFIG_PANIC_ON_OOPS=y
+CONFIG_PANIC_ON_OOPS_VALUE=1
+
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
 # CONFIG_DEBUG_SPINLOCK is not set
 # CONFIG_DEBUG_SPINLOCK is not set
 # CONFIG_DEBUG_MUTEXES 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_DEBUG_LOCK_ALLOC is not set
 # CONFIG_PROVE_LOCKING is not set
 # CONFIG_PROVE_LOCKING is not set
 # CONFIG_LOCK_STAT is not set
 # CONFIG_LOCK_STAT is not set
 # CONFIG_DEBUG_ATOMIC_SLEEP is not set
 # CONFIG_DEBUG_ATOMIC_SLEEP is not set
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
 # CONFIG_DEBUG_KOBJECT is not set
 # CONFIG_DEBUG_KOBJECT is not set
 # CONFIG_DEBUG_BUGVERBOSE is not set
 # CONFIG_DEBUG_BUGVERBOSE is not set
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_VIRTUAL is not set
 # CONFIG_DEBUG_WRITECOUNT is not set
 # CONFIG_DEBUG_WRITECOUNT is not set
-CONFIG_DEBUG_MEMORY_INIT=y
 # CONFIG_DEBUG_LIST is not set
 # CONFIG_DEBUG_LIST is not set
-# CONFIG_TEST_LIST_SORT is not set
 # CONFIG_DEBUG_SG is not set
 # CONFIG_DEBUG_SG is not set
 # CONFIG_DEBUG_NOTIFIERS is not set
 # CONFIG_DEBUG_NOTIFIERS is not set
 # CONFIG_DEBUG_CREDENTIALS is not set
 # CONFIG_DEBUG_CREDENTIALS is not set
-CONFIG_ARCH_WANT_FRAME_POINTERS=y
-# CONFIG_FRAME_POINTER is not set
-# CONFIG_BOOT_PRINTK_DELAY is not set
 
 
 #
 #
 # RCU Debugging
 # RCU Debugging
@@ -918,11 +968,10 @@ CONFIG_ARCH_WANT_FRAME_POINTERS=y
 # CONFIG_SPARSE_RCU_POINTER is not set
 # CONFIG_SPARSE_RCU_POINTER is not set
 # CONFIG_RCU_TORTURE_TEST is not set
 # CONFIG_RCU_TORTURE_TEST is not set
 # CONFIG_RCU_TRACE is not set
 # CONFIG_RCU_TRACE is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
 # CONFIG_NOTIFIER_ERROR_INJECTION is not set
 # CONFIG_NOTIFIER_ERROR_INJECTION is not set
 # CONFIG_FAULT_INJECTION is not set
 # CONFIG_FAULT_INJECTION is not set
-# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
 CONFIG_USER_STACKTRACE_SUPPORT=y
 CONFIG_USER_STACKTRACE_SUPPORT=y
 CONFIG_HAVE_FUNCTION_TRACER=y
 CONFIG_HAVE_FUNCTION_TRACER=y
 CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
 CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
@@ -936,20 +985,26 @@ CONFIG_HAVE_FENTRY=y
 CONFIG_HAVE_C_RECORDMCOUNT=y
 CONFIG_HAVE_C_RECORDMCOUNT=y
 CONFIG_TRACING_SUPPORT=y
 CONFIG_TRACING_SUPPORT=y
 # CONFIG_FTRACE is not set
 # CONFIG_FTRACE is not set
+
+#
+# Runtime Testing
+#
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_TEST_STRING_HELPERS is not set
+# CONFIG_TEST_KSTRTOX is not set
 # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
 # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
 # CONFIG_DMA_API_DEBUG is not set
 # CONFIG_DMA_API_DEBUG is not set
-# CONFIG_ATOMIC64_SELFTEST is not set
 # CONFIG_SAMPLES is not set
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
 # CONFIG_KGDB is not set
-CONFIG_HAVE_ARCH_KMEMCHECK=y
-# CONFIG_TEST_KSTRTOX is not set
 CONFIG_STRICT_DEVMEM=y
 CONFIG_STRICT_DEVMEM=y
 # CONFIG_X86_VERBOSE_BOOTUP is not set
 # CONFIG_X86_VERBOSE_BOOTUP is not set
 CONFIG_EARLY_PRINTK=y
 CONFIG_EARLY_PRINTK=y
 # CONFIG_EARLY_PRINTK_DBGP is not set
 # CONFIG_EARLY_PRINTK_DBGP is not set
-# CONFIG_DEBUG_STACKOVERFLOW is not set
 # CONFIG_X86_PTDUMP is not set
 # CONFIG_X86_PTDUMP is not set
+CONFIG_DOUBLEFAULT=y
 # CONFIG_DEBUG_TLBFLUSH is not set
 # CONFIG_DEBUG_TLBFLUSH is not set
 # CONFIG_IOMMU_STRESS is not set
 # CONFIG_IOMMU_STRESS is not set
 CONFIG_HAVE_MMIOTRACE_SUPPORT=y
 CONFIG_HAVE_MMIOTRACE_SUPPORT=y
@@ -964,8 +1019,8 @@ CONFIG_IO_DELAY_0X80=y
 CONFIG_DEFAULT_IO_DELAY_TYPE=0
 CONFIG_DEFAULT_IO_DELAY_TYPE=0
 # CONFIG_CPA_DEBUG is not set
 # CONFIG_CPA_DEBUG is not set
 CONFIG_OPTIMIZE_INLINING=y
 CONFIG_OPTIMIZE_INLINING=y
-# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
 # CONFIG_DEBUG_NMI_SELFTEST is not set
 # CONFIG_DEBUG_NMI_SELFTEST is not set
+# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set
 
 
 #
 #
 # Security options
 # Security options

+ 105 - 51
src/root/config/linux-3.9.9-hardened-kexec.config → src/root/config/linux-3.11.2-hardened-kexec.config

@@ -1,6 +1,6 @@
 #
 #
 # Automatically generated file; DO NOT EDIT.
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86 3.9.9-hardened Kernel Configuration
+# Linux/x86 3.11.2-hardened Kernel Configuration
 #
 #
 # CONFIG_64BIT is not set
 # CONFIG_64BIT is not set
 CONFIG_X86_32=y
 CONFIG_X86_32=y
@@ -20,7 +20,6 @@ CONFIG_ARCH_MAY_HAVE_PC_FDC=y
 CONFIG_RWSEM_XCHGADD_ALGORITHM=y
 CONFIG_RWSEM_XCHGADD_ALGORITHM=y
 CONFIG_GENERIC_CALIBRATE_DELAY=y
 CONFIG_GENERIC_CALIBRATE_DELAY=y
 CONFIG_ARCH_HAS_CPU_RELAX=y
 CONFIG_ARCH_HAS_CPU_RELAX=y
-CONFIG_ARCH_HAS_DEFAULT_IDLE=y
 CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
 CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
 CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
 CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
 CONFIG_HAVE_SETUP_PER_CPU_AREA=y
 CONFIG_HAVE_SETUP_PER_CPU_AREA=y
@@ -28,6 +27,8 @@ CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
 CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
 CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
 # CONFIG_ZONE_DMA32 is not set
 # CONFIG_ZONE_DMA32 is not set
 # CONFIG_AUDIT_ARCH is not set
 # CONFIG_AUDIT_ARCH is not set
 CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
 CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
@@ -45,6 +46,7 @@ CONFIG_BUILDTIME_EXTABLE_SORT=y
 CONFIG_BROKEN_ON_SMP=y
 CONFIG_BROKEN_ON_SMP=y
 CONFIG_INIT_ENV_ARG_LIMIT=32
 CONFIG_INIT_ENV_ARG_LIMIT=32
 CONFIG_CROSS_COMPILE=""
 CONFIG_CROSS_COMPILE=""
+# CONFIG_COMPILE_TEST is not set
 CONFIG_LOCALVERSION=""
 CONFIG_LOCALVERSION=""
 # CONFIG_LOCALVERSION_AUTO is not set
 # CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_HAVE_KERNEL_GZIP=y
 CONFIG_HAVE_KERNEL_GZIP=y
@@ -52,11 +54,13 @@ CONFIG_HAVE_KERNEL_BZIP2=y
 CONFIG_HAVE_KERNEL_LZMA=y
 CONFIG_HAVE_KERNEL_LZMA=y
 CONFIG_HAVE_KERNEL_XZ=y
 CONFIG_HAVE_KERNEL_XZ=y
 CONFIG_HAVE_KERNEL_LZO=y
 CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_HAVE_KERNEL_LZ4=y
 # CONFIG_KERNEL_GZIP is not set
 # CONFIG_KERNEL_GZIP is not set
 # CONFIG_KERNEL_BZIP2 is not set
 # CONFIG_KERNEL_BZIP2 is not set
 # CONFIG_KERNEL_LZMA is not set
 # CONFIG_KERNEL_LZMA is not set
 CONFIG_KERNEL_XZ=y
 CONFIG_KERNEL_XZ=y
 # CONFIG_KERNEL_LZO is not set
 # CONFIG_KERNEL_LZO is not set
+# CONFIG_KERNEL_LZ4 is not set
 CONFIG_DEFAULT_HOSTNAME="liberte"
 CONFIG_DEFAULT_HOSTNAME="liberte"
 # CONFIG_SYSVIPC is not set
 # CONFIG_SYSVIPC is not set
 # CONFIG_FHANDLE is not set
 # CONFIG_FHANDLE is not set
@@ -82,6 +86,9 @@ CONFIG_GENERIC_CMOS_UPDATE=y
 # Timers subsystem
 # Timers subsystem
 #
 #
 CONFIG_TICK_ONESHOT=y
 CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_NO_HZ_IDLE=y
 CONFIG_NO_HZ=y
 CONFIG_NO_HZ=y
 # CONFIG_HIGH_RES_TIMERS is not set
 # CONFIG_HIGH_RES_TIMERS is not set
 
 
@@ -119,21 +126,21 @@ CONFIG_INITRAMFS_ROOT_GID=0
 # CONFIG_RD_LZMA is not set
 # CONFIG_RD_LZMA is not set
 CONFIG_RD_XZ=y
 CONFIG_RD_XZ=y
 # CONFIG_RD_LZO is not set
 # CONFIG_RD_LZO is not set
+# CONFIG_RD_LZ4 is not set
 # CONFIG_INITRAMFS_COMPRESSION_NONE is not set
 # CONFIG_INITRAMFS_COMPRESSION_NONE is not set
 CONFIG_INITRAMFS_COMPRESSION_XZ=y
 CONFIG_INITRAMFS_COMPRESSION_XZ=y
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 CONFIG_ANON_INODES=y
 CONFIG_ANON_INODES=y
-CONFIG_EXPERT=y
 CONFIG_HAVE_UID16=y
 CONFIG_HAVE_UID16=y
-# CONFIG_UID16 is not set
 CONFIG_SYSCTL_EXCEPTION_TRACE=y
 CONFIG_SYSCTL_EXCEPTION_TRACE=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
+CONFIG_EXPERT=y
+# CONFIG_UID16 is not set
 CONFIG_KALLSYMS=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_ALL is not set
 # CONFIG_KALLSYMS_ALL is not set
-CONFIG_HOTPLUG=y
 CONFIG_PRINTK=y
 CONFIG_PRINTK=y
 CONFIG_BUG=y
 CONFIG_BUG=y
 # CONFIG_PCSPKR_PLATFORM is not set
 # CONFIG_PCSPKR_PLATFORM is not set
-CONFIG_HAVE_PCSPKR_PLATFORM=y
 # CONFIG_BASE_FULL is not set
 # CONFIG_BASE_FULL is not set
 # CONFIG_FUTEX is not set
 # CONFIG_FUTEX is not set
 # CONFIG_EPOLL is not set
 # CONFIG_EPOLL is not set
@@ -142,6 +149,7 @@ CONFIG_HAVE_PCSPKR_PLATFORM=y
 # CONFIG_EVENTFD is not set
 # CONFIG_EVENTFD is not set
 # CONFIG_SHMEM is not set
 # CONFIG_SHMEM is not set
 # CONFIG_AIO is not set
 # CONFIG_AIO is not set
+CONFIG_PCI_QUIRKS=y
 # CONFIG_EMBEDDED is not set
 # CONFIG_EMBEDDED is not set
 CONFIG_HAVE_PERF_EVENTS=y
 CONFIG_HAVE_PERF_EVENTS=y
 
 
@@ -151,7 +159,6 @@ CONFIG_HAVE_PERF_EVENTS=y
 CONFIG_PERF_EVENTS=y
 CONFIG_PERF_EVENTS=y
 # CONFIG_DEBUG_PERF_USE_VMALLOC is not set
 # CONFIG_DEBUG_PERF_USE_VMALLOC is not set
 # CONFIG_VM_EVENT_COUNTERS is not set
 # CONFIG_VM_EVENT_COUNTERS is not set
-CONFIG_PCI_QUIRKS=y
 CONFIG_COMPAT_BRK=y
 CONFIG_COMPAT_BRK=y
 # CONFIG_SLAB is not set
 # CONFIG_SLAB is not set
 # CONFIG_SLUB is not set
 # CONFIG_SLUB is not set
@@ -188,6 +195,7 @@ CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
 CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
 CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
 CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
 CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
 CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
 CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_HAVE_ARCH_SOFT_DIRTY=y
 CONFIG_MODULES_USE_ELF_REL=y
 CONFIG_MODULES_USE_ELF_REL=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_OLD_SIGSUSPEND3=y
 CONFIG_OLD_SIGSUSPEND3=y
@@ -214,19 +222,18 @@ CONFIG_ZONE_DMA=y
 # CONFIG_SMP is not set
 # CONFIG_SMP is not set
 # CONFIG_X86_MPPARSE is not set
 # CONFIG_X86_MPPARSE is not set
 # CONFIG_X86_EXTENDED_PLATFORM is not set
 # CONFIG_X86_EXTENDED_PLATFORM is not set
-# CONFIG_X86_GOLDFISH is not set
 # CONFIG_X86_INTEL_LPSS is not set
 # CONFIG_X86_INTEL_LPSS is not set
 CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
 CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
 # CONFIG_X86_32_IRIS is not set
 # CONFIG_X86_32_IRIS is not set
 # CONFIG_SCHED_OMIT_FRAME_POINTER is not set
 # CONFIG_SCHED_OMIT_FRAME_POINTER is not set
-CONFIG_PARAVIRT_GUEST=y
-# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+CONFIG_HYPERVISOR_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_DEBUG is not set
 # CONFIG_XEN_PRIVILEGED_GUEST is not set
 # CONFIG_XEN_PRIVILEGED_GUEST is not set
 CONFIG_KVM_GUEST=y
 CONFIG_KVM_GUEST=y
 # CONFIG_LGUEST_GUEST is not set
 # CONFIG_LGUEST_GUEST is not set
-CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
 CONFIG_PARAVIRT_CLOCK=y
 CONFIG_PARAVIRT_CLOCK=y
-# CONFIG_PARAVIRT_DEBUG is not set
 CONFIG_NO_BOOTMEM=y
 CONFIG_NO_BOOTMEM=y
 CONFIG_MEMTEST=y
 CONFIG_MEMTEST=y
 # CONFIG_M486 is not set
 # CONFIG_M486 is not set
@@ -292,6 +299,8 @@ CONFIG_X86_THERMAL_VECTOR=y
 # CONFIG_I8K is not set
 # CONFIG_I8K is not set
 # CONFIG_X86_REBOOTFIXUPS is not set
 # CONFIG_X86_REBOOTFIXUPS is not set
 # CONFIG_MICROCODE is not set
 # CONFIG_MICROCODE is not set
+# CONFIG_MICROCODE_INTEL_EARLY is not set
+# CONFIG_MICROCODE_AMD_EARLY is not set
 # CONFIG_X86_MSR is not set
 # CONFIG_X86_MSR is not set
 # CONFIG_X86_CPUID is not set
 # CONFIG_X86_CPUID is not set
 # CONFIG_NOHIGHMEM is not set
 # CONFIG_NOHIGHMEM is not set
@@ -333,6 +342,7 @@ CONFIG_MEMORY_FAILURE=y
 # CONFIG_CROSS_MEMORY_ATTACH is not set
 # CONFIG_CROSS_MEMORY_ATTACH is not set
 CONFIG_NEED_PER_CPU_KM=y
 CONFIG_NEED_PER_CPU_KM=y
 # CONFIG_CLEANCACHE is not set
 # CONFIG_CLEANCACHE is not set
+# CONFIG_ZBUD is not set
 CONFIG_HIGHPTE=y
 CONFIG_HIGHPTE=y
 # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
 # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
 CONFIG_X86_RESERVE_LOW=64
 CONFIG_X86_RESERVE_LOW=64
@@ -421,6 +431,10 @@ CONFIG_PCI_DOMAINS=y
 # CONFIG_PCI_PASID is not set
 # CONFIG_PCI_PASID is not set
 # CONFIG_PCI_IOAPIC is not set
 # CONFIG_PCI_IOAPIC is not set
 CONFIG_PCI_LABEL=y
 CONFIG_PCI_LABEL=y
+
+#
+# PCI host controller drivers
+#
 CONFIG_ISA_DMA_API=y
 CONFIG_ISA_DMA_API=y
 # CONFIG_ISA is not set
 # CONFIG_ISA is not set
 # CONFIG_SCx200 is not set
 # CONFIG_SCx200 is not set
@@ -437,6 +451,7 @@ CONFIG_AMD_NB=y
 #
 #
 CONFIG_BINFMT_ELF=y
 CONFIG_BINFMT_ELF=y
 CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
 CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
+# CONFIG_BINFMT_SCRIPT is not set
 CONFIG_HAVE_AOUT=y
 CONFIG_HAVE_AOUT=y
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_COREDUMP is not set
 # CONFIG_COREDUMP is not set
@@ -480,9 +495,9 @@ CONFIG_PNPACPI=y
 # Misc devices
 # Misc devices
 #
 #
 # CONFIG_SENSORS_LIS3LV02D is not set
 # CONFIG_SENSORS_LIS3LV02D is not set
+# CONFIG_DUMMY_IRQ is not set
 # CONFIG_IBM_ASM is not set
 # CONFIG_IBM_ASM is not set
 # CONFIG_PHANTOM is not set
 # CONFIG_PHANTOM is not set
-# CONFIG_INTEL_MID_PTI is not set
 # CONFIG_SGI_IOC4 is not set
 # CONFIG_SGI_IOC4 is not set
 # CONFIG_TIFM_CORE is not set
 # CONFIG_TIFM_CORE is not set
 # CONFIG_ATMEL_SSC is not set
 # CONFIG_ATMEL_SSC is not set
@@ -490,6 +505,7 @@ CONFIG_PNPACPI=y
 # CONFIG_HP_ILO is not set
 # CONFIG_HP_ILO is not set
 # CONFIG_VMWARE_BALLOON is not set
 # CONFIG_VMWARE_BALLOON is not set
 # CONFIG_PCH_PHUB is not set
 # CONFIG_PCH_PHUB is not set
+# CONFIG_SRAM is not set
 # CONFIG_C2PORT is not set
 # CONFIG_C2PORT is not set
 
 
 #
 #
@@ -505,6 +521,7 @@ CONFIG_PNPACPI=y
 #
 #
 # Altera FPGA firmware download module
 # Altera FPGA firmware download module
 #
 #
+# CONFIG_VMWARE_VMCI is not set
 CONFIG_HAVE_IDE=y
 CONFIG_HAVE_IDE=y
 
 
 #
 #
@@ -604,12 +621,11 @@ CONFIG_SERIAL_CORE=y
 # CONFIG_SERIAL_PCH_UART is not set
 # CONFIG_SERIAL_PCH_UART is not set
 # CONFIG_SERIAL_ARC is not set
 # CONFIG_SERIAL_ARC is not set
 # CONFIG_SERIAL_RP2 is not set
 # CONFIG_SERIAL_RP2 is not set
+# CONFIG_SERIAL_FSL_LPUART is not set
 # CONFIG_TTY_PRINTK is not set
 # CONFIG_TTY_PRINTK is not set
 # CONFIG_IPMI_HANDLER is not set
 # CONFIG_IPMI_HANDLER is not set
 # CONFIG_HW_RANDOM is not set
 # CONFIG_HW_RANDOM is not set
 # CONFIG_NVRAM is not set
 # CONFIG_NVRAM is not set
-# CONFIG_RTC is not set
-# CONFIG_GEN_RTC is not set
 # CONFIG_R3964 is not set
 # CONFIG_R3964 is not set
 # CONFIG_APPLICOM is not set
 # CONFIG_APPLICOM is not set
 # CONFIG_SONYPI is not set
 # CONFIG_SONYPI is not set
@@ -659,6 +675,11 @@ CONFIG_THERMAL_GOV_STEP_WISE=y
 # CONFIG_THERMAL_GOV_USER_SPACE is not set
 # CONFIG_THERMAL_GOV_USER_SPACE is not set
 # CONFIG_THERMAL_EMULATION is not set
 # CONFIG_THERMAL_EMULATION is not set
 # CONFIG_INTEL_POWERCLAMP is not set
 # CONFIG_INTEL_POWERCLAMP is not set
+# CONFIG_X86_PKG_TEMP_THERMAL is not set
+
+#
+# Texas Instruments thermal drivers
+#
 # CONFIG_WATCHDOG is not set
 # CONFIG_WATCHDOG is not set
 CONFIG_SSB_POSSIBLE=y
 CONFIG_SSB_POSSIBLE=y
 
 
@@ -677,17 +698,20 @@ CONFIG_BCMA_POSSIBLE=y
 # Multifunction device drivers
 # Multifunction device drivers
 #
 #
 # CONFIG_MFD_CORE is not set
 # CONFIG_MFD_CORE is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_MFD_RTSX_PCI is not set
-# CONFIG_MFD_TI_AM335X_TSCADC is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_ABX500_CORE is not set
 # CONFIG_MFD_CS5535 is not set
 # CONFIG_MFD_CS5535 is not set
-# CONFIG_LPC_SCH is not set
+# CONFIG_MFD_CROS_EC is not set
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_LPC_ICH is not set
 # CONFIG_LPC_ICH is not set
-# CONFIG_MFD_RDC321X is not set
+# CONFIG_LPC_SCH is not set
 # CONFIG_MFD_JANZ_CMODIO is not set
 # CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_KEMPLD is not set
+# CONFIG_MFD_RDC321X is not set
+# CONFIG_MFD_RTSX_PCI is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_MFD_SYSCON is not set
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TMIO is not set
 # CONFIG_MFD_VX855 is not set
 # CONFIG_MFD_VX855 is not set
 # CONFIG_REGULATOR is not set
 # CONFIG_REGULATOR is not set
 # CONFIG_MEDIA_SUPPORT is not set
 # CONFIG_MEDIA_SUPPORT is not set
@@ -717,9 +741,6 @@ CONFIG_DUMMY_CONSOLE=y
 # HID support
 # HID support
 #
 #
 # CONFIG_HID is not set
 # CONFIG_HID is not set
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB_ARCH_HAS_XHCI=y
 # CONFIG_USB_SUPPORT is not set
 # CONFIG_USB_SUPPORT is not set
 # CONFIG_UWB is not set
 # CONFIG_UWB is not set
 # CONFIG_MMC is not set
 # CONFIG_MMC is not set
@@ -748,10 +769,12 @@ CONFIG_EDAC_I82860=y
 CONFIG_EDAC_I5000=y
 CONFIG_EDAC_I5000=y
 CONFIG_EDAC_I5100=y
 CONFIG_EDAC_I5100=y
 # CONFIG_EDAC_I7300 is not set
 # CONFIG_EDAC_I7300 is not set
+CONFIG_RTC_LIB=y
 # CONFIG_RTC_CLASS is not set
 # CONFIG_RTC_CLASS is not set
 # CONFIG_DMADEVICES is not set
 # CONFIG_DMADEVICES is not set
 # CONFIG_AUXDISPLAY is not set
 # CONFIG_AUXDISPLAY is not set
 # CONFIG_UIO is not set
 # CONFIG_UIO is not set
+# CONFIG_VIRT_DRIVERS is not set
 
 
 #
 #
 # Virtio drivers
 # Virtio drivers
@@ -784,7 +807,6 @@ CONFIG_CLKBLD_I8253=y
 #
 #
 # Rpmsg drivers
 # Rpmsg drivers
 #
 #
-# CONFIG_VIRT_DRIVERS is not set
 # CONFIG_PM_DEVFREQ is not set
 # CONFIG_PM_DEVFREQ is not set
 # CONFIG_EXTCON is not set
 # CONFIG_EXTCON is not set
 CONFIG_MEMORY=y
 CONFIG_MEMORY=y
@@ -792,6 +814,8 @@ CONFIG_MEMORY=y
 # CONFIG_VME_BUS is not set
 # CONFIG_VME_BUS is not set
 # CONFIG_PWM is not set
 # CONFIG_PWM is not set
 # CONFIG_IPACK_BUS is not set
 # CONFIG_IPACK_BUS is not set
+# CONFIG_RESET_CONTROLLER is not set
+# CONFIG_FMC is not set
 
 
 #
 #
 # Firmware Drivers
 # Firmware Drivers
@@ -893,59 +917,84 @@ CONFIG_NLS_DEFAULT="iso8859-1"
 # Kernel hacking
 # Kernel hacking
 #
 #
 CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+
+#
+# printk and dmesg options
+#
 # CONFIG_PRINTK_TIME is not set
 # CONFIG_PRINTK_TIME is not set
 CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
 CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
+# CONFIG_BOOT_PRINTK_DELAY is not set
+
+#
+# Compile-time checks and compiler options
+#
+# CONFIG_DEBUG_INFO is not set
 CONFIG_ENABLE_WARN_DEPRECATED=y
 CONFIG_ENABLE_WARN_DEPRECATED=y
 CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_FRAME_WARN=2048
 CONFIG_FRAME_WARN=2048
-# CONFIG_MAGIC_SYSRQ is not set
 CONFIG_STRIP_ASM_SYMS=y
 CONFIG_STRIP_ASM_SYMS=y
 # CONFIG_READABLE_ASM is not set
 # CONFIG_READABLE_ASM is not set
 # CONFIG_UNUSED_SYMBOLS is not set
 # CONFIG_UNUSED_SYMBOLS is not set
 # CONFIG_DEBUG_FS is not set
 # CONFIG_DEBUG_FS is not set
 # CONFIG_HEADERS_CHECK is not set
 # CONFIG_HEADERS_CHECK is not set
 # CONFIG_DEBUG_SECTION_MISMATCH is not set
 # CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_MAGIC_SYSRQ is not set
 CONFIG_DEBUG_KERNEL=y
 CONFIG_DEBUG_KERNEL=y
+
+#
+# Memory Debugging
+#
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_DEBUG_OBJECTS is not set
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_HIGHMEM is not set
+CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
 # CONFIG_DEBUG_SHIRQ is not set
 # CONFIG_DEBUG_SHIRQ is not set
+
+#
+# Debug Lockups and Hangs
+#
 CONFIG_LOCKUP_DETECTOR=y
 CONFIG_LOCKUP_DETECTOR=y
 CONFIG_HARDLOCKUP_DETECTOR=y
 CONFIG_HARDLOCKUP_DETECTOR=y
 CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y
 CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y
 CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=1
 CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=1
 CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
 CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
 CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1
 CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1
-CONFIG_PANIC_ON_OOPS=y
-CONFIG_PANIC_ON_OOPS_VALUE=1
 CONFIG_DETECT_HUNG_TASK=y
 CONFIG_DETECT_HUNG_TASK=y
 CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
 CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
 CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
 CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
 CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=1
 CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=1
-# CONFIG_DEBUG_OBJECTS is not set
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-# CONFIG_DEBUG_KMEMLEAK is not set
+CONFIG_PANIC_ON_OOPS=y
+CONFIG_PANIC_ON_OOPS_VALUE=1
+
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
 # CONFIG_DEBUG_SPINLOCK is not set
 # CONFIG_DEBUG_SPINLOCK is not set
 # CONFIG_DEBUG_MUTEXES 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_DEBUG_LOCK_ALLOC is not set
 # CONFIG_PROVE_LOCKING is not set
 # CONFIG_PROVE_LOCKING is not set
 # CONFIG_LOCK_STAT is not set
 # CONFIG_LOCK_STAT is not set
 # CONFIG_DEBUG_ATOMIC_SLEEP is not set
 # CONFIG_DEBUG_ATOMIC_SLEEP is not set
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
 # CONFIG_DEBUG_KOBJECT is not set
 # CONFIG_DEBUG_KOBJECT is not set
-# CONFIG_DEBUG_HIGHMEM is not set
 # CONFIG_DEBUG_BUGVERBOSE is not set
 # CONFIG_DEBUG_BUGVERBOSE is not set
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_VIRTUAL is not set
 # CONFIG_DEBUG_WRITECOUNT is not set
 # CONFIG_DEBUG_WRITECOUNT is not set
-CONFIG_DEBUG_MEMORY_INIT=y
 # CONFIG_DEBUG_LIST is not set
 # CONFIG_DEBUG_LIST is not set
-# CONFIG_TEST_LIST_SORT is not set
 # CONFIG_DEBUG_SG is not set
 # CONFIG_DEBUG_SG is not set
 # CONFIG_DEBUG_NOTIFIERS is not set
 # CONFIG_DEBUG_NOTIFIERS is not set
 # CONFIG_DEBUG_CREDENTIALS is not set
 # CONFIG_DEBUG_CREDENTIALS is not set
-CONFIG_ARCH_WANT_FRAME_POINTERS=y
-# CONFIG_FRAME_POINTER is not set
-# CONFIG_BOOT_PRINTK_DELAY is not set
 
 
 #
 #
 # RCU Debugging
 # RCU Debugging
@@ -953,11 +1002,10 @@ CONFIG_ARCH_WANT_FRAME_POINTERS=y
 # CONFIG_SPARSE_RCU_POINTER is not set
 # CONFIG_SPARSE_RCU_POINTER is not set
 # CONFIG_RCU_TORTURE_TEST is not set
 # CONFIG_RCU_TORTURE_TEST is not set
 # CONFIG_RCU_TRACE is not set
 # CONFIG_RCU_TRACE is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
 # CONFIG_NOTIFIER_ERROR_INJECTION is not set
 # CONFIG_NOTIFIER_ERROR_INJECTION is not set
 # CONFIG_FAULT_INJECTION is not set
 # CONFIG_FAULT_INJECTION is not set
-# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
+CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y
 CONFIG_USER_STACKTRACE_SUPPORT=y
 CONFIG_USER_STACKTRACE_SUPPORT=y
 CONFIG_HAVE_FUNCTION_TRACER=y
 CONFIG_HAVE_FUNCTION_TRACER=y
 CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
 CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
@@ -970,21 +1018,27 @@ CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
 CONFIG_HAVE_C_RECORDMCOUNT=y
 CONFIG_HAVE_C_RECORDMCOUNT=y
 CONFIG_TRACING_SUPPORT=y
 CONFIG_TRACING_SUPPORT=y
 # CONFIG_FTRACE is not set
 # CONFIG_FTRACE is not set
+
+#
+# Runtime Testing
+#
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_TEST_STRING_HELPERS is not set
+# CONFIG_TEST_KSTRTOX is not set
 # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
 # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
 # CONFIG_DMA_API_DEBUG is not set
 # CONFIG_DMA_API_DEBUG is not set
-# CONFIG_ATOMIC64_SELFTEST is not set
 # CONFIG_SAMPLES is not set
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
 # CONFIG_KGDB is not set
-CONFIG_HAVE_ARCH_KMEMCHECK=y
-# CONFIG_TEST_KSTRTOX is not set
 CONFIG_STRICT_DEVMEM=y
 CONFIG_STRICT_DEVMEM=y
 # CONFIG_X86_VERBOSE_BOOTUP is not set
 # CONFIG_X86_VERBOSE_BOOTUP is not set
 CONFIG_EARLY_PRINTK=y
 CONFIG_EARLY_PRINTK=y
 # CONFIG_EARLY_PRINTK_DBGP is not set
 # CONFIG_EARLY_PRINTK_DBGP is not set
-# CONFIG_DEBUG_STACKOVERFLOW is not set
 # CONFIG_X86_PTDUMP is not set
 # CONFIG_X86_PTDUMP is not set
 CONFIG_DOUBLEFAULT=y
 CONFIG_DOUBLEFAULT=y
+# CONFIG_DEBUG_TLBFLUSH is not set
 # CONFIG_IOMMU_STRESS is not set
 # CONFIG_IOMMU_STRESS is not set
 CONFIG_HAVE_MMIOTRACE_SUPPORT=y
 CONFIG_HAVE_MMIOTRACE_SUPPORT=y
 CONFIG_IO_DELAY_TYPE_0X80=0
 CONFIG_IO_DELAY_TYPE_0X80=0
@@ -998,8 +1052,8 @@ CONFIG_IO_DELAY_0X80=y
 CONFIG_DEFAULT_IO_DELAY_TYPE=0
 CONFIG_DEFAULT_IO_DELAY_TYPE=0
 # CONFIG_CPA_DEBUG is not set
 # CONFIG_CPA_DEBUG is not set
 CONFIG_OPTIMIZE_INLINING=y
 CONFIG_OPTIMIZE_INLINING=y
-CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y
 # CONFIG_DEBUG_NMI_SELFTEST is not set
 # CONFIG_DEBUG_NMI_SELFTEST is not set
+# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set
 
 
 #
 #
 # Security options
 # Security options

File diff suppressed because it is too large
+ 208 - 98
src/root/config/linux-3.11.2-hardened.config


+ 116 - 80
src/root/patches/kernel/overlayfs.v17.patch → src/root/patches/kernel/overlayfs.v19.patch

@@ -1,19 +1,19 @@
 diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
 diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
-index 0706d32..4331290 100644
+index fe7afe2..853a1fe 100644
 --- a/Documentation/filesystems/Locking
 --- a/Documentation/filesystems/Locking
 +++ b/Documentation/filesystems/Locking
 +++ b/Documentation/filesystems/Locking
-@@ -66,6 +66,7 @@ prototypes:
- 	int (*atomic_open)(struct inode *, struct dentry *,
+@@ -65,6 +65,7 @@ prototypes:
  				struct file *, unsigned open_flag,
  				struct file *, unsigned open_flag,
  				umode_t create_mode, int *opened);
  				umode_t create_mode, int *opened);
+ 	int (*tmpfile) (struct inode *, struct dentry *, umode_t);
 +	int (*dentry_open)(struct dentry *, struct file *, const struct cred *);
 +	int (*dentry_open)(struct dentry *, struct file *, const struct cred *);
  
  
  locking rules:
  locking rules:
  	all may block
  	all may block
-@@ -93,6 +94,7 @@ removexattr:	yes
- fiemap:		no
+@@ -93,6 +94,7 @@ fiemap:		no
  update_time:	no
  update_time:	no
  atomic_open:	yes
  atomic_open:	yes
+ tmpfile:	no
 +dentry_open:	no
 +dentry_open:	no
  
  
  	Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on
  	Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on
@@ -224,11 +224,11 @@ index 0000000..00dbab0
 +the behavior of the overlay is undefined, though it will not result in
 +the behavior of the overlay is undefined, though it will not result in
 +a crash or deadlock.
 +a crash or deadlock.
 diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt
 diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt
-index bc4b06b..f64a4d1 100644
+index f93a882..f596be7 100644
 --- a/Documentation/filesystems/vfs.txt
 --- a/Documentation/filesystems/vfs.txt
 +++ b/Documentation/filesystems/vfs.txt
 +++ b/Documentation/filesystems/vfs.txt
-@@ -362,6 +362,7 @@ struct inode_operations {
- 	int (*atomic_open)(struct inode *, struct dentry *,
+@@ -364,6 +364,7 @@ struct inode_operations {
+ } ____cacheline_aligned;
  				struct file *, unsigned open_flag,
  				struct file *, unsigned open_flag,
  				umode_t create_mode, int *opened);
  				umode_t create_mode, int *opened);
 +	int (*dentry_open)(struct dentry *, struct file *, const struct cred *);
 +	int (*dentry_open)(struct dentry *, struct file *, const struct cred *);
@@ -249,10 +249,10 @@ index bc4b06b..f64a4d1 100644
    invalidatepage: If a page has PagePrivate set, then invalidatepage
    invalidatepage: If a page has PagePrivate set, then invalidatepage
          will be called when part or all of the page is to be removed
          will be called when part or all of the page is to be removed
 diff --git a/MAINTAINERS b/MAINTAINERS
 diff --git a/MAINTAINERS b/MAINTAINERS
-index 9561658..9ea89b8 100644
+index bf61e04..4cd82d9 100644
 --- a/MAINTAINERS
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -5872,6 +5872,13 @@ F:	drivers/scsi/osd/
+@@ -6122,6 +6122,13 @@ F:	drivers/scsi/osd/
  F:	include/scsi/osd_*
  F:	include/scsi/osd_*
  F:	fs/exofs/
  F:	fs/exofs/
  
  
@@ -267,7 +267,7 @@ index 9561658..9ea89b8 100644
  M:	Christian Lamparter <chunkeey@googlemail.com>
  M:	Christian Lamparter <chunkeey@googlemail.com>
  L:	linux-wireless@vger.kernel.org
  L:	linux-wireless@vger.kernel.org
 diff --git a/fs/Kconfig b/fs/Kconfig
 diff --git a/fs/Kconfig b/fs/Kconfig
-index 780725a..9e2ccd5 100644
+index c229f82..60291d5 100644
 --- a/fs/Kconfig
 --- a/fs/Kconfig
 +++ b/fs/Kconfig
 +++ b/fs/Kconfig
 @@ -67,6 +67,7 @@ source "fs/quota/Kconfig"
 @@ -67,6 +67,7 @@ source "fs/quota/Kconfig"
@@ -279,10 +279,10 @@ index 780725a..9e2ccd5 100644
  config GENERIC_ACL
  config GENERIC_ACL
  	bool
  	bool
 diff --git a/fs/Makefile b/fs/Makefile
 diff --git a/fs/Makefile b/fs/Makefile
-index 9d53192..479a720 100644
+index 4fe6df3..9506dd7 100644
 --- a/fs/Makefile
 --- a/fs/Makefile
 +++ b/fs/Makefile
 +++ b/fs/Makefile
-@@ -107,6 +107,7 @@ obj-$(CONFIG_QNX6FS_FS)		+= qnx6/
+@@ -105,6 +105,7 @@ obj-$(CONFIG_QNX6FS_FS)		+= qnx6/
  obj-$(CONFIG_AUTOFS4_FS)	+= autofs4/
  obj-$(CONFIG_AUTOFS4_FS)	+= autofs4/
  obj-$(CONFIG_ADFS_FS)		+= adfs/
  obj-$(CONFIG_ADFS_FS)		+= adfs/
  obj-$(CONFIG_FUSE_FS)		+= fuse/
  obj-$(CONFIG_FUSE_FS)		+= fuse/
@@ -291,10 +291,10 @@ index 9d53192..479a720 100644
  obj-$(CONFIG_SUN_OPENPROMFS)	+= openpromfs/
  obj-$(CONFIG_SUN_OPENPROMFS)	+= openpromfs/
  obj-$(CONFIG_OMFS_FS)		+= omfs/
  obj-$(CONFIG_OMFS_FS)		+= omfs/
 diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c
 diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c
-index e924cf4..8b0957e 100644
+index eb1c597..87dcf25 100644
 --- a/fs/ecryptfs/main.c
 --- a/fs/ecryptfs/main.c
 +++ b/fs/ecryptfs/main.c
 +++ b/fs/ecryptfs/main.c
-@@ -567,6 +567,13 @@ static struct dentry *ecryptfs_mount(struct file_system_type *fs_type, int flags
+@@ -566,6 +566,13 @@ static struct dentry *ecryptfs_mount(struct file_system_type *fs_type, int flags
  	s->s_maxbytes = path.dentry->d_sb->s_maxbytes;
  	s->s_maxbytes = path.dentry->d_sb->s_maxbytes;
  	s->s_blocksize = path.dentry->d_sb->s_blocksize;
  	s->s_blocksize = path.dentry->d_sb->s_blocksize;
  	s->s_magic = ECRYPTFS_SUPER_MAGIC;
  	s->s_magic = ECRYPTFS_SUPER_MAGIC;
@@ -309,7 +309,7 @@ index e924cf4..8b0957e 100644
  	inode = ecryptfs_get_inode(path.dentry->d_inode, s);
  	inode = ecryptfs_get_inode(path.dentry->d_inode, s);
  	rc = PTR_ERR(inode);
  	rc = PTR_ERR(inode);
 diff --git a/fs/internal.h b/fs/internal.h
 diff --git a/fs/internal.h b/fs/internal.h
-index 507141f..89481ac 100644
+index 7c5f01c..6092481 100644
 --- a/fs/internal.h
 --- a/fs/internal.h
 +++ b/fs/internal.h
 +++ b/fs/internal.h
 @@ -42,11 +42,6 @@ static inline int __sync_blockdev(struct block_device *bdev, int wait)
 @@ -42,11 +42,6 @@ static inline int __sync_blockdev(struct block_device *bdev, int wait)
@@ -324,8 +324,21 @@ index 507141f..89481ac 100644
   * namespace.c
   * namespace.c
   */
   */
  extern int copy_mount_options(const void __user *, unsigned long *);
  extern int copy_mount_options(const void __user *, unsigned long *);
+@@ -134,12 +129,6 @@ extern ssize_t __kernel_write(struct file *, const char *, size_t, loff_t *);
+ extern int rw_verify_area(int, struct file *, const loff_t *, size_t);
+ 
+ /*
+- * splice.c
+- */
+-extern long do_splice_direct(struct file *in, loff_t *ppos, struct file *out,
+-		loff_t *opos, size_t len, unsigned int flags);
+-
+-/*
+  * pipe.c
+  */
+ extern const struct file_operations pipefifo_fops;
 diff --git a/fs/namei.c b/fs/namei.c
 diff --git a/fs/namei.c b/fs/namei.c
-index 57ae9c8..e1cffbd 100644
+index 8b61d10..9fc067a 100644
 --- a/fs/namei.c
 --- a/fs/namei.c
 +++ b/fs/namei.c
 +++ b/fs/namei.c
 @@ -402,6 +402,7 @@ int __inode_permission(struct inode *inode, int mask)
 @@ -402,6 +402,7 @@ int __inode_permission(struct inode *inode, int mask)
@@ -336,7 +349,7 @@ index 57ae9c8..e1cffbd 100644
  
  
  /**
  /**
   * sb_permission - Check superblock-level permissions
   * sb_permission - Check superblock-level permissions
-@@ -2867,9 +2868,12 @@ finish_open_created:
+@@ -2848,9 +2849,12 @@ finish_open_created:
  	error = may_open(&nd->path, acc_mode, open_flag);
  	error = may_open(&nd->path, acc_mode, open_flag);
  	if (error)
  	if (error)
  		goto out;
  		goto out;
@@ -353,13 +366,22 @@ index 57ae9c8..e1cffbd 100644
  			goto stale_open;
  			goto stale_open;
  		goto out;
  		goto out;
 diff --git a/fs/namespace.c b/fs/namespace.c
 diff --git a/fs/namespace.c b/fs/namespace.c
-index 50ca17d..9791b4e 100644
+index 7b1ca9b..455e6ea 100644
 --- a/fs/namespace.c
 --- a/fs/namespace.c
 +++ b/fs/namespace.c
 +++ b/fs/namespace.c
-@@ -1399,6 +1399,24 @@ void drop_collected_mounts(struct vfsmount *mnt)
- 	release_mounts(&umount_list);
+@@ -1442,6 +1442,33 @@ void drop_collected_mounts(struct vfsmount *mnt)
+ 	namespace_unlock();
  }
  }
  
  
++/**
++ * clone_private_mount - create a private clone of a path
++ *
++ * This creates a new vfsmount, which will be the clone of @path.  The new will
++ * not be attached anywhere in the namespace and will be private (i.e. changes
++ * to the originating mount won't be propagated into this).
++ *
++ * Release with mntput().
++ */
 +struct vfsmount *clone_private_mount(struct path *path)
 +struct vfsmount *clone_private_mount(struct path *path)
 +{
 +{
 +	struct mount *old_mnt = real_mount(path->mnt);
 +	struct mount *old_mnt = real_mount(path->mnt);
@@ -371,8 +393,8 @@ index 50ca17d..9791b4e 100644
 +	down_read(&namespace_sem);
 +	down_read(&namespace_sem);
 +	new_mnt = clone_mnt(old_mnt, path->dentry, CL_PRIVATE);
 +	new_mnt = clone_mnt(old_mnt, path->dentry, CL_PRIVATE);
 +	up_read(&namespace_sem);
 +	up_read(&namespace_sem);
-+	if (!new_mnt)
-+		return ERR_PTR(-ENOMEM);
++	if (IS_ERR(new_mnt))
++		return ERR_CAST(new_mnt);
 +
 +
 +	return &new_mnt->mnt;
 +	return &new_mnt->mnt;
 +}
 +}
@@ -382,10 +404,10 @@ index 50ca17d..9791b4e 100644
  		   struct vfsmount *root)
  		   struct vfsmount *root)
  {
  {
 diff --git a/fs/open.c b/fs/open.c
 diff --git a/fs/open.c b/fs/open.c
-index 6835446..b9d9f9e 100644
+index d53e298..fbbfd19 100644
 --- a/fs/open.c
 --- a/fs/open.c
 +++ b/fs/open.c
 +++ b/fs/open.c
-@@ -828,8 +828,7 @@ struct file *dentry_open(const struct path *path, int flags,
+@@ -800,8 +800,7 @@ struct file *dentry_open(const struct path *path, int flags,
  	f = get_empty_filp();
  	f = get_empty_filp();
  	if (!IS_ERR(f)) {
  	if (!IS_ERR(f)) {
  		f->f_flags = flags;
  		f->f_flags = flags;
@@ -395,7 +417,7 @@ index 6835446..b9d9f9e 100644
  		if (!error) {
  		if (!error) {
  			/* from now on we need fput() to dispose of f */
  			/* from now on we need fput() to dispose of f */
  			error = open_check_o_direct(f);
  			error = open_check_o_direct(f);
-@@ -846,6 +845,26 @@ struct file *dentry_open(const struct path *path, int flags,
+@@ -818,6 +817,26 @@ struct file *dentry_open(const struct path *path, int flags,
  }
  }
  EXPORT_SYMBOL(dentry_open);
  EXPORT_SYMBOL(dentry_open);
  
  
@@ -453,10 +475,10 @@ index 0000000..8f91889
 +overlayfs-objs := super.o inode.o dir.o readdir.o copy_up.o
 +overlayfs-objs := super.o inode.o dir.o readdir.o copy_up.o
 diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c
 diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c
 new file mode 100644
 new file mode 100644
-index 0000000..eef85e0
+index 0000000..b171e1f
 --- /dev/null
 --- /dev/null
 +++ b/fs/overlayfs/copy_up.c
 +++ b/fs/overlayfs/copy_up.c
-@@ -0,0 +1,385 @@
+@@ -0,0 +1,388 @@
 +/*
 +/*
 + *
 + *
 + * Copyright (C) 2011 Novell Inc.
 + * Copyright (C) 2011 Novell Inc.
@@ -532,6 +554,8 @@ index 0000000..eef85e0
 +{
 +{
 +	struct file *old_file;
 +	struct file *old_file;
 +	struct file *new_file;
 +	struct file *new_file;
++	loff_t old_pos = 0;
++	loff_t new_pos = 0;
 +	int error = 0;
 +	int error = 0;
 +
 +
 +	if (len == 0)
 +	if (len == 0)
@@ -549,7 +573,6 @@ index 0000000..eef85e0
 +
 +
 +	/* FIXME: copy up sparse files efficiently */
 +	/* FIXME: copy up sparse files efficiently */
 +	while (len) {
 +	while (len) {
-+		loff_t offset = new_file->f_pos;
 +		size_t this_len = OVL_COPY_UP_CHUNK_SIZE;
 +		size_t this_len = OVL_COPY_UP_CHUNK_SIZE;
 +		long bytes;
 +		long bytes;
 +
 +
@@ -561,12 +584,14 @@ index 0000000..eef85e0
 +			break;
 +			break;
 +		}
 +		}
 +
 +
-+		bytes = do_splice_direct(old_file, &offset, new_file, this_len,
-+				 SPLICE_F_MOVE);
++		bytes = do_splice_direct(old_file, &old_pos,
++					 new_file, &new_pos,
++					 this_len, SPLICE_F_MOVE);
 +		if (bytes <= 0) {
 +		if (bytes <= 0) {
 +			error = bytes;
 +			error = bytes;
 +			break;
 +			break;
 +		}
 +		}
++		WARN_ON(old_pos != new_pos);
 +
 +
 +		len -= bytes;
 +		len -= bytes;
 +	}
 +	}
@@ -1909,10 +1934,10 @@ index 0000000..1cba38f
 +int ovl_copy_up_truncate(struct dentry *dentry, loff_t size);
 +int ovl_copy_up_truncate(struct dentry *dentry, loff_t size);
 diff --git a/fs/overlayfs/readdir.c b/fs/overlayfs/readdir.c
 diff --git a/fs/overlayfs/readdir.c b/fs/overlayfs/readdir.c
 new file mode 100644
 new file mode 100644
-index 0000000..4c18abf
+index 0000000..d1b4403
 --- /dev/null
 --- /dev/null
 +++ b/fs/overlayfs/readdir.c
 +++ b/fs/overlayfs/readdir.c
-@@ -0,0 +1,566 @@
+@@ -0,0 +1,567 @@
 +/*
 +/*
 + *
 + *
 + * Copyright (C) 2011 Novell Inc.
 + * Copyright (C) 2011 Novell Inc.
@@ -1943,6 +1968,8 @@ index 0000000..4c18abf
 +};
 +};
 +
 +
 +struct ovl_readdir_data {
 +struct ovl_readdir_data {
++	struct dir_context ctx;
++	bool is_merge;
 +	struct rb_root *root;
 +	struct rb_root *root;
 +	struct list_head *list;
 +	struct list_head *list;
 +	struct list_head *middle;
 +	struct list_head *middle;
@@ -2040,13 +2067,12 @@ index 0000000..4c18abf
 +	return 0;
 +	return 0;
 +}
 +}
 +
 +
-+static int ovl_fill_lower(void *buf, const char *name, int namelen,
-+			    loff_t offset, u64 ino, unsigned int d_type)
++static int ovl_fill_lower(struct ovl_readdir_data *rdd,
++			  const char *name, int namelen,
++			  loff_t offset, u64 ino, unsigned int d_type)
 +{
 +{
-+	struct ovl_readdir_data *rdd = buf;
 +	struct ovl_cache_entry *p;
 +	struct ovl_cache_entry *p;
 +
 +
-+	rdd->count++;
 +	p = ovl_cache_entry_find(rdd->root, name, namelen);
 +	p = ovl_cache_entry_find(rdd->root, name, namelen);
 +	if (p) {
 +	if (p) {
 +		list_move_tail(&p->l_node, rdd->middle);
 +		list_move_tail(&p->l_node, rdd->middle);
@@ -2072,17 +2098,20 @@ index 0000000..4c18abf
 +	INIT_LIST_HEAD(list);
 +	INIT_LIST_HEAD(list);
 +}
 +}
 +
 +
-+static int ovl_fill_upper(void *buf, const char *name, int namelen,
++static int ovl_fill_merge(void *buf, const char *name, int namelen,
 +			  loff_t offset, u64 ino, unsigned int d_type)
 +			  loff_t offset, u64 ino, unsigned int d_type)
 +{
 +{
 +	struct ovl_readdir_data *rdd = buf;
 +	struct ovl_readdir_data *rdd = buf;
 +
 +
 +	rdd->count++;
 +	rdd->count++;
-+	return ovl_cache_entry_add_rb(rdd, name, namelen, ino, d_type);
++	if (!rdd->is_merge)
++		return ovl_cache_entry_add_rb(rdd, name, namelen, ino, d_type);
++	else
++		return ovl_fill_lower(rdd, name, namelen, offset, ino, d_type);
 +}
 +}
 +
 +
 +static inline int ovl_dir_read(struct path *realpath,
 +static inline int ovl_dir_read(struct path *realpath,
-+			       struct ovl_readdir_data *rdd, filldir_t filler)
++			       struct ovl_readdir_data *rdd)
 +{
 +{
 +	struct file *realfile;
 +	struct file *realfile;
 +	int err;
 +	int err;
@@ -2091,10 +2120,11 @@ index 0000000..4c18abf
 +	if (IS_ERR(realfile))
 +	if (IS_ERR(realfile))
 +		return PTR_ERR(realfile);
 +		return PTR_ERR(realfile);
 +
 +
++	rdd->ctx.pos = 0;
 +	do {
 +	do {
 +		rdd->count = 0;
 +		rdd->count = 0;
 +		rdd->err = 0;
 +		rdd->err = 0;
-+		err = vfs_readdir(realfile, filler, rdd);
++		err = iterate_dir(realfile, &rdd->ctx);
 +		if (err >= 0)
 +		if (err >= 0)
 +			err = rdd->err;
 +			err = rdd->err;
 +	} while (!err && rdd->count);
 +	} while (!err && rdd->count);
@@ -2164,20 +2194,25 @@ index 0000000..4c18abf
 +
 +
 +static inline int ovl_dir_read_merged(struct path *upperpath,
 +static inline int ovl_dir_read_merged(struct path *upperpath,
 +				      struct path *lowerpath,
 +				      struct path *lowerpath,
-+				      struct ovl_readdir_data *rdd)
++				      struct list_head *list)
 +{
 +{
 +	int err;
 +	int err;
 +	struct rb_root root = RB_ROOT;
 +	struct rb_root root = RB_ROOT;
 +	struct list_head middle;
 +	struct list_head middle;
++	struct ovl_readdir_data rdd = {
++		.ctx.actor = ovl_fill_merge,
++		.list = list,
++		.root = &root,
++		.is_merge = false,
++	};
 +
 +
-+	rdd->root = &root;
 +	if (upperpath->dentry) {
 +	if (upperpath->dentry) {
-+		rdd->dir = upperpath->dentry;
-+		err = ovl_dir_read(upperpath, rdd, ovl_fill_upper);
++		rdd.dir = upperpath->dentry;
++		err = ovl_dir_read(upperpath, &rdd);
 +		if (err)
 +		if (err)
 +			goto out;
 +			goto out;
 +
 +
-+		err = ovl_dir_mark_whiteouts(rdd);
++		err = ovl_dir_mark_whiteouts(&rdd);
 +		if (err)
 +		if (err)
 +			goto out;
 +			goto out;
 +	}
 +	}
@@ -2185,13 +2220,12 @@ index 0000000..4c18abf
 +	 * Insert lowerpath entries before upperpath ones, this allows
 +	 * Insert lowerpath entries before upperpath ones, this allows
 +	 * offsets to be reasonably constant
 +	 * offsets to be reasonably constant
 +	 */
 +	 */
-+	list_add(&middle, rdd->list);
-+	rdd->middle = &middle;
-+	err = ovl_dir_read(lowerpath, rdd, ovl_fill_lower);
++	list_add(&middle, rdd.list);
++	rdd.middle = &middle;
++	rdd.is_merge = true;
++	err = ovl_dir_read(lowerpath, &rdd);
 +	list_del(&middle);
 +	list_del(&middle);
 +out:
 +out:
-+	rdd->root = NULL;
-+
 +	return err;
 +	return err;
 +}
 +}
 +
 +
@@ -2209,17 +2243,16 @@ index 0000000..4c18abf
 +	list_move_tail(&od->cursor, l);
 +	list_move_tail(&od->cursor, l);
 +}
 +}
 +
 +
-+static int ovl_readdir(struct file *file, void *buf, filldir_t filler)
++static int ovl_iterate(struct file *file, struct dir_context *ctx)
 +{
 +{
 +	struct ovl_dir_file *od = file->private_data;
 +	struct ovl_dir_file *od = file->private_data;
 +	int res;
 +	int res;
 +
 +
-+	if (!file->f_pos)
++	if (!ctx->pos)
 +		ovl_dir_reset(file);
 +		ovl_dir_reset(file);
 +
 +
 +	if (od->is_real) {
 +	if (od->is_real) {
-+		res = vfs_readdir(od->realfile, filler, buf);
-+		file->f_pos = od->realfile->f_pos;
++		res = iterate_dir(od->realfile, ctx);
 +
 +
 +		return res;
 +		return res;
 +	}
 +	}
@@ -2227,37 +2260,31 @@ index 0000000..4c18abf
 +	if (!od->is_cached) {
 +	if (!od->is_cached) {
 +		struct path lowerpath;
 +		struct path lowerpath;
 +		struct path upperpath;
 +		struct path upperpath;
-+		struct ovl_readdir_data rdd = { .list = &od->cache };
 +
 +
 +		ovl_path_lower(file->f_path.dentry, &lowerpath);
 +		ovl_path_lower(file->f_path.dentry, &lowerpath);
 +		ovl_path_upper(file->f_path.dentry, &upperpath);
 +		ovl_path_upper(file->f_path.dentry, &upperpath);
 +
 +
-+		res = ovl_dir_read_merged(&upperpath, &lowerpath, &rdd);
++		res = ovl_dir_read_merged(&upperpath, &lowerpath, &od->cache);
 +		if (res) {
 +		if (res) {
-+			ovl_cache_free(rdd.list);
++			ovl_cache_free(&od->cache);
 +			return res;
 +			return res;
 +		}
 +		}
 +
 +
 +		od->cache_version = ovl_dentry_version_get(file->f_path.dentry);
 +		od->cache_version = ovl_dentry_version_get(file->f_path.dentry);
 +		od->is_cached = true;
 +		od->is_cached = true;
 +
 +
-+		ovl_seek_cursor(od, file->f_pos);
++		ovl_seek_cursor(od, ctx->pos);
 +	}
 +	}
 +
 +
 +	while (od->cursor.next != &od->cache) {
 +	while (od->cursor.next != &od->cache) {
-+		int over;
-+		loff_t off;
 +		struct ovl_cache_entry *p;
 +		struct ovl_cache_entry *p;
 +
 +
 +		p = list_entry(od->cursor.next, struct ovl_cache_entry, l_node);
 +		p = list_entry(od->cursor.next, struct ovl_cache_entry, l_node);
-+		off = file->f_pos;
 +		if (!p->is_whiteout) {
 +		if (!p->is_whiteout) {
-+			over = filler(buf, p->name, p->len, off, p->ino,
-+				      p->type);
-+			if (over)
++			if (!dir_emit(ctx, p->name, p->len, p->ino, p->type))
 +				break;
 +				break;
 +		}
 +		}
-+		file->f_pos++;
++		ctx->pos++;
 +		list_move(&od->cursor, &p->l_node);
 +		list_move(&od->cursor, &p->l_node);
 +	}
 +	}
 +
 +
@@ -2365,7 +2392,7 @@ index 0000000..4c18abf
 +const struct file_operations ovl_dir_operations = {
 +const struct file_operations ovl_dir_operations = {
 +	.read		= generic_read_dir,
 +	.read		= generic_read_dir,
 +	.open		= ovl_dir_open,
 +	.open		= ovl_dir_open,
-+	.readdir	= ovl_readdir,
++	.iterate	= ovl_iterate,
 +	.llseek		= ovl_dir_llseek,
 +	.llseek		= ovl_dir_llseek,
 +	.fsync		= ovl_dir_fsync,
 +	.fsync		= ovl_dir_fsync,
 +	.release	= ovl_dir_release,
 +	.release	= ovl_dir_release,
@@ -2377,12 +2404,11 @@ index 0000000..4c18abf
 +	struct path lowerpath;
 +	struct path lowerpath;
 +	struct path upperpath;
 +	struct path upperpath;
 +	struct ovl_cache_entry *p;
 +	struct ovl_cache_entry *p;
-+	struct ovl_readdir_data rdd = { .list = list };
 +
 +
 +	ovl_path_upper(dentry, &upperpath);
 +	ovl_path_upper(dentry, &upperpath);
 +	ovl_path_lower(dentry, &lowerpath);
 +	ovl_path_lower(dentry, &lowerpath);
 +
 +
-+	err = ovl_dir_read_merged(&upperpath, &lowerpath, &rdd);
++	err = ovl_dir_read_merged(&upperpath, &lowerpath, list);
 +	if (err)
 +	if (err)
 +		return err;
 +		return err;
 +
 +
@@ -3171,10 +3197,10 @@ index 0000000..9473e79
 +module_init(ovl_init);
 +module_init(ovl_init);
 +module_exit(ovl_exit);
 +module_exit(ovl_exit);
 diff --git a/fs/splice.c b/fs/splice.c
 diff --git a/fs/splice.c b/fs/splice.c
-index 718bd00..0e8f44a 100644
+index 3b7ee65..3459483 100644
 --- a/fs/splice.c
 --- a/fs/splice.c
 +++ b/fs/splice.c
 +++ b/fs/splice.c
-@@ -1308,6 +1308,7 @@ long do_splice_direct(struct file *in, loff_t *ppos, struct file *out,
+@@ -1309,6 +1309,7 @@ long do_splice_direct(struct file *in, loff_t *ppos, struct file *out,
  
  
  	return ret;
  	return ret;
  }
  }
@@ -3183,10 +3209,10 @@ index 718bd00..0e8f44a 100644
  static int splice_pipe_to_pipe(struct pipe_inode_info *ipipe,
  static int splice_pipe_to_pipe(struct pipe_inode_info *ipipe,
  			       struct pipe_inode_info *opipe,
  			       struct pipe_inode_info *opipe,
 diff --git a/include/linux/fs.h b/include/linux/fs.h
 diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 2c28271..3353de6 100644
+index 9818747..1bb28e6 100644
 --- a/include/linux/fs.h
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -244,6 +244,12 @@ struct iattr {
+@@ -245,6 +245,12 @@ struct iattr {
   */
   */
  #include <linux/quota.h>
  #include <linux/quota.h>
  
  
@@ -3199,7 +3225,7 @@ index 2c28271..3353de6 100644
  /** 
  /** 
   * enum positive_aop_returns - aop return codes with specific semantics
   * enum positive_aop_returns - aop return codes with specific semantics
   *
   *
-@@ -1320,6 +1326,11 @@ struct super_block {
+@@ -1328,6 +1334,11 @@ struct super_block {
  
  
  	/* Being remounted read-only */
  	/* Being remounted read-only */
  	int s_readonly_remount;
  	int s_readonly_remount;
@@ -3211,15 +3237,15 @@ index 2c28271..3353de6 100644
  };
  };
  
  
  /* superblock cache pruning functions */
  /* superblock cache pruning functions */
-@@ -1573,6 +1584,7 @@ struct inode_operations {
- 	int (*atomic_open)(struct inode *, struct dentry *,
+@@ -1587,6 +1598,7 @@ struct inode_operations {
  			   struct file *, unsigned open_flag,
  			   struct file *, unsigned open_flag,
  			   umode_t create_mode, int *opened);
  			   umode_t create_mode, int *opened);
+ 	int (*tmpfile) (struct inode *, struct dentry *, umode_t);
 +	int (*dentry_open)(struct dentry *, struct file *, const struct cred *);
 +	int (*dentry_open)(struct dentry *, struct file *, const struct cred *);
  } ____cacheline_aligned;
  } ____cacheline_aligned;
  
  
  ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector,
  ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector,
-@@ -2006,6 +2018,7 @@ extern struct file *file_open_name(struct filename *, int, umode_t);
+@@ -2020,6 +2032,7 @@ extern struct file *file_open_name(struct filename *, int, umode_t);
  extern struct file *filp_open(const char *, int, umode_t);
  extern struct file *filp_open(const char *, int, umode_t);
  extern struct file *file_open_root(struct dentry *, struct vfsmount *,
  extern struct file *file_open_root(struct dentry *, struct vfsmount *,
  				   const char *, int);
  				   const char *, int);
@@ -3227,7 +3253,7 @@ index 2c28271..3353de6 100644
  extern struct file * dentry_open(const struct path *, int, const struct cred *);
  extern struct file * dentry_open(const struct path *, int, const struct cred *);
  extern int filp_close(struct file *, fl_owner_t id);
  extern int filp_close(struct file *, fl_owner_t id);
  
  
-@@ -2211,6 +2224,7 @@ extern sector_t bmap(struct inode *, sector_t);
+@@ -2220,6 +2233,7 @@ extern sector_t bmap(struct inode *, sector_t);
  #endif
  #endif
  extern int notify_change(struct dentry *, struct iattr *);
  extern int notify_change(struct dentry *, struct iattr *);
  extern int inode_permission(struct inode *, int);
  extern int inode_permission(struct inode *, int);
@@ -3235,11 +3261,21 @@ index 2c28271..3353de6 100644
  extern int generic_permission(struct inode *, int);
  extern int generic_permission(struct inode *, int);
  
  
  static inline bool execute_ok(struct inode *inode)
  static inline bool execute_ok(struct inode *inode)
+@@ -2425,6 +2439,9 @@ extern ssize_t generic_file_splice_write(struct pipe_inode_info *,
+ 		struct file *, loff_t *, size_t, unsigned int);
+ extern ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe,
+ 		struct file *out, loff_t *, size_t len, unsigned int flags);
++extern long do_splice_direct(struct file *in, loff_t *ppos, struct file *out,
++		loff_t *opos, size_t len, unsigned int flags);
++
+ 
+ extern void
+ file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping);
 diff --git a/include/linux/mount.h b/include/linux/mount.h
 diff --git a/include/linux/mount.h b/include/linux/mount.h
-index d7029f4..344a262 100644
+index 73005f9..435f281 100644
 --- a/include/linux/mount.h
 --- a/include/linux/mount.h
 +++ b/include/linux/mount.h
 +++ b/include/linux/mount.h
-@@ -66,6 +66,9 @@ extern void mnt_pin(struct vfsmount *mnt);
+@@ -68,6 +68,9 @@ extern void mnt_pin(struct vfsmount *mnt);
  extern void mnt_unpin(struct vfsmount *mnt);
  extern void mnt_unpin(struct vfsmount *mnt);
  extern int __mnt_is_readonly(struct vfsmount *mnt);
  extern int __mnt_is_readonly(struct vfsmount *mnt);
  
  

+ 0 - 78
src/root/patches/kernel/x509-long-form.patch

@@ -1,78 +0,0 @@
---- a/crypto/asymmetric_keys/x509_cert_parser.c
-+++ b/crypto/asymmetric_keys/x509_cert_parser.c
-@@ -373,6 +373,9 @@ int rsa_extract_mpi(void *context, size_t hdrlen,
- 	return 0;
- }
- 
-+/* The keyIdentifier in AuthorityKeyIdentifier SEQUENCE is tag(CONT,PRIM,0) */
-+#define SEQ_TAG_KEYID (ASN1_CONT << 6)
-+
- /*
-  * Process certificate extensions that are used to qualify the certificate.
-  */
-@@ -407,21 +410,57 @@ int x509_process_extension(void *context, size_t hdrlen,
- 	}
- 
- 	if (ctx->last_oid == OID_authorityKeyIdentifier) {
-+		size_t key_len;
-+
- 		/* Get hold of the CA key fingerprint */
- 		if (vlen < 5)
- 			return -EBADMSG;
--		if (v[0] != (ASN1_SEQ | (ASN1_CONS << 5)) ||
--		    v[1] != vlen - 2 ||
--		    v[2] != (ASN1_CONT << 6) ||
--		    v[3] != vlen - 4)
-+
-+		/* Authority Key Identifier must be a Constructed SEQUENCE */
-+		if (v[0] != (ASN1_SEQ | (ASN1_CONS << 5)))
- 			return -EBADMSG;
--		v += 4;
--		vlen -= 4;
- 
--		f = kmalloc(vlen * 2 + 1, GFP_KERNEL);
-+		/* Authority Key Identifier is not indefinite length */
-+		if (unlikely(vlen == ASN1_INDEFINITE_LENGTH))
-+			return -EBADMSG;
-+
-+		if (vlen < ASN1_INDEFINITE_LENGTH) {
-+			/* Short Form length */
-+			if (v[1] != vlen - 2 ||
-+			    v[2] != SEQ_TAG_KEYID ||
-+			    v[3] > vlen - 4)
-+				return -EBADMSG;
-+
-+			key_len = v[3];
-+			v += 4;
-+		} else {
-+			/* Long Form length */
-+			size_t seq_len = 0;
-+			size_t sub = v[1] - ASN1_INDEFINITE_LENGTH;
-+
-+			if (sub > 2)
-+				return -EBADMSG;
-+
-+			/* calculate the length from subsequent octets */
-+			v += 2;
-+			for (i = 0; i < sub; i++) {
-+				seq_len <<= 8;
-+				seq_len |= v[i];
-+			}
-+
-+			if (seq_len != vlen - 2 - sub ||
-+			    v[sub] != SEQ_TAG_KEYID ||
-+			    v[sub + 1] > vlen - 4 - sub)
-+				return -EBADMSG;
-+
-+			key_len = v[sub + 1];
-+			v += (sub + 2);
-+		}
-+
-+		f = kmalloc(key_len * 2 + 1, GFP_KERNEL);
- 		if (!f)
- 			return -ENOMEM;
--		for (i = 0; i < vlen; i++)
-+		for (i = 0; i < key_len; i++)
- 			sprintf(f + i * 2, "%02x", v[i]);
- 		pr_debug("authority   %s\n", f);
- 		ctx->cert->authority = f;

+ 2 - 6
src/root/setup

@@ -111,13 +111,9 @@ if [ "$1" = fresh  -o  ! -e /usr/src/linux-${kversion}/incremental ]; then
     chown -hR bin:bin /usr/src/linux-{main,kexec{,-64}}
     chown -hR bin:bin /usr/src/linux-{main,kexec{,-64}}
 
 
 
 
-    # https://git.kernel.org/cgit/linux/kernel/git/mszeredi/vfs.git/diff/?id=overlayfs.v17&id2=f6161aa153581da4a3867a2d1a7caf4be19b6ec9
-    # https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=04b00bdb41d0fd8d9cf3b146e334369cc2b0acdc
-    # (#480548)
+    # https://git.kernel.org/cgit/linux/kernel/git/mszeredi/vfs.git/diff/?id=overlayfs.v19&id2=3b2f64d00c46e1e4e9bd0bb9bb12619adac27a4b
     sinfo "Applying kernel patches"
     sinfo "Applying kernel patches"
-    spatch ${HOME}/patches/kernel/overlayfs.v17.patch  -d /usr/src/linux-${kversion} -p1
-    spatch ${HOME}/patches/kernel/x509-long-form.patch -d /usr/src/linux-${kversion} -p1
-    sed -i 's/reset_page_mapcount/page_mapcount_reset/' /usr/src/linux-${kversion}/mm/slob.c
+    spatch ${HOME}/patches/kernel/overlayfs.v19.patch  -d /usr/src/linux-${kversion} -p1
 
 
 
 
     # Filter locales before remerging libc
     # Filter locales before remerging libc

Some files were not shown because too many files changed in this diff