]> Pileus Git - ~andy/linux/commitdiff
Merge git://git.infradead.org/mtd-2.6
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 22 Jun 2009 23:56:22 +0000 (16:56 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 22 Jun 2009 23:56:22 +0000 (16:56 -0700)
* git://git.infradead.org/mtd-2.6: (63 commits)
  mtd: OneNAND: Allow setting of boundary information when built as module
  jffs2: leaking jffs2_summary in function jffs2_scan_medium
  mtd: nand: Fix memory leak on txx9ndfmc probe failure.
  mtd: orion_nand: use burst reads with double word accesses
  mtd/nand: s3c6400 support for s3c2410 driver
  [MTD] [NAND] S3C2410: Use DIV_ROUND_UP
  [MTD] [NAND] S3C2410: Deal with unaligned lengths in S3C2440 buffer read/write
  [MTD] [NAND] S3C2410: Allow the machine code to get the BBT table from NAND
  [MTD] [NAND] S3C2410: Added a kerneldoc for s3c2410_nand_set
  mtd: physmap_of: Add multiple regions and concatenation support
  mtd: nand: max_retries off by one in mxc_nand
  mtd: nand: s3c2410_nand_setrate(): use correct macros for 2412/2440
  mtd: onenand: add bbt_wait & unlock_all as replaceable for some platform
  mtd: Flex-OneNAND support
  mtd: nand: add OMAP2/OMAP3 NAND driver
  mtd: maps: Blackfin async: fix memory leaks in probe/remove funcs
  mtd: uclinux: mark local stuff static
  mtd: uclinux: do not allow to be built as a module
  mtd: uclinux: allow systems to override map addr/size
  mtd: blackfin NFC: fix hang when using NAND on BF527-EZKITs
  ...

1  2 
Documentation/kernel-parameters.txt
MAINTAINERS
drivers/mtd/mtd_blkdevs.c
drivers/mtd/nand/Kconfig
drivers/mtd/nand/davinci_nand.c
drivers/mtd/onenand/omap2.c
fs/compat_ioctl.c

index 5092a2be83c57b5ebb3d1de05493b5f7a9c36ce4,ad2b3078e59c9d17fbbb796cd20eb6ff2bf7b5ce..54ebf100e4e02301e8f2f88a0b98ddc85d653a85
@@@ -48,7 -48,6 +48,7 @@@ parameter is applicable
        EFI     EFI Partitioning (GPT) is enabled
        EIDE    EIDE/ATAPI support is enabled.
        FB      The frame buffer device is enabled.
 +      GCOV    GCOV profiling is enabled.
        HW      Appropriate hardware is enabled.
        IA-64   IA-64 architecture is enabled.
        IMA     Integrity measurement architecture is enabled.
@@@ -57,6 -56,7 +57,6 @@@
        ISAPNP  ISA PnP code is enabled.
        ISDN    Appropriate ISDN support is enabled.
        JOY     Appropriate joystick support is enabled.
 -      KMEMTRACE kmemtrace is enabled.
        LIBATA  Libata driver is enabled
        LP      Printer support is enabled.
        LOOP    Loopback device support is enabled.
@@@ -329,6 -329,11 +329,6 @@@ and is between 256 and 4096 characters
                                    flushed before they will be reused, which
                                    is a lot of faster
  
 -      amd_iommu_size= [HW,X86-64]
 -                      Define the size of the aperture for the AMD IOMMU
 -                      driver. Possible values are:
 -                      '32M', '64M' (default), '128M', '256M', '512M', '1G'
 -
        amijoy.map=     [HW,JOY] Amiga joystick support
                        Map of devices attached to JOY0DAT and JOY1DAT
                        Format: <a>,<b>
                        Also note the kernel might malfunction if you disable
                        some critical bits.
  
 +      cmo_free_hint=  [PPC] Format: { yes | no }
 +                      Specify whether pages are marked as being inactive
 +                      when they are freed.  This is used in CMO environments
 +                      to determine OS memory pressure for page stealing by
 +                      a hypervisor.
 +                      Default: yes
 +
        code_bytes      [X86] How many bytes of object code to print
                        in an oops report.
                        Range: 0 - 8192
                        console=brl,ttyS0
                For now, only VisioBraille is supported.
  
 +      consoleblank=   [KNL] The console blank (screen saver) timeout in
 +                      seconds. Defaults to 10*60 = 10mins. A value of 0
 +                      disables the blank timer.
 +
        coredump_filter=
                        [KNL] Change the default value for
                        /proc/<pid>/coredump_filter.
                        DMA-API debugging code disables itself because the
                        architectural default is too low.
  
 +      dma_debug_driver=<driver_name>
 +                      With this option the DMA-API debugging driver
 +                      filter feature can be enabled at boot time. Just
 +                      pass the driver to filter for as the parameter.
 +                      The filter can be disabled or changed to another
 +                      driver later using sysfs.
 +
        dscc4.setup=    [NET]
  
        dtc3181e=       [HW,SCSI]
                        ia64_pal_cache_flush instead of SAL_CACHE_FLUSH.
  
        ftrace=[tracer]
 -                      [ftrace] will set and start the specified tracer
 +                      [FTRACE] will set and start the specified tracer
                        as early as possible in order to facilitate early
                        boot debugging.
  
        ftrace_dump_on_oops
 -                      [ftrace] will dump the trace buffers on oops.
 +                      [FTRACE] will dump the trace buffers on oops.
 +
 +      ftrace_filter=[function-list]
 +                      [FTRACE] Limit the functions traced by the function
 +                      tracer at boot up. function-list is a comma separated
 +                      list of functions. This list can be changed at run
 +                      time by the set_ftrace_filter file in the debugfs
 +                      tracing directory. 
 +
 +      ftrace_notrace=[function-list]
 +                      [FTRACE] Do not trace the functions specified in
 +                      function-list. This list can be changed at run time
 +                      by the set_ftrace_notrace file in the debugfs
 +                      tracing directory.
  
        gamecon.map[2|3]=
                        [HW,JOY] Multisystem joystick and NES/SNES/PSX pad
                        Format: off | on
                        default: on
  
 +      gcov_persist=   [GCOV] When non-zero (default), profiling data for
 +                      kernel modules is saved and remains accessible via
 +                      debugfs, even when the module is unloaded/reloaded.
 +                      When zero, profiling data is discarded and associated
 +                      debugfs files are removed at module unload time.
 +
        gdth=           [HW,SCSI]
                        See header of drivers/scsi/gdth.c.
  
  
        ide-core.nodma= [HW] (E)IDE subsystem
                        Format: =0.0 to prevent dma on hda, =0.1 hdb =1.0 hdc
 -                      .vlb_clock .pci_clock .noflush .noprobe .nowerr .cdrom
 -                      .chs .ignore_cable are additional options
 -                      See Documentation/ide/ide.txt.
 -
 -      idebus=         [HW] (E)IDE subsystem - VLB/PCI bus speed
 +                      .vlb_clock .pci_clock .noflush .nohpa .noprobe .nowerr
 +                      .cdrom .chs .ignore_cable are additional options
                        See Documentation/ide/ide.txt.
  
        ide-pci-generic.all-generic-ide [HW] (E)IDE subsystem
                        Formt: { "sha1" | "md5" }
                        default: "sha1"
  
 +      ima_tcb         [IMA]
 +                      Load a policy which meets the needs of the Trusted
 +                      Computing Base.  This means IMA will measure all
 +                      programs exec'd, files mmap'd for exec, and all files
 +                      opened for read by uid=0.
 +
        in2000=         [HW,SCSI]
                        See header of drivers/scsi/in2000.c.
  
                        use the HighMem zone if it exists, and the Normal
                        zone if it does not.
  
 -      kmemtrace.enable=       [KNL,KMEMTRACE] Format: { yes | no }
 -                              Controls whether kmemtrace is enabled
 -                              at boot-time.
 -
 -      kmemtrace.subbufs=n     [KNL,KMEMTRACE] Overrides the number of
 -                      subbufs kmemtrace's relay channel has. Set this
 -                      higher than default (KMEMTRACE_N_SUBBUFS in code) if
 -                      you experience buffer overruns.
 -
        kgdboc=         [HW] kgdb over consoles.
                        Requires a tty driver that supports console polling.
 -                      (only serial suported for now)
 +                      (only serial supported for now)
                        Format: <serial_device>[,baud]
  
        kmac=           [MIPS] korina ethernet MAC address.
                        Configure the RouterBoard 532 series on-chip
                        Ethernet adapter MAC address.
  
 +      kmemleak=       [KNL] Boot-time kmemleak enable/disable
 +                      Valid arguments: on, off
 +                      Default: on
 +
        kstack=N        [X86] Print N words from the kernel stack
                        in oops dumps.
  
        min_addr=nn[KMG]        [KNL,BOOT,ia64] All physical memory below this
                        physical address is ignored.
  
 +      mini2440=       [ARM,HW,KNL]
 +                      Format:[0..2][b][c][t]
 +                      Default: "0tb"
 +                      MINI2440 configuration specification:
 +                      0 - The attached screen is the 3.5" TFT
 +                      1 - The attached screen is the 7" TFT
 +                      2 - The VGA Shield is attached (1024x768)
 +                      Leaving out the screen size parameter will not load
 +                      the TFT driver, and the framebuffer will be left
 +                      unconfigured.
 +                      b - Enable backlight. The TFT backlight pin will be
 +                      linked to the kernel VESA blanking code and a GPIO
 +                      LED. This parameter is not necessary when using the
 +                      VGA shield.
 +                      c - Enable the s3c camera interface.
 +                      t - Reserved for enabling touchscreen support. The
 +                      touchscreen support is not enabled in the mainstream
 +                      kernel as of 2.6.30, a preliminary port can be found
 +                      in the "bleeding edge" mini2440 support kernel at
 +                      http://repo.or.cz/w/linux-2.6/mini2440.git
 +
        mminit_loglevel=
                        [KNL] When CONFIG_DEBUG_MEMORY_INIT is set, this
                        parameter allows control of the logging verbosity for
        mtdparts=       [MTD]
                        See drivers/mtd/cmdlinepart.c.
  
+       onenand.bdry=   [HW,MTD] Flex-OneNAND Boundary Configuration
+                       Format: [die0_boundary][,die0_lock][,die1_boundary][,die1_lock]
+                       boundary - index of last SLC block on Flex-OneNAND.
+                                  The remaining blocks are configured as MLC blocks.
+                       lock     - Configure if Flex-OneNAND boundary should be locked.
+                                  Once locked, the boundary cannot be changed.
+                                  1 indicates lock status, 0 indicates unlock status.
        mtdset=         [ARM]
                        ARM/S3C2412 JIVE boot control
  
                        ('y', default) or cooked coordinates ('n')
  
        mtrr_chunk_size=nn[KMG] [X86]
 -                      used for mtrr cleanup. It is largest continous chunk
 +                      used for mtrr cleanup. It is largest continuous chunk
                        that could hold holes aka. UC entries.
  
        mtrr_gran_size=nn[KMG] [X86]
        noinitrd        [RAM] Tells the kernel not to load any configured
                        initial RAM disk.
  
 +      nointremap      [X86-64, Intel-IOMMU] Do not enable interrupt
 +                      remapping.
 +
        nointroute      [IA-64]
  
        nojitter        [IA64] Disables jitter checking for ITC timers.
        oprofile.timer= [HW]
                        Use timer interrupt instead of performance counters
  
 +      oprofile.cpu_type=      Force an oprofile cpu type
 +                      This might be useful if you have an older oprofile
 +                      userland or if you want common events.
 +                      Format: { archperfmon }
 +                      archperfmon: [X86] Force use of architectural
 +                              perfmon on Intel CPUs instead of the
 +                              CPU specific event set.
 +
        osst=           [HW,SCSI] SCSI Tape Driver
                        Format: <buffer_size>,<write_threshold>
                        See also Documentation/scsi/st.txt.
                                root domains (aka PCI segments, in ACPI-speak).
                nommconf        [X86] Disable use of MMCONFIG for PCI
                                Configuration
 +              check_enable_amd_mmconf [X86] check for and enable
 +                              properly configured MMIO access to PCI
 +                              config space on AMD family 10h CPU
                nomsi           [MSI] If the PCI_MSI kernel config parameter is
                                enabled, this kernel boot option can be used to
                                disable the use of MSI interrupts system-wide.
                                IRQ routing is enabled.
                noacpi          [X86] Do not use ACPI for IRQ routing
                                or for PCI scanning.
 -              use_crs         [X86] Use _CRS for PCI resource
 +              nocrs           [X86] Don't use _CRS for PCI resource
                                allocation.
                routeirq        Do IRQ routing for all PCI devices.
                                This is normally done in pci_enable_device(),
                                PAGE_SIZE is used as alignment.
                                PCI-PCI bridge can be specified, if resource
                                windows need to be expanded.
 +              ecrc=           Enable/disable PCIe ECRC (transaction layer
 +                              end-to-end CRC checking).
 +                              bios: Use BIOS/firmware settings. This is the
 +                              the default.
 +                              off: Turn ECRC off
 +                              on: Turn ECRC on.
  
        pcie_aspm=      [PCIE] Forcibly enable or disable PCIe Active State Power
                        Management.
diff --combined MAINTAINERS
index cf5a46ef6b3f4ae57562cf8bf6de23d3623386ad,51ebf7488b3a99d0388365f5dacc707785596f2e..02f6f78b561f4bce68789776d5527ab5dbabcc22
@@@ -36,12 -36,6 +36,12 @@@ trivial patch so apply some common sens
        (scripts/checkpatch.pl) to catch trival style violations.
        See Documentation/CodingStyle for guidance here.
  
 +      PLEASE CC: the maintainers and mailing lists that are generated
 +      by scripts/get_maintainer.pl.  The results returned by the
 +      script will be best if you have git installed and are making
 +      your changes in a branch derived from Linus' latest git tree.
 +      See Documentation/SubmittingPatches for details.
 +
        PLEASE try to include any credit lines you want added with the
        patch. It avoids people being missed off by mistake and makes
        it easier to know who wants adding and who doesn't.
@@@ -77,7 -71,7 +77,7 @@@ P: Perso
  M: Mail patches to
  L: Mailing list that is relevant to this area
  W: Web-page with status/info
 -T: SCM tree type and location.  Type is one of: git, hg, quilt.
 +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.
@@@ -163,11 -157,9 +163,11 @@@ S:       Maintaine
  F:    drivers/net/r8169.c
  
  8250/16?50 (AND CLONE UARTS) SERIAL DRIVER
 +P:    Alan Cox
 +M:    alan@lxorguk.ukuu.org.uk
  L:    linux-serial@vger.kernel.org
  W:    http://serial.sourceforge.net
 -S:    Orphan
 +S:    Odd Fixes
  F:    drivers/serial/8250*
  F:    include/linux/serial_8250.h
  
@@@ -495,7 -487,7 +495,7 @@@ AOA (Apple Onboard Audio) ALSA DRIVE
  P:    Johannes Berg
  M:    johannes@sipsolutions.net
  L:    linuxppc-dev@ozlabs.org
 -L:    alsa-devel@alsa-project.org (subscribers-only)
 +L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  S:    Maintained
  F:    sound/aoa/
  
@@@ -632,7 -624,6 +632,7 @@@ M: paulius.zaleckas@teltonika.l
  L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
  T:    git git://gitorious.org/linux-gemini/mainline.git
  S:    Maintained
 +F:    arch/arm/mach-gemini/
  
  ARM/EBSA110 MACHINE SUPPORT
  P:    Russell King
@@@ -653,15 -644,12 +653,15 @@@ M:      laforge@openezx.or
  L:    openezx-devel@lists.openezx.org (subscribers-only)
  W:    http://www.openezx.org/
  S:    Maintained
 +T:    topgit git://git.openezx.org/openezx.git
 +F:    arch/arm/mach-pxa/ezx.c
  
  ARM/FARADAY FA526 PORT
  P:    Paulius Zaleckas
  M:    paulius.zaleckas@teltonika.lt
  L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
  S:    Maintained
 +F:    arch/arm/mm/*-fa*
  
  ARM/FOOTBRIDGE ARCHITECTURE
  P:    Russell King
@@@ -690,13 -678,6 +690,13 @@@ M:       sakoman@gmail.co
  L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
  S:    Maintained
  
 +ARM/H4700 (HP IPAQ HX4700) MACHINE SUPPORT
 +P:    Philipp Zabel
 +M:    philipp.zabel@gmail.com
 +S:    Maintained
 +F:    arch/arm/mach-pxa/hx4700.c
 +F:    arch/arm/mach-pxa/include/mach/hx4700.h
 +
  ARM/HP JORNADA 7XX MACHINE SUPPORT
  P:    Kristoffer Ericson
  M:    kristoffer.ericson@gmail.com
@@@ -776,25 -757,11 +776,25 @@@ P:      Philipp Zabe
  M:    philipp.zabel@gmail.com
  S:    Maintained
  
 +ARM/MIOA701 MACHINE SUPPORT
 +P:    Robert Jarzmik
 +M:    robert.jarzmik@free.fr
 +L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
 +F:    arch/arm/mach-pxa/mioa701.c
 +S:    Maintained
 +
  ARM/NEC MOBILEPRO 900/c MACHINE SUPPORT
  P:    Michael Petchkovsky
  M:    mkpetch@internode.on.net
  S:    Maintained
  
 +ARM/OPENMOKO NEO FREERUNNER (GTA02) MACHINE SUPPORT
 +P:    Nelson Castillo
 +M:    arhuaco@freaks-unidos.net
 +L:    openmoko-kernel@lists.openmoko.org (subscribers-only)
 +W:    http://wiki.openmoko.org/wiki/Neo_FreeRunner
 +S:    Supported
 +
  ARM/TOSA MACHINE SUPPORT
  P:    Dmitry Eremin-Solenikov
  M:    dbaryshkov@gmail.com
@@@ -808,12 -775,6 +808,12 @@@ M:       marek.vasut@gmail.co
  W:    http://hackndev.com
  S:    Maintained
  
 +ARM/PALM TREO 680 SUPPORT
 +P:    Tomas Cech
 +M:    sleep_walker@suse.cz
 +W:    http://hackndev.com
 +S:    Maintained
 +
  ARM/PALMZ72 SUPPORT
  P:    Sergey Lapin
  M:    slapin@ossfans.org
@@@ -940,6 -901,7 +940,6 @@@ P: Dan William
  M:    dan.j.williams@intel.com
  P:    Maciej Sosnowski
  M:    maciej.sosnowski@intel.com
 -L:    linux-kernel@vger.kernel.org
  W:    http://sourceforge.net/projects/xscaleiop
  S:    Supported
  F:    Documentation/crypto/async-tx-api.txt
@@@ -968,23 -930,17 +968,23 @@@ M:      me@bobcopeland.co
  L:    linux-wireless@vger.kernel.org
  L:    ath5k-devel@lists.ath5k.org
  S:    Maintained
 -F:    drivers/net/wireless/ath5k/
 +F:    drivers/net/wireless/ath/ath5k/
  
  ATHEROS ATH9K WIRELESS DRIVER
  P:    Luis R. Rodriguez
  M:    lrodriguez@atheros.com
  P:    Jouni Malinen
  M:    jmalinen@atheros.com
 +P:    Sujith Manoharan
 +M:    Sujith.Manoharan@atheros.com
 +P:    Vasanthakumar Thiagarajan
 +M:    vasanth@atheros.com
 +P:    Senthil Balasubramanian
 +M:    senthilkumar@atheros.com
  L:    linux-wireless@vger.kernel.org
  L:    ath9k-devel@lists.ath9k.org
  S:    Supported
 -F:    drivers/net/wireless/ath9k/
 +F:    drivers/net/wireless/ath/ath9k/
  
  ATHEROS AR9170 WIRELESS DRIVER
  P:    Christian Lamparter
@@@ -992,7 -948,7 +992,7 @@@ M: chunkeey@web.d
  L:    linux-wireless@vger.kernel.org
  W:    http://wireless.kernel.org/en/users/Drivers/ar9170
  S:    Maintained
 -F:    drivers/net/wireless/ar9170/
 +F:    drivers/net/wireless/ath/ar9170/
  
  ATI_REMOTE2 DRIVER
  P:    Ville Syrjala
@@@ -1032,16 -988,10 +1032,16 @@@ W:    http://www.at91.com
  S:    Maintained
  F:    drivers/mmc/host/at91_mci.c
  
 +ATMEL AT91 / AT32 MCI DRIVER
 +P:    Nicolas Ferre
 +M:    nicolas.ferre@atmel.com
 +S:    Maintained
 +F:    drivers/mmc/host/atmel-mci.c
 +F:    drivers/mmc/host/atmel-mci-regs.h
 +
  ATMEL AT91 / AT32 SERIAL DRIVER
  P:    Haavard Skinnemoen
  M:    hskinnemoen@atmel.com
 -L:    linux-kernel@vger.kernel.org
  S:    Supported
  F:    drivers/serial/atmel_serial.c
  
@@@ -1097,6 -1047,7 +1097,6 @@@ F:      kernel/audit
  AUXILIARY DISPLAY DRIVERS
  P:    Miguel Ojeda Sandonis
  M:    miguel.ojeda.sandonis@gmail.com
 -L:    linux-kernel@vger.kernel.org
  W:    http://miguelojeda.es/auxdisplay.htm
  W:    http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm
  S:    Maintained
@@@ -1166,6 -1117,7 +1166,6 @@@ F:      drivers/net/hamradio/baycom
  BEFS FILE SYSTEM
  P:    Sergey S. Kostyliov
  M:    rathamahata@php4.ru
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/filesystems/befs.txt
  F:    fs/befs/
  BFS FILE SYSTEM
  P:    Tigran A. Aivazian
  M:    tigran@aivazian.fsnet.co.uk
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/filesystems/bfs.txt
  F:    fs/bfs/
@@@ -1229,6 -1182,7 +1229,6 @@@ F:      drivers/i2c/busses/i2c-bfin-twi.
  BLOCK LAYER
  P:    Jens Axboe
  M:    axboe@kernel.dk
 -L:    linux-kernel@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-2.6-block.git
  S:    Maintained
  F:    block/
@@@ -1355,6 -1309,7 +1355,6 @@@ P:      Muli Ben-Yehud
  M:    muli@il.ibm.com
  P:    Jon D. Mason
  M:    jdmason@kudzu.us
 -L:    linux-kernel@vger.kernel.org
  L:    discuss@x86-64.org
  S:    Maintained
  F:    arch/x86/kernel/pci-calgary_64.c
@@@ -1374,13 -1329,6 +1374,13 @@@ F:    drivers/net/can
  F:    include/linux/can/
  F:    include/linux/can.h
  
 +CAN NETWORK DRIVERS
 +P:    Wolfgang Grandegger
 +M:    wg@grandegger.com
 +L:    socketcan-core@lists.berlios.de (subscribers-only)
 +W:    http://developer.berlios.de/projects/socketcan/
 +S:    Maintained
 +
  CELL BROADBAND ENGINE ARCHITECTURE
  P:    Arnd Bergmann
  M:    arnd@arndb.de
@@@ -1406,6 -1354,7 +1406,6 @@@ F:      include/linux/usb/wusb
  CFAG12864B LCD DRIVER
  P:    Miguel Ojeda Sandonis
  M:    miguel.ojeda.sandonis@gmail.com
 -L:    linux-kernel@vger.kernel.org
  W:    http://miguelojeda.es/auxdisplay.htm
  W:    http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm
  S:    Maintained
@@@ -1415,6 -1364,7 +1415,6 @@@ F:      include/linux/cfag12864b.
  CFAG12864BFB LCD FRAMEBUFFER DRIVER
  P:    Miguel Ojeda Sandonis
  M:    miguel.ojeda.sandonis@gmail.com
 -L:    linux-kernel@vger.kernel.org
  W:    http://miguelojeda.es/auxdisplay.htm
  W:    http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm
  S:    Maintained
@@@ -1434,6 -1384,7 +1434,6 @@@ X:      net/wireless/wext
  CHECKPATCH
  P:    Andy Whitcroft
  M:    apw@canonical.com
 -L:    linux-kernel@vger.kernel.org
  S:    Supported
  F:    scripts/checkpatch.pl
  
@@@ -1462,7 -1413,7 +1462,7 @@@ F:      drivers/usb/host/ohci-ep93xx.
  CIRRUS LOGIC CS4270 SOUND DRIVER
  P:    Timur Tabi
  M:    timur@freescale.com
 -L:    alsa-devel@alsa-project.org
 +L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  S:    Supported
  F:    sound/soc/codecs/cs4270*
  
@@@ -1487,7 -1438,6 +1487,7 @@@ P:      Joe Eykhol
  M:    jeykholt@cisco.com
  L:    linux-scsi@vger.kernel.org
  S:    Supported
 +F:    drivers/scsi/fnic/
  
  CODA FILE SYSTEM
  P:    Jan Harkes
@@@ -1560,6 -1510,7 +1560,6 @@@ F:      drivers/usb/atm/cxacru.
  CONFIGFS
  P:    Joel Becker
  M:    joel.becker@oracle.com
 -L:    linux-kernel@vger.kernel.org
  S:    Supported
  F:    fs/configfs/
  F:    include/linux/configfs.h
@@@ -1573,7 -1524,6 +1573,7 @@@ L:      containers@lists.linux-foundation.or
  S:    Maintained
  F:    include/linux/cgroup*
  F:    kernel/cgroup*
 +F:    mm/*cgroup*
  
  CORETEMP HARDWARE MONITORING DRIVER
  P:    Rudolf Marek
@@@ -1590,13 -1540,6 +1590,13 @@@ W:    http://www.fi.muni.cz/~kas/cosa
  S:    Maintained
  F:    drivers/net/wan/cosa*
  
 +CPMAC ETHERNET DRIVER
 +P:    Florian Fainelli
 +M:    florian@openwrt.org
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/net/cpmac.c
 +
  CPU FREQUENCY DRIVERS
  P:    Dave Jones
  M:    davej@redhat.com
@@@ -1618,6 -1561,7 +1618,6 @@@ F:      arch/x86/kernel/msr.
  CPUSETS
  P:    Paul Menage
  M:    menage@google.com
 -L:    linux-kernel@vger.kernel.org
  W:    http://www.bullopensource.org/cpuset/
  W:    http://oss.sgi.com/projects/cpusets/
  S:    Supported
@@@ -1824,6 -1768,7 +1824,6 @@@ DEVICE NUMBER REGISTR
  P:    Torben Mathiasen
  M:    device@lanana.org
  W:    http://lanana.org/docs/device-list/index.html
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  
  DEVICE-MAPPER  (LVM)
@@@ -1847,9 -1792,10 +1847,9 @@@ F:     drivers/char/epca
  F:    drivers/char/digi*
  
  DIRECTORY NOTIFICATION (DNOTIFY)
 -P:    Stephen Rothwell
 -M:    sfr@canb.auug.org.au
 -L:    linux-kernel@vger.kernel.org
 -S:    Supported
 +P:    Eric Paris
 +M:    eparis@parisplace.org
 +S:    Maintained
  F:    Documentation/filesystems/dnotify.txt
  F:    fs/notify/dnotify/
  F:    include/linux/dnotify.h
@@@ -1865,6 -1811,7 +1865,6 @@@ S:      Maintaine
  DISKQUOTA
  P:    Jan Kara
  M:    jack@suse.cz
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/filesystems/quota.txt
  F:    fs/quota/
@@@ -1886,6 -1833,7 +1886,6 @@@ P:      Maciej Sosnowsk
  M:    maciej.sosnowski@intel.com
  P:    Dan Williams
  M:    dan.j.williams@intel.com
 -L:    linux-kernel@vger.kernel.org
  S:    Supported
  F:    drivers/dma/
  F:    include/linux/dma*
@@@ -1937,6 -1885,7 +1937,6 @@@ F:      drivers/scsi/dpt
  DRIVER CORE, KOBJECTS, AND SYSFS
  P:    Greg Kroah-Hartman
  M:    gregkh@suse.de
 -L:    linux-kernel@vger.kernel.org
  T:    quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
  S:    Supported
  F:    Documentation/kobject.txt
@@@ -2002,8 -1951,8 +2002,8 @@@ F:      net/bridge/netfilter/ebt*.
  ECRYPT FILE SYSTEM
  P:    Tyler Hicks
  M:    tyhicks@linux.vnet.ibm.com
 -M:    Dustin Kirkland
 -P:    kirkland@canonical.com
 +P:    Dustin Kirkland
 +M:    kirkland@canonical.com
  L:    ecryptfs-devel@lists.launchpad.net
  W:    https://launchpad.net/ecryptfs
  S:    Supported
@@@ -2020,16 -1969,6 +2020,16 @@@ F:    Documentation/edac.tx
  F:    drivers/edac/edac_*
  F:    include/linux/edac.h
  
 +EDAC-AMD64
 +P:    Doug Thompson
 +M:    dougthompson@xmission.com
 +P:    Borislav Petkov
 +M:    borislav.petkov@amd.com
 +L:    bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
 +W:    bluesmoke.sourceforge.net
 +S:    Supported
 +F:    drivers/edac/amd64_edac*
 +
  EDAC-E752X
  P:    Mark Gross
  M:    mark.gross@intel.com
@@@ -2082,8 -2021,8 +2082,8 @@@ F:      drivers/edac/i5400_edac.
  
  EDAC-I82975X
  P:    Ranganathan Desikan
 -P:    Arvind R.
  M:    rdesikan@jetzbroadband.com
 +P:    Arvind R.
  M:    arvind@acarlab.com
  L:    bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
  W:    bluesmoke.sourceforge.net
@@@ -2146,15 -2085,6 +2146,15 @@@ W:    http://sourceforge.net/projects/lpfc
  S:    Supported
  F:    drivers/scsi/lpfc/
  
 +ENE CB710 FLASH CARD READER DRIVER
 +P:    MichaÅ‚ MirosÅ‚aw
 +M:    mirq-linux@rere.qmqm.pl
 +L:    linux-kernel@vger.kernel.org
 +S:    Maintained
 +F:    drivers/misc/cb710/
 +F:    drivers/mmc/host/cb710-mmc.*
 +F:    include/linux/cb710.h
 +
  EPSON 1355 FRAMEBUFFER DRIVER
  P:    Christopher Hoover
  M:    ch@murgatroid.com
@@@ -2283,6 -2213,7 +2283,6 @@@ F:      drivers/firewire
  F:    include/linux/firewire*.h
  
  FIRMWARE LOADER (request_firmware)
 -L:    linux-kernel@vger.kernel.org
  S:    Orphan
  F:    Documentation/firmware_class/
  F:    drivers/base/firmware*.c
@@@ -2304,9 -2235,11 +2304,9 @@@ F:     drivers/net/wan/dlci.
  F:    drivers/net/wan/sdla.c
  
  FRAMEBUFFER LAYER
 -P:    Antonino Daplas
 -M:    adaplas@gmail.com
  L:    linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
  W:    http://linux-fbdev.sourceforge.net/
 -S:    Maintained
 +S:    Orphan
  F:    Documentation/fb/
  F:    drivers/video/fb*
  F:    include/linux/fb.h
@@@ -2316,7 -2249,8 +2316,7 @@@ P:      Li Yan
  M:    leoli@freescale.com
  P:    Zhang Wei
  M:    zw@zh-kernel.org
 -L:    linuxppc-embedded@ozlabs.org
 -L:    linux-kernel@vger.kernel.org
 +L:    linuxppc-dev@ozlabs.org
  S:    Maintained
  F:    drivers/dma/fsldma.*
  
@@@ -2382,7 -2316,7 +2382,7 @@@ F:      drivers/serial/ucc_uart.
  FREESCALE SOC SOUND DRIVERS
  P:    Timur Tabi
  M:    timur@freescale.com
 -L:    alsa-devel@alsa-project.org
 +L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  L:    linuxppc-dev@ozlabs.org
  S:    Supported
  F:    sound/soc/fsl/fsl*
@@@ -2397,7 -2331,7 +2397,7 @@@ F:      fs/freevxfs
  
  FREEZER
  P:    Pavel Machek
 -M:    pavel@suse.cz
 +M:    pavel@ucw.cz
  P:    Rafael J. Wysocki
  M:    rjw@sisk.pl
  L:    linux-pm@lists.linux-foundation.org
@@@ -2419,7 -2353,7 +2419,7 @@@ FTRAC
  P:    Steven Rostedt
  M:    rostedt@goodmis.org
  S:    Maintained
 -F:    Documentation/ftrace.txt
 +F:    Documentation/trace/ftrace.txt
  F:    arch/*/*/*/ftrace.h
  F:    arch/*/kernel/ftrace.c
  F:    include/*/ftrace.h
@@@ -2516,6 -2450,7 +2516,6 @@@ F:      drivers/hwmon/hdaps.
  
  HYPERVISOR VIRTUAL CONSOLE DRIVER
  L:    linuxppc-dev@ozlabs.org
 -L:    linux-kernel@vger.kernel.org
  S:    Odd Fixes
  F:    drivers/char/hvc_*
  
@@@ -2582,6 -2517,7 +2582,6 @@@ F:      sound/parisc/harmony.
  HAYES ESP SERIAL DRIVER
  P:    Andrew J. Robinson
  M:    arobinso@nyx.net
 -L:    linux-kernel@vger.kernel.org
  W:    http://www.nyx.net/~arobinso
  S:    Maintained
  F:    Documentation/serial/hayes-esp.txt
@@@ -2607,6 -2543,7 +2607,6 @@@ F:      include/linux/cciss_ioctl.
  HFS FILESYSTEM
  P:    Roman Zippel
  M:    zippel@linux-m68k.org
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/filesystems/hfs.txt
  F:    fs/hfs/
@@@ -2646,6 -2583,7 +2646,6 @@@ F:      include/linux/hid
  HIGH-RESOLUTION TIMERS, CLOCKEVENTS, DYNTICKS
  P:    Thomas Gleixner
  M:    tglx@linutronix.de
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/timers/
  F:    kernel/hrtimer.c
@@@ -2784,6 -2722,7 +2784,6 @@@ F:      drivers/i2c/busses/i2c-tiny-usb.
  i386 BOOT CODE
  P:    H. Peter Anvin
  M:    hpa@zytor.com
 -L:    Linux-Kernel@vger.kernel.org
  S:    Maintained
  F:    arch/x86/boot/
  
@@@ -2868,18 -2807,6 +2868,18 @@@ L:    linux1394-devel@lists.sourceforge.ne
  S:    Maintained
  F:    drivers/ieee1394/raw1394*
  
 +IEEE 802.15.4 SUBSYSTEM
 +P:    Dmitry Eremin-Solenikov
 +M:    dbaryshkov@gmail.com
 +P:    Sergey Lapin
 +M:    slapin@ossfans.org
 +L:    linux-zigbee-devel@lists.sourceforge.net
 +W:    http://apps.sourceforge.net/trac/linux-zigbee
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lowpan/lowpan.git
 +S:    Maintained
 +F:    net/ieee802154/
 +F:    drivers/ieee802154/
 +
  INTEGRITY MEASUREMENT ARCHITECTURE (IMA)
  P:    Mimi Zohar
  M:    zohar@us.ibm.com
@@@ -2911,8 -2838,7 +2911,8 @@@ P:      John McCutcha
  M:    john@johnmccutchan.com
  P:    Robert Love
  M:    rlove@rlove.org
 -L:    linux-kernel@vger.kernel.org
 +P:    Eric Paris
 +M:    eparis@parisplace.org
  S:    Maintained
  F:    Documentation/filesystems/inotify.txt
  F:    fs/notify/inotify/
@@@ -2960,6 -2886,7 +2960,6 @@@ F:      arch/x86/kernel/microcode_intel.
  INTEL I/OAT DMA DRIVER
  P:    Maciej Sosnowski
  M:    maciej.sosnowski@intel.com
 -L:    linux-kernel@vger.kernel.org
  S:    Supported
  F:    drivers/dma/ioat*
  
@@@ -2975,6 -2902,7 +2975,6 @@@ F:      include/linux/intel-iommu.
  INTEL IOP-ADMA DMA DRIVER
  P:    Dan Williams
  M:    dan.j.williams@intel.com
 -L:    linux-kernel@vger.kernel.org
  S:    Supported
  F:    drivers/dma/iop-adma.c
  
@@@ -3170,7 -3098,6 +3170,7 @@@ M:      samuel@sortiz.or
  L:    irda-users@lists.sourceforge.net (subscribers-only)
  W:    http://irda.sourceforge.net/
  S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sameo/irda-2.6.git
  F:    Documentation/networking/irda.txt
  F:    drivers/net/irda/
  F:    include/net/irda/
@@@ -3252,7 -3179,6 +3252,6 @@@ W:      http://www.linux-mtd.infradead.org/d
  S:    Maintained
  F:    fs/jffs2/
  F:    include/linux/jffs2.h
- F:    include/mtd/jffs2-user.h
  
  JOURNALLING LAYER FOR BLOCK DEVICES (JBD)
  P:    Stephen Tweedie
@@@ -3287,6 -3213,7 +3286,6 @@@ M:      vgoyal@redhat.co
  P:    Haren Myneni
  M:    hbabu@us.ibm.com
  L:    kexec@lists.infradead.org
 -L:    linux-kernel@vger.kernel.org
  W:    http://lse.sourceforge.net/kdump/
  S:    Maintained
  F:    Documentation/kdump/
@@@ -3396,6 -3323,7 +3395,6 @@@ KEXE
  P:    Eric Biederman
  M:    ebiederm@xmission.com
  W:    http://ftp.kernel.org/pub/linux/kernel/people/horms/kexec-tools/
 -L:    linux-kernel@vger.kernel.org
  L:    kexec@lists.infradead.org
  S:    Maintained
  F:    include/linux/kexec.h
@@@ -3412,30 -3340,13 +3411,30 @@@ F:   drivers/serial/kgdboc.
  F:    include/linux/kgdb.h
  F:    kernel/kgdb.c
  
 +KMEMCHECK
 +P:    Vegard Nossum
 +M:    vegardno@ifi.uio.no
 +P     Pekka Enberg
 +M:    penberg@cs.helsinki.fi
 +L:    linux-kernel@vger.kernel.org
 +S:    Maintained
 +
 +KMEMLEAK
 +P:    Catalin Marinas
 +M:    catalin.marinas@arm.com
 +L:    linux-kernel@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/kmemleak.txt
 +F:    include/linux/kmemleak.h
 +F:    mm/kmemleak.c
 +F:    mm/kmemleak-test.c
 +
  KMEMTRACE
  P:    Eduard - Gabriel Munteanu
  M:    eduard.munteanu@linux360.ro
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/trace/kmemtrace.txt
 -F:    include/trace/kmemtrace.h
 +F:    include/linux/kmemtrace.h
  F:    kernel/trace/kmemtrace.c
  
  KPROBES
@@@ -3447,6 -3358,7 +3446,6 @@@ P:      David S. Mille
  M:    davem@davemloft.net
  P:    Masami Hiramatsu
  M:    mhiramat@redhat.com
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/kprobes.txt
  F:    include/linux/kprobes.h
@@@ -3455,6 -3367,7 +3454,6 @@@ F:      kernel/kprobes.
  KS0108 LCD CONTROLLER DRIVER
  P:    Miguel Ojeda Sandonis
  M:    miguel.ojeda.sandonis@gmail.com
 -L:    linux-kernel@vger.kernel.org
  W:    http://miguelojeda.es/auxdisplay.htm
  W:    http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm
  S:    Maintained
@@@ -3618,6 -3531,7 +3617,6 @@@ P:      Peter Zijlstr
  M:    peterz@infradead.org
  P:    Ingo Molnar
  M:    mingo@redhat.com
 -L:    linux-kernel@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-lockdep.git
  S:    Maintained
  F:    Documentation/lockdep*.txt
@@@ -3669,6 -3583,7 +3668,6 @@@ L:      linux-m32r-ja@ml.linux-m32r.org (in 
  W:    http://www.linux-m32r.org/
  S:    Maintained
  F:    arch/m32r/
 -F:    include/asm-m32r/
  
  M68K ARCHITECTURE
  P:    Geert Uytterhoeven
@@@ -3752,6 -3667,7 +3751,6 @@@ F:      include/linux/mv643xx.
  MARVELL SOC MMC/SD/SDIO CONTROLLER DRIVER
  P:    Nicolas Pitre
  M:    nico@cam.org
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  
  MARVELL YUKON / SYSKONNECT DRIVER
@@@ -3805,6 -3721,7 +3804,6 @@@ F:      drivers/scsi/megaraid
  
  MEMORY MANAGEMENT
  L:    linux-mm@kvack.org
 -L:    linux-kernel@vger.kernel.org
  W:    http://www.linux-mm.org
  S:    Maintained
  F:    include/linux/mm.h
@@@ -3818,6 -3735,7 +3817,6 @@@ M:      xemul@openvz.or
  P:    KAMEZAWA Hiroyuki
  M:    kamezawa.hiroyu@jp.fujitsu.com
  L:    linux-mm@kvack.org
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    mm/memcontrol.c
  
@@@ -3860,6 -3778,7 +3859,6 @@@ F:      arch/mips
  MISCELLANEOUS MCA-SUPPORT
  P:    James Bottomley
  M:    James.Bottomley@HansenPartnership.com
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/ia64/mca.txt
  F:    Documentation/mca.txt
@@@ -3869,6 -3788,7 +3868,6 @@@ F:      include/linux/mca
  MODULE SUPPORT
  P:    Rusty Russell
  M:    rusty@rustcorp.com.au
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    include/linux/module.h
  F:    kernel/module.c
@@@ -3892,6 -3812,7 +3891,6 @@@ F:      drivers/mmc/host/imxmmc.
  MOUSE AND MISC DEVICES [GENERAL]
  P:    Alessandro Rubini
  M:    rubini@ipvvis.unipv.it
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    drivers/input/mouse/
  F:    include/linux/gpio_mouse.h
  MOXA SMARTIO/INDUSTIO/INTELLIO SERIAL CARD
  P:    Jiri Slaby
  M:    jirislaby@gmail.com
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/serial/moxa-smartio
  F:    drivers/char/mxser.*
@@@ -3914,6 -3836,7 +3913,6 @@@ F:      drivers/platform/x86/msi-laptop.
  MULTIFUNCTION DEVICES (MFD)
  P:    Samuel Ortiz
  M:    sameo@linux.intel.com
 -L:    linux-kernel@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6.git
  S:    Supported
  F:    drivers/mfd/
  MULTIMEDIA CARD (MMC), SECURE DIGITAL (SD) AND SDIO SUBSYSTEM
  P:    Pierre Ossman
  M:    pierre@ossman.eu
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    drivers/mmc/
  F:    include/linux/mmc/
  MULTIMEDIA CARD (MMC) ETC. OVER SPI
  P:    David Brownell
  M:    dbrownell@users.sourceforge.net
 -L:    linux-kernel@vger.kernel.org
  S:    Odd Fixes
  F:    drivers/mmc/host/mmc_spi.c
  F:    include/linux/spi/mmc_spi.h
@@@ -3942,6 -3867,7 +3941,6 @@@ F:      sound/oss/msnd
  MULTITECH MULTIPORT CARD (ISICOM)
  P:    Jiri Slaby
  M:    jirislaby@gmail.com
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    drivers/char/isicom.c
  F:    include/linux/isicom.h
@@@ -4112,7 -4038,7 +4111,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    net/wireless/
  F:    include/net/ieee80211*
 -F:    include/net/wireless.h
 +F:    include/linux/wireless.h
  
  NETWORKING DRIVERS
  L:    netdev@vger.kernel.org
@@@ -4185,6 -4111,7 +4184,6 @@@ NTFS FILESYSTE
  P:    Anton Altaparmakov
  M:    aia21@cantab.net
  L:    linux-ntfs-dev@lists.sourceforge.net
 -L:    linux-kernel@vger.kernel.org
  W:    http://www.linux-ntfs.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/aia21/ntfs-2.6.git
  S:    Maintained
@@@ -4199,69 -4126,6 +4198,69 @@@ S:    Maintaine
  F:    drivers/video/riva/
  F:    drivers/video/nvidia/
  
 +OMAP SUPPORT
 +P:    Tony Lindgren <tony@atomide.com>
 +M:    tony@atomide.com
 +L:    linux-omap@vger.kernel.org
 +W:    http://www.muru.com/linux/omap/
 +W:    http://linux.omap.com/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git
 +S:    Maintained
 +F:    arch/arm/*omap*
 +
 +OMAP CLOCK FRAMEWORK SUPPORT
 +P:    Paul Walmsley
 +M:    paul@pwsan.com
 +L:    linux-omap@vger.kernel.org
 +S:    Maintained
 +F:    arch/arm/*omap*/*clock*
 +
 +OMAP POWER MANAGEMENT SUPPORT
 +P:    Kevin Hilman
 +M:    khilman@deeprootsystems.com
 +L:    linux-omap@vger.kernel.org
 +S:    Maintained
 +F:    arch/arm/*omap*/*pm*
 +
 +OMAP AUDIO SUPPORT
 +P:    Jarkko Nikula
 +M:    jhnikula@gmail.com
 +L:    alsa-devel@alsa-project.org (subscribers-only)
 +L:    linux-omap@vger.kernel.org
 +S:    Maintained
 +F:    sound/soc/omap/
 +
 +OMAP FRAMEBUFFER SUPPORT
 +P:    Imre Deak
 +M:    imre.deak@nokia.com
 +L:    linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
 +L:    linux-omap@vger.kernel.org
 +S:    Maintained
 +F:    drivers/video/omap/
 +
 +OMAP MMC SUPPORT
 +P:    Jarkko Lavinen
 +M:    jarkko.lavinen@nokia.com
 +L:    linux-kernel@vger.kernel.org
 +L:    linux-omap@vger.kernel.org
 +S:    Maintained
 +F:    drivers/mmc/host/*omap*
 +
 +OMAP RANDOM NUMBER GENERATOR SUPPORT
 +P:    Deepak Saxena
 +M:    dsaxena@plexity.net
 +S:    Maintained
 +F:    drivers/char/hw_random/omap-rng.c
 +
 +OMAP USB SUPPORT
 +P:    Felipe Balbi
 +M:    felipe.balbi@nokia.com
 +P:    David Brownell
 +M:    dbrownell@users.sourceforge.net
 +L:    linux-usb@vger.kernel.org
 +L:    linux-omap@vger.kernel.org
 +S:    Maintained
 +
  OMFS FILESYSTEM
  P:    Bob Copeland
  M:    me@bobcopeland.com
@@@ -4418,6 -4282,7 +4417,6 @@@ M:      akataria@vmware.co
  P:    Rusty Russell
  M:    rusty@rustcorp.com.au
  L:    virtualization@lists.osdl.org
 -L:    linux-kernel@vger.kernel.org
  S:    Supported
  F:    Documentation/ia64/paravirt_ops.txt
  F:    arch/*/kernel/paravirt*
@@@ -4468,6 -4333,7 +4467,6 @@@ F:      include/linux/leds-pca9532.
  PCI ERROR RECOVERY
  P:    Linas Vepstas
  M:    linas@austin.ibm.com
 -L:    linux-kernel@vger.kernel.org
  L:    linux-pci@vger.kernel.org
  S:    Supported
  F:    Documentation/PCI/pci-error-recovery.txt
@@@ -4476,6 -4342,7 +4475,6 @@@ F:      Documentation/powerpc/eeh-pci-error-
  PCI SUBSYSTEM
  P:    Jesse Barnes
  M:    jbarnes@virtuousgeek.org
 -L:    linux-kernel@vger.kernel.org
  L:    linux-pci@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6.git
  S:    Supported
@@@ -4510,20 -4377,11 +4509,20 @@@ F:   drivers/net/pcnet32.
  PER-TASK DELAY ACCOUNTING
  P:    Balbir Singh
  M:    balbir@linux.vnet.ibm.com
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    include/linux/delayacct.h
  F:    kernel/delayacct.c
  
 +PERFORMANCE COUNTER SUBSYSTEM
 +P:    Peter Zijlstra
 +M:    a.p.zijlstra@chello.nl
 +P:    Paul Mackerras
 +M:    paulus@samba.org
 +P:    Ingo Molnar
 +M:    mingo@elte.hu
 +L:    linux-kernel@vger.kernel.org
 +S:    Supported
 +
  PERSONALITY HANDLING
  P:    Christoph Hellwig
  M:    hch@infradead.org
@@@ -4541,6 -4399,7 +4540,6 @@@ F:      drivers/mtd/devices/phram.
  PKTCDVD DRIVER
  P:    Peter Osterlund
  M:    petero2@telia.com
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    drivers/block/pktcdvd.c
  F:    include/linux/pktcdvd.h
  POSIX CLOCKS and TIMERS
  P:    Thomas Gleixner
  M:    tglx@linutronix.de
 -L:    linux-kernel@vger.kernel.org
  S:    Supported
  F:    fs/timerfd.c
  F:    include/linux/timer*
@@@ -4558,6 -4418,7 +4557,6 @@@ P:      Anton Vorontso
  M:    cbou@mail.ru
  P:    David Woodhouse
  M:    dwmw2@infradead.org
 -L:    linux-kernel@vger.kernel.org
  T:    git git://git.infradead.org/battery-2.6.git
  S:    Maintained
  F:    include/linux/power_supply.h
@@@ -4606,16 -4467,10 +4605,16 @@@ S:   Maintaine
  F:    drivers/net/pppol2tp.c
  F:    include/linux/if_pppol2tp.h
  
 +PPS SUPPORT
 +P:    Rodolfo Giometti
 +M:    giometti@enneenne.com
 +W:    http://wiki.enneenne.com/index.php/LinuxPPS_support
 +L:    linuxpps@ml.enneenne.com (subscribers-only)
 +S:    Maintained
 +
  PREEMPTIBLE KERNEL
  P:    Robert Love
  M:    rml@tech9.net
 -L:    linux-kernel@vger.kernel.org
  L:    kpreempt-tech@lists.sourceforge.net
  W:    ftp://ftp.kernel.org/pub/linux/kernel/people/rml/preempt-kernel
  S:    Supported
@@@ -4644,8 -4499,8 +4643,8 @@@ S:      Maintaine
  F:    drivers/ata/sata_promise.*
  
  PS3 NETWORK SUPPORT
 -P:    Masakazu Mokuno
 -M:    mokuno@sm.sony.co.jp
 +P:    Geoff Levand
 +M:    geoffrey.levand@am.sony.com
  L:    netdev@vger.kernel.org
  L:    cbe-oss-dev@ozlabs.org
  S:    Supported
@@@ -4678,6 -4533,7 +4677,6 @@@ P:      Roland McGrat
  M:    roland@redhat.com
  P:    Oleg Nesterov
  M:    oleg@redhat.com
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    include/asm-generic/syscall.h
  F:    include/linux/ptrace.h
@@@ -4698,7 -4554,7 +4697,7 @@@ F:      drivers/media/video/pvrusb2
  
  PXA2xx/PXA3xx SUPPORT
  P:    Eric Miao
 -M:    eric.miao@marvell.com
 +M:    eric.y.miao@gmail.com
  P:    Russell King
  M:    linux@arm.linux.org.uk
  L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
@@@ -4708,24 -4564,23 +4707,24 @@@ F:   drivers/pcmcia/pxa2xx
  F:    drivers/spi/pxa2xx*
  F:    drivers/usb/gadget/pxa2*
  F:    include/sound/pxa2xx-lib.h
 -F:    sound/soc/pxa/pxa2xx*
 +F:    sound/arm/pxa*
 +F:    sound/soc/pxa
  
  PXA168 SUPPORT
  P:    Eric Miao
 -M:    eric.miao@marvell.com
 +M:    eric.y.miao@gmail.com
  P:    Jason Chagas
  M:    jason.chagas@marvell.com
  L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git
 -S:    Supported
 +S:    Maintained
  
  PXA910 SUPPORT
  P:    Eric Miao
 -M:    eric.miao@marvell.com
 +M:    eric.y.miao@gmail.com
  L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git
 -S:    Supported
 +S:    Maintained
  
  PXA MMCI DRIVER
  S:    Orphan
@@@ -4763,6 -4618,7 +4762,6 @@@ F:      drivers/net/qlge
  QNX4 FILESYSTEM
  P:    Anders Larsen
  M:    al@alarsen.net
 -L:    linux-kernel@vger.kernel.org
  W:    http://www.alarsen.net/linux/qnx4fs/
  S:    Maintained
  F:    fs/qnx4/
@@@ -4809,6 -4665,7 +4808,6 @@@ F:      drivers/char/random.
  RAPIDIO SUBSYSTEM
  P:    Matt Porter
  M:    mporter@kernel.crashing.org
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    drivers/rapidio/
  
@@@ -4822,8 -4679,7 +4821,8 @@@ F:      drivers/net/wireless/ray
  RCUTORTURE MODULE
  P:    Josh Triplett
  M:    josh@freedesktop.org
 -L:    linux-kernel@vger.kernel.org
 +P:    Paul E. McKenney
 +M:    paulmck@linux.vnet.ibm.com
  S:    Maintained
  F:    Documentation/RCU/torture.txt
  F:    kernel/rcutorture.c
  RDC R-321X SoC
  P:    Florian Fainelli
  M:    florian@openwrt.org
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  
  RDC R6040 FAST ETHERNET DRIVER
@@@ -4843,16 -4700,15 +4842,16 @@@ F:   drivers/net/r6040.
  RDS - RELIABLE DATAGRAM SOCKETS
  P:    Andy Grover
  M:    andy.grover@oracle.com
 -L:    rds-devel@oss.oracle.com
 +L:    rds-devel@oss.oracle.com (moderated for non-subscribers)
  S:    Supported
  F:    net/rds/
  
  READ-COPY UPDATE (RCU)
  P:    Dipankar Sarma
  M:    dipankar@in.ibm.com
 +P:    Paul E. McKenney
 +M:    paulmck@linux.vnet.ibm.com
  W:    http://www.rdrop.com/users/paulmck/rclock/
 -L:    linux-kernel@vger.kernel.org
  S:    Supported
  F:    Documentation/RCU/rcu.txt
  F:    Documentation/RCU/rcuref.txt
@@@ -4863,6 -4719,7 +4862,6 @@@ F:      kernel/rcupdate.
  REAL TIME CLOCK DRIVER
  P:    Paul Gortmaker
  M:    p_gortmaker@yahoo.com
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/rtc.txt
  F:    drivers/rtc/
@@@ -4883,9 -4740,9 +4882,9 @@@ S:      Supporte
  F:    fs/reiserfs/
  
  RFKILL
 -P:    Ivo van Doorn
 -M:    IvDoorn@gmail.com
 -L:    netdev@vger.kernel.org
 +P:    Johannes Berg
 +M:    johannes@sipsolutions.net
 +L:    linux-wireless@vger.kernel.org
  S:    Maintained
  F     Documentation/rfkill.txt
  F:    net/rfkill/
@@@ -5000,6 -4857,7 +4999,6 @@@ S3C24XX SD/MMC Drive
  P:    Ben Dooks
  M:    ben-linux@fluff.org
  L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
 -L:    linux-kernel@vger.kernel.org
  S:    Supported
  F:    drivers/mmc/host/s3cmci.*
  
@@@ -5025,6 -4883,7 +5024,6 @@@ P:      Ingo Molna
  M:    mingo@elte.hu
  P:    Peter Zijlstra
  M:    peterz@infradead.org
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    kernel/sched*
  F:    include/linux/sched.h
@@@ -5123,16 -4982,10 +5122,16 @@@ L:   sdhci-devel@lists.ossman.e
  S:    Maintained
  F:    drivers/mmc/host/sdhci.*
  
 +SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) SAMSUNG DRIVER
 +P:    Ben Dooks
 +M:    ben-linux@fluff.org
 +L:    sdhci-devel@lists.ossman.eu
 +S:    Maintained
 +F:    drivers/mmc/host/sdhci-s3c.c
 +
  SECURITY SUBSYSTEM
  P:    James Morris
  M:    jmorris@namei.org
 -L:    linux-kernel@vger.kernel.org
  L:    linux-security-module@vger.kernel.org (suggested Cc:)
  T:    git git://www.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6.git
  W:    http://security.wiki.kernel.org/
@@@ -5151,6 -5004,7 +5150,6 @@@ P:      James Morri
  M:    jmorris@namei.org
  P:    Eric Paris
  M:    eparis@parisplace.org
 -L:    linux-kernel@vger.kernel.org (kernel issues)
  L:    selinux@tycho.nsa.gov (subscribers-only, general discussion)
  W:    http://selinuxproject.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6.git
@@@ -5247,6 -5101,7 +5246,6 @@@ P:      Vincent Sander
  M:    support@simtec.co.uk
  W:    http://www.simtec.co.uk/products/EB110ATX/
  S:    Supported
 -F:    arch/arm/mach-ebsa110/
  
  SIMTEC EB2410ITX (BAST)
  P:    Ben Dooks
@@@ -5413,6 -5268,7 +5412,6 @@@ F:      include/linux/sony-laptop.
  SONY MEMORYSTICK CARD SUPPORT
  P:    Alex Dubov
  M:    oakad@yahoo.com
 -L:    linux-kernel@vger.kernel.org
  W:    http://tifmxx.berlios.de/
  S:    Maintained
  F:    drivers/memstick/host/tifm_ms.c
@@@ -5422,7 -5278,7 +5421,7 @@@ P:      Jaroslav Kysel
  M:    perex@perex.cz
  P:    Takashi Iwai
  M:    tiwai@suse.de
 -L:    alsa-devel@alsa-project.org (subscribers-only)
 +L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  W:    http://www.alsa-project.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git
  T:    git git://git.alsa-project.org/alsa-kernel.git
@@@ -5436,12 -5292,11 +5435,12 @@@ P:   Liam Girdwoo
  M:    lrg@slimlogic.co.uk
  P:    Mark Brown
  M:    broonie@opensource.wolfsonmicro.com
 -T:    git git://opensource.wolfsonmicro.com/linux-2.6-asoc
 -L:    alsa-devel@alsa-project.org (subscribers-only)
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6.git
 +L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  W:    http://alsa-project.org/main/index.php/ASoC
  S:    Supported
  F:    sound/soc/
 +F:    include/sound/soc*
  
  SPARC + UltraSPARC (sparc/sparc64)
  P:    David S. Miller
@@@ -5455,6 -5310,7 +5454,6 @@@ F:      arch/sparc
  SPECIALIX IO8+ MULTIPORT SERIAL CARD DRIVER
  P:    Roger Wolff
  M:    R.E.Wolff@BitWizard.nl
 -L:    linux-kernel@vger.kernel.org
  S:    Supported
  F:    Documentation/serial/specialix.txt
  F:    drivers/char/specialix*
@@@ -5500,6 -5356,7 +5499,6 @@@ F:      fs/squashfs
  SRM (Alpha) environment access
  P:    Jan-Benedict Glaw
  M:    jbglaw@lug-owl.de
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    arch/alpha/kernel/srm_env.c
  
@@@ -5514,8 -5371,8 +5513,8 @@@ S:      Maintaine
  STAGING SUBSYSTEM
  P:    Greg Kroah-Hartman
  M:    gregkh@suse.de
 -L:    linux-kernel@vger.kernel.org
  T:    quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
 +L:    devel@driverdev.osuosl.org
  S:    Maintained
  F:    drivers/staging/
  
@@@ -5594,6 -5451,7 +5593,6 @@@ F:      include/linux/sysv_fs.
  TASKSTATS STATISTICS INTERFACE
  P:    Balbir Singh
  M:    balbir@linux.vnet.ibm.com
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/accounting/taskstats*
  F:    include/linux/taskstats*
@@@ -5656,6 -5514,20 +5655,6 @@@ F:     drivers/misc/tifm
  F:    drivers/mmc/host/tifm_sd.c
  F:    include/linux/tifm.h
  
 -TI OMAP MMC INTERFACE DRIVER
 -P:    Carlos Aguiar, Anderson Briglia and Syed Khasim
 -M:    linux-omap@vger.kernel.org
 -W:    http://linux.omap.com
 -W:    http://www.muru.com/linux/omap/
 -S:    Maintained
 -F:    drivers/mmc/host/omap.c
 -
 -TI OMAP RANDOM NUMBER GENERATOR SUPPORT
 -P:    Deepak Saxena
 -M:    dsaxena@plexity.net
 -S:    Maintained
 -F:    drivers/char/hw_random/omap-rng.c
 -
  TIPC NETWORK LAYER
  P:    Per Liden
  M:    per.liden@ericsson.com
@@@ -5686,6 -5558,7 +5685,6 @@@ P:      Kentaro Taked
  M:    takedakn@nttdata.co.jp
  P:    Tetsuo Handa
  M:    penguin-kernel@I-love.SAKURA.ne.jp
 -L:    linux-kernel@vger.kernel.org (kernel issues)
  L:    tomoyo-users-en@lists.sourceforge.jp (subscribers-only, for developers and users in English)
  L:    tomoyo-dev@lists.sourceforge.jp (subscribers-only, for developers in Japanese)
  L:    tomoyo-users@lists.sourceforge.jp (subscribers-only, for users in Japanese)
@@@ -5737,19 -5610,15 +5736,19 @@@ F:   drivers/char/tpm
  TRIVIAL PATCHES
  P:    Jiri Kosina
  M:    trivial@kernel.org
 -L:    linux-kernel@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial.git
  S:    Maintained
 +F:    drivers/char/tty_*
 +F:    drivers/serial/serial_core.c
 +F:    include/linux/serial_core.h
 +F:    include/linux/serial.h
 +F:    include/linux/tty.h
  
  TTY LAYER
  P:    Alan Cox
  M:    alan@lxorguk.ukuu.org.uk
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
 +T:    stgit http://zeniv.linux.org.uk/~alan/ttydev/
  
  TULIP NETWORK DRIVERS
  P:    Grant Grundler
@@@ -5820,6 -5689,7 +5819,6 @@@ F:      fs/udf
  UFS FILESYSTEM
  P:    Evgeniy Dushistov
  M:    dushistov@mail.ru
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/filesystems/ufs.txt
  F:    fs/ufs/
@@@ -5836,6 -5706,7 +5835,6 @@@ F:      include/linux/uwb
  UNIFORM CDROM DRIVER
  P:    Jens Axboe
  M:    axboe@kernel.dk
 -L:    linux-kernel@vger.kernel.org
  W:    http://www.kernel.dk
  S:    Maintained
  F:    Documentation/cdrom/
@@@ -5864,6 -5735,7 +5863,6 @@@ F:      drivers/usb/class/cdc-acm.
  USB BLOCK DRIVER (UB ub)
  P:    Pete Zaitcev
  M:    zaitcev@redhat.com
 -L:    linux-kernel@vger.kernel.org
  L:    linux-usb@vger.kernel.org
  S:    Supported
  F:    drivers/block/ub.c
@@@ -6156,12 -6028,6 +6155,12 @@@ L:    linux-wireless@vger.kernel.or
  S:    Maintained
  F:    drivers/net/wireless/rndis_wlan.c
  
 +USB XHCI DRIVER
 +P:    Sarah Sharp
 +M:    sarah.a.sharp@intel.com
 +L:    linux-usb@vger.kernel.org
 +S:    Supported
 +
  USB ZC0301 DRIVER
  P:    Luca Risolia
  M:    luca.risolia@studio.unibo.it
@@@ -6209,6 -6075,7 +6208,6 @@@ P:      Hans J. Koc
  M:    hjk@linutronix.de
  P:    Greg Kroah-Hartman
  M:    gregkh@suse.de
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/DocBook/uio-howto.tmpl
  F:    drivers/uio/
@@@ -6234,6 -6101,7 +6233,6 @@@ F:      drivers/video/uvesafb.
  VFAT/FAT/MSDOS FILESYSTEM
  P:    OGAWA Hirofumi
  M:    hirofumi@mail.parknet.co.jp
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/filesystems/vfat.txt
  F:    fs/fat/
@@@ -6252,14 -6120,6 +6251,14 @@@ S:    Maintaine
  F:    Documentation/i2c/busses/i2c-viapro
  F:    drivers/i2c/busses/i2c-viapro.c
  
 +VIA SD/MMC CARD CONTROLLER DRIVER
 +P:    Joseph Chan
 +M:    JosephChan@via.com.tw
 +P:    Harald Welte
 +M:    HaraldWelte@viatech.com
 +S:    Maintained
 +F:    drivers/mmc/host/via-sdmmc.c
 +
  VIA UNICHROME(PRO)/CHROME9 FRAMEBUFFER DRIVER
  P:    Joseph Chan
  M:    JosephChan@via.com.tw
@@@ -6285,14 -6145,6 +6284,14 @@@ F:    drivers/net/macvlan.
  F:    include/linux/if_*vlan.h
  F:    net/8021q/
  
 +VLYNQ BUS
 +P:    Florian Fainelli
 +M:    florian@openwrt.org
 +L:    openwrt-devel@lists.openwrt.org
 +S:    Maintained
 +F:    drivers/vlynq/vlynq.c
 +F:    include/linux/vlynq.h
 +
  VOLTAGE AND CURRENT REGULATOR FRAMEWORK
  P:    Liam Girdwood
  M:    lrg@slimlogic.co.uk
@@@ -6346,6 -6198,7 +6345,6 @@@ F:      drivers/hwmon/w83793.
  W83L51xD SD/MMC CARD INTERFACE DRIVER
  P:    Pierre Ossman
  M:    pierre@ossman.eu
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    drivers/mmc/host/wbsd.*
  
@@@ -6432,6 -6285,7 +6431,6 @@@ M:      mingo@redhat.co
  P:    H. Peter Anvin
  M:    hpa@zytor.com
  M:    x86@kernel.org
 -L:    linux-kernel@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86.git
  S:    Maintained
  F:    Documentation/x86/
@@@ -6467,6 -6321,7 +6466,6 @@@ XILINX SYSTEMACE DRIVE
  P:    Grant Likely
  M:    grant.likely@secretlab.ca
  W:    http://www.secretlab.ca/
 -L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    drivers/block/xsysace.c
  
@@@ -6531,9 -6386,5 +6530,9 @@@ F:      drivers/serial/zs.
  
  THE REST
  P:    Linus Torvalds
 +M:    torvalds@linux-foundation.org
 +L:    linux-kernel@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
  S:    Buried alive in reporters
 +F:    *
 +F:    */
index aaac3b6800b7358dd1597df13c0ea781d3215031,8773481a30c271ee811aab1d537346535d6a11e3..c3f62654b6df4bee93cc69a86ca839031186f910
@@@ -47,41 -47,40 +47,41 @@@ static int do_blktrans_request(struct m
        unsigned long block, nsect;
        char *buf;
  
 -      block = req->sector << 9 >> tr->blkshift;
 -      nsect = req->current_nr_sectors << 9 >> tr->blkshift;
 +      block = blk_rq_pos(req) << 9 >> tr->blkshift;
 +      nsect = blk_rq_cur_bytes(req) >> tr->blkshift;
  
        buf = req->buffer;
  
        if (req->cmd_type == REQ_TYPE_LINUX_BLOCK &&
            req->cmd[0] == REQ_LB_OP_DISCARD)
 -              return !tr->discard(dev, block, nsect);
 +              return tr->discard(dev, block, nsect);
  
        if (!blk_fs_request(req))
 -              return 0;
 +              return -EIO;
  
 -      if (req->sector + req->current_nr_sectors > get_capacity(req->rq_disk))
 -              return 0;
 +      if (blk_rq_pos(req) + blk_rq_cur_sectors(req) >
 +          get_capacity(req->rq_disk))
 +              return -EIO;
  
        switch(rq_data_dir(req)) {
        case READ:
                for (; nsect > 0; nsect--, block++, buf += tr->blksize)
                        if (tr->readsect(dev, block, buf))
 -                              return 0;
 -              return 1;
 +                              return -EIO;
 +              return 0;
  
        case WRITE:
                if (!tr->writesect)
 -                      return 0;
 +                      return -EIO;
  
                for (; nsect > 0; nsect--, block++, buf += tr->blksize)
                        if (tr->writesect(dev, block, buf))
 -                              return 0;
 -              return 1;
 +                              return -EIO;
 +              return 0;
  
        default:
                printk(KERN_NOTICE "Unknown request %u\n", rq_data_dir(req));
 -              return 0;
 +              return -EIO;
        }
  }
  
@@@ -89,18 -88,19 +89,18 @@@ static int mtd_blktrans_thread(void *ar
  {
        struct mtd_blktrans_ops *tr = arg;
        struct request_queue *rq = tr->blkcore_priv->rq;
 +      struct request *req = NULL;
  
        /* we might get involved when memory gets low, so use PF_MEMALLOC */
        current->flags |= PF_MEMALLOC;
  
        spin_lock_irq(rq->queue_lock);
 +
        while (!kthread_should_stop()) {
 -              struct request *req;
                struct mtd_blktrans_dev *dev;
 -              int res = 0;
 -
 -              req = elv_next_request(rq);
 +              int res;
  
 -              if (!req) {
 +              if (!req && !(req = blk_fetch_request(rq))) {
                        set_current_state(TASK_INTERRUPTIBLE);
                        spin_unlock_irq(rq->queue_lock);
                        schedule();
  
                spin_lock_irq(rq->queue_lock);
  
 -              end_request(req, res);
 +              if (!__blk_end_request_cur(req, res))
 +                      req = NULL;
        }
 +
 +      if (req)
 +              __blk_end_request_all(req, -EIO);
 +
        spin_unlock_irq(rq->queue_lock);
  
        return 0;
@@@ -291,7 -286,7 +291,7 @@@ int add_mtd_blktrans_dev(struct mtd_blk
        gd->private_data = new;
        new->blkcore_priv = gd;
        gd->queue = tr->blkcore_priv->rq;
-       gd->driverfs_dev = new->mtd->dev.parent;
+       gd->driverfs_dev = &new->mtd->dev;
  
        if (new->readonly)
                set_disk_ro(gd, 1);
@@@ -378,7 -373,7 +378,7 @@@ int register_mtd_blktrans(struct mtd_bl
        }
  
        tr->blkcore_priv->rq->queuedata = tr;
 -      blk_queue_hardsect_size(tr->blkcore_priv->rq, tr->blksize);
 +      blk_queue_logical_block_size(tr->blkcore_priv->rq, tr->blksize);
        if (tr->discard)
                blk_queue_set_discard(tr->blkcore_priv->rq,
                                      blktrans_discard_request);
diff --combined drivers/mtd/nand/Kconfig
index f3276897859e2b5e72af0317ab2b7c0a80e810be,1823212c6b46c35f378aceb46ce01de61a32bbf7..ce96c091f01be39b23b7b255b84779bfe58e8f32
@@@ -74,6 -74,12 +74,12 @@@ config MTD_NAND_AMS_DELT
        help
          Support for NAND flash on Amstrad E3 (Delta).
  
+ config MTD_NAND_OMAP2
+       tristate "NAND Flash device on OMAP2 and OMAP3"
+       depends on ARM && MTD_NAND && (ARCH_OMAP2 || ARCH_OMAP3)
+       help
+           Support for NAND flash on Texas Instruments OMAP2 and OMAP3 platforms.
  config MTD_NAND_TS7250
        tristate "NAND Flash device on TS-7250 board"
        depends on MACH_TS72XX
@@@ -139,27 -145,27 +145,27 @@@ config MTD_NAND_PPCHAMELEONEV
          This enables the NAND flash driver on the PPChameleon EVB Board.
  
  config MTD_NAND_S3C2410
-       tristate "NAND Flash support for S3C2410/S3C2440 SoC"
-       depends on ARCH_S3C2410
+       tristate "NAND Flash support for Samsung S3C SoCs"
+       depends on ARCH_S3C2410 || ARCH_S3C64XX
        help
-         This enables the NAND flash controller on the S3C2410 and S3C2440
+         This enables the NAND flash controller on the S3C24xx and S3C64xx
          SoCs
  
          No board specific support is done by this driver, each board
          must advertise a platform_device for the driver to attach.
  
  config MTD_NAND_S3C2410_DEBUG
-       bool "S3C2410 NAND driver debug"
+       bool "Samsung S3C NAND driver debug"
        depends on MTD_NAND_S3C2410
        help
-         Enable debugging of the S3C2410 NAND driver
+         Enable debugging of the S3C NAND driver
  
  config MTD_NAND_S3C2410_HWECC
-       bool "S3C2410 NAND Hardware ECC"
+       bool "Samsung S3C NAND Hardware ECC"
        depends on MTD_NAND_S3C2410
        help
-         Enable the use of the S3C2410's internal ECC generator when
-         using NAND. Early versions of the chip have had problems with
+         Enable the use of the controller's internal ECC generator when
+         using NAND. Early versions of the chips have had problems with
          incorrect ECC generation, and if using these, the default of
          software ECC is preferable.
  
@@@ -171,7 -177,7 +177,7 @@@ config MTD_NAND_NDF
         NDFC Nand Flash Controllers are integrated in IBM/AMCC's 4xx SoCs
  
  config MTD_NAND_S3C2410_CLKSTOP
-       bool "S3C2410 NAND IDLE clock stop"
+       bool "Samsung S3C NAND IDLE clock stop"
        depends on MTD_NAND_S3C2410
        default n
        help
@@@ -260,7 -266,7 +266,7 @@@ config MTD_NAND_BASLER_EXCIT
        help
            This enables the driver for the NAND flash device found on the
            Basler eXcite Smart Camera. If built as a module, the driver
 -          will be named "excite_nandflash.ko".
 +          will be named excite_nandflash.
  
  config MTD_NAND_CAFE
        tristate "NAND support for OLPC CAFÉ chip"
@@@ -282,7 -288,7 +288,7 @@@ config MTD_NAND_CS553
          controller is enabled for NAND, and currently requires that
          the controller be in MMIO mode.
  
 -        If you say "m", the module will be called "cs553x_nand.ko".
 +        If you say "m", the module will be called cs553x_nand.
  
  config MTD_NAND_ATMEL
        tristate "Support for NAND Flash / SmartMedia on AT91 and AVR32"
index 02700f769b8aaca397e830068aeb93419d498834,ba6940d1d3d11a8dbd9ba5d2660050e6e814b64b..0fad6487e6f4bcb062334ae082126d73ad41cd59
@@@ -44,7 -44,7 +44,7 @@@
   * and some flavors of secondary chipselect (e.g. based on A12) as used
   * with multichip packages.
   *
-  * The 1-bit ECC hardware is supported, but not yet the newer 4-bit ECC
+  * The 1-bit ECC hardware is supported, as well as the newer 4-bit ECC
   * available on chips like the DM355 and OMAP-L137 and needed with the
   * more error-prone MLC NAND chips.
   *
  struct davinci_nand_info {
        struct mtd_info         mtd;
        struct nand_chip        chip;
+       struct nand_ecclayout   ecclayout;
  
        struct device           *dev;
        struct clk              *clk;
        bool                    partitioned;
  
+       bool                    is_readmode;
        void __iomem            *base;
        void __iomem            *vaddr;
  
@@@ -73,6 -76,7 +76,7 @@@
  };
  
  static DEFINE_SPINLOCK(davinci_nand_lock);
+ static bool ecc4_busy;
  
  #define to_davinci_nand(m) container_of(m, struct davinci_nand_info, mtd)
  
@@@ -217,6 -221,192 +221,192 @@@ static int nand_davinci_correct_1bit(st
  
  /*----------------------------------------------------------------------*/
  
+ /*
+  * 4-bit hardware ECC ... context maintained over entire AEMIF
+  *
+  * This is a syndrome engine, but we avoid NAND_ECC_HW_SYNDROME
+  * since that forces use of a problematic "infix OOB" layout.
+  * Among other things, it trashes manufacturer bad block markers.
+  * Also, and specific to this hardware, it ECC-protects the "prepad"
+  * in the OOB ... while having ECC protection for parts of OOB would
+  * seem useful, the current MTD stack sometimes wants to update the
+  * OOB without recomputing ECC.
+  */
+ static void nand_davinci_hwctl_4bit(struct mtd_info *mtd, int mode)
+ {
+       struct davinci_nand_info *info = to_davinci_nand(mtd);
+       unsigned long flags;
+       u32 val;
+       spin_lock_irqsave(&davinci_nand_lock, flags);
+       /* Start 4-bit ECC calculation for read/write */
+       val = davinci_nand_readl(info, NANDFCR_OFFSET);
+       val &= ~(0x03 << 4);
+       val |= (info->core_chipsel << 4) | BIT(12);
+       davinci_nand_writel(info, NANDFCR_OFFSET, val);
+       info->is_readmode = (mode == NAND_ECC_READ);
+       spin_unlock_irqrestore(&davinci_nand_lock, flags);
+ }
+ /* Read raw ECC code after writing to NAND. */
+ static void
+ nand_davinci_readecc_4bit(struct davinci_nand_info *info, u32 code[4])
+ {
+       const u32 mask = 0x03ff03ff;
+       code[0] = davinci_nand_readl(info, NAND_4BIT_ECC1_OFFSET) & mask;
+       code[1] = davinci_nand_readl(info, NAND_4BIT_ECC2_OFFSET) & mask;
+       code[2] = davinci_nand_readl(info, NAND_4BIT_ECC3_OFFSET) & mask;
+       code[3] = davinci_nand_readl(info, NAND_4BIT_ECC4_OFFSET) & mask;
+ }
+ /* Terminate read ECC; or return ECC (as bytes) of data written to NAND. */
+ static int nand_davinci_calculate_4bit(struct mtd_info *mtd,
+               const u_char *dat, u_char *ecc_code)
+ {
+       struct davinci_nand_info *info = to_davinci_nand(mtd);
+       u32 raw_ecc[4], *p;
+       unsigned i;
+       /* After a read, terminate ECC calculation by a dummy read
+        * of some 4-bit ECC register.  ECC covers everything that
+        * was read; correct() just uses the hardware state, so
+        * ecc_code is not needed.
+        */
+       if (info->is_readmode) {
+               davinci_nand_readl(info, NAND_4BIT_ECC1_OFFSET);
+               return 0;
+       }
+       /* Pack eight raw 10-bit ecc values into ten bytes, making
+        * two passes which each convert four values (in upper and
+        * lower halves of two 32-bit words) into five bytes.  The
+        * ROM boot loader uses this same packing scheme.
+        */
+       nand_davinci_readecc_4bit(info, raw_ecc);
+       for (i = 0, p = raw_ecc; i < 2; i++, p += 2) {
+               *ecc_code++ =   p[0]        & 0xff;
+               *ecc_code++ = ((p[0] >>  8) & 0x03) | ((p[0] >> 14) & 0xfc);
+               *ecc_code++ = ((p[0] >> 22) & 0x0f) | ((p[1] <<  4) & 0xf0);
+               *ecc_code++ = ((p[1] >>  4) & 0x3f) | ((p[1] >> 10) & 0xc0);
+               *ecc_code++ =  (p[1] >> 18) & 0xff;
+       }
+       return 0;
+ }
+ /* Correct up to 4 bits in data we just read, using state left in the
+  * hardware plus the ecc_code computed when it was first written.
+  */
+ static int nand_davinci_correct_4bit(struct mtd_info *mtd,
+               u_char *data, u_char *ecc_code, u_char *null)
+ {
+       int i;
+       struct davinci_nand_info *info = to_davinci_nand(mtd);
+       unsigned short ecc10[8];
+       unsigned short *ecc16;
+       u32 syndrome[4];
+       unsigned num_errors, corrected;
+       /* All bytes 0xff?  It's an erased page; ignore its ECC. */
+       for (i = 0; i < 10; i++) {
+               if (ecc_code[i] != 0xff)
+                       goto compare;
+       }
+       return 0;
+ compare:
+       /* Unpack ten bytes into eight 10 bit values.  We know we're
+        * little-endian, and use type punning for less shifting/masking.
+        */
+       if (WARN_ON(0x01 & (unsigned) ecc_code))
+               return -EINVAL;
+       ecc16 = (unsigned short *)ecc_code;
+       ecc10[0] =  (ecc16[0] >>  0) & 0x3ff;
+       ecc10[1] = ((ecc16[0] >> 10) & 0x3f) | ((ecc16[1] << 6) & 0x3c0);
+       ecc10[2] =  (ecc16[1] >>  4) & 0x3ff;
+       ecc10[3] = ((ecc16[1] >> 14) & 0x3)  | ((ecc16[2] << 2) & 0x3fc);
+       ecc10[4] =  (ecc16[2] >>  8)         | ((ecc16[3] << 8) & 0x300);
+       ecc10[5] =  (ecc16[3] >>  2) & 0x3ff;
+       ecc10[6] = ((ecc16[3] >> 12) & 0xf)  | ((ecc16[4] << 4) & 0x3f0);
+       ecc10[7] =  (ecc16[4] >>  6) & 0x3ff;
+       /* Tell ECC controller about the expected ECC codes. */
+       for (i = 7; i >= 0; i--)
+               davinci_nand_writel(info, NAND_4BIT_ECC_LOAD_OFFSET, ecc10[i]);
+       /* Allow time for syndrome calculation ... then read it.
+        * A syndrome of all zeroes 0 means no detected errors.
+        */
+       davinci_nand_readl(info, NANDFSR_OFFSET);
+       nand_davinci_readecc_4bit(info, syndrome);
+       if (!(syndrome[0] | syndrome[1] | syndrome[2] | syndrome[3]))
+               return 0;
+       /* Start address calculation, and wait for it to complete.
+        * We _could_ start reading more data while this is working,
+        * to speed up the overall page read.
+        */
+       davinci_nand_writel(info, NANDFCR_OFFSET,
+                       davinci_nand_readl(info, NANDFCR_OFFSET) | BIT(13));
+       for (;;) {
+               u32     fsr = davinci_nand_readl(info, NANDFSR_OFFSET);
+               switch ((fsr >> 8) & 0x0f) {
+               case 0:         /* no error, should not happen */
+                       return 0;
+               case 1:         /* five or more errors detected */
+                       return -EIO;
+               case 2:         /* error addresses computed */
+               case 3:
+                       num_errors = 1 + ((fsr >> 16) & 0x03);
+                       goto correct;
+               default:        /* still working on it */
+                       cpu_relax();
+                       continue;
+               }
+       }
+ correct:
+       /* correct each error */
+       for (i = 0, corrected = 0; i < num_errors; i++) {
+               int error_address, error_value;
+               if (i > 1) {
+                       error_address = davinci_nand_readl(info,
+                                               NAND_ERR_ADD2_OFFSET);
+                       error_value = davinci_nand_readl(info,
+                                               NAND_ERR_ERRVAL2_OFFSET);
+               } else {
+                       error_address = davinci_nand_readl(info,
+                                               NAND_ERR_ADD1_OFFSET);
+                       error_value = davinci_nand_readl(info,
+                                               NAND_ERR_ERRVAL1_OFFSET);
+               }
+               if (i & 1) {
+                       error_address >>= 16;
+                       error_value >>= 16;
+               }
+               error_address &= 0x3ff;
+               error_address = (512 + 7) - error_address;
+               if (error_address < 512) {
+                       data[error_address] ^= error_value;
+                       corrected++;
+               }
+       }
+       return corrected;
+ }
+ /*----------------------------------------------------------------------*/
  /*
   * NOTE:  NAND boot requires ALE == EM_A[1], CLE == EM_A[2], so that's
   * how these chips are normally wired.  This translates to both 8 and 16
@@@ -294,6 -484,23 +484,23 @@@ static void __init nand_dm6446evm_flash
  
  /*----------------------------------------------------------------------*/
  
+ /* An ECC layout for using 4-bit ECC with small-page flash, storing
+  * ten ECC bytes plus the manufacturer's bad block marker byte, and
+  * and not overlapping the default BBT markers.
+  */
+ static struct nand_ecclayout hwecc4_small __initconst = {
+       .eccbytes = 10,
+       .eccpos = { 0, 1, 2, 3, 4,
+               /* offset 5 holds the badblock marker */
+               6, 7,
+               13, 14, 15, },
+       .oobfree = {
+               {.offset = 8, .length = 5, },
+               {.offset = 16, },
+       },
+ };
  static int __init nand_davinci_probe(struct platform_device *pdev)
  {
        struct davinci_nand_pdata       *pdata = pdev->dev.platform_data;
        uint32_t                        val;
        nand_ecc_modes_t                ecc_mode;
  
+       /* insist on board-specific configuration */
+       if (!pdata)
+               return -ENODEV;
        /* which external chipselect will we be managing? */
        if (pdev->id < 0 || pdev->id > 3)
                return -ENODEV;
        info->chip.select_chip  = nand_davinci_select_chip;
  
        /* options such as NAND_USE_FLASH_BBT or 16-bit widths */
-       info->chip.options      = pdata ? pdata->options : 0;
+       info->chip.options      = pdata->options;
  
        info->ioaddr            = (uint32_t __force) vaddr;
  
        info->mask_chipsel      = pdata->mask_chipsel;
  
        /* use nandboot-capable ALE/CLE masks by default */
-       if (pdata && pdata->mask_ale)
-               info->mask_ale  = pdata->mask_cle;
-       else
-               info->mask_ale  = MASK_ALE;
-       if (pdata && pdata->mask_cle)
-               info->mask_cle  = pdata->mask_cle;
-       else
-               info->mask_cle  = MASK_CLE;
+       info->mask_ale          = pdata->mask_cle ? : MASK_ALE;
+       info->mask_cle          = pdata->mask_cle ? : MASK_CLE;
  
        /* Set address of hardware control function */
        info->chip.cmd_ctrl     = nand_davinci_hwcontrol;
        info->chip.read_buf     = nand_davinci_read_buf;
        info->chip.write_buf    = nand_davinci_write_buf;
  
-       /* use board-specific ECC config; else, the best available */
-       if (pdata)
-               ecc_mode = pdata->ecc_mode;
-       else
-               ecc_mode = NAND_ECC_HW;
+       /* Use board-specific ECC config */
+       ecc_mode                = pdata->ecc_mode;
  
+       ret = -EINVAL;
        switch (ecc_mode) {
        case NAND_ECC_NONE:
        case NAND_ECC_SOFT:
+               pdata->ecc_bits = 0;
                break;
        case NAND_ECC_HW:
-               info->chip.ecc.calculate = nand_davinci_calculate_1bit;
-               info->chip.ecc.correct = nand_davinci_correct_1bit;
-               info->chip.ecc.hwctl = nand_davinci_hwctl_1bit;
+               if (pdata->ecc_bits == 4) {
+                       /* No sanity checks:  CPUs must support this,
+                        * and the chips may not use NAND_BUSWIDTH_16.
+                        */
+                       /* No sharing 4-bit hardware between chipselects yet */
+                       spin_lock_irq(&davinci_nand_lock);
+                       if (ecc4_busy)
+                               ret = -EBUSY;
+                       else
+                               ecc4_busy = true;
+                       spin_unlock_irq(&davinci_nand_lock);
+                       if (ret == -EBUSY)
+                               goto err_ecc;
+                       info->chip.ecc.calculate = nand_davinci_calculate_4bit;
+                       info->chip.ecc.correct = nand_davinci_correct_4bit;
+                       info->chip.ecc.hwctl = nand_davinci_hwctl_4bit;
+                       info->chip.ecc.bytes = 10;
+               } else {
+                       info->chip.ecc.calculate = nand_davinci_calculate_1bit;
+                       info->chip.ecc.correct = nand_davinci_correct_1bit;
+                       info->chip.ecc.hwctl = nand_davinci_hwctl_1bit;
+                       info->chip.ecc.bytes = 3;
+               }
                info->chip.ecc.size = 512;
-               info->chip.ecc.bytes = 3;
                break;
-       case NAND_ECC_HW_SYNDROME:
-               /* FIXME implement */
-               info->chip.ecc.size = 512;
-               info->chip.ecc.bytes = 10;
-               dev_warn(&pdev->dev, "4-bit ECC nyet supported\n");
-               /* FALL THROUGH */
        default:
                ret = -EINVAL;
                goto err_ecc;
        }
        info->chip.ecc.mode = ecc_mode;
  
 -      info->clk = clk_get(&pdev->dev, "AEMIFCLK");
 +      info->clk = clk_get(&pdev->dev, "aemif");
        if (IS_ERR(info->clk)) {
                ret = PTR_ERR(info->clk);
 -              dev_dbg(&pdev->dev, "unable to get AEMIFCLK, err %d\n", ret);
 +              dev_dbg(&pdev->dev, "unable to get AEMIF clock, err %d\n", ret);
                goto err_clk;
        }
  
        ret = clk_enable(info->clk);
        if (ret < 0) {
 -              dev_dbg(&pdev->dev, "unable to enable AEMIFCLK, err %d\n", ret);
 +              dev_dbg(&pdev->dev, "unable to enable AEMIF clock, err %d\n",
 +                      ret);
                goto err_clk_enable;
        }
  
        spin_unlock_irq(&davinci_nand_lock);
  
        /* Scan to find existence of the device(s) */
-       ret = nand_scan(&info->mtd, pdata->mask_chipsel ? 2 : 1);
+       ret = nand_scan_ident(&info->mtd, pdata->mask_chipsel ? 2 : 1);
        if (ret < 0) {
                dev_dbg(&pdev->dev, "no NAND chip(s) found\n");
                goto err_scan;
        }
  
+       /* Update ECC layout if needed ... for 1-bit HW ECC, the default
+        * is OK, but it allocates 6 bytes when only 3 are needed (for
+        * each 512 bytes).  For the 4-bit HW ECC, that default is not
+        * usable:  10 bytes are needed, not 6.
+        */
+       if (pdata->ecc_bits == 4) {
+               int     chunks = info->mtd.writesize / 512;
+               if (!chunks || info->mtd.oobsize < 16) {
+                       dev_dbg(&pdev->dev, "too small\n");
+                       ret = -EINVAL;
+                       goto err_scan;
+               }
+               /* For small page chips, preserve the manufacturer's
+                * badblock marking data ... and make sure a flash BBT
+                * table marker fits in the free bytes.
+                */
+               if (chunks == 1) {
+                       info->ecclayout = hwecc4_small;
+                       info->ecclayout.oobfree[1].length =
+                               info->mtd.oobsize - 16;
+                       goto syndrome_done;
+               }
+               /* For large page chips we'll be wanting to use a
+                * not-yet-implemented mode that reads OOB data
+                * before reading the body of the page, to avoid
+                * the "infix OOB" model of NAND_ECC_HW_SYNDROME
+                * (and preserve manufacturer badblock markings).
+                */
+               dev_warn(&pdev->dev, "no 4-bit ECC support yet "
+                               "for large page NAND\n");
+               ret = -EIO;
+               goto err_scan;
+ syndrome_done:
+               info->chip.ecc.layout = &info->ecclayout;
+       }
+       ret = nand_scan_tail(&info->mtd);
+       if (ret < 0)
+               goto err_scan;
        if (mtd_has_partitions()) {
                struct mtd_partition    *mtd_parts = NULL;
                int                     mtd_parts_nb = 0;
                        static const char *probes[] __initconst =
                                { "cmdlinepart", NULL };
  
-                       const char              *master_name;
-                       /* Set info->mtd.name = 0 temporarily */
-                       master_name             = info->mtd.name;
-                       info->mtd.name          = (char *)0;
-                       /* info->mtd.name == 0, means: don't bother checking
-                          <mtd-id> */
                        mtd_parts_nb = parse_mtd_partitions(&info->mtd, probes,
                                                            &mtd_parts, 0);
-                       /* Restore info->mtd.name */
-                       info->mtd.name = master_name;
                }
  
-               if (mtd_parts_nb <= 0 && pdata) {
+               if (mtd_parts_nb <= 0) {
                        mtd_parts = pdata->parts;
                        mtd_parts_nb = pdata->nr_parts;
                }
                                info->partitioned = true;
                }
  
-       } else if (pdata && pdata->nr_parts) {
+       } else if (pdata->nr_parts) {
                dev_warn(&pdev->dev, "ignoring %d default partitions on %s\n",
                                pdata->nr_parts, info->mtd.name);
        }
@@@ -509,6 -760,11 +761,11 @@@ err_scan
  err_clk_enable:
        clk_put(info->clk);
  
+       spin_lock_irq(&davinci_nand_lock);
+       if (ecc_mode == NAND_ECC_HW_SYNDROME)
+               ecc4_busy = false;
+       spin_unlock_irq(&davinci_nand_lock);
  err_ecc:
  err_clk:
  err_ioremap:
@@@ -532,6 -788,11 +789,11 @@@ static int __exit nand_davinci_remove(s
        else
                status = del_mtd_device(&info->mtd);
  
+       spin_lock_irq(&davinci_nand_lock);
+       if (info->chip.ecc.mode == NAND_ECC_HW_SYNDROME)
+               ecc4_busy = false;
+       spin_unlock_irq(&davinci_nand_lock);
        iounmap(info->base);
        iounmap(info->vaddr);
  
index 6391e3dc80025ff243db8391facb4fddf6bf796e,df26db863f2f3e191a0b1f1884a4718f6e8403ba..38d656b9b2eecc8f5029bb0b7a6e89f921ff5a2d
@@@ -39,6 -39,7 +39,6 @@@
  #include <mach/gpmc.h>
  #include <mach/onenand.h>
  #include <mach/gpio.h>
 -#include <mach/pm.h>
  
  #include <mach/dma.h>
  
@@@ -565,7 -566,7 +565,7 @@@ int omap2_onenand_rephase(void
                                      NULL, __adjust_timing);
  }
  
- static void __devexit omap2_onenand_shutdown(struct platform_device *pdev)
+ static void omap2_onenand_shutdown(struct platform_device *pdev)
  {
        struct omap2_onenand *c = dev_get_drvdata(&pdev->dev);
  
@@@ -777,7 -778,7 +777,7 @@@ static int __devexit omap2_onenand_remo
  
  static struct platform_driver omap2_onenand_driver = {
        .probe          = omap2_onenand_probe,
-       .remove         = omap2_onenand_remove,
+       .remove         = __devexit_p(omap2_onenand_remove),
        .shutdown       = omap2_onenand_shutdown,
        .driver         = {
                .name   = DRIVER_NAME,
diff --combined fs/compat_ioctl.c
index c5ded5ff72b58b5c45e5e7cb1b5cd4d639dc4567,aa6ba39ff370648daf66144e258455b3098e3e4a..c135202c38b3667b30698114d13d8f49cc076ab2
@@@ -94,7 -94,6 +94,6 @@@
  #include <linux/atm_tcp.h>
  #include <linux/sonet.h>
  #include <linux/atm_suni.h>
- #include <linux/mtd/mtd.h>
  
  #include <linux/usb.h>
  #include <linux/usbdevice_fs.h>
@@@ -788,6 -787,12 +787,6 @@@ static int sg_ioctl_trans(unsigned int 
        if (put_user(compat_ptr(data), &sgio->usr_ptr))
                return -EFAULT;
  
 -      if (copy_in_user(&sgio->status, &sgio32->status,
 -                       (4 * sizeof(unsigned char)) +
 -                       (2 * sizeof(unsigned short)) +
 -                       (3 * sizeof(int))))
 -              return -EFAULT;
 -
        err = sys_ioctl(fd, cmd, (unsigned long) sgio);
  
        if (err >= 0) {
@@@ -1405,46 -1410,6 +1404,6 @@@ static int ioc_settimeout(unsigned int 
  #define HIDPGETCONNLIST       _IOR('H', 210, int)
  #define HIDPGETCONNINFO       _IOR('H', 211, int)
  
- struct mtd_oob_buf32 {
-       u_int32_t start;
-       u_int32_t length;
-       compat_caddr_t ptr;     /* unsigned char* */
- };
- #define MEMWRITEOOB32         _IOWR('M',3,struct mtd_oob_buf32)
- #define MEMREADOOB32  _IOWR('M',4,struct mtd_oob_buf32)
- static int mtd_rw_oob(unsigned int fd, unsigned int cmd, unsigned long arg)
- {
-       struct mtd_oob_buf __user *buf = compat_alloc_user_space(sizeof(*buf));
-       struct mtd_oob_buf32 __user *buf32 = compat_ptr(arg);
-       u32 data;
-       char __user *datap;
-       unsigned int real_cmd;
-       int err;
-       real_cmd = (cmd == MEMREADOOB32) ?
-               MEMREADOOB : MEMWRITEOOB;
-       if (copy_in_user(&buf->start, &buf32->start,
-                        2 * sizeof(u32)) ||
-           get_user(data, &buf32->ptr))
-               return -EFAULT;
-       datap = compat_ptr(data);
-       if (put_user(datap, &buf->ptr))
-               return -EFAULT;
-       err = sys_ioctl(fd, real_cmd, (unsigned long) buf);
-       if (!err) {
-               if (copy_in_user(&buf32->start, &buf->start,
-                                2 * sizeof(u32)))
-                       err = -EFAULT;
-       }
-       return err;
- }     
  #ifdef CONFIG_BLOCK
  struct raw32_config_request
  {
@@@ -1759,7 -1724,7 +1718,7 @@@ static int do_i2c_smbus_ioctl(unsigned 
  
  /* Since old style bridge ioctl's endup using SIOCDEVPRIVATE
   * for some operations; this forces use of the newer bridge-utils that
 - * use compatiable ioctls
 + * use compatible ioctls
   */
  static int old_bridge_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
  {
@@@ -2426,15 -2391,6 +2385,6 @@@ COMPATIBLE_IOCTL(USBDEVFS_SUBMITURB32
  COMPATIBLE_IOCTL(USBDEVFS_REAPURB32)
  COMPATIBLE_IOCTL(USBDEVFS_REAPURBNDELAY32)
  COMPATIBLE_IOCTL(USBDEVFS_CLEAR_HALT)
- /* MTD */
- COMPATIBLE_IOCTL(MEMGETINFO)
- COMPATIBLE_IOCTL(MEMERASE)
- COMPATIBLE_IOCTL(MEMLOCK)
- COMPATIBLE_IOCTL(MEMUNLOCK)
- COMPATIBLE_IOCTL(MEMGETREGIONCOUNT)
- COMPATIBLE_IOCTL(MEMGETREGIONINFO)
- COMPATIBLE_IOCTL(MEMGETBADBLOCK)
- COMPATIBLE_IOCTL(MEMSETBADBLOCK)
  /* NBD */
  ULONG_IOCTL(NBD_SET_SOCK)
  ULONG_IOCTL(NBD_SET_BLKSIZE)
@@@ -2544,8 -2500,6 +2494,6 @@@ COMPATIBLE_IOCTL(JSIOCGBUTTONS
  COMPATIBLE_IOCTL(JSIOCGNAME(0))
  
  /* now things that need handlers */
- HANDLE_IOCTL(MEMREADOOB32, mtd_rw_oob)
- HANDLE_IOCTL(MEMWRITEOOB32, mtd_rw_oob)
  #ifdef CONFIG_NET
  HANDLE_IOCTL(SIOCGIFNAME, dev_ifname32)
  HANDLE_IOCTL(SIOCGIFCONF, dev_ifconf)