]> Git Repo - linux.git/commitdiff
Merge branch 'master' into for-next
authorJiri Kosina <[email protected]>
Mon, 11 Jul 2011 12:15:48 +0000 (14:15 +0200)
committerJiri Kosina <[email protected]>
Mon, 11 Jul 2011 12:15:55 +0000 (14:15 +0200)
Sync with Linus' tree to be able to apply pending patches that
are based on newer code already present upstream.

30 files changed:
1  2 
Documentation/feature-removal-schedule.txt
MAINTAINERS
arch/arm/mach-at91/at91sam9261_devices.c
arch/arm/mach-shmobile/board-ap4evb.c
arch/avr32/mach-at32ap/intc.c
arch/powerpc/sysdev/fsl_rio.c
arch/s390/oprofile/init.c
arch/sh/boards/mach-ecovec24/setup.c
arch/x86/kvm/mmu.c
drivers/media/rc/ite-cir.c
drivers/media/video/m5mols/m5mols_capture.c
drivers/media/video/omap/omap_vout.c
drivers/mmc/host/vub300.c
drivers/net/natsemi.c
drivers/net/pxa168_eth.c
drivers/ssb/driver_pcicore.c
drivers/target/loopback/tcm_loop.c
drivers/target/tcm_fc/tfc_cmd.c
drivers/target/tcm_fc/tfc_io.c
drivers/target/tcm_fc/tfc_sess.c
drivers/tty/serial/8250_pci.c
drivers/usb/gadget/fsl_udc_core.c
drivers/usb/host/ehci-ath79.c
drivers/video/aty/atyfb_base.c
drivers/video/udlfb.c
include/linux/fs.h
kernel/exit.c
kernel/sched.c
sound/atmel/abdac.c
sound/atmel/ac97c.c

index 6f55333424bd5b28026b6fb8ff2c354e54e15d3b,72e238465b0b6ca452ee4905dc097007b9ff3dc0..5d24fa211f042f4270fe180b72df264731a61f3d
@@@ -199,7 -199,7 +199,7 @@@ Files:     drivers/staging/cs5535_gpio/
  Check:        drivers/staging/cs5535_gpio/cs5535_gpio.c
  Why:  A newer driver replaces this; it is drivers/gpio/cs5535-gpio.c, and
        integrates with the Linux GPIO subsystem.  The old driver has been
 -      moved to staging, and will be removed altogether around 2.6.40.
 +      moved to staging, and will be removed altogether around 3.0.
        Please test the new driver, and ensure that the functionality you
        need and any bugfixes from the old driver are available in the new
        one.
@@@ -294,7 -294,7 +294,7 @@@ When:      The schedule was July 2008, but i
  Why:  The support code for the old firmware hurts code readability/maintainability
        and slightly hurts runtime performance. Bugfixes for the old firmware
        are not provided by Broadcom anymore.
 -Who:  Michael Buesch <m[email protected]>
 +Who:  Michael Buesch <m@bues.ch>
  
  ---------------------------
  
@@@ -430,7 -430,7 +430,7 @@@ Who:       Avi Kivity <[email protected]
  ----------------------------
  
  What: iwlwifi 50XX module parameters
 -When: 2.6.40
 +When: 3.0
  Why:  The "..50" modules parameters were used to configure 5000 series and
        up devices; different set of module parameters also available for 4965
        with same functionalities. Consolidate both set into single place
@@@ -441,7 -441,7 +441,7 @@@ Who:       Wey-Yi Guy <[email protected]
  ----------------------------
  
  What: iwl4965 alias support
 -When: 2.6.40
 +When: 3.0
  Why:  Internal alias support has been present in module-init-tools for some
        time, the MODULE_ALIAS("iwl4965") boilerplate aliases can be removed
        with no impact.
@@@ -481,25 -481,8 +481,8 @@@ Who:      FUJITA Tomonori <fujita.tomonori@l
  
  ----------------------------
  
- What:   namespace cgroup (ns_cgroup)
- When:   2.6.38
- Why:    The ns_cgroup leads to some problems:
-       * cgroup creation is out-of-control
-       * cgroup name can conflict when pids are looping
-       * it is not possible to have a single process handling
-       a lot of namespaces without falling in a exponential creation time
-       * we may want to create a namespace without creating a cgroup
-       The ns_cgroup is replaced by a compatibility flag 'clone_children',
-       where a newly created cgroup will copy the parent cgroup values.
-       The userspace has to manually create a cgroup and add a task to
-       the 'tasks' file.
- Who:    Daniel Lezcano <[email protected]>
- ----------------------------
  What: iwlwifi disable_hw_scan module parameters
 -When: 2.6.40
 +When: 3.0
  Why:  Hareware scan is the prefer method for iwlwifi devices for
        scanning operation. Remove software scan support for all the
        iwlwifi devices.
@@@ -510,7 -493,7 +493,7 @@@ Who:       Wey-Yi Guy <[email protected]
  
  What:   access to nfsd auth cache through sys_nfsservctl or '.' files
          in the 'nfsd' filesystem.
 -When:   2.6.40
 +When:   3.0
  Why:    This is a legacy interface which have been replaced by a more
          dynamic cache.  Continuing to maintain this interface is an
          unnecessary burden.
@@@ -546,7 -529,7 +529,7 @@@ Files:     net/netfilter/xt_connlimit.
  ----------------------------
  
  What: noswapaccount kernel command line parameter
 -When: 2.6.40
 +When: 3.0
  Why:  The original implementation of memsw feature enabled by
        CONFIG_CGROUP_MEM_RES_CTLR_SWAP could be disabled by the noswapaccount
        kernel parameter (introduced in 2.6.29-rc1). Later on, this decision
@@@ -579,7 -562,7 +562,7 @@@ Who:       Jean Delvare <[email protected]
  ----------------------------
  
  What: Support for UVCIOC_CTRL_ADD in the uvcvideo driver
 -When: 2.6.42
 +When: 3.2
  Why:  The information passed to the driver by this ioctl is now queried
        dynamically from the device.
  Who:  Laurent Pinchart <[email protected]>
  ----------------------------
  
  What: Support for UVCIOC_CTRL_MAP_OLD in the uvcvideo driver
 -When: 2.6.42
 +When: 3.2
  Why:  Used only by applications compiled against older driver versions.
        Superseded by UVCIOC_CTRL_MAP which supports V4L2 menu controls.
  Who:  Laurent Pinchart <[email protected]>
  ----------------------------
  
  What: Support for UVCIOC_CTRL_GET and UVCIOC_CTRL_SET in the uvcvideo driver
 -When: 2.6.42
 +When: 3.2
  Why:  Superseded by the UVCIOC_CTRL_QUERY ioctl.
  Who:  Laurent Pinchart <[email protected]>
  
diff --combined MAINTAINERS
index 2aeb1d1fa2671d90b7adf3905207d0b73e97387a,187282da92137a2ea147bcb0f664e0e99d90e681..bc5f93bdcf8c7add334714eaaf6aa95f4c96a89d
@@@ -594,6 -594,16 +594,16 @@@ S:       Maintaine
  F:    arch/arm/lib/floppydma.S
  F:    arch/arm/include/asm/floppy.h
  
+ ARM PMU PROFILING AND DEBUGGING
+ M:    Will Deacon <[email protected]>
+ S:    Maintained
+ F:    arch/arm/kernel/perf_event*
+ F:    arch/arm/oprofile/common.c
+ F:    arch/arm/kernel/pmu.c
+ F:    arch/arm/include/asm/pmu.h
+ F:    arch/arm/kernel/hw_breakpoint.c
+ F:    arch/arm/include/asm/hw_breakpoint.h
  ARM PORT
  M:    Russell King <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -683,7 -693,7 +693,7 @@@ T: git git://git.infradead.org/users/cb
  
  ARM/CIRRUS LOGIC EP93XX ARM ARCHITECTURE
  M:    Hartley Sweeten <[email protected]>
 -M:    Ryan Mallon <ryan@bluewatersys.com>
 +M:    Ryan Mallon <rmallon@gmail.com>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-ep93xx/
@@@ -1345,16 -1355,18 +1355,18 @@@ F:   drivers/auxdisplay
  F:    include/linux/cfag12864b.h
  
  AVR32 ARCHITECTURE
- M:    Hans-Christian Egtvedt <[email protected]>
+ M:    Haavard Skinnemoen <[email protected]>
+ M:    Hans-Christian Egtvedt <[email protected]>
  W:    http://www.atmel.com/products/AVR32/
  W:    http://avr32linux.org/
  W:    http://avrfreaks.net/
- S:    Supported
+ S:    Maintained
  F:    arch/avr32/
  
  AVR32/AT32AP MACHINE SUPPORT
- M:    Hans-Christian Egtvedt <[email protected]>
- S:    Supported
+ M:    Haavard Skinnemoen <[email protected]>
+ M:    Hans-Christian Egtvedt <[email protected]>
+ S:    Maintained
  F:    arch/avr32/mach-at32ap/
  
  AX.25 NETWORK LAYER
@@@ -1390,7 -1402,6 +1402,6 @@@ F:      include/linux/backlight.
  BATMAN ADVANCED
  M:    Marek Lindner <[email protected]>
  M:    Simon Wunderlich <[email protected]>
- M:    Sven Eckelmann <[email protected]>
  L:    [email protected]
  W:    http://www.open-mesh.org/
  S:    Maintained
@@@ -1423,7 -1434,6 +1434,6 @@@ S:      Supporte
  F:    arch/blackfin/
  
  BLACKFIN EMAC DRIVER
- M:    Michael Hennerich <[email protected]>
  L:    [email protected]
  W:    http://blackfin.uclinux.org
  S:    Supported
@@@ -1569,7 -1579,7 +1579,7 @@@ F:      Documentation/sound/alsa/Bt87x.tx
  F:    sound/pci/bt87x.c
  
  BT8XXGPIO DRIVER
 -M:    Michael Buesch <m[email protected]>
 +M:    Michael Buesch <m@bues.ch>
  W:    http://bu3sch.de/btgpio.php
  S:    Maintained
  F:    drivers/gpio/bt8xxgpio.c
@@@ -1639,7 -1649,7 +1649,7 @@@ CAN NETWORK LAYE
  M:    Oliver Hartkopp <[email protected]>
  M:    Oliver Hartkopp <[email protected]>
  M:    Urs Thuermann <[email protected]>
- L:    [email protected]
+ L:    [email protected] (subscribers-only)
  L:    [email protected]
  W:    http://developer.berlios.de/projects/socketcan/
  S:    Maintained
@@@ -1651,7 -1661,7 +1661,7 @@@ F:      include/linux/can/raw.
  
  CAN NETWORK DRIVERS
  M:    Wolfgang Grandegger <[email protected]>
- L:    [email protected]
+ L:    [email protected] (subscribers-only)
  L:    [email protected]
  W:    http://developer.berlios.de/projects/socketcan/
  S:    Maintained
@@@ -1739,7 -1749,7 +1749,7 @@@ S:      Supporte
  F:    drivers/net/enic/
  
  CIRRUS LOGIC EP93XX ETHERNET DRIVER
- M:    Lennert Buytenhek <[email protected]>
+ M:    Hartley Sweeten <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/arm/ep93xx_eth.c
@@@ -1889,7 -1899,6 +1899,6 @@@ L:      [email protected]
  W:    http://www.codemonkey.org.uk/projects/cpufreq/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq.git
  S:    Maintained
- F:    arch/x86/kernel/cpu/cpufreq/
  F:    drivers/cpufreq/
  F:    include/linux/cpufreq.h
  
@@@ -2198,7 -2207,7 +2207,7 @@@ F:      drivers/acpi/dock.
  DOCUMENTATION
  M:    Randy Dunlap <[email protected]>
  L:    [email protected]
- T:    quilt oss.oracle.com/~rdunlap/kernel-doc-patches/current/
+ T:    quilt http://userweb.kernel.org/~rdunlap/kernel-doc-patches/current/
  S:    Maintained
  F:    Documentation/
  
@@@ -2292,8 -2301,7 +2301,7 @@@ F:      drivers/scsi/eata_pio.
  
  EBTABLES
  M:    Bart De Schuymer <[email protected]>
- L:    [email protected]
- L:    [email protected]
+ L:    [email protected]
  W:    http://ebtables.sourceforge.net/
  S:    Maintained
  F:    include/linux/netfilter_bridge/ebt_*.h
@@@ -3820,6 -3828,12 +3828,12 @@@ S:    Maintaine
  F:    drivers/leds/
  F:    include/linux/leds.h
  
+ LEGACY EEPROM DRIVER
+ M:    Jean Delvare <[email protected]>
+ S:    Maintained
+ F:    Documentation/misc-devices/eeprom
+ F:    drivers/misc/eeprom/eeprom.c
  LEGO USB Tower driver
  M:    Juergen Stuber <[email protected]>
  L:    [email protected]
@@@ -4145,7 -4159,7 +4159,7 @@@ F:      include/linux/mm.
  F:    mm/
  
  MEMORY RESOURCE CONTROLLER
- M:    Balbir Singh <b[email protected].com>
+ M:    Balbir Singh <bsingharora@gmail.com>
  M:    Daisuke Nishimura <[email protected]>
  M:    KAMEZAWA Hiroyuki <[email protected]>
  L:    [email protected]
@@@ -4890,7 -4904,7 +4904,7 @@@ F:      mm/percpu*.
  F:    arch/*/include/asm/percpu.h
  
  PER-TASK DELAY ACCOUNTING
- M:    Balbir Singh <b[email protected].com>
+ M:    Balbir Singh <bsingharora@gmail.com>
  S:    Maintained
  F:    include/linux/delayacct.h
  F:    kernel/delayacct.c
@@@ -4978,7 -4992,7 +4992,7 @@@ F:      drivers/power/power_supply
  
  PNP SUPPORT
  M:    Adam Belay <[email protected]>
- M:    Bjorn Helgaas <bjorn.helgaas@hp.com>
+ M:    Bjorn Helgaas <bhelgaas@google.com>
  S:    Maintained
  F:    drivers/pnp/
  
@@@ -5177,6 -5191,7 +5191,7 @@@ S:      Supporte
  F:    drivers/net/qlcnic/
  
  QLOGIC QLGE 10Gb ETHERNET DRIVER
+ M:    Jitendra Kalsaria <[email protected]>
  M:    Ron Mercer <[email protected]>
  M:    [email protected]
  L:    [email protected]
@@@ -5860,7 -5875,7 +5875,7 @@@ S:      Maintaine
  F:    drivers/net/sonic.*
  
  SONICS SILICON BACKPLANE DRIVER (SSB)
 -M:    Michael Buesch <m[email protected]>
 +M:    Michael Buesch <m@bues.ch>
  L:    [email protected]
  S:    Maintained
  F:    drivers/ssb/
@@@ -6098,7 -6113,7 +6113,7 @@@ F:      include/target
  F:    Documentation/target/
  
  TASKSTATS STATISTICS INTERFACE
- M:    Balbir Singh <b[email protected].com>
+ M:    Balbir Singh <bsingharora@gmail.com>
  S:    Maintained
  F:    Documentation/accounting/taskstats*
  F:    include/linux/taskstats*
@@@ -6430,8 -6445,9 +6445,9 @@@ S:      Maintaine
  F:    drivers/usb/misc/rio500*
  
  USB EHCI DRIVER
+ M:    Alan Stern <[email protected]>
  L:    [email protected]
- S:    Orphan
+ S:    Maintained
  F:    Documentation/usb/ehci.txt
  F:    drivers/usb/host/ehci*
  
@@@ -6458,9 -6474,15 +6474,15 @@@ M:    Jiri Kosina <[email protected]
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid.git
  S:    Maintained
- F:    Documentation/usb/hiddev.txt
+ F:    Documentation/hid/hiddev.txt
  F:    drivers/hid/usbhid/
  
+ USB/IP DRIVERS
+ M:    Matt Mooney <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    drivers/staging/usbip/
  USB ISP116X DRIVER
  M:    Olav Kongas <[email protected]>
  L:    [email protected]
@@@ -6490,8 -6512,9 +6512,9 @@@ S:      Maintaine
  F:    sound/usb/midi.*
  
  USB OHCI DRIVER
+ M:    Alan Stern <[email protected]>
  L:    [email protected]
- S:    Orphan
+ S:    Maintained
  F:    Documentation/usb/ohci.txt
  F:    drivers/usb/host/ohci*
  
@@@ -6717,6 -6740,15 +6740,15 @@@ S:    Maintaine
  F:    Documentation/filesystems/vfat.txt
  F:    fs/fat/
  
+ VIDEOBUF2 FRAMEWORK
+ M:    Pawel Osciak <[email protected]>
+ M:    Marek Szyprowski <[email protected]>
+ M:    Kyungmin Park <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    drivers/media/video/videobuf2-*
+ F:    include/media/videobuf2-*
  VIRTIO CONSOLE DRIVER
  M:    Amit Shah <[email protected]>
  L:    [email protected]
@@@ -6994,6 -7026,13 +7026,13 @@@ T:    git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    drivers/platform/x86
  
+ X86 MCE INFRASTRUCTURE
+ M:    Tony Luck <[email protected]>
+ M:    Borislav Petkov <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    arch/x86/kernel/cpu/mcheck/*
  XEN HYPERVISOR INTERFACE
  M:    Jeremy Fitzhardinge <[email protected]>
  M:    Konrad Rzeszutek Wilk <[email protected]>
index 14dd666850b025a4583d9ada32de598c27ca66b1,5004bf0a05f2dc0c9e1eea84708ae9bd7accf408..0f917928eeb7782510f7b590d8e627a8b319795a
@@@ -525,7 -525,7 +525,7 @@@ void __init at91_add_device_lcdc(struc
        if (ARRAY_SIZE(lcdc_resources) > 2) {
                void __iomem *fb;
                struct resource *fb_res = &lcdc_resources[2];
 -              size_t fb_len = fb_res->end - fb_res->start + 1;
 +              size_t fb_len = resource_size(fb_res);
  
                fb = ioremap(fb_res->start, fb_len);
                if (fb) {
@@@ -1013,7 -1013,7 +1013,7 @@@ void __init at91_set_serial_console(uns
  {
        if (portnr < ATMEL_MAX_UART) {
                atmel_default_console_device = at91_uarts[portnr];
-               at91sam9261_set_console_clock(portnr);
+               at91sam9261_set_console_clock(at91_uarts[portnr]->id);
        }
  }
  
index 04bc123938fec8193e423d9c5eefa17a2bbabcb4,803bc6edfca477a6c67634f0ad9c435338b89502..bb4e084920b8e6612e2075e6cc66409eb94a9b47
@@@ -443,7 -443,7 +443,7 @@@ static struct platform_device usb1_host
        .resource       = usb1_host_resources,
  };
  
 -const static struct fb_videomode ap4evb_lcdc_modes[] = {
 +static const struct fb_videomode ap4evb_lcdc_modes[] = {
        {
  #ifdef CONFIG_AP4EVB_QHD
                .name           = "R63302(QHD)",
@@@ -913,7 -913,7 +913,7 @@@ static struct i2c_board_info imx074_inf
        I2C_BOARD_INFO("imx074", 0x1a),
  };
  
- struct soc_camera_link imx074_link = {
+ static struct soc_camera_link imx074_link = {
        .bus_id         = 0,
        .board_info     = &imx074_info,
        .i2c_adapter_id = 0,
index 6c700431e34aceabbebb3359092cd70ef83d09fc,c9ac2f8e8f648af54f08407c7f31fb85a4807d06..258682bc12784cf08914e252c4d05279ecdb7329
@@@ -107,7 -107,7 +107,7 @@@ void __init init_IRQ(void
  
        clk_enable(pclk);
  
 -      intc0.regs = ioremap(regs->start, regs->end - regs->start + 1);
 +      intc0.regs = ioremap(regs->start, resource_size(regs));
        if (!intc0.regs) {
                printk(KERN_EMERG "intc: failed to map registers (0x%08lx)\n",
                       (unsigned long)regs->start);
@@@ -167,14 -167,12 +167,12 @@@ static int intc_suspend(void
        return 0;
  }
  
- static int intc_resume(void)
+ static void intc_resume(void)
  {
        int i;
  
        for (i = 0; i < 64; i++)
                intc_writel(&intc0, INTPR0 + 4 * i, intc0.saved_ipr[i]);
-       return 0;
  }
  #else
  #define intc_suspend  NULL
index 95853386a6646965a4981841ccbcaef4a3a0a0f2,b3fd081d56f5fdfbb5ee650889a7a645b7598edb..2de8551df40fc2ab6fc9bd0570a6fe83bf9994bf
@@@ -283,23 -283,24 +283,24 @@@ static void __iomem *rio_regs_win
  #ifdef CONFIG_E500
  int fsl_rio_mcheck_exception(struct pt_regs *regs)
  {
-       const struct exception_table_entry *entry = NULL;
-       unsigned long reason = mfspr(SPRN_MCSR);
+       const struct exception_table_entry *entry;
+       unsigned long reason;
  
-       if (reason & MCSR_BUS_RBERR) {
-               reason = in_be32((u32 *)(rio_regs_win + RIO_LTLEDCSR));
-               if (reason & (RIO_LTLEDCSR_IER | RIO_LTLEDCSR_PRT)) {
-                       /* Check if we are prepared to handle this fault */
-                       entry = search_exception_tables(regs->nip);
-                       if (entry) {
-                               pr_debug("RIO: %s - MC Exception handled\n",
-                                        __func__);
-                               out_be32((u32 *)(rio_regs_win + RIO_LTLEDCSR),
-                                        0);
-                               regs->msr |= MSR_RI;
-                               regs->nip = entry->fixup;
-                               return 1;
-                       }
+       if (!rio_regs_win)
+               return 0;
+       reason = in_be32((u32 *)(rio_regs_win + RIO_LTLEDCSR));
+       if (reason & (RIO_LTLEDCSR_IER | RIO_LTLEDCSR_PRT)) {
+               /* Check if we are prepared to handle this fault */
+               entry = search_exception_tables(regs->nip);
+               if (entry) {
+                       pr_debug("RIO: %s - MC Exception handled\n",
+                                __func__);
+                       out_be32((u32 *)(rio_regs_win + RIO_LTLEDCSR),
+                                0);
+                       regs->msr |= MSR_RI;
+                       regs->nip = entry->fixup;
+                       return 1;
                }
        }
  
@@@ -1523,7 -1524,7 +1524,7 @@@ int fsl_rio_setup(struct platform_devic
        port->priv = priv;
        port->phys_efptr = 0x100;
  
 -      priv->regs_win = ioremap(regs.start, regs.end - regs.start + 1);
 +      priv->regs_win = ioremap(regs.start, resource_size(&regs));
        rio_regs_win = priv->regs_win;
  
        /* Probe the master port phy type */
index 0c2d94b94f0b3df696f5b69d8e2999ba4da963ad,0e358c2cffeb5e6bf1955ba6ca2c3de7092e03b3..6efc18b5e60af4e3ce202edb5e381fe2ab45c03e
@@@ -13,6 -13,8 +13,6 @@@
  #include <linux/oprofile.h>
  #include <linux/init.h>
  #include <linux/errno.h>
 -#include <linux/oprofile.h>
 -#include <linux/errno.h>
  #include <linux/fs.h>
  
  #include "../../../drivers/oprofile/oprof.h"
@@@ -23,7 -25,7 +23,7 @@@ extern void s390_backtrace(struct pt_re
  
  #include "hwsampler.h"
  
- #define DEFAULT_INTERVAL      4096
+ #define DEFAULT_INTERVAL      4127518
  
  #define DEFAULT_SDBT_BLOCKS   1
  #define DEFAULT_SDB_BLOCKS    511
@@@ -149,6 -151,12 +149,12 @@@ static int oprofile_hwsampler_init(stru
        if (oprofile_max_interval == 0)
                return -ENODEV;
  
+       /* The initial value should be sane */
+       if (oprofile_hw_interval < oprofile_min_interval)
+               oprofile_hw_interval = oprofile_min_interval;
+       if (oprofile_hw_interval > oprofile_max_interval)
+               oprofile_hw_interval = oprofile_max_interval;
        if (oprofile_timer_init(ops))
                return -ENODEV;
  
index f80478f36d56875887988390bbc2688f25f0baa9,513cb1a2e6c830bc2d25cf27cf485ff8b37c37f8..b24d69d509e7d7ccfe7e78454fca4014b5c286a4
@@@ -20,6 -20,7 +20,7 @@@
  #include <linux/io.h>
  #include <linux/delay.h>
  #include <linux/usb/r8a66597.h>
+ #include <linux/usb/renesas_usbhs.h>
  #include <linux/i2c.h>
  #include <linux/i2c/tsc2007.h>
  #include <linux/spi/spi.h>
@@@ -232,8 -233,54 +233,54 @@@ static struct platform_device usb1_comm
        .resource       = usb1_common_resources,
  };
  
+ /*
+  * USBHS
+  */
+ static int usbhs_get_id(struct platform_device *pdev)
+ {
+       return gpio_get_value(GPIO_PTB3);
+ }
+ static struct renesas_usbhs_platform_info usbhs_info = {
+       .platform_callback = {
+               .get_id         = usbhs_get_id,
+       },
+       .driver_param = {
+               .buswait_bwait          = 4,
+               .detection_delay        = 5,
+       },
+ };
+ static struct resource usbhs_resources[] = {
+       [0] = {
+               .start  = 0xa4d90000,
+               .end    = 0xa4d90124 - 1,
+               .flags  = IORESOURCE_MEM,
+       },
+       [1] = {
+               .start  = 66,
+               .end    = 66,
+               .flags  = IORESOURCE_IRQ,
+       },
+ };
+ static struct platform_device usbhs_device = {
+       .name   = "renesas_usbhs",
+       .id     = 1,
+       .dev = {
+               .dma_mask               = NULL,         /*  not use dma */
+               .coherent_dma_mask      = 0xffffffff,
+               .platform_data          = &usbhs_info,
+       },
+       .num_resources  = ARRAY_SIZE(usbhs_resources),
+       .resource       = usbhs_resources,
+       .archdata = {
+               .hwblk_id = HWBLK_USB1,
+       },
+ };
  /* LCDC */
 -const static struct fb_videomode ecovec_lcd_modes[] = {
 +static const struct fb_videomode ecovec_lcd_modes[] = {
        {
                .name           = "Panel",
                .xres           = 800,
        },
  };
  
 -const static struct fb_videomode ecovec_dvi_modes[] = {
 +static const struct fb_videomode ecovec_dvi_modes[] = {
        {
                .name           = "DVI",
                .xres           = 1280,
@@@ -897,6 -944,7 +944,7 @@@ static struct platform_device *ecovec_d
        &sh_eth_device,
        &usb0_host_device,
        &usb1_common_device,
+       &usbhs_device,
        &lcdc_device,
        &ceu0_device,
        &ceu1_device,
diff --combined arch/x86/kvm/mmu.c
index 9b9f012c16d116780a355fe6c6fb4e987217da80,aee38623b768edae62394fc09c64742f54b5b955..c7af6a76127ccd1295203d194dee55847a7f1fae
@@@ -22,6 -22,7 +22,6 @@@
  #include "mmu.h"
  #include "x86.h"
  #include "kvm_cache_regs.h"
 -#include "x86.h"
  
  #include <linux/kvm_host.h>
  #include <linux/types.h>
@@@ -564,7 -565,7 +564,7 @@@ gfn_to_memslot_dirty_bitmap(struct kvm_
  
  static bool mapping_level_dirty_bitmap(struct kvm_vcpu *vcpu, gfn_t large_gfn)
  {
-       return gfn_to_memslot_dirty_bitmap(vcpu, large_gfn, true);
+       return !gfn_to_memslot_dirty_bitmap(vcpu, large_gfn, true);
  }
  
  static int mapping_level(struct kvm_vcpu *vcpu, gfn_t large_gfn)
index cd0c44e398e335676690c5b4aae656a74fe1d2cb,ecd3d028076852b3ee8da36794bbac1c58a59157..d20168fe4c40a673301af4ea985c9c1f18e4ce72
@@@ -42,6 -42,7 +42,6 @@@
  #include <linux/bitops.h>
  #include <media/rc-core.h>
  #include <linux/pci_ids.h>
 -#include <linux/delay.h>
  
  #include "ite-cir.h"
  
@@@ -1346,6 -1347,7 +1346,7 @@@ static const struct ite_dev_params ite_
        {       /* 0: ITE8704 */
               .model = "ITE8704 CIR transceiver",
               .io_region_size = IT87_IOREG_LENGTH,
+              .io_rsrc_no = 0,
               .hw_tx_capable = true,
               .sample_period = (u32) (1000000000ULL / 115200),
               .tx_carrier_freq = 38000,
        {       /* 1: ITE8713 */
               .model = "ITE8713 CIR transceiver",
               .io_region_size = IT87_IOREG_LENGTH,
+              .io_rsrc_no = 0,
               .hw_tx_capable = true,
               .sample_period = (u32) (1000000000ULL / 115200),
               .tx_carrier_freq = 38000,
        {       /* 2: ITE8708 */
               .model = "ITE8708 CIR transceiver",
               .io_region_size = IT8708_IOREG_LENGTH,
+              .io_rsrc_no = 0,
               .hw_tx_capable = true,
               .sample_period = (u32) (1000000000ULL / 115200),
               .tx_carrier_freq = 38000,
        {       /* 3: ITE8709 */
               .model = "ITE8709 CIR transceiver",
               .io_region_size = IT8709_IOREG_LENGTH,
+              .io_rsrc_no = 2,
               .hw_tx_capable = true,
               .sample_period = (u32) (1000000000ULL / 115200),
               .tx_carrier_freq = 38000,
@@@ -1460,6 -1465,7 +1464,7 @@@ static int ite_probe(struct pnp_dev *pd
        struct rc_dev *rdev = NULL;
        int ret = -ENOMEM;
        int model_no;
+       int io_rsrc_no;
  
        ite_dbg("%s called", __func__);
  
  
        /* get the description for the device */
        dev_desc = &ite_dev_descs[model_no];
+       io_rsrc_no = dev_desc->io_rsrc_no;
  
        /* validate pnp resources */
-       if (!pnp_port_valid(pdev, 0) ||
-           pnp_port_len(pdev, 0) != dev_desc->io_region_size) {
+       if (!pnp_port_valid(pdev, io_rsrc_no) ||
+           pnp_port_len(pdev, io_rsrc_no) != dev_desc->io_region_size) {
                dev_err(&pdev->dev, "IR PNP Port not valid!\n");
                goto failure;
        }
        }
  
        /* store resource values */
-       itdev->cir_addr = pnp_port_start(pdev, 0);
+       itdev->cir_addr = pnp_port_start(pdev, io_rsrc_no);
        itdev->cir_irq = pnp_irq(pdev, 0);
  
        /* initialize spinlocks */
index e1ae5653d3b16228dff96bccb50d6b7424546cd1,d9471928369df378adf9c14f5134f0be53563f40..a45d8f098e02a200a52c05a4155866050bb15c6b
@@@ -2,10 -2,10 +2,10 @@@
   * The Capture code for Fujitsu M-5MOLS ISP
   *
   * Copyright (C) 2011 Samsung Electronics Co., Ltd.
-  * Author: HeungJun Kim[email protected]
+  * Author: HeungJun Kim <[email protected]>
   *
   * Copyright (C) 2009 Samsung Electronics Co., Ltd.
-  * Author: Dongsoo Nathaniel Kim[email protected]
+  * Author: Dongsoo Nathaniel Kim <[email protected]>
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU General Public License as published by
@@@ -22,6 -22,7 +22,6 @@@
  #include <linux/gpio.h>
  #include <linux/regulator/consumer.h>
  #include <linux/videodev2.h>
 -#include <linux/version.h>
  #include <media/v4l2-ctrls.h>
  #include <media/v4l2-device.h>
  #include <media/v4l2-subdev.h>
@@@ -57,9 -58,9 +57,9 @@@ static int m5mols_read_rational(struct 
  {
        u32 num, den;
  
-       int ret = m5mols_read(sd, addr_num, &num);
+       int ret = m5mols_read_u32(sd, addr_num, &num);
        if (!ret)
-               ret = m5mols_read(sd, addr_den, &den);
+               ret = m5mols_read_u32(sd, addr_den, &den);
        if (ret)
                return ret;
        *val = den == 0 ? 0 : num / den;
@@@ -98,20 -99,20 +98,20 @@@ static int m5mols_capture_info(struct m
        if (ret)
                return ret;
  
-       ret = m5mols_read(sd, EXIF_INFO_ISO, (u32 *)&exif->iso_speed);
+       ret = m5mols_read_u16(sd, EXIF_INFO_ISO, &exif->iso_speed);
        if (!ret)
-               ret = m5mols_read(sd, EXIF_INFO_FLASH, (u32 *)&exif->flash);
+               ret = m5mols_read_u16(sd, EXIF_INFO_FLASH, &exif->flash);
        if (!ret)
-               ret = m5mols_read(sd, EXIF_INFO_SDR, (u32 *)&exif->sdr);
+               ret = m5mols_read_u16(sd, EXIF_INFO_SDR, &exif->sdr);
        if (!ret)
-               ret = m5mols_read(sd, EXIF_INFO_QVAL, (u32 *)&exif->qval);
+               ret = m5mols_read_u16(sd, EXIF_INFO_QVAL, &exif->qval);
        if (ret)
                return ret;
  
        if (!ret)
-               ret = m5mols_read(sd, CAPC_IMAGE_SIZE, &info->cap.main);
+               ret = m5mols_read_u32(sd, CAPC_IMAGE_SIZE, &info->cap.main);
        if (!ret)
-               ret = m5mols_read(sd, CAPC_THUMB_SIZE, &info->cap.thumb);
+               ret = m5mols_read_u32(sd, CAPC_THUMB_SIZE, &info->cap.thumb);
        if (!ret)
                info->cap.total = info->cap.main + info->cap.thumb;
  
  int m5mols_start_capture(struct m5mols_info *info)
  {
        struct v4l2_subdev *sd = &info->sd;
-       u32 resolution = info->resolution;
+       u8 resolution = info->resolution;
        int timeout;
        int ret;
  
index bb17f798cb662723c5dc2544e0f2ca1260f87ebe,4d07c58444024c48dd2bb7859d7149da324e6d71..a647894d3a717a9307be0a0b1ad243012f7d25bf
@@@ -129,7 -129,7 +129,7 @@@ module_param(debug, bool, S_IRUGO)
  MODULE_PARM_DESC(debug, "Debug level (0-1)");
  
  /* list of image formats supported by OMAP2 video pipelines */
 -const static struct v4l2_fmtdesc omap_formats[] = {
 +static const struct v4l2_fmtdesc omap_formats[] = {
        {
                /* Note:  V4L2 defines RGB565 as:
                 *
@@@ -982,6 -982,14 +982,14 @@@ static int omap_vout_buffer_setup(struc
        startindex = (vout->vid == OMAP_VIDEO1) ?
                video1_numbuffers : video2_numbuffers;
  
+       /* Check the size of the buffer */
+       if (*size > vout->buffer_size) {
+               v4l2_err(&vout->vid_dev->v4l2_dev,
+                               "buffer allocation mismatch [%u] [%u]\n",
+                               *size, vout->buffer_size);
+               return -ENOMEM;
+       }
        for (i = startindex; i < *count; i++) {
                vout->buffer_size = *size;
  
@@@ -1228,6 -1236,14 +1236,14 @@@ static int omap_vout_mmap(struct file *
                                (vma->vm_pgoff << PAGE_SHIFT));
                return -EINVAL;
        }
+       /* Check the size of the buffer */
+       if (size > vout->buffer_size) {
+               v4l2_err(&vout->vid_dev->v4l2_dev,
+                               "insufficient memory [%lu] [%u]\n",
+                               size, vout->buffer_size);
+               return -ENOMEM;
+       }
        q->bufs[i]->baddr = vma->vm_start;
  
        vma->vm_flags |= VM_RESERVED;
@@@ -2391,7 -2407,7 +2407,7 @@@ static int __init omap_vout_create_vide
                /* Register the Video device with V4L2
                 */
                vfd = vout->vfd;
-               if (video_register_device(vfd, VFL_TYPE_GRABBER, k + 1) < 0) {
+               if (video_register_device(vfd, VFL_TYPE_GRABBER, -1) < 0) {
                        dev_err(&pdev->dev, ": Could not register "
                                        "Video for Linux device\n");
                        vfd->minor = -1;
index 147f28f1094688a2a04975b32bdd7f3922f9b08e,d4455ffbefd8a931317beaad43eefb563b10c62b..e8f6e65183d77d1a6eeb8d8137af21d57f07ca90
@@@ -1625,8 -1625,8 +1625,8 @@@ static void __vub300_command_response(s
                cmd->error = respretval;
        } else if (cmd->error) {
                /*
 -               * the error occured sending the command
 -               * or recieving the response
 +               * the error occurred sending the command
 +               * or receiving the response
                 */
        } else if (vub300->command_out_urb->status) {
                vub300->usb_transport_fail = vub300->command_out_urb->status;
@@@ -2096,7 -2096,7 +2096,7 @@@ static struct mmc_host_ops vub300_mmc_o
  static int vub300_probe(struct usb_interface *interface,
                        const struct usb_device_id *id)
  {                             /* NOT irq */
-       struct vub300_mmc_host *vub300 = NULL;
+       struct vub300_mmc_host *vub300;
        struct usb_host_interface *iface_desc;
        struct usb_device *udev = usb_get_dev(interface_to_usbdev(interface));
        int i;
        command_out_urb = usb_alloc_urb(0, GFP_KERNEL);
        if (!command_out_urb) {
                retval = -ENOMEM;
-               dev_err(&vub300->udev->dev,
-                       "not enough memory for the command_out_urb\n");
+               dev_err(&udev->dev, "not enough memory for command_out_urb\n");
                goto error0;
        }
        command_res_urb = usb_alloc_urb(0, GFP_KERNEL);
        if (!command_res_urb) {
                retval = -ENOMEM;
-               dev_err(&vub300->udev->dev,
-                       "not enough memory for the command_res_urb\n");
+               dev_err(&udev->dev, "not enough memory for command_res_urb\n");
                goto error1;
        }
        /* this also allocates memory for our VUB300 mmc host device */
        mmc = mmc_alloc_host(sizeof(struct vub300_mmc_host), &udev->dev);
        if (!mmc) {
                retval = -ENOMEM;
-               dev_err(&vub300->udev->dev,
-                       "not enough memory for the mmc_host\n");
+               dev_err(&udev->dev, "not enough memory for the mmc_host\n");
                goto error4;
        }
        /* MMC core transfer sizes tunable parameters */
diff --combined drivers/net/natsemi.c
index ab2862990a5bbab99b0ab407bd10a9f5dd3917f9,8f8b65af9ed5f9fcbb977d69294096dc51d66d12..68e6b0224eddbf166ea7dd464bfb643acb19ccc7
@@@ -2360,7 -2360,8 +2360,8 @@@ static void netdev_rx(struct net_devic
                                        PCI_DMA_FROMDEVICE);
                        } else {
                                pci_unmap_single(np->pci_dev, np->rx_dma[entry],
-                                       buflen, PCI_DMA_FROMDEVICE);
+                                                buflen + NATSEMI_PADDING,
+                                                PCI_DMA_FROMDEVICE);
                                skb_put(skb = np->rx_skbuff[entry], pkt_len);
                                np->rx_skbuff[entry] = NULL;
                        }
@@@ -2919,7 -2920,7 +2920,7 @@@ static int netdev_set_ecmd(struct net_d
  
        /*
         * If we're ignoring the PHY then autoneg and the internal
 -       * transciever are really not going to work so don't let the
 +       * transceiver are really not going to work so don't let the
         * user select them.
         */
        if (np->ignore_phy && (ecmd->autoneg == AUTONEG_ENABLE ||
diff --combined drivers/net/pxa168_eth.c
index df1292eb9c2e6862b43f2ea687d145dcc80dfe90,5f597ca592bb8bf94a80861de3d315bc1b3c2026..9018a2989e09e5b8d5ec7ef0362074a49fbb546a
@@@ -1273,7 -1273,7 +1273,7 @@@ static int pxa168_eth_start_xmit(struc
        wmb();
        wrl(pep, SDMA_CMD, SDMA_CMD_TXDH | SDMA_CMD_ERD);
  
-       stats->tx_bytes += skb->len;
+       stats->tx_bytes += length;
        stats->tx_packets++;
        dev->trans_start = jiffies;
        if (pep->tx_ring_size - pep->tx_desc_count <= 1) {
@@@ -1502,7 -1502,7 +1502,7 @@@ static int pxa168_eth_probe(struct plat
                err = -ENODEV;
                goto err_netdev;
        }
 -      pep->base = ioremap(res->start, res->end - res->start + 1);
 +      pep->base = ioremap(res->start, resource_size(res));
        if (pep->base == NULL) {
                err = -ENOMEM;
                goto err_netdev;
index 8c046aa0660d81fcf5e7062972ad24e6936be21c,2a20dabec76d722d1c311aad9e1e34a13382b6d2..303d92c4e0b8dc4bb5e95f69ad9468b45c7a9225
@@@ -3,7 -3,7 +3,7 @@@
   * Broadcom PCI-core driver
   *
   * Copyright 2005, Broadcom Corporation
 - * Copyright 2006, 2007, Michael Buesch <m[email protected]>
 + * Copyright 2006, 2007, Michael Buesch <m@bues.ch>
   *
   * Licensed under the GNU/GPL. See COPYING for details.
   */
@@@ -539,10 -539,12 +539,12 @@@ void ssb_pcicore_init(struct ssb_pcicor
        if (!pc->hostmode)
                ssb_pcicore_init_clientmode(pc);
  
-       /* Additional always once-executed workarounds */
-       ssb_pcicore_serdes_workaround(pc);
-       /* TODO: ASPM */
-       /* TODO: Clock Request Update */
+       /* Additional PCIe always once-executed workarounds */
+       if (dev->id.coreid == SSB_DEV_PCIE) {
+               ssb_pcicore_serdes_workaround(pc);
+               /* TODO: ASPM */
+               /* TODO: Clock Request Update */
+       }
  }
  
  static u32 ssb_pcie_read(struct ssb_pcicore *pc, u32 address)
index ee959032788eac2fe745ee195254af395b1dcfbc,70c2e7fa66643f7a7cdf040c62d74e977d7b9d1b..9062b9ce9b6ab3c54444d45db29f72dd0be0f0c5
@@@ -31,6 -31,7 +31,6 @@@
  #include <scsi/scsi_host.h>
  #include <scsi/scsi_device.h>
  #include <scsi/scsi_cmnd.h>
 -#include <scsi/scsi_tcq.h>
  
  #include <target/target_core_base.h>
  #include <target/target_core_transport.h>
@@@ -385,7 -386,7 +385,7 @@@ static int tcm_loop_device_reset(struc
         */
        se_cmd->se_tmr_req = core_tmr_alloc_req(se_cmd, (void *)tl_tmr,
                                TMR_LUN_RESET);
-       if (!se_cmd->se_tmr_req)
+       if (IS_ERR(se_cmd->se_tmr_req))
                goto release;
        /*
         * Locate the underlying TCM struct se_lun from sc->device->lun
@@@ -1016,6 -1017,7 +1016,7 @@@ static int tcm_loop_make_nexus
        struct se_portal_group *se_tpg;
        struct tcm_loop_hba *tl_hba = tl_tpg->tl_hba;
        struct tcm_loop_nexus *tl_nexus;
+       int ret = -ENOMEM;
  
        if (tl_tpg->tl_hba->tl_nexus) {
                printk(KERN_INFO "tl_tpg->tl_hba->tl_nexus already exists\n");
         * Initialize the struct se_session pointer
         */
        tl_nexus->se_sess = transport_init_session();
-       if (!tl_nexus->se_sess)
+       if (IS_ERR(tl_nexus->se_sess)) {
+               ret = PTR_ERR(tl_nexus->se_sess);
                goto out;
+       }
        /*
         * Since we are running in 'demo mode' this call with generate a
         * struct se_node_acl for the tcm_loop struct se_portal_group with the SCSI
  
  out:
        kfree(tl_nexus);
-       return -ENOMEM;
+       return ret;
  }
  
  static int tcm_loop_drop_nexus(
@@@ -1139,7 -1143,7 +1142,7 @@@ static ssize_t tcm_loop_tpg_store_nexus
         * the fabric protocol_id set in tcm_loop_make_scsi_hba(), and call
         * tcm_loop_make_nexus()
         */
-       if (strlen(page) > TL_WWN_ADDR_LEN) {
+       if (strlen(page) >= TL_WWN_ADDR_LEN) {
                printk(KERN_ERR "Emulated NAA Sas Address: %s, exceeds"
                                " max: %d\n", page, TL_WWN_ADDR_LEN);
                return -EINVAL;
@@@ -1320,7 -1324,7 +1323,7 @@@ struct se_wwn *tcm_loop_make_scsi_hba
        return ERR_PTR(-EINVAL);
  
  check_len:
-       if (strlen(name) > TL_WWN_ADDR_LEN) {
+       if (strlen(name) >= TL_WWN_ADDR_LEN) {
                printk(KERN_ERR "Emulated NAA %s Address: %s, exceeds"
                        " max: %d\n", name, tcm_loop_dump_proto_id(tl_hba),
                        TL_WWN_ADDR_LEN);
index 7c22062ad621204f1d06e9471a5ef24aa28fbdab,b2a106729d4914eca2c275adb956a944939d9b99..207124e995b94ffff67595f99e2bbde79910668c
@@@ -45,6 -45,7 +45,6 @@@
  #include <target/target_core_device.h>
  #include <target/target_core_tpg.h>
  #include <target/target_core_configfs.h>
 -#include <target/target_core_base.h>
  #include <target/target_core_tmr.h>
  #include <target/configfs_macros.h>
  
@@@ -93,29 -94,6 +93,6 @@@ void ft_dump_cmd(struct ft_cmd *cmd, co
                16, 4, cmd->cdb, MAX_COMMAND_SIZE, 0);
  }
  
- /*
-  * Get LUN from CDB.
-  */
- static int ft_get_lun_for_cmd(struct ft_cmd *cmd, u8 *lunp)
- {
-       u64 lun;
-       lun = lunp[1];
-       switch (lunp[0] >> 6) {
-       case 0:
-               break;
-       case 1:
-               lun |= (lunp[0] & 0x3f) << 8;
-               break;
-       default:
-               return -1;
-       }
-       if (lun >= TRANSPORT_MAX_LUNS_PER_TPG)
-               return -1;
-       cmd->lun = lun;
-       return transport_get_lun_for_cmd(&cmd->se_cmd, NULL, lun);
- }
  static void ft_queue_cmd(struct ft_sess *sess, struct ft_cmd *cmd)
  {
        struct se_queue_obj *qobj;
@@@ -417,6 -395,7 +394,7 @@@ static void ft_send_tm(struct ft_cmd *c
  {
        struct se_tmr_req *tmr;
        struct fcp_cmnd *fcp;
+       struct ft_sess *sess;
        u8 tm_func;
  
        fcp = fc_frame_payload_get(cmd->req_frame, sizeof(*fcp));
        switch (fcp->fc_tm_flags) {
        case FCP_TMF_LUN_RESET:
                tm_func = TMR_LUN_RESET;
-               if (ft_get_lun_for_cmd(cmd, fcp->fc_lun) < 0) {
-                       ft_dump_cmd(cmd, __func__);
-                       transport_send_check_condition_and_sense(&cmd->se_cmd,
-                               cmd->se_cmd.scsi_sense_reason, 0);
-                       ft_sess_put(cmd->sess);
-                       return;
-               }
                break;
        case FCP_TMF_TGT_RESET:
                tm_func = TMR_TARGET_WARM_RESET;
                return;
        }
        cmd->se_cmd.se_tmr_req = tmr;
+       switch (fcp->fc_tm_flags) {
+       case FCP_TMF_LUN_RESET:
+               cmd->lun = scsilun_to_int((struct scsi_lun *)fcp->fc_lun);
+               if (transport_get_lun_for_tmr(&cmd->se_cmd, cmd->lun) < 0) {
+                       /*
+                        * Make sure to clean up newly allocated TMR request
+                        * since "unable to  handle TMR request because failed
+                        * to get to LUN"
+                        */
+                       FT_TM_DBG("Failed to get LUN for TMR func %d, "
+                                 "se_cmd %p, unpacked_lun %d\n",
+                                 tm_func, &cmd->se_cmd, cmd->lun);
+                       ft_dump_cmd(cmd, __func__);
+                       sess = cmd->sess;
+                       transport_send_check_condition_and_sense(&cmd->se_cmd,
+                               cmd->se_cmd.scsi_sense_reason, 0);
+                       transport_generic_free_cmd(&cmd->se_cmd, 0, 1, 0);
+                       ft_sess_put(sess);
+                       return;
+               }
+               break;
+       case FCP_TMF_TGT_RESET:
+       case FCP_TMF_CLR_TASK_SET:
+       case FCP_TMF_ABT_TASK_SET:
+       case FCP_TMF_CLR_ACA:
+               break;
+       default:
+               return;
+       }
        transport_generic_handle_tmr(&cmd->se_cmd);
  }
  
@@@ -634,7 -636,8 +635,8 @@@ static void ft_send_cmd(struct ft_cmd *
  
        fc_seq_exch(cmd->seq)->lp->tt.seq_set_resp(cmd->seq, ft_recv_seq, cmd);
  
-       ret = ft_get_lun_for_cmd(cmd, fcp->fc_lun);
+       cmd->lun = scsilun_to_int((struct scsi_lun *)fcp->fc_lun);
+       ret = transport_get_lun_for_cmd(&cmd->se_cmd, NULL, cmd->lun);
        if (ret < 0) {
                ft_dump_cmd(cmd, __func__);
                transport_send_check_condition_and_sense(&cmd->se_cmd,
index b4433bec6934f6d5319b9e9df34c4cd6f3dac122,8c4a24077d9d701fc6902501f9ad9f53775c24b2..834a74ee557570f874f0b2bbe35befe5846fd376
@@@ -53,6 -53,7 +53,6 @@@
  #include <target/target_core_device.h>
  #include <target/target_core_tpg.h>
  #include <target/target_core_configfs.h>
 -#include <target/target_core_base.h>
  #include <target/configfs_macros.h>
  
  #include "tcm_fc.h"
@@@ -202,7 -203,7 +202,7 @@@ int ft_queue_data_in(struct se_cmd *se_
                        /* XXX For now, initiator will retry */
                        if (printk_ratelimit())
                                printk(KERN_ERR "%s: Failed to send frame %p, "
-                                               "xid <0x%x>, remaining <0x%x>, "
+                                               "xid <0x%x>, remaining %zu, "
                                                "lso_max <0x%x>\n",
                                                __func__, fp, ep->xid,
                                                remaining, lport->lso_max);
index 65d8ea09e3feabe803d6124a21279ef7cfaf9d1a,7491e21cc6ae4c35629614b687a424ac2917d87a..b41bfbd820fc071de42b7484c5d0ff5395e87300
  #include <target/target_core_device.h>
  #include <target/target_core_tpg.h>
  #include <target/target_core_configfs.h>
 -#include <target/target_core_base.h>
  #include <target/configfs_macros.h>
  
 -#include <scsi/libfc.h>
  #include "tcm_fc.h"
  
  static void ft_sess_delete_all(struct ft_tport *);
@@@ -227,7 -229,7 +227,7 @@@ static struct ft_sess *ft_sess_create(s
                return NULL;
  
        sess->se_sess = transport_init_session();
-       if (!sess->se_sess) {
+       if (IS_ERR(sess->se_sess)) {
                kfree(sess);
                return NULL;
        }
@@@ -330,7 -332,7 +330,7 @@@ void ft_sess_close(struct se_session *s
        lport = sess->tport->lport;
        port_id = sess->port_id;
        if (port_id == -1) {
-               mutex_lock(&ft_lport_lock);
+               mutex_unlock(&ft_lport_lock);
                return;
        }
        FT_SESS_DBG("port_id %x\n", port_id);
index afb974b48b33f0c43ad63900f034fa1faffa4b3a,f41b4259ecddea3e6fc49c858c77a070ba400bcc..cf35e0dc50854bbf536ab004243fdfcdb76f42c1
@@@ -743,7 -743,7 +743,7 @@@ pci_ni8430_setup(struct serial_private 
        len =  pci_resource_len(priv->dev, bar);
        p = ioremap_nocache(base, len);
  
 -      /* enable the transciever */
 +      /* enable the transceiver */
        writeb(readb(p + offset + NI8430_PORTCON) | NI8430_PORTCON_TXVR_ENABLE,
               p + offset + NI8430_PORTCON);
  
@@@ -973,7 -973,7 +973,7 @@@ ce4100_serial_setup(struct serial_priva
  
  static int
  pci_omegapci_setup(struct serial_private *priv,
-                     struct pciserial_board *board,
+                     const struct pciserial_board *board,
                      struct uart_port *port, int idx)
  {
        return setup_port(priv, port, 2, idx * 8, 0);
@@@ -994,6 -994,15 +994,15 @@@ static int skip_tx_en_setup(struct seri
        return pci_default_setup(priv, board, port, idx);
  }
  
+ static int pci_eg20t_init(struct pci_dev *dev)
+ {
+ #if defined(CONFIG_SERIAL_PCH_UART) || defined(CONFIG_SERIAL_PCH_UART_MODULE)
+       return -ENODEV;
+ #else
+       return 0;
+ #endif
+ }
  /* This should be in linux/pci_ids.h */
  #define PCI_VENDOR_ID_SBSMODULARIO    0x124B
  #define PCI_SUBVENDOR_ID_SBSMODULARIO 0x124B
@@@ -1446,6 -1455,56 +1455,56 @@@ static struct pci_serial_quirk pci_seri
                .init                   = pci_oxsemi_tornado_init,
                .setup          = pci_default_setup,
        },
+       {
+               .vendor         = PCI_VENDOR_ID_INTEL,
+               .device         = 0x8811,
+               .init           = pci_eg20t_init,
+       },
+       {
+               .vendor         = PCI_VENDOR_ID_INTEL,
+               .device         = 0x8812,
+               .init           = pci_eg20t_init,
+       },
+       {
+               .vendor         = PCI_VENDOR_ID_INTEL,
+               .device         = 0x8813,
+               .init           = pci_eg20t_init,
+       },
+       {
+               .vendor         = PCI_VENDOR_ID_INTEL,
+               .device         = 0x8814,
+               .init           = pci_eg20t_init,
+       },
+       {
+               .vendor         = 0x10DB,
+               .device         = 0x8027,
+               .init           = pci_eg20t_init,
+       },
+       {
+               .vendor         = 0x10DB,
+               .device         = 0x8028,
+               .init           = pci_eg20t_init,
+       },
+       {
+               .vendor         = 0x10DB,
+               .device         = 0x8029,
+               .init           = pci_eg20t_init,
+       },
+       {
+               .vendor         = 0x10DB,
+               .device         = 0x800C,
+               .init           = pci_eg20t_init,
+       },
+       {
+               .vendor         = 0x10DB,
+               .device         = 0x800D,
+               .init           = pci_eg20t_init,
+       },
+       {
+               .vendor         = 0x10DB,
+               .device         = 0x800D,
+               .init           = pci_eg20t_init,
+       },
        /*
         * Cronyx Omega PCI (PLX-chip based)
         */
index 9c8e56fd0ffe15cb86526407855005d669fa0d38,4e4833168087565215274dd1dab672628cd303b9..3e59035e6de8b4c0fc821a6e3c61eb9156c94f1a
@@@ -46,7 -46,6 +46,6 @@@
  #include <asm/system.h>
  #include <asm/unaligned.h>
  #include <asm/dma.h>
- #include <asm/cacheflush.h>
  
  #include "fsl_usb2_udc.h"
  
@@@ -118,6 -117,17 +117,17 @@@ static void (*_fsl_writel)(u32 v, unsig
  #define fsl_readl(p)          (*_fsl_readl)((p))
  #define fsl_writel(v, p)      (*_fsl_writel)((v), (p))
  
+ static inline void fsl_set_accessors(struct fsl_usb2_platform_data *pdata)
+ {
+       if (pdata->big_endian_mmio) {
+               _fsl_readl = _fsl_readl_be;
+               _fsl_writel = _fsl_writel_be;
+       } else {
+               _fsl_readl = _fsl_readl_le;
+               _fsl_writel = _fsl_writel_le;
+       }
+ }
  static inline u32 cpu_to_hc32(const u32 x)
  {
        return udc_controller->pdata->big_endian_desc
@@@ -132,6 -142,8 +142,8 @@@ static inline u32 hc32_to_cpu(const u3
                : le32_to_cpu((__force __le32)x);
  }
  #else /* !CONFIG_PPC32 */
+ static inline void fsl_set_accessors(struct fsl_usb2_platform_data *pdata) {}
  #define fsl_readl(addr)               readl(addr)
  #define fsl_writel(val32, addr) writel(val32, addr)
  #define cpu_to_hc32(x)                cpu_to_le32(x)
@@@ -1277,6 -1289,11 +1289,11 @@@ static int ep0_prime_status(struct fsl_
        req->req.complete = NULL;
        req->dtd_count = 0;
  
+       req->req.dma = dma_map_single(ep->udc->gadget.dev.parent,
+                       req->req.buf, req->req.length,
+                       ep_is_in(ep) ? DMA_TO_DEVICE : DMA_FROM_DEVICE);
+       req->mapped = 1;
        if (fsl_req_to_dtd(req) == 0)
                fsl_queue_td(ep, req);
        else
@@@ -1348,9 -1365,6 +1365,6 @@@ static void ch9getstatus(struct fsl_ud
        /* Fill in the reqest structure */
        *((u16 *) req->req.buf) = cpu_to_le16(tmp);
  
-       /* flush cache for the req buffer */
-       flush_dcache_range((u32)req->req.buf, (u32)req->req.buf + 8);
        req->ep = ep;
        req->req.length = 2;
        req->req.status = -EINPROGRESS;
        req->req.complete = NULL;
        req->dtd_count = 0;
  
+       req->req.dma = dma_map_single(ep->udc->gadget.dev.parent,
+                               req->req.buf, req->req.length,
+                               ep_is_in(ep) ? DMA_TO_DEVICE : DMA_FROM_DEVICE);
+       req->mapped = 1;
        /* prime the data phase */
        if ((fsl_req_to_dtd(req) == 0))
                fsl_queue_td(ep, req);
@@@ -2354,7 -2373,6 +2373,6 @@@ static int __init struct_udc_setup(stru
                        struct fsl_req, req);
        /* allocate a small amount of memory to get valid address */
        udc->status_req->req.buf = kmalloc(8, GFP_KERNEL);
-       udc->status_req->req.dma = virt_to_phys(udc->status_req->req.buf);
  
        udc->resume_state = USB_STATE_NOTATTACHED;
        udc->usb_state = USB_STATE_POWERED;
@@@ -2445,7 -2463,7 +2463,7 @@@ static int __init fsl_udc_probe(struct 
        }
  
        if (pdata->operating_mode == FSL_USB2_DR_DEVICE) {
 -              if (!request_mem_region(res->start, res->end - res->start + 1,
 +              if (!request_mem_region(res->start, resource_size(res),
                                        driver_name)) {
                        ERR("request mem region for %s failed\n", pdev->name);
                        ret = -EBUSY;
        }
  
        /* Set accessors only after pdata->init() ! */
-       if (pdata->big_endian_mmio) {
-               _fsl_readl = _fsl_readl_be;
-               _fsl_writel = _fsl_writel_be;
-       } else {
-               _fsl_readl = _fsl_readl_le;
-               _fsl_writel = _fsl_writel_le;
-       }
+       fsl_set_accessors(pdata);
  
  #ifndef CONFIG_ARCH_MXC
        if (pdata->have_sysif_regs)
@@@ -2593,7 -2605,7 +2605,7 @@@ err_iounmap_noclk
        iounmap(dr_regs);
  err_release_mem_region:
        if (pdata->operating_mode == FSL_USB2_DR_DEVICE)
 -              release_mem_region(res->start, res->end - res->start + 1);
 +              release_mem_region(res->start, resource_size(res));
  err_kfree:
        kfree(udc_controller);
        udc_controller = NULL;
@@@ -2628,7 -2640,7 +2640,7 @@@ static int __exit fsl_udc_remove(struc
        free_irq(udc_controller->irq, udc_controller);
        iounmap(dr_regs);
        if (pdata->operating_mode == FSL_USB2_DR_DEVICE)
 -              release_mem_region(res->start, res->end - res->start + 1);
 +              release_mem_region(res->start, resource_size(res));
  
        device_unregister(&udc_controller->gadget.dev);
        /* free udc --wait for the release() finished */
index eab3d7059fbe83f17ba5850703ddab93deefcec7,aa248c2f2c60d6a7de7996e48fa0ecffc1691519..4d2e88d04dab318a8210f88fe7001f42cc10f3c1
@@@ -44,7 -44,6 +44,6 @@@ static int ehci_ath79_init(struct usb_h
        struct ehci_hcd *ehci = hcd_to_ehci(hcd);
        struct platform_device *pdev = to_platform_device(hcd->self.controller);
        const struct platform_device_id *id;
-       int hclength;
        int ret;
  
        id = platform_get_device_id(pdev);
                return -EINVAL;
        }
  
-       hclength = HC_LENGTH(ehci, ehci_readl(ehci, &ehci->caps->hc_capbase));
        switch (id->driver_data) {
        case EHCI_ATH79_IP_V1:
                ehci->has_synopsys_hc_bug = 1;
  
                ehci->caps = hcd->regs;
-               ehci->regs = hcd->regs + hclength;
+               ehci->regs = hcd->regs +
+                       HC_LENGTH(ehci,
+                                 ehci_readl(ehci, &ehci->caps->hc_capbase));
                break;
  
        case EHCI_ATH79_IP_V2:
                hcd->has_tt = 1;
  
                ehci->caps = hcd->regs + 0x100;
-               ehci->regs = hcd->regs + 0x100 + hclength;
+               ehci->regs = hcd->regs + 0x100 +
+                       HC_LENGTH(ehci,
+                                 ehci_readl(ehci, &ehci->caps->hc_capbase));
                break;
  
        default:
@@@ -146,7 -148,7 +148,7 @@@ static int ehci_ath79_probe(struct plat
                return -ENOMEM;
  
        hcd->rsrc_start = res->start;
 -      hcd->rsrc_len   = res->end - res->start + 1;
 +      hcd->rsrc_len   = resource_size(res);
  
        if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) {
                dev_dbg(&pdev->dev, "controller already in use\n");
index ad41f508b423a8ad1d04831227ec1ba1454b18b8,d7aaec5667bfd6ca1e1407e52c8c503577339405..44bdce4242ad0a8d48e09ae6c1b94481fb602de5
@@@ -248,10 -248,6 +248,6 @@@ static int atyfb_sync(struct fb_info *i
  
  static int aty_init(struct fb_info *info);
  
- #ifdef CONFIG_ATARI
- static int store_video_par(char *videopar, unsigned char m64_num);
- #endif
  static void aty_get_crtc(const struct atyfb_par *par, struct crtc *crtc);
  
  static void aty_set_crtc(const struct atyfb_par *par, const struct crtc *crtc);
@@@ -2268,11 -2264,13 +2264,13 @@@ error
        return;
  }
  
+ #ifdef CONFIG_PCI
  static void aty_bl_exit(struct backlight_device *bd)
  {
        backlight_device_unregister(bd);
        printk("aty: Backlight unloaded\n");
  }
+ #endif /* CONFIG_PCI */
  
  #endif /* CONFIG_FB_ATY_BACKLIGHT */
  
@@@ -2789,7 -2787,7 +2787,7 @@@ aty_init_exit
        return ret;
  }
  
- #ifdef CONFIG_ATARI
+ #if defined(CONFIG_ATARI) && !defined(MODULE)
  static int __devinit store_video_par(char *video_str, unsigned char m64_num)
  {
        char *p;
        phys_vmembase[m64_num] = 0;
        return -1;
  }
- #endif /* CONFIG_ATARI */
+ #endif /* CONFIG_ATARI && !MODULE */
  
  /*
   * Blank the display.
@@@ -3460,10 -3458,9 +3458,10 @@@ static int __devinit atyfb_setup_generi
  
        raddr = addr + 0x7ff000UL;
        rrp = &pdev->resource[2];
 -      if ((rrp->flags & IORESOURCE_MEM) && request_mem_region(rrp->start, rrp->end - rrp->start + 1, "atyfb")) {
 +      if ((rrp->flags & IORESOURCE_MEM) &&
 +          request_mem_region(rrp->start, resource_size(rrp), "atyfb")) {
                par->aux_start = rrp->start;
 -              par->aux_size = rrp->end - rrp->start + 1;
 +              par->aux_size = resource_size(rrp);
                raddr = rrp->start;
                PRINTKI("using auxiliary register aperture\n");
        }
@@@ -3553,7 -3550,7 +3551,7 @@@ static int __devinit atyfb_pci_probe(st
  
        /* Reserve space */
        res_start = rp->start;
 -      res_size = rp->end - rp->start + 1;
 +      res_size = resource_size(rp);
        if (!request_mem_region(res_start, res_size, "atyfb"))
                return -EBUSY;
  
diff --combined drivers/video/udlfb.c
index 14b152a99d13d123f1aeee33e9b93003f47606ff,816a4fda04f5b9c0637721054a5c7aba1a456932..087fc9960bb9bbb2d1b60136631f815dd2325685
@@@ -29,6 -29,7 +29,6 @@@
  #include <linux/slab.h>
  #include <linux/prefetch.h>
  #include <linux/delay.h>
 -#include <linux/prefetch.h>
  #include <video/udlfb.h>
  #include "edid.h"
  
@@@ -1232,8 -1233,12 +1232,12 @@@ static int dlfb_setup_modes(struct dlfb
                        if (dlfb_is_valid_mode(&info->monspecs.modedb[i], info))
                                fb_add_videomode(&info->monspecs.modedb[i],
                                        &info->modelist);
-                       else /* if we've removed top/best mode */
-                               info->monspecs.misc &= ~FB_MISC_1ST_DETAIL;
+                       else {
+                               if (i == 0)
+                                       /* if we've removed top/best mode */
+                                       info->monspecs.misc
+                                               &= ~FB_MISC_1ST_DETAIL;
+                       }
                }
  
                default_vmode = fb_find_best_display(&info->monspecs,
diff --combined include/linux/fs.h
index 450ca245df842ec722ee254069b64673703d1c0a,b5b979247863718f10da2764b3eab280a3005e9f..6c75193bf9a9fe3d8af50a837505a553604435f4
@@@ -376,6 -376,7 +376,6 @@@ struct inodes_stat_t 
  
  #include <linux/linkage.h>
  #include <linux/wait.h>
 -#include <linux/types.h>
  #include <linux/kdev_t.h>
  #include <linux/dcache.h>
  #include <linux/path.h>
@@@ -638,6 -639,7 +638,7 @@@ struct address_space 
        struct prio_tree_root   i_mmap;         /* tree of private and shared mappings */
        struct list_head        i_mmap_nonlinear;/*list VM_NONLINEAR mappings */
        struct mutex            i_mmap_mutex;   /* protect tree, count, list */
+       /* Protected by tree_lock together with the radix tree */
        unsigned long           nrpages;        /* number of total pages */
        pgoff_t                 writeback_index;/* writeback starts here */
        const struct address_space_operations *a_ops;   /* methods */
@@@ -743,7 -745,7 +744,7 @@@ struct inode 
  
        spinlock_t              i_lock; /* i_blocks, i_bytes, maybe i_size */
        unsigned int            i_flags;
-       unsigned int            i_state;
+       unsigned long           i_state;
  #ifdef CONFIG_SECURITY
        void                    *i_security;
  #endif
diff --combined kernel/exit.c
index 07dc154fc79946137c8be801ae80539a7fe7e3b8,f2b321bae44037c08d4b09b90b8610a80b979eb7..14c9b63a96c3af9d2e75c1e9d7bf7a42c951e0e7
@@@ -85,6 -85,7 +85,6 @@@ static void __exit_signal(struct task_s
        struct tty_struct *uninitialized_var(tty);
  
        sighand = rcu_dereference_check(tsk->sighand,
 -                                      rcu_read_lock_held() ||
                                        lockdep_tasklist_lock_is_held());
        spin_lock(&sighand->siglock);
  
@@@ -560,29 -561,28 +560,28 @@@ void exit_files(struct task_struct *tsk
  
  #ifdef CONFIG_MM_OWNER
  /*
-  * Task p is exiting and it owned mm, lets find a new owner for it
+  * A task is exiting.   If it owned this mm, find a new owner for the mm.
   */
- static inline int
- mm_need_new_owner(struct mm_struct *mm, struct task_struct *p)
- {
-       /*
-        * If there are other users of the mm and the owner (us) is exiting
-        * we need to find a new owner to take on the responsibility.
-        */
-       if (atomic_read(&mm->mm_users) <= 1)
-               return 0;
-       if (mm->owner != p)
-               return 0;
-       return 1;
- }
  void mm_update_next_owner(struct mm_struct *mm)
  {
        struct task_struct *c, *g, *p = current;
  
  retry:
-       if (!mm_need_new_owner(mm, p))
+       /*
+        * If the exiting or execing task is not the owner, it's
+        * someone else's problem.
+        */
+       if (mm->owner != p)
                return;
+       /*
+        * The current owner is exiting/execing and there are no other
+        * candidates.  Do not leave the mm pointing to a possibly
+        * freed task structure.
+        */
+       if (atomic_read(&mm->mm_users) <= 1) {
+               mm->owner = NULL;
+               return;
+       }
  
        read_lock(&tasklist_lock);
        /*
diff --combined kernel/sched.c
index 71e5a25a8a58c78c7a78c39061796e58e7218315,9769c756ad6650734f9f038db30064d1c38232f5..ad8ab90bb3016efadfd210d929f82b212aaa79ce
@@@ -292,8 -292,8 +292,8 @@@ static DEFINE_SPINLOCK(task_group_lock)
   * (The default weight is 1024 - so there's no practical
   *  limitation from this.)
   */
- #define MIN_SHARES    2
- #define MAX_SHARES    (1UL << (18 + SCHED_LOAD_RESOLUTION))
+ #define MIN_SHARES    (1UL <<  1)
+ #define MAX_SHARES    (1UL << 18)
  
  static int root_task_group_load = ROOT_TASK_GROUP_LOAD;
  #endif
@@@ -581,6 -581,7 +581,6 @@@ static inline int cpu_of(struct rq *rq
  
  #define rcu_dereference_check_sched_domain(p) \
        rcu_dereference_check((p), \
 -                            rcu_read_lock_held() || \
                              lockdep_is_held(&sched_domains_mutex))
  
  /*
@@@ -8449,10 -8450,7 +8449,7 @@@ int sched_group_set_shares(struct task_
        if (!tg->se[0])
                return -EINVAL;
  
-       if (shares < MIN_SHARES)
-               shares = MIN_SHARES;
-       else if (shares > MAX_SHARES)
-               shares = MAX_SHARES;
+       shares = clamp(shares, scale_load(MIN_SHARES), scale_load(MAX_SHARES));
  
        mutex_lock(&shares_mutex);
        if (tg->shares == shares)
diff --combined sound/atmel/abdac.c
index 30468b31cad8e81ab239344624d35c08c8564d33,bfee60c4d4c0e21386a39982f020350b446c4835..6fd9391b3a6cd1c4aeb60d791effd9edd985ac18
@@@ -448,7 -448,7 +448,7 @@@ static int __devinit atmel_abdac_probe(
                goto out_free_card;
        }
  
 -      dac->regs = ioremap(regs->start, regs->end - regs->start + 1);
 +      dac->regs = ioremap(regs->start, resource_size(regs));
        if (!dac->regs) {
                dev_dbg(&pdev->dev, "could not remap register memory\n");
                goto out_free_card;
@@@ -599,4 -599,4 +599,4 @@@ module_exit(atmel_abdac_exit)
  
  MODULE_LICENSE("GPL");
  MODULE_DESCRIPTION("Driver for Atmel Audio Bitstream DAC (ABDAC)");
- MODULE_AUTHOR("Hans-Christian Egtvedt <[email protected]>");
+ MODULE_AUTHOR("Hans-Christian Egtvedt <[email protected]>");
diff --combined sound/atmel/ac97c.c
index 41b901bde5c7e523aa0fefb815718c270646f745,ac35222ad0dd21993f0bd9d89a070ed3fa5fa329..6e5addeb236b49595ea563e7525d5a262a32e295
@@@ -971,7 -971,7 +971,7 @@@ static int __devinit atmel_ac97c_probe(
        chip->card = card;
        chip->pclk = pclk;
        chip->pdev = pdev;
 -      chip->regs = ioremap(regs->start, regs->end - regs->start + 1);
 +      chip->regs = ioremap(regs->start, resource_size(regs));
  
        if (!chip->regs) {
                dev_dbg(&pdev->dev, "could not remap register memory\n");
@@@ -1199,4 -1199,4 +1199,4 @@@ module_exit(atmel_ac97c_exit)
  
  MODULE_LICENSE("GPL");
  MODULE_DESCRIPTION("Driver for Atmel AC97 controller");
- MODULE_AUTHOR("Hans-Christian Egtvedt <[email protected]>");
+ MODULE_AUTHOR("Hans-Christian Egtvedt <[email protected]>");
This page took 0.256588 seconds and 4 git commands to generate.