Merge branch 'master' into for-next
authorJiri Kosina <jkosina@suse.cz>
Tue, 26 Apr 2011 08:22:15 +0000 (10:22 +0200)
committerJiri Kosina <jkosina@suse.cz>
Tue, 26 Apr 2011 08:22:59 +0000 (10:22 +0200)
Fast-forwarded to current state of Linus' tree as there are patches to be
applied for files that didn't exist on the old branch.

28 files changed:
1  2 
CREDITS
MAINTAINERS
arch/arm/mach-at91/at91cap9_devices.c
arch/arm/mach-tegra/tegra2_clocks.c
arch/mips/sgi-ip22/ip22-int.c
drivers/gpu/drm/radeon/radeon_fence.c
drivers/gpu/drm/radeon/radeon_ring.c
drivers/leds/leds-mc13783.c
drivers/net/can/softing/softing_main.c
drivers/net/sgiseeq.c
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/rtlwifi/pci.c
drivers/scsi/lpfc/lpfc_bsg.c
drivers/scsi/qla2xxx/qla_isr.c
drivers/target/target_core_alua.c
drivers/target/target_core_transport.c
drivers/tty/serial/mrst_max3110.c
drivers/tty/tty_ioctl.c
fs/logfs/readwrite.c
fs/ocfs2/refcounttree.c
fs/partitions/ldm.c
fs/ufs/inode.c
include/video/newport.h
lib/Kconfig.debug
lib/vsprintf.c
mm/hugetlb.c
mm/page_alloc.c
net/netfilter/ipset/ip_set_bitmap_ip.c

diff --combined CREDITS
+++ b/CREDITS
@@@ -328,7 -328,7 +328,7 @@@ S: Haifa, Israe
  N: Johannes Berg
  E: johannes@sipsolutions.net
  W: http://johannes.sipsolutions.net/
 -P: 1024D/9AB78CA5 AD02 0176 4E29 C137 1DF6 08D2 FC44 CF86 9AB7 8CA5
 +P: 4096R/7BF9099A C0EB C440 F6DA 091C 884D  8532 E0F3 73F3 7BF9 099A
  D: powerpc & 802.11 hacker
  
  N: Stephen R. van den Berg (AKA BuGless)
@@@ -1677,7 -1677,7 +1677,7 @@@ W: http://www.codemonkey.org.u
  D: Assorted VIA x86 support.
  D: 2.5 AGPGART overhaul.
  D: CPUFREQ maintenance.
- D: Fedora kernel maintainence.
+ D: Fedora kernel maintenance.
  D: Misc/Other.
  S: 314 Littleton Rd, Westford, MA 01886, USA
  
@@@ -3211,7 -3211,7 +3211,7 @@@ N: James Simmon
  E: jsimmons@infradead.org
  E: jsimmons@users.sf.net 
  D: Frame buffer device maintainer
- D: input layer developement 
+ D: input layer development
  D: tty/console layer
  D: various mipsel devices 
  S: 115 Carmel Avenue 
@@@ -3290,7 -3290,7 +3290,7 @@@ S: US
  N: Manfred Spraul
  E: manfred@colorfullife.com
  W: http://www.colorfullife.com/~manfred
- D: Lots of tiny hacks. Larger improvments to SysV IPC msg,
+ D: Lots of tiny hacks. Larger improvements to SysV IPC msg,
  D: slab, pipe, select.
  S: 71701 Schwieberdingen
  S: Germany
diff --combined MAINTAINERS
@@@ -72,7 -72,7 +72,7 @@@ Descriptions of section entries
        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.
+       T: SCM tree type and location.  Type is one of: git, hg, quilt, stgit, topgit.
        S: Status, one of the following:
           Supported:   Someone is actually paid to look after this.
           Maintained:  Someone actually looks after it.
@@@ -151,6 -151,7 +151,7 @@@ S: Maintaine
  F:    drivers/net/hamradio/6pack.c
  
  8169 10/100/1000 GIGABIT ETHERNET DRIVER
+ M:    Realtek linux nic maintainers <nic_swsd@realtek.com>
  M:    Francois Romieu <romieu@fr.zoreil.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
@@@ -184,10 -185,9 +185,9 @@@ F:        Documentation/filesystems/9p.tx
  F:    fs/9p/
  
  A2232 SERIAL BOARD DRIVER
- M:    Enver Haase <A2232@gmx.net>
  L:    linux-m68k@lists.linux-m68k.org
- S:    Maintained
- F:    drivers/char/ser_a2232*
+ S:    Orphan
+ F:    drivers/staging/generic_serial/ser_a2232*
  
  AACRAID SCSI RAID DRIVER
  M:    Adaptec OEM Raid Solutions <aacraid@adaptec.com>
@@@ -198,7 -198,7 +198,7 @@@ F: Documentation/scsi/aacraid.tx
  F:    drivers/scsi/aacraid/
  
  ABIT UGURU 1,2 HARDWARE MONITOR DRIVER
- M:    Hans de Goede <j.w.r.degoede@hhs.nl>
+ M:    Hans de Goede <hdegoede@redhat.com>
  L:    lm-sensors@lm-sensors.org
  S:    Maintained
  F:    drivers/hwmon/abituguru.c
@@@ -288,35 -288,35 +288,35 @@@ F:      sound/pci/ad1889.
  AD525X ANALOG DEVICES DIGITAL POTENTIOMETERS DRIVER
  M:    Michael Hennerich <michael.hennerich@analog.com>
  L:    device-driver-devel@blackfin.uclinux.org
- W:    http://wiki-analog.com/AD5254
+ W:    http://wiki.analog.com/AD5254
  S:    Supported
  F:    drivers/misc/ad525x_dpot.c
  
  AD5398 CURRENT REGULATOR DRIVER (AD5398/AD5821)
  M:    Michael Hennerich <michael.hennerich@analog.com>
  L:    device-driver-devel@blackfin.uclinux.org
- W:    http://wiki-analog.com/AD5398
+ W:    http://wiki.analog.com/AD5398
  S:    Supported
  F:    drivers/regulator/ad5398.c
  
  AD714X CAPACITANCE TOUCH SENSOR DRIVER (AD7142/3/7/8/7A)
  M:    Michael Hennerich <michael.hennerich@analog.com>
  L:    device-driver-devel@blackfin.uclinux.org
- W:    http://wiki-analog.com/AD7142
+ W:    http://wiki.analog.com/AD7142
  S:    Supported
  F:    drivers/input/misc/ad714x.c
  
  AD7877 TOUCHSCREEN DRIVER
  M:    Michael Hennerich <michael.hennerich@analog.com>
  L:    device-driver-devel@blackfin.uclinux.org
- W:    http://wiki-analog.com/AD7877
+ W:    http://wiki.analog.com/AD7877
  S:    Supported
  F:    drivers/input/touchscreen/ad7877.c
  
  AD7879 TOUCHSCREEN DRIVER (AD7879/AD7889)
  M:    Michael Hennerich <michael.hennerich@analog.com>
  L:    device-driver-devel@blackfin.uclinux.org
- W:    http://wiki-analog.com/AD7879
+ W:    http://wiki.analog.com/AD7879
  S:    Supported
  F:    drivers/input/touchscreen/ad7879.c
  
@@@ -342,18 -342,18 +342,18 @@@ F:      drivers/net/wireless/adm8211.
  ADP5520 BACKLIGHT DRIVER WITH IO EXPANDER (ADP5520/ADP5501)
  M:    Michael Hennerich <michael.hennerich@analog.com>
  L:    device-driver-devel@blackfin.uclinux.org
- W:    http://wiki-analog.com/ADP5520
+ W:    http://wiki.analog.com/ADP5520
  S:    Supported
  F:    drivers/mfd/adp5520.c
  F:    drivers/video/backlight/adp5520_bl.c
- F:    drivers/led/leds-adp5520.c
+ F:    drivers/leds/leds-adp5520.c
  F:    drivers/gpio/adp5520-gpio.c
  F:    drivers/input/keyboard/adp5520-keys.c
  
  ADP5588 QWERTY KEYPAD AND IO EXPANDER DRIVER (ADP5588/ADP5587)
  M:    Michael Hennerich <michael.hennerich@analog.com>
  L:    device-driver-devel@blackfin.uclinux.org
- W:    http://wiki-analog.com/ADP5588
+ W:    http://wiki.analog.com/ADP5588
  S:    Supported
  F:    drivers/input/keyboard/adp5588-keys.c
  F:    drivers/gpio/adp5588-gpio.c
  ADP8860 BACKLIGHT DRIVER (ADP8860/ADP8861/ADP8863)
  M:    Michael Hennerich <michael.hennerich@analog.com>
  L:    device-driver-devel@blackfin.uclinux.org
- W:    http://wiki-analog.com/ADP8860
+ W:    http://wiki.analog.com/ADP8860
  S:    Supported
  F:    drivers/video/backlight/adp8860_bl.c
  
+ ADS1015 HARDWARE MONITOR DRIVER
+ M:    Dirk Eibach <eibach@gdsys.de>
+ L:    lm-sensors@lm-sensors.org
+ S:    Maintained
+ F:    Documentation/hwmon/ads1015
+ F:    drivers/hwmon/ads1015.c
+ F:    include/linux/i2c/ads1015.h
  ADT746X FAN DRIVER
  M:    Colin Leroy <colin@colino.net>
  S:    Maintained
@@@ -380,7 -388,7 +388,7 @@@ F: drivers/hwmon/adt7475.
  ADXL34X THREE-AXIS DIGITAL ACCELEROMETER DRIVER (ADXL345/ADXL346)
  M:    Michael Hennerich <michael.hennerich@analog.com>
  L:    device-driver-devel@blackfin.uclinux.org
- W:    http://wiki-analog.com/ADXL345
+ W:    http://wiki.analog.com/ADXL345
  S:    Supported
  F:    drivers/input/misc/adxl34x.c
  
@@@ -520,11 -528,9 +528,9 @@@ F:        drivers/infiniband/hw/amso1100
  ANALOG DEVICES INC ASOC CODEC DRIVERS
  L:    device-driver-devel@blackfin.uclinux.org
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
- W:    http://wiki-analog.com/
+ W:    http://wiki.analog.com/
  S:    Supported
  F:    sound/soc/codecs/ad1*
- F:    sound/soc/codecs/adau*
- F:    sound/soc/codecs/adav*
  F:    sound/soc/codecs/ssm*
  
  ANALOG DEVICES INC ASOC DRIVERS
@@@ -542,10 -548,8 +548,8 @@@ S:        Maintaine
  F:    sound/aoa/
  
  APM DRIVER
- M:    Stephen Rothwell <sfr@canb.auug.org.au>
  L:    linux-laptop@vger.kernel.org
- W:    http://www.canb.auug.org.au/~sfr/
- S:    Supported
+ S:    Orphan
  F:    arch/x86/kernel/apm_32.c
  F:    include/linux/apm_bios.h
  
@@@ -689,8 -693,8 +693,8 @@@ S: Maintaine
  ARM/CLKDEV SUPPORT
  M:    Russell King <linux@arm.linux.org.uk>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- F:    arch/arm/common/clkdev.c
  F:    arch/arm/include/asm/clkdev.h
+ F:    drivers/clk/clkdev.c
  
  ARM/COMPULAB CM-X270/EM-X270 and CM-X300 MACHINE SUPPORT
  M:    Mike Rapoport <mike@compulab.co.il>
@@@ -725,7 -729,7 +729,7 @@@ ARM/EZX SMARTPHONES (A780, A910, A1200
  M:    Daniel Ribeiro <drwyrm@gmail.com>
  M:    Stefan Schmidt <stefan@openezx.org>
  M:    Harald Welte <laforge@openezx.org>
 -L:    openezx-devel@lists.openezx.org (subscribers-only)
 +L:    openezx-devel@lists.openezx.org (moderated for non-subscribers)
  W:    http://www.openezx.org/
  S:    Maintained
  T:    topgit git://git.openezx.org/openezx.git
@@@ -873,6 -877,13 +877,13 @@@ F:       arch/arm/mach-mv78xx0
  F:    arch/arm/mach-orion5x/
  F:    arch/arm/plat-orion/
  
+ ARM/Orion SoC/Technologic Systems TS-78xx platform support
+ M:    Alexander Clouter <alex@digriz.org.uk>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ W:    http://www.digriz.org.uk/ts78xx/kernel
+ S:    Maintained
+ F:    arch/arm/mach-orion5x/ts78xx-*
  ARM/MIOA701 MACHINE SUPPORT
  M:    Robert Jarzmik <robert.jarzmik@free.fr>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -911,6 -922,7 +922,7 @@@ F: drivers/mmc/host/msm_sdcc.
  F:    drivers/mmc/host/msm_sdcc.h
  F:    drivers/tty/serial/msm_serial.h
  F:    drivers/tty/serial/msm_serial.c
+ F:    drivers/platform/msm/
  T:    git git://codeaurora.org/quic/kernel/davidb/linux-msm.git
  S:    Maintained
  
@@@ -1058,7 -1070,7 +1070,7 @@@ F:      arch/arm/mach-shmobile
  F:    drivers/sh/
  
  ARM/TELECHIPS ARM ARCHITECTURE
- M:    "Hans J. Koch" <hjk@linutronix.de>
+ M:    "Hans J. Koch" <hjk@hansjkoch.de>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/plat-tcc/
@@@ -1070,7 -1082,7 +1082,7 @@@ L:      linux-arm-kernel@lists.infradead.or
  S:    Maintained
  
  ARM/TETON BGA MACHINE SUPPORT
- M:    Mark F. Brown <mark.brown314@gmail.com>
+ M:    "Mark F. Brown" <mark.brown314@gmail.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  
@@@ -1152,14 -1164,14 +1164,14 @@@ S:   Maintaine
  F:    Documentation/hwmon/asc7621
  F:    drivers/hwmon/asc7621.c
  
- ASUS ACPI EXTRAS DRIVER
+ ASUS NOTEBOOKS AND EEEPC ACPI/WMI EXTRAS DRIVERS
  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
+ F:    drivers/platform/x86/asus*.c
+ F:    drivers/platform/x86/eeepc*.c
  
  ASUS ASB100 HARDWARE MONITOR DRIVER
  M:    "Mark M. Hoffman" <mhoffman@lightlink.com>
@@@ -1167,14 -1179,6 +1179,6 @@@ L:     lm-sensors@lm-sensors.or
  S:    Maintained
  F:    drivers/hwmon/asb100.c
  
- 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
  ASYNCHRONOUS TRANSFERS/TRANSFORMS (IOAT) API
  M:    Dan Williams <dan.j.williams@intel.com>
  W:    http://sourceforge.net/projects/xscaleiop
@@@ -1474,7 -1478,7 +1478,7 @@@ F:      drivers/mtd/devices/block2mtd.
  
  BLUETOOTH DRIVERS
  M:    Marcel Holtmann <marcel@holtmann.org>
- M:    Gustavo F. Padovan <padovan@profusion.mobi>
+ M:    "Gustavo F. Padovan" <padovan@profusion.mobi>
  L:    linux-bluetooth@vger.kernel.org
  W:    http://www.bluez.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-2.6.git
@@@ -1483,7 -1487,7 +1487,7 @@@ F:      drivers/bluetooth
  
  BLUETOOTH SUBSYSTEM
  M:    Marcel Holtmann <marcel@holtmann.org>
- M:    Gustavo F. Padovan <padovan@profusion.mobi>
+ M:    "Gustavo F. Padovan" <padovan@profusion.mobi>
  L:    linux-bluetooth@vger.kernel.org
  W:    http://www.bluez.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-2.6.git
@@@ -1826,11 -1830,10 +1830,10 @@@ S:   Maintaine
  F:    drivers/platform/x86/compal-laptop.c
  
  COMPUTONE INTELLIPORT MULTIPORT CARD
- M:    "Michael H. Warfield" <mhw@wittsend.com>
  W:    http://www.wittsend.com/computone.html
- S:    Maintained
+ S:    Orphan
  F:    Documentation/serial/computone.txt
- F:    drivers/char/ip2/
+ F:    drivers/staging/tty/ip2/
  
  CONEXANT ACCESSRUNNER USB DRIVER
  M:    Simon Arlott <cxacru@fire.lp0.eu>
@@@ -2013,7 -2016,7 +2016,7 @@@ F:      drivers/net/wan/cycx
  CYCLADES ASYNC MUX DRIVER
  W:    http://www.cyclades.com/
  S:    Orphan
- F:    drivers/char/cyclades.c
+ F:    drivers/tty/cyclades.c
  F:    include/linux/cyclades.h
  
  CYCLADES PC300 DRIVER
@@@ -2127,8 -2130,14 +2130,14 @@@ L:    Eng.Linux@digi.co
  W:    http://www.digi.com
  S:    Orphan
  F:    Documentation/serial/digiepca.txt
- F:    drivers/char/epca*
- F:    drivers/char/digi*
+ F:    drivers/staging/tty/epca*
+ F:    drivers/staging/tty/digi*
+ DIOLAN U2C-12 I2C DRIVER
+ M:    Guenter Roeck <guenter.roeck@ericsson.com>
+ L:    linux-i2c@vger.kernel.org
+ S:    Maintained
+ F:    drivers/i2c/busses/i2c-diolan-u2c.c
  
  DIRECTORY NOTIFICATION (DNOTIFY)
  M:    Eric Paris <eparis@parisplace.org>
@@@ -2403,22 -2412,6 +2412,6 @@@ T:     git git://git.alsa-project.org/alsa-
  S:    Maintained
  F:    sound/usb/misc/ua101.c
  
- 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
- EEEPC WMI 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-wmi.c
  EFIFB FRAMEBUFFER DRIVER
  L:    linux-fbdev@vger.kernel.org
  M:    Peter Jones <pjones@redhat.com>
@@@ -2467,8 -2460,7 +2460,7 @@@ F:      include/linux/cb710.
  ENE KB2426 (ENE0100/ENE020XX) INFRARED RECEIVER
  M:    Maxim Levitsky <maximlevitsky@gmail.com>
  S:    Maintained
- F:    drivers/media/IR/ene_ir.c
- F:    drivers/media/IR/ene_ir.h
+ F:    drivers/media/rc/ene_ir.*
  
  EPSON 1355 FRAMEBUFFER DRIVER
  M:    Christopher Hoover <ch@murgatroid.com>
@@@ -2619,12 -2611,14 +2611,14 @@@ F:   drivers/net/wan/dlci.
  F:    drivers/net/wan/sdla.c
  
  FRAMEBUFFER LAYER
+ M:    Paul Mundt <lethal@linux-sh.org>
  L:    linux-fbdev@vger.kernel.org
  W:    http://linux-fbdev.sourceforge.net/
  Q:    http://patchwork.kernel.org/project/linux-fbdev/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6.git
- S:    Orphan
+ S:    Maintained
  F:    Documentation/fb/
+ F:    Documentation/devicetree/bindings/fb/
  F:    drivers/video/
  F:    include/video/
  F:    include/linux/fb.h
@@@ -2812,7 -2806,6 +2806,6 @@@ F:      include/linux/gigaset_dev.
  
  GPIO SUBSYSTEM
  M:    Grant Likely <grant.likely@secretlab.ca>
- L:    linux-kernel@vger.kernel.org
  S:    Maintained
  T:    git git://git.secretlab.ca/git/linux-2.6.git
  F:    Documentation/gpio/gpio.txt
@@@ -2835,7 -2828,6 +2828,6 @@@ F:      drivers/platform/x86/hdaps.
  HWPOISON MEMORY FAILURE HANDLING
  M:    Andi Kleen <andi@firstfloor.org>
  L:    linux-mm@kvack.org
- L:    linux-kernel@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6.git hwpoison
  S:    Maintained
  F:    mm/memory-failure.c
@@@ -2936,7 -2928,7 +2928,7 @@@ F:      Documentation/blockdev/cpqarray.tx
  F:    drivers/block/cpqarray.*
  
  HEWLETT-PACKARD SMART ARRAY RAID DRIVER (hpsa)
- M:    Stephen M. Cameron <scameron@beardog.cce.hp.com>
+ M:    "Stephen M. Cameron" <scameron@beardog.cce.hp.com>
  L:    iss_storagedev@hp.com
  S:    Supported
  F:    Documentation/scsi/hpsa.txt
@@@ -2993,7 -2985,7 +2985,7 @@@ F:      kernel/hrtimer.
  F:    kernel/time/clockevents.c
  F:    kernel/time/tick*.*
  F:    kernel/time/timer_*.c
- F     include/linux/clockevents.h
+ F:    include/linux/clockevents.h
  F:    include/linux/hrtimer.h
  
  HIGH-SPEED SCC DRIVER FOR AX.25
@@@ -3166,15 -3158,6 +3158,6 @@@ L:     linux-pm@lists.linux-foundation.or
  S:    Supported
  F:    drivers/idle/i7300_idle.c
  
- IEEE 1394 SUBSYSTEM
- M:    Stefan Richter <stefanr@s5r6.in-berlin.de>
- L:    linux1394-devel@lists.sourceforge.net
- W:    http://ieee1394.wiki.kernel.org/
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git
- S:    Obsolete
- F:    Documentation/debugging-via-ohci1394.txt
- F:    drivers/ieee1394/
  IEEE 802.15.4 SUBSYSTEM
  M:    Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
  M:    Sergey Lapin <slapin@ossfans.org>
@@@ -3913,8 -3896,8 +3896,8 @@@ S:      Supporte
  LIS3LV02D ACCELEROMETER DRIVER
  M:    Eric Piel <eric.piel@tremplin-utc.net>
  S:    Maintained
- F:    Documentation/hwmon/lis3lv02d
- F:    drivers/hwmon/lis3lv02d.*
+ F:    Documentation/misc-devices/lis3lv02d
+ F:    drivers/misc/lis3lv02d/
  
  LLC (802.2)
  M:    Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
@@@ -4100,7 -4083,7 +4083,7 @@@ F:      drivers/video/matrox/matroxfb_
  F:    include/linux/matroxfb.h
  
  MAX6650 HARDWARE MONITOR AND FAN CONTROLLER DRIVER
- M:    "Hans J. Koch" <hjk@linutronix.de>
+ M:    "Hans J. Koch" <hjk@hansjkoch.de>
  L:    lm-sensors@lm-sensors.org
  S:    Maintained
  F:    Documentation/hwmon/max6650
@@@ -4215,10 -4198,10 +4198,10 @@@ MOXA SMARTIO/INDUSTIO/INTELLIO SERIAL C
  M:    Jiri Slaby <jirislaby@gmail.com>
  S:    Maintained
  F:    Documentation/serial/moxa-smartio
- F:    drivers/char/mxser.*
+ F:    drivers/tty/mxser.*
  
  MSI LAPTOP SUPPORT
- M:    Lee, Chun-Yi <jlee@novell.com>
+ M:    "Lee, Chun-Yi" <jlee@novell.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    drivers/platform/x86/msi-laptop.c
@@@ -4257,7 -4240,7 +4240,7 @@@ F:      sound/oss/msnd
  
  MULTITECH MULTIPORT CARD (ISICOM)
  S:    Orphan
- F:    drivers/char/isicom.c
+ F:    drivers/tty/isicom.c
  F:    include/linux/isicom.h
  
  MUSB MULTIPOINT HIGH SPEED DUAL-ROLE CONTROLLER
@@@ -4534,14 -4517,14 +4517,14 @@@ S:   Maintaine
  F:    sound/soc/omap/
  
  OMAP FRAMEBUFFER SUPPORT
- M:    Tomi Valkeinen <tomi.valkeinen@nokia.com>
+ M:    Tomi Valkeinen <tomi.valkeinen@ti.com>
  L:    linux-fbdev@vger.kernel.org
  L:    linux-omap@vger.kernel.org
  S:    Maintained
  F:    drivers/video/omap/
  
  OMAP DISPLAY SUBSYSTEM and FRAMEBUFFER SUPPORT (DSS2)
- M:    Tomi Valkeinen <tomi.valkeinen@nokia.com>
+ M:    Tomi Valkeinen <tomi.valkeinen@ti.com>
  L:    linux-omap@vger.kernel.org
  L:    linux-fbdev@vger.kernel.org
  S:    Maintained
@@@ -4579,6 -4562,12 +4562,12 @@@ L:    linux-omap@vger.kernel.or
  S:    Maintained
  F:    arch/arm/mach-omap2/omap_hwmod_44xx_data.c
  
+ OMAP IMAGE SIGNAL PROCESSOR (ISP)
+ M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+ L:    linux-media@vger.kernel.org
+ S:    Maintained
+ F:    drivers/media/video/omap3isp/*
  OMAP USB SUPPORT
  M:    Felipe Balbi <balbi@ti.com>
  M:    David Brownell <dbrownell@users.sourceforge.net>
@@@ -4713,7 -4702,6 +4702,6 @@@ F:      drivers/i2c/busses/i2c-pasemi.
  
  PADATA PARALLEL EXECUTION MECHANISM
  M:    Steffen Klassert <steffen.klassert@secunet.com>
- L:    linux-kernel@vger.kernel.org
  L:    linux-crypto@vger.kernel.org
  S:    Maintained
  F:    kernel/padata.c
@@@ -4863,7 -4851,6 +4851,6 @@@ F:      include/crypto/pcrypt.
  PER-CPU MEMORY ALLOCATOR
  M:    Tejun Heo <tj@kernel.org>
  M:    Christoph Lameter <cl@linux-foundation.org>
- L:    linux-kernel@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git
  S:    Maintained
  F:    include/linux/percpu*.h
@@@ -5284,17 -5271,22 +5271,22 @@@ S:   Maintaine
  F:    drivers/mtd/nand/r852.c
  F:    drivers/mtd/nand/r852.h
  
+ RICOH R5C592 MEMORYSTICK DRIVER
+ M:    Maxim Levitsky <maximlevitsky@gmail.com>
+ S:    Maintained
+ F:    drivers/memstick/host/r592.*
  RISCOM8 DRIVER
  S:    Orphan
  F:    Documentation/serial/riscom8.txt
- F:    drivers/char/riscom8*
+ F:    drivers/staging/tty/riscom8*
  
  ROCKETPORT DRIVER
  P:    Comtrol Corp.
  W:    http://www.comtrol.com
  S:    Maintained
  F:    Documentation/serial/rocket.txt
- F:    drivers/char/rocket*
+ F:    drivers/tty/rocket*
  
  ROSE NETWORK LAYER
  M:    Ralf Baechle <ralf@linux-mips.org>
@@@ -5404,7 -5396,7 +5396,7 @@@ F:      drivers/media/video/*7146
  F:    include/media/*7146*
  
  SAMSUNG AUDIO (ASoC) DRIVERS
- M:    Jassi Brar <jassi.brar@samsung.com>
+ M:    Jassi Brar <jassisinghbrar@gmail.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  S:    Supported
  F:    sound/soc/samsung
@@@ -5422,7 -5414,6 +5414,6 @@@ S:      Supporte
  F:    include/linux/clocksource.h
  F:    include/linux/time.h
  F:    include/linux/timex.h
- F:    include/linux/timekeeping.h
  F:    kernel/time/clocksource.c
  F:    kernel/time/time*.c
  F:    kernel/time/ntp.c
@@@ -5510,7 -5501,7 +5501,7 @@@ SCx200 CPU SUPPOR
  M:    Jim Cromie <jim.cromie@gmail.com>
  S:    Odd Fixes
  F:    Documentation/i2c/busses/scx200_acb
- F:    arch/x86/kernel/scx200_32.c
+ F:    arch/x86/platform/scx200/
  F:    drivers/watchdog/scx200_wdt.c
  F:    drivers/i2c/busses/scx200*
  F:    drivers/mtd/maps/scx200_docflash.c
@@@ -5654,24 -5645,13 +5645,13 @@@ M:   Robin Holt <holt@sgi.com
  S:    Maintained
  F:    drivers/misc/sgi-xp/
  
- SHARP LH SUPPORT (LH7952X & LH7A40X)
- M:    Marc Singer <elf@buici.com>
- W:    http://projects.buici.com/arm
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- S:    Maintained
- F:    Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen
- F:    arch/arm/mach-lh7a40x/
- F:    drivers/tty/serial/serial_lh7a40x.c
- F:    drivers/usb/gadget/lh7a40*
- F:    drivers/usb/host/ohci-lh7a40*
  SIMPLE FIRMWARE INTERFACE (SFI)
  M:    Len Brown <lenb@kernel.org>
  L:    sfi-devel@simplefirmware.org
  W:    http://simplefirmware.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-sfi-2.6.git
  S:    Supported
- F:    arch/x86/kernel/*sfi*
+ F:    arch/x86/platform/sfi/
  F:    drivers/sfi/
  F:    include/linux/sfi*.h
  
@@@ -5769,6 -5749,13 +5749,13 @@@ S:    Supporte
  F:    Documentation/hwmon/emc2103
  F:    drivers/hwmon/emc2103.c
  
+ SMSC SCH5627 HARDWARE MONITOR DRIVER
+ M:    Hans de Goede <hdegoede@redhat.com>
+ L:    lm-sensors@lm-sensors.org
+ S:    Supported
+ F:    Documentation/hwmon/sch5627
+ F:    drivers/hwmon/sch5627.c
  SMSC47B397 HARDWARE MONITOR DRIVER
  M:    "Mark M. Hoffman" <mhoffman@lightlink.com>
  L:    lm-sensors@lm-sensors.org
@@@ -5935,10 -5922,9 +5922,9 @@@ F:     arch/arm/mach-spear6xx/spear600.
  F:    arch/arm/mach-spear6xx/spear600_evb.c
  
  SPECIALIX IO8+ MULTIPORT SERIAL CARD DRIVER
- M:    Roger Wolff <R.E.Wolff@BitWizard.nl>
- S:    Supported
+ S:    Orphan
  F:    Documentation/serial/specialix.txt
- F:    drivers/char/specialix*
+ F:    drivers/staging/tty/specialix*
  
  SPI SUBSYSTEM
  M:    David Brownell <dbrownell@users.sourceforge.net>
@@@ -5983,7 -5969,6 +5969,6 @@@ F:      arch/alpha/kernel/srm_env.
  
  STABLE BRANCH
  M:    Greg Kroah-Hartman <greg@kroah.com>
- M:    Chris Wright <chrisw@sous-sol.org>
  L:    stable@kernel.org
  S:    Maintained
  
@@@ -6215,7 -6200,6 +6200,7 @@@ TRIVIAL PATCHE
  M:    Jiri Kosina <trivial@kernel.org>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial.git
  S:    Maintained
 +K:    ^Subject:.*(?i)trivial
  
  TTY LAYER
  M:    Greg Kroah-Hartman <gregkh@suse.de>
@@@ -6268,7 -6252,8 +6253,8 @@@ M:      Greg Ungerer <gerg@uclinux.org
  W:    http://www.uclinux.org/
  L:    uclinux-dev@uclinux.org  (subscribers-only)
  S:    Maintained
- F:    arch/m68knommu/
+ F:    arch/m68k/*/*_no.*
+ F:    arch/m68k/include/asm/*_no.*
  
  UCLINUX FOR RENESAS H8/300 (H8300)
  M:    Yoshinori Sato <ysato@users.sourceforge.jp>
@@@ -6473,12 -6458,11 +6459,11 @@@ S:   Maintaine
  F:    drivers/net/usb/rtl8150.c
  
  USB SE401 DRIVER
- M:    Jeroen Vreeken <pe1rxq@amsat.org>
  L:    linux-usb@vger.kernel.org
  W:    http://www.chello.nl/~j.vreeken/se401/
- S:    Maintained
+ S:    Orphan
  F:    Documentation/video4linux/se401.txt
- F:    drivers/media/video/se401.*
+ F:    drivers/staging/se401/
  
  USB SERIAL BELKIN F5U103 DRIVER
  M:    William Greathouse <wgreathouse@smva.com>
@@@ -6628,6 -6612,7 +6613,7 @@@ F:      drivers/media/video/zr364xx.
  
  USER-MODE LINUX (UML)
  M:    Jeff Dike <jdike@addtoit.com>
+ M:    Richard Weinberger <richard@nod.at>
  L:    user-mode-linux-devel@lists.sourceforge.net
  L:    user-mode-linux-user@lists.sourceforge.net
  W:    http://user-mode-linux.sourceforge.net
@@@ -6638,7 -6623,7 +6624,7 @@@ F:      fs/hostfs
  F:    fs/hppfs/
  
  USERSPACE I/O (UIO)
- M:    "Hans J. Koch" <hjk@linutronix.de>
+ M:    "Hans J. Koch" <hjk@hansjkoch.de>
  M:    Greg Kroah-Hartman <gregkh@suse.de>
  S:    Maintained
  F:    Documentation/DocBook/uio-howto.tmpl
@@@ -6828,7 -6813,7 +6814,7 @@@ F:      drivers/scsi/wd7000.
  WINBOND CIR DRIVER
  M:    David Härdeman <david@hardeman.nu>
  S:    Maintained
- F:    drivers/input/misc/winbond-cir.c
+ F:    drivers/media/rc/winbond-cir.c
  
  WIMAX STACK
  M:    Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
@@@ -6905,7 -6890,6 +6891,6 @@@ F:      sound/soc/codecs/wm
  
  WORKQUEUE
  M:    Tejun Heo <tj@kernel.org>
- L:    linux-kernel@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git
  S:    Maintained
  F:    include/linux/workqueue.h
@@@ -6937,6 -6921,13 +6922,13 @@@ T:    git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    drivers/platform/x86
  
+ XEN NETWORK BACKEND DRIVER
+ M:    Ian Campbell <ian.campbell@citrix.com>
+ L:    xen-devel@lists.xensource.com (moderated for non-subscribers)
+ L:    netdev@vger.kernel.org
+ S:    Supported
+ F:    drivers/net/xen-netback/*
  XEN PCI SUBSYSTEM
  M:    Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
  L:    xen-devel@lists.xensource.com (moderated for non-subscribers)
@@@ -72,7 -72,7 +72,7 @@@ void __init at91_add_device_usbh(struc
                return;
  
        if (cpu_is_at91cap9_revB())
-               set_irq_type(AT91CAP9_ID_UHP, IRQ_TYPE_LEVEL_HIGH);
+               irq_set_irq_type(AT91CAP9_ID_UHP, IRQ_TYPE_LEVEL_HIGH);
  
        /* Enable VBus control for UHP ports */
        for (i = 0; i < data->ports; i++) {
@@@ -157,7 -157,7 +157,7 @@@ static struct platform_device at91_usba
  void __init at91_add_device_usba(struct usba_platform_data *data)
  {
        if (cpu_is_at91cap9_revB()) {
-               set_irq_type(AT91CAP9_ID_UDPHS, IRQ_TYPE_LEVEL_HIGH);
+               irq_set_irq_type(AT91CAP9_ID_UDPHS, IRQ_TYPE_LEVEL_HIGH);
                at91_sys_write(AT91_MATRIX_UDPHS, AT91_MATRIX_SELECT_UDPHS |
                                                  AT91_MATRIX_UDPHS_BYPASS_LOCK);
        }
         */
        usba_udc_data.pdata.vbus_pin = -EINVAL;
        usba_udc_data.pdata.num_ep = ARRAY_SIZE(usba_udc_ep);
 -      memcpy(usba_udc_data.ep, usba_udc_ep, sizeof(usba_udc_ep));;
 +      memcpy(usba_udc_data.ep, usba_udc_ep, sizeof(usba_udc_ep));
  
        if (data && data->vbus_pin > 0) {
                at91_set_gpio_input(data->vbus_pin, 0);
@@@ -861,7 -861,7 +861,7 @@@ void __init at91_add_device_lcdc(struc
                return;
  
        if (cpu_is_at91cap9_revB())
-               set_irq_type(AT91CAP9_ID_LCDC, IRQ_TYPE_LEVEL_HIGH);
+               irq_set_irq_type(AT91CAP9_ID_LCDC, IRQ_TYPE_LEVEL_HIGH);
  
        at91_set_A_periph(AT91_PIN_PC1, 0);     /* LCDHSYNC */
        at91_set_A_periph(AT91_PIN_PC2, 0);     /* LCDDOTCK */
@@@ -337,7 -337,7 +337,7 @@@ static int tegra2_super_clk_set_parent(
        const struct clk_mux_sel *sel;
        int shift;
  
 -      val = clk_readl(c->reg + SUPER_CLK_MUX);;
 +      val = clk_readl(c->reg + SUPER_CLK_MUX);
        BUG_ON(((val & SUPER_STATE_MASK) != SUPER_STATE_RUN) &&
                ((val & SUPER_STATE_MASK) != SUPER_STATE_IDLE));
        shift = ((val & SUPER_STATE_MASK) == SUPER_STATE_IDLE) ?
@@@ -1362,14 -1362,15 +1362,15 @@@ static int tegra_clk_shared_bus_set_rat
  {
        unsigned long flags;
        int ret;
+       long new_rate = rate;
  
-       rate = clk_round_rate(c->parent, rate);
-       if (rate < 0)
-               return rate;
+       new_rate = clk_round_rate(c->parent, new_rate);
+       if (new_rate < 0)
+               return new_rate;
  
        spin_lock_irqsave(&c->parent->spinlock, flags);
  
-       c->u.shared_bus_user.rate = rate;
+       c->u.shared_bus_user.rate = new_rate;
        ret = tegra_clk_shared_bus_update(c->parent);
  
        spin_unlock_irqrestore(&c->parent->spinlock, flags);
@@@ -2,7 -2,7 +2,7 @@@
   * ip22-int.c: Routines for generic manipulation of the INT[23] ASIC
   *             found on INDY and Indigo2 workstations.
   *
 - * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
 + * Copyright (C) 1996 David S. Miller (davem@davemloft.net)
   * Copyright (C) 1997, 1998 Ralf Baechle (ralf@gnu.org)
   * Copyright (C) 1999 Andrew R. Baker (andrewb@uab.edu)
   *                    - Indigo2 changes
@@@ -31,88 -31,80 +31,80 @@@ static char lc3msk_to_irqnr[256]
  
  extern int ip22_eisa_init(void);
  
- static void enable_local0_irq(unsigned int irq)
+ static void enable_local0_irq(struct irq_data *d)
  {
        /* don't allow mappable interrupt to be enabled from setup_irq,
         * we have our own way to do so */
-       if (irq != SGI_MAP_0_IRQ)
-               sgint->imask0 |= (1 << (irq - SGINT_LOCAL0));
+       if (d->irq != SGI_MAP_0_IRQ)
+               sgint->imask0 |= (1 << (d->irq - SGINT_LOCAL0));
  }
  
- static void disable_local0_irq(unsigned int irq)
+ static void disable_local0_irq(struct irq_data *d)
  {
-       sgint->imask0 &= ~(1 << (irq - SGINT_LOCAL0));
+       sgint->imask0 &= ~(1 << (d->irq - SGINT_LOCAL0));
  }
  
  static struct irq_chip ip22_local0_irq_type = {
        .name           = "IP22 local 0",
-       .ack            = disable_local0_irq,
-       .mask           = disable_local0_irq,
-       .mask_ack       = disable_local0_irq,
-       .unmask         = enable_local0_irq,
+       .irq_mask       = disable_local0_irq,
+       .irq_unmask     = enable_local0_irq,
  };
  
- static void enable_local1_irq(unsigned int irq)
+ static void enable_local1_irq(struct irq_data *d)
  {
        /* don't allow mappable interrupt to be enabled from setup_irq,
         * we have our own way to do so */
-       if (irq != SGI_MAP_1_IRQ)
-               sgint->imask1 |= (1 << (irq - SGINT_LOCAL1));
+       if (d->irq != SGI_MAP_1_IRQ)
+               sgint->imask1 |= (1 << (d->irq - SGINT_LOCAL1));
  }
  
- static void disable_local1_irq(unsigned int irq)
+ static void disable_local1_irq(struct irq_data *d)
  {
-       sgint->imask1 &= ~(1 << (irq - SGINT_LOCAL1));
+       sgint->imask1 &= ~(1 << (d->irq - SGINT_LOCAL1));
  }
  
  static struct irq_chip ip22_local1_irq_type = {
        .name           = "IP22 local 1",
-       .ack            = disable_local1_irq,
-       .mask           = disable_local1_irq,
-       .mask_ack       = disable_local1_irq,
-       .unmask         = enable_local1_irq,
+       .irq_mask       = disable_local1_irq,
+       .irq_unmask     = enable_local1_irq,
  };
  
- static void enable_local2_irq(unsigned int irq)
+ static void enable_local2_irq(struct irq_data *d)
  {
        sgint->imask0 |= (1 << (SGI_MAP_0_IRQ - SGINT_LOCAL0));
-       sgint->cmeimask0 |= (1 << (irq - SGINT_LOCAL2));
+       sgint->cmeimask0 |= (1 << (d->irq - SGINT_LOCAL2));
  }
  
- static void disable_local2_irq(unsigned int irq)
+ static void disable_local2_irq(struct irq_data *d)
  {
-       sgint->cmeimask0 &= ~(1 << (irq - SGINT_LOCAL2));
+       sgint->cmeimask0 &= ~(1 << (d->irq - SGINT_LOCAL2));
        if (!sgint->cmeimask0)
                sgint->imask0 &= ~(1 << (SGI_MAP_0_IRQ - SGINT_LOCAL0));
  }
  
  static struct irq_chip ip22_local2_irq_type = {
        .name           = "IP22 local 2",
-       .ack            = disable_local2_irq,
-       .mask           = disable_local2_irq,
-       .mask_ack       = disable_local2_irq,
-       .unmask         = enable_local2_irq,
+       .irq_mask       = disable_local2_irq,
+       .irq_unmask     = enable_local2_irq,
  };
  
- static void enable_local3_irq(unsigned int irq)
+ static void enable_local3_irq(struct irq_data *d)
  {
        sgint->imask1 |= (1 << (SGI_MAP_1_IRQ - SGINT_LOCAL1));
-       sgint->cmeimask1 |= (1 << (irq - SGINT_LOCAL3));
+       sgint->cmeimask1 |= (1 << (d->irq - SGINT_LOCAL3));
  }
  
- static void disable_local3_irq(unsigned int irq)
+ static void disable_local3_irq(struct irq_data *d)
  {
-       sgint->cmeimask1 &= ~(1 << (irq - SGINT_LOCAL3));
+       sgint->cmeimask1 &= ~(1 << (d->irq - SGINT_LOCAL3));
        if (!sgint->cmeimask1)
                sgint->imask1 &= ~(1 << (SGI_MAP_1_IRQ - SGINT_LOCAL1));
  }
  
  static struct irq_chip ip22_local3_irq_type = {
        .name           = "IP22 local 3",
-       .ack            = disable_local3_irq,
-       .mask           = disable_local3_irq,
-       .mask_ack       = disable_local3_irq,
-       .unmask         = enable_local3_irq,
+       .irq_mask       = disable_local3_irq,
+       .irq_unmask     = enable_local3_irq,
  };
  
  static void indy_local0_irqdispatch(void)
@@@ -320,7 -312,7 +312,7 @@@ void __init arch_init_irq(void
                else
                        handler         = &ip22_local3_irq_type;
  
-               set_irq_chip_and_handler(i, handler, handle_level_irq);
+               irq_set_chip_and_handler(i, handler, handle_level_irq);
        }
  
        /* vector handler. this register the IRQ as non-sharable */
@@@ -79,7 -79,7 +79,7 @@@ static bool radeon_fence_poll_locked(st
                        scratch_index = R600_WB_EVENT_OFFSET + rdev->fence_drv.scratch_reg - rdev->scratch.reg_base;
                else
                        scratch_index = RADEON_WB_SCRATCH_OFFSET + rdev->fence_drv.scratch_reg - rdev->scratch.reg_base;
-               seq = rdev->wb.wb[scratch_index/4];
+               seq = le32_to_cpu(rdev->wb.wb[scratch_index/4]);
        } else
                seq = RREG32(rdev->fence_drv.scratch_reg);
        if (seq != rdev->fence_drv.last_seq) {
@@@ -322,7 -322,7 +322,7 @@@ void radeon_fence_unref(struct radeon_f
  
        *fence = NULL;
        if (tmp) {
 -              kref_put(&tmp->kref, &radeon_fence_destroy);
 +              kref_put(&tmp->kref, radeon_fence_destroy);
        }
  }
  
@@@ -194,7 -194,7 +194,7 @@@ int radeon_ib_pool_init(struct radeon_d
        r = radeon_bo_kmap(rdev->ib_pool.robj, &ptr);
        radeon_bo_unreserve(rdev->ib_pool.robj);
        if (r) {
 -              DRM_ERROR("radeon: failed to map ib poll (%d).\n", r);
 +              DRM_ERROR("radeon: failed to map ib pool (%d).\n", r);
                return r;
        }
        for (i = 0; i < RADEON_IB_POOL_SIZE; i++) {
@@@ -248,7 -248,7 +248,7 @@@ void radeon_ib_pool_fini(struct radeon_
  void radeon_ring_free_size(struct radeon_device *rdev)
  {
        if (rdev->wb.enabled)
-               rdev->cp.rptr = rdev->wb.wb[RADEON_WB_CP_RPTR_OFFSET/4];
+               rdev->cp.rptr = le32_to_cpu(rdev->wb.wb[RADEON_WB_CP_RPTR_OFFSET/4]);
        else {
                if (rdev->family >= CHIP_R600)
                        rdev->cp.rptr = RREG32(R600_CP_RB_RPTR);
@@@ -22,6 -22,7 +22,7 @@@
  #include <linux/leds.h>
  #include <linux/workqueue.h>
  #include <linux/mfd/mc13783.h>
+ #include <linux/mfd/core.h>
  #include <linux/slab.h>
  
  struct mc13783_led {
@@@ -183,7 -184,7 +184,7 @@@ static int __devinit mc13783_led_setup(
  
  static int __devinit mc13783_leds_prepare(struct platform_device *pdev)
  {
-       struct mc13783_leds_platform_data *pdata = dev_get_platdata(&pdev->dev);
+       struct mc13783_leds_platform_data *pdata = mfd_get_data(pdev);
        struct mc13783 *dev = dev_get_drvdata(pdev->dev.parent);
        int ret = 0;
        int reg = 0;
                                                        MC13783_LED_Cx_PERIOD;
  
        if (pdata->flags & MC13783_LED_TRIODE_TC3)
 -              reg |= MC13783_LED_Cx_TRIODE_TC_BIT;;
 +              reg |= MC13783_LED_Cx_TRIODE_TC_BIT;
  
        ret = mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_5, reg);
        if (ret)
@@@ -264,7 -265,7 +265,7 @@@ out
  
  static int __devinit mc13783_led_probe(struct platform_device *pdev)
  {
-       struct mc13783_leds_platform_data *pdata = dev_get_platdata(&pdev->dev);
+       struct mc13783_leds_platform_data *pdata = mfd_get_data(pdev);
        struct mc13783_led_platform_data *led_cur;
        struct mc13783_led *led, *led_dat;
        int ret, i;
@@@ -351,7 -352,7 +352,7 @@@ err_free
  
  static int __devexit mc13783_led_remove(struct platform_device *pdev)
  {
-       struct mc13783_leds_platform_data *pdata = dev_get_platdata(&pdev->dev);
+       struct mc13783_leds_platform_data *pdata = mfd_get_data(pdev);
        struct mc13783_led *led = platform_get_drvdata(pdev);
        struct mc13783 *dev = dev_get_drvdata(pdev->dev.parent);
        int i;
@@@ -218,7 -218,7 +218,7 @@@ static int softing_handle_1(struct soft
        ptr = buf;
        cmd = *ptr++;
        if (cmd == 0xff)
-               /* not quite usefull, probably the card has got out */
+               /* not quite useful, probably the card has got out */
                return 0;
        netdev = card->net[0];
        if (cmd & CMD_BUS2)
@@@ -797,7 -797,7 +797,7 @@@ static __devinit int softing_pdev_probe
        ret = -EINVAL;
        pres = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        if (!pres)
 -              goto platform_resource_failed;;
 +              goto platform_resource_failed;
        card->dpram_phys = pres->start;
        card->dpram_size = pres->end - pres->start + 1;
        card->dpram = ioremap_nocache(card->dpram_phys, card->dpram_size);
diff --combined drivers/net/sgiseeq.c
@@@ -1,7 -1,7 +1,7 @@@
  /*
   * sgiseeq.c: Seeq8003 ethernet driver for SGI machines.
   *
 - * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
 + * Copyright (C) 1996 David S. Miller (davem@davemloft.net)
   */
  
  #undef DEBUG
@@@ -33,7 -33,7 +33,7 @@@ static char *sgiseeqstr = "SGI Seeq8003
   * with that in mind, I've decided to make this driver look completely like a
   * stupid Lance from a driver architecture perspective.  Only difference is that
   * here our "ring buffer" looks and acts like a real Lance one does but is
-  * layed out like how the HPC DMA and the Seeq want it to.  You'd be surprised
+  * laid out like how the HPC DMA and the Seeq want it to.  You'd be surprised
   * how a stupid idea like this can pay off in performance, not to mention
   * making this driver 2,000 times easier to write. ;-)
   */
@@@ -77,7 -77,7 +77,7 @@@ struct sgiseeq_tx_desc 
  };
  
  /*
-  * Warning: This structure is layed out in a certain way because HPC dma
+  * Warning: This structure is laid out in a certain way because HPC dma
   *          descriptors must be 8-byte aligned.  So don't touch this without
   *          some care.
   */
@@@ -2062,7 -2062,7 +2062,7 @@@ static const char *desc_lookup(u32 num
        max = ARRAY_SIZE(advanced_lookup) - 1;
        for (i = 0; i < max; i++) {
                if (advanced_lookup[i].num == num)
 -                      break;;
 +                      break;
        }
        return advanced_lookup[i].name;
  }
@@@ -3009,14 -3009,17 +3009,17 @@@ static int iwl_mac_offchannel_tx_cancel
  
        mutex_lock(&priv->mutex);
  
-       if (!priv->_agn.offchan_tx_skb)
-               return -EINVAL;
+       if (!priv->_agn.offchan_tx_skb) {
+               ret = -EINVAL;
+               goto unlock;
+       }
  
        priv->_agn.offchan_tx_skb = NULL;
  
        ret = iwl_scan_cancel_timeout(priv, 200);
        if (ret)
                ret = -EIO;
+ unlock:
        mutex_unlock(&priv->mutex);
  
        return ret;
@@@ -395,7 -395,7 +395,7 @@@ static void rtl_pci_init_aspm(struct ie
         * 0 - Disable ASPM,
         * 1 - Enable ASPM without Clock Req,
         * 2 - Enable ASPM with Clock Req,
-        * 3 - Alwyas Enable ASPM with Clock Req,
+        * 3 - Always Enable ASPM with Clock Req,
         * 4 - Always Enable ASPM without Clock Req.
         * set defult to RTL8192CE:3 RTL8192E:2
         * */
@@@ -1226,7 -1226,7 +1226,7 @@@ static unsigned int _rtl_mac_to_hwqueue
                hw_queue_index = VI_QUEUE;
                break;
        case 2:
 -              hw_queue_index = BE_QUEUE;;
 +              hw_queue_index = BE_QUEUE;
                break;
        case 3:
                hw_queue_index = BK_QUEUE;
@@@ -1,7 -1,7 +1,7 @@@
  /*******************************************************************
   * This file is part of the Emulex Linux Device Driver for         *
   * Fibre Channel Host Bus Adapters.                                *
-  * Copyright (C) 2009-2010 Emulex.  All rights reserved.                *
+  * Copyright (C) 2009-2011 Emulex.  All rights reserved.           *
   * EMULEX and SLI are trademarks of Emulex.                        *
   * www.emulex.com                                                  *
   *                                                                 *
@@@ -348,7 -348,10 +348,10 @@@ lpfc_bsg_send_mgmt_cmd(struct fc_bsg_jo
        dd_data->context_un.iocb.bmp = bmp;
  
        if (phba->cfg_poll & DISABLE_FCP_RING_INT) {
-               creg_val = readl(phba->HCregaddr);
+               if (lpfc_readl(phba->HCregaddr, &creg_val)) {
+                       rc = -EIO ;
+                       goto free_cmdiocbq;
+               }
                creg_val |= (HC_R0INT_ENA << LPFC_FCP_RING);
                writel(creg_val, phba->HCregaddr);
                readl(phba->HCregaddr); /* flush */
@@@ -595,11 -598,14 +598,14 @@@ lpfc_bsg_rport_els(struct fc_bsg_job *j
        dd_data->context_un.iocb.cmdiocbq = cmdiocbq;
        dd_data->context_un.iocb.rspiocbq = rspiocbq;
        dd_data->context_un.iocb.set_job = job;
 -      dd_data->context_un.iocb.bmp = NULL;;
 +      dd_data->context_un.iocb.bmp = NULL;
        dd_data->context_un.iocb.ndlp = ndlp;
  
        if (phba->cfg_poll & DISABLE_FCP_RING_INT) {
-               creg_val = readl(phba->HCregaddr);
+               if (lpfc_readl(phba->HCregaddr, &creg_val)) {
+                       rc = -EIO;
+                       goto linkdown_err;
+               }
                creg_val |= (HC_R0INT_ENA << LPFC_FCP_RING);
                writel(creg_val, phba->HCregaddr);
                readl(phba->HCregaddr); /* flush */
        else
                rc = -EIO;
  
+ linkdown_err:
        pci_unmap_sg(phba->pcidev, job->request_payload.sg_list,
                     job->request_payload.sg_cnt, DMA_TO_DEVICE);
        pci_unmap_sg(phba->pcidev, job->reply_payload.sg_list,
@@@ -1357,7 -1364,10 +1364,10 @@@ lpfc_issue_ct_rsp(struct lpfc_hba *phba
        dd_data->context_un.iocb.ndlp = ndlp;
  
        if (phba->cfg_poll & DISABLE_FCP_RING_INT) {
-               creg_val = readl(phba->HCregaddr);
+               if (lpfc_readl(phba->HCregaddr, &creg_val)) {
+                       rc = -IOCB_ERROR;
+                       goto issue_ct_rsp_exit;
+               }
                creg_val |= (HC_R0INT_ENA << LPFC_FCP_RING);
                writel(creg_val, phba->HCregaddr);
                readl(phba->HCregaddr); /* flush */
@@@ -1929,7 -1939,7 +1939,7 @@@ out
   * @rxxri: Receive exchange id
   * @len: Number of data bytes
   *
-  * This function allocates and posts a data buffer of sufficient size to recieve
+  * This function allocates and posts a data buffer of sufficient size to receive
   * an unsolicted CT command.
   **/
  static int lpfcdiag_loop_post_rxbufs(struct lpfc_hba *phba, uint16_t rxxri,
@@@ -2479,16 -2489,18 +2489,18 @@@ lpfc_bsg_wake_mbox_wait(struct lpfc_hb
  
        from = (uint8_t *)dd_data->context_un.mbox.mb;
        job = dd_data->context_un.mbox.set_job;
-       size = job->reply_payload.payload_len;
-       job->reply->reply_payload_rcv_len =
-               sg_copy_from_buffer(job->reply_payload.sg_list,
-                               job->reply_payload.sg_cnt,
-                               from, size);
-       job->reply->result = 0;
+       if (job) {
+               size = job->reply_payload.payload_len;
+               job->reply->reply_payload_rcv_len =
+                       sg_copy_from_buffer(job->reply_payload.sg_list,
+                                       job->reply_payload.sg_cnt,
+                                       from, size);
+               job->reply->result = 0;
  
+               job->dd_data = NULL;
+               job->job_done(job);
+       }
        dd_data->context_un.mbox.set_job = NULL;
-       job->dd_data = NULL;
-       job->job_done(job);
        /* need to hold the lock until we call job done to hold off
         * the timeout handler returning to the midlayer while
         * we are stillprocessing the job
@@@ -414,7 -414,7 +414,7 @@@ skip_rio
                                    "marked OFFLINE!\n");
                                vha->flags.online = 0;
                        } else {
-                               /* Check to see if MPI timeout occured */
+                               /* Check to see if MPI timeout occurred */
                                if ((mbx & MBX_3) && (ha->flags.port0))
                                        set_bit(MPI_RESET_NEEDED,
                                            &vha->dpc_flags);
@@@ -1051,7 -1051,7 +1051,7 @@@ qla2x00_ct_entry(scsi_qla_host_t *vha, 
                }
                DEBUG2(qla2x00_dump_buffer((uint8_t *)pkt, sizeof(*pkt)));
        } else {
 -              bsg_job->reply->result =  DID_OK << 16;;
 +              bsg_job->reply->result =  DID_OK << 16;
                bsg_job->reply->reply_payload_rcv_len =
                    bsg_job->reply_payload.payload_len;
                bsg_job->reply_len = 0;
@@@ -1146,7 -1146,7 +1146,7 @@@ qla24xx_els_ct_entry(scsi_qla_host_t *v
                DEBUG2(qla2x00_dump_buffer((uint8_t *)pkt, sizeof(*pkt)));
        }
        else {
 -              bsg_job->reply->result =  DID_OK << 16;;
 +              bsg_job->reply->result =  DID_OK << 16;
                bsg_job->reply->reply_payload_rcv_len = bsg_job->reply_payload.payload_len;
                bsg_job->reply_len = 0;
        }
@@@ -496,8 -496,8 +496,8 @@@ static int core_alua_state_check
        nonop_delay_msecs = tg_pt_gp->tg_pt_gp_nonop_delay_msecs;
        spin_unlock(&tg_pt_gp_mem->tg_pt_gp_mem_lock);
        /*
-        * Process ALUA_ACCESS_STATE_ACTIVE_OPTMIZED in a seperate conditional
-        * statement so the complier knows explictly to check this case first.
+        * Process ALUA_ACCESS_STATE_ACTIVE_OPTMIZED in a separate conditional
+        * statement so the compiler knows explicitly to check this case first.
         * For the Optimized ALUA access state case, we want to process the
         * incoming fabric cmd ASAP..
         */
@@@ -1036,7 -1036,7 +1036,7 @@@ core_alua_allocate_lu_gp(const char *na
        lu_gp = kmem_cache_zalloc(t10_alua_lu_gp_cache, GFP_KERNEL);
        if (!(lu_gp)) {
                printk(KERN_ERR "Unable to allocate struct t10_alua_lu_gp\n");
 -              return ERR_PTR(-ENOMEM);;
 +              return ERR_PTR(-ENOMEM);
        }
        INIT_LIST_HEAD(&lu_gp->lu_gp_list);
        INIT_LIST_HEAD(&lu_gp->lu_gp_mem_list);
        atomic_set(&lu_gp->lu_gp_ref_cnt, 0);
  
        if (def_group) {
 -              lu_gp->lu_gp_id = se_global->alua_lu_gps_counter++;;
 +              lu_gp->lu_gp_id = se_global->alua_lu_gps_counter++;
                lu_gp->lu_gp_valid_id = 1;
                se_global->alua_lu_gps_count++;
        }
@@@ -1157,7 -1157,7 +1157,7 @@@ void core_alua_free_lu_gp(struct t10_al
                spin_unlock(&lu_gp->lu_gp_lock);
                /*
                 *
-                * lu_gp_mem is assoicated with a single
+                * lu_gp_mem is associated with a single
                 * struct se_device->dev_alua_lu_gp_mem, and is released when
                 * struct se_device is released via core_alua_free_lu_gp_mem().
                 *
@@@ -1429,7 -1429,7 +1429,7 @@@ void core_alua_free_tg_pt_gp
                }
                spin_unlock(&tg_pt_gp->tg_pt_gp_lock);
                /*
-                * tg_pt_gp_mem is assoicated with a single
+                * tg_pt_gp_mem is associated with a single
                 * se_port->sep_alua_tg_pt_gp_mem, and is released via
                 * core_alua_free_tg_pt_gp_mem().
                 *
@@@ -1963,7 -1963,7 +1963,7 @@@ int core_setup_alua(struct se_device *d
                printk(KERN_INFO "%s: Enabling ALUA Emulation for SPC-3"
                        " device\n", TRANSPORT(dev)->name);
                /*
-                * Assoicate this struct se_device with the default ALUA
+                * Associate this struct se_device with the default ALUA
                 * LUN Group.
                 */
                lu_gp_mem = core_alua_allocate_lu_gp_mem(dev);
@@@ -227,8 -227,6 +227,6 @@@ static void transport_remove_cmd_from_q
  static int transport_set_sense_codes(struct se_cmd *cmd, u8 asc, u8 ascq);
  static void transport_stop_all_task_timers(struct se_cmd *cmd);
  
- int transport_emulate_control_cdb(struct se_task *task);
  int init_se_global(void)
  {
        struct se_global *global;
@@@ -721,7 -719,7 +719,7 @@@ static int transport_cmd_check_stop
                        cmd->se_lun = NULL;
                        /*
                         * Some fabric modules like tcm_loop can release
-                        * their internally allocated I/O refrence now and
+                        * their internally allocated I/O reference now and
                         * struct se_cmd now.
                         */
                        if (CMD_TFO(cmd)->check_stop_free != NULL) {
@@@ -1622,7 -1620,7 +1620,7 @@@ struct se_device *transport_add_device_
        const char *inquiry_prod,
        const char *inquiry_rev)
  {
-       int ret = 0, force_pt;
+       int force_pt;
        struct se_device  *dev;
  
        dev = kzalloc(sizeof(struct se_device), GFP_KERNEL);
        }
        scsi_dump_inquiry(dev);
  
+       return dev;
  out:
-       if (!ret)
-               return dev;
        kthread_stop(dev->process_thread);
  
        spin_lock(&hba->device_lock);
@@@ -2032,7 -2029,7 +2029,7 @@@ int transport_generic_handle_data
         * If the received CDB has aleady been ABORTED by the generic
         * target engine, we now call transport_check_aborted_status()
         * to queue any delated TASK_ABORTED status for the received CDB to the
-        * fabric module as we are expecting no futher incoming DATA OUT
+        * fabric module as we are expecting no further incoming DATA OUT
         * sequences at this point.
         */
        if (transport_check_aborted_status(cmd, 1) != 0)
@@@ -2131,7 -2128,7 +2128,7 @@@ static void transport_failure_reset_que
  {
        unsigned long flags;
  
 -      spin_lock_irqsave(&SE_HBA(dev)->hba_queue_lock, flags);;
 +      spin_lock_irqsave(&SE_HBA(dev)->hba_queue_lock, flags);
        atomic_inc(&dev->depth_left);
        atomic_inc(&SE_HBA(dev)->left_queue_depth);
        spin_unlock_irqrestore(&SE_HBA(dev)->hba_queue_lock, flags);
@@@ -2504,7 -2501,7 +2501,7 @@@ static inline int transport_execute_tas
        if (SE_DEV(cmd)->dev_task_attr_type != SAM_TASK_ATTR_EMULATED)
                return 1;
        /*
-        * Check for the existance of HEAD_OF_QUEUE, and if true return 1
+        * Check for the existence of HEAD_OF_QUEUE, and if true return 1
         * to allow the passed struct se_cmd list of tasks to the front of the list.
         */
         if (cmd->sam_task_attr == TASK_ATTR_HOQ) {
        if (atomic_read(&SE_DEV(cmd)->dev_ordered_sync) != 0) {
                /*
                 * Otherwise, add cmd w/ tasks to delayed cmd queue that
-                * will be drained upon competion of HEAD_OF_QUEUE task.
+                * will be drained upon completion of HEAD_OF_QUEUE task.
                 */
                spin_lock(&SE_DEV(cmd)->delayed_cmd_lock);
                cmd->se_cmd_flags |= SCF_DELAYED_CMD_FROM_SAM_ATTR;
@@@ -2592,7 -2589,7 +2589,7 @@@ static int transport_execute_tasks(stru
        }
        /*
         * Call transport_cmd_check_stop() to see if a fabric exception
-        * has occured that prevents execution.
+        * has occurred that prevents execution.
         */
        if (!(transport_cmd_check_stop(cmd, 0, TRANSPORT_PROCESSING))) {
                /*
@@@ -3112,7 -3109,7 +3109,7 @@@ static int transport_generic_cmd_sequen
        if (ret != 0) {
                cmd->transport_wait_for_tasks = &transport_nop_wait_for_tasks;
                /*
-                * Set SCSI additional sense code (ASC) to 'LUN Not Accessable';
+                * Set SCSI additional sense code (ASC) to 'LUN Not Accessible';
                 * The ALUA additional sense code qualifier (ASCQ) is determined
                 * by the ALUA primary or secondary access state..
                 */
@@@ -3870,7 -3867,7 +3867,7 @@@ static void transport_generic_complete_
                }
        }
        /*
-        * Check for a callback, used by amoungst other things
+        * Check for a callback, used by amongst other things
         * XDWRITE_READ_10 emulation.
         */
        if (cmd->transport_complete_callback)
@@@ -4359,11 -4356,9 +4356,9 @@@ transport_generic_get_mem(struct se_cm
                        printk(KERN_ERR "Unable to allocate struct se_mem\n");
                        goto out;
                }
-               INIT_LIST_HEAD(&se_mem->se_list);
-               se_mem->se_len = (length > dma_size) ? dma_size : length;
  
  /* #warning FIXME Allocate contigous pages for struct se_mem elements */
-               se_mem->se_page = (struct page *) alloc_pages(GFP_KERNEL, 0);
+               se_mem->se_page = alloc_pages(GFP_KERNEL, 0);
                if (!(se_mem->se_page)) {
                        printk(KERN_ERR "alloc_pages() failed\n");
                        goto out;
                        printk(KERN_ERR "kmap_atomic() failed\n");
                        goto out;
                }
+               INIT_LIST_HEAD(&se_mem->se_list);
+               se_mem->se_len = (length > dma_size) ? dma_size : length;
                memset(buf, 0, se_mem->se_len);
                kunmap_atomic(buf, KM_IRQ0);
  
  
        return 0;
  out:
+       if (se_mem)
+               __free_pages(se_mem->se_page, 0);
+       kmem_cache_free(se_mem_cache, se_mem);
        return -1;
  }
  
extern u32 transport_calc_sg_num(
+ u32 transport_calc_sg_num(
        struct se_task *task,
        struct se_mem *in_se_mem,
        u32 task_offset)
@@@ -5834,31 -5834,26 +5834,26 @@@ int transport_generic_do_tmr(struct se_
        int ret;
  
        switch (tmr->function) {
-       case ABORT_TASK:
+       case TMR_ABORT_TASK:
                ref_cmd = tmr->ref_cmd;
                tmr->response = TMR_FUNCTION_REJECTED;
                break;
-       case ABORT_TASK_SET:
-       case CLEAR_ACA:
-       case CLEAR_TASK_SET:
+       case TMR_ABORT_TASK_SET:
+       case TMR_CLEAR_ACA:
+       case TMR_CLEAR_TASK_SET:
                tmr->response = TMR_TASK_MGMT_FUNCTION_NOT_SUPPORTED;
                break;
-       case LUN_RESET:
+       case TMR_LUN_RESET:
                ret = core_tmr_lun_reset(dev, tmr, NULL, NULL);
                tmr->response = (!ret) ? TMR_FUNCTION_COMPLETE :
                                         TMR_FUNCTION_REJECTED;
                break;
- #if 0
-       case TARGET_WARM_RESET:
-               transport_generic_host_reset(dev->se_hba);
+       case TMR_TARGET_WARM_RESET:
                tmr->response = TMR_FUNCTION_REJECTED;
                break;
-       case TARGET_COLD_RESET:
-               transport_generic_host_reset(dev->se_hba);
-               transport_generic_cold_reset(dev->se_hba);
+       case TMR_TARGET_COLD_RESET:
                tmr->response = TMR_FUNCTION_REJECTED;
                break;
- #endif
        default:
                printk(KERN_ERR "Uknown TMR function: 0x%02x.\n",
                                tmr->function);
@@@ -23,7 -23,7 +23,7 @@@
   *    1 word. If SPI master controller doesn't support sclk frequency change,
   *    then the char need be sent out one by one with some delay
   *
-  * 2. Currently only RX availabe interrrupt is used, no need for waiting TXE
+  * 2. Currently only RX available interrrupt is used, no need for waiting TXE
   *    interrupt for a low speed UART device
   */
  
@@@ -56,7 -56,7 +56,7 @@@ struct uart_max3110 
        wait_queue_head_t wq;
        struct task_struct *main_thread;
        struct task_struct *read_thread;
 -      struct mutex thread_mutex;;
 +      struct mutex thread_mutex;
  
        u32 baud;
        u16 cur_conf;
diff --combined drivers/tty/tty_ioctl.c
@@@ -247,7 -247,7 +247,7 @@@ speed_t tty_termios_baud_rate(struct kt
        cbaud = termios->c_cflag & CBAUD;
  
  #ifdef BOTHER
-       /* Magic token for arbitary speed via c_ispeed/c_ospeed */
+       /* Magic token for arbitrary speed via c_ispeed/c_ospeed */
        if (cbaud == BOTHER)
                return termios->c_ospeed;
  #endif
@@@ -283,7 -283,7 +283,7 @@@ speed_t tty_termios_input_baud_rate(str
        if (cbaud == B0)
                return tty_termios_baud_rate(termios);
  
-       /* Magic token for arbitary speed via c_ispeed*/
+       /* Magic token for arbitrary speed via c_ispeed*/
        if (cbaud == BOTHER)
                return termios->c_ispeed;
  
@@@ -309,7 -309,7 +309,7 @@@ EXPORT_SYMBOL(tty_termios_input_baud_ra
   *    @ospeed: output speed
   *
   *    Encode the speeds set into the passed termios structure. This is
 - *    used as a library helper for drivers os that they can report back
 + *    used as a library helper for drivers so that they can report back
   *    the actual speed selected when it differs from the speed requested
   *
   *    For maximal back compatibility with legacy SYS5/POSIX *nix behaviour
@@@ -449,7 -449,7 +449,7 @@@ EXPORT_SYMBOL(tty_get_baud_rate)
   *    @new: New termios
   *    @old: Old termios
   *
-  *    Propogate the hardware specific terminal setting bits from
+  *    Propagate the hardware specific terminal setting bits from
   *    the old termios structure to the new one. This is used in cases
   *    where the hardware does not support reconfiguration or as a helper
   *    in some cases where only minimal reconfiguration is supported
diff --combined fs/logfs/readwrite.c
@@@ -481,7 -481,7 +481,7 @@@ static int inode_write_alias(struct sup
                        val = inode_val0(inode);
                        break;
                case INODE_USED_OFS:
 -                      val = cpu_to_be64(li->li_used_bytes);;
 +                      val = cpu_to_be64(li->li_used_bytes);
                        break;
                case INODE_SIZE_OFS:
                        val = cpu_to_be64(i_size_read(inode));
@@@ -1616,7 -1616,7 +1616,7 @@@ int logfs_rewrite_block(struct inode *i
                err = logfs_write_buf(inode, page, flags);
                if (!err && shrink_level(gc_level) == 0) {
                        /* Rewrite cannot mark the inode dirty but has to
-                        * write it immediatly.
+                        * write it immediately.
                         * Q: Can't we just create an alias for the inode
                         * instead?  And if not, why not?
                         */
diff --combined fs/ocfs2/refcounttree.c
@@@ -16,7 -16,6 +16,6 @@@
   */
  
  #include <linux/sort.h>
- #define MLOG_MASK_PREFIX ML_REFCOUNT
  #include <cluster/masklog.h>
  #include "ocfs2.h"
  #include "inode.h"
@@@ -34,6 -33,7 +33,7 @@@
  #include "aops.h"
  #include "xattr.h"
  #include "namei.h"
+ #include "ocfs2_trace.h"
  
  #include <linux/bio.h>
  #include <linux/blkdev.h>
@@@ -84,8 -84,7 +84,7 @@@ static int ocfs2_validate_refcount_bloc
        struct ocfs2_refcount_block *rb =
                (struct ocfs2_refcount_block *)bh->b_data;
  
-       mlog(0, "Validating refcount block %llu\n",
-            (unsigned long long)bh->b_blocknr);
+       trace_ocfs2_validate_refcount_block((unsigned long long)bh->b_blocknr);
  
        BUG_ON(!buffer_uptodate(bh));
  
@@@ -545,8 -544,8 +544,8 @@@ void ocfs2_purge_refcount_trees(struct 
        while ((node = rb_last(root)) != NULL) {
                tree = rb_entry(node, struct ocfs2_refcount_tree, rf_node);
  
-               mlog(0, "Purge tree %llu\n",
-                    (unsigned long long) tree->rf_blkno);
+               trace_ocfs2_purge_refcount_trees(
+                               (unsigned long long) tree->rf_blkno);
  
                rb_erase(&tree->rf_node, root);
                ocfs2_free_refcount_tree(tree);
@@@ -575,7 -574,8 +574,8 @@@ static int ocfs2_create_refcount_tree(s
  
        BUG_ON(oi->ip_dyn_features & OCFS2_HAS_REFCOUNT_FL);
  
-       mlog(0, "create tree for inode %lu\n", inode->i_ino);
+       trace_ocfs2_create_refcount_tree(
+               (unsigned long long)OCFS2_I(inode)->ip_blkno);
  
        ret = ocfs2_reserve_new_metadata_blocks(osb, 1, &meta_ac);
        if (ret) {
        di->i_refcount_loc = cpu_to_le64(first_blkno);
        spin_unlock(&oi->ip_lock);
  
-       mlog(0, "created tree for inode %lu, refblock %llu\n",
-            inode->i_ino, (unsigned long long)first_blkno);
+       trace_ocfs2_create_refcount_tree_blkno((unsigned long long)first_blkno);
  
        ocfs2_journal_dirty(handle, di_bh);
  
@@@ -1256,8 -1255,9 +1255,9 @@@ static int ocfs2_change_refcount_rec(ha
                goto out;
        }
  
-       mlog(0, "change index %d, old count %u, change %d\n", index,
-            le32_to_cpu(rec->r_refcount), change);
+       trace_ocfs2_change_refcount_rec(
+               (unsigned long long)ocfs2_metadata_cache_owner(ci),
+               index, le32_to_cpu(rec->r_refcount), change);
        le32_add_cpu(&rec->r_refcount, change);
  
        if (!rec->r_refcount) {
@@@ -1353,8 -1353,8 +1353,8 @@@ static int ocfs2_expand_inline_ref_root
  
        ocfs2_journal_dirty(handle, ref_root_bh);
  
-       mlog(0, "new leaf block %llu, used %u\n", (unsigned long long)blkno,
-            le16_to_cpu(new_rb->rf_records.rl_used));
+       trace_ocfs2_expand_inline_ref_root((unsigned long long)blkno,
+               le16_to_cpu(new_rb->rf_records.rl_used));
  
        *ref_leaf_bh = new_bh;
        new_bh = NULL;
@@@ -1466,9 -1466,9 +1466,9 @@@ static int ocfs2_divide_leaf_refcount_b
                        (struct ocfs2_refcount_block *)new_bh->b_data;
        struct ocfs2_refcount_list *new_rl = &new_rb->rf_records;
  
-       mlog(0, "split old leaf refcount block %llu, count = %u, used = %u\n",
-            (unsigned long long)ref_leaf_bh->b_blocknr,
-            le32_to_cpu(rl->rl_count), le32_to_cpu(rl->rl_used));
+       trace_ocfs2_divide_leaf_refcount_block(
+               (unsigned long long)ref_leaf_bh->b_blocknr,
+               le32_to_cpu(rl->rl_count), le32_to_cpu(rl->rl_used));
  
        /*
         * XXX: Improvement later.
@@@ -1601,8 -1601,8 +1601,8 @@@ static int ocfs2_new_leaf_refcount_bloc
  
        ocfs2_init_refcount_extent_tree(&ref_et, ci, ref_root_bh);
  
-       mlog(0, "insert new leaf block %llu at %u\n",
-            (unsigned long long)new_bh->b_blocknr, new_cpos);
+       trace_ocfs2_new_leaf_refcount_block(
+                       (unsigned long long)new_bh->b_blocknr, new_cpos);
  
        /* Insert the new leaf block with the specific offset cpos. */
        ret = ocfs2_insert_extent(handle, &ref_et, new_cpos, new_bh->b_blocknr,
@@@ -1794,11 -1794,10 +1794,10 @@@ static int ocfs2_insert_refcount_rec(ha
                        (le16_to_cpu(rf_list->rl_used) - index) *
                         sizeof(struct ocfs2_refcount_rec));
  
-       mlog(0, "insert refcount record start %llu, len %u, count %u "
-            "to leaf block %llu at index %d\n",
-            (unsigned long long)le64_to_cpu(rec->r_cpos),
-            le32_to_cpu(rec->r_clusters), le32_to_cpu(rec->r_refcount),
-            (unsigned long long)ref_leaf_bh->b_blocknr, index);
+       trace_ocfs2_insert_refcount_rec(
+               (unsigned long long)ref_leaf_bh->b_blocknr, index,
+               (unsigned long long)le64_to_cpu(rec->r_cpos),
+               le32_to_cpu(rec->r_clusters), le32_to_cpu(rec->r_refcount));
  
        rf_list->rl_recs[index] = *rec;
  
@@@ -1850,10 -1849,12 +1849,12 @@@ static int ocfs2_split_refcount_rec(han
  
        BUG_ON(le32_to_cpu(rb->rf_flags) & OCFS2_REFCOUNT_TREE_FL);
  
-       mlog(0, "original r_pos %llu, cluster %u, split %llu, cluster %u\n",
-            le64_to_cpu(orig_rec->r_cpos), le32_to_cpu(orig_rec->r_clusters),
-            le64_to_cpu(split_rec->r_cpos),
-            le32_to_cpu(split_rec->r_clusters));
+       trace_ocfs2_split_refcount_rec(le64_to_cpu(orig_rec->r_cpos),
+               le32_to_cpu(orig_rec->r_clusters),
+               le32_to_cpu(orig_rec->r_refcount),
+               le64_to_cpu(split_rec->r_cpos),
+               le32_to_cpu(split_rec->r_clusters),
+               le32_to_cpu(split_rec->r_refcount));
  
        /*
         * If we just need to split the header or tail clusters,
  
        if (split_rec->r_refcount) {
                rf_list->rl_recs[index] = *split_rec;
-               mlog(0, "insert refcount record start %llu, len %u, count %u "
-                    "to leaf block %llu at index %d\n",
-                    (unsigned long long)le64_to_cpu(split_rec->r_cpos),
-                    le32_to_cpu(split_rec->r_clusters),
-                    le32_to_cpu(split_rec->r_refcount),
-                    (unsigned long long)ref_leaf_bh->b_blocknr, index);
+               trace_ocfs2_split_refcount_rec_insert(
+                       (unsigned long long)ref_leaf_bh->b_blocknr, index,
+                       (unsigned long long)le64_to_cpu(split_rec->r_cpos),
+                       le32_to_cpu(split_rec->r_clusters),
+                       le32_to_cpu(split_rec->r_refcount));
  
                if (merge)
                        ocfs2_refcount_rec_merge(rb, index);
@@@ -1997,7 -1997,7 +1997,7 @@@ static int __ocfs2_increase_refcount(ha
        struct ocfs2_refcount_rec rec;
        unsigned int set_len = 0;
  
-       mlog(0, "Tree owner %llu, add refcount start %llu, len %u\n",
+       trace_ocfs2_increase_refcount_begin(
             (unsigned long long)ocfs2_metadata_cache_owner(ci),
             (unsigned long long)cpos, len);
  
                 */
                if (rec.r_refcount && le64_to_cpu(rec.r_cpos) == cpos &&
                    set_len <= len) {
-                       mlog(0, "increase refcount rec, start %llu, len %u, "
-                            "count %u\n", (unsigned long long)cpos, set_len,
-                            le32_to_cpu(rec.r_refcount));
+                       trace_ocfs2_increase_refcount_change(
+                               (unsigned long long)cpos, set_len,
+                               le32_to_cpu(rec.r_refcount));
                        ret = ocfs2_change_refcount_rec(handle, ci,
                                                        ref_leaf_bh, index,
                                                        merge, 1);
                } else if (!rec.r_refcount) {
                        rec.r_refcount = cpu_to_le32(1);
  
-                       mlog(0, "insert refcount rec, start %llu, len %u\n",
+                       trace_ocfs2_increase_refcount_insert(
                             (unsigned long long)le64_to_cpu(rec.r_cpos),
                             set_len);
                        ret = ocfs2_insert_refcount_rec(handle, ci, ref_root_bh,
                        rec.r_clusters = cpu_to_le32(set_len);
                        le32_add_cpu(&rec.r_refcount, 1);
  
-                       mlog(0, "split refcount rec, start %llu, "
-                            "len %u, count %u\n",
+                       trace_ocfs2_increase_refcount_split(
                             (unsigned long long)le64_to_cpu(rec.r_cpos),
                             set_len, le32_to_cpu(rec.r_refcount));
                        ret = ocfs2_split_refcount_rec(handle, ci,
@@@ -2095,6 -2094,11 +2094,11 @@@ static int ocfs2_remove_refcount_extent
  
        BUG_ON(rb->rf_records.rl_used);
  
+       trace_ocfs2_remove_refcount_extent(
+               (unsigned long long)ocfs2_metadata_cache_owner(ci),
+               (unsigned long long)ref_leaf_bh->b_blocknr,
+               le32_to_cpu(rb->rf_cpos));
        ocfs2_init_refcount_extent_tree(&et, ci, ref_root_bh);
        ret = ocfs2_remove_extent(handle, &et, le32_to_cpu(rb->rf_cpos),
                                  1, meta_ac, dealloc);
        if (!rb->rf_list.l_next_free_rec) {
                BUG_ON(rb->rf_clusters);
  
-               mlog(0, "reset refcount tree root %llu to be a record block.\n",
+               trace_ocfs2_restore_refcount_block(
                     (unsigned long long)ref_root_bh->b_blocknr);
  
                rb->rf_flags = 0;
@@@ -2184,6 -2188,10 +2188,10 @@@ static int ocfs2_decrease_refcount_rec(
        BUG_ON(cpos + len >
               le64_to_cpu(rec->r_cpos) + le32_to_cpu(rec->r_clusters));
  
+       trace_ocfs2_decrease_refcount_rec(
+               (unsigned long long)ocfs2_metadata_cache_owner(ci),
+               (unsigned long long)cpos, len);
        if (cpos == le64_to_cpu(rec->r_cpos) &&
            len == le32_to_cpu(rec->r_clusters))
                ret = ocfs2_change_refcount_rec(handle, ci,
  
                le32_add_cpu(&split.r_refcount, -1);
  
-               mlog(0, "split refcount rec, start %llu, "
-                    "len %u, count %u, original start %llu, len %u\n",
-                    (unsigned long long)le64_to_cpu(split.r_cpos),
-                    len, le32_to_cpu(split.r_refcount),
-                    (unsigned long long)le64_to_cpu(rec->r_cpos),
-                    le32_to_cpu(rec->r_clusters));
                ret = ocfs2_split_refcount_rec(handle, ci,
                                               ref_root_bh, ref_leaf_bh,
                                               &split, index, 1,
@@@ -2239,10 -2241,9 +2241,9 @@@ static int __ocfs2_decrease_refcount(ha
        struct super_block *sb = ocfs2_metadata_cache_get_super(ci);
        struct buffer_head *ref_leaf_bh = NULL;
  
-       mlog(0, "Tree owner %llu, decrease refcount start %llu, "
-            "len %u, delete %u\n",
-            (unsigned long long)ocfs2_metadata_cache_owner(ci),
-            (unsigned long long)cpos, len, delete);
+       trace_ocfs2_decrease_refcount(
+               (unsigned long long)ocfs2_metadata_cache_owner(ci),
+               (unsigned long long)cpos, len, delete);
  
        while (len) {
                ret = ocfs2_get_refcount_rec(ci, ref_root_bh,
@@@ -2352,8 -2353,8 +2353,8 @@@ static int ocfs2_mark_extent_refcounted
  {
        int ret;
  
-       mlog(0, "Inode %lu refcount tree cpos %u, len %u, phys cluster %u\n",
-            inode->i_ino, cpos, len, phys);
+       trace_ocfs2_mark_extent_refcounted(OCFS2_I(inode)->ip_blkno,
+                                          cpos, len, phys);
  
        if (!ocfs2_refcount_tree(OCFS2_SB(inode->i_sb))) {
                ocfs2_error(inode->i_sb, "Inode %lu want to use refcount "
@@@ -2392,8 -2393,6 +2393,6 @@@ static int ocfs2_calc_refcount_meta_cre
        struct buffer_head *ref_leaf_bh = NULL, *prev_bh = NULL;
        u32 len;
  
-       mlog(0, "start_cpos %llu, clusters %u\n",
-            (unsigned long long)start_cpos, clusters);
        while (clusters) {
                ret = ocfs2_get_refcount_rec(ci, ref_root_bh,
                                             cpos, clusters, &rec,
  
                rb = (struct ocfs2_refcount_block *)ref_leaf_bh->b_data;
  
-               mlog(0, "recs_add %d,cpos %llu, clusters %u, rec->r_cpos %llu,"
-                    "rec->r_clusters %u, rec->r_refcount %u, index %d\n",
-                    recs_add, (unsigned long long)cpos, clusters,
-                    (unsigned long long)le64_to_cpu(rec.r_cpos),
-                    le32_to_cpu(rec.r_clusters),
-                    le32_to_cpu(rec.r_refcount), index);
+               trace_ocfs2_calc_refcount_meta_credits_iterate(
+                               recs_add, (unsigned long long)cpos, clusters,
+                               (unsigned long long)le64_to_cpu(rec.r_cpos),
+                               le32_to_cpu(rec.r_clusters),
+                               le32_to_cpu(rec.r_refcount), index);
  
                len = min((u64)cpos + clusters, le64_to_cpu(rec.r_cpos) +
                          le32_to_cpu(rec.r_clusters)) - cpos;
        if (!ref_blocks)
                goto out;
  
-       mlog(0, "we need ref_blocks %d\n", ref_blocks);
        *meta_add += ref_blocks;
        *credits += ref_blocks;
  
        }
  
  out:
+       trace_ocfs2_calc_refcount_meta_credits(
+               (unsigned long long)start_cpos, clusters,
+               *meta_add, *credits);
        brelse(ref_leaf_bh);
        brelse(prev_bh);
        return ret;
@@@ -2578,8 -2579,7 +2579,7 @@@ int ocfs2_prepare_refcount_change_for_d
                goto out;
        }
  
-       mlog(0, "reserve new metadata %d blocks, credits = %d\n",
-            *ref_blocks, *credits);
+       trace_ocfs2_prepare_refcount_change_for_del(*ref_blocks, *credits);
  
  out:
        brelse(ref_root_bh);
@@@ -2886,8 -2886,7 +2886,7 @@@ static int ocfs2_lock_refcount_allocato
                goto out;
        }
  
-       mlog(0, "reserve new metadata %d, clusters %u, credits = %d\n",
-            meta_add, num_clusters, *credits);
+       trace_ocfs2_lock_refcount_allocators(meta_add, *credits);
        ret = ocfs2_reserve_new_metadata_blocks(OCFS2_SB(sb), meta_add,
                                                meta_ac);
        if (ret) {
@@@ -2937,8 -2936,8 +2936,8 @@@ static int ocfs2_duplicate_clusters_by_
        loff_t offset, end, map_end;
        struct address_space *mapping = context->inode->i_mapping;
  
-       mlog(0, "old_cluster %u, new %u, len %u at offset %u\n", old_cluster,
-            new_cluster, new_len, cpos);
+       trace_ocfs2_duplicate_clusters_by_page(cpos, old_cluster,
+                                              new_cluster, new_len);
  
        readahead_pages =
                (ocfs2_cow_contig_clusters(sb) <<
@@@ -3031,8 -3030,8 +3030,8 @@@ static int ocfs2_duplicate_clusters_by_
        struct buffer_head *old_bh = NULL;
        struct buffer_head *new_bh = NULL;
  
-       mlog(0, "old_cluster %u, new %u, len %u\n", old_cluster,
-            new_cluster, new_len);
+       trace_ocfs2_duplicate_clusters_by_page(cpos, old_cluster,
+                                              new_cluster, new_len);
  
        for (i = 0; i < blocks; i++, old_block++, new_block++) {
                new_bh = sb_getblk(osb->sb, new_block);
@@@ -3085,8 -3084,8 +3084,8 @@@ static int ocfs2_clear_ext_refcount(han
        struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci);
        u64 ino = ocfs2_metadata_cache_owner(et->et_ci);
  
-       mlog(0, "inode %llu cpos %u, len %u, p_cluster %u, ext_flags %u\n",
-            (unsigned long long)ino, cpos, len, p_cluster, ext_flags);
+       trace_ocfs2_clear_ext_refcount((unsigned long long)ino,
+                                      cpos, len, p_cluster, ext_flags);
  
        memset(&replace_rec, 0, sizeof(replace_rec));
        replace_rec.e_cpos = cpu_to_le32(cpos);
@@@ -3141,8 -3140,8 +3140,8 @@@ static int ocfs2_replace_clusters(handl
        struct ocfs2_caching_info *ci = context->data_et.et_ci;
        u64 ino = ocfs2_metadata_cache_owner(ci);
  
-       mlog(0, "inode %llu, cpos %u, old %u, new %u, len %u, ext_flags %u\n",
-            (unsigned long long)ino, cpos, old, new, len, ext_flags);
+       trace_ocfs2_replace_clusters((unsigned long long)ino,
+                                    cpos, old, new, len, ext_flags);
  
        /*If the old clusters is unwritten, no need to duplicate. */
        if (!(ext_flags & OCFS2_EXT_UNWRITTEN)) {
@@@ -3236,8 -3235,8 +3235,8 @@@ static int ocfs2_make_clusters_writable
        struct ocfs2_caching_info *ref_ci = &context->ref_tree->rf_ci;
        struct ocfs2_refcount_rec rec;
  
-       mlog(0, "cpos %u, p_cluster %u, num_clusters %u, e_flags %u\n",
-            cpos, p_cluster, num_clusters, e_flags);
+       trace_ocfs2_make_clusters_writable(cpos, p_cluster,
+                                          num_clusters, e_flags);
  
        ret = ocfs2_lock_refcount_allocators(sb, p_cluster, num_clusters,
                                             &context->data_et,
@@@ -3475,9 -3474,9 +3474,9 @@@ static int ocfs2_refcount_cow_hunk(stru
                goto out;
        }
  
-       mlog(0, "CoW inode %lu, cpos %u, write_len %u, cow_start %u, "
-            "cow_len %u\n", inode->i_ino,
-            cpos, write_len, cow_start, cow_len);
+       trace_ocfs2_refcount_cow_hunk(OCFS2_I(inode)->ip_blkno,
+                                     cpos, write_len, max_cpos,
+                                     cow_start, cow_len);
  
        BUG_ON(cow_len == 0);
  
@@@ -3707,7 -3706,7 +3706,7 @@@ int ocfs2_refcount_cow_xattr(struct ino
        context->cow_start = cow_start;
        context->cow_len = cow_len;
        context->ref_tree = ref_tree;
 -      context->ref_root_bh = ref_root_bh;;
 +      context->ref_root_bh = ref_root_bh;
        context->cow_object = xv;
  
        context->cow_duplicate_clusters = ocfs2_duplicate_clusters_by_jbd;
@@@ -3756,8 -3755,7 +3755,7 @@@ int ocfs2_add_refcount_flag(struct inod
                goto out;
        }
  
-       mlog(0, "reserve new metadata %d, credits = %d\n",
-            ref_blocks, credits);
+       trace_ocfs2_add_refcount_flag(ref_blocks, credits);
  
        if (ref_blocks) {
                ret = ocfs2_reserve_new_metadata_blocks(OCFS2_SB(inode->i_sb),
diff --combined fs/partitions/ldm.c
@@@ -565,7 -565,7 +565,7 @@@ static bool ldm_validate_partition_tabl
  
        data = read_part_sector(state, 0, &sect);
        if (!data) {
 -              ldm_crit ("Disk read failed.");
 +              ldm_info ("Disk read failed.");
                return false;
        }
  
@@@ -1299,6 -1299,11 +1299,11 @@@ static bool ldm_frag_add (const u8 *dat
  
        BUG_ON (!data || !frags);
  
+       if (size < 2 * VBLK_SIZE_HEAD) {
+               ldm_error("Value of size is to small.");
+               return false;
+       }
        group = get_unaligned_be32(data + 0x08);
        rec   = get_unaligned_be16(data + 0x0C);
        num   = get_unaligned_be16(data + 0x0E);
                ldm_error ("A VBLK claims to have %d parts.", num);
                return false;
        }
+       if (rec >= num) {
+               ldm_error("REC value (%d) exceeds NUM value (%d)", rec, num);
+               return false;
+       }
  
        list_for_each (item, frags) {
                f = list_entry (item, struct frag, list);
@@@ -1334,10 -1343,9 +1343,9 @@@ found
  
        f->map |= (1 << rec);
  
-       if (num > 0) {
-               data += VBLK_SIZE_HEAD;
-               size -= VBLK_SIZE_HEAD;
-       }
+       data += VBLK_SIZE_HEAD;
+       size -= VBLK_SIZE_HEAD;
        memcpy (f->data+rec*(size-VBLK_SIZE_HEAD)+VBLK_SIZE_HEAD, data, size);
  
        return true;
diff --combined fs/ufs/inode.c
@@@ -78,7 -78,7 +78,7 @@@ static int ufs_block_to_path(struct ino
  
  /*
   * Returns the location of the fragment from
-  * the begining of the filesystem.
+  * the beginning of the filesystem.
   */
  
  static u64 ufs_frag_map(struct inode *inode, sector_t frag, bool needs_lock)
@@@ -409,7 -409,7 +409,7 @@@ out
  }
  
  /**
 - * ufs_getfrag_bloc() - `get_block_t' function, interface between UFS and
 + * ufs_getfrag_block() - `get_block_t' function, interface between UFS and
   * readpage, writepage and so on
   */
  
@@@ -552,7 -552,6 +552,6 @@@ static sector_t ufs_bmap(struct address
  const struct address_space_operations ufs_aops = {
        .readpage = ufs_readpage,
        .writepage = ufs_writepage,
-       .sync_page = block_sync_page,
        .write_begin = ufs_write_begin,
        .write_end = generic_write_end,
        .bmap = ufs_bmap
diff --combined include/video/newport.h
@@@ -3,9 -3,9 +3,9 @@@
   * newport.h: Defines and register layout for NEWPORT graphics
   *            hardware.
   *
 - * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
 + * Copyright (C) 1996 David S. Miller (davem@davemloft.net)
   * 
-  * Ulf Carlsson - Compability with the IRIX structures added
+  * Ulf Carlsson - Compatibility with the IRIX structures added
   */
  
  #ifndef _SGI_NEWPORT_H
diff --combined lib/Kconfig.debug
@@@ -7,9 -7,19 +7,20 @@@ config PRINTK_TIM
          included in printk output.  This allows you to measure
          the interval between kernel operations, including bootup
          operations.  This is useful for identifying long delays
 -        in kernel startup.
 +        in kernel startup.  Or add printk.time=1 at boot-time.
 +        See Documentation/kernel-parameters.txt
  
+ config DEFAULT_MESSAGE_LOGLEVEL
+       int "Default message log level (1-7)"
+       range 1 7
+       default "4"
+       help
+         Default log level for printk statements with no specified priority.
+         This was hard-coded to KERN_WARNING since at least 2.6.10 but folks
+         that are auditing their logs closely may want to set it to a lower
+         priority.
  config ENABLE_WARN_DEPRECATED
        bool "Enable __deprecated logic"
        default y
@@@ -103,11 -113,6 +114,6 @@@ config HEADERS_CHEC
  
  config DEBUG_SECTION_MISMATCH
        bool "Enable full Section mismatch analysis"
-       depends on UNDEFINED || (BLACKFIN)
-       default y
-       # This option is on purpose disabled for now.
-       # It will be enabled when we are down to a reasonable number
-       # of section mismatch warnings (< 10 for an allyesconfig build)
        help
          The section mismatch analysis checks if there are illegal
          references from one section to another section.
@@@ -177,6 -182,23 +183,23 @@@ config HARDLOCKUP_DETECTO
        def_bool LOCKUP_DETECTOR && PERF_EVENTS && HAVE_PERF_EVENTS_NMI && \
                 !ARCH_HAS_NMI_WATCHDOG
  
+ config BOOTPARAM_HARDLOCKUP_PANIC
+       bool "Panic (Reboot) On Hard Lockups"
+       depends on LOCKUP_DETECTOR
+       help
+         Say Y here to enable the kernel to panic on "hard lockups",
+         which are bugs that cause the kernel to loop in kernel
+         mode with interrupts disabled for more than 60 seconds.
+         Say N if unsure.
+ config BOOTPARAM_HARDLOCKUP_PANIC_VALUE
+       int
+       depends on LOCKUP_DETECTOR
+       range 0 1
+       default 0 if !BOOTPARAM_HARDLOCKUP_PANIC
+       default 1 if BOOTPARAM_HARDLOCKUP_PANIC
  config BOOTPARAM_SOFTLOCKUP_PANIC
        bool "Panic (Reboot) On Soft Lockups"
        depends on LOCKUP_DETECTOR
@@@ -412,11 -434,9 +435,9 @@@ config DEBUG_KMEMLEAK_EARLY_LOG_SIZ
  
  config DEBUG_KMEMLEAK_TEST
        tristate "Simple test for the kernel memory leak detector"
-       depends on DEBUG_KMEMLEAK
+       depends on DEBUG_KMEMLEAK && m
        help
-         Say Y or M here to build a test for the kernel memory leak
-         detector. This option enables a module that explicitly leaks
-         memory.
+         This option enables a module that explicitly leaks memory.
  
          If unsure, say N.
  
@@@ -1228,3 -1248,6 +1249,6 @@@ source "samples/Kconfig
  source "lib/Kconfig.kgdb"
  
  source "lib/Kconfig.kmemcheck"
+ config TEST_KSTRTOX
+       tristate "Test kstrto*() family of functions at runtime"
diff --combined lib/vsprintf.c
@@@ -120,147 -120,6 +120,6 @@@ long long simple_strtoll(const char *cp
  }
  EXPORT_SYMBOL(simple_strtoll);
  
- /**
-  * strict_strtoul - convert a string to an unsigned long strictly
-  * @cp: The string to be converted
-  * @base: The number base to use
-  * @res: The converted result value
-  *
-  * strict_strtoul converts a string to an unsigned long only if the
-  * string is really an unsigned long string, any string containing
-  * any invalid char at the tail will be rejected and -EINVAL is returned,
-  * only a newline char at the tail is acceptible because people generally
-  * change a module parameter in the following way:
-  *
-  *    echo 1024 > /sys/module/e1000/parameters/copybreak
-  *
-  * echo will append a newline to the tail.
-  *
-  * It returns 0 if conversion is successful and *res is set to the converted
-  * value, otherwise it returns -EINVAL and *res is set to 0.
-  *
-  * simple_strtoul just ignores the successive invalid characters and
-  * return the converted value of prefix part of the string.
-  */
- int strict_strtoul(const char *cp, unsigned int base, unsigned long *res)
- {
-       char *tail;
-       unsigned long val;
-       *res = 0;
-       if (!*cp)
-               return -EINVAL;
-       val = simple_strtoul(cp, &tail, base);
-       if (tail == cp)
-               return -EINVAL;
-       if ((tail[0] == '\0') || (tail[0] == '\n' && tail[1] == '\0')) {
-               *res = val;
-               return 0;
-       }
-       return -EINVAL;
- }
- EXPORT_SYMBOL(strict_strtoul);
- /**
-  * strict_strtol - convert a string to a long strictly
-  * @cp: The string to be converted
-  * @base: The number base to use
-  * @res: The converted result value
-  *
-  * strict_strtol is similiar to strict_strtoul, but it allows the first
-  * character of a string is '-'.
-  *
-  * It returns 0 if conversion is successful and *res is set to the converted
-  * value, otherwise it returns -EINVAL and *res is set to 0.
-  */
- int strict_strtol(const char *cp, unsigned int base, long *res)
- {
-       int ret;
-       if (*cp == '-') {
-               ret = strict_strtoul(cp + 1, base, (unsigned long *)res);
-               if (!ret)
-                       *res = -(*res);
-       } else {
-               ret = strict_strtoul(cp, base, (unsigned long *)res);
-       }
-       return ret;
- }
- EXPORT_SYMBOL(strict_strtol);
- /**
-  * strict_strtoull - convert a string to an unsigned long long strictly
-  * @cp: The string to be converted
-  * @base: The number base to use
-  * @res: The converted result value
-  *
-  * strict_strtoull converts a string to an unsigned long long only if the
-  * string is really an unsigned long long string, any string containing
-  * any invalid char at the tail will be rejected and -EINVAL is returned,
-  * only a newline char at the tail is acceptible because people generally
-  * change a module parameter in the following way:
-  *
-  *    echo 1024 > /sys/module/e1000/parameters/copybreak
-  *
-  * echo will append a newline to the tail of the string.
-  *
-  * It returns 0 if conversion is successful and *res is set to the converted
-  * value, otherwise it returns -EINVAL and *res is set to 0.
-  *
-  * simple_strtoull just ignores the successive invalid characters and
-  * return the converted value of prefix part of the string.
-  */
- int strict_strtoull(const char *cp, unsigned int base, unsigned long long *res)
- {
-       char *tail;
-       unsigned long long val;
-       *res = 0;
-       if (!*cp)
-               return -EINVAL;
-       val = simple_strtoull(cp, &tail, base);
-       if (tail == cp)
-               return -EINVAL;
-       if ((tail[0] == '\0') || (tail[0] == '\n' && tail[1] == '\0')) {
-               *res = val;
-               return 0;
-       }
-       return -EINVAL;
- }
- EXPORT_SYMBOL(strict_strtoull);
- /**
-  * strict_strtoll - convert a string to a long long strictly
-  * @cp: The string to be converted
-  * @base: The number base to use
-  * @res: The converted result value
-  *
-  * strict_strtoll is similiar to strict_strtoull, but it allows the first
-  * character of a string is '-'.
-  *
-  * It returns 0 if conversion is successful and *res is set to the converted
-  * value, otherwise it returns -EINVAL and *res is set to 0.
-  */
- int strict_strtoll(const char *cp, unsigned int base, long long *res)
- {
-       int ret;
-       if (*cp == '-') {
-               ret = strict_strtoull(cp + 1, base, (unsigned long long *)res);
-               if (!ret)
-                       *res = -(*res);
-       } else {
-               ret = strict_strtoull(cp, base, (unsigned long long *)res);
-       }
-       return ret;
- }
- EXPORT_SYMBOL(strict_strtoll);
  static noinline_for_stack
  int skip_atoi(const char **s)
  {
@@@ -574,7 -433,9 +433,9 @@@ char *symbol_string(char *buf, char *en
        unsigned long value = (unsigned long) ptr;
  #ifdef CONFIG_KALLSYMS
        char sym[KSYM_SYMBOL_LEN];
-       if (ext != 'f' && ext != 's')
+       if (ext == 'B')
+               sprint_backtrace(sym, value);
+       else if (ext != 'f' && ext != 's')
                sprint_symbol(sym, value);
        else
                kallsyms_lookup(value, NULL, NULL, NULL, sym);
@@@ -949,6 -810,7 +810,7 @@@ int kptr_restrict = 1
   * - 'f' For simple symbolic function names without offset
   * - 'S' For symbolic direct pointers with offset
   * - 's' For symbolic direct pointers without offset
+  * - 'B' For backtraced symbolic direct pointers with offset
   * - 'R' For decoded struct resource, e.g., [mem 0x0-0x1f 64bit pref]
   * - 'r' For raw struct resource, e.g., [mem 0x0-0x1f flags 0x201]
   * - 'M' For a 6-byte MAC address, it prints the address in the
@@@ -991,7 -853,7 +853,7 @@@ static noinline_for_stac
  char *pointer(const char *fmt, char *buf, char *end, void *ptr,
              struct printf_spec spec)
  {
-       if (!ptr) {
+       if (!ptr && *fmt != 'K') {
                /*
                 * Print (null) with the same width as a pointer so it makes
                 * tabular output look nice.
                /* Fallthrough */
        case 'S':
        case 's':
+       case 'B':
                return symbol_string(buf, end, ptr, spec, *fmt);
        case 'R':
        case 'r':
                        if (spec.field_width == -1)
                                spec.field_width = 2 * sizeof(void *);
                        return string(buf, end, "pK-error", spec);
-               } else if ((kptr_restrict == 0) ||
-                        (kptr_restrict == 1 &&
-                         has_capability_noaudit(current, CAP_SYSLOG)))
-                       break;
-               if (spec.field_width == -1) {
-                       spec.field_width = 2 * sizeof(void *);
-                       spec.flags |= ZEROPAD;
                }
-               return number(buf, end, 0, spec);
+               if (!((kptr_restrict == 0) ||
+                     (kptr_restrict == 1 &&
+                      has_capability_noaudit(current, CAP_SYSLOG))))
+                       ptr = NULL;
+               break;
        }
        spec.flags |= SMALL;
        if (spec.field_width == -1) {
@@@ -1279,6 -1138,7 +1138,7 @@@ qualifier
   * %ps output the name of a text symbol without offset
   * %pF output the name of a function pointer with its offset
   * %pf output the name of a function pointer without its offset
+  * %pB output the name of a backtrace symbol with its offset
   * %pR output the address range in a struct resource with decoded flags
   * %pr output the address range in a struct resource with raw flags
   * %pM output a 6-byte MAC address with colons
   * return is greater than or equal to @size, the resulting
   * string is truncated.
   *
 - * Call this function if you are already dealing with a va_list.
 - * You probably want snprintf() instead.
 + * If you're not already dealing with a va_list consider using snprintf().
   */
  int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
  {
@@@ -1475,7 -1336,8 +1335,7 @@@ EXPORT_SYMBOL(vsnprintf)
   * the @buf not including the trailing '\0'. If @size is == 0 the function
   * returns 0.
   *
 - * Call this function if you are already dealing with a va_list.
 - * You probably want scnprintf() instead.
 + * If you're not already dealing with a va_list consider using scnprintf().
   *
   * See the vsnprintf() documentation for format string extensions over C99.
   */
@@@ -1554,7 -1416,8 +1414,7 @@@ EXPORT_SYMBOL(scnprintf)
   * into @buf. Use vsnprintf() or vscnprintf() in order to avoid
   * buffer overflows.
   *
 - * Call this function if you are already dealing with a va_list.
 - * You probably want sprintf() instead.
 + * If you're not already dealing with a va_list consider using sprintf().
   *
   * See the vsnprintf() documentation for format string extensions over C99.
   */
diff --combined mm/hugetlb.c
@@@ -146,7 -146,7 +146,7 @@@ static long region_chg(struct list_hea
                if (rg->from > t)
                        return chg;
  
-               /* We overlap with this area, if it extends futher than
+               /* We overlap with this area, if it extends further than
                 * us then we must extend ourselves.  Account for its
                 * existing reservation. */
                if (rg->to > t) {
@@@ -475,7 -475,7 +475,7 @@@ static struct page *dequeue_huge_page_v
  
        /* If reserves cannot be used, ensure enough pages are in the pool */
        if (avoid_reserve && h->free_huge_pages - h->resv_huge_pages == 0)
 -              goto err;;
 +              goto err;
  
        for_each_zone_zonelist_nodemask(zone, z, zonelist,
                                                MAX_NR_ZONES - 1, nodemask) {
@@@ -842,7 -842,7 +842,7 @@@ struct page *alloc_huge_page_node(struc
  }
  
  /*
-  * Increase the hugetlb pool such that it can accomodate a reservation
+  * Increase the hugetlb pool such that it can accommodate a reservation
   * of size 'delta'.
   */
  static int gather_surplus_pages(struct hstate *h, int delta)
@@@ -890,7 -890,7 +890,7 @@@ retry
  
        /*
         * The surplus_list now contains _at_least_ the number of extra pages
-        * needed to accomodate the reservation.  Add the appropriate number
+        * needed to accommodate the reservation.  Add the appropriate number
         * of pages to the hugetlb pool and free the extras back to the buddy
         * allocator.  Commit the entire reservation here to prevent another
         * process from stealing the pages as they are added to the pool but
@@@ -1872,8 -1872,7 +1872,7 @@@ static int hugetlb_sysctl_handler_commo
        unsigned long tmp;
        int ret;
  
-       if (!write)
-               tmp = h->max_huge_pages;
+       tmp = h->max_huge_pages;
  
        if (write && h->order >= MAX_ORDER)
                return -EINVAL;
@@@ -1938,8 -1937,7 +1937,7 @@@ int hugetlb_overcommit_handler(struct c
        unsigned long tmp;
        int ret;
  
-       if (!write)
-               tmp = h->nr_overcommit_huge_pages;
+       tmp = h->nr_overcommit_huge_pages;
  
        if (write && h->order >= MAX_ORDER)
                return -EINVAL;
@@@ -2045,7 -2043,7 +2043,7 @@@ static void hugetlb_vm_op_open(struct v
         * This new VMA should share its siblings reservation map if present.
         * The VMA will only ever have a valid reservation map pointer where
         * it is being copied for another still existing VMA.  As that VMA
-        * has a reference to the reservation map it cannot dissappear until
+        * has a reference to the reservation map it cannot disappear until
         * after this open call completes.  It is therefore safe to take a
         * new reference here without additional locking.
         */
@@@ -2492,7 -2490,7 +2490,7 @@@ static int hugetlb_no_page(struct mm_st
        /*
         * Currently, we are forced to kill the process in the event the
         * original mapper has unmapped pages from the child due to a failed
-        * COW. Warn that such a situation has occured as it may not be obvious
+        * COW. Warn that such a situation has occurred as it may not be obvious
         */
        if (is_vma_resv_set(vma, HPAGE_RESV_UNMAPPED)) {
                printk(KERN_WARNING
diff --combined mm/page_alloc.c
@@@ -53,6 -53,7 +53,7 @@@
  #include <linux/compaction.h>
  #include <trace/events/kmem.h>
  #include <linux/ftrace_event.h>
+ #include <linux/memcontrol.h>
  
  #include <asm/tlbflush.h>
  #include <asm/div64.h>
@@@ -565,7 -566,8 +566,8 @@@ static inline int free_pages_check(stru
        if (unlikely(page_mapcount(page) |
                (page->mapping != NULL)  |
                (atomic_read(&page->_count) != 0) |
-               (page->flags & PAGE_FLAGS_CHECK_AT_FREE))) {
+               (page->flags & PAGE_FLAGS_CHECK_AT_FREE) |
+               (mem_cgroup_bad_page_check(page)))) {
                bad_page(page);
                return 1;
        }
@@@ -614,6 -616,10 +616,10 @@@ static void free_pcppages_bulk(struct z
                        list = &pcp->lists[migratetype];
                } while (list_empty(list));
  
+               /* This is the only non-empty list. Free them all. */
+               if (batch_free == MIGRATE_PCPTYPES)
+                       batch_free = to_free;
                do {
                        page = list_entry(list->prev, struct page, lru);
                        /* must delete as __free_one_page list manipulates */
@@@ -750,7 -756,8 +756,8 @@@ static inline int check_new_page(struc
        if (unlikely(page_mapcount(page) |
                (page->mapping != NULL)  |
                (atomic_read(&page->_count) != 0)  |
-               (page->flags & PAGE_FLAGS_CHECK_AT_PREP))) {
+               (page->flags & PAGE_FLAGS_CHECK_AT_PREP) |
+               (mem_cgroup_bad_page_check(page)))) {
                bad_page(page);
                return 1;
        }
@@@ -863,9 -870,8 +870,8 @@@ static int move_freepages(struct zone *
                }
  
                order = page_order(page);
-               list_del(&page->lru);
-               list_add(&page->lru,
-                       &zone->free_area[order].free_list[migratetype]);
+               list_move(&page->lru,
+                         &zone->free_area[order].free_list[migratetype]);
                page += 1 << order;
                pages_moved += 1 << order;
        }
@@@ -936,7 -942,7 +942,7 @@@ __rmqueue_fallback(struct zone *zone, i
                         * If breaking a large block of pages, move all free
                         * pages to the preferred allocation list. If falling
                         * back for a reclaimable kernel allocation, be more
-                        * agressive about taking ownership of free pages
+                        * aggressive about taking ownership of free pages
                         */
                        if (unlikely(current_order >= (pageblock_order >> 1)) ||
                                        start_migratetype == MIGRATE_RECLAIMABLE ||
@@@ -1333,7 -1339,7 +1339,7 @@@ again
        }
  
        __count_zone_vm_events(PGALLOC, zone, 1 << order);
-       zone_statistics(preferred_zone, zone);
+       zone_statistics(preferred_zone, zone, gfp_flags);
        local_irq_restore(flags);
  
        VM_BUG_ON(bad_range(zone, page));
@@@ -1714,6 -1720,20 +1720,20 @@@ try_next_zone
        return page;
  }
  
+ /*
+  * Large machines with many possible nodes should not always dump per-node
+  * meminfo in irq context.
+  */
+ static inline bool should_suppress_show_mem(void)
+ {
+       bool ret = false;
+ #if NODES_SHIFT > 8
+       ret = in_interrupt();
+ #endif
+       return ret;
+ }
  static inline int
  should_alloc_retry(gfp_t gfp_mask, unsigned int order,
                                unsigned long pages_reclaimed)
@@@ -2085,7 -2105,7 +2105,7 @@@ rebalance
                                        sync_migration);
        if (page)
                goto got_pg;
-       sync_migration = true;
+       sync_migration = !(gfp_mask & __GFP_NO_KSWAPD);
  
        /* Try direct reclaim and then allocating */
        page = __alloc_pages_direct_reclaim(gfp_mask, order,
  
  nopage:
        if (!(gfp_mask & __GFP_NOWARN) && printk_ratelimit()) {
-               printk(KERN_WARNING "%s: page allocation failure."
-                       " order:%d, mode:0x%x\n",
+               unsigned int filter = SHOW_MEM_FILTER_NODES;
+               /*
+                * This documents exceptions given to allocations in certain
+                * contexts that are allowed to allocate outside current's set
+                * of allowed nodes.
+                */
+               if (!(gfp_mask & __GFP_NOMEMALLOC))
+                       if (test_thread_flag(TIF_MEMDIE) ||
+                           (current->flags & (PF_MEMALLOC | PF_EXITING)))
+                               filter &= ~SHOW_MEM_FILTER_NODES;
+               if (in_interrupt() || !wait)
+                       filter &= ~SHOW_MEM_FILTER_NODES;
+               pr_warning("%s: page allocation failure. order:%d, mode:0x%x\n",
                        current->comm, order, gfp_mask);
                dump_stack();
-               show_mem();
+               if (!should_suppress_show_mem())
+                       show_mem(filter);
        }
        return page;
  got_pg:
@@@ -2411,19 -2445,42 +2445,42 @@@ void si_meminfo_node(struct sysinfo *va
  }
  #endif
  
+ /*
+  * Determine whether the zone's node should be displayed or not, depending on
+  * whether SHOW_MEM_FILTER_NODES was passed to __show_free_areas().
+  */
+ static bool skip_free_areas_zone(unsigned int flags, const struct zone *zone)
+ {
+       bool ret = false;
+       if (!(flags & SHOW_MEM_FILTER_NODES))
+               goto out;
+       get_mems_allowed();
+       ret = !node_isset(zone->zone_pgdat->node_id,
+                               cpuset_current_mems_allowed);
+       put_mems_allowed();
+ out:
+       return ret;
+ }
  #define K(x) ((x) << (PAGE_SHIFT-10))
  
  /*
   * Show free area list (used inside shift_scroll-lock stuff)
   * We also calculate the percentage fragmentation. We do this by counting the
   * memory on each free list with the exception of the first item on the list.
+  * Suppresses nodes that are not allowed by current's cpuset if
+  * SHOW_MEM_FILTER_NODES is passed.
   */
- void show_free_areas(void)
+ void __show_free_areas(unsigned int filter)
  {
        int cpu;
        struct zone *zone;
  
        for_each_populated_zone(zone) {
+               if (skip_free_areas_zone(filter, zone))
+                       continue;
                show_node(zone);
                printk("%s per-cpu:\n", zone->name);
  
        for_each_populated_zone(zone) {
                int i;
  
+               if (skip_free_areas_zone(filter, zone))
+                       continue;
                show_node(zone);
                printk("%s"
                        " free:%lukB"
        for_each_populated_zone(zone) {
                unsigned long nr[MAX_ORDER], flags, order, total = 0;
  
+               if (skip_free_areas_zone(filter, zone))
+                       continue;
                show_node(zone);
                printk("%s: ", zone->name);
  
        show_swap_cache_info();
  }
  
+ void show_free_areas(void)
+ {
+       __show_free_areas(0);
+ }
  static void zoneref_set_zone(struct zone *zone, struct zoneref *zoneref)
  {
        zoneref->zone = zone;
@@@ -3110,7 -3176,7 +3176,7 @@@ static __init_refok int __build_all_zon
   * Called with zonelists_mutex held always
   * unless system_state == SYSTEM_BOOTING.
   */
- void build_all_zonelists(void *data)
+ void __ref build_all_zonelists(void *data)
  {
        set_zonelist_order();
  
@@@ -3448,7 -3514,7 +3514,7 @@@ static void setup_pagelist_highmark(str
                pcp->batch = PAGE_SHIFT * 8;
  }
  
 -static __meminit void setup_zone_pageset(struct zone *zone)
 +static void setup_zone_pageset(struct zone *zone)
  {
        int cpu;
  
@@@ -3860,7 -3926,7 +3926,7 @@@ static void __init find_usable_zone_for
  
  /*
   * The zone ranges provided by the architecture do not include ZONE_MOVABLE
-  * because it is sized independant of architecture. Unlike the other zones,
+  * because it is sized independent of architecture. Unlike the other zones,
   * the starting point for ZONE_MOVABLE is not fixed. It may be different
   * in each node depending on the size of each node and how evenly kernelcore
   * is distributed. This helper function adjusts the zone ranges
@@@ -5621,4 -5687,5 +5687,5 @@@ void dump_page(struct page *page
                page, atomic_read(&page->_count), page_mapcount(page),
                page->mapping, page->index);
        dump_page_flags(page->flags);
+       mem_cgroup_print_bad_page(page);
  }
@@@ -293,7 -293,7 +293,7 @@@ bitmap_ip_uadt(struct ip_set *set, stru
  
        for (; !before(ip_to, ip); ip += map->hosts) {
                id = ip_to_id(map, ip);
 -              ret = adtfn(set, &id, timeout);;
 +              ret = adtfn(set, &id, timeout);
  
                if (ret && !ip_set_eexist(ret, flags))
                        return ret;
@@@ -338,8 -338,7 +338,7 @@@ bitmap_ip_head(struct ip_set *set, stru
        NLA_PUT_IPADDR4(skb, IPSET_ATTR_IP_TO, htonl(map->last_ip));
        if (map->netmask != 32)
                NLA_PUT_U8(skb, IPSET_ATTR_NETMASK, map->netmask);
-       NLA_PUT_NET32(skb, IPSET_ATTR_REFERENCES,
-                     htonl(atomic_read(&set->ref) - 1));
+       NLA_PUT_NET32(skb, IPSET_ATTR_REFERENCES, htonl(set->ref - 1));
        NLA_PUT_NET32(skb, IPSET_ATTR_MEMSIZE,
                      htonl(sizeof(*map) + map->memsize));
        if (with_timeout(map->timeout))