]> rtime.felk.cvut.cz Git - lisovros/linux_canprio.git/commitdiff
Merge branch 'for-35' of git://repo.or.cz/linux-kbuild
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 1 Jun 2010 15:55:52 +0000 (08:55 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 1 Jun 2010 15:55:52 +0000 (08:55 -0700)
* 'for-35' of git://repo.or.cz/linux-kbuild: (81 commits)
  kbuild: Revert part of e8d400a to resolve a conflict
  kbuild: Fix checking of scm-identifier variable
  gconfig: add support to show hidden options that have prompts
  menuconfig: add support to show hidden options which have prompts
  gconfig: remove show_debug option
  gconfig: remove dbg_print_ptype() and dbg_print_stype()
  kconfig: fix zconfdump()
  kconfig: some small fixes
  add random binaries to .gitignore
  kbuild: Include gen_initramfs_list.sh and the file list in the .d file
  kconfig: recalc symbol value before showing search results
  .gitignore: ignore *.lzo files
  headerdep: perlcritic warning
  scripts/Makefile.lib: Align the output of LZO
  kbuild: Generate modules.builtin in make modules_install
  Revert "kbuild: specify absolute paths for cscope"
  kbuild: Do not unnecessarily regenerate modules.builtin
  headers_install: use local file handles
  headers_check: fix perl warnings
  export_report: fix perl warnings
  ...

25 files changed:
1  2 
.gitignore
MAINTAINERS
Makefile
arch/ia64/include/asm/percpu.h
arch/ia64/kernel/ivt.S
arch/parisc/include/asm/system.h
arch/powerpc/include/asm/cache.h
arch/s390/kernel/swsusp_asm64.S
arch/sh/include/asm/cache.h
arch/sparc/include/asm/cache.h
arch/x86/kernel/setup_percpu.c
arch/x86/kernel/vmlinux.lds.S
include/asm-generic/percpu.h
include/asm-generic/vmlinux.lds.h
include/linux/init_task.h
include/linux/percpu-defs.h
include/linux/spinlock.h
init/Kconfig
kernel/module.c
scripts/Makefile.lib
scripts/gen_initramfs_list.sh
scripts/kconfig/Makefile
scripts/kconfig/util.c
scripts/markup_oops.pl
scripts/package/mkspec

diff --combined .gitignore
index a2939fc10b225d3727d6501831fad647553f11c8,0a5cf708c06db34fd872a131d0efc0b182629942..8faa6c02b39ec3896bd4e989c82ce7f6dbdaf04a
@@@ -28,24 -28,20 +28,25 @@@ modules.builti
  *.gz
  *.bz2
  *.lzma
+ *.lzo
  *.patch
  *.gcno
  
  #
  # Top-level generic files
  #
 -tags
 -TAGS
 -vmlinux
 -vmlinuz
 -System.map
 -Module.markers
 -Module.symvers
 +/tags
 +/TAGS
 +/linux
 +/vmlinux
 +/vmlinuz
 +/System.map
 +/Module.markers
 +/Module.symvers
 +
 +#
 +# git files that we don't want to ignore even it they are dot-files
 +#
  !.gitignore
  !.mailmap
  
diff --combined MAINTAINERS
index 13608bd2e7913941bae445f08c201912f798c2fd,ce3601e5e3c832fb3309cec2edb71652bae948c2..2652ebc5ab40f9b7a5016de09f08a0fec8779f0e
@@@ -71,7 -71,6 +71,7 @@@ Descriptions of section entries
        M: Mail patches to: FullName <address@domain>
        L: Mailing list that is relevant to this area
        W: Web-page with status/info
 +      Q: Patchwork web based patch tracking system site
        T: SCM tree type and location.  Type is one of: git, hg, quilt, stgit.
        S: Status, one of the following:
           Supported:   Someone is actually paid to look after this.
@@@ -131,12 -130,19 +131,12 @@@ L:      netdev@vger.kernel.or
  S:    Maintained
  F:    drivers/net/typhoon*
  
 -3W-9XXX SATA-RAID CONTROLLER DRIVER
 -M:    Adam Radford <linuxraid@amcc.com>
 +3WARE SAS/SATA-RAID SCSI DRIVERS (3W-XXXX, 3W-9XXX, 3W-SAS)
 +M:    Adam Radford <linuxraid@lsi.com>
  L:    linux-scsi@vger.kernel.org
 -W:    http://www.amcc.com
 +W:    http://www.lsi.com
  S:    Supported
 -F:    drivers/scsi/3w-9xxx*
 -
 -3W-XXXX ATA-RAID CONTROLLER DRIVER
 -M:    Adam Radford <linuxraid@amcc.com>
 -L:    linux-scsi@vger.kernel.org
 -W:    http://www.amcc.com
 -S:    Supported
 -F:    drivers/scsi/3w-xxxx*
 +F:    drivers/scsi/3w-*
  
  53C700 AND 53C700-66 SCSI DRIVER
  M:    "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
@@@ -176,7 -182,6 +176,7 @@@ M: Ron Minnich <rminnich@sandia.gov
  M:    Latchesar Ionkov <lucho@ionkov.net>
  L:    v9fs-developer@lists.sourceforge.net
  W:    http://swik.net/v9fs
 +Q:    http://patchwork.kernel.org/project/v9fs-devel/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs.git
  S:    Maintained
  F:    Documentation/filesystems/9p.txt
@@@ -216,7 -221,6 +216,7 @@@ F: drivers/net/acenic
  
  ACER ASPIRE ONE TEMPERATURE AND FAN DRIVER
  M:    Peter Feuerer <peter@piie.net>
 +L:    platform-driver-x86@vger.kernel.org
  W:    http://piie.net/?section=acerhdf
  S:    Maintained
  F:    drivers/platform/x86/acerhdf.c
  ACER WMI LAPTOP EXTRAS
  M:    Carlos Corbacho <carlos@strangeworlds.co.uk>
  L:    aceracpi@googlegroups.com (subscribers-only)
 +L:    platform-driver-x86@vger.kernel.org
  W:    http://code.google.com/p/aceracpi
  S:    Maintained
  F:    drivers/platform/x86/acer-wmi.c
@@@ -233,7 -236,6 +233,7 @@@ ACP
  M:    Len Brown <lenb@kernel.org>
  L:    linux-acpi@vger.kernel.org
  W:    http://www.lesswatts.org/projects/acpi/
 +Q:    http://patchwork.kernel.org/project/linux-acpi/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git
  S:    Supported
  F:    drivers/acpi/
@@@ -286,7 -288,7 +286,7 @@@ F: drivers/acpi/video.
  
  ACPI WMI DRIVER
  M:    Carlos Corbacho <carlos@strangeworlds.co.uk>
 -L:    linux-acpi@vger.kernel.org
 +L:    platform-driver-x86@vger.kernel.org
  W:    http://www.lesswatts.org/projects/acpi/
  S:    Maintained
  F:    drivers/platform/x86/wmi.c
@@@ -424,6 -426,7 +424,6 @@@ P: Jordan Crous
  L:    linux-geode@lists.infradead.org (moderated for non-subscribers)
  W:    http://www.amd.com/us-en/ConnectivitySolutions/TechnicalResources/0,,50_2334_2452_11363,00.html
  S:    Supported
 -F:    arch/x86/kernel/geode_32.c
  F:    drivers/char/hw_random/geode-rng.c
  F:    drivers/crypto/geode*
  F:    drivers/video/geode/
@@@ -478,8 -481,8 +478,8 @@@ S: Maintaine
  F:    drivers/input/mouse/bcm5974.c
  
  APPLE SMC DRIVER
 -M:    Nicolas Boichat <nicolas@boichat.ch>
 -L:    mactel-linux-devel@lists.sourceforge.net
 +M:    Henrik Rydberg <rydberg@euromail.se>
 +L:    lm-sensors@lm-sensors.org
  S:    Maintained
  F:    drivers/hwmon/applesmc.c
  
@@@ -579,12 -582,6 +579,12 @@@ F:       drivers/mtd/nand/bcm_umi_bch.
  F:    drivers/mtd/nand/bcm_umi_hamming.c
  F:    drivers/mtd/nand/nand_bcm_umi.h
  
 +ARM/CAVIUM NETWORKS CNS3XXX MACHINE SUPPORT
 +M:    Anton Vorontsov <avorontsov@mvista.com>
 +S:    Maintained
 +F:    arch/arm/mach-cns3xxx/
 +T:    git git://git.infradead.org/users/cbou/linux-cns3xxx.git
 +
  ARM/CIRRUS LOGIC EP93XX ARM ARCHITECTURE
  M:    Hartley Sweeten <hsweeten@visionengravers.com>
  M:    Ryan Mallon <ryan@bluewatersys.com>
@@@ -619,10 -616,10 +619,10 @@@ M:      Richard Purdie <rpurdie@rpsys.net
  S:    Maintained
  
  ARM/CORTINA SYSTEMS GEMINI ARM ARCHITECTURE
 -M:    Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
 +M:    Paulius Zaleckas <paulius.zaleckas@gmail.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  T:    git git://gitorious.org/linux-gemini/mainline.git
 -S:    Maintained
 +S:    Odd Fixes
  F:    arch/arm/mach-gemini/
  
  ARM/EBSA110 MACHINE SUPPORT
@@@ -644,9 -641,9 +644,9 @@@ T: topgit git://git.openezx.org/openezx
  F:    arch/arm/mach-pxa/ezx.c
  
  ARM/FARADAY FA526 PORT
 -M:    Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
 +M:    Paulius Zaleckas <paulius.zaleckas@gmail.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 -S:    Maintained
 +S:    Odd Fixes
  F:    arch/arm/mm/*-fa*
  
  ARM/FOOTBRIDGE ARCHITECTURE
@@@ -665,12 -662,6 +665,12 @@@ T:       git://git.pengutronix.de/git/imx/lin
  F:    arch/arm/mach-mx*/
  F:    arch/arm/plat-mxc/
  
 +ARM/FREESCALE IMX51
 +M:    Amit Kucheria <amit.kucheria@canonical.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    arch/arm/mach-mx5/
 +
  ARM/GLOMATION GESBC9312SX MACHINE SUPPORT
  M:    Lennert Buytenhek <kernel@wantstofly.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -774,10 -765,11 +774,10 @@@ M:      Philipp Zabel <philipp.zabel@gmail.c
  S:    Maintained
  
  ARM/Marvell Loki/Kirkwood/MV78xx0/Orion SOC support
 -M:    Lennert Buytenhek <buytenh@marvell.com>
 -M:    Nicolas Pitre <nico@marvell.com>
 +M:    Lennert Buytenhek <kernel@wantstofly.org>
 +M:    Nicolas Pitre <nico@fluxnic.net>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 -T:    git git://git.marvell.com/orion
 -S:    Maintained
 +S:    Odd Fixes
  F:    arch/arm/mach-loki/
  F:    arch/arm/mach-kirkwood/
  F:    arch/arm/mach-mv78xx0/
@@@ -795,12 -787,12 +795,12 @@@ M:      Michael Petchkovsky <mkpetch@interno
  S:    Maintained
  
  ARM/NOMADIK ARCHITECTURE
 -M:     Alessandro Rubini <rubini@unipv.it>
 -M:     STEricsson <STEricsson_nomadik_linux@list.st.com>
 -L:     linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 -S:     Maintained
 -F:     arch/arm/mach-nomadik/
 -F:     arch/arm/plat-nomadik/
 +M:    Alessandro Rubini <rubini@unipv.it>
 +M:    STEricsson <STEricsson_nomadik_linux@list.st.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    arch/arm/mach-nomadik/
 +F:    arch/arm/plat-nomadik/
  
  ARM/OPENMOKO NEO FREERUNNER (GTA02) MACHINE SUPPORT
  M:    Nelson Castillo <arhuaco@freaks-unidos.net>
@@@ -812,7 -804,6 +812,7 @@@ ARM/QUALCOMM MSM MACHINE SUPPOR
  M:    David Brown <davidb@codeaurora.org>
  M:    Daniel Walker <dwalker@codeaurora.org>
  M:    Bryan Huntsman <bryanh@codeaurora.org>
 +L:    linux-arm-msm@vger.kernel.org
  F:    arch/arm/mach-msm/
  F:    drivers/video/msm/
  F:    drivers/mmc/host/msm_sdcc.c
@@@ -944,16 -935,6 +944,16 @@@ W:       http://www.fluff.org/ben/linux
  S:    Maintained
  F:    arch/arm/mach-s3c6410/
  
 +ARM/SHMOBILE ARM ARCHITECTURE
 +M:    Paul Mundt <lethal@linux-sh.org>
 +M:    Magnus Damm <magnus.damm@gmail.com>
 +L:    linux-sh@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/genesis-2.6.git
 +W:    http://oss.renesas.com
 +S:    Supported
 +F:    arch/arm/mach-shmobile/
 +F:    drivers/sh/
 +
  ARM/TECHNOLOGIC SYSTEMS TS7250 MACHINE SUPPORT
  M:    Lennert Buytenhek <kernel@wantstofly.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -969,28 -950,6 +969,28 @@@ M:       Wan ZongShun <mcuos.com@gmail.com
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  W:    http://www.mcuos.com
  S:    Maintained
 +F:    arch/arm/mach-w90x900/
 +F:    arch/arm/mach-nuc93x/
 +F:    drivers/input/keyboard/w90p910_keypad.c
 +F:    drivers/input/touchscreen/w90p910_ts.c
 +F:    drivers/watchdog/nuc900_wdt.c
 +F:    drivers/net/arm/w90p910_ether.c
 +F:    drivers/mtd/nand/w90p910_nand.c
 +F:    drivers/rtc/rtc-nuc900.c
 +F:    drivers/spi/spi_nuc900.c
 +F:    drivers/usb/host/ehci-w90x900.c
 +F:    drivers/video/nuc900fb.c
 +F:    drivers/sound/soc/nuc900/
 +
 +ARM/U300 MACHINE SUPPORT
 +M:    Linus Walleij <linus.walleij@stericsson.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Supported
 +F:    arch/arm/mach-u300/
 +F:    drivers/i2c/busses/i2c-stu300.c
 +F:    drivers/rtc/rtc-coh901331.c
 +F:    drivers/watchdog/coh901327_wdt.c
 +F:    drivers/dma/coh901318*
  
  ARM/U8500 ARM ARCHITECTURE
  M:    Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
@@@ -1005,32 -964,10 +1005,32 @@@ W:    http://www.arm.linux.org.uk
  S:    Maintained
  F:    arch/arm/vfp/
  
 +ARM/VOIPAC PXA270 SUPPORT
 +M:    Marek Vasut <marek.vasut@gmail.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    arch/arm/mach-pxa/vpac270.c
 +F:    arch/arm/mach-pxa/include/mach-pxa/vpac270.h
 +
 +ARM/ZIPIT Z2 SUPPORT
 +M:    Marek Vasut <marek.vasut@gmail.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    arch/arm/mach-pxa/z2.c
 +F:    arch/arm/mach-pxa/include/mach-pxa/z2.h
 +
 +ASC7621 HARDWARE MONITOR DRIVER
 +M:    George Joseph <george.joseph@fairview5.com>
 +L:    lm-sensors@lm-sensors.org
 +S:    Maintained
 +F:    Documentation/hwmon/asc7621
 +F:    drivers/hwmon/asc7621.c
 +
  ASUS ACPI EXTRAS DRIVER
  M:    Corentin Chary <corentincj@iksaif.net>
  M:    Karol Kozimor <sziwan@users.sourceforge.net>
  L:    acpi4asus-user@lists.sourceforge.net
 +L:    platform-driver-x86@vger.kernel.org
  W:    http://acpi4asus.sf.net
  S:    Maintained
  F:    drivers/platform/x86/asus_acpi.c
@@@ -1044,7 -981,6 +1044,7 @@@ F:       drivers/hwmon/asb100.
  ASUS LAPTOP EXTRAS DRIVER
  M:    Corentin Chary <corentincj@iksaif.net>
  L:    acpi4asus-user@lists.sourceforge.net
 +L:    platform-driver-x86@vger.kernel.org
  W:    http://acpi4asus.sf.net
  S:    Maintained
  F:    drivers/platform/x86/asus-laptop.c
@@@ -1286,13 -1222,6 +1286,13 @@@ W:    http://blackfin.uclinux.or
  S:    Supported
  F:    drivers/rtc/rtc-bfin.c
  
 +BLACKFIN SDH DRIVER
 +M:    Cliff Cai <cliff.cai@analog.com>
 +L:    uclinux-dist-devel@blackfin.uclinux.org
 +W:    http://blackfin.uclinux.org
 +S:    Supported
 +F:    drivers/mmc/host/bfin_sdh.c
 +
  BLACKFIN SERIAL DRIVER
  M:    Sonic Zhang <sonic.zhang@analog.com>
  L:    uclinux-dist-devel@blackfin.uclinux.org
@@@ -1399,7 -1328,6 +1399,7 @@@ BTRFS FILE SYSTE
  M:    Chris Mason <chris.mason@oracle.com>
  L:    linux-btrfs@vger.kernel.org
  W:    http://btrfs.wiki.kernel.org/
 +Q:    http://patchwork.kernel.org/project/linux-btrfs/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable.git
  S:    Maintained
  F:    Documentation/filesystems/btrfs.txt
@@@ -1440,30 -1368,20 +1440,30 @@@ F:   arch/x86/include/asm/calgary.
  F:    arch/x86/include/asm/tce.h
  
  CAN NETWORK LAYER
 -M:    Urs Thuermann <urs.thuermann@volkswagen.de>
 +M:    Oliver Hartkopp <socketcan@hartkopp.net>
  M:    Oliver Hartkopp <oliver.hartkopp@volkswagen.de>
 -L:    socketcan-core@lists.berlios.de (subscribers-only)
 +M:    Urs Thuermann <urs.thuermann@volkswagen.de>
 +L:    socketcan-core@lists.berlios.de
 +L:    netdev@vger.kernel.org
  W:    http://developer.berlios.de/projects/socketcan/
  S:    Maintained
 -F:    drivers/net/can/
 -F:    include/linux/can/
 +F:    net/can/
  F:    include/linux/can.h
 +F:    include/linux/can/core.h
 +F:    include/linux/can/bcm.h
 +F:    include/linux/can/raw.h
  
  CAN NETWORK DRIVERS
  M:    Wolfgang Grandegger <wg@grandegger.com>
 -L:    socketcan-core@lists.berlios.de (subscribers-only)
 +L:    socketcan-core@lists.berlios.de
 +L:    netdev@vger.kernel.org
  W:    http://developer.berlios.de/projects/socketcan/
  S:    Maintained
 +F:    drivers/net/can/
 +F:    include/linux/can/dev.h
 +F:    include/linux/can/error.h
 +F:    include/linux/can/netlink.h
 +F:    include/linux/can/platform/
  
  CELL BROADBAND ENGINE ARCHITECTURE
  M:    Arnd Bergmann <arnd@arndb.de>
@@@ -1476,15 -1394,6 +1476,15 @@@ F:    arch/powerpc/include/asm/spu*.
  F:    arch/powerpc/oprofile/*cell*
  F:    arch/powerpc/platforms/cell/
  
 +CEPH DISTRIBUTED FILE SYSTEM CLIENT
 +M:    Sage Weil <sage@newdream.net>
 +L:    ceph-devel@vger.kernel.org
 +W:    http://ceph.newdream.net/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client.git
 +S:    Supported
 +F:    Documentation/filesystems/ceph.txt
 +F:    fs/ceph
 +
  CERTIFIED WIRELESS USB (WUSB) SUBSYSTEM:
  M:    David Vrabel <david.vrabel@csr.com>
  L:    linux-usb@vger.kernel.org
@@@ -1526,10 -1435,9 +1526,10 @@@ M:    Andy Whitcroft <apw@canonical.com
  S:    Supported
  F:    scripts/checkpatch.pl
  
 -CISCO 10G ETHERNET DRIVER
 +CISCO VIC ETHERNET NIC DRIVER
  M:    Scott Feldman <scofeldm@cisco.com>
 -M:    Joe Eykholt <jeykholt@cisco.com>
 +M:    Vasanthy Kolluri <vkolluri@cisco.com>
 +M:    Roopa Prabhu <roprabhu@cisco.com>
  S:    Supported
  F:    drivers/net/enic/
  
@@@ -1565,7 -1473,6 +1565,7 @@@ F:      drivers/scsi/fnic
  CMPC ACPI DRIVER
  M:    Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
  M:    Daniel Oliveira Nascimento <don@syst.com.br>
 +L:    platform-driver-x86@vger.kernel.org
  S:    Supported
  F:    drivers/platform/x86/classmate-laptop.c
  
@@@ -1584,7 -1491,6 +1584,7 @@@ M:      Steve French <sfrench@samba.org
  L:    linux-cifs-client@lists.samba.org (moderated for non-subscribers)
  L:    samba-technical@lists.samba.org (moderated for non-subscribers)
  W:    http://linux-cifs.samba.org/
 +Q:    http://patchwork.ozlabs.org/project/linux-cifs-client/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6.git
  S:    Supported
  F:    Documentation/filesystems/cifs.txt
@@@ -1610,7 -1516,6 +1610,7 @@@ F:      drivers/pci/hotplug/cpcihp_generic.
  
  COMPAL LAPTOP SUPPORT
  M:    Cezary Jackiewicz <cezary.jackiewicz@gmail.com>
 +L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    drivers/platform/x86/compal-laptop.c
  
@@@ -1755,20 -1660,6 +1755,20 @@@ W:    http://www.openfabrics.or
  S:    Supported
  F:    drivers/infiniband/hw/cxgb3/
  
 +CXGB4 ETHERNET DRIVER (CXGB4)
 +M:    Dimitris Michailidis <dm@chelsio.com>
 +L:    netdev@vger.kernel.org
 +W:    http://www.chelsio.com
 +S:    Supported
 +F:    drivers/net/cxgb4/
 +
 +CXGB4 IWARP RNIC DRIVER (IW_CXGB4)
 +M:    Steve Wise <swise@chelsio.com>
 +L:    linux-rdma@vger.kernel.org
 +W:    http://www.openfabrics.org
 +S:    Supported
 +F:    drivers/infiniband/hw/cxgb4/
 +
  CYBERPRO FB DRIVER
  M:    Russell King <linux@arm.linux.org.uk>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -1842,9 -1733,10 +1842,9 @@@ F:     include/linux/tfrc.
  F:    net/dccp/
  
  DECnet NETWORK LAYER
 -M:    Christine Caulfield <christine.caulfield@googlemail.com>
  W:    http://linux-decnet.sourceforge.net
  L:    linux-decnet-user@lists.sourceforge.net
 -S:    Maintained
 +S:    Orphan
  F:    Documentation/networking/decnet.txt
  F:    net/decnet/
  
@@@ -1855,7 -1747,6 +1855,7 @@@ F:      drivers/net/defxx.
  
  DELL LAPTOP DRIVER
  M:    Matthew Garrett <mjg59@srcf.ucam.org>
 +L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    drivers/platform/x86/dell-laptop.c
  
@@@ -1885,7 -1776,6 +1885,7 @@@ DEVICE-MAPPER  (LVM
  P:    Alasdair Kergon
  L:    dm-devel@redhat.com
  W:    http://sources.redhat.com/dm
 +Q:    http://patchwork.kernel.org/project/dm-devel/list/
  S:    Maintained
  F:    Documentation/device-mapper/
  F:    drivers/md/dm*
@@@ -1976,17 -1866,17 +1976,17 @@@ F:   drivers/scsi/dpt
  F:    drivers/scsi/dpt/
  
  DRBD DRIVER
 -P:     Philipp Reisner
 -P:     Lars Ellenberg
 -M:     drbd-dev@lists.linbit.com
 -L:     drbd-user@lists.linbit.com
 -W:     http://www.drbd.org
 -T:     git git://git.drbd.org/linux-2.6-drbd.git drbd
 -T:     git git://git.drbd.org/drbd-8.3.git
 -S:     Supported
 -F:     drivers/block/drbd/
 -F:     lib/lru_cache.c
 -F:     Documentation/blockdev/drbd/
 +P:    Philipp Reisner
 +P:    Lars Ellenberg
 +M:    drbd-dev@lists.linbit.com
 +L:    drbd-user@lists.linbit.com
 +W:    http://www.drbd.org
 +T:    git git://git.drbd.org/linux-2.6-drbd.git drbd
 +T:    git git://git.drbd.org/drbd-8.3.git
 +S:    Supported
 +F:    drivers/block/drbd/
 +F:    lib/lru_cache.c
 +F:    Documentation/blockdev/drbd/
  
  DRIVER CORE, KOBJECTS, AND SYSFS
  M:    Greg Kroah-Hartman <gregkh@suse.de>
@@@ -2000,7 -1890,7 +2000,7 @@@ F:      lib/kobj
  
  DRM DRIVERS
  M:    David Airlie <airlied@linux.ie>
 -L:    dri-devel@lists.sourceforge.net
 +L:    dri-devel@lists.freedesktop.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git
  S:    Maintained
  F:    drivers/gpu/drm/
@@@ -2139,7 -2029,6 +2139,7 @@@ F:      drivers/edac/r82600_edac.
  EEEPC LAPTOP EXTRAS DRIVER
  M:    Corentin Chary <corentincj@iksaif.net>
  L:    acpi4asus-user@lists.sourceforge.net
 +L:    platform-driver-x86@vger.kernel.org
  W:    http://acpi4asus.sf.net
  S:    Maintained
  F:    drivers/platform/x86/eeepc-laptop.c
@@@ -2199,7 -2088,6 +2199,7 @@@ F:      drivers/net/eexpress.
  ETHERNET BRIDGE
  M:    Stephen Hemminger <shemminger@linux-foundation.org>
  L:    bridge@lists.linux-foundation.org
 +L:    netdev@vger.kernel.org
  W:    http://www.linux-foundation.org/en/Net:Bridge
  S:    Maintained
  F:    include/linux/netfilter_bridge/
@@@ -2231,7 -2119,6 +2231,7 @@@ M:      "Theodore Ts'o" <tytso@mit.edu
  M:    Andreas Dilger <adilger@sun.com>
  L:    linux-ext4@vger.kernel.org
  W:    http://ext4.wiki.kernel.org
 +Q:    http://patchwork.ozlabs.org/project/linux-ext4/list/
  S:    Maintained
  F:    Documentation/filesystems/ext4.txt
  F:    fs/ext4/
@@@ -2255,17 -2142,6 +2255,17 @@@ S:    Supporte
  F:    Documentation/fault-injection/
  F:    lib/fault-inject.c
  
 +FCOE SUBSYSTEM (libfc, libfcoe, fcoe)
 +M:    Robert Love <robert.w.love@intel.com>
 +L:    devel@open-fcoe.org
 +W:    www.Open-FCoE.org
 +S:    Supported
 +F:    drivers/scsi/libfc/
 +F:    drivers/scsi/fcoe/
 +F:    include/scsi/fc/
 +F:    include/scsi/libfc.h
 +F:    include/scsi/libfcoe.h
 +
  FILE LOCKING (flock() and fcntl()/lockf())
  M:    Matthew Wilcox <matthew@wil.cx>
  L:    linux-fsdevel@vger.kernel.org
@@@ -2420,7 -2296,7 +2420,7 @@@ F:      arch/frv
  
  FUJITSU LAPTOP EXTRAS
  M:    Jonathan Woithe <jwoithe@physics.adelaide.edu.au>
 -L:    linux-acpi@vger.kernel.org
 +L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    drivers/platform/x86/fujitsu-laptop.c
  
@@@ -2497,12 -2373,6 +2497,12 @@@ F:    Documentation/isdn/README.gigase
  F:    drivers/isdn/gigaset/
  F:    include/linux/gigaset_dev.h
  
 +GRETH 10/100/1G Ethernet MAC device driver
 +M:    Kristoffer Glembo <kristoffer@gaisler.com>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/net/greth*
 +
  HARD DRIVE ACTIVE PROTECTION SYSTEM (HDAPS) DRIVER
  M:    Frank Seidel <frank@f-seidel.de>
  L:    lm-sensors@lm-sensors.org
@@@ -2524,12 -2394,6 +2524,12 @@@ L:    linuxppc-dev@ozlabs.or
  S:    Odd Fixes
  F:    drivers/char/hvc_*
  
 +iSCSI BOOT FIRMWARE TABLE (iBFT) DRIVER
 +M:    Peter Jones <pjones@redhat.com>
 +M:    Konrad Rzeszutek Wilk <konrad@kernel.org>
 +S:    Maintained
 +F:    drivers/firmware/iscsi_ibft*
 +
  GSPCA FINEPIX SUBDRIVER
  M:    Frank Zago <frank@zago.net>
  L:    linux-media@vger.kernel.org
@@@ -2602,6 -2466,13 +2602,6 @@@ L:     linux-parisc@vger.kernel.or
  S:    Maintained
  F:    sound/parisc/harmony.*
  
 -HAYES ESP SERIAL DRIVER
 -M:    "Andrew J. Robinson" <arobinso@nyx.net>
 -W:    http://www.nyx.net/~arobinso
 -S:    Maintained
 -F:    Documentation/serial/hayes-esp.txt
 -F:    drivers/char/esp.c
 -
  HEWLETT-PACKARD SMART2 RAID DRIVER
  M:    Chirag Kantharia <chirag.kantharia@hp.com>
  L:    iss_storagedev@hp.com
@@@ -2691,7 -2562,6 +2691,7 @@@ F:      drivers/net/wireless/hostap
  
  HP COMPAQ TC1100 TABLET WMI EXTRAS DRIVER
  M:    Carlos Corbacho <carlos@strangeworlds.co.uk>
 +L:    platform-driver-x86@vger.kernel.org
  S:    Odd Fixes
  F:    drivers/platform/x86/tc1100-wmi.c
  
@@@ -2707,12 -2577,16 +2707,12 @@@ F:   Documentation/timers/hpet.tx
  F:    drivers/char/hpet.c
  F:    include/linux/hpet.h
  
 -HPET: i386
 -M:    "Venkatesh Pallipadi (Venki)" <venkatesh.pallipadi@intel.com>
 +HPET: x86
 +M:    "Venkatesh Pallipadi (Venki)" <venki@google.com>
  S:    Maintained
  F:    arch/x86/kernel/hpet.c
  F:    arch/x86/include/asm/hpet.h
  
 -HPET: x86_64
 -M:    Vojtech Pavlik <vojtech@suse.cz>
 -S:    Maintained
 -
  HPET: ACPI
  M:    Bob Picco <bob.picco@hp.com>
  S:    Maintained
@@@ -2753,7 -2627,6 +2753,7 @@@ M:      "Ben Dooks (embedded platforms)" <be
  L:    linux-i2c@vger.kernel.org
  W:    http://i2c.wiki.kernel.org/
  T:    quilt kernel.org/pub/linux/kernel/people/jdelvare/linux-2.6/jdelvare-i2c/
 +T:    git git://git.fluff.org/bjdooks/linux.git
  S:    Maintained
  F:    Documentation/i2c/
  F:    drivers/i2c/
@@@ -2807,7 -2680,6 +2807,7 @@@ F:      drivers/scsi/ips.
  IDE SUBSYSTEM
  M:    "David S. Miller" <davem@davemloft.net>
  L:    linux-ide@vger.kernel.org
 +Q:    http://patchwork.ozlabs.org/project/linux-ide/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6.git
  S:    Maintained
  F:    Documentation/ide/
@@@ -2862,7 -2734,6 +2862,7 @@@ M:      Sean Hefty <sean.hefty@intel.com
  M:    Hal Rosenstock <hal.rosenstock@gmail.com>
  L:    linux-rdma@vger.kernel.org
  W:    http://www.openib.org/
 +Q:    http://patchwork.kernel.org/project/linux-rdma/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git
  S:    Supported
  F:    Documentation/infiniband/
@@@ -2882,20 -2753,12 +2882,20 @@@ INPUT (KEYBOARD, MOUSE, JOYSTICK, TOUCH
  M:    Dmitry Torokhov <dmitry.torokhov@gmail.com>
  M:    Dmitry Torokhov <dtor@mail.ru>
  L:    linux-input@vger.kernel.org
 +Q:    http://patchwork.kernel.org/project/linux-input/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git
  S:    Maintained
  F:    drivers/input/
  
 +INTEL IDLE DRIVER
 +M:    Len Brown <lenb@kernel.org>
 +L:    linux-pm@lists.linux-foundation.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6.git
 +S:    Supported
 +F:    drivers/idle/intel_idle.c
 +
  INTEL FRAMEBUFFER DRIVER (excluding 810 and 815)
 -M:    Sylvain Meyer <sylvain.meyer@worldonline.fr>
 +M:    Maik Broemme <mbroemme@plusserver.de>
  L:    linux-fbdev@vger.kernel.org
  S:    Maintained
  F:    Documentation/fb/intelfb.txt
@@@ -2909,7 -2772,7 +2909,7 @@@ F:      drivers/video/i810
  
  INTEL MENLOW THERMAL DRIVER
  M:    Sujith Thomas <sujith.thomas@intel.com>
 -L:    linux-acpi@vger.kernel.org
 +L:    platform-driver-x86@vger.kernel.org
  W:    http://www.lesswatts.org/projects/acpi/
  S:    Supported
  F:    drivers/platform/x86/intel_menlow.c
@@@ -2997,17 -2860,6 +2997,17 @@@ S:    Odd Fixe
  F:    Documentation/networking/README.ipw2200
  F:    drivers/net/wireless/ipw2x00/ipw2200.*
  
 +INTEL(R) TRUSTED EXECUTION TECHNOLOGY (TXT)
 +M:    Joseph Cihula <joseph.cihula@intel.com>
 +M:    Shane Wang <shane.wang@intel.com>
 +L:    tboot-devel@lists.sourceforge.net
 +W:    http://tboot.sourceforge.net
 +T:    Mercurial http://www.bughost.org/repos.hg/tboot.hg
 +S:    Supported
 +F:    Documentation/intel_txt.txt
 +F:    include/linux/tboot.h
 +F:    arch/x86/kernel/tboot.c
 +
  INTEL WIRELESS WIMAX CONNECTION 2400
  M:    Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
  M:    linux-wimax@intel.com
@@@ -3057,9 -2909,10 +3057,9 @@@ F:     net/ipv4/netfilter/ipt_MASQUERADE.
  IP1000A 10/100/1000 GIGABIT ETHERNET DRIVER
  M:    Francois Romieu <romieu@fr.zoreil.com>
  M:    Sorbica Shieh <sorbica@icplus.com.tw>
 -M:    Jesse Huang <jesse@icplus.com.tw>
  L:    netdev@vger.kernel.org
  S:    Maintained
 -F:    drivers/net/ipg.c
 +F:    drivers/net/ipg.*
  
  IPATH DRIVER
  M:    Ralph Campbell <infinipath@qlogic.com>
@@@ -3141,7 -2994,6 +3141,7 @@@ F:      include/scsi/*iscsi
  ISDN SUBSYSTEM
  M:    Karsten Keil <isdn@linux-pingi.de>
  L:    isdn4linux@listserv.isdn4linux.de (subscribers-only)
 +L:    netdev@vger.kernel.org
  W:    http://www.isdn4linux.de
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kkeil/isdn-2.6.git
  S:    Maintained
@@@ -3157,13 -3009,6 +3157,13 @@@ W:    http://www.melware.d
  S:    Maintained
  F:    drivers/isdn/hardware/eicon/
  
 +IT87 HARDWARE MONITORING DRIVER
 +M:    Jean Delvare <khali@linux-fr.org>
 +L:    lm-sensors@lm-sensors.org
 +S:    Maintained
 +F:    Documentation/hwmon/it87
 +F:    drivers/hwmon/it87.c
 +
  IVTV VIDEO4LINUX DRIVER
  M:    Andy Walls <awalls@radix.net>
  L:    ivtv-devel@ivtvdriver.org (moderated for non-subscribers)
@@@ -3217,7 -3062,6 +3217,7 @@@ F:      drivers/hwmon/k8temp.
  KCONFIG
  M:    Roman Zippel <zippel@linux-m68k.org>
  L:    linux-kbuild@vger.kernel.org
 +Q:    http://patchwork.kernel.org/project/linux-kbuild/list/
  S:    Maintained
  F:    Documentation/kbuild/kconfig-language.txt
  F:    scripts/kconfig/
@@@ -3242,7 -3086,7 +3242,7 @@@ L:      autofs@linux.kernel.or
  S:    Maintained
  F:    fs/autofs4/
  
- KERNEL BUILD
+ KERNEL BUILD + files below scripts/ (unless maintained elsewhere)
  M:    Michal Marek <mmarek@suse.cz>
  T:    git git://repo.or.cz/linux-kbuild.git for-next
  T:    git git://repo.or.cz/linux-kbuild.git for-linus
@@@ -3251,6 -3095,9 +3251,9 @@@ S:      Maintaine
  F:    Documentation/kbuild/
  F:    Makefile
  F:    scripts/Makefile.*
+ F:    scripts/basic/
+ F:    scripts/mk*
+ F:    scripts/package/
  
  KERNEL JANITORS
  L:    kernel-janitors@vger.kernel.org
@@@ -3292,7 -3139,7 +3295,7 @@@ F:      arch/x86/include/asm/svm.
  F:    arch/x86/kvm/svm.c
  
  KERNEL VIRTUAL MACHINE (KVM) FOR POWERPC
 -M:    Hollis Blanchard <hollisb@us.ibm.com>
 +M:    Alexander Graf <agraf@suse.de>
  L:    kvm-ppc@vger.kernel.org
  W:    http://kvm.qumranet.com
  S:    Supported
@@@ -3328,27 -3175,15 +3331,27 @@@ S:   Maintaine
  F:    include/linux/kexec.h
  F:    kernel/kexec.c
  
 -KGDB
 +KEYS/KEYRINGS:
 +M:    David Howells <dhowells@redhat.com>
 +L:    keyrings@linux-nfs.org
 +S:    Maintained
 +F:    Documentation/keys.txt
 +F:    include/linux/key.h
 +F:    include/linux/key-type.h
 +F:    include/keys/
 +F:    security/keys/
 +
 +KGDB / KDB /debug_core
  M:    Jason Wessel <jason.wessel@windriver.com>
 +W:    http://kgdb.wiki.kernel.org/
  L:    kgdb-bugreport@lists.sourceforge.net
  S:    Maintained
  F:    Documentation/DocBook/kgdb.tmpl
  F:    drivers/misc/kgdbts.c
  F:    drivers/serial/kgdboc.c
 +F:    include/linux/kdb.h
  F:    include/linux/kgdb.h
 -F:    kernel/kgdb.c
 +F:    kernel/debug/
  
  KMEMCHECK
  M:    Vegard Nossum <vegardno@ifi.uio.no>
@@@ -3443,7 -3278,6 +3446,7 @@@ M:      Benjamin Herrenschmidt <benh@kernel.
  M:    Paul Mackerras <paulus@samba.org>
  W:    http://www.penguinppc.org/
  L:    linuxppc-dev@ozlabs.org
 +Q:    http://patchwork.ozlabs.org/project/linuxppc-dev/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git
  S:    Supported
  F:    Documentation/powerpc/
@@@ -3564,13 -3398,6 +3567,13 @@@ S:    Maintaine
  F:    Documentation/ldm.txt
  F:    fs/partitions/ldm.*
  
 +LogFS
 +M:    Joern Engel <joern@logfs.org>
 +L:    logfs@logfs.org
 +W:    logfs.org
 +S:    Maintained
 +F:    fs/logfs/
 +
  LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI)
  M:    Eric Moore <Eric.Moore@lsi.com>
  M:    support@lsi.com
@@@ -3587,10 -3414,8 +3590,10 @@@ S:    Maintaine
  F:    drivers/scsi/sym53c8xx_2/
  
  LTP (Linux Test Project)
 -M:    Subrata Modak <subrata@linux.vnet.ibm.com>
 +M:    Rishikesh K Rajak <risrajak@linux.vnet.ibm.com>
 +M:    Garrett Cooper <yanegomi@gmail.com>
  M:    Mike Frysinger <vapier@gentoo.org>
 +M:    Subrata Modak <subrata@linux.vnet.ibm.com>
  L:    ltp-list@lists.sourceforge.net (subscribers-only)
  W:    http://ltp.sourceforge.net/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/galak/ltp.git
@@@ -3666,22 -3491,21 +3669,22 @@@ S:   Maintaine
  F:    drivers/net/wireless/libertas/
  
  MARVELL MV643XX ETHERNET DRIVER
 -M:    Lennert Buytenhek <buytenh@marvell.com>
 +M:    Lennert Buytenhek <buytenh@wantstofly.org>
  L:    netdev@vger.kernel.org
 -S:    Supported
 +S:    Maintained
  F:    drivers/net/mv643xx_eth.*
  F:    include/linux/mv643xx.h
  
  MARVELL MWL8K WIRELESS DRIVER
 -M:    Lennert Buytenhek <buytenh@marvell.com>
 +M:    Lennert Buytenhek <buytenh@wantstofly.org>
  L:    linux-wireless@vger.kernel.org
 -S:    Supported
 +S:    Maintained
  F:    drivers/net/wireless/mwl8k.c
  
  MARVELL SOC MMC/SD/SDIO CONTROLLER DRIVER
  M:    Nicolas Pitre <nico@fluxnic.net>
 -S:    Maintained
 +S:    Odd Fixes
 +F: drivers/mmc/host/mvsdio.*
  
  MARVELL YUKON / SYSKONNECT DRIVER
  M:    Mirko Lindner <mlindner@syskonnect.de>
@@@ -3708,7 -3532,6 +3711,7 @@@ M:      Mauro Carvalho Chehab <mchehab@infra
  P:    LinuxTV.org Project
  L:    linux-media@vger.kernel.org
  W:    http://linuxtv.org
 +Q:    http://patchwork.kernel.org/project/linux-media/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
  S:    Maintained
  F:    Documentation/dvb/
@@@ -3736,7 -3559,7 +3739,7 @@@ F:      mm
  
  MEMORY RESOURCE CONTROLLER
  M:    Balbir Singh <balbir@linux.vnet.ibm.com>
 -M:    Pavel Emelyanov <xemul@openvz.org>
 +M:    Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
  M:    KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
  L:    linux-mm@kvack.org
  S:    Maintained
@@@ -3744,9 -3567,8 +3747,9 @@@ F:      mm/memcontrol.
  
  MEMORY TECHNOLOGY DEVICES (MTD)
  M:    David Woodhouse <dwmw2@infradead.org>
 -W:    http://www.linux-mtd.infradead.org/
  L:    linux-mtd@lists.infradead.org
 +W:    http://www.linux-mtd.infradead.org/
 +Q:    http://patchwork.ozlabs.org/project/linux-mtd/list/
  T:    git git://git.infradead.org/mtd-2.6.git
  S:    Maintained
  F:    drivers/mtd/
@@@ -3817,7 -3639,6 +3820,7 @@@ F:      drivers/char/mxser.
  
  MSI LAPTOP SUPPORT
  M:    Lennart Poettering <mzxreary@0pointer.de>
 +L:    platform-driver-x86@vger.kernel.org
  W:    https://tango.0pointer.de/mailman/listinfo/s270-linux
  W:    http://0pointer.de/lennart/tchibo.html
  S:    Maintained
@@@ -3825,7 -3646,6 +3828,7 @@@ F:      drivers/platform/x86/msi-laptop.
  
  MSI WMI SUPPORT
  M:    Anisse Astier <anisse@astier.eu>
 +L:    platform-driver-x86@vger.kernel.org
  S:    Supported
  F:    drivers/platform/x86/msi-wmi.c
  
@@@ -3909,6 -3729,7 +3912,6 @@@ M:      Ramkrishna Vepa <ram.vepa@neterion.c
  M:    Rastapur Santosh <santosh.rastapur@neterion.com>
  M:    Sivakumar Subramani <sivakumar.subramani@neterion.com>
  M:    Sreenivasa Honnur <sreenivasa.honnur@neterion.com>
 -M:    Anil Murthy <anil.murthy@neterion.com>
  L:    netdev@vger.kernel.org
  W:    http://trac.neterion.com/cgi-bin/trac.cgi/wiki/Linux?Anonymous
  W:    http://trac.neterion.com/cgi-bin/trac.cgi/wiki/X3100Linux?Anonymous
@@@ -4005,7 -3826,6 +4008,7 @@@ S:      Maintaine
  NETWORKING [WIRELESS]
  M:    "John W. Linville" <linville@tuxdriver.com>
  L:    linux-wireless@vger.kernel.org
 +Q:    http://patchwork.kernel.org/project/linux-wireless/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git
  S:    Maintained
  F:    net/mac80211/
@@@ -4013,14 -3833,12 +4016,14 @@@ F:   net/rfkill
  F:    net/wireless/
  F:    include/net/ieee80211*
  F:    include/linux/wireless.h
 +F:    include/linux/iw_handler.h
  F:    drivers/net/wireless/
  
  NETWORKING DRIVERS
  L:    netdev@vger.kernel.org
  W:    http://www.linuxfoundation.org/en/Net
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6.git
  S:    Odd Fixes
  F:    drivers/net/
  F:    include/linux/if_*
@@@ -4099,7 -3917,6 +4102,7 @@@ M:      Tony Lindgren <tony@atomide.com
  L:    linux-omap@vger.kernel.org
  W:    http://www.muru.com/linux/omap/
  W:    http://linux.omap.com/
 +Q:    http://patchwork.kernel.org/project/linux-omap/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git
  S:    Maintained
  F:    arch/arm/*omap*/
@@@ -4222,7 -4039,6 +4225,7 @@@ OPROFIL
  M:    Robert Richter <robert.richter@amd.com>
  L:    oprofile-list@lists.sf.net
  S:    Maintained
 +F:    arch/*/include/asm/oprofile*.h
  F:    arch/*/oprofile/
  F:    drivers/oprofile/
  F:    include/linux/oprofile.h
@@@ -4281,7 -4097,6 +4284,7 @@@ F:      drivers/i2c/busses/i2c-pasemi.
  
  PANASONIC LAPTOP ACPI EXTRAS DRIVER
  M:    Harald Welte <laforge@gnumonks.org>
 +L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    drivers/platform/x86/panasonic-laptop.c
  
@@@ -4327,7 -4142,6 +4330,7 @@@ M:      Helge Deller <deller@gmx.de
  M:    "James E.J. Bottomley" <jejb@parisc-linux.org>
  L:    linux-parisc@vger.kernel.org
  W:    http://www.parisc-linux.org/
 +Q:    http://patchwork.kernel.org/project/linux-parisc/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6.git
  S:    Maintained
  F:    arch/parisc/
@@@ -4370,7 -4184,6 +4373,7 @@@ F:      Documentation/powerpc/eeh-pci-error-
  PCI SUBSYSTEM
  M:    Jesse Barnes <jbarnes@virtuousgeek.org>
  L:    linux-pci@vger.kernel.org
 +Q:    http://patchwork.kernel.org/project/linux-pci/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6.git
  S:    Supported
  F:    Documentation/PCI/
@@@ -4409,15 -4222,12 +4412,15 @@@ PERFORMANCE EVENTS SUBSYSTE
  M:    Peter Zijlstra <a.p.zijlstra@chello.nl>
  M:    Paul Mackerras <paulus@samba.org>
  M:    Ingo Molnar <mingo@elte.hu>
 +M:    Arnaldo Carvalho de Melo <acme@redhat.com>
  S:    Supported
 -F:    kernel/perf_event.c
 +F:    kernel/perf_event*.c
  F:    include/linux/perf_event.h
 -F:    arch/*/*/kernel/perf_event.c
 +F:    arch/*/kernel/perf_event*.c
 +F:    arch/*/kernel/*/perf_event*.c
 +F:    arch/*/kernel/*/*/perf_event*.c
  F:    arch/*/include/asm/perf_event.h
 -F:    arch/*/lib/perf_event.c
 +F:    arch/*/lib/perf_event*.c
  F:    arch/*/kernel/perf_callchain.c
  F:    tools/perf/
  
@@@ -4540,17 -4350,17 +4543,17 @@@ S:   Maintaine
  F:    drivers/ata/sata_promise.*
  
  PS3 NETWORK SUPPORT
 -M:    Geoff Levand <geoffrey.levand@am.sony.com>
 +M:    Geoff Levand <geoff@infradead.org>
  L:    netdev@vger.kernel.org
  L:    cbe-oss-dev@ozlabs.org
 -S:    Supported
 +S:    Maintained
  F:    drivers/net/ps3_gelic_net.*
  
  PS3 PLATFORM SUPPORT
 -M:    Geoff Levand <geoffrey.levand@am.sony.com>
 +M:    Geoff Levand <geoff@infradead.org>
  L:    linuxppc-dev@ozlabs.org
  L:    cbe-oss-dev@ozlabs.org
 -S:    Supported
 +S:    Maintained
  F:    arch/powerpc/boot/ps3*
  F:    arch/powerpc/include/asm/lv1call.h
  F:    arch/powerpc/include/asm/ps3*.h
@@@ -4612,13 -4422,6 +4615,13 @@@ L:    linux-arm-kernel@lists.infradead.or
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git
  S:    Maintained
  
 +MMP2 SUPPORT (aka ARMADA610)
 +M:    Haojian Zhuang <haojian.zhuang@marvell.com>
 +M:    Eric Miao <eric.y.miao@gmail.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git
 +S:    Maintained
 +
  PXA MMCI DRIVER
  S:    Orphan
  
@@@ -4635,14 -4438,6 +4638,14 @@@ S:    Supporte
  F:    Documentation/scsi/LICENSE.qla2xxx
  F:    drivers/scsi/qla2xxx/
  
 +QLOGIC QLA4XXX iSCSI DRIVER
 +M:    Ravi Anand <ravi.anand@qlogic.com>
 +M:    Vikas Chaudhary <vikas.chaudhary@qlogic.com>
 +M:    iscsi-driver@qlogic.com
 +L:    linux-scsi@vger.kernel.org
 +S:    Supported
 +F:    drivers/scsi/qla4xxx/
 +
  QLOGIC QLA3XXX NETWORK DRIVER
  M:    Ron Mercer <ron.mercer@qlogic.com>
  M:    linux-driver@qlogic.com
@@@ -4651,14 -4446,6 +4654,14 @@@ S:    Supporte
  F:    Documentation/networking/LICENSE.qla3xxx
  F:    drivers/net/qla3xxx.*
  
 +QLOGIC QLCNIC (1/10)Gb ETHERNET DRIVER
 +M:    Amit Kumar Salecha <amit.salecha@qlogic.com>
 +M:    Anirban Chakraborty <anirban.chakraborty@qlogic.com>
 +M:    linux-driver@qlogic.com
 +L:    netdev@vger.kernel.org
 +S:    Supported
 +F:    drivers/net/qlcnic/
 +
  QLOGIC QLGE 10Gb ETHERNET DRIVER
  M:    Ron Mercer <ron.mercer@qlogic.com>
  M:    linux-driver@qlogic.com
@@@ -4723,7 -4510,7 +4726,7 @@@ F:      drivers/net/wireless/ray
  RCUTORTURE MODULE
  M:    Josh Triplett <josh@freedesktop.org>
  M:    "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
 -S:    Maintained
 +S:    Supported
  F:    Documentation/RCU/torture.txt
  F:    kernel/rcutorture.c
  
@@@ -4748,12 -4535,11 +4751,12 @@@ M:   Dipankar Sarma <dipankar@in.ibm.com
  M:    "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
  W:    http://www.rdrop.com/users/paulmck/rclock/
  S:    Supported
 -F:    Documentation/RCU/rcu.txt
 -F:    Documentation/RCU/rcuref.txt
 -F:    include/linux/rcupdate.h
 -F:    include/linux/srcu.h
 -F:    kernel/rcupdate.c
 +F:    Documentation/RCU/
 +F:    include/linux/rcu*
 +F:    include/linux/srcu*
 +F:    kernel/rcu*
 +F:    kernel/srcu*
 +X:    kernel/rcutorture.c
  
  REAL TIME CLOCK DRIVER
  M:    Paul Gortmaker <p_gortmaker@yahoo.com>
@@@ -4765,7 -4551,6 +4768,7 @@@ F:      include/linux/rtc.
  REAL TIME CLOCK (RTC) SUBSYSTEM
  M:    Alessandro Zummo <a.zummo@towertech.it>
  L:    rtc-linux@googlegroups.com
 +Q:    http://patchwork.ozlabs.org/project/rtc-linux/list/
  S:    Maintained
  F:    Documentation/rtc.txt
  F:    drivers/rtc/
@@@ -4783,12 -4568,6 +4786,12 @@@ S:    Maintaine
  F:    Documentation/rfkill.txt
  F:    net/rfkill/
  
 +RICOH SMARTMEDIA/XD DRIVER
 +M:    Maxim Levitsky <maximlevitsky@gmail.com>
 +S:    Maintained
 +F:    drivers/mtd/nand/r822.c
 +F:    drivers/mtd/nand/r822.h
 +
  RISCOM8 DRIVER
  S:    Orphan
  F:    Documentation/serial/riscom8.txt
@@@ -4843,9 -4622,6 +4846,9 @@@ W:      http://www.ibm.com/developerworks/li
  S:    Supported
  F:    arch/s390/
  F:    drivers/s390/
 +F:    fs/partitions/ibm.c
 +F:    Documentation/s390/
 +F:    Documentation/DocBook/s390*
  
  S390 NETWORK DRIVERS
  M:    Ursula Braun <ursula.braun@de.ibm.com>
@@@ -4867,11 -4643,12 +4870,11 @@@ F:   drivers/s390/crypto
  
  S390 ZFCP DRIVER
  M:    Christof Schmitt <christof.schmitt@de.ibm.com>
 -M:    Martin Peschke <mp3@de.ibm.com>
 +M:    Swen Schillig <swen@vnet.ibm.com>
  M:    linux390@de.ibm.com
  L:    linux-s390@vger.kernel.org
  W:    http://www.ibm.com/developerworks/linux/linux390/
  S:    Supported
 -F:    Documentation/s390/zfcpdump.txt
  F:    drivers/s390/scsi/zfcp_*
  
  S390 IUCV NETWORK LAYER
@@@ -4900,13 -4677,6 +4903,13 @@@ F:    drivers/media/common/saa7146
  F:    drivers/media/video/*7146*
  F:    include/media/*7146*
  
 +TLG2300 VIDEO4LINUX-2 DRIVER
 +M:    Huang Shijie <shijie8@gmail.com>
 +M:    Kang Yong <kangyong@telegent.com>
 +M:    Zhang Xiaobing <xbzhang@telegent.com>
 +S:    Supported
 +F:    drivers/media/video/tlg2300
 +
  SC1200 WDT DRIVER
  M:    Zwane Mwaikambo <zwane@arm.linux.org.uk>
  S:    Maintained
@@@ -5014,12 -4784,6 +5017,12 @@@ L:    linux-mmc@vger.kernel.or
  S:    Maintained
  F:    drivers/mmc/host/sdhci-s3c.c
  
 +SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) ST SPEAR DRIVER
 +M:    Viresh Kumar <viresh.kumar@st.com>
 +L:    linux-mmc@vger.kernel.org
 +S:    Maintained
 +F:    drivers/mmc/host/sdhci-spear.c
 +
  SECURITY SUBSYSTEM
  M:    James Morris <jmorris@namei.org>
  L:    linux-security-module@vger.kernel.org (suggested Cc:)
@@@ -5068,8 -4832,6 +5071,8 @@@ F:      drivers/scsi/be2iscsi
  SERVER ENGINES 10Gbps NIC - BladeEngine 2 DRIVER
  M:    Sathya Perla <sathyap@serverengines.com>
  M:    Subbu Seetharaman <subbus@serverengines.com>
 +M:    Sarveshwar Bandi <sarveshwarb@serverengines.com>
 +M:    Ajit Khaparde <ajitk@serverengines.com>
  L:    netdev@vger.kernel.org
  W:    http://www.serverengines.com
  S:    Supported
@@@ -5147,7 -4909,6 +5150,7 @@@ F:      drivers/*/*/*s3c2410
  TI DAVINCI MACHINE SUPPORT
  P:    Kevin Hilman
  M:    davinci-linux-open-source@linux.davincidsp.com
 +Q:    http://patchwork.kernel.org/project/linux-davinci/list/
  S:    Supported
  F:    arch/arm/mach-davinci
  
@@@ -5203,7 -4964,7 +5206,7 @@@ F:      mm/sl?b.
  
  SMC91x ETHERNET DRIVER
  M:    Nicolas Pitre <nico@fluxnic.net>
 -S:    Maintained
 +S:    Odd Fixes
  F:    drivers/net/smc91x.*
  
  SMSC47B397 HARDWARE MONITOR DRIVER
@@@ -5274,7 -5035,7 +5277,7 @@@ F:      include/linux/ssb
  
  SONY VAIO CONTROL DEVICE DRIVER
  M:    Mattia Dongili <malattia@linux.it>
 -L:    linux-acpi@vger.kernel.org
 +L:    platform-driver-x86@vger.kernel.org
  W:    http://www.linux.it/~malattia/wiki/index.php/Sony_drivers
  S:    Maintained
  F:    Documentation/laptops/sony-laptop.txt
@@@ -5313,67 -5074,11 +5316,67 @@@ F:   include/sound/soc
  SPARC + UltraSPARC (sparc/sparc64)
  M:    "David S. Miller" <davem@davemloft.net>
  L:    sparclinux@vger.kernel.org
 +Q:    http://patchwork.ozlabs.org/project/sparclinux/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git
  S:    Maintained
  F:    arch/sparc/
  
 +SPARC SERIAL DRIVERS
 +M:    "David S. Miller" <davem@davemloft.net>
 +L:    sparclinux@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git
 +S:    Maintained
 +F:    drivers/serial/suncore.c
 +F:    drivers/serial/suncore.h
 +F:    drivers/serial/sunhv.c
 +F:    drivers/serial/sunsab.c
 +F:    drivers/serial/sunsab.h
 +F:    drivers/serial/sunsu.c
 +F:    drivers/serial/sunzilog.c
 +F:    drivers/serial/sunzilog.h
 +
 +SPEAR PLATFORM SUPPORT
 +M:    Viresh Kumar <viresh.kumar@st.com>
 +W:    http://www.st.com/spear
 +S:    Maintained
 +F:    arch/arm/plat-spear/
 +
 +SPEAR3XX MACHINE SUPPORT
 +M:    Viresh Kumar <viresh.kumar@st.com>
 +W:    http://www.st.com/spear
 +S:    Maintained
 +F:    arch/arm/mach-spear3xx/
 +
 +SPEAR6XX MACHINE SUPPORT
 +M:    Rajeev Kumar <rajeev-dlh.kumar@st.com>
 +W:    http://www.st.com/spear
 +S:    Maintained
 +F:    arch/arm/mach-spear6xx/
 +
 +SPEAR CLOCK FRAMEWORK SUPPORT
 +M:    Viresh Kumar <viresh.kumar@st.com>
 +W:    http://www.st.com/spear
 +S:    Maintained
 +F:    arch/arm/mach-spear*/clock.c
 +F:    arch/arm/mach-spear*/include/mach/clkdev.h
 +F:    arch/arm/plat-spear/clock.c
 +F:    arch/arm/plat-spear/include/plat/clock.h and clkdev.h
 +
 +SPEAR PAD MULTIPLEXING SUPPORT
 +M:    Viresh Kumar <viresh.kumar@st.com>
 +W:    http://www.st.com/spear
 +S:    Maintained
 +F:    arch/arm/plat-spear/include/plat/padmux.h
 +F:    arch/arm/plat-spear/padmux.c
 +F:    arch/arm/mach-spear*/spear*xx.c
 +F:    arch/arm/mach-spear*/include/mach/generic.h
 +F:    arch/arm/mach-spear3xx/spear3*0.c
 +F:    arch/arm/mach-spear3xx/spear3*0_evb.c
 +F:    arch/arm/mach-spear6xx/spear600.c
 +F:    arch/arm/mach-spear6xx/spear600_evb.c
 +
  SPECIALIX IO8+ MULTIPORT SERIAL CARD DRIVER
  M:    Roger Wolff <R.E.Wolff@BitWizard.nl>
  S:    Supported
@@@ -5384,7 -5089,6 +5387,7 @@@ SPI SUBSYSTE
  M:    David Brownell <dbrownell@users.sourceforge.net>
  M:    Grant Likely <grant.likely@secretlab.ca>
  L:    spi-devel-general@lists.sourceforge.net
 +Q:    http://patchwork.kernel.org/project/spi-devel-general/list/
  S:    Maintained
  F:    Documentation/spi/
  F:    drivers/spi/
@@@ -5440,7 -5144,7 +5443,7 @@@ F:      drivers/net/starfire
  
  STARMODE RADIO IP (STRIP) PROTOCOL DRIVER
  S:    Orphan
 -F:    drivers/net/wireless/strip.c
 +F:    drivers/staging/strip/strip.c
  F:    include/linux/if_strip.h
  
  STRADIS MPEG-2 DECODER DRIVER
@@@ -5461,7 -5165,6 +5464,7 @@@ SUPER
  M:    Paul Mundt <lethal@linux-sh.org>
  L:    linux-sh@vger.kernel.org
  W:    http://www.linux-sh.org
 +Q:    http://patchwork.kernel.org/project/linux-sh/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6.git
  S:    Supported
  F:    Documentation/sh/
@@@ -5538,7 -5241,6 +5541,7 @@@ F:      arch/xtensa
  THINKPAD ACPI EXTRAS DRIVER
  M:    Henrique de Moraes Holschuh <ibm-acpi@hmh.eng.br>
  L:    ibm-acpi-devel@lists.sourceforge.net
 +L:    platform-driver-x86@vger.kernel.org
  W:    http://ibm-acpi.sourceforge.net
  W:    http://thinkwiki.org/wiki/Ibm-acpi
  T:    git git://repo.or.cz/linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git
@@@ -5559,6 -5261,7 +5562,6 @@@ S:      Maintaine
  F:    sound/soc/codecs/twl4030*
  
  TIPC NETWORK LAYER
 -M:    Per Liden <per.liden@ericsson.com>
  M:    Jon Maloy <jon.maloy@ericsson.com>
  M:    Allan Stephens <allan.stephens@windriver.com>
  L:    tipc-discussion@lists.sourceforge.net
@@@ -5591,12 -5294,10 +5594,12 @@@ F:   security/tomoyo
  
  TOPSTAR LAPTOP EXTRAS DRIVER
  M:    Herton Ronaldo Krzesinski <herton@mandriva.com.br>
 +L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    drivers/platform/x86/topstar-laptop.c
  
  TOSHIBA ACPI EXTRAS DRIVER
 +L:    platform-driver-x86@vger.kernel.org
  S:    Orphan
  F:    drivers/platform/x86/toshiba_acpi.c
  
@@@ -5614,7 -5315,7 +5617,7 @@@ S:      Maintaine
  F:    drivers/mmc/host/tmio_mmc.*
  
  TMPFS (SHMEM FILESYSTEM)
 -M:    Hugh Dickins <hugh.dickins@tiscali.co.uk>
 +M:    Hugh Dickins <hughd@google.com>
  L:    linux-mm@kvack.org
  S:    Maintained
  F:    include/linux/shmem_fs.h
@@@ -6002,7 -5703,7 +6005,7 @@@ M:      Laurent Pinchart <laurent.pinchart@s
  L:    linux-uvc-devel@lists.berlios.de (subscribers-only)
  L:    linux-media@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
 -W:    http://linux-uvc.berlios.de
 +W:    http://www.ideasonboard.org/uvc/
  S:    Maintained
  F:    drivers/media/video/uvc/
  
@@@ -6096,22 -5797,6 +6099,22 @@@ S:    Maintaine
  F:    Documentation/filesystems/vfat.txt
  F:    fs/fat/
  
 +VIRTIO CONSOLE DRIVER
 +M:    Amit Shah <amit.shah@redhat.com>
 +L:    virtualization@lists.linux-foundation.org
 +S:    Maintained
 +F:    drivers/char/virtio_console.c
 +F:    include/linux/virtio_console.h
 +
 +VIRTIO HOST (VHOST)
 +M:    "Michael S. Tsirkin" <mst@redhat.com>
 +L:    kvm@vger.kernel.org
 +L:    virtualization@lists.osdl.org
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/vhost/
 +F:    include/linux/vhost.h
 +
  VIA RHINE NETWORK DRIVER
  M:    Roger Luethi <rl@hellgate.ch>
  S:    Maintained
@@@ -6235,7 -5920,7 +6238,7 @@@ L:      linux-wireless@vger.kernel.or
  W:    http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/
  S:    Maintained
  F:    Documentation/networking/wavelan.txt
 -F:    drivers/net/wireless/wavelan*
 +F:    drivers/staging/wavelan/
  
  WD7000 SCSI DRIVER
  M:    Miroslav Zagorac <zaga@fly.cc.fer.hr>
@@@ -6270,7 -5955,7 +6273,7 @@@ S:      Maintaine
  F:    drivers/input/misc/wistron_btns.c
  
  WL1251 WIRELESS DRIVER
 -M:    Kalle Valo <kalle.valo@nokia.com>
 +M:    Kalle Valo <kalle.valo@iki.fi>
  L:    linux-wireless@vger.kernel.org
  W:    http://wireless.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
@@@ -6340,13 -6025,6 +6343,13 @@@ S:    Maintaine
  F:    Documentation/x86/
  F:    arch/x86/
  
 +X86 PLATFORM DRIVERS
 +M:    Matthew Garrett <mjg@redhat.com>
 +L:    platform-driver-x86@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platform-drivers-x86.git
 +S:    Maintained
 +F:    drivers/platform/x86
 +
  XEN HYPERVISOR INTERFACE
  M:    Jeremy Fitzhardinge <jeremy@xensource.com>
  M:    Chris Wright <chrisw@sous-sol.org>
@@@ -6431,7 -6109,6 +6434,7 @@@ F:      drivers/serial/zs.
  THE REST
  M:    Linus Torvalds <torvalds@linux-foundation.org>
  L:    linux-kernel@vger.kernel.org
 +Q:    http://patchwork.kernel.org/project/LKML/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
  S:    Buried alive in reporters
  F:    *
diff --combined Makefile
index 6e39ec701cbfd06565e765af97ca84bdba4f9809,ea5f0bee193445db25811b7600813d3acb38a90a..efdc3d0d8e60be647fedfb224d265c1b184b4d70
+++ b/Makefile
@@@ -1,8 -1,8 +1,8 @@@
  VERSION = 2
  PATCHLEVEL = 6
 -SUBLEVEL = 33
 -EXTRAVERSION = -rc6
 -NAME = Man-Eating Seals of Antiquity
 +SUBLEVEL = 35
 +EXTRAVERSION = -rc1
 +NAME = Sheep on Meth
  
  # *DOCUMENTATION*
  # To see a list of typical targets execute "make help"
@@@ -183,11 -183,14 +183,14 @@@ SUBARCH := $(shell uname -m | sed -e s/
  # CROSS_COMPILE can be set on the command line
  # make CROSS_COMPILE=ia64-linux-
  # Alternatively CROSS_COMPILE can be set in the environment.
+ # A third alternative is to store a setting in .config so that plain
+ # "make" in the configured kernel build directory always uses that.
  # Default value for CROSS_COMPILE is not to prefix executables
  # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
  export KBUILD_BUILDHOST := $(SUBARCH)
  ARCH          ?= $(SUBARCH)
  CROSS_COMPILE ?=
+ CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
  
  # Architecture as present in compile.h
  UTS_MACHINE   := $(ARCH)
@@@ -576,9 -579,6 +579,6 @@@ KBUILD_CFLAGS += $(call cc-option,-Wno-
  # disable invalid "can't wrap" optimizations for signed / pointers
  KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow)
  
- # revert to pre-gcc-4.4 behaviour of .eh_frame
- KBUILD_CFLAGS += $(call cc-option,-fno-dwarf2-cfi-asm)
  # conserve stack if available
  KBUILD_CFLAGS   += $(call cc-option,-fconserve-stack)
  
@@@ -882,9 -882,6 +882,6 @@@ $(sort $(vmlinux-init) $(vmlinux-main)
  PHONY += $(vmlinux-dirs)
  $(vmlinux-dirs): prepare scripts
        $(Q)$(MAKE) $(build)=$@
- ifdef CONFIG_MODULES
-       $(Q)$(MAKE) $(modbuiltin)=$@
- endif
  
  # Build the kernel release string
  #
  #       $(localver)
  #         localversion*               (files without backups, containing '~')
  #         $(CONFIG_LOCALVERSION)      (from kernel config setting)
- #       $(localver-auto)              (only if CONFIG_LOCALVERSION_AUTO is set)
- #         ./scripts/setlocalversion   (SCM tag, if one exists)
- #         $(LOCALVERSION)             (from make command line if provided)
+ #       $(LOCALVERSION)               (from make command line, if provided)
+ #       $(localver-extra)
+ #         $(scm-identifier)           (unique SCM tag, if one exists)
+ #           ./scripts/setlocalversion (only with CONFIG_LOCALVERSION_AUTO)
+ #           .scmversion               (only with CONFIG_LOCALVERSION_AUTO)
+ #         +                           (only without CONFIG_LOCALVERSION_AUTO
+ #                                      and without LOCALVERSION= and
+ #                                      repository is at non-tagged commit)
  #
- #  Note how the final $(localver-auto) string is included *only* if the
- # kernel config option CONFIG_LOCALVERSION_AUTO is selected.  Also, at the
- # moment, only git is supported but other SCMs can edit the script
- # scripts/setlocalversion and add the appropriate checks as needed.
+ # For kernels without CONFIG_LOCALVERSION_AUTO compiled from an SCM that has
+ # been revised beyond a tagged commit, `+' is appended to the version string
+ # when not overridden by using "make LOCALVERSION=".  This indicates that the
+ # kernel is not a vanilla release version and has been modified.
  
  pattern = ".*/localversion[^~]*"
  string  = $(shell cat /dev/null \
  localver = $(subst $(space),, $(string) \
                              $(patsubst "%",%,$(CONFIG_LOCALVERSION)))
  
- # If CONFIG_LOCALVERSION_AUTO is set scripts/setlocalversion is called
- # and if the SCM is know a tag from the SCM is appended.
- # The appended tag is determined by the SCM used.
+ # scripts/setlocalversion is called to create a unique identifier if the source
+ # is managed by a known SCM and the repository has been revised since the last
+ # tagged (release) commit.  The format of the identifier is determined by the
+ # SCM's implementation.
  #
  # .scmversion is used when generating rpm packages so we do not loose
  # the version information from the SCM when we do the build of the kernel
  # from the copied source
- ifdef CONFIG_LOCALVERSION_AUTO
  ifeq ($(wildcard .scmversion),)
-         _localver-auto = $(shell $(CONFIG_SHELL) \
+         scm-identifier = $(shell $(CONFIG_SHELL) \
                           $(srctree)/scripts/setlocalversion $(srctree))
  else
-         _localver-auto = $(shell cat .scmversion 2> /dev/null)
+         scm-identifier = $(shell cat .scmversion 2> /dev/null)
  endif
  
-       localver-auto  = $(LOCALVERSION)$(_localver-auto)
+ ifdef CONFIG_LOCALVERSION_AUTO
+       localver-extra = $(scm-identifier)
+ else
+       ifneq ($(scm-identifier),)
+               ifeq ($(LOCALVERSION),)
+                       localver-extra = +
+               endif
+       endif
  endif
  
- localver-full = $(localver)$(localver-auto)
+ localver-full = $(localver)$(LOCALVERSION)$(localver-extra)
  
  # Store (new) KERNELRELASE string in include/config/kernel.release
  kernelrelease = $(KERNELVERSION)$(localver-full)
@@@ -1089,11 -1097,16 +1097,16 @@@ all: module
  PHONY += modules
  modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux)
        $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
-       $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.builtin) > $(objtree)/modules.builtin
        @$(kecho) '  Building modules, stage 2.';
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modbuild
  
+ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)
+       $(Q)$(AWK) '!x[$$0]++' $^ > $(objtree)/modules.builtin
+ %/modules.builtin: include/config/auto.conf
+       $(Q)$(MAKE) $(modbuiltin)=$*
  
  # Target to prepare building external modules
  PHONY += modules_prepare
@@@ -1104,7 -1117,7 +1117,7 @@@ PHONY += modules_instal
  modules_install: _modinst_ _modinst_post
  
  PHONY += _modinst_
- _modinst_:
+ _modinst_: modules.builtin
        @if [ -z "`$(DEPMOD) -V 2>/dev/null | grep module-init-tools`" ]; then \
                echo "Warning: you may need to install module-init-tools"; \
                echo "See http://www.codemonkey.org.uk/docs/post-halloween-2.6.txt";\
@@@ -1247,7 -1260,9 +1260,9 @@@ help
        @echo  '  firmware_install- Install all firmware to INSTALL_FW_PATH'
        @echo  '                    (default: $$(INSTALL_MOD_PATH)/lib/firmware)'
        @echo  '  dir/            - Build all files in dir and below'
-       @echo  '  dir/file.[ois]  - Build specified target only'
+       @echo  '  dir/file.[oisS] - Build specified target only'
+       @echo  '  dir/file.lst    - Build specified mixed source/assembly target only'
+       @echo  '                    (requires a recent binutils and recent build (System.map))'
        @echo  '  dir/file.ko     - Build module including final link'
        @echo  '  modules_prepare - Set up for building external modules'
        @echo  '  tags/TAGS       - Generate tags file for editors'
index 1bd4082656940709a715b69b339b86ea3b80db1e,35d9aeb6d85f7dbf521cda772eb7f5076b8dd4db..14aa1c58912b6ff70a62d35f77c052fa80ee2930
@@@ -9,7 -9,7 +9,7 @@@
  #define PERCPU_ENOUGH_ROOM PERCPU_PAGE_SIZE
  
  #ifdef __ASSEMBLY__
 -# define THIS_CPU(var)        (per_cpu__##var)  /* use this to mark accesses to per-CPU variables... */
 +# define THIS_CPU(var)        (var)  /* use this to mark accesses to per-CPU variables... */
  #else /* !__ASSEMBLY__ */
  
  
@@@ -31,7 -31,7 +31,7 @@@ extern void *per_cpu_init(void)
  
  #endif        /* SMP */
  
- #define PER_CPU_BASE_SECTION ".data.percpu"
+ #define PER_CPU_BASE_SECTION ".data..percpu"
  
  /*
   * Be extremely careful when taking the address of this variable!  Due to virtual
   * On the positive side, using __ia64_per_cpu_var() instead of __get_cpu_var() is slightly
   * more efficient.
   */
 -#define __ia64_per_cpu_var(var)       per_cpu__##var
 +#define __ia64_per_cpu_var(var) (*({                                  \
 +      __verify_pcpu_ptr(&(var));                                      \
 +      ((typeof(var) __kernel __force *)&(var));                       \
 +}))
  
  #include <asm-generic/percpu.h>
  
diff --combined arch/ia64/kernel/ivt.S
index 179fd122e837dadf5bdc153e47aa288592e47ed6,0c14512b12dcf9131ca42facfa4a01ab9d86b435..d93e396bf5998813114d0ac1cbbd92551d964551
@@@ -49,6 -49,7 +49,6 @@@
  
  #include <asm/asmmacro.h>
  #include <asm/break.h>
 -#include <asm/ia32.h>
  #include <asm/kregs.h>
  #include <asm/asm-offsets.h>
  #include <asm/pgtable.h>
@@@ -82,7 -83,7 +82,7 @@@
        mov r19=n;;                     /* prepare to save predicates */                \
        br.sptk.many dispatch_to_fault_handler
  
-       .section .text.ivt,"ax"
+       .section .text..ivt,"ax"
  
        .align 32768    // align on 32KB boundary
        .global ia64_ivt
@@@ -1385,6 -1386,28 +1385,6 @@@ END(ia32_exception
  // 0x6a00 Entry 46 (size 16 bundles) IA-32 Intercept  (30,31,59,70,71)
  ENTRY(ia32_intercept)
        DBG_FAULT(46)
 -#ifdef        CONFIG_IA32_SUPPORT
 -      mov r31=pr
 -      MOV_FROM_ISR(r16)
 -      ;;
 -      extr.u r17=r16,16,8     // get ISR.code
 -      mov r18=ar.eflag
 -      MOV_FROM_IIM(r19)       // old eflag value
 -      ;;
 -      cmp.ne p6,p0=2,r17
 -(p6)  br.cond.spnt 1f         // not a system flag fault
 -      xor r16=r18,r19
 -      ;;
 -      extr.u r17=r16,18,1     // get the eflags.ac bit
 -      ;;
 -      cmp.eq p6,p0=0,r17
 -(p6)  br.cond.spnt 1f         // eflags.ac bit didn't change
 -      ;;
 -      mov pr=r31,-1           // restore predicate registers
 -      RFI
 -
 -1:
 -#endif        // CONFIG_IA32_SUPPORT
        FAULT(46)
  END(ia32_intercept)
  
  // 0x6b00 Entry 47 (size 16 bundles) IA-32 Interrupt  (74)
  ENTRY(ia32_interrupt)
        DBG_FAULT(47)
 -#ifdef CONFIG_IA32_SUPPORT
 -      mov r31=pr
 -      br.sptk.many dispatch_to_ia32_handler
 -#else
        FAULT(47)
 -#endif
  END(ia32_interrupt)
  
        .org ia64_ivt+0x6c00
@@@ -1687,3 -1715,89 +1687,3 @@@ ENTRY(dispatch_illegal_op_fault
  (p6)  br.call.dpnt.many b6=b6         // call returns to ia64_leave_kernel
        br.sptk.many ia64_leave_kernel
  END(dispatch_illegal_op_fault)
 -
 -#ifdef CONFIG_IA32_SUPPORT
 -
 -      /*
 -       * There is no particular reason for this code to be here, other than that
 -       * there happens to be space here that would go unused otherwise.  If this
 -       * fault ever gets "unreserved", simply moved the following code to a more
 -       * suitable spot...
 -       */
 -
 -      // IA32 interrupt entry point
 -
 -ENTRY(dispatch_to_ia32_handler)
 -      SAVE_MIN
 -      ;;
 -      MOV_FROM_ISR(r14)
 -      SSM_PSR_IC_AND_DEFAULT_BITS_AND_SRLZ_I(r3, r24)
 -                              // guarantee that interruption collection is on
 -      ;;
 -      SSM_PSR_I(p15, p15, r3)
 -      adds r3=8,r2            // Base pointer for SAVE_REST
 -      ;;
 -      SAVE_REST
 -      ;;
 -      mov r15=0x80
 -      shr r14=r14,16          // Get interrupt number
 -      ;;
 -      cmp.ne p6,p0=r14,r15
 -(p6)  br.call.dpnt.many b6=non_ia32_syscall
 -
 -      adds r14=IA64_PT_REGS_R8_OFFSET + 16,sp // 16 byte hole per SW conventions
 -      adds r15=IA64_PT_REGS_R1_OFFSET + 16,sp
 -      ;;
 -      cmp.eq pSys,pNonSys=r0,r0 // set pSys=1, pNonSys=0
 -      ld8 r8=[r14]            // get r8
 -      ;;
 -      st8 [r15]=r8            // save original EAX in r1 (IA32 procs don't use the GP)
 -      ;;
 -      alloc r15=ar.pfs,0,0,6,0        // must first in an insn group
 -      ;;
 -      ld4 r8=[r14],8          // r8 == eax (syscall number)
 -      mov r15=IA32_NR_syscalls
 -      ;;
 -      cmp.ltu.unc p6,p7=r8,r15
 -      ld4 out1=[r14],8        // r9 == ecx
 -      ;;
 -      ld4 out2=[r14],8        // r10 == edx
 -      ;;
 -      ld4 out0=[r14]          // r11 == ebx
 -      adds r14=(IA64_PT_REGS_R13_OFFSET) + 16,sp
 -      ;;
 -      ld4 out5=[r14],PT(R14)-PT(R13)  // r13 == ebp
 -      ;;
 -      ld4 out3=[r14],PT(R15)-PT(R14)  // r14 == esi
 -      adds r2=TI_FLAGS+IA64_TASK_SIZE,r13
 -      ;;
 -      ld4 out4=[r14]          // r15 == edi
 -      movl r16=ia32_syscall_table
 -      ;;
 -(p6)  shladd r16=r8,3,r16     // force ni_syscall if not valid syscall number
 -      ld4 r2=[r2]             // r2 = current_thread_info()->flags
 -      ;;
 -      ld8 r16=[r16]
 -      and r2=_TIF_SYSCALL_TRACEAUDIT,r2       // mask trace or audit
 -      ;;
 -      mov b6=r16
 -      movl r15=ia32_ret_from_syscall
 -      cmp.eq p8,p0=r2,r0
 -      ;;
 -      mov rp=r15
 -(p8)  br.call.sptk.many b6=b6
 -      br.cond.sptk ia32_trace_syscall
 -
 -non_ia32_syscall:
 -      alloc r15=ar.pfs,0,0,2,0
 -      mov out0=r14                            // interrupt #
 -      add out1=16,sp                          // pointer to pt_regs
 -      ;;                      // avoid WAW on CFM
 -      br.call.sptk.many rp=ia32_bad_interrupt
 -.ret1:        movl r15=ia64_leave_kernel
 -      ;;
 -      mov rp=r15
 -      br.ret.sptk.many rp
 -END(dispatch_to_ia32_handler)
 -
 -#endif /* CONFIG_IA32_SUPPORT */
index 4653c77bf9d13398c6dd6777786a20c3a821c2dd,4bbb67355acebba916fb49955578b2a9e601dc11..2ab4af58ecb9ca20cf13751868c917fe09b36a7b
@@@ -160,7 -160,7 +160,7 @@@ static inline void set_eiem(unsigned lo
     ldcd). */
  
  #define __PA_LDCW_ALIGNMENT   4
 -#define __ldcw_align(a) ((volatile unsigned int *)a)
 +#define __ldcw_align(a) (&(a)->slock)
  #define __LDCW        "ldcw,co"
  
  #endif /*!CONFIG_PA20*/
  })
  
  #ifdef CONFIG_SMP
- # define __lock_aligned __attribute__((__section__(".data.lock_aligned")))
+ # define __lock_aligned __attribute__((__section__(".data..lock_aligned")))
  #endif
  
  #define arch_align_stack(x) (x)
index 725634fc18c653d2a868262a84d450a7d3d3edab,3f41ab9c1e4ec518a5c4d6b7140feed34da12271..4b509411ad8afcf52cf1ea5beca482b9fc282d22
  #define L1_CACHE_SHIFT                6
  #define MAX_COPY_PREFETCH     4
  #elif defined(CONFIG_PPC32)
 -#define L1_CACHE_SHIFT                5
  #define MAX_COPY_PREFETCH     4
 +#if defined(CONFIG_PPC_47x)
 +#define L1_CACHE_SHIFT                7
 +#else
 +#define L1_CACHE_SHIFT                5
 +#endif
  #else /* CONFIG_PPC64 */
  #define L1_CACHE_SHIFT                7
  #endif
@@@ -42,7 -38,7 +42,7 @@@ extern struct ppc64_caches ppc64_caches
  #endif /* __powerpc64__ && ! __ASSEMBLY__ */
  
  #if !defined(__ASSEMBLY__)
- #define __read_mostly __attribute__((__section__(".data.read_mostly")))
+ #define __read_mostly __attribute__((__section__(".data..read_mostly")))
  #endif
  
  #endif /* __KERNEL__ */
index c56d3f56d020224583bfcee76790dd761fa39c78,e5cd623cb025707b2354e3464d116b962d21d55a..1f066e46e83e69775e8494023feae5f7b337d685
@@@ -176,7 -176,7 +176,7 @@@ pgm_check_entry
        cgr     %r1,%r2
        je      restore_registers               /* r1 = r2 -> nothing to do */
        larl    %r4,.Lrestart_suspend_psw       /* Set new restart PSW */
 -      mvc     __LC_RESTART_PSW(16,%r0),0(%r4)
 +      mvc     __LC_RST_NEW_PSW(16,%r0),0(%r4)
  3:
        sigp    %r9,%r1,__SIGP_INITIAL_CPU_RESET
        brc     8,4f    /* accepted */
@@@ -256,15 -256,12 +256,15 @@@ restore_registers
        lghi    %r2,0
        brasl   %r14,arch_set_page_states
  
 +      /* Reinitialize the channel subsystem */
 +      brasl   %r14,channel_subsystem_reinit
 +
        /* Return 0 */
        lmg     %r6,%r15,STACK_FRAME_OVERHEAD + __SF_GPRS(%r15)
        lghi    %r2,0
        br      %r14
  
-       .section .data.nosave,"aw",@progbits
+       .section .data..nosave,"aw",@progbits
        .align  8
  .Ldisabled_wait_31:
        .long  0x000a0000,0x00000000
index e461d67f03c3ff18f40151860121798e09471aea,455a9a9bd7dd8d29749dc6df8a29311832ce3f23..ef9e555aafba5bad5247d0baeae0d256064b1620
@@@ -14,7 -14,7 +14,7 @@@
  
  #define L1_CACHE_BYTES                (1 << L1_CACHE_SHIFT)
  
- #define __read_mostly __attribute__((__section__(".data.read_mostly")))
+ #define __read_mostly __attribute__((__section__(".data..read_mostly")))
  
  #ifndef __ASSEMBLY__
  struct cache_info {
         * 2. those in the physical page number.
         */
        unsigned int alias_mask;
 -
        unsigned int n_aliases;         /* Number of aliases */
  
        unsigned long flags;
  };
 -
 -int __init detect_cpu_and_cache_system(void);
 -
  #endif /* __ASSEMBLY__ */
  #endif /* __KERNEL__ */
  #endif /* __ASM_SH_CACHE_H */
index 78b07009f60a9d52c8042fc1c9124fef9d6a2f16,2909f0ab6f9ee2259fca9a9f4b58b1ae31d680dc..0588b8c7faa26b5eb596a1c52a1bcbf77a53bc92
@@@ -7,8 -7,6 +7,8 @@@
  #ifndef _SPARC_CACHE_H
  #define _SPARC_CACHE_H
  
 +#define ARCH_SLAB_MINALIGN    __alignof__(unsigned long long)
 +
  #define L1_CACHE_SHIFT 5
  #define L1_CACHE_BYTES 32
  #define L1_CACHE_ALIGN(x) ((((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1)))
@@@ -21,7 -19,7 +21,7 @@@
  
  #define SMP_CACHE_BYTES (1 << SMP_CACHE_BYTES_SHIFT)
  
- #define __read_mostly __attribute__((__section__(".data.read_mostly")))
+ #define __read_mostly __attribute__((__section__(".data..read_mostly")))
  
  #ifdef CONFIG_SPARC32
  #include <asm/asi.h>
index a867940a6dfc4dfb31ac1f28a54ccb98d11aff46,8c9f68ec97abd46dfb6a6a8f180a5d0beb2f6e4a..cf592767812ece9b934ca819141a1f9744c0cda6
@@@ -137,13 -137,7 +137,13 @@@ static void * __init pcpu_fc_alloc(unsi
  
  static void __init pcpu_fc_free(void *ptr, size_t size)
  {
 +#ifdef CONFIG_NO_BOOTMEM
 +      u64 start = __pa(ptr);
 +      u64 end = start + size;
 +      free_early_partial(start, end);
 +#else
        free_bootmem(__pa(ptr), size);
 +#endif
  }
  
  static int __init pcpu_cpu_distance(unsigned int from, unsigned int to)
@@@ -247,7 -241,7 +247,7 @@@ void __init setup_per_cpu_areas(void
  #endif
  #endif
                /*
-                * Up to this point, the boot CPU has been using .data.init
+                * Up to this point, the boot CPU has been using .init.data
                 * area.  Reload any changed state for the boot CPU.
                 */
                if (cpu == boot_cpu_id)
  
  #if defined(CONFIG_X86_64) && defined(CONFIG_NUMA)
        /*
 -       * make sure boot cpu node_number is right, when boot cpu is on the
 +       * make sure boot cpu numa_node is right, when boot cpu is on the
         * node that doesn't have mem installed
         */
 -      per_cpu(node_number, boot_cpu_id) = cpu_to_node(boot_cpu_id);
 +      set_cpu_numa_node(boot_cpu_id, early_cpu_to_node(boot_cpu_id));
  #endif
  
        /* Setup node to cpumask map */
index 2cc249718c46e47ca28dd9e48ff1691a3c39d185,f3d77d729d544e88d20d877c5679f7aaf0970f5c..d0bb52296fa3a8f564cdb1964107e677494859ed
@@@ -97,7 -97,7 +97,7 @@@ SECTION
                HEAD_TEXT
  #ifdef CONFIG_X86_32
                . = ALIGN(PAGE_SIZE);
-               *(.text.page_aligned)
+               *(.text..page_aligned)
  #endif
                . = ALIGN(8);
                _stext = .;
        .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
                __smp_locks = .;
                *(.smp_locks)
 -              __smp_locks_end = .;
                . = ALIGN(PAGE_SIZE);
 +              __smp_locks_end = .;
        }
  
  #ifdef CONFIG_X86_64
        . = ALIGN(PAGE_SIZE);
        .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
                __bss_start = .;
-               *(.bss.page_aligned)
+               *(.bss..page_aligned)
                *(.bss)
                . = ALIGN(4);
                __bss_stop = .;
   * Per-cpu symbols which need to be offset from __per_cpu_load
   * for the boot processor.
   */
 -#define INIT_PER_CPU(x) init_per_cpu__##x = per_cpu__##x + __per_cpu_load
 +#define INIT_PER_CPU(x) init_per_cpu__##x = x + __per_cpu_load
  INIT_PER_CPU(gdt_page);
  INIT_PER_CPU(irq_stack_union);
  
           "kernel image bigger than KERNEL_IMAGE_SIZE");
  
  #ifdef CONFIG_SMP
 -. = ASSERT((per_cpu__irq_stack_union == 0),
 +. = ASSERT((irq_stack_union == 0),
             "irq_stack_union is not at start of per-cpu area");
  #endif
  
index 04f91c2d3f7b93d88011236b07aa1f71d2a39def,1202a1550e9150d77a06553b29929c8bdfa26114..b5043a9890d85a38d4e63d3ae40f546675639e30
@@@ -41,11 -41,7 +41,11 @@@ extern unsigned long __per_cpu_offset[N
   * Only S390 provides its own means of moving the pointer.
   */
  #ifndef SHIFT_PERCPU_PTR
 -#define SHIFT_PERCPU_PTR(__p, __offset)       RELOC_HIDE((__p), (__offset))
 +/* Weird cast keeps both GCC and sparse happy. */
 +#define SHIFT_PERCPU_PTR(__p, __offset)       ({                              \
 +      __verify_pcpu_ptr((__p));                                       \
 +      RELOC_HIDE((typeof(*(__p)) __kernel __force *)(__p), (__offset)); \
 +})
  #endif
  
  /*
   * offset.
   */
  #define per_cpu(var, cpu) \
 -      (*SHIFT_PERCPU_PTR(&per_cpu_var(var), per_cpu_offset(cpu)))
 +      (*SHIFT_PERCPU_PTR(&(var), per_cpu_offset(cpu)))
  #define __get_cpu_var(var) \
 -      (*SHIFT_PERCPU_PTR(&per_cpu_var(var), my_cpu_offset))
 +      (*SHIFT_PERCPU_PTR(&(var), my_cpu_offset))
  #define __raw_get_cpu_var(var) \
 -      (*SHIFT_PERCPU_PTR(&per_cpu_var(var), __my_cpu_offset))
 +      (*SHIFT_PERCPU_PTR(&(var), __my_cpu_offset))
  
  #define this_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, my_cpu_offset)
  #define __this_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
@@@ -70,9 -66,9 +70,9 @@@ extern void setup_per_cpu_areas(void)
  
  #else /* ! SMP */
  
 -#define per_cpu(var, cpu)                     (*((void)(cpu), &per_cpu_var(var)))
 -#define __get_cpu_var(var)                    per_cpu_var(var)
 -#define __raw_get_cpu_var(var)                        per_cpu_var(var)
 +#define per_cpu(var, cpu)                     (*((void)(cpu), &(var)))
 +#define __get_cpu_var(var)                    (var)
 +#define __raw_get_cpu_var(var)                        (var)
  #define this_cpu_ptr(ptr) per_cpu_ptr(ptr, 0)
  #define __this_cpu_ptr(ptr) this_cpu_ptr(ptr)
  
@@@ -80,7 -76,7 +80,7 @@@
  
  #ifndef PER_CPU_BASE_SECTION
  #ifdef CONFIG_SMP
- #define PER_CPU_BASE_SECTION ".data.percpu"
+ #define PER_CPU_BASE_SECTION ".data..percpu"
  #else
  #define PER_CPU_BASE_SECTION ".data"
  #endif
  #define PER_CPU_SHARED_ALIGNED_SECTION ""
  #define PER_CPU_ALIGNED_SECTION ""
  #else
- #define PER_CPU_SHARED_ALIGNED_SECTION ".shared_aligned"
- #define PER_CPU_ALIGNED_SECTION ".shared_aligned"
+ #define PER_CPU_SHARED_ALIGNED_SECTION "..shared_aligned"
+ #define PER_CPU_ALIGNED_SECTION "..shared_aligned"
  #endif
- #define PER_CPU_FIRST_SECTION ".first"
+ #define PER_CPU_FIRST_SECTION "..first"
  
  #else
  
  #define PER_CPU_SHARED_ALIGNED_SECTION ""
- #define PER_CPU_ALIGNED_SECTION ".shared_aligned"
+ #define PER_CPU_ALIGNED_SECTION "..shared_aligned"
  #define PER_CPU_FIRST_SECTION ""
  
  #endif
index ef779c6fc3d7e89571390a01bbdb3da137bc1af1,ea3660526e915df2e5909cc366851009a6a632fc..48c5299cbf26e796e3188f397faa96cd3889a112
  #define NOSAVE_DATA                                                   \
        . = ALIGN(PAGE_SIZE);                                           \
        VMLINUX_SYMBOL(__nosave_begin) = .;                             \
-       *(.data.nosave)                                                 \
+       *(.data..nosave)                                                \
        . = ALIGN(PAGE_SIZE);                                           \
        VMLINUX_SYMBOL(__nosave_end) = .;
  
  #define PAGE_ALIGNED_DATA(page_align)                                 \
        . = ALIGN(page_align);                                          \
-       *(.data.page_aligned)
+       *(.data..page_aligned)
  
  #define READ_MOSTLY_DATA(align)                                               \
        . = ALIGN(align);                                               \
-       *(.data.read_mostly)
+       *(.data..read_mostly)
  
  #define CACHELINE_ALIGNED_DATA(align)                                 \
        . = ALIGN(align);                                               \
-       *(.data.cacheline_aligned)
+       *(.data..cacheline_aligned)
  
  #define INIT_TASK_DATA(align)                                         \
        . = ALIGN(align);                                               \
-       *(.data.init_task)
+       *(.data..init_task)
  
  /*
   * Read only Data
        }                                                               \
                                                                        \
        /* RapidIO route ops */                                         \
 -      .rio_route        : AT(ADDR(.rio_route) - LOAD_OFFSET) {        \
 -              VMLINUX_SYMBOL(__start_rio_route_ops) = .;              \
 -              *(.rio_route_ops)                                       \
 -              VMLINUX_SYMBOL(__end_rio_route_ops) = .;                \
 +      .rio_ops        : AT(ADDR(.rio_ops) - LOAD_OFFSET) {            \
 +              VMLINUX_SYMBOL(__start_rio_switch_ops) = .;             \
 +              *(.rio_switch_ops)                                      \
 +              VMLINUX_SYMBOL(__end_rio_switch_ops) = .;               \
        }                                                               \
                                                                        \
        TRACEDATA                                                       \
   */
  #define INIT_TASK_DATA_SECTION(align)                                 \
        . = ALIGN(align);                                               \
-       .data.init_task : {                                             \
+       .data..init_task : {                                            \
                INIT_TASK_DATA(align)                                   \
        }
  
  #define BSS(bss_align)                                                        \
        . = ALIGN(bss_align);                                           \
        .bss : AT(ADDR(.bss) - LOAD_OFFSET) {                           \
-               *(.bss.page_aligned)                                    \
+               *(.bss..page_aligned)                                   \
                *(.dynbss)                                              \
                *(.bss)                                                 \
                *(COMMON)                                               \
   */
  #define PERCPU_VADDR(vaddr, phdr)                                     \
        VMLINUX_SYMBOL(__per_cpu_load) = .;                             \
-       .data.percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load)          \
+       .data..percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load)         \
                                - LOAD_OFFSET) {                        \
                VMLINUX_SYMBOL(__per_cpu_start) = .;                    \
-               *(.data.percpu.first)                                   \
-               *(.data.percpu.page_aligned)                            \
-               *(.data.percpu)                                         \
-               *(.data.percpu.shared_aligned)                          \
+               *(.data..percpu..first)                                 \
+               *(.data..percpu..page_aligned)                          \
+               *(.data..percpu)                                        \
+               *(.data..percpu..shared_aligned)                        \
                VMLINUX_SYMBOL(__per_cpu_end) = .;                      \
        } phdr                                                          \
-       . = VMLINUX_SYMBOL(__per_cpu_load) + SIZEOF(.data.percpu);
+       . = VMLINUX_SYMBOL(__per_cpu_load) + SIZEOF(.data..percpu);
  
  /**
   * PERCPU - define output section for percpu area, simple version
   *
   * This macro is equivalent to ALIGN(align); PERCPU_VADDR( , ) except
   * that __per_cpu_load is defined as a relative symbol against
-  * .data.percpu which is required for relocatable x86_32
+  * .data..percpu which is required for relocatable x86_32
   * configuration.
   */
  #define PERCPU(align)                                                 \
        . = ALIGN(align);                                               \
-       .data.percpu    : AT(ADDR(.data.percpu) - LOAD_OFFSET) {        \
+       .data..percpu   : AT(ADDR(.data..percpu) - LOAD_OFFSET) {       \
                VMLINUX_SYMBOL(__per_cpu_load) = .;                     \
                VMLINUX_SYMBOL(__per_cpu_start) = .;                    \
-               *(.data.percpu.first)                                   \
-               *(.data.percpu.page_aligned)                            \
-               *(.data.percpu)                                         \
-               *(.data.percpu.shared_aligned)                          \
+               *(.data..percpu..first)                                 \
+               *(.data..percpu..page_aligned)                          \
+               *(.data..percpu)                                        \
+               *(.data..percpu..shared_aligned)                        \
                VMLINUX_SYMBOL(__per_cpu_end) = .;                      \
        }
  
index 2beaa13492beb5dffdb90c0041d942a3785181e1,f00253b3fc47b78d14c925d2e350312653577d90..1f43fa56f6001f821736e4b66e9fac5e6e0375ed
@@@ -16,7 -16,7 +16,7 @@@ extern struct files_struct init_files
  extern struct fs_struct init_fs;
  
  #define INIT_SIGNALS(sig) {                                           \
 -      .count          = ATOMIC_INIT(1),                               \
 +      .nr_threads     = 1,                                            \
        .wait_chldexit  = __WAIT_QUEUE_HEAD_INITIALIZER(sig.wait_chldexit),\
        .shared_pending = {                                             \
                .list = LIST_HEAD_INIT(sig.shared_pending.list),        \
  }
  
  extern struct nsproxy init_nsproxy;
 -#define INIT_NSPROXY(nsproxy) {                                               \
 -      .pid_ns         = &init_pid_ns,                                 \
 -      .count          = ATOMIC_INIT(1),                               \
 -      .uts_ns         = &init_uts_ns,                                 \
 -      .mnt_ns         = NULL,                                         \
 -      INIT_NET_NS(net_ns)                                             \
 -      INIT_IPC_NS(ipc_ns)                                             \
 -}
  
  #define INIT_SIGHAND(sighand) {                                               \
        .count          = ATOMIC_INIT(1),                               \
 -      .action         = { { { .sa_handler = NULL, } }, },             \
 +      .action         = { { { .sa_handler = SIG_DFL, } }, },          \
        .siglock        = __SPIN_LOCK_UNLOCKED(sighand.siglock),        \
        .signalfd_wqh   = __WAIT_QUEUE_HEAD_INITIALIZER(sighand.signalfd_wqh),  \
  }
@@@ -45,10 -53,11 +45,10 @@@ extern struct group_info init_groups
  #define INIT_STRUCT_PID {                                             \
        .count          = ATOMIC_INIT(1),                               \
        .tasks          = {                                             \
 -              { .first = &init_task.pids[PIDTYPE_PID].node },         \
 -              { .first = &init_task.pids[PIDTYPE_PGID].node },        \
 -              { .first = &init_task.pids[PIDTYPE_SID].node },         \
 +              { .first = NULL },                                      \
 +              { .first = NULL },                                      \
 +              { .first = NULL },                                      \
        },                                                              \
 -      .rcu            = RCU_HEAD_INIT,                                \
        .level          = 0,                                            \
        .numbers        = { {                                           \
                .nr             = 0,                                    \
@@@ -61,7 -70,7 +61,7 @@@
  {                                                             \
        .node = {                                               \
                .next = NULL,                                   \
 -              .pprev = &init_struct_pid.tasks[type].first,    \
 +              .pprev = NULL,                                  \
        },                                                      \
        .pid = &init_struct_pid,                                \
  }
@@@ -163,7 -172,6 +163,7 @@@ extern struct cred init_cred
                [PIDTYPE_PGID] = INIT_PID_LINK(PIDTYPE_PGID),           \
                [PIDTYPE_SID]  = INIT_PID_LINK(PIDTYPE_SID),            \
        },                                                              \
 +      .thread_group   = LIST_HEAD_INIT(tsk.thread_group),             \
        .dirties = INIT_PROP_LOCAL_SINGLE(dirties),                     \
        INIT_IDS                                                        \
        INIT_PERF_EVENTS(tsk)                                           \
  }
  
  /* Attach to the init_task data structure for proper alignment */
- #define __init_task_data __attribute__((__section__(".data.init_task")))
+ #define __init_task_data __attribute__((__section__(".data..init_task")))
  
  
  #endif
index 68567c0b3a5d4d29cb5006d42ad3ad38d178e291,2351191f8c82cf04a0c759a2cf573d5537ab188f..ce2dc655cd1d40a6765acc2dd3f49e104bca4f5c
@@@ -1,6 -1,12 +1,6 @@@
  #ifndef _LINUX_PERCPU_DEFS_H
  #define _LINUX_PERCPU_DEFS_H
  
 -/*
 - * Determine the real variable name from the name visible in the
 - * kernel sources.
 - */
 -#define per_cpu_var(var) per_cpu__##var
 -
  /*
   * Base implementations of per-CPU variable declarations and definitions, where
   * the section in which the variable is to be placed is provided by the
   * that section.
   */
  #define __PCPU_ATTRS(sec)                                             \
 -      __attribute__((section(PER_CPU_BASE_SECTION sec)))              \
 +      __percpu __attribute__((section(PER_CPU_BASE_SECTION sec)))     \
        PER_CPU_ATTRIBUTES
  
  #define __PCPU_DUMMY_ATTRS                                            \
        __attribute__((section(".discard"), unused))
  
 +/*
 + * Macro which verifies @ptr is a percpu pointer without evaluating
 + * @ptr.  This is to be used in percpu accessors to verify that the
 + * input parameter is a percpu pointer.
 + */
 +#define __verify_pcpu_ptr(ptr)        do {                                    \
 +      const void __percpu *__vpp_verify = (typeof(ptr))NULL;          \
 +      (void)__vpp_verify;                                             \
 +} while (0)
 +
  /*
   * s390 and alpha modules require percpu variables to be defined as
   * weak to force the compiler to generate GOT based external
   */
  #define DECLARE_PER_CPU_SECTION(type, name, sec)                      \
        extern __PCPU_DUMMY_ATTRS char __pcpu_scope_##name;             \
 -      extern __PCPU_ATTRS(sec) __typeof__(type) per_cpu__##name
 +      extern __PCPU_ATTRS(sec) __typeof__(type) name
  
  #define DEFINE_PER_CPU_SECTION(type, name, sec)                               \
        __PCPU_DUMMY_ATTRS char __pcpu_scope_##name;                    \
        extern __PCPU_DUMMY_ATTRS char __pcpu_unique_##name;            \
        __PCPU_DUMMY_ATTRS char __pcpu_unique_##name;                   \
        __PCPU_ATTRS(sec) PER_CPU_DEF_ATTRIBUTES __weak                 \
 -      __typeof__(type) per_cpu__##name
 +      __typeof__(type) name
  #else
  /*
   * Normal declaration and definition macros.
   */
  #define DECLARE_PER_CPU_SECTION(type, name, sec)                      \
 -      extern __PCPU_ATTRS(sec) __typeof__(type) per_cpu__##name
 +      extern __PCPU_ATTRS(sec) __typeof__(type) name
  
  #define DEFINE_PER_CPU_SECTION(type, name, sec)                               \
        __PCPU_ATTRS(sec) PER_CPU_DEF_ATTRIBUTES                        \
 -      __typeof__(type) per_cpu__##name
 +      __typeof__(type) name
  #endif
  
  /*
   * Declaration/definition used for per-CPU variables that must be page aligned.
   */
  #define DECLARE_PER_CPU_PAGE_ALIGNED(type, name)                      \
-       DECLARE_PER_CPU_SECTION(type, name, ".page_aligned")            \
+       DECLARE_PER_CPU_SECTION(type, name, "..page_aligned")           \
        __aligned(PAGE_SIZE)
  
  #define DEFINE_PER_CPU_PAGE_ALIGNED(type, name)                               \
-       DEFINE_PER_CPU_SECTION(type, name, ".page_aligned")             \
+       DEFINE_PER_CPU_SECTION(type, name, "..page_aligned")            \
        __aligned(PAGE_SIZE)
  
  /*
 - * Intermodule exports for per-CPU variables.
 + * Intermodule exports for per-CPU variables.  sparse forgets about
 + * address space across EXPORT_SYMBOL(), change EXPORT_SYMBOL() to
 + * noop if __CHECKER__.
   */
 -#define EXPORT_PER_CPU_SYMBOL(var) EXPORT_SYMBOL(per_cpu__##var)
 -#define EXPORT_PER_CPU_SYMBOL_GPL(var) EXPORT_SYMBOL_GPL(per_cpu__##var)
 -
 +#ifndef __CHECKER__
 +#define EXPORT_PER_CPU_SYMBOL(var) EXPORT_SYMBOL(var)
 +#define EXPORT_PER_CPU_SYMBOL_GPL(var) EXPORT_SYMBOL_GPL(var)
 +#else
 +#define EXPORT_PER_CPU_SYMBOL(var)
 +#define EXPORT_PER_CPU_SYMBOL_GPL(var)
 +#endif
  
  #endif /* _LINUX_PERCPU_DEFS_H */
diff --combined include/linux/spinlock.h
index 89fac6a3f78b5feb7a832816fc7665cb639ce83d,dd57af4132663fff4195fe9f56ea2a09dc7d1391..f8854655860e3a10f5d708b9b749c43ead2bd48d
@@@ -60,7 -60,7 +60,7 @@@
  /*
   * Must define these before including other files, inline functions need them
   */
- #define LOCK_SECTION_NAME ".text.lock."KBUILD_BASENAME
+ #define LOCK_SECTION_NAME ".text..lock."KBUILD_BASENAME
  
  #define LOCK_SECTION_START(extra)               \
          ".subsection 1\n\t"                     \
@@@ -128,21 -128,19 +128,21 @@@ static inline void smp_mb__after_lock(v
  #define raw_spin_unlock_wait(lock)    arch_spin_unlock_wait(&(lock)->raw_lock)
  
  #ifdef CONFIG_DEBUG_SPINLOCK
 - extern void do_raw_spin_lock(raw_spinlock_t *lock);
 + extern void do_raw_spin_lock(raw_spinlock_t *lock) __acquires(lock);
  #define do_raw_spin_lock_flags(lock, flags) do_raw_spin_lock(lock)
   extern int do_raw_spin_trylock(raw_spinlock_t *lock);
 - extern void do_raw_spin_unlock(raw_spinlock_t *lock);
 + extern void do_raw_spin_unlock(raw_spinlock_t *lock) __releases(lock);
  #else
 -static inline void do_raw_spin_lock(raw_spinlock_t *lock)
 +static inline void do_raw_spin_lock(raw_spinlock_t *lock) __acquires(lock)
  {
 +      __acquire(lock);
        arch_spin_lock(&lock->raw_lock);
  }
  
  static inline void
 -do_raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long *flags)
 +do_raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long *flags) __acquires(lock)
  {
 +      __acquire(lock);
        arch_spin_lock_flags(&lock->raw_lock, *flags);
  }
  
@@@ -151,10 -149,9 +151,10 @@@ static inline int do_raw_spin_trylock(r
        return arch_spin_trylock(&(lock)->raw_lock);
  }
  
 -static inline void do_raw_spin_unlock(raw_spinlock_t *lock)
 +static inline void do_raw_spin_unlock(raw_spinlock_t *lock) __releases(lock)
  {
        arch_spin_unlock(&lock->raw_lock);
 +      __release(lock);
  }
  #endif
  
diff --combined init/Kconfig
index 2cce9f343ad0b6397ba7ce2103a3d8c88eaedd0c,313506d8be6ea54bbacf78f0deb1b7d9eead4c92..5cff9a980c397d48491145e9d1f9e4e42313cad4
@@@ -76,6 -76,14 +76,14 @@@ config INIT_ENV_ARG_LIMI
          variables passed to init from the kernel command line.
  
  
+ config CROSS_COMPILE
+       string "Cross-compiler tool prefix"
+       help
+         Same as running 'make CROSS_COMPILE=prefix-' but stored for
+         default make runs in this kernel build directory.  You don't
+         need to set this unless you want the configured kernel build
+         directory to select the cross-compiler automatically.
  config LOCALVERSION
        string "Local version - append to kernel release"
        help
@@@ -396,22 -404,6 +404,22 @@@ config RCU_FANOUT_EXAC
  
          Say N if unsure.
  
 +config RCU_FAST_NO_HZ
 +      bool "Accelerate last non-dyntick-idle CPU's grace periods"
 +      depends on TREE_RCU && NO_HZ && SMP
 +      default n
 +      help
 +        This option causes RCU to attempt to accelerate grace periods
 +        in order to allow the final CPU to enter dynticks-idle state
 +        more quickly.  On the other hand, this option increases the
 +        overhead of the dynticks-idle checking, particularly on systems
 +        with large numbers of CPUs.
 +
 +        Say Y if energy efficiency is critically important, particularly
 +              if you have relatively few CPUs.
 +
 +        Say N if you are unsure.
 +
  config TREE_RCU_TRACE
        def_bool RCU_TRACE && ( TREE_RCU || TREE_PREEMPT_RCU )
        select DEBUG_FS
@@@ -461,9 -453,59 +469,9 @@@ config LOG_BUF_SHIF
  config HAVE_UNSTABLE_SCHED_CLOCK
        bool
  
 -config GROUP_SCHED
 -      bool "Group CPU scheduler"
 -      depends on EXPERIMENTAL
 -      default n
 -      help
 -        This feature lets CPU scheduler recognize task groups and control CPU
 -        bandwidth allocation to such task groups.
 -        In order to create a group from arbitrary set of processes, use
 -        CONFIG_CGROUPS. (See Control Group support.)
 -
 -config FAIR_GROUP_SCHED
 -      bool "Group scheduling for SCHED_OTHER"
 -      depends on GROUP_SCHED
 -      default GROUP_SCHED
 -
 -config RT_GROUP_SCHED
 -      bool "Group scheduling for SCHED_RR/FIFO"
 -      depends on EXPERIMENTAL
 -      depends on GROUP_SCHED
 -      default n
 -      help
 -        This feature lets you explicitly allocate real CPU bandwidth
 -        to users or control groups (depending on the "Basis for grouping tasks"
 -        setting below. If enabled, it will also make it impossible to
 -        schedule realtime tasks for non-root users until you allocate
 -        realtime bandwidth for them.
 -        See Documentation/scheduler/sched-rt-group.txt for more information.
 -
 -choice
 -      depends on GROUP_SCHED
 -      prompt "Basis for grouping tasks"
 -      default USER_SCHED
 -
 -config USER_SCHED
 -      bool "user id"
 -      help
 -        This option will choose userid as the basis for grouping
 -        tasks, thus providing equal CPU bandwidth to each user.
 -
 -config CGROUP_SCHED
 -      bool "Control groups"
 -      depends on CGROUPS
 -      help
 -        This option allows you to create arbitrary task groups
 -        using the "cgroup" pseudo filesystem and control
 -        the cpu bandwidth allocated to each such task group.
 -        Refer to Documentation/cgroups/cgroups.txt for more
 -        information on "cgroup" pseudo filesystem.
 -
 -endchoice
 -
  menuconfig CGROUPS
        boolean "Control Group support"
 +      depends on EVENTFD
        help
          This option adds support for grouping sets of processes together, for
          use with process control subsystems such as Cpusets, CFS, memory
@@@ -582,62 -624,6 +590,62 @@@ config CGROUP_MEM_RES_CTLR_SWA
          Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page
          size is 4096bytes, 512k per 1Gbytes of swap.
  
 +menuconfig CGROUP_SCHED
 +      bool "Group CPU scheduler"
 +      depends on EXPERIMENTAL && CGROUPS
 +      default n
 +      help
 +        This feature lets CPU scheduler recognize task groups and control CPU
 +        bandwidth allocation to such task groups. It uses cgroups to group
 +        tasks.
 +
 +if CGROUP_SCHED
 +config FAIR_GROUP_SCHED
 +      bool "Group scheduling for SCHED_OTHER"
 +      depends on CGROUP_SCHED
 +      default CGROUP_SCHED
 +
 +config RT_GROUP_SCHED
 +      bool "Group scheduling for SCHED_RR/FIFO"
 +      depends on EXPERIMENTAL
 +      depends on CGROUP_SCHED
 +      default n
 +      help
 +        This feature lets you explicitly allocate real CPU bandwidth
 +        to task groups. If enabled, it will also make it impossible to
 +        schedule realtime tasks for non-root users until you allocate
 +        realtime bandwidth for them.
 +        See Documentation/scheduler/sched-rt-group.txt for more information.
 +
 +endif #CGROUP_SCHED
 +
 +config BLK_CGROUP
 +      tristate "Block IO controller"
 +      depends on CGROUPS && BLOCK
 +      default n
 +      ---help---
 +      Generic block IO controller cgroup interface. This is the common
 +      cgroup interface which should be used by various IO controlling
 +      policies.
 +
 +      Currently, CFQ IO scheduler uses it to recognize task groups and
 +      control disk bandwidth allocation (proportional time slice allocation)
 +      to such task groups.
 +
 +      This option only enables generic Block IO controller infrastructure.
 +      One needs to also enable actual IO controlling logic in CFQ for it
 +      to take effect. (CONFIG_CFQ_GROUP_IOSCHED=y).
 +
 +      See Documentation/cgroups/blkio-controller.txt for more information.
 +
 +config DEBUG_BLK_CGROUP
 +      bool "Enable Block IO controller debugging"
 +      depends on BLK_CGROUP
 +      default n
 +      ---help---
 +      Enable some debugging help. Currently it exports additional stat
 +      files in a cgroup which can be useful for debugging.
 +
  endif # CGROUPS
  
  config MM_OWNER
@@@ -998,6 -984,19 +1006,6 @@@ config PERF_EVENT
  
          Say Y if unsure.
  
 -config EVENT_PROFILE
 -      bool "Tracepoint profiling sources"
 -      depends on PERF_EVENTS && EVENT_TRACING
 -      default y
 -      help
 -       Allow the use of tracepoints as software performance events.
 -
 -       When this is enabled, you can create perf events based on
 -       tracepoints using PERF_TYPE_TRACEPOINT and the tracepoint ID
 -       found in debugfs://tracing/events/*/*/id. (The -e/--events
 -       option to the perf tool can parse and interpret symbolic
 -       tracepoints, in the subsystem:tracepoint_name format.)
 -
  config PERF_COUNTERS
        bool "Kernel performance counters (old config option)"
        depends on HAVE_PERF_EVENTS
@@@ -1121,7 -1120,7 +1129,7 @@@ config MMAP_ALLOW_UNINITIALIZE
          See Documentation/nommu-mmap.txt for more information.
  
  config PROFILING
 -      bool "Profiling support (EXPERIMENTAL)"
 +      bool "Profiling support"
        help
          Say Y here to enable the extended profiling support mechanisms used
          by profilers such as OProfile.
@@@ -1271,8 -1270,4 +1279,8 @@@ source "block/Kconfig
  config PREEMPT_NOTIFIERS
        bool
  
 +config PADATA
 +      depends on SMP
 +      bool
 +
  source "kernel/Kconfig.locks"
diff --combined kernel/module.c
index d806e00e4450adf135cf73ad57c7d9dd3c65daed,5daf0abd63c1879b4c4be72dfd7e72ff5411761a..0129769301e3106eb505576fbb495a64f289160c
@@@ -59,6 -59,8 +59,6 @@@
  #define CREATE_TRACE_POINTS
  #include <trace/events/module.h>
  
 -EXPORT_TRACEPOINT_SYMBOL(module_get);
 -
  #if 0
  #define DEBUGP printk
  #else
  DEFINE_MUTEX(module_mutex);
  EXPORT_SYMBOL_GPL(module_mutex);
  static LIST_HEAD(modules);
 +#ifdef CONFIG_KGDB_KDB
 +struct list_head *kdb_modules = &modules; /* kdb needs the list of modules */
 +#endif /* CONFIG_KGDB_KDB */
 +
  
  /* Block module loading/unloading? */
  int modules_disabled = 0;
@@@ -180,6 -178,8 +180,6 @@@ extern const struct kernel_symbol __sta
  extern const struct kernel_symbol __stop___ksymtab_gpl[];
  extern const struct kernel_symbol __start___ksymtab_gpl_future[];
  extern const struct kernel_symbol __stop___ksymtab_gpl_future[];
 -extern const struct kernel_symbol __start___ksymtab_gpl_future[];
 -extern const struct kernel_symbol __stop___ksymtab_gpl_future[];
  extern const unsigned long __start___kcrctab[];
  extern const unsigned long __start___kcrctab_gpl[];
  extern const unsigned long __start___kcrctab_gpl_future[];
@@@ -370,98 -370,54 +370,98 @@@ EXPORT_SYMBOL_GPL(find_module)
  
  #ifdef CONFIG_SMP
  
 -static void *percpu_modalloc(unsigned long size, unsigned long align,
 -                           const char *name)
 +static inline void __percpu *mod_percpu(struct module *mod)
  {
 -      void *ptr;
 +      return mod->percpu;
 +}
  
 +static int percpu_modalloc(struct module *mod,
 +                         unsigned long size, unsigned long align)
 +{
        if (align > PAGE_SIZE) {
                printk(KERN_WARNING "%s: per-cpu alignment %li > %li\n",
 -                     name, align, PAGE_SIZE);
 +                     mod->name, align, PAGE_SIZE);
                align = PAGE_SIZE;
        }
  
 -      ptr = __alloc_reserved_percpu(size, align);
 -      if (!ptr)
 +      mod->percpu = __alloc_reserved_percpu(size, align);
 +      if (!mod->percpu) {
                printk(KERN_WARNING
                       "Could not allocate %lu bytes percpu data\n", size);
 -      return ptr;
 +              return -ENOMEM;
 +      }
 +      mod->percpu_size = size;
 +      return 0;
  }
  
 -static void percpu_modfree(void *freeme)
 +static void percpu_modfree(struct module *mod)
  {
 -      free_percpu(freeme);
 +      free_percpu(mod->percpu);
  }
  
  static unsigned int find_pcpusec(Elf_Ehdr *hdr,
                                 Elf_Shdr *sechdrs,
                                 const char *secstrings)
  {
-       return find_sec(hdr, sechdrs, secstrings, ".data.percpu");
+       return find_sec(hdr, sechdrs, secstrings, ".data..percpu");
  }
  
 -static void percpu_modcopy(void *pcpudest, const void *from, unsigned long size)
 +static void percpu_modcopy(struct module *mod,
 +                         const void *from, unsigned long size)
  {
        int cpu;
  
        for_each_possible_cpu(cpu)
 -              memcpy(pcpudest + per_cpu_offset(cpu), from, size);
 +              memcpy(per_cpu_ptr(mod->percpu, cpu), from, size);
 +}
 +
 +/**
 + * is_module_percpu_address - test whether address is from module static percpu
 + * @addr: address to test
 + *
 + * Test whether @addr belongs to module static percpu area.
 + *
 + * RETURNS:
 + * %true if @addr is from module static percpu area
 + */
 +bool is_module_percpu_address(unsigned long addr)
 +{
 +      struct module *mod;
 +      unsigned int cpu;
 +
 +      preempt_disable();
 +
 +      list_for_each_entry_rcu(mod, &modules, list) {
 +              if (!mod->percpu_size)
 +                      continue;
 +              for_each_possible_cpu(cpu) {
 +                      void *start = per_cpu_ptr(mod->percpu, cpu);
 +
 +                      if ((void *)addr >= start &&
 +                          (void *)addr < start + mod->percpu_size) {
 +                              preempt_enable();
 +                              return true;
 +                      }
 +              }
 +      }
 +
 +      preempt_enable();
 +      return false;
  }
  
  #else /* ... !CONFIG_SMP */
  
 -static inline void *percpu_modalloc(unsigned long size, unsigned long align,
 -                                  const char *name)
 +static inline void __percpu *mod_percpu(struct module *mod)
  {
        return NULL;
  }
 -static inline void percpu_modfree(void *pcpuptr)
 +static inline int percpu_modalloc(struct module *mod,
 +                                unsigned long size, unsigned long align)
 +{
 +      return -ENOMEM;
 +}
 +static inline void percpu_modfree(struct module *mod)
  {
 -      BUG();
  }
  static inline unsigned int find_pcpusec(Elf_Ehdr *hdr,
                                        Elf_Shdr *sechdrs,
  {
        return 0;
  }
 -static inline void percpu_modcopy(void *pcpudst, const void *src,
 -                                unsigned long size)
 +static inline void percpu_modcopy(struct module *mod,
 +                                const void *from, unsigned long size)
  {
        /* pcpusec should be 0, and size of that section should be 0. */
        BUG_ON(size != 0);
  }
 +bool is_module_percpu_address(unsigned long addr)
 +{
 +      return false;
 +}
  
  #endif /* CONFIG_SMP */
  
@@@ -515,22 -467,16 +515,22 @@@ MODINFO_ATTR(srcversion)
  static char last_unloaded_module[MODULE_NAME_LEN+1];
  
  #ifdef CONFIG_MODULE_UNLOAD
 +
 +EXPORT_TRACEPOINT_SYMBOL(module_get);
 +
  /* Init the unload section of the module. */
  static void module_unload_init(struct module *mod)
  {
        int cpu;
  
        INIT_LIST_HEAD(&mod->modules_which_use_me);
 -      for_each_possible_cpu(cpu)
 -              local_set(__module_ref_addr(mod, cpu), 0);
 +      for_each_possible_cpu(cpu) {
 +              per_cpu_ptr(mod->refptr, cpu)->incs = 0;
 +              per_cpu_ptr(mod->refptr, cpu)->decs = 0;
 +      }
 +
        /* Hold reference count during initialization. */
 -      local_set(__module_ref_addr(mod, raw_smp_processor_id()), 1);
 +      __this_cpu_write(mod->refptr->incs, 1);
        /* Backwards compatibility macros put refcount during init. */
        mod->waiter = current;
  }
@@@ -669,28 -615,12 +669,28 @@@ static int try_stop_module(struct modul
  
  unsigned int module_refcount(struct module *mod)
  {
 -      unsigned int total = 0;
 +      unsigned int incs = 0, decs = 0;
        int cpu;
  
        for_each_possible_cpu(cpu)
 -              total += local_read(__module_ref_addr(mod, cpu));
 -      return total;
 +              decs += per_cpu_ptr(mod->refptr, cpu)->decs;
 +      /*
 +       * ensure the incs are added up after the decs.
 +       * module_put ensures incs are visible before decs with smp_wmb.
 +       *
 +       * This 2-count scheme avoids the situation where the refcount
 +       * for CPU0 is read, then CPU0 increments the module refcount,
 +       * then CPU1 drops that refcount, then the refcount for CPU1 is
 +       * read. We would record a decrement but not its corresponding
 +       * increment so we would see a low count (disaster).
 +       *
 +       * Rare situation? But module_refcount can be preempted, and we
 +       * might be tallying up 4096+ CPUs. So it is not impossible.
 +       */
 +      smp_rmb();
 +      for_each_possible_cpu(cpu)
 +              incs += per_cpu_ptr(mod->refptr, cpu)->incs;
 +      return incs - decs;
  }
  EXPORT_SYMBOL(module_refcount);
  
@@@ -726,8 -656,16 +726,8 @@@ SYSCALL_DEFINE2(delete_module, const ch
                return -EFAULT;
        name[MODULE_NAME_LEN-1] = '\0';
  
 -      /* Create stop_machine threads since free_module relies on
 -       * a non-failing stop_machine call. */
 -      ret = stop_machine_create();
 -      if (ret)
 -              return ret;
 -
 -      if (mutex_lock_interruptible(&module_mutex) != 0) {
 -              ret = -EINTR;
 -              goto out_stop;
 -      }
 +      if (mutex_lock_interruptible(&module_mutex) != 0)
 +              return -EINTR;
  
        mod = find_module(name);
        if (!mod) {
  
   out:
        mutex_unlock(&module_mutex);
 -out_stop:
 -      stop_machine_destroy();
        return ret;
  }
  
@@@ -856,15 -796,14 +856,15 @@@ static struct module_attribute refcnt 
  void module_put(struct module *module)
  {
        if (module) {
 -              unsigned int cpu = get_cpu();
 -              local_dec(__module_ref_addr(module, cpu));
 -              trace_module_put(module, _RET_IP_,
 -                               local_read(__module_ref_addr(module, cpu)));
 +              preempt_disable();
 +              smp_wmb(); /* see comment in module_refcount */
 +              __this_cpu_inc(module->refptr->decs);
 +
 +              trace_module_put(module, _RET_IP_);
                /* Maybe they're waiting for us to drop reference? */
                if (unlikely(!module_is_live(module)))
                        wake_up_process(module->waiter);
 -              put_cpu();
 +              preempt_enable();
        }
  }
  EXPORT_SYMBOL(module_put);
@@@ -1144,7 -1083,6 +1144,7 @@@ static void add_sect_attrs(struct modul
                if (sattr->name == NULL)
                        goto out;
                sect_attrs->nsections++;
 +              sysfs_attr_init(&sattr->mattr.attr);
                sattr->mattr.show = module_sect_show;
                sattr->mattr.store = NULL;
                sattr->mattr.attr.name = sattr->name;
@@@ -1184,7 -1122,7 +1184,7 @@@ struct module_notes_attrs 
        struct bin_attribute attrs[0];
  };
  
 -static ssize_t module_notes_read(struct kobject *kobj,
 +static ssize_t module_notes_read(struct file *filp, struct kobject *kobj,
                                 struct bin_attribute *bin_attr,
                                 char *buf, loff_t pos, size_t count)
  {
@@@ -1240,7 -1178,6 +1240,7 @@@ static void add_notes_attrs(struct modu
                if (sect_empty(&sechdrs[i]))
                        continue;
                if (sechdrs[i].sh_type == SHT_NOTE) {
 +                      sysfs_bin_attr_init(nattr);
                        nattr->attr.name = mod->sect_attrs->attrs[loaded].name;
                        nattr->attr.mode = S_IRUGO;
                        nattr->size = sechdrs[i].sh_size;
@@@ -1313,7 -1250,6 +1313,7 @@@ int module_add_modinfo_attrs(struct mod
                if (!attr->test ||
                    (attr->test && attr->test(mod))) {
                        memcpy(temp_attr, attr, sizeof(*temp_attr));
 +                      sysfs_attr_init(&temp_attr->attr);
                        error = sysfs_create_file(&mod->mkobj.kobj,&temp_attr->attr);
                        ++temp_attr;
                }
@@@ -1459,10 -1395,11 +1459,10 @@@ static void free_module(struct module *
        /* This may be NULL, but that's OK */
        module_free(mod, mod->module_init);
        kfree(mod->args);
 -      if (mod->percpu)
 -              percpu_modfree(mod->percpu);
 -#if defined(CONFIG_MODULE_UNLOAD) && defined(CONFIG_SMP)
 +      percpu_modfree(mod);
 +#if defined(CONFIG_MODULE_UNLOAD)
        if (mod->refptr)
 -              percpu_modfree(mod->refptr);
 +              free_percpu(mod->refptr);
  #endif
        /* Free lock-classes: */
        lockdep_free_key_range(mod->module_core, mod->core_size);
@@@ -1578,7 -1515,7 +1578,7 @@@ static int simplify_symbols(Elf_Shdr *s
                default:
                        /* Divert to percpu allocation if a percpu var. */
                        if (sym[i].st_shndx == pcpuindex)
 -                              secbase = (unsigned long)mod->percpu;
 +                              secbase = (unsigned long)mod_percpu(mod);
                        else
                                secbase = sechdrs[sym[i].st_shndx].sh_addr;
                        sym[i].st_value += secbase;
@@@ -2012,9 -1949,8 +2012,9 @@@ static noinline struct module *load_mod
        unsigned int modindex, versindex, infoindex, pcpuindex;
        struct module *mod;
        long err = 0;
 -      void *percpu = NULL, *ptr = NULL; /* Stops spurious gcc warning */
 +      void *ptr = NULL; /* Stops spurious gcc warning */
        unsigned long symoffs, stroffs, *strmap;
 +      void __percpu *percpu;
  
        mm_segment_t old_fs;
  
  
        if (pcpuindex) {
                /* We have a special allocation for this section. */
 -              percpu = percpu_modalloc(sechdrs[pcpuindex].sh_size,
 -                                       sechdrs[pcpuindex].sh_addralign,
 -                                       mod->name);
 -              if (!percpu) {
 -                      err = -ENOMEM;
 +              err = percpu_modalloc(mod, sechdrs[pcpuindex].sh_size,
 +                                    sechdrs[pcpuindex].sh_addralign);
 +              if (err)
                        goto free_mod;
 -              }
                sechdrs[pcpuindex].sh_flags &= ~(unsigned long)SHF_ALLOC;
 -              mod->percpu = percpu;
        }
 +      /* Keep this around for failure path. */
 +      percpu = mod_percpu(mod);
  
        /* Determine total sizes, and put offsets in sh_entsize.  For now
           this is done generically; there doesn't appear to be any
        mod = (void *)sechdrs[modindex].sh_addr;
        kmemleak_load_module(mod, hdr, sechdrs, secstrings);
  
 -#if defined(CONFIG_MODULE_UNLOAD) && defined(CONFIG_SMP)
 -      mod->refptr = percpu_modalloc(sizeof(local_t), __alignof__(local_t),
 -                                    mod->name);
 +#if defined(CONFIG_MODULE_UNLOAD)
 +      mod->refptr = alloc_percpu(struct module_ref);
        if (!mod->refptr) {
                err = -ENOMEM;
                goto free_init;
        sort_extable(mod->extable, mod->extable + mod->num_exentries);
  
        /* Finally, copy percpu area over. */
 -      percpu_modcopy(mod->percpu, (void *)sechdrs[pcpuindex].sh_addr,
 +      percpu_modcopy(mod, (void *)sechdrs[pcpuindex].sh_addr,
                       sechdrs[pcpuindex].sh_size);
  
        add_kallsyms(mod, sechdrs, hdr->e_shnum, symindex, strindex,
        kobject_put(&mod->mkobj.kobj);
   free_unload:
        module_unload_free(mod);
 -#if defined(CONFIG_MODULE_UNLOAD) && defined(CONFIG_SMP)
 -      percpu_modfree(mod->refptr);
 +#if defined(CONFIG_MODULE_UNLOAD)
 +      free_percpu(mod->refptr);
   free_init:
  #endif
        module_free(mod, mod->module_init);
        module_free(mod, mod->module_core);
        /* mod will be freed with core. Don't access it beyond this line! */
   free_percpu:
 -      if (percpu)
 -              percpu_modfree(percpu);
 +      free_percpu(percpu);
   free_mod:
        kfree(args);
        kfree(strmap);
diff --combined scripts/Makefile.lib
index cbcd654215e68c2c0cc111737c94ae00074b9f3a,f3ccdb1b302baad27e160792b9f6178cd8c6a61a..54fd1b700131e1e1fcb0ddd13d89ee3a06983ecb
@@@ -241,11 -241,7 +241,11 @@@ cmd_lzma = (cat $(filter-out FORCE,$^) 
        lzma -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \
        (rm -f $@ ; false)
  
- quiet_cmd_lzo = LZO    $@
+ quiet_cmd_lzo = LZO     $@
  cmd_lzo = (cat $(filter-out FORCE,$^) | \
        lzop -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \
        (rm -f $@ ; false)
 +
 +# misc stuff
 +# ---------------------------------------------------------------------------
 +quote:="
index a932ae52f921b5967b705432d0ef972f60c73c24,f3b5c05ced40f5b4c47ae34e869e9a8181c69d51..5958fffb2114fdedfb961858b524e6b42fe8ce2b
@@@ -202,6 -202,7 +202,7 @@@ input_file() 
                        print_mtime "$1" >> ${output}
                        cat "$1"         >> ${output}
                else
+                       echo "$1 \\"
                        cat "$1" | while read type dir file perm ; do
                                if [ "$type" == "file" ]; then
                                        echo "$file \\";
@@@ -231,7 -232,7 +232,7 @@@ arg="$1
  case "$arg" in
        "-l")   # files included in initramfs - used by kbuild
                dep_list="list_"
-               echo "deps_initramfs := \\"
+               echo "deps_initramfs := $0 \\"
                shift
                ;;
        "-o")   # generate compressed cpio image named $1
                echo "$output_file" | grep -q "\.gz$" && compr="gzip -9 -f"
                echo "$output_file" | grep -q "\.bz2$" && compr="bzip2 -9 -f"
                echo "$output_file" | grep -q "\.lzma$" && compr="lzma -9 -f"
 +              echo "$output_file" | grep -q "\.lzo$" && compr="lzop -9 -f"
                echo "$output_file" | grep -q "\.cpio$" && compr="cat"
                shift
                ;;
diff --combined scripts/kconfig/Makefile
index 186c46604d0669f8f1d4cfbcaf7ad0cdc6d658fa,75bdf5ae202c9e29b811c37f0a4ed5e1e6056d2e..7cdae39b8f09fbb05c73c39424d7bb2f344a8360
@@@ -23,6 -23,9 +23,9 @@@ menuconfig: $(obj)/mcon
  config: $(obj)/conf
        $< $(Kconfig)
  
+ nconfig: $(obj)/nconf
+       $< $(Kconfig)
  oldconfig: $(obj)/conf
        $< -o $(Kconfig)
  
@@@ -30,17 -33,8 +33,17 @@@ silentoldconfig: $(obj)/con
        $(Q)mkdir -p include/generated
        $< -s $(Kconfig)
  
 +# if no path is given, then use src directory to find file
 +ifdef LSMOD
 +LSMOD_F := $(LSMOD)
 +ifeq ($(findstring /,$(LSMOD)),)
 +  LSMOD_F := $(objtree)/$(LSMOD)
 +endif
 +endif
 +
  localmodconfig: $(obj)/streamline_config.pl $(obj)/conf
 -      $(Q)perl $< $(srctree) $(Kconfig) > .tmp.config
 +      $(Q)mkdir -p include/generated
 +      $(Q)perl $< $(srctree) $(Kconfig) $(LSMOD_F) > .tmp.config
        $(Q)if [ -f .config ]; then                             \
                        cmp -s .tmp.config .config ||           \
                        (mv -f .config .config.old.1;           \
@@@ -54,8 -48,7 +57,8 @@@
        $(Q)rm -f .tmp.config
  
  localyesconfig: $(obj)/streamline_config.pl $(obj)/conf
 -      $(Q)perl $< $(srctree) $(Kconfig) > .tmp.config
 +      $(Q)mkdir -p include/generated
 +      $(Q)perl $< $(srctree) $(Kconfig) $(LSMOD_F) > .tmp.config
        $(Q)sed -i s/=m/=y/ .tmp.config
        $(Q)if [ -f .config ]; then                             \
                        cmp -s .tmp.config .config ||           \
@@@ -120,6 -113,7 +123,7 @@@ endi
  # Help text used by make help
  help:
        @echo  '  config          - Update current config utilising a line-oriented program'
+       @echo  '  nconfig         - Update current config utilising a ncurses menu based program'
        @echo  '  menuconfig      - Update current config utilising a menu based program'
        @echo  '  xconfig         - Update current config utilising a QT based front-end'
        @echo  '  gconfig         - Update current config utilising a GTK based front-end'
@@@ -147,6 -141,8 +151,8 @@@ HOST_EXTRACFLAGS += -DLOCAL
  # ===========================================================================
  # Shared Makefile for the various kconfig executables:
  # conf:         Used for defconfig, oldconfig and related targets
+ # nconf:  Used for the nconfig target.
+ #         Utilizes ncurses
  # mconf:  Used for the menuconfig target
  #         Utilizes the lxdialog package
  # qconf:  Used for the xconfig target
@@@ -159,11 -155,16 +165,16 @@@ lxdialog := lxdialog/checklist.o lxdial
  lxdialog += lxdialog/textbox.o lxdialog/yesno.o lxdialog/menubox.o
  
  conf-objs     := conf.o  zconf.tab.o
- mconf-objs    := mconf.o zconf.tab.o $(lxdialog)
+ mconf-objs     := mconf.o zconf.tab.o $(lxdialog)
+ nconf-objs     := nconf.o zconf.tab.o nconf.gui.o
  kxgettext-objs        := kxgettext.o zconf.tab.o
  
  hostprogs-y := conf qconf gconf kxgettext
  
+ ifeq ($(MAKECMDGOALS),nconfig)
+       hostprogs-y += nconf
+ endif
  ifeq ($(MAKECMDGOALS),menuconfig)
        hostprogs-y += mconf
  endif
@@@ -187,7 -188,7 +198,7 @@@ endi
  
  clean-files   := lkc_defs.h qconf.moc .tmp_qtcheck \
                   .tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c gconf.glade.h
- clean-files     += mconf qconf gconf
+ clean-files     += mconf qconf gconf nconf
  clean-files     += config.pot linux.pot
  
  # Check that we have the required ncurses stuff installed for lxdialog (menuconfig)
@@@ -212,6 -213,7 +223,7 @@@ HOSTLOADLIBES_gconf        = `pkg-config --lib
  HOSTCFLAGS_gconf.o    = `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \
                            -D LKC_DIRECT_LINK
  
+ HOSTLOADLIBES_nconf   = -lmenu -lpanel -lncurses
  $(obj)/qconf.o: $(obj)/.tmp_qtcheck
  
  ifeq ($(qconf-target),1)
diff --combined scripts/kconfig/util.c
index 25d1ec4ca28a0e5ed3090291df8f2f67e2a20b4b,81c100d953ef401954ad57d4b9768c544b821033..78b5c04e736bcfad3f25d7f85fe2b5660572cb52
@@@ -72,12 -72,13 +72,13 @@@ int file_write_dep(const char *name
  }
  
  
 -/* Allocate initial growable sting */
 +/* Allocate initial growable string */
  struct gstr str_new(void)
  {
        struct gstr gs;
        gs.s = malloc(sizeof(char) * 64);
        gs.len = 64;
+       gs.max_width = 0;
        strcpy(gs.s, "\0");
        return gs;
  }
@@@ -88,6 -89,7 +89,7 @@@ struct gstr str_assign(const char *s
        struct gstr gs;
        gs.s = strdup(s);
        gs.len = strlen(s) + 1;
+       gs.max_width = 0;
        return gs;
  }
  
diff --combined scripts/markup_oops.pl
index e950f9cde0199194f8db3e0ceb4579178f186bbe,90e1d9aa35b55d26a1e05ab51fff6947edcb436d..827896f56501aaebba885e70adc24a477fd31884
@@@ -2,6 -2,7 +2,7 @@@
  
  use File::Basename;
  use Math::BigInt;
+ use Getopt::Long;
  
  # Copyright 2008, Intel Corporation
  #
  #     Arjan van de Ven <arjan@linux.intel.com>
  
  
+ my $cross_compile = "";
+ my $vmlinux_name = "";
+ my $modulefile = "";
+ # Get options
+ Getopt::Long::GetOptions(
+       'cross-compile|c=s'     => \$cross_compile,
+       'module|m=s'            => \$modulefile,
+       'help|h'                => \&usage,
+ ) || usage ();
  my $vmlinux_name = $ARGV[0];
  if (!defined($vmlinux_name)) {
        my $kerver = `uname -r`;
@@@ -23,9 -34,8 +34,8 @@@
        print "No vmlinux specified, assuming $vmlinux_name\n";
  }
  my $filename = $vmlinux_name;
- #
- # Step 1: Parse the oops to find the EIP value
- #
+ # Parse the oops to find the EIP value
  
  my $target = "0";
  my $function;
@@@ -158,7 -168,7 +168,7 @@@ while (<STDIN>) 
                $function = $1;
                $func_offset = $2;
        }
 -      if ($line =~ /RIP: 0010:\[\<[0-9a-f]+\>\]  \[\<[0-9a-f]+\>\] ([a-zA-Z0-9\_]+)\+(0x[0-9a-f]+)\/0x[a-f0-9]/) {
 +      if ($line =~ /RIP: 0010:\[\<[0-9a-f]+\>\]  \[\<[0-9a-f]+\>\] ([a-zA-Z0-9\_]+)\+0x([0-9a-f]+)\/0x[a-f0-9]/) {
                $function = $1;
                $func_offset = $2;
        }
@@@ -177,26 -187,26 +187,26 @@@ my $decodestart = Math::BigInt->from_he
  my $decodestop = Math::BigInt->from_hex("0x$target") + 8192;
  if ($target eq "0") {
        print "No oops found!\n";
-       print "Usage: \n";
-       print "    dmesg | perl scripts/markup_oops.pl vmlinux\n";
-       exit;
+       usage();
  }
  
  # if it's a module, we need to find the .ko file and calculate a load offset
  if ($module ne "") {
-       my $modulefile = `modinfo $module | grep '^filename:' | awk '{ print \$2 }'`;
-       chomp($modulefile);
+       if ($modulefile eq "") {
+               $modulefile = `modinfo -F filename $module`;
+               chomp($modulefile);
+       }
        $filename = $modulefile;
        if ($filename eq "") {
                print "Module .ko file for $module not found. Aborting\n";
                exit;
        }
        # ok so we found the module, now we need to calculate the vma offset
-       open(FILE, "objdump -dS $filename |") || die "Cannot start objdump";
+       open(FILE, $cross_compile."objdump -dS $filename |") || die "Cannot start objdump";
        while (<FILE>) {
                if ($_ =~ /^([0-9a-f]+) \<$function\>\:/) {
                        my $fu = $1;
-                       $vmaoffset = hex($target) - hex($fu) - hex($func_offset);
+                       $vmaoffset = Math::BigInt->from_hex("0x$target") - Math::BigInt->from_hex("0x$fu") - Math::BigInt->from_hex("0x$func_offset");
                }
        }
        close(FILE);
  
  my $counter = 0;
  my $state   = 0;
- my $center  = 0;
+ my $center  = -1;
  my @lines;
  my @reglines;
  
@@@ -212,7 -222,7 +222,7 @@@ sub InRange 
        my ($address, $target) = @_;
        my $ad = "0x".$address;
        my $ta = "0x".$target;
-       my $delta = hex($ad) - hex($ta);
+       my $delta = Math::BigInt->from_hex($ad) - Math::BigInt->from_hex($ta);
  
        if (($delta > -4096) && ($delta < 4096)) {
                return 1;
  # first, parse the input into the lines array, but to keep size down,
  # we only do this for 4Kb around the sweet spot
  
- open(FILE, "objdump -dS --adjust-vma=$vmaoffset --start-address=$decodestart --stop-address=$decodestop $filename |") || die "Cannot start objdump";
+ open(FILE, $cross_compile."objdump -dS --adjust-vma=$vmaoffset --start-address=$decodestart --stop-address=$decodestop $filename |") || die "Cannot start objdump";
  
  while (<FILE>) {
        my $line = $_;
                                $state = 1;
                        }
                }
-       } else {
+       }
+       if ($state == 1) {
                if ($line =~ /^([a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]+)\:/) {
                        my $val = $1;
                        if (!InRange($val, $target)) {
@@@ -259,7 -270,7 +270,7 @@@ if ($counter == 0) 
        exit;
  }
  
- if ($center == 0) {
+ if ($center == -1) {
        print "No matching code found \n";
        exit;
  }
@@@ -344,3 -355,16 +355,16 @@@ while ($i < $finish) 
        $i = $i +1;
  }
  
+ sub usage {
+       print <<EOT;
+ Usage:
+   dmesg | perl $0 [OPTION] [VMLINUX]
+ OPTION:
+   -c, --cross-compile CROSS_COMPILE   Specify the prefix used for toolchain.
+   -m, --module MODULE_DIRNAME         Specify the module filename.
+   -h, --help                          Help.
+ EOT
+       exit;
+ }
diff --combined scripts/package/mkspec
index fa27f3dac76992c3e37fa49bbfc61e294464d306,16ae0dd746e19fee0440a55ea53f92b577cf69dc..15440f55aef67f05d071156570b7f8e5c14927d6
@@@ -1,6 -1,6 +1,6 @@@
  #!/bin/sh
  #
 -#     Output a simple RPM spec file that uses no fancy features requring
 +#     Output a simple RPM spec file that uses no fancy features requiring
  #     RPM v4. This is intended to work with any RPM distro.
  #
  #     The only gothic bit here is redefining install_post to avoid
@@@ -39,7 -39,7 +39,7 @@@ if ! $PREBUILT; the
  echo "Source: kernel-$__KERNELRELEASE.tar.gz"
  fi
  
- echo "BuildRoot: /var/tmp/%{name}-%{PACKAGE_VERSION}-root"
+ echo "BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root"
  echo "Provides: $PROVIDES"
  echo "%define __spec_install_post /usr/lib/rpm/brp-compress || :"
  echo "%define debug_package %{nil}"