Merge branch 'x86-kbuild-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 10 Jun 2009 22:30:41 +0000 (15:30 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 10 Jun 2009 22:30:41 +0000 (15:30 -0700)
* 'x86-kbuild-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (46 commits)
  x86, boot: add new generated files to the appropriate .gitignore files
  x86, boot: correct the calculation of ZO_INIT_SIZE
  x86-64: align __PHYSICAL_START, remove __KERNEL_ALIGN
  x86, boot: correct sanity checks in boot/compressed/misc.c
  x86: add extension fields for bootloader type and version
  x86, defconfig: update kernel position parameters
  x86, defconfig: update to current, no material changes
  x86: make CONFIG_RELOCATABLE the default
  x86: default CONFIG_PHYSICAL_START and CONFIG_PHYSICAL_ALIGN to 16 MB
  x86: document new bzImage fields
  x86, boot: make kernel_alignment adjustable; new bzImage fields
  x86, boot: remove dead code from boot/compressed/head_*.S
  x86, boot: use LOAD_PHYSICAL_ADDR on 64 bits
  x86, boot: make symbols from the main vmlinux available
  x86, boot: determine compressed code offset at compile time
  x86, boot: use appropriate rep string for move and clear
  x86, boot: zero EFLAGS on 32 bits
  x86, boot: set up the decompression stack as early as possible
  x86, boot: straighten out ranges to copy/zero in compressed/head*.S
  x86, boot: stylistic cleanups for boot/compressed/head_64.S
  ...

Fixed trivial conflict in arch/x86/configs/x86_64_defconfig manually

1  2 
arch/x86/Kconfig
arch/x86/Makefile
arch/x86/configs/x86_64_defconfig
arch/x86/include/asm/processor.h
arch/x86/kernel/setup.c
kernel/sysctl.c
scripts/Makefile.lib

diff --combined arch/x86/Kconfig
index b1d3f60525c010f34da659285eabed3157a39d2f,3e0f80a764a78b7a50a27d387bae023728805b57..aafae3b140de40269abd0d9e02791853dc5cd1e6
@@@ -47,6 -47,11 +47,11 @@@ config X8
        select HAVE_KERNEL_BZIP2
        select HAVE_KERNEL_LZMA
  
+ config OUTPUT_FORMAT
+       string
+       default "elf32-i386" if X86_32
+       default "elf64-x86-64" if X86_64
  config ARCH_DEFCONFIG
        string
        default "arch/x86/configs/i386_defconfig" if X86_32
@@@ -274,9 -279,14 +279,9 @@@ config SPARSE_IR
  
          If you don't know what to do here, say N.
  
 -config NUMA_MIGRATE_IRQ_DESC
 -      bool "Move irq desc when changing irq smp_affinity"
 +config NUMA_IRQ_DESC
 +      def_bool y
        depends on SPARSE_IRQ && NUMA
 -      default n
 -      ---help---
 -        This enables moving irq_desc to cpu/node that irq will use handled.
 -
 -        If you don't know what to do here, say N.
  
  config X86_MPPARSE
        bool "Enable MPS table" if ACPI
@@@ -348,8 -358,7 +353,8 @@@ config X86_U
        bool "SGI Ultraviolet"
        depends on X86_64
        depends on X86_EXTENDED_PLATFORM
 -      select X86_X2APIC
 +      depends on NUMA
 +      depends on X86_X2APIC
        ---help---
          This option is needed in order to support SGI Ultraviolet systems.
          If you don't have one of these, you should say N here.
@@@ -492,19 -501,6 +497,19 @@@ config PARAVIR
          over full virtualization.  However, when run without a hypervisor
          the kernel is theoretically slower and slightly larger.
  
 +config PARAVIRT_SPINLOCKS
 +      bool "Paravirtualization layer for spinlocks"
 +      depends on PARAVIRT && SMP && EXPERIMENTAL
 +      ---help---
 +        Paravirtualized spinlocks allow a pvops backend to replace the
 +        spinlock implementation with something virtualization-friendly
 +        (for example, block the virtual CPU rather than spinning).
 +
 +        Unfortunately the downside is an up to 5% performance hit on
 +        native kernels, with various workloads.
 +
 +        If you are unsure how to answer this question, answer N.
 +
  config PARAVIRT_CLOCK
        bool
        default n
@@@ -672,7 -668,6 +677,7 @@@ config MAXSM
  
  config NR_CPUS
        int "Maximum number of CPUs" if SMP && !MAXSMP
 +      range 2 8 if SMP && X86_32 && !X86_BIGSMP
        range 2 512 if SMP && !MAXSMP
        default "1" if !SMP
        default "4096" if MAXSMP
@@@ -1460,9 -1455,7 +1465,7 @@@ config KEXEC_JUM
  
  config PHYSICAL_START
        hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
-       default "0x1000000" if X86_NUMAQ
-       default "0x200000" if X86_64
-       default "0x100000"
+       default "0x1000000"
        ---help---
          This gives the physical address where the kernel is loaded.
  
          to be specifically compiled to run from a specific memory area
          (normally a reserved region) and this option comes handy.
  
-         So if you are using bzImage for capturing the crash dump, leave
-         the value here unchanged to 0x100000 and set CONFIG_RELOCATABLE=y.
-         Otherwise if you plan to use vmlinux for capturing the crash dump
-         change this value to start of the reserved region (Typically 16MB
-         0x1000000). In other words, it can be set based on the "X" value as
-         specified in the "crashkernel=YM@XM" command line boot parameter
-         passed to the panic-ed kernel. Typically this parameter is set as
-         crashkernel=64M@16M. Please take a look at
-         Documentation/kdump/kdump.txt for more details about crash dumps.
+         So if you are using bzImage for capturing the crash dump,
+         leave the value here unchanged to 0x1000000 and set
+         CONFIG_RELOCATABLE=y.  Otherwise if you plan to use vmlinux
+         for capturing the crash dump change this value to start of
+         the reserved region.  In other words, it can be set based on
+         the "X" value as specified in the "crashkernel=YM@XM"
+         command line boot parameter passed to the panic-ed
+         kernel. Please take a look at Documentation/kdump/kdump.txt
+         for more details about crash dumps.
  
          Usage of bzImage for capturing the crash dump is recommended as
          one does not have to build two kernels. Same kernel can be used
          Don't change this unless you know what you are doing.
  
  config RELOCATABLE
-       bool "Build a relocatable kernel (EXPERIMENTAL)"
-       depends on EXPERIMENTAL
+       bool "Build a relocatable kernel"
+       default y
        ---help---
          This builds a kernel image that retains relocation information
          so it can be loaded someplace besides the default 1MB.
          it has been loaded at and the compile time physical address
          (CONFIG_PHYSICAL_START) is ignored.
  
+ # Relocation on x86-32 needs some additional build support
+ config X86_NEED_RELOCS
+       def_bool y
+       depends on X86_32 && RELOCATABLE
  config PHYSICAL_ALIGN
        hex
        prompt "Alignment value to which kernel should be aligned" if X86_32
-       default "0x100000" if X86_32
-       default "0x200000" if X86_64
-       range 0x2000 0x400000
+       default "0x1000000"
+       range 0x2000 0x1000000
        ---help---
          This value puts the alignment restrictions on physical address
          where kernel is loaded and run from. Kernel is compiled for an
diff --combined arch/x86/Makefile
index 8c86b72afdc2d39bc8957692e35335ebabae82bc,e81f0b277761806efb7243e51c4dbb5f8b803880..edbd0ca620678fd6627c60d4849a07852a823b11
@@@ -7,8 -7,6 +7,6 @@@ els
          KBUILD_DEFCONFIG := $(ARCH)_defconfig
  endif
  
- core-$(CONFIG_KVM) += arch/x86/kvm/
  # BITS is used as extension for files which are available in a 32 bit
  # and a 64 bit version to simplify shared Makefiles.
  # e.g.: obj-y += foo_$(BITS).o
@@@ -118,21 -116,8 +116,8 @@@ head-y += arch/x86/kernel/init_task.
  
  libs-y  += arch/x86/lib/
  
- # Sub architecture files that needs linking first
- core-y += $(fcore-y)
- # Xen paravirtualization support
- core-$(CONFIG_XEN) += arch/x86/xen/
- # lguest paravirtualization support
- core-$(CONFIG_LGUEST_GUEST) += arch/x86/lguest/
- core-y += arch/x86/kernel/
- core-y += arch/x86/mm/
- core-y += arch/x86/crypto/
- core-y += arch/x86/vdso/
- core-$(CONFIG_IA32_EMULATION) += arch/x86/ia32/
+ # See arch/x86/Kbuild for content of core part of the kernel
+ core-y += arch/x86/
  
  # drivers-y are linked after core-y
  drivers-$(CONFIG_MATH_EMULATION) += arch/x86/math-emu/
@@@ -153,7 -138,7 +138,7 @@@ endi
  
  boot := arch/x86/boot
  
 -BOOT_TARGETS = bzlilo bzdisk fdimage fdimage144 fdimage288 isoimage install
 +BOOT_TARGETS = bzlilo bzdisk fdimage fdimage144 fdimage288 isoimage
  
  PHONY += bzImage $(BOOT_TARGETS)
  
@@@ -171,10 -156,6 +156,10 @@@ bzImage: vmlinu
  $(BOOT_TARGETS): vmlinux
        $(Q)$(MAKE) $(build)=$(boot) $@
  
 +PHONY += install
 +install:
 +      $(Q)$(MAKE) $(build)=$(boot) $@
 +
  PHONY += vdso_install
  vdso_install:
        $(Q)$(MAKE) $(build)=arch/x86/vdso $@
index 27b8ce0f590863dcf1901a85ba12d30a19ccb76d,4ba7d4ef9aac6c395c491a69891eb00f64fe143d..cee1dd2e69b2e173c5218365312e73332652337f
@@@ -1,12 -1,13 +1,13 @@@
  #
  # Automatically generated make config: don't edit
- # Linux kernel version: 2.6.29-rc4
- # Tue Feb 24 15:44:16 2009
+ # Linux kernel version: 2.6.30-rc2
+ # Mon May 11 16:22:00 2009
  #
  CONFIG_64BIT=y
  # CONFIG_X86_32 is not set
  CONFIG_X86_64=y
  CONFIG_X86=y
+ CONFIG_OUTPUT_FORMAT="elf64-x86-64"
  CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
  CONFIG_GENERIC_TIME=y
  CONFIG_GENERIC_CMOS_UPDATE=y
@@@ -34,6 -35,7 +35,7 @@@ CONFIG_ARCH_HAS_CPU_RELAX=
  CONFIG_ARCH_HAS_DEFAULT_IDLE=y
  CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
  CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+ CONFIG_HAVE_DYNAMIC_PER_CPU_AREA=y
  CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y
  CONFIG_ARCH_HIBERNATION_POSSIBLE=y
  CONFIG_ARCH_SUSPEND_POSSIBLE=y
@@@ -41,14 -43,14 +43,14 @@@ CONFIG_ZONE_DMA32=
  CONFIG_ARCH_POPULATES_NODE_MAP=y
  CONFIG_AUDIT_ARCH=y
  CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+ CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
  CONFIG_GENERIC_HARDIRQS=y
+ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
  CONFIG_GENERIC_IRQ_PROBE=y
  CONFIG_GENERIC_PENDING_IRQ=y
- CONFIG_X86_SMP=y
  CONFIG_USE_GENERIC_SMP_HELPERS=y
  CONFIG_X86_64_SMP=y
  CONFIG_X86_HT=y
- CONFIG_X86_BIOS_REBOOT=y
  CONFIG_X86_TRAMPOLINE=y
  # CONFIG_KTIME_SCALAR is not set
  CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@@ -61,10 -63,17 +63,17 @@@ CONFIG_LOCK_KERNEL=
  CONFIG_INIT_ENV_ARG_LIMIT=32
  CONFIG_LOCALVERSION=""
  # CONFIG_LOCALVERSION_AUTO is not set
+ CONFIG_HAVE_KERNEL_GZIP=y
+ CONFIG_HAVE_KERNEL_BZIP2=y
+ CONFIG_HAVE_KERNEL_LZMA=y
+ CONFIG_KERNEL_GZIP=y
+ # CONFIG_KERNEL_BZIP2 is not set
+ # CONFIG_KERNEL_LZMA is not set
  CONFIG_SWAP=y
  CONFIG_SYSVIPC=y
  CONFIG_SYSVIPC_SYSCTL=y
  CONFIG_POSIX_MQUEUE=y
+ CONFIG_POSIX_MQUEUE_SYSCTL=y
  CONFIG_BSD_PROCESS_ACCT=y
  # CONFIG_BSD_PROCESS_ACCT_V3 is not set
  CONFIG_TASKSTATS=y
@@@ -114,23 -123,26 +123,26 @@@ CONFIG_PID_NS=
  CONFIG_NET_NS=y
  CONFIG_BLK_DEV_INITRD=y
  CONFIG_INITRAMFS_SOURCE=""
+ CONFIG_RD_GZIP=y
+ CONFIG_RD_BZIP2=y
+ CONFIG_RD_LZMA=y
  CONFIG_CC_OPTIMIZE_FOR_SIZE=y
  CONFIG_SYSCTL=y
+ CONFIG_ANON_INODES=y
  # CONFIG_EMBEDDED is not set
  CONFIG_UID16=y
  CONFIG_SYSCTL_SYSCALL=y
  CONFIG_KALLSYMS=y
  CONFIG_KALLSYMS_ALL=y
  CONFIG_KALLSYMS_EXTRA_PASS=y
+ # CONFIG_STRIP_ASM_SYMS is not set
  CONFIG_HOTPLUG=y
  CONFIG_PRINTK=y
  CONFIG_BUG=y
  CONFIG_ELF_CORE=y
  CONFIG_PCSPKR_PLATFORM=y
- # CONFIG_COMPAT_BRK is not set
  CONFIG_BASE_FULL=y
  CONFIG_FUTEX=y
- CONFIG_ANON_INODES=y
  CONFIG_EPOLL=y
  CONFIG_SIGNALFD=y
  CONFIG_TIMERFD=y
@@@ -140,6 -152,7 +152,7 @@@ CONFIG_AIO=
  CONFIG_VM_EVENT_COUNTERS=y
  CONFIG_PCI_QUIRKS=y
  CONFIG_SLUB_DEBUG=y
+ # CONFIG_COMPAT_BRK is not set
  # CONFIG_SLAB is not set
  CONFIG_SLUB=y
  # CONFIG_SLOB is not set
@@@ -155,6 -168,8 +168,8 @@@ CONFIG_HAVE_IOREMAP_PROT=
  CONFIG_HAVE_KPROBES=y
  CONFIG_HAVE_KRETPROBES=y
  CONFIG_HAVE_ARCH_TRACEHOOK=y
+ CONFIG_HAVE_DMA_API_DEBUG=y
+ # CONFIG_SLOW_WORK is not set
  # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
  CONFIG_SLABINFO=y
  CONFIG_RT_MUTEXES=y
@@@ -167,7 -182,6 +182,6 @@@ CONFIG_MODULE_FORCE_UNLOAD=
  # CONFIG_MODULE_SRCVERSION_ALL is not set
  CONFIG_STOP_MACHINE=y
  CONFIG_BLOCK=y
- CONFIG_BLK_DEV_IO_TRACE=y
  CONFIG_BLK_DEV_BSG=y
  # CONFIG_BLK_DEV_INTEGRITY is not set
  CONFIG_BLOCK_COMPAT=y
@@@ -195,11 -209,11 +209,10 @@@ CONFIG_HIGH_RES_TIMERS=
  CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
  CONFIG_SMP=y
  CONFIG_SPARSE_IRQ=y
- CONFIG_X86_FIND_SMP_CONFIG=y
 -# CONFIG_NUMA_MIGRATE_IRQ_DESC is not set
  CONFIG_X86_MPPARSE=y
- # CONFIG_X86_ELAN is not set
- # CONFIG_X86_GENERICARCH is not set
+ CONFIG_X86_EXTENDED_PLATFORM=y
  # CONFIG_X86_VSMP is not set
+ # CONFIG_X86_UV is not set
  CONFIG_SCHED_OMIT_FRAME_POINTER=y
  # CONFIG_PARAVIRT_GUEST is not set
  # CONFIG_MEMTEST is not set
  # CONFIG_MCORE2 is not set
  CONFIG_GENERIC_CPU=y
  CONFIG_X86_CPU=y
- CONFIG_X86_L1_CACHE_BYTES=128
- CONFIG_X86_INTERNODE_CACHE_BYTES=128
+ CONFIG_X86_L1_CACHE_BYTES=64
+ CONFIG_X86_INTERNODE_CACHE_BYTES=64
  CONFIG_X86_CMPXCHG=y
- CONFIG_X86_L1_CACHE_SHIFT=7
+ CONFIG_X86_L1_CACHE_SHIFT=6
  CONFIG_X86_WP_WORKS_OK=y
  CONFIG_X86_TSC=y
  CONFIG_X86_CMPXCHG64=y
@@@ -241,7 -255,7 +254,7 @@@ CONFIG_X86_MINIMUM_CPU_FAMILY=6
  CONFIG_X86_DEBUGCTLMSR=y
  CONFIG_CPU_SUP_INTEL=y
  CONFIG_CPU_SUP_AMD=y
- CONFIG_CPU_SUP_CENTAUR_64=y
+ CONFIG_CPU_SUP_CENTAUR=y
  CONFIG_X86_DS=y
  CONFIG_X86_PTRACE_BTS=y
  CONFIG_HPET_TIMER=y
@@@ -268,6 -282,7 +281,7 @@@ CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS
  CONFIG_X86_MCE=y
  CONFIG_X86_MCE_INTEL=y
  CONFIG_X86_MCE_AMD=y
+ CONFIG_X86_MCE_THRESHOLD=y
  # CONFIG_I8K is not set
  CONFIG_MICROCODE=y
  CONFIG_MICROCODE_INTEL=y
@@@ -275,6 -290,7 +289,7 @@@ CONFIG_MICROCODE_AMD=
  CONFIG_MICROCODE_OLD_INTERFACE=y
  CONFIG_X86_MSR=y
  CONFIG_X86_CPUID=y
+ # CONFIG_X86_CPU_DEBUG is not set
  CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
  CONFIG_DIRECT_GBPAGES=y
  CONFIG_NUMA=y
@@@ -308,6 -324,8 +323,8 @@@ CONFIG_ZONE_DMA_FLAG=
  CONFIG_BOUNCE=y
  CONFIG_VIRT_TO_BUS=y
  CONFIG_UNEVICTABLE_LRU=y
+ CONFIG_HAVE_MLOCK=y
+ CONFIG_HAVE_MLOCKED_PAGE_BIT=y
  CONFIG_X86_CHECK_BIOS_CORRUPTION=y
  CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
  CONFIG_X86_RESERVE_LOW_64K=y
@@@ -316,6 -334,7 +333,7 @@@ CONFIG_MTRR=
  CONFIG_X86_PAT=y
  CONFIG_EFI=y
  CONFIG_SECCOMP=y
+ # CONFIG_CC_STACKPROTECTOR is not set
  # CONFIG_HZ_100 is not set
  # CONFIG_HZ_250 is not set
  # CONFIG_HZ_300 is not set
@@@ -324,9 -343,10 +342,10 @@@ CONFIG_HZ=100
  CONFIG_SCHED_HRTICK=y
  CONFIG_KEXEC=y
  CONFIG_CRASH_DUMP=y
+ # CONFIG_KEXEC_JUMP is not set
  CONFIG_PHYSICAL_START=0x1000000
- # CONFIG_RELOCATABLE is not set
- CONFIG_PHYSICAL_ALIGN=0x200000
+ CONFIG_RELOCATABLE=y
+ CONFIG_PHYSICAL_ALIGN=0x1000000
  CONFIG_HOTPLUG_CPU=y
  # CONFIG_COMPAT_VDSO is not set
  # CONFIG_CMDLINE_BOOL is not set
@@@ -369,7 -389,6 +388,6 @@@ CONFIG_ACPI_NUMA=
  CONFIG_ACPI_BLACKLIST_YEAR=0
  # CONFIG_ACPI_DEBUG is not set
  # CONFIG_ACPI_PCI_SLOT is not set
- CONFIG_ACPI_SYSTEM=y
  CONFIG_X86_PM_TIMER=y
  CONFIG_ACPI_CONTAINER=y
  # CONFIG_ACPI_SBS is not set
@@@ -435,6 -454,7 +453,7 @@@ CONFIG_PCI_MSI=
  # CONFIG_PCI_DEBUG is not set
  # CONFIG_PCI_STUB is not set
  CONFIG_HT_IRQ=y
+ # CONFIG_PCI_IOV is not set
  CONFIG_ISA_DMA_API=y
  CONFIG_K8_NB=y
  CONFIG_PCCARD=y
@@@ -480,7 -500,6 +499,6 @@@ CONFIG_NET=
  #
  # Networking options
  #
- CONFIG_COMPAT_NET_DEV_OPS=y
  CONFIG_PACKET=y
  CONFIG_PACKET_MMAP=y
  CONFIG_UNIX=y
@@@ -638,6 -657,7 +656,7 @@@ CONFIG_LLC=
  # CONFIG_LAPB is not set
  # CONFIG_ECONET is not set
  # CONFIG_WAN_ROUTER is not set
+ # CONFIG_PHONET is not set
  CONFIG_NET_SCHED=y
  
  #
@@@ -695,6 -715,7 +714,7 @@@ CONFIG_NET_SCH_FIFO=
  #
  # CONFIG_NET_PKTGEN is not set
  # CONFIG_NET_TCPPROBE is not set
+ # CONFIG_NET_DROP_MONITOR is not set
  CONFIG_HAMRADIO=y
  
  #
  # CONFIG_IRDA is not set
  # CONFIG_BT is not set
  # CONFIG_AF_RXRPC is not set
- # CONFIG_PHONET is not set
  CONFIG_FIB_RULES=y
  CONFIG_WIRELESS=y
  CONFIG_CFG80211=y
  # CONFIG_CFG80211_REG_DEBUG is not set
- CONFIG_NL80211=y
  CONFIG_WIRELESS_OLD_REGULATORY=y
  CONFIG_WIRELESS_EXT=y
  CONFIG_WIRELESS_EXT_SYSFS=y
@@@ -787,9 -806,8 +805,8 @@@ CONFIG_MISC_DEVICES=
  # CONFIG_TIFM_CORE is not set
  # CONFIG_ICS932S401 is not set
  # CONFIG_ENCLOSURE_SERVICES is not set
- # CONFIG_SGI_XP is not set
  # CONFIG_HP_ILO is not set
- # CONFIG_SGI_GRU is not set
+ # CONFIG_ISL29003 is not set
  # CONFIG_C2PORT is not set
  
  #
@@@ -843,6 -861,7 +860,7 @@@ CONFIG_SCSI_SPI_ATTRS=
  # CONFIG_SCSI_LOWLEVEL is not set
  # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
  # CONFIG_SCSI_DH is not set
+ # CONFIG_SCSI_OSD_INITIATOR is not set
  CONFIG_ATA=y
  # CONFIG_ATA_NONSTANDARD is not set
  CONFIG_ATA_ACPI=y
@@@ -939,6 -958,7 +957,7 @@@ CONFIG_DM_ZERO=
  CONFIG_MACINTOSH_DRIVERS=y
  CONFIG_MAC_EMUMOUSEBTN=y
  CONFIG_NETDEVICES=y
+ CONFIG_COMPAT_NET_DEV_OPS=y
  # CONFIG_IFB is not set
  # CONFIG_DUMMY is not set
  # CONFIG_BONDING is not set
@@@ -976,6 -996,8 +995,8 @@@ CONFIG_MII=
  CONFIG_NET_VENDOR_3COM=y
  # CONFIG_VORTEX is not set
  # CONFIG_TYPHOON is not set
+ # CONFIG_ETHOC is not set
+ # CONFIG_DNET is not set
  CONFIG_NET_TULIP=y
  # CONFIG_DE2104X is not set
  # CONFIG_TULIP is not set
@@@ -1025,6 -1047,7 +1046,7 @@@ CONFIG_E1000=
  # CONFIG_E1000E is not set
  # CONFIG_IP1000 is not set
  # CONFIG_IGB is not set
+ # CONFIG_IGBVF is not set
  # CONFIG_NS83820 is not set
  # CONFIG_HAMACHI is not set
  # CONFIG_YELLOWFIN is not set
@@@ -1039,6 -1062,7 +1061,7 @@@ CONFIG_TIGON3=
  # CONFIG_QLA3XXX is not set
  # CONFIG_ATL1 is not set
  # CONFIG_ATL1E is not set
+ # CONFIG_ATL1C is not set
  # CONFIG_JME is not set
  CONFIG_NETDEV_10000=y
  # CONFIG_CHELSIO_T1 is not set
@@@ -1048,6 -1072,7 +1071,7 @@@ CONFIG_CHELSIO_T3_DEPENDS=
  # CONFIG_IXGBE is not set
  # CONFIG_IXGB is not set
  # CONFIG_S2IO is not set
+ # CONFIG_VXGE is not set
  # CONFIG_MYRI10GE is not set
  # CONFIG_NETXEN_NIC is not set
  # CONFIG_NIU is not set
  # CONFIG_BNX2X is not set
  # CONFIG_QLGE is not set
  # CONFIG_SFC is not set
+ # CONFIG_BE2NET is not set
  CONFIG_TR=y
  # CONFIG_IBMOL is not set
  # CONFIG_3C359 is not set
@@@ -1071,8 -1097,8 +1096,8 @@@ CONFIG_WLAN_80211=
  # CONFIG_LIBERTAS is not set
  # CONFIG_LIBERTAS_THINFIRM is not set
  # CONFIG_AIRO is not set
- # CONFIG_HERMES is not set
  # CONFIG_ATMEL is not set
+ # CONFIG_AT76C50X_USB is not set
  # CONFIG_AIRO_CS is not set
  # CONFIG_PCMCIA_WL3501 is not set
  # CONFIG_PRISM54 is not set
  # CONFIG_RTL8187 is not set
  # CONFIG_ADM8211 is not set
  # CONFIG_MAC80211_HWSIM is not set
+ # CONFIG_MWL8K is not set
  # CONFIG_P54_COMMON is not set
  CONFIG_ATH5K=y
  # CONFIG_ATH5K_DEBUG is not set
  # CONFIG_ATH9K is not set
+ # CONFIG_AR9170_USB is not set
  # CONFIG_IPW2100 is not set
  # CONFIG_IPW2200 is not set
- # CONFIG_IWLCORE is not set
- # CONFIG_IWLWIFI_LEDS is not set
- # CONFIG_IWLAGN is not set
- # CONFIG_IWL3945 is not set
+ # CONFIG_IWLWIFI is not set
  # CONFIG_HOSTAP is not set
  # CONFIG_B43 is not set
  # CONFIG_B43LEGACY is not set
  # CONFIG_ZD1211RW is not set
  # CONFIG_RT2X00 is not set
+ # CONFIG_HERMES is not set
  
  #
  # Enable WiMAX (Networking options) to see the WiMAX drivers
@@@ -1207,6 -1233,8 +1232,8 @@@ CONFIG_INPUT_TABLET=
  # CONFIG_TABLET_USB_KBTAB is not set
  # CONFIG_TABLET_USB_WACOM is not set
  CONFIG_INPUT_TOUCHSCREEN=y
+ # CONFIG_TOUCHSCREEN_AD7879_I2C is not set
+ # CONFIG_TOUCHSCREEN_AD7879 is not set
  # CONFIG_TOUCHSCREEN_FUJITSU is not set
  # CONFIG_TOUCHSCREEN_GUNZE is not set
  # CONFIG_TOUCHSCREEN_ELO is not set
@@@ -1300,6 -1328,7 +1327,7 @@@ CONFIG_UNIX98_PTYS=
  # CONFIG_LEGACY_PTYS is not set
  # CONFIG_IPMI_HANDLER is not set
  CONFIG_HW_RANDOM=y
+ # CONFIG_HW_RANDOM_TIMERIOMEM is not set
  # CONFIG_HW_RANDOM_INTEL is not set
  # CONFIG_HW_RANDOM_AMD is not set
  CONFIG_NVRAM=y
@@@ -1381,7 -1410,6 +1409,6 @@@ CONFIG_I2C_I801=
  # CONFIG_SENSORS_PCF8574 is not set
  # CONFIG_PCF8575 is not set
  # CONFIG_SENSORS_PCA9539 is not set
- # CONFIG_SENSORS_PCF8591 is not set
  # CONFIG_SENSORS_MAX6875 is not set
  # CONFIG_SENSORS_TSL2550 is not set
  # CONFIG_I2C_DEBUG_CORE is not set
@@@ -1415,6 -1443,7 +1442,7 @@@ CONFIG_HWMON=
  # CONFIG_SENSORS_ADT7475 is not set
  # CONFIG_SENSORS_K8TEMP is not set
  # CONFIG_SENSORS_ASB100 is not set
+ # CONFIG_SENSORS_ATK0110 is not set
  # CONFIG_SENSORS_ATXP1 is not set
  # CONFIG_SENSORS_DS1621 is not set
  # CONFIG_SENSORS_I5K_AMB is not set
  # CONFIG_SENSORS_FSCHER is not set
  # CONFIG_SENSORS_FSCPOS is not set
  # CONFIG_SENSORS_FSCHMD is not set
+ # CONFIG_SENSORS_G760A is not set
  # CONFIG_SENSORS_GL518SM is not set
  # CONFIG_SENSORS_GL520SM is not set
  # CONFIG_SENSORS_CORETEMP is not set
  # CONFIG_SENSORS_LM90 is not set
  # CONFIG_SENSORS_LM92 is not set
  # CONFIG_SENSORS_LM93 is not set
+ # CONFIG_SENSORS_LTC4215 is not set
  # CONFIG_SENSORS_LTC4245 is not set
+ # CONFIG_SENSORS_LM95241 is not set
  # CONFIG_SENSORS_MAX1619 is not set
  # CONFIG_SENSORS_MAX6650 is not set
  # CONFIG_SENSORS_PC87360 is not set
  # CONFIG_SENSORS_PC87427 is not set
+ # CONFIG_SENSORS_PCF8591 is not set
  # CONFIG_SENSORS_SIS5595 is not set
  # CONFIG_SENSORS_DME1737 is not set
  # CONFIG_SENSORS_SMSC47M1 is not set
@@@ -1634,6 -1667,7 +1666,7 @@@ CONFIG_FB_EFI=
  # CONFIG_FB_VIRTUAL is not set
  # CONFIG_FB_METRONOME is not set
  # CONFIG_FB_MB862XX is not set
+ # CONFIG_FB_BROADSHEET is not set
  CONFIG_BACKLIGHT_LCD_SUPPORT=y
  # CONFIG_LCD_CLASS_DEVICE is not set
  CONFIG_BACKLIGHT_CLASS_DEVICE=y
@@@ -1719,6 -1753,8 +1752,8 @@@ CONFIG_SND_PCI=
  # CONFIG_SND_INDIGO is not set
  # CONFIG_SND_INDIGOIO is not set
  # CONFIG_SND_INDIGODJ is not set
+ # CONFIG_SND_INDIGOIOX is not set
+ # CONFIG_SND_INDIGODJX is not set
  # CONFIG_SND_EMU10K1 is not set
  # CONFIG_SND_EMU10K1X is not set
  # CONFIG_SND_ENS1370 is not set
@@@ -1791,15 -1827,17 +1826,17 @@@ CONFIG_USB_HIDDEV=
  #
  # Special HID drivers
  #
- CONFIG_HID_COMPAT=y
  CONFIG_HID_A4TECH=y
  CONFIG_HID_APPLE=y
  CONFIG_HID_BELKIN=y
  CONFIG_HID_CHERRY=y
  CONFIG_HID_CHICONY=y
  CONFIG_HID_CYPRESS=y
+ # CONFIG_DRAGONRISE_FF is not set
  CONFIG_HID_EZKEY=y
+ CONFIG_HID_KYE=y
  CONFIG_HID_GYRATION=y
+ CONFIG_HID_KENSINGTON=y
  CONFIG_HID_LOGITECH=y
  CONFIG_LOGITECH_FF=y
  # CONFIG_LOGIRUMBLEPAD2_FF is not set
@@@ -1865,11 -1903,11 +1902,11 @@@ CONFIG_USB_PRINTER=
  # CONFIG_USB_TMC is not set
  
  #
- # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
+ # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
  #
  
  #
- # see USB_STORAGE Help for more information
+ # also be needed; see USB_STORAGE Help for more info
  #
  CONFIG_USB_STORAGE=y
  # CONFIG_USB_STORAGE_DEBUG is not set
@@@ -1911,7 -1949,6 +1948,6 @@@ CONFIG_USB_LIBUSUAL=
  # CONFIG_USB_LED is not set
  # CONFIG_USB_CYPRESS_CY7C63 is not set
  # CONFIG_USB_CYTHERM is not set
- # CONFIG_USB_PHIDGET is not set
  # CONFIG_USB_IDMOUSE is not set
  # CONFIG_USB_FTDI_ELAN is not set
  # CONFIG_USB_APPLEDISPLAY is not set
  #
  # OTG and related infrastructure
  #
+ # CONFIG_NOP_USB_XCEIV is not set
  # CONFIG_UWB is not set
  # CONFIG_MMC is not set
  # CONFIG_MEMSTICK is not set
@@@ -1938,8 -1976,10 +1975,10 @@@ CONFIG_LEDS_CLASS=
  #
  # CONFIG_LEDS_ALIX2 is not set
  # CONFIG_LEDS_PCA9532 is not set
+ # CONFIG_LEDS_LP5521 is not set
  # CONFIG_LEDS_CLEVO_MAIL is not set
  # CONFIG_LEDS_PCA955X is not set
+ # CONFIG_LEDS_BD2802 is not set
  
  #
  # LED Triggers
@@@ -1949,6 -1989,10 +1988,10 @@@ CONFIG_LEDS_TRIGGERS=
  # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
  # CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
  # CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+ #
+ # iptables trigger is under Netfilter config (LED target)
+ #
  # CONFIG_ACCESSIBILITY is not set
  # CONFIG_INFINIBAND is not set
  CONFIG_EDAC=y
@@@ -2017,6 -2061,7 +2060,7 @@@ CONFIG_DMADEVICES=
  # DMA Devices
  #
  # CONFIG_INTEL_IOATDMA is not set
+ # CONFIG_AUXDISPLAY is not set
  # CONFIG_UIO is not set
  # CONFIG_STAGING is not set
  CONFIG_X86_PLATFORM_DEVICES=y
@@@ -2050,6 -2095,7 +2094,7 @@@ CONFIG_DMIID=
  #
  # CONFIG_EXT2_FS is not set
  CONFIG_EXT3_FS=y
+ # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
  CONFIG_EXT3_FS_XATTR=y
  CONFIG_EXT3_FS_POSIX_ACL=y
  CONFIG_EXT3_FS_SECURITY=y
@@@ -2080,6 -2126,11 +2125,11 @@@ CONFIG_AUTOFS4_FS=
  # CONFIG_FUSE_FS is not set
  CONFIG_GENERIC_ACL=y
  
+ #
+ # Caches
+ #
+ # CONFIG_FSCACHE is not set
  #
  # CD-ROM/DVD Filesystems
  #
@@@ -2131,6 -2182,7 +2181,7 @@@ CONFIG_MISC_FILESYSTEMS=
  # CONFIG_ROMFS_FS is not set
  # CONFIG_SYSV_FS is not set
  # CONFIG_UFS_FS is not set
+ # CONFIG_NILFS2_FS is not set
  CONFIG_NETWORK_FILESYSTEMS=y
  CONFIG_NFS_FS=y
  CONFIG_NFS_V3=y
@@@ -2144,7 -2196,6 +2195,6 @@@ CONFIG_NFS_ACL_SUPPORT=
  CONFIG_NFS_COMMON=y
  CONFIG_SUNRPC=y
  CONFIG_SUNRPC_GSS=y
- # CONFIG_SUNRPC_REGISTER_V4 is not set
  CONFIG_RPCSEC_GSS_KRB5=y
  # CONFIG_RPCSEC_GSS_SPKM3 is not set
  # CONFIG_SMB_FS is not set
@@@ -2231,6 -2282,7 +2281,7 @@@ CONFIG_DEBUG_FS=
  CONFIG_DEBUG_KERNEL=y
  # CONFIG_DEBUG_SHIRQ is not set
  # CONFIG_DETECT_SOFTLOCKUP is not set
+ # CONFIG_DETECT_HUNG_TASK is not set
  # CONFIG_SCHED_DEBUG is not set
  CONFIG_SCHEDSTATS=y
  CONFIG_TIMER_STATS=y
  # CONFIG_LOCK_STAT is not set
  # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
  # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+ CONFIG_STACKTRACE=y
  # CONFIG_DEBUG_KOBJECT is not set
  CONFIG_DEBUG_BUGVERBOSE=y
  # CONFIG_DEBUG_INFO is not set
@@@ -2268,13 -2321,19 +2320,19 @@@ CONFIG_FRAME_POINTER=
  # CONFIG_FAULT_INJECTION is not set
  # CONFIG_LATENCYTOP is not set
  CONFIG_SYSCTL_SYSCALL_CHECK=y
+ # CONFIG_DEBUG_PAGEALLOC is not set
  CONFIG_USER_STACKTRACE_SUPPORT=y
+ CONFIG_NOP_TRACER=y
  CONFIG_HAVE_FUNCTION_TRACER=y
  CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
  CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
  CONFIG_HAVE_DYNAMIC_FTRACE=y
  CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
  CONFIG_HAVE_HW_BRANCH_TRACER=y
+ CONFIG_HAVE_FTRACE_SYSCALLS=y
+ CONFIG_RING_BUFFER=y
+ CONFIG_TRACING=y
+ CONFIG_TRACING_SUPPORT=y
  
  #
  # Tracers
  # CONFIG_SYSPROF_TRACER is not set
  # CONFIG_SCHED_TRACER is not set
  # CONFIG_CONTEXT_SWITCH_TRACER is not set
+ # CONFIG_EVENT_TRACER is not set
+ # CONFIG_FTRACE_SYSCALLS is not set
  # CONFIG_BOOT_TRACER is not set
  # CONFIG_TRACE_BRANCH_PROFILING is not set
  # CONFIG_POWER_TRACER is not set
  # CONFIG_STACK_TRACER is not set
  # CONFIG_HW_BRANCH_TRACER is not set
+ # CONFIG_KMEMTRACE is not set
+ # CONFIG_WORKQUEUE_TRACER is not set
+ CONFIG_BLK_DEV_IO_TRACE=y
+ # CONFIG_FTRACE_STARTUP_TEST is not set
+ # CONFIG_MMIOTRACE is not set
  CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
- # CONFIG_DYNAMIC_PRINTK_DEBUG is not set
+ # CONFIG_DYNAMIC_DEBUG is not set
+ # CONFIG_DMA_API_DEBUG is not set
  # CONFIG_SAMPLES is not set
  CONFIG_HAVE_ARCH_KGDB=y
  # CONFIG_KGDB is not set
@@@ -2300,14 -2367,13 +2366,13 @@@ CONFIG_EARLY_PRINTK=
  CONFIG_EARLY_PRINTK_DBGP=y
  CONFIG_DEBUG_STACKOVERFLOW=y
  CONFIG_DEBUG_STACK_USAGE=y
- # CONFIG_DEBUG_PAGEALLOC is not set
  # CONFIG_DEBUG_PER_CPU_MAPS is not set
  # CONFIG_X86_PTDUMP is not set
  CONFIG_DEBUG_RODATA=y
  # CONFIG_DEBUG_RODATA_TEST is not set
  CONFIG_DEBUG_NX_TEST=m
  # CONFIG_IOMMU_DEBUG is not set
- # CONFIG_MMIOTRACE is not set
+ CONFIG_HAVE_MMIOTRACE_SUPPORT=y
  CONFIG_IO_DELAY_TYPE_0X80=0
  CONFIG_IO_DELAY_TYPE_0XED=1
  CONFIG_IO_DELAY_TYPE_UDELAY=2
@@@ -2343,6 -2409,8 +2408,8 @@@ CONFIG_SECURITY_SELINUX_AVC_STATS=
  CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
  # CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
  # CONFIG_SECURITY_SMACK is not set
+ # CONFIG_SECURITY_TOMOYO is not set
+ # CONFIG_IMA is not set
  CONFIG_CRYPTO=y
  
  #
@@@ -2358,10 -2426,12 +2425,12 @@@ CONFIG_CRYPTO_BLKCIPHER2=
  CONFIG_CRYPTO_HASH=y
  CONFIG_CRYPTO_HASH2=y
  CONFIG_CRYPTO_RNG2=y
+ CONFIG_CRYPTO_PCOMP=y
  CONFIG_CRYPTO_MANAGER=y
  CONFIG_CRYPTO_MANAGER2=y
  # CONFIG_CRYPTO_GF128MUL is not set
  # CONFIG_CRYPTO_NULL is not set
+ CONFIG_CRYPTO_WORKQUEUE=y
  # CONFIG_CRYPTO_CRYPTD is not set
  CONFIG_CRYPTO_AUTHENC=y
  # CONFIG_CRYPTO_TEST is not set
@@@ -2413,6 -2483,7 +2482,7 @@@ CONFIG_CRYPTO_SHA1=
  #
  CONFIG_CRYPTO_AES=y
  # CONFIG_CRYPTO_AES_X86_64 is not set
+ # CONFIG_CRYPTO_AES_NI_INTEL is not set
  # CONFIG_CRYPTO_ANUBIS is not set
  CONFIG_CRYPTO_ARC4=y
  # CONFIG_CRYPTO_BLOWFISH is not set
@@@ -2434,6 -2505,7 +2504,7 @@@ CONFIG_CRYPTO_DES=
  # Compression
  #
  # CONFIG_CRYPTO_DEFLATE is not set
+ # CONFIG_CRYPTO_ZLIB is not set
  # CONFIG_CRYPTO_LZO is not set
  
  #
  CONFIG_CRYPTO_HW=y
  # CONFIG_CRYPTO_DEV_HIFN_795X is not set
  CONFIG_HAVE_KVM=y
+ CONFIG_HAVE_KVM_IRQCHIP=y
  CONFIG_VIRTUALIZATION=y
  # CONFIG_KVM is not set
  # CONFIG_VIRTIO_PCI is not set
  # CONFIG_VIRTIO_BALLOON is not set
+ CONFIG_BINARY_PRINTF=y
  
  #
  # Library routines
@@@ -2463,7 -2537,10 +2536,10 @@@ CONFIG_CRC32=
  # CONFIG_CRC7 is not set
  # CONFIG_LIBCRC32C is not set
  CONFIG_ZLIB_INFLATE=y
- CONFIG_PLIST=y
+ CONFIG_DECOMPRESS_GZIP=y
+ CONFIG_DECOMPRESS_BZIP2=y
+ CONFIG_DECOMPRESS_LZMA=y
  CONFIG_HAS_IOMEM=y
  CONFIG_HAS_IOPORT=y
  CONFIG_HAS_DMA=y
+ CONFIG_NLATTR=y
index fed93fec9764a4ef4bfb62be486eb169ef45e0c9,6384d25121cab129b6be164f62a16c3d31a08362..6469866a7410f4100eb63b0ce7a84359fefb80a5
@@@ -135,11 -135,10 +135,11 @@@ extern struct cpuinfo_x86       boot_cpu_data
  extern struct cpuinfo_x86     new_cpu_data;
  
  extern struct tss_struct      doublefault_tss;
 -extern __u32                  cleared_cpu_caps[NCAPINTS];
 +extern __u32                  cpu_caps_cleared[NCAPINTS];
 +extern __u32                  cpu_caps_set[NCAPINTS];
  
  #ifdef CONFIG_SMP
 -DECLARE_PER_CPU(struct cpuinfo_x86, cpu_info);
 +DECLARE_PER_CPU_SHARED_ALIGNED(struct cpuinfo_x86, cpu_info);
  #define cpu_data(cpu)         per_cpu(cpu_info, cpu)
  #define current_cpu_data      __get_cpu_var(cpu_info)
  #else
@@@ -271,7 -270,7 +271,7 @@@ struct tss_struct 
  
  } ____cacheline_aligned;
  
 -DECLARE_PER_CPU(struct tss_struct, init_tss);
 +DECLARE_PER_CPU_SHARED_ALIGNED(struct tss_struct, init_tss);
  
  /*
   * Save the original ist values for checking stack pointers during debugging
@@@ -394,7 -393,7 +394,7 @@@ union irq_stack_union 
        };
  };
  
 -DECLARE_PER_CPU(union irq_stack_union, irq_stack_union);
 +DECLARE_PER_CPU_FIRST(union irq_stack_union, irq_stack_union);
  DECLARE_INIT_PER_CPU(irq_stack_union);
  
  DECLARE_PER_CPU(char *, irq_stack_ptr);
@@@ -815,6 -814,7 +815,7 @@@ extern unsigned int                BIOS_revision
  
  /* Boot loader type from the setup header: */
  extern int                    bootloader_type;
+ extern int                    bootloader_version;
  
  extern char                   ignore_fpu_irq;
  
diff --combined arch/x86/kernel/setup.c
index 523bb697120d18697addb94e2be26b0bb24dcef3,2b093451aec95e0a8a3e5a36ec77ff9f3a32335e..7791eef95b9133cff501b398cc9a36828d2418fb
@@@ -214,8 -214,8 +214,8 @@@ unsigned long mmu_cr4_features
  unsigned long mmu_cr4_features = X86_CR4_PAE;
  #endif
  
- /* Boot loader ID as an integer, for the benefit of proc_dointvec */
- int bootloader_type;
+ /* Boot loader ID and version as integers, for the benefit of proc_dointvec */
+ int bootloader_type, bootloader_version;
  
  /*
   * Setup options
@@@ -706,6 -706,12 +706,12 @@@ void __init setup_arch(char **cmdline_p
  #endif
        saved_video_mode = boot_params.hdr.vid_mode;
        bootloader_type = boot_params.hdr.type_of_loader;
+       if ((bootloader_type >> 4) == 0xe) {
+               bootloader_type &= 0xf;
+               bootloader_type |= (boot_params.hdr.ext_loader_type+0x10) << 4;
+       }
+       bootloader_version  = bootloader_type & 0xf;
+       bootloader_version |= boot_params.hdr.ext_loader_ver << 4;
  
  #ifdef CONFIG_BLK_DEV_RAM
        rd_image_start = boot_params.hdr.ram_size & RAMDISK_IMAGE_START_MASK;
  
  #ifdef CONFIG_X86_32
  
 -/**
 - * x86_quirk_pre_intr_init - initialisation prior to setting up interrupt vectors
 - *
 - * Description:
 - *    Perform any necessary interrupt initialisation prior to setting up
 - *    the "ordinary" interrupt call gates.  For legacy reasons, the ISA
 - *    interrupts should be initialised here if the machine emulates a PC
 - *    in any way.
 - **/
 -void __init x86_quirk_pre_intr_init(void)
 -{
 -      if (x86_quirks->arch_pre_intr_init) {
 -              if (x86_quirks->arch_pre_intr_init())
 -                      return;
 -      }
 -      init_ISA_irqs();
 -}
 -
  /**
   * x86_quirk_intr_init - post gate setup interrupt initialisation
   *
diff --combined kernel/sysctl.c
index b2970d56fb7678d6493e44c766db536f691656b7,cf91c9317b26fa47827dda81ad31d304181f1289..6a463716ecbf6ccbf55b35c421303add04415306
@@@ -101,9 -101,7 +101,9 @@@ static int __maybe_unused one = 1
  static int __maybe_unused two = 2;
  static unsigned long one_ul = 1;
  static int one_hundred = 100;
 -static int one_thousand = 1000;
 +
 +/* this is needed for the proc_doulongvec_minmax of vm_dirty_bytes */
 +static unsigned long dirty_bytes_min = 2 * PAGE_SIZE;
  
  /* this is needed for the proc_dointvec_minmax for [fs_]overflow UID and GID */
  static int maxolduid = 65535;
@@@ -729,6 -727,14 +729,14 @@@ static struct ctl_table kern_table[] = 
                .mode           = 0444,
                .proc_handler   = &proc_dointvec,
        },
+       {
+               .ctl_name       = CTL_UNNUMBERED,
+               .procname       = "bootloader_version",
+               .data           = &bootloader_version,
+               .maxlen         = sizeof (int),
+               .mode           = 0444,
+               .proc_handler   = &proc_dointvec,
+       },
        {
                .ctl_name       = CTL_UNNUMBERED,
                .procname       = "kstack_depth_to_print",
@@@ -1008,7 -1014,7 +1016,7 @@@ static struct ctl_table vm_table[] = 
                .mode           = 0644,
                .proc_handler   = &dirty_bytes_handler,
                .strategy       = &sysctl_intvec,
 -              .extra1         = &one_ul,
 +              .extra1         = &dirty_bytes_min,
        },
        {
                .procname       = "dirty_writeback_centisecs",
                .mode           = 0444 /* read-only*/,
                .proc_handler   = &proc_dointvec,
        },
 -      {
 -              .ctl_name       = CTL_UNNUMBERED,
 -              .procname       = "nr_pdflush_threads_min",
 -              .data           = &nr_pdflush_threads_min,
 -              .maxlen         = sizeof nr_pdflush_threads_min,
 -              .mode           = 0644 /* read-write */,
 -              .proc_handler   = &proc_dointvec_minmax,
 -              .strategy       = &sysctl_intvec,
 -              .extra1         = &one,
 -              .extra2         = &nr_pdflush_threads_max,
 -      },
 -      {
 -              .ctl_name       = CTL_UNNUMBERED,
 -              .procname       = "nr_pdflush_threads_max",
 -              .data           = &nr_pdflush_threads_max,
 -              .maxlen         = sizeof nr_pdflush_threads_max,
 -              .mode           = 0644 /* read-write */,
 -              .proc_handler   = &proc_dointvec_minmax,
 -              .strategy       = &sysctl_intvec,
 -              .extra1         = &nr_pdflush_threads_min,
 -              .extra2         = &one_thousand,
 -      },
        {
                .ctl_name       = VM_SWAPPINESS,
                .procname       = "swappiness",
diff --combined scripts/Makefile.lib
index cba61ca403cacb644bf07fed6e11f340f90c8f50,f8cf938dde98dfdb424219a3734d2e1f582572e7..2b706617c89a806c69b83a112f046f16046904b4
@@@ -4,11 -4,6 +4,11 @@@ ccflags-y  += $(EXTRA_CFLAGS
  cppflags-y += $(EXTRA_CPPFLAGS)
  ldflags-y  += $(EXTRA_LDFLAGS)
  
 +#
 +# flags that take effect in sub directories
 +export KBUILD_SUBDIR_ASFLAGS := $(KBUILD_SUBDIR_ASFLAGS) $(subdir-asflags-y)
 +export KBUILD_SUBDIR_CCFLAGS := $(KBUILD_SUBDIR_CCFLAGS) $(subdir-ccflags-y)
 +
  # Figure out what we need to build from the various variables
  # ===========================================================================
  
@@@ -109,10 -104,10 +109,10 @@@ els
  debug_flags =
  endif
  
 -orig_c_flags   = $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS)                     \
 +orig_c_flags   = $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(KBUILD_SUBDIR_CCFLAGS) \
                   $(ccflags-y) $(CFLAGS_$(basetarget).o)
  _c_flags       = $(filter-out $(CFLAGS_REMOVE_$(basetarget).o), $(orig_c_flags))
 -_a_flags       = $(KBUILD_CPPFLAGS) $(KBUILD_AFLAGS)                     \
 +_a_flags       = $(KBUILD_CPPFLAGS) $(KBUILD_AFLAGS) $(KBUILD_SUBDIR_ASFLAGS) \
                   $(asflags-y) $(AFLAGS_$(basetarget).o)
  _cpp_flags     = $(KBUILD_CPPFLAGS) $(cppflags-y) $(CPPFLAGS_$(@F))
  
@@@ -188,20 -183,34 +188,34 @@@ cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS
  # ---------------------------------------------------------------------------
  
  quiet_cmd_gzip = GZIP    $@
- cmd_gzip = gzip -f -9 < $< > $@
+ cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -f -9 > $@) || \
+       (rm -f $@ ; false)
  
  
  # Bzip2
  # ---------------------------------------------------------------------------
  
- # Bzip2 does not include size in file... so we have to fake that
- size_append=$(CONFIG_SHELL) $(srctree)/scripts/bin_size
- quiet_cmd_bzip2 = BZIP2    $@
- cmd_bzip2 = (bzip2 -9 < $< && $(size_append) $<) > $@ || (rm -f $@ ; false)
+ # Bzip2 and LZMA do not include size in file... so we have to fake that;
+ # append the size as a 32-bit littleendian number as gzip does.
+ size_append = echo -ne $(shell                                                \
+ dec_size=0;                                                           \
+ for F in $1; do                                                               \
+       fsize=$$(stat -c "%s" $$F);                                     \
+       dec_size=$$(expr $$dec_size + $$fsize);                         \
+ done;                                                                 \
+ printf "%08x" $$dec_size |                                            \
+       sed 's/\(..\)\(..\)\(..\)\(..\)/\\\\x\4\\\\x\3\\\\x\2\\\\x\1/g' \
+ )
+ quiet_cmd_bzip2 = BZIP2   $@
+ cmd_bzip2 = (cat $(filter-out FORCE,$^) | \
+       bzip2 -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \
+       (rm -f $@ ; false)
  
  # Lzma
  # ---------------------------------------------------------------------------
  
  quiet_cmd_lzma = LZMA    $@
- cmd_lzma = (lzma -9 -c $< && $(size_append) $<) >$@ || (rm -f $@ ; false)
+ cmd_lzma = (cat $(filter-out FORCE,$^) | \
+       lzma -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \
+       (rm -f $@ ; false)