Download project files

How do I verify a download?


110 of 11 releases

11.05-final release from the 11.05 series released 2011-05-27

Release information
Release notes:

The Linaro Kernel Working Group (KWG) is excited to announce the
availability our May 2011 development snapshot: linux-linaro-11.05-2.6.38

The source tarball is available at:
  https://launchpad.net/linux-linaro/11.05/11.05-final/+download/linux-linaro-11.05-2.6.38.tar.bz2

The kernel sources can also be accessed using git at:
  git://git.linaro.org/kernel/linux-linaro-2.6.38.git
  tag: linaro-11.05-2.6.38

A pre-packaged kernel for OMAP boards is avialable is available at:
  https://launchpad.net/~linaro-maintainers/+archive/kernel/+files/linux-image-2.6.38-1003-linaro-omap_2.6.38-1003.4~ppa5_armel.deb

This is the first of a new monthly series of development snapshots from
the KWG that will provide a way for developers to work with the Linaro
kernels without needing to follow th...

Changelog:

See CHANGELOG-linux-linaro-11.05-2.6.38 file in download list above.

File Description Downloads
download icon linux-linaro-11.05-2.6.38.tar.bz2 (md5) Linaro 11.05 Kernel Release 1,152
last downloaded 5 weeks ago
download icon CHANGELOG-linux-linaro-11.05-2.6.38 (md5) Kernel Change Log vs 2.6.38.7 484
last downloaded 11 weeks ago
Total downloads: 1,636

3.3-rc3-2012.02 release from the 3.3 series released 2012-02-16

Release information
Release notes:

The Linaro Kernel Working Group (KWG) and the Linaro Platform
Group are excited to announce the availability our February 2012
development snapshot:

linux-linaro-3.3-rc3-2012.02-1

As the word "snapshot" implies, these are meant as development kernels
and have not been fully validated. You should expect issues and to help
us deliver a better kernel in the future, please file bugs in Launchpad at
https://bugs.launchpad.net/linux-linaro.

We are excited about our first -rc based kernel as we move to a new
process that will provide early access to more bleeding edge features
on member-supported LEBs.

The source tarball is available at:
 http://launchpad.net/linux-linaro/3.3/3.3-rc3-2012.02/+download/linux-linaro-3.3-rc3-2012.02-1.tar.bz2

The kernel sources can also be accessed using g...

Changelog:

commit 49561d58a14351d136518f25bd686f9a6ca41b69
Author: Avik Sil <email address hidden>
Date: Wed Feb 15 17:06:50 2012 +0530

    Perf: Fallback to /bin/more if less is not found for perf pager

    Signed-off-by: Avik Sil <email address hidden>
    Signed-off-by: Andrey Konovalov <email address hidden>

commit 1259fb203caf0e9466127a51e5245db238ae4d50
Author: Grant Likely <email address hidden>
Date: Mon Oct 24 11:09:15 2011 +0200

    dt: Linux dt usage model documentation

    v2: 2nd draft
     - Editorial cleanups from Randy Dunlap

    Signed-off-by: Grant Likely <email address hidden>

commit 083c32bf6bed0772a8dfbf9029e74240f73f37af
Author: Grant Likely <email address hidden>
Date: Mon Oct 24 11:09:12 2011 +0200

    arm/dt: vexpress: add basic DT platform matching support

    This patch adds a DT match table to the Versatile Express machine
    description in order to enable basic device tree support.

    Tested on a Versatile Express board where the device tree blob is
    passed to the kernel by u-boot.

    Signed-off-by: Lorenzo Pieralisi <email address hidden>
    [converted .dts file to use skeleton.dtsi, and added 'dtbs' targets]
    Signed-off-by: Grant Likely <email address hidden>

    Conflicts:

     arch/arm/mach-vexpress/v2m.c

commit 5061f67e57f9deb1df574be663ec36e05aef2830
Author: Grant Likely <email address hidden>
Date: Mon Oct 24 11:09:11 2011 +0200

    arm/dt: Add basic device tree support for mx51 and mx53 boards

    This patch add support for the Genesi Efika MX Smarttop and Smartbook,
    the Freescale mx51 babbage board, and the Freescale mx53 loco board

    Signed-off-by: Jason Liu <email address hidden>
    Signed-off-by: Grant Likely <email address hidden>

    Conflicts:

     arch/arm/mach-imx/mach-mx51_babbage.c
     arch/arm/mach-imx/mach-mx51_efikamx.c
     arch/arm/mach-imx/mach-mx51_efikasb.c
     arch/arm/mach-imx/mach-mx53_loco.c
     arch/arm/mach-mx5/Makefile.boot

commit 7bf3d757f27330f778130508a506b5f4eefbc41c
Author: Andrey Konovalov <email address hidden>
Date: Fri Jan 6 23:12:42 2012 +0400

    arm/dt: Add basic device tree support for smdkv310 board

    Enable basic device tree support for Exynos4 smdkv310 board.

    Signed-off-by: Thomas Abraham <email address hidden>
    Signed-off-by: Grant Likely <email address hidden>

    Conflicts:

     arch/arm/mach-exynos/mach-smdkv310.c

commit 4669ffe99ac3ef6df4cdf65f34ffb2c1d69e7ae2
Author: Grant Likely <email address hidden>
Date: Mon Oct 24 11:09:10 2011 +0200

    arm/dt: omap3 basic device tree board support

    Enable basic device tree support for the Gumstix Overo, IGEP, Panda
    and Beagle OMAP boards

    Signed-off-by: Andy Doan <email address hidden>
    Signed-off-by: Jon Medhurst <email address hidden>
    Signed-off-by: Grant Likely <email address hidden>

    Conflicts:

     arch/arm/mach-omap2/board-igep0020.c
     arch/arm/mach-omap2/board-omap3beagle.c
     arch/arm/mach-omap2/board-omap4panda.c
     arch/arm/mach-omap2/board-overo.c

commit 250b766cfdf6fc7a678e459702a2db6b2db8de27
Author: Shawn Guo <email address hidden>
Date: Mon Oct 24 11:09:07 2011 +0200

    arm/dt: add versatile dtb build rules

    Makes 'make dtbs' build the versatile .dtb files when versatile is enabled.

    Signed-off-by: Grant Likely <email address hidden>

commit 6d21aa69fdbc8ba4b19f7cb1330906e56d74c688
Author: John Bonesio <email address hidden>
Date: Mon Oct 24 11:09:06 2011 +0200

    dt: Add id to AUXDATA structure

    This patch adds the ability to set the device id in the AUXDATA structure for
    those few device drivers that just have to have a statically defined device id.

    Signed-off-by: John Bonesio <email address hidden>
    Signed-off-by: Grant Likely <email address hidden>

commit dbc75ed3f60be4c61fe67a325f4df41da542c0cc
Author: Grant Likely <email address hidden>
Date: Thu Jan 26 14:10:13 2012 -0700

    irq_domain/microblaze: Convert microblaze to use irq_domains

    This patch converts Microblaze to use the irq_domain remapper and get
    away from hard coding the offset between hwirq number and the linux irq
    number space. This also paves the way for multiple interrupt controllers.

    v2: Don't enable SPARSE_IRQ and keep NR_IRQS set to 33

    Signed-off-by: Grant Likely <email address hidden>
    Signed-off-by: Michal Simek <email address hidden>
    Cc: Rob Herring <email address hidden>
    Cc: John Williams <email address hidden>
    Cc: John Linn <email address hidden>

commit 8e81fde616a20d4918dc0a145abfab2fa1c55ab0
Author: Grant Likely <email address hidden>
Date: Tue Jan 24 17:09:13 2012 -0700

    irq_domain/powerpc: Replace custom xlate functions with library functions

    This patch converts a number of the powerpc drivers to use the common library
    of irq_domain xlate functions, dropping a bunch of lines in the process.

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Rob Herring <email address hidden>
    Cc: Benjamin Herrenschmidt <email address hidden>
    Cc: Thomas Gleixner <email address hidden>
    Cc: Milton Miller <email address hidden>
    Tested-by: Olof Johansson <email address hidden>

commit d86b40cc9e6e0c522f53ecbb65a0fec85f5d1668
Author: Grant Likely <email address hidden>
Date: Thu Jan 26 12:24:34 2012 -0700

    irq_domain/powerpc: constify irq_domain_ops

    Make all the irq_domain_ops structures in powerpc 'static const'

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Benjamin Herrenschmidt <email address hidden>
    Cc: Thomas Gleixner <email address hidden>
    Cc: Milton Miller <email address hidden>
    Tested-by: Olof Johansson <email address hidden>

commit ac92dc778e7e9443bc642842a4c9680519878b65
Author: Grant Likely <email address hidden>
Date: Thu Jan 26 08:40:09 2012 -0700

    irq_domain/c6x: Use library of xlate functions

    The c6x irq controllers don't need to define custom .xlate hooks

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Rob Herring <email address hidden>
    Cc: Mark Salter <email address hidden>
    Cc: Thomas Gleixner <email address hidden>

commit 2cc50d6b124a3e3da92d8a496cb0a12ad5cd404d
Author: Grant Likely <email address hidden>
Date: Thu Jan 26 12:25:18 2012 -0700

    irq_domain/c6x: constify irq_domain structures

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Mark Salter <email address hidden>
    Cc: Thomas Gleixner <email address hidden>

commit e1396063ae58b023b404796ec3916f9a6ee65fff
Author: Mark Salter <email address hidden>
Date: Thu Jan 26 09:26:21 2012 -0500

    irq_domain/c6x: Convert c6x to use generic irq_domain support.

    The C6X IRQ support was copied almost verbatim from the PowerPC virtual IRQ
    code. The PowerPC code was used as the basis for generic irq_domain support,
    so this patch mostly copies what what done to arch/powerpc by Grant Likely
    in his irq_domain patch series.

    Signed-off-by: Mark Salter <email address hidden>
    Signed-off-by: Grant Likely <email address hidden>
    Cc: Aurelien Jacquiot <email address hidden>
    Cc: Thomas Gleixner <email address hidden>

commit a2b6f17d92da58d5959be08d437000ac295067b9
Author: Grant Likely <email address hidden>
Date: Thu Jan 26 12:12:14 2012 -0700

    irq_domain: constify irq_domain_ops

    Make irq_domain_ops pointer a constant to make it safer for multiple
    instances to share the same ops pointer and change the irq_domain code
    so that it does not modify the ops.

    v4: Fix mismatched type reference in powerpc code

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Thomas Gleixner <email address hidden>
    Cc: Benjamin Herrenschmidt <email address hidden>
    Cc: Milton Miller <email address hidden>
    Tested-by: Olof Johansson <email address hidden>

commit 0ab8797bfe0d916c6866cbf05ca2f91e3333682d
Author: Grant Likely <email address hidden>
Date: Thu Jan 26 11:26:52 2012 -0700

    irq_domain: Create common xlate functions that device drivers can use

    Rather than having each interrupt controller driver creating its own barely
    unique .xlate function for irq_domain, create a library of translators which
    any driver can use directly.

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Rob Herring <email address hidden>
    Cc: Benjamin Herrenschmidt <email address hidden>
    Cc: Mark Salter <email address hidden>
    Cc: Thomas Gleixner <email address hidden>
    Cc: Milton Miller <email address hidden>
    Tested-by: Olof Johansson <email address hidden>

commit d35d055c2bf436dac8870d995117ab5ff011c2c9
Author: Grant Likely <email address hidden>
Date: Tue Jan 10 17:09:30 2012 -0700

    irq_domain: Remove irq_domain_add_simple()

    irq_domain_add_simple() was a stop-gap measure until complete irq_domain
    support was complete. This patch removes the irq_domain_add_simple()
    interface.

    This patch also drops the explicit irq_domain initialization performed
    by the mach-versatile code because the versatile interrupt controller
    already has irq_domain support built into it. This was a bug that was
    hanging around quietly for a while, but with the full irq_domain which
    actually verifies that irq_domain ranges are available it would cause
    the registration to fail and the system wouldn't boot.

    v4: Fixed number of irqs in mx5 gpio code
    v2: Updated to pass in host_data pointer on irq_domain allocation.

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Rob Herring <email address hidden>
    Cc: Thomas Gleixner <email address hidden>
    Cc: Milton Miller <email address hidden>
    Cc: Russell King <email address hidden>
    Tested-by: Olof Johansson <email address hidden>

commit c1ad45e011d71f6b613e299843ab91f0ad9f27a9
Author: Grant Likely <email address hidden>
Date: Wed Jan 11 10:29:05 2012 -0700

    irq_domain: Remove 'new' irq_domain in favour of the ppc one

    This patch removes the simplistic implementation of irq_domains and enables
    the powerpc infrastructure for all irq_domain users. The powerpc
    infrastructure includes support for complex mappings between Linux and
    hardware irq numbers, and can manage allocation of irq_descs.

    This patch also converts the few users of irq_domain_add()/irq_domain_del()
    to call irq_domain_add_legacy() instead.

    v3: Fix bug that set up too many irqs in translation range.
    v2: Fix removal of irq_alloc_descs() call in gic driver

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Rob Herring <email address hidden>
    Cc: Benjamin Herrenschmidt <email address hidden>
    Cc: Thomas Gleixner <email address hidden>
    Cc: Milton Miller <email address hidden>
    Tested-by: Olof Johansson <email address hidden>

commit 590529be8baba0fedc6b3a1b22d7c29f4b64609d
Author: Benoit Cousson <email address hidden>
Date: Fri Feb 3 14:58:17 2012 +0100

    Subject: [PATCH] mfd: twl-core.c: Fix the number of interrupts managed by twl4030

    TWL4030 does handle 3 different interrupts ranges: 8 for the core, 8 for
    the power events and 18 for the GPIOs.

    Change the total number of interrupts managed by TWL4030 from 8 to 34.

    Signed-off-by: Benoit Cousson <email address hidden>
    Signed-off-by: Grant Likely <email address hidden>

commit f4c9170637f2240f158d1075ed90ea149af05690
Author: Grant Likely <email address hidden>
Date: Wed Feb 1 12:03:43 2012 -0700

    of/address: add empty static inlines for !CONFIG_OF

    As the title says, this patch adds empty implementations for the address
    translation functions so that they can be used when CONFIG_OF is disabled.

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Rob Herring <email address hidden>

commit de7471ce3218920f2cb822835e6b6e7b9bd5b1b8
Author: Grant Likely <email address hidden>
Date: Wed Jan 11 10:29:05 2012 -0700

    irq_domain: Add support for base irq and hwirq in legacy mappings

    Add support for a legacy mapping where irq = (hwirq - first_hwirq + first_irq)
    so that a controller driver can allocate a fixed range of irq_descs and use
    a simple calculation to translate back and forth between linux and hw irq
    numbers. This is needed to use an irq_domain with many of the ARM interrupt
    controller drivers that manage their own irq_desc allocations. Ultimately
    the goal is to migrate those drivers to use the linear revmap, but doing it
    this way allows each driver to be converted separately which makes the
    migration path easier.

    This patch generalizes the IRQ_DOMAIN_MAP_LEGACY method to use
    (first_irq-first_hwirq) as the offset between hwirq and linux irq number,
    and adds checks to make sure that the hwirq number does not exceed range
    assigned to the controller.

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Rob Herring <email address hidden>
    Cc: Benjamin Herrenschmidt <email address hidden>
    Cc: Thomas Gleixner <email address hidden>
    Cc: Milton Miller <email address hidden>
    Tested-by: Olof Johansson <email address hidden>

commit a690068d6f9f3011666febeebc1e23062802bcf6
Author: Grant Likely <email address hidden>
Date: Wed Jan 11 10:29:03 2012 -0700

    irq_domain: Replace irq_alloc_host() with revmap-specific initializers

    Each revmap type has different arguments for setting up the revmap.
    This patch splits up the generator functions so that each revmap type
    can do its own setup and the user doesn't need to keep track of how
    each revmap type handles the arguments.

    This patch also adds a host_data argument to the generators. There are
    cases where the host_data pointer will be needed before the function returns.
    ie. the legacy map calls the .map callback for each irq before returning.

    v2: - Add void *host_data argument to irq_domain_add_*() functions
        - fixed failure to compile
        - Moved IRQ_DOMAIN_MAP_* defines into irqdomain.c

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Rob Herring <email address hidden>
    Cc: Benjamin Herrenschmidt <email address hidden>
    Cc: Thomas Gleixner <email address hidden>
    Cc: Milton Miller <email address hidden>
    Tested-by: Olof Johansson <email address hidden>

commit 0ab902f4a36138144e0f80511f344bae1eedb1df
Author: Grant Likely <email address hidden>
Date: Wed Jan 11 10:29:03 2012 -0700

    irq_domain: Remove references to old irq_host names

    No functional changes. Replaces non-exported references to 'host' with domain.
    Does not change any symbol names referenced by other .c files.

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Benjamin Herrenschmidt <email address hidden>
    Cc: Thomas Gleixner <email address hidden>
    Cc: Milton Miller <email address hidden>
    Tested-by: Olof Johansson <email address hidden>

commit ed2f17f0af41979c0e971b94f46e2efc0a53f511
Author: Grant Likely <email address hidden>
Date: Wed Jan 11 10:29:02 2012 -0700

    irq_domain: remove NO_IRQ from irq domain code

    zero always means no irq when using irq domains. Get rid of the NO_IRQ
    references.

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Rob Herring <email address hidden>
    Cc: Benjamin Herrenschmidt <email address hidden>
    Cc: Thomas Gleixner <email address hidden>
    Cc: Milton Miller <email address hidden>
    Tested-by: Olof Johansson <email address hidden>

commit 164cc570f17ed1db68621268a2005609ae2287cf
Author: Grant Likely <email address hidden>
Date: Wed Jan 11 10:29:02 2012 -0700

    irq_domain: Move irq_domain code from powerpc to kernel/irq

    This patch only moves the code. It doesn't make any changes, and the
    code is still only compiled for powerpc. Follow-on patches will generalize
    the code for other architectures.

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Benjamin Herrenschmidt <email address hidden>
    Cc: Thomas Gleixner <email address hidden>
    Cc: Milton Miller <email address hidden>
    Tested-by: Olof Johansson <email address hidden>

commit 95ddd16c0b9eac26cc5916009303909927b81aa7
Author: Grant Likely <email address hidden>
Date: Wed Jan 11 10:29:01 2012 -0700

    irq_domain/powerpc: Eliminate virq_is_host()

    There is only one user, and it is trivial to open-code.

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Benjamin Herrenschmidt <email address hidden>
    Cc: Thomas Gleixner <email address hidden>
    Cc: Milton Miller <email address hidden>
    Tested-by: Olof Johansson <email address hidden>

commit 7836113b8c57948ce89a575b7f7dfd581fd2c984
Author: Grant Likely <email address hidden>
Date: Wed Jan 11 10:29:00 2012 -0700

    irq_domain/powerpc: eliminate irq_map; use irq_alloc_desc() instead

    This patch drops the powerpc-specific irq_map table and replaces it with
    directly using the irq_alloc_desc()/irq_free_desc() interfaces for allocating
    and freeing irq_desc structures.

    This patch is a preparation step for generalizing the powerpc-specific virq
    infrastructure to become irq_domains.

    As part of this change, the irq_big_lock is changed to a mutex from a raw
    spinlock. There is no longer any need to use a spin lock since the irq_desc
    allocation code is now responsible for the critical section of finding
    an unused range of irq numbers.

    The radix lookup table is also changed to store the irq_data pointer instead
    of the irq_map entry since the irq_map is removed. This should end up being
    functionally equivalent since only allocated irq_descs are ever added to the
    radix tree.

    v4: - Fix incorrect access to irq_data structure in debugfs code
        - Don't ever allocate virq 0

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Benjamin Herrenschmidt <email address hidden>
    Cc: Thomas Gleixner <email address hidden>
    Cc: Milton Miller <email address hidden>
    Tested-by: Olof Johansson <email address hidden>

commit cc8c0c59e997a51c5c3ff28f7015c318fbf6c835
Author: Grant Likely <email address hidden>
Date: Wed Jan 11 10:29:00 2012 -0700

    irq_domain/powerpc: Use common irq_domain structure instead of irq_host

    This patch drops the powerpc-specific irq_host structures and uses the common
    irq_domain strucutres defined in linux/irqdomain.h. It also fixes all
    the users to use the new structure names.

    Renaming irq_host to irq_domain has been discussed for a long time, and this
    patch is a step in the process of generalizing the powerpc virq code to be
    usable by all architecture.

    An astute reader will notice that this patch actually removes the irq_host
    structure instead of renaming it. This is because the irq_domain structure
    already exists in include/linux/irqdomain.h and has the needed data members.

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Benjamin Herrenschmidt <email address hidden>
    Cc: Thomas Gleixner <email address hidden>
    Cc: Milton Miller <email address hidden>
    Tested-by: Olof Johansson <email address hidden>

commit faca00eefee711b765d910b3bf86937cacca8d2c
Author: Grant Likely <email address hidden>
Date: Wed Jan 11 10:28:59 2012 -0700

    irq_domain: convert microblaze from irq_host to irq_domain

    Trivial change, microblaze doesn't use irq remapping yet.

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Michal Simek <email address hidden>
    Cc: Thomas Gleixner <email address hidden>

commit d4d78338d982f6d548dea69f809b84e148d77e58
Author: Grant Likely <email address hidden>
Date: Wed Jan 18 14:35:28 2012 -0700

    irq_domain: Make irq_domain structure match powerpc's irq_host

    Part of the series to unify the irq remapping mechanisms in the
    kernel. A follow up patch will copy the powerpc implementation into
    kernel/irq/irqdomain.c, which will be a lot easier if the structures
    are identical.

    Where they differ, I've chose to use the powerpc names since there is
    a lot more code using those names.

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Rob Herring <email address hidden>
    Cc: Benjamin Herrenschmidt <email address hidden>
    Cc: Thomas Gleixner <email address hidden>
    Cc: Milton Miller <email address hidden>
    Tested-by: Olof Johansson <email address hidden>

commit 85f92a50d2b942e4935f3e3c4df9ded66f83910e
Author: Grant Likely <email address hidden>
Date: Wed Jan 18 14:35:27 2012 -0700

    irq_domain: Be less verbose

    irq_domain printk's too much. Drop some output.

    Signed-off-by: Grant Likely <email address hidden>
    Cc: Rob Herring <email address hidden>
    Cc: Thomas Gleixner <email address hidden>
    Tested-by: Olof Johansson <email address hidden>

commit f376bdadda220baa119b2e32201c82cf80ff4380
Author: Grant Likely <email address hidden>
Date: Wed Jan 18 14:35:27 2012 -0700

    irq_domain: add documentation and MAINTAINERS entry.

    Documentation for irq_domain library which will be created in subsequent
    patches.

    v4: editorial changes

    Signed-off-by: Grant Likely <email address hidden>
    Reviewed-by: Randy Dunlap <email address hidden>
    Cc: Benjamin Herrenschmidt <email address hidden>
    Cc: Thomas Gleixner <email address hidden>
    Cc: Rob Herring <email address hidden>
    Cc: Milton Miller <email address hidden>
    Tested-by: Olof Johansson <email address hidden>

commit e6a723587b8e2839499cfc1fa9db637a586bfac3
Author: Andrey Konovalov <email address hidden>
Date: Mon Jan 23 21:06:26 2012 +0400

    Get rid of "ERROR: "omap_bus_sync" undefined!" when building modules

    Signed-off-by: Andrey Konovalov <email address hidden>

commit ac1598c101faa55562051932fb9134f8a002a777
Author: Andrey Konovalov <email address hidden>
Date: Mon Jan 23 21:00:43 2012 +0400

    arm: omap4: Fix omap_barriers_init for generic ioremap changes

    From: Tony Lindgren <email address hidden>
    Date: Thu, 12 Jan 2012 10:42:57 -0800
    Cc: Santosh Shilimkar <email address hidden>

    Commit 73829af71fdb8655e7ba4b5a2a6612ad34a75a11
    (Merge branch 'vmalloc' of git://git.linaro.org/people/nico/linux
    into devel-stable) merged generic ioremap changes.

    Commit 137d105d50f6e6c373c1aa759f59045e6239cf66
    (ARM: OMAP4: Fix errata i688 with MPU interconnect barriers)
    added a workaround for omap4.

    In order for the errata to work, we now need the following
    patch or else we'll get:

    kernel BUG at mm/vmalloc.c:1134!

    Signed-off-by: Tony Lindgren <email address hidden>
    Signed-off-by: Andrey Konovalov <email address hidden>

commit 46c551285117a7ed7c7dddc0fef2a1775f20c53c
Author: Amit Daniel Kachhap <email address hidden>
Date: Wed Dec 21 16:38:23 2011 +0530

    ARM: exynos4: Add thermal sensor driver platform device support

    This patch adds necessary source definations needed for TMU driver and
    the platform device support.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

    Conflicts:

     arch/arm/mach-exynos/Kconfig
     arch/arm/mach-exynos/Makefile

commit 358d20ce19a13a025a574fdec74a975fc288ad78
Author: Amit Daniel Kachhap <email address hidden>
Date: Wed Dec 21 14:32:48 2011 +0530

    thermal: exynos4: Register the tmu sensor with the thermal interface layer

    Export and register information from the hwmon tmu sensor to the samsung
    exynos kernel thermal framework where different cooling devices and thermal
    zone are binded. The exported information is based according to the data
    structure thermal_sensor_conf present in exynos_thermal.h. HWMON sysfs
    functions are currently left although all of them are present in generic
    linux thermal layer.
    Also the platform data structure is modified to pass frequency cooling
    in percentages for each thermal level.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit ef3ded479d54ef21d2eaee85cc86cd26433331a2
Author: Amit Daniel Kachhap <email address hidden>
Date: Wed Dec 21 15:23:55 2011 +0530

    thermal: exynos: Add thermal interface support for linux thermal layer

    This codes uses the generic linux thermal layer and creates a bridge
    between temperature sensors, linux thermal framework and cooling devices
    for samsung exynos platform. This layer recieves or monitor the
    temperature from the sensor and informs the generic thermal layer to take
    the necessary cooling action.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 3b5271128b94f585d724053e2ebc20f98b2b1210
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Dec 13 20:40:01 2011 +0530

    thermal: Add generic cpu cooling implementation

    This patch adds support for generic cpu thermal cooling low level
    implementations using frequency scaling and cpuhotplugg currently.
    Different cpu related cooling devices can be registered by the
    user and the binding of these cooling devices to the corresponding
    trip points can be easily done as the registration API's return the
    cooling device pointer.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit c6b463db4a9745b6434db6c87e21c7a82bfc2b14
Author: Amit Daniel Kachhap <email address hidden>
Date: Thu Dec 1 18:51:39 2011 +0530

    thermal: Add a new trip type to use cooling device instance number

    This patch adds a new trip type THERMAL_TRIP_STATE_ACTIVE. This
    trip behaves same as THERMAL_TRIP_ACTIVE but also passes the cooling
    device instance number. This helps the cooling device registered as
    different instances to perform appropriate cooling action decision in
    the set_cur_state call back function.

    Also since the trip temperature's are in ascending order so some logic
    is put in place to skip the un-necessary checks.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit e08e698f7a0978a74796cdd3b2b40ff6b702d24e
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Jan 10 10:49:19 2012 +0530

    ARM: exynos: Enable l2 configuration through device tree

    This patch enables calling generic l2 setup functions if device tree is used.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit f57f8d0fa083909f418310173f3130f5efbac9c0
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Jan 10 10:45:16 2012 +0530

    ARM: exynos: remove useless code to save/restore L2

    Following the merge of CPU PM notifiers and L2 resume code, this patch
    removes useless code to save and restore L2 registers.

    This is now automatically covered by suspend calls which integrated
    CPU PM notifiers and new sleep code that allows to resume L2 before MMU
    is turned on.

    Signed-off-by: Lorenzo Pieralisi <email address hidden>
    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 8fb8d7a5be17a4c6af822308b11d95d7971d8bfa
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Jan 10 10:39:46 2012 +0530

    ARM: exynos: save L2 settings during bootup

    This patch adds code to save L2 register configuration at boot, and
    later used to resume L2 before MMU is enabled in suspend and cpuidle
    resume paths.

    Signed-off-by: Lorenzo Pieralisi <email address hidden>
    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 922a8f607c7900b76d903bfb6b73cab3404d41b3
Author: Amit Daniel Kachhap <email address hidden>
Date: Mon Dec 5 15:24:33 2011 +0530

    ARM: s5p: add L2 early resume code

    This patch adds code to resume L2 before MMU is enabled in
    suspend and cpuidle resume paths. s3c_cpu_resume is moved to the
    data section with appropriate comments.

    Signed-off-by: Lorenzo Pieralisi <email address hidden>
    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit efae770884e98fb8faefc303ad9cdc5953bbc9bd
Author: Amit Daniel Kachhap <email address hidden>
Date: Wed Jan 4 13:46:19 2012 +0530

    ARM: exynos: Add support AFTR mode on EXYNOS4210

    This patch adds support AFTR(ARM OFF TOP RUNNING) mode in
    cpuidle driver. L2 cache keeps their data in this mode.
    This patch ports the code to the latest interfaces to
    save/restore CPU state inclusive of CPU PM notifiers, l2
    resume and cpu_suspend/resume.

    Signed-off-by: Jaecheol Lee <email address hidden>
    Signed-off-by: Lorenzo Pieralisi <email address hidden>
    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit b64923ea8a8c898f1377a121314b8f6b00009dfc
Author: Vincent Guittot <email address hidden>
Date: Fri Oct 21 09:02:47 2011 +0200

    sched: Ensure cpu_power periodic update

    With a lot of small task, the softirq sched is nearly never called
    when no_hz is enable. Te load_balance is mainly called with
    the newly_idle mode which doesn't update the cpu_power.
    Add a next_update field which ensure a maximum update period when
    there is short activity

    Signed-off-by: Vincent Guittot <email address hidden>

    Conflicts:

     include/linux/sched.h

commit 4779de4762d5843e47b51e0548348e32eef01682
Author: Arnd Bergmann <email address hidden>
Date: Sat Oct 8 17:07:50 2011 +0200

    ARM: kprobes: work around build errors

    I got a few build errors for kprobes playing with randconfig on the
    latest kernel. While this patch manages to avoid these errors, I'm
    pretty sure that it is not the ideal solution.

    The errors I got in arm are while building for ARMv6 with
    the arm-linux-gnueabihf-gcc-4.6 provided by Linaro, which
    results in these messages:

    /tmp/ccGpftnj.s: Assembler messages:
    /tmp/ccGpftnj.s:22066: Error: selected processor does not support ARM mode `mls r0,r1,r2,r3'
    /tmp/ccGpftnj.s:22099: Error: selected processor does not support ARM mode `mlshi r7,r8,r9,r10'
    /tmp/ccGpftnj.s:22128: Error: selected processor does not support ARM mode `mls lr,r1,r2,r13'
    /tmp/ccGpftnj.s:23781: Error: selected processor does not support ARM mode `strexd r0,r2,r3,[sp]'
    /tmp/ccGpftnj.s:23802: Error: selected processor does not support ARM mode `ldrexd r2,r3,[sp]'
    /tmp/ccGpftnj.s:23823: Error: selected processor does not support ARM mode `strexb r0,r2,[sp]'
    /tmp/ccGpftnj.s:23844: Error: selected processor does not support ARM mode `ldrexb r2,[sp]'
    /tmp/ccGpftnj.s:23865: Error: selected processor does not support ARM mode `strexh r0,r2,[sp]'
    /tmp/ccGpftnj.s:23886: Error: selected processor does not support ARM mode `ldrexh r2,[sp]'
    /tmp/ccGpftnj.s:25836: Warning: base register written back, and overlaps second transfer register

    [ NP: I didn't reproduce the T2 errors, and Tixy was doubtful about them.
      Merged Tixy's change suggestions and his ACK. ]

    Signed-off-by: Arnd Bergmann <email address hidden>
    Acked-by: Jon Medhurst <email address hidden>
    Signed-off-by: Nicolas Pitre <email address hidden>

commit 7f2be4a1c8181de24da244673b16ee98926b4a7e
Author: Ming Lei <email address hidden>
Date: Wed Aug 31 00:03:13 2011 +0800

    usb: ehci: make HC see up-to-date qh/qtd descriptor ASAP

    This patch introduces the helper of ehci_sync_mem to flush
    qtd/qh into memory immediately on some ARM, so that HC can
    see the up-to-date qtd/qh descriptor asap.

    This patch fixs one performance bug on ARM Cortex A9 dual core
    platform, which has been reported on quite a few ARM machines
    (OMAP4, Tegra 2, snowball...), see details from link of
    https://bugs.launchpad.net/bugs/709245.

    The patch has been tested ok on OMAP4 panda A1 board, and the
    performance of 'dd' over usb mass storage can be increased from
    4~5MB/sec to 14~16MB/sec after applying this patch.

    Cc: Russell King <email address hidden>
    Signed-off-by: Ming Lei <email address hidden>
    Signed-off-by: Alan Stern <email address hidden>

File Description Downloads
download icon CHANGELOG-linux-linaro-3.3-rc3-2012.02-1 (md5) Kernel changelog 111
last downloaded 40 weeks ago
download icon linux-linaro-3.3-rc3-2012.02-1.tar.bz2 (md5) kernel tarball 569
last downloaded 46 weeks ago
Total downloads: 680

3.2-2012.01 release from the 3.2 series released 2012-01-23

Release information
Release notes:

The Linaro Kernel Working Group (KWG) is excited to announce the
availability our January 2012 development snapshot:

linux-linaro-3.2-2021.01-0

As the word "snapshot" implies, these are meant as development kernels
and have not been fully validated. You should expect issues and to help
us deliver a better kernel in the future, please file bugs in Launchpad at
https://bugs.launchpad.net/linux-linaro.

This is our first kernel release run by Andrey Konovalov and I want to
thank him for getting up and running in short time period and getting
this release out the door. Andrey will be creating a 3.3 tracking branch
soon and we can then start merging code from the other WGs and LTs to
provide a common baseline for the 2012.02 release.

The source tarball is available at:
 http://launchpad...

Changelog:

commit d200db2f2df5a58f21d55b82c731227739e3e650
Author: Andrey Konovalov <email address hidden>
Date: Mon Jan 23 21:06:26 2012 +0400

    Get rid of "ERROR: "omap_bus_sync" undefined!" when building modules

    Signed-off-by: Andrey Konovalov <email address hidden>

commit c2a5a3cfab76c6b1768c5f4d5ad73404c81d3767
Author: Andrey Konovalov <email address hidden>
Date: Mon Jan 23 21:00:43 2012 +0400

    arm: omap4: Fix omap_barriers_init for generic ioremap changes

    From: Tony Lindgren <email address hidden>
    Date: Thu, 12 Jan 2012 10:42:57 -0800
    Cc: Santosh Shilimkar <email address hidden>

    Commit 73829af71fdb8655e7ba4b5a2a6612ad34a75a11
    (Merge branch 'vmalloc' of git://git.linaro.org/people/nico/linux
    into devel-stable) merged generic ioremap changes.

    Commit 137d105d50f6e6c373c1aa759f59045e6239cf66
    (ARM: OMAP4: Fix errata i688 with MPU interconnect barriers)
    added a workaround for omap4.

    In order for the errata to work, we now need the following
    patch or else we'll get:

    kernel BUG at mm/vmalloc.c:1134!

    Signed-off-by: Tony Lindgren <email address hidden>
    Signed-off-by: Andrey Konovalov <email address hidden>

commit 34e7c4f3f9e5403ef4f135394aa7e4357588fd89
Author: Santosh Shilimkar <email address hidden>
Date: Sat Jun 25 18:04:31 2011 -0700

    ARM: OMAP4: Fix errata i688 with MPU interconnect barriers.

    On OMAP4 SOC, intecronnects has many write buffers in the async bridges
    and they need to be drained before CPU enters into standby state.

    Patch 'OMAP4: PM: Add CPUX OFF mode support' added CPU PM support
    but OMAP errata i688 (Async Bridge Corruption) needs to be taken
    care to avoid issues like system freeze, CPU deadlocks, random
    crashes with register accesses, synchronisation loss on initiators
    operating on both interconnect port simultaneously.

    As per the errata, if a data is stalled inside asynchronous bridge
    because of back pressure, it may be accepted multiple times, creating
    pointer misalignment that will corrupt next transfers on that data
    path until next reset of the system (No recovery procedure once
    the issue is hit, the path remains consistently broken).
    Async bridge can be found on path between MPU to EMIF and
    MPU to L3 interconnect. This situation can happen only when the
    idle is initiated by a Master Request Disconnection (which is
    trigged by software when executing WFI on CPU).

    The work-around for this errata needs all the initiators
    connected through async bridge must ensure that data path
    is properly drained before issuing WFI. This condition will be
    met if one Strongly ordered access is performed to the
    target right before executing the WFI. In MPU case, L3 T2ASYNC
    FIFO and DDR T2ASYNC FIFO needs to be drained. IO barrier ensure
    that there is no synchronisation loss on initiators operating
    on both interconnect port simultaneously.

    Thanks to Russell for a tip to conver assembly function to
    C fuction there by reducing 40 odd lines of code from the patch.

    Signed-off-by: Santosh Shilimkar <email address hidden>
    Signed-off-by: Richard Woodruff <email address hidden>
    Acked-by: Jean Pihet <email address hidden>
    Reviewed-by: Kevin Hilman <email address hidden>
    Tested-by: Vishwanath BS <email address hidden>
    Signed-off-by: Kevin Hilman <email address hidden>

    Conflicts:

     arch/arm/mach-omap2/omap4-common.c
     arch/arm/mach-omap2/sleep44xx.S

commit 8511c8cce280177ec9999d162e0f63bddfdbc732
Merge: b93b9d9 b8ed9e5
Author: Andrey Konovalov <email address hidden>
Date: Thu Jan 19 18:25:13 2012 +0400

    Merge branch 'linux-3.2.y' into linux-linaro-3.2

commit b93b9d935637fc8ecc90d163587bd37201de3aed
Merge: ddd0651 027d7c3
Author: Andrey Konovalov <email address hidden>
Date: Tue Jan 17 00:05:56 2012 +0400

    Merge device tree support patches from linux-linaro-3.1

commit ddd06511cec618157b50ffa54c0f0f6ae0f67a01
Merge: e50ef51 904f06d
Author: Andrey Konovalov <email address hidden>
Date: Mon Jan 16 19:36:58 2012 +0400

    Merge branch 'config-fragments' into linux-linaro-tracking

commit e50ef516f9f0d285ce40ce07812c1cb53e46c9b3
Merge: 70df977 0d2006b
Author: Andrey Konovalov <email address hidden>
Date: Fri Jan 13 21:39:38 2012 +0400

    Merge branch 'linusw-pinctrl-for-next' into linux-linaro-tracking

commit 70df977b8157276fff0794660e8590f316ca6458
Merge: b6d31b9 17c05c6
Author: Andrey Konovalov <email address hidden>
Date: Fri Jan 13 21:36:05 2012 +0400

    Merge branch 'thermal_cpu_cooling' into linux-linaro-tracking

commit b6d31b946185ce89c10d113351a1e61932d26603
Merge: 3d07054 29a443b
Author: Andrey Konovalov <email address hidden>
Date: Fri Jan 13 21:33:30 2012 +0400

    Merge branch 'samsung_cpuidle_l2_retention' into linux-linaro-tracking

commit b8ed9e5b8c34dc9fb1882669e45b21e3d0194881
Author: Greg Kroah-Hartman <email address hidden>
Date: Thu Jan 12 11:42:45 2012 -0800

    Linux 3.2.1

commit da777f649cf96859d61cf285957b30b694c0fbcb
Author: Xi Wang <email address hidden>
Date: Mon Dec 12 21:55:52 2011 +0000

    xfs: fix acl count validation in xfs_acl_from_disk()

    commit 093019cf1b18dd31b2c3b77acce4e000e2cbc9ce upstream.

    Commit fa8b18ed didn't prevent the integer overflow and possible
    memory corruption. "count" can go negative and bypass the check.

    Signed-off-by: Xi Wang <email address hidden>
    Reviewed-by: Christoph Hellwig <email address hidden>
    Signed-off-by: Ben Myers <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit f9fd8d6232137e255fc9409a81cf282817472b6f
Author: Thilo-Alexander Ginkel <email address hidden>
Date: Sat Dec 17 10:55:10 2011 +0100

    usb: cdc-acm: Fix acm_tty_hangup() vs. acm_tty_close() race

    [Not upstream as it was fixed differently for 3.3 with a much more
    "intrusive" rework of the driver - gregkh]

    There is a race condition involving acm_tty_hangup() and acm_tty_close()
    where hangup() would attempt to access tty->driver_data without proper
    locking and NULL checking after close() has potentially already set it
    to NULL. One possibility to (sporadically) trigger this behavior is to
    perform a suspend/resume cycle with a running WWAN data connection.

    This patch addresses the issue by introducing a NULL check for
    tty->driver_data in acm_tty_hangup() protected by open_mutex and exiting
    gracefully when hangup() is invoked on a device that has already been
    closed.

    Signed-off-by: Thilo-Alexander Ginkel <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit f60d8cd0b0e0def00c9ac54bb4becae034138484
Author: stephen hemminger <email address hidden>
Date: Sat Dec 31 13:26:46 2011 +0000

    bonding: fix error handling if slave is busy (v2)

    commit f7d9821a6a9c83450ac35e76d3709e32fd38b76f upstream.

    If slave device already has a receive handler registered, then the
    error unwind of bonding device enslave function is broken.

    The following will leave a pointer to freed memory in the slave
    device list, causing a later kernel panic.
    # modprobe dummy
    # ip li add dummy0-1 link dummy0 type macvlan
    # modprobe bonding
    # echo +dummy0 >/sys/class/net/bond0/bonding/slaves

    The fix is to detach the slave (which removes it from the list)
    in the unwind path.

    Signed-off-by: Stephen Hemminger <email address hidden>
    Reviewed-by: Nicolas de Pesloüan <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 4a75c219087a4079e668c3e5836d64009446c0d3
Author: Aurelien Jacobs <email address hidden>
Date: Sat Jan 7 12:15:16 2012 -0800

    asix: fix infinite loop in rx_fixup()

    commit 6c15d74defd38e7e7f8805392578b7a1d508097e upstream.

    At this point if skb->len happens to be 2, the subsequant skb_pull(skb, 4)
    call won't work and the skb->len won't be decreased and won't ever reach 0,
    resulting in an infinite loop.

    With an ASIX 88772 under heavy load, without this patch, rx_fixup() reaches
    an infinite loop in less than a minute. With this patch applied,
    no infinite loop even after hours of heavy load.

    Signed-off-by: Aurelien Jacobs <email address hidden>
    Cc: Jussi Kivilinna <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>

commit 25c413ad0029ea86008234be28aee33456e53e5b
Author: Ben Hutchings <email address hidden>
Date: Mon Jan 9 14:06:46 2012 -0800

    igmp: Avoid zero delay when receiving odd mixture of IGMP queries

    commit a8c1f65c79cbbb2f7da782d4c9d15639a9b94b27 upstream.

    Commit 5b7c84066733c5dfb0e4016d939757b38de189e4 ('ipv4: correct IGMP
    behavior on v3 query during v2-compatibility mode') added yet another
    case for query parsing, which can result in max_delay = 0. Substitute
    a value of 1, as in the usual v3 case.

    Reported-by: Simon McVittie <email address hidden>
    References: http://bugs.debian.org/654876
    Signed-off-by: Ben Hutchings <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>

commit d2570fc048ca1307e64572c825e0d7908bd60a21
Author: Felipe Balbi <email address hidden>
Date: Mon Jan 2 13:35:41 2012 +0200

    usb: ch9: fix up MaxStreams helper

    commit 18b7ede5f7ee2092aedcb578d3ac30bd5d4fc23c upstream.

    [ removed the dwc3 portion of the patch as it didn't apply to
    older kernels - gregkh]

    According to USB 3.0 Specification Table 9-22, if
    bmAttributes [4:0] are set to zero, it means "no
    streams supported", but the way this helper was
    defined on Linux, we will *always* have one stream
    which might cause several problems.

    For example on DWC3, we would tell the controller
    endpoint has streams enabled and yet start transfers
    with Stream ID set to 0, which would goof up the host
    side.

    While doing that, convert the macro to an inline
    function due to the different checks we now need.

    Signed-off-by: Felipe Balbi <email address hidden>
    Signed-off-by: Sarah Sharp <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 5b511b783385bc68663e4729be7f169ce3061e6d
Author: Hans de Goede <email address hidden>
Date: Wed Jan 4 23:29:18 2012 +0100

    xhci: Properly handle COMP_2ND_BW_ERR

    commit 71d85724bdd947a3b42a88d08af79f290a1a767b upstream.

    I encountered a result of COMP_2ND_BW_ERR while improving how the pwc
    webcam driver handles not having the full usb1 bandwidth available to
    itself.

    I created the following test setup, a NEC xhci controller with a
    single TT USB 2 hub plugged into it, with a usb keyboard and a pwc webcam
    plugged into the usb2 hub. This caused the following to show up in dmesg
    when trying to stream from the pwc camera at its highest alt setting:

    xhci_hcd 0000:01:00.0: ERROR: unexpected command completion code 0x23.
    usb 6-2.1: Not enough bandwidth for altsetting 9

    And usb_set_interface returned -EINVAL, which caused my pwc code to not
    do the right thing as it expected -ENOSPC.

    This patch makes the xhci driver properly handle COMP_2ND_BW_ERR and makes
    usb_set_interface return -ENOSPC as expected.

    This should be backported to stable kernels as old as 2.6.32.

    Signed-off-by: Hans de Goede <email address hidden>
    Signed-off-by: Sarah Sharp <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 4781ace0ddff8057f2c1bf1811ae4886f8b88876
Author: Clemens Ladisch <email address hidden>
Date: Sat Dec 3 23:41:31 2011 +0100

    usb: fix number of mapped SG DMA entries

    commit bc677d5b64644c399cd3db6a905453e611f402ab upstream.

    Add a new field num_mapped_sgs to struct urb so that we have a place to
    store the number of mapped entries and can also retain the original
    value of entries in num_sgs. Previously, usb_hcd_map_urb_for_dma()
    would overwrite this with the number of mapped entries, which would
    break dma_unmap_sg() because it requires the original number of entries.

    This fixes warnings like the following when using USB storage devices:
     ------------[ cut here ]------------
     WARNING: at lib/dma-debug.c:902 check_unmap+0x4e4/0x695()
     ehci_hcd 0000:00:12.2: DMA-API: device driver frees DMA sg list with different entry count [map count=4] [unmap count=1]
     Modules linked in: ohci_hcd ehci_hcd
     Pid: 0, comm: kworker/0:1 Not tainted 3.2.0-rc2+ #319
     Call Trace:
      <IRQ> [<ffffffff81036d3b>] warn_slowpath_common+0x80/0x98
      [<ffffffff81036de7>] warn_slowpath_fmt+0x41/0x43
      [<ffffffff811fa5ae>] check_unmap+0x4e4/0x695
      [<ffffffff8105e92c>] ? trace_hardirqs_off+0xd/0xf
      [<ffffffff8147208b>] ? _raw_spin_unlock_irqrestore+0x33/0x50
      [<ffffffff811fa84a>] debug_dma_unmap_sg+0xeb/0x117
      [<ffffffff8137b02f>] usb_hcd_unmap_urb_for_dma+0x71/0x188
      [<ffffffff8137b166>] unmap_urb_for_dma+0x20/0x22
      [<ffffffff8137b1c5>] usb_hcd_giveback_urb+0x5d/0xc0
      [<ffffffffa0000d02>] ehci_urb_done+0xf7/0x10c [ehci_hcd]
      [<ffffffffa0001140>] qh_completions+0x429/0x4bd [ehci_hcd]
      [<ffffffffa000340a>] ehci_work+0x95/0x9c0 [ehci_hcd]
      ...
     ---[ end trace f29ac88a5a48c580 ]---
     Mapped at:
      [<ffffffff811faac4>] debug_dma_map_sg+0x45/0x139
      [<ffffffff8137bc0b>] usb_hcd_map_urb_for_dma+0x22e/0x478
      [<ffffffff8137c494>] usb_hcd_submit_urb+0x63f/0x6fa
      [<ffffffff8137d01c>] usb_submit_urb+0x2c7/0x2de
      [<ffffffff8137dcd4>] usb_sg_wait+0x55/0x161

    Signed-off-by: Clemens Ladisch <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit d2758dc6e9a3a0243e120df6132406f409ffd2bf
Author: Malte Schröder <email address hidden>
Date: Thu Jan 5 20:34:40 2012 +0100

    USB: Add USB-ID for Multiplex RC serial adapter to cp210x.c

    commit 08e87d0d773dc9ca5faf4c3306e238ed0ea129b0 upstream.

    Hi, below patch adds the USB-ID of the serial adapters sold by
    Multiplex RC (www.multiplex-rc.de).

    Signed-off-by: Malte Schröder <email address hidden>
    Cc: stable <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 3ff8999cb9dabcac0cbb8a778f79fb991f2358c8
Author: Janne Snabb <email address hidden>
Date: Wed Dec 28 19:36:00 2011 +0000

    usb: option: add ZD Incorporated HSPA modem

    commit 3c8c9316710b83e906e425024153bf0929887b59 upstream.

    Add support for Chinese Noname HSPA USB modem which is apparently
    manufactured by a company called ZD Incorporated (based on texts in the
    Windows drivers).

    This product is available at least from Dealextreme (SKU 80032) and
    possibly in India with name Olive V-MW250. It is based on Qualcomm
    MSM6280 chip.

    I needed to also add "options usb-storage quirks=0685:7000:i" in modprobe
    configuration because udevd or the kernel keeps poking the embedded
    fake-cd-rom which fails and causes the device to reset. There might be
    a better way to accomplish the same. usb_modeswitch is not needed with
    this device.

    Signed-off-by: Janne Snabb <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit b4868343c4dde5315ffebc08de71ddffdd1460d8
Author: Johan Hovold <email address hidden>
Date: Sun Nov 6 19:06:21 2011 +0100

    USB: omninet: fix write_room

    commit 694c6301e515bad574af74b6552134c4d9dcb334 upstream.

    Fix regression introduced by commit 507ca9bc047666 ([PATCH] USB: add
    ability for usb-serial drivers to determine if their write urb is
    currently being used.) which inverted the logic in write_room so that it
    returns zero when the write urb is actually free.

    Signed-off-by: Johan Hovold <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 945d49b38f4e3aa8a570b2fe51f179e7c2181b4d
Author: Felipe Contreras <email address hidden>
Date: Mon Dec 19 22:01:54 2011 +0200

    usb: musb: fix pm_runtime mismatch

    commit 772aed45b604c5ff171f0f12c12392d868333f79 upstream.

    In musb_init_controller() there's a pm_runtime_put(), but there's no
    pm_runtime_get(), which creates a mismatch that causes the driver to
    sleep when it shouldn't.

    This was introduced in 7acc619[1], but it wasn't triggered in my setup
    until 18a2689[2] was merged to Linus' branch at point df0914[3]. IOW;
    when PM is working as it was supposed to.

    However, it seems most of the time this is used in a way that keeps the
    counter above 0, so nobody noticed. Also, it seems to depend on the
    configuration used in versions before 3.1, but not later (or in it).

    I found the problem by loading isp1704_charger before any usb gadgets:
    http://article.gmane.org/gmane.linux.kernel/1226122

    All versions after 2.6.39 are affected.

    [1] usb: musb: Idle path retention and offmode support for OMAP3
    [2] OMAP2+: musb: hwmod adaptation for musb registration
    [3] Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6

    Cc: Hema HK <email address hidden>
    Signed-off-by: Felipe Contreras <email address hidden>
    Signed-off-by: Felipe Balbi <email address hidden>

commit dd857f5b4dc1d8d010da1711b71be789054fbcbe
Author: Oliver Neukum <email address hidden>
Date: Tue Jan 3 09:58:54 2012 +0100

    USB: add quirk for another camera

    commit 35284b3d2f68a8a3703745e629999469f78386b5 upstream.

    The Guillemot Webcam Hercules Dualpix Exchange camera
    has been reported with a second ID.

    Signed-off-by: Oliver Neukum <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 966c248e661ce7d265caeb73c7d0aa68fbf8801a
Author: Tanmay Upadhyay <email address hidden>
Date: Thu Dec 8 10:03:49 2011 +0530

    USB: pxa168: Fix compilation error

    commit 35657c4d72925936c7219cc5caac118ca632acc2 upstream.

    After commit c430131a02d677aa708f56342c1565edfdacb3c0 (Support
    controllers with big endian capability regs), HC_LENGTH takes
    two arguments. This patch fixes following compilation error:

    In file included from drivers/usb/host/ehci-hcd.c:1323:
    drivers/usb/host/ehci-pxa168.c:302:54: error: macro "HC_LENGTH" requires 2 arguments, but only 1 given
    In file included from drivers/usb/host/ehci-hcd.c:1323:
    drivers/usb/host/ehci-pxa168.c: In function 'ehci_pxa168_drv_probe':
    drivers/usb/host/ehci-pxa168.c:302: error: 'HC_LENGTH' undeclared (first use in this function)
    drivers/usb/host/ehci-pxa168.c:302: error: (Each undeclared identifier is reported only once
    drivers/usb/host/ehci-pxa168.c:302: error: for each function it appears in.)

    Signed-off-by: Tanmay Upadhyay <email address hidden>
    Acked-by: Alan Stern <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit ab8887268c60a5dac0dc388c773a679470292c55
Author: Huajun Li <email address hidden>
Date: Wed Jan 4 19:25:33 2012 +0800

    usb: usb-storage doesn't support dynamic id currently, the patch disables the feature to fix an oops

    commit 1a3a026ba1b6bbfe0b7f79ab38cf991d691e7c9a upstream.

    Echo vendor and product number of a non usb-storage device to
    usb-storage driver's new_id, then plug in the device to host and you
    will find following oops msg, the root cause is usb_stor_probe1()
    refers invalid id entry if giving a dynamic id, so just disable the
    feature.

    [ 3105.018012] general protection fault: 0000 [#1] SMP DEBUG_PAGEALLOC
    [ 3105.018062] CPU 0
    [ 3105.018075] Modules linked in: usb_storage usb_libusual bluetooth
    dm_crypt binfmt_misc snd_hda_codec_analog snd_hda_intel snd_hda_codec
    snd_hwdep hp_wmi ppdev sparse_keymap snd_pcm snd_seq_midi snd_rawmidi
    snd_seq_midi_event snd_seq snd_timer snd_seq_device psmouse snd
    serio_raw tpm_infineon soundcore i915 snd_page_alloc tpm_tis
    parport_pc tpm tpm_bios drm_kms_helper drm i2c_algo_bit video lp
    parport usbhid hid sg sr_mod sd_mod ehci_hcd uhci_hcd usbcore e1000e
    usb_common floppy
    [ 3105.018408]
    [ 3105.018419] Pid: 189, comm: khubd Tainted: G I 3.2.0-rc7+
    #29 Hewlett-Packard HP Compaq dc7800p Convertible Minitower/0AACh
    [ 3105.018481] RIP: 0010:[<ffffffffa045830d>] [<ffffffffa045830d>]
    usb_stor_probe1+0x2fd/0xc20 [usb_storage]
    [ 3105.018536] RSP: 0018:ffff880056a3d830 EFLAGS: 00010286
    [ 3105.018562] RAX: ffff880065f4e648 RBX: ffff88006bb28000 RCX: 0000000000000000
    [ 3105.018597] RDX: ffff88006f23c7b0 RSI: 0000000000000001 RDI: 0000000000000206
    [ 3105.018632] RBP: ffff880056a3d900 R08: 0000000000000000 R09: ffff880067365000
    [ 3105.018665] R10: 00000000000002ac R11: 0000000000000010 R12: ffff6000b41a7340
    [ 3105.018698] R13: ffff880065f4ef60 R14: ffff88006bb28b88 R15: ffff88006f23d270
    [ 3105.018733] FS: 0000000000000000(0000) GS:ffff88007a200000(0000)
    knlGS:0000000000000000
    [ 3105.018773] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [ 3105.018801] CR2: 00007fc99c8c4650 CR3: 0000000001e05000 CR4: 00000000000006f0
    [ 3105.018835] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [ 3105.018870] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    [ 3105.018906] Process khubd (pid: 189, threadinfo ffff880056a3c000,
    task ffff88005677a400)
    [ 3105.018945] Stack:
    [ 3105.018959] 0000000000000000 0000000000000000 ffff880056a3d8d0
    0000000000000002
    [ 3105.019011] 0000000000000000 ffff880056a3d918 ffff880000000000
    0000000000000002
    [ 3105.019058] ffff880056a3d8d0 0000000000000012 ffff880056a3d8d0
    0000000000000006
    [ 3105.019105] Call Trace:
    [ 3105.019128] [<ffffffffa0458cd4>] storage_probe+0xa4/0xe0 [usb_storage]
    [ 3105.019173] [<ffffffffa0097822>] usb_probe_interface+0x172/0x330 [usbcore]
    [ 3105.019211] [<ffffffff815fda67>] driver_probe_device+0x257/0x3b0
    [ 3105.019243] [<ffffffff815fdd43>] __device_attach+0x73/0x90
    [ 3105.019272] [<ffffffff815fdcd0>] ? __driver_attach+0x110/0x110
    [ 3105.019303] [<ffffffff815fb93c>] bus_for_each_drv+0x9c/0xf0
    [ 3105.019334] [<ffffffff815fd6c7>] device_attach+0xf7/0x120
    [ 3105.019364] [<ffffffff815fc905>] bus_probe_device+0x45/0x80
    [ 3105.019396] [<ffffffff815f98a6>] device_add+0x876/0x990
    [ 3105.019434] [<ffffffffa0094e42>] usb_set_configuration+0x822/0x9e0 [usbcore]
    [ 3105.019479] [<ffffffffa00a3492>] generic_probe+0x62/0xf0 [usbcore]
    [ 3105.019518] [<ffffffffa0097a46>] usb_probe_device+0x66/0xb0 [usbcore]
    [ 3105.019555] [<ffffffff815fda67>] driver_probe_device+0x257/0x3b0
    [ 3105.019589] [<ffffffff815fdd43>] __device_attach+0x73/0x90
    [ 3105.019617] [<ffffffff815fdcd0>] ? __driver_attach+0x110/0x110
    [ 3105.019648] [<ffffffff815fb93c>] bus_for_each_drv+0x9c/0xf0
    [ 3105.019680] [<ffffffff815fd6c7>] device_attach+0xf7/0x120
    [ 3105.019709] [<ffffffff815fc905>] bus_probe_device+0x45/0x80
    [ 3105.021040] usb usb6: usb auto-resume
    [ 3105.021045] usb usb6: wakeup_rh
    [ 3105.024849] [<ffffffff815f98a6>] device_add+0x876/0x990
    [ 3105.025086] [<ffffffffa0088987>] usb_new_device+0x1e7/0x2b0 [usbcore]
    [ 3105.025086] [<ffffffffa008a4d7>] hub_thread+0xb27/0x1ec0 [usbcore]
    [ 3105.025086] [<ffffffff810d5200>] ? wake_up_bit+0x50/0x50
    [ 3105.025086] [<ffffffffa00899b0>] ? usb_remote_wakeup+0xa0/0xa0 [usbcore]
    [ 3105.025086] [<ffffffff810d49b8>] kthread+0xd8/0xf0
    [ 3105.025086] [<ffffffff81939884>] kernel_thread_helper+0x4/0x10
    [ 3105.025086] [<ffffffff8192a8c0>] ? _raw_spin_unlock_irq+0x50/0x80
    [ 3105.025086] [<ffffffff8192b1b4>] ? retint_restore_args+0x13/0x13
    [ 3105.025086] [<ffffffff810d48e0>] ? __init_kthread_worker+0x80/0x80
    [ 3105.025086] [<ffffffff81939880>] ? gs_change+0x13/0x13
    [ 3105.025086] Code: 00 48 83 05 cd ad 00 00 01 48 83 05 cd ad 00 00
    01 4c 8b ab 30 0c 00 00 48 8b 50 08 48 83 c0 30 48 89 45 a0 4c 89 a3
    40 0c 00 00 <41> 0f b6 44 24 10 48 89 55 a8 3c ff 0f 84 b8 04 00 00 48
    83 05
    [ 3105.025086] RIP [<ffffffffa045830d>] usb_stor_probe1+0x2fd/0xc20
    [usb_storage]
    [ 3105.025086] RSP <ffff880056a3d830>
    [ 3105.060037] hub 6-0:1.0: hub_resume
    [ 3105.062616] usb usb5: usb auto-resume
    [ 3105.064317] ehci_hcd 0000:00:1d.7: resume root hub
    [ 3105.094809] ---[ end trace a7919e7f17c0a727 ]---
    [ 3105.130069] hub 5-0:1.0: hub_resume
    [ 3105.132131] usb usb4: usb auto-resume
    [ 3105.132136] usb usb4: wakeup_rh
    [ 3105.180059] hub 4-0:1.0: hub_resume
    [ 3106.290052] usb usb6: suspend_rh (auto-stop)
    [ 3106.290077] usb usb4: suspend_rh (auto-stop)

    Signed-off-by: Huajun Li <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit d6b3d54200b7b29473041fe8c2e2f5382f2f0c80
Author: Greg Kroah-Hartman <email address hidden>
Date: Mon Dec 5 14:02:59 2011 -0800

    USB: isight: fix kernel bug when loading firmware

    commit 59bf5cf94f0fa3b08fb1258b52649077b7d0914d upstream.

    We were sending data on the stack when uploading firmware, which causes
    some machines fits, and is not allowed. Fix this by using the buffer we
    already had around for this very purpose.

    Reported-by: Wouter M. Koolen <email address hidden>
    Tested-by: Wouter M. Koolen <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 30234e2694cbc1d6985cafc87db5cd4848493196
Author: Julia Lawall <email address hidden>
Date: Fri Dec 23 14:02:55 2011 +0100

    drivers/usb/class/cdc-acm.c: clear dangling pointer

    commit e7c8e8605d0bafc705ff27f9da98a1668427cc0f upstream.

    On some failures, the country_code field of an acm structure is freed
    without freeing the acm structure itself. Elsewhere, operations including
    memcpy and kfree are performed on the country_code field. The patch sets
    the country_code field to NULL when it is freed, and likewise sets the
    country_code_size field to 0.

    Signed-off-by: Julia Lawall <email address hidden>
    Acked-by: Oliver Neukum <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 9e9f6a20b59570ca9374b5e79cf1e7df32c67944
Author: Jan Kara <email address hidden>
Date: Sat Dec 10 02:30:48 2011 +0100

    udf: Fix deadlock when converting file from in-ICB one to normal one

    commit d2eb8c359309ec45d6bf5b147303ab8e13be86ea upstream.

    During BKL removal in 2.6.38, conversion of files from in-ICB format to normal
    format got broken. We call ->writepage with i_data_sem held but udf_get_block()
    also acquires i_data_sem thus creating A-A deadlock.

    We fix the problem by dropping i_data_sem before calling ->writepage() which is
    safe since i_mutex still protects us against any changes in the file. Also fix
    pagelock - i_data_sem lock inversion in udf_expand_file_adinicb() by dropping
    i_data_sem before calling find_or_create_page().

    Reported-by: Matthias Matiak <email address hidden>
    Tested-by: Matthias Matiak <email address hidden>
    Reviewed-by: Namjae Jeon <email address hidden>
    Signed-off-by: Jan Kara <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 62cf6918d66acca738688658e33f9686ab174d94
Author: Li Zefan <email address hidden>
Date: Tue Dec 27 14:25:55 2011 +0800

    cgroup: fix to allow mounting a hierarchy by name

    commit 0d19ea866562e46989412a0676412fa0983c9ce7 upstream.

    If we mount a hierarchy with a specified name, the name is unique,
    and we can use it to mount the hierarchy without specifying its
    set of subsystem names. This feature is documented is
    Documentation/cgroups/cgroups.txt section 2.3

    Here's an example:

     # mount -t cgroup -o cpuset,name=myhier xxx /cgroup1
     # mount -t cgroup -o name=myhier xxx /cgroup2

    But it was broken by commit 32a8cf235e2f192eb002755076994525cdbaa35a
    (cgroup: make the mount options parsing more accurate)

    This fixes the regression.

    Signed-off-by: Li Zefan <email address hidden>
    Signed-off-by: Tejun Heo <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit b71bb82900b7491f47a0360f14d23dc30646433d
Author: Claudio Scordino <email address hidden>
Date: Fri Dec 16 15:08:49 2011 +0100

    atmel_serial: fix spinlock lockup in RS485 code

    commit dbf1115d3f8c7052788aa4e6e46abd27f3b3eeba upstream.

    Patch to fix a spinlock lockup in the driver that sometimes happens when the
    tasklet starts.

    Signed-off-by: Claudio Scordino <email address hidden>
    Signed-off-by: Dave Bender <email address hidden>
    Tested-by: Dave Bender <email address hidden>
    Acked-by: Nicolas Ferre <email address hidden>
    Acked-by: Alan Cox <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 7f35a6941c20af66dde1148b491e2f501192179b
Author: Sarah Sharp <email address hidden>
Date: Fri Dec 16 11:26:30 2011 -0800

    usbfs: Fix oops related to user namespace conversion.

    commit 1b41c8321e495337e877ca02d0b9680bc4112eff upstream.

    When running the Point Grey "flycap" program for their USB 3.0 camera
    (which was running as a USB 2.0 device for some reason), I trigger this
    oops whenever I try to open a video stream:

    Dec 15 16:48:34 puck kernel: [ 1798.715559] BUG: unable to handle kernel NULL pointer dereference at (null)
    Dec 15 16:48:34 puck kernel: [ 1798.719153] IP: [<ffffffff8147841e>] free_async+0x1e/0x70
    Dec 15 16:48:34 puck kernel: [ 1798.720991] PGD 6f833067 PUD 6fc56067 PMD 0
    Dec 15 16:48:34 puck kernel: [ 1798.722815] Oops: 0002 [#1] SMP
    Dec 15 16:48:34 puck kernel: [ 1798.724627] CPU 0
    Dec 15 16:48:34 puck kernel: [ 1798.724636] Modules linked in: ecryptfs encrypted_keys sha1_generic trusted binfmt_misc sha256_generic aesni_intel cryptd aes_x86_64 aes_generic parport_pc dm_crypt ppdev joydev snd_hda_codec_hdmi snd_hda_codec_conexant arc4 iwlwifi snd_hda_intel snd_hda_codec snd_hwdep snd_pcm thinkpad_acpi mac80211 snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq snd_timer btusb uvcvideo snd_seq_device bluetooth videodev psmouse snd v4l2_compat_ioctl32 serio_raw tpm_tis cfg80211 tpm tpm_bios nvram soundcore snd_page_alloc lp parport i915 xhci_hcd ahci libahci drm_kms_helper drm sdhci_pci sdhci e1000e i2c_algo_bit video
    Dec 15 16:48:34 puck kernel: [ 1798.734212]
    Dec 15 16:48:34 puck kernel: [ 1798.736162] Pid: 2713, comm: FlyCap2 Not tainted 3.2.0-rc5+ #28 LENOVO 4286CTO/4286CTO
    Dec 15 16:48:34 puck kernel: [ 1798.738148] RIP: 0010:[<ffffffff8147841e>] [<ffffffff8147841e>] free_async+0x1e/0x70
    Dec 15 16:48:34 puck kernel: [ 1798.740134] RSP: 0018:ffff88005715fd78 EFLAGS: 00010296
    Dec 15 16:48:34 puck kernel: [ 1798.742118] RAX: 00000000fffffff4 RBX: ffff88006fe8f900 RCX: 0000000000004118
    Dec 15 16:48:34 puck kernel: [ 1798.744116] RDX: 0000000001000000 RSI: 0000000000016390 RDI: 0000000000000000
    Dec 15 16:48:34 puck kernel: [ 1798.746087] RBP: ffff88005715fd88 R08: 0000000000000000 R09: ffffffff8146f22e
    Dec 15 16:48:34 puck kernel: [ 1798.748018] R10: ffff88006e520ac0 R11: 0000000000000001 R12: ffff88005715fe28
    Dec 15 16:48:34 puck kernel: [ 1798.749916] R13: ffff88005d31df00 R14: ffff88006fe8f900 R15: 00007f688c995cb8
    Dec 15 16:48:34 puck kernel: [ 1798.751785] FS: 00007f68a366da40(0000) GS:ffff880100200000(0000) knlGS:0000000000000000
    Dec 15 16:48:34 puck kernel: [ 1798.753659] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    Dec 15 16:48:34 puck kernel: [ 1798.755509] CR2: 0000000000000000 CR3: 00000000706bb000 CR4: 00000000000406f0
    Dec 15 16:48:34 puck kernel: [ 1798.757334] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    Dec 15 16:48:34 puck kernel: [ 1798.759124] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Dec 15 16:48:34 puck kernel: [ 1798.760871] Process FlyCap2 (pid: 2713, threadinfo ffff88005715e000, task ffff88006c675b80)
    Dec 15 16:48:34 puck kernel: [ 1798.762605] Stack:
    Dec 15 16:48:34 puck kernel: [ 1798.764297] ffff88005715fe28 0000000000000000 ffff88005715fe08 ffffffff81479058
    Dec 15 16:48:34 puck kernel: [ 1798.766020] 0000000000000000 ffffea0000004000 ffff880000004118 0000000000000000
    Dec 15 16:48:34 puck kernel: [ 1798.767750] ffff880000000001 ffff88006e520ac0 fffffff46fd81180 0000000000000000
    Dec 15 16:48:34 puck kernel: [ 1798.769472] Call Trace:
    Dec 15 16:48:34 puck kernel: [ 1798.771147] [<ffffffff81479058>] proc_do_submiturb+0x778/0xa00
    Dec 15 16:48:34 puck kernel: [ 1798.772798] [<ffffffff8147a5fd>] usbdev_do_ioctl+0x24d/0x1200
    Dec 15 16:48:34 puck kernel: [ 1798.774410] [<ffffffff8147b5de>] usbdev_ioctl+0xe/0x20
    Dec 15 16:48:34 puck kernel: [ 1798.775975] [<ffffffff81189259>] do_vfs_ioctl+0x99/0x600
    Dec 15 16:48:34 puck kernel: [ 1798.777534] [<ffffffff81189851>] sys_ioctl+0x91/0xa0
    Dec 15 16:48:34 puck kernel: [ 1798.779088] [<ffffffff816247c2>] system_call_fastpath+0x16/0x1b
    ec 15 16:48:34 puck kernel: [ 1798.780634] Code: 51 ff ff ff e9 29 ff ff ff 0f 1f 40 00 55 48 89 e5 53 48 83 ec 08 66 66 66 66 90 48 89 fb 48 8b 7f 18 e8 a6 ea c0 ff 4
    8 8b 7b 20 <f0> ff 0f 0f 94 c0 84 c0 74 05 e8 d3 99 c1 ff 48 8b 43 40 48 8b
    Dec 15 16:48:34 puck kernel: [ 1798.783970] RIP [<ffffffff8147841e>] free_async+0x1e/0x70
    Dec 15 16:48:34 puck kernel: [ 1798.785630] RSP <ffff88005715fd78>
    Dec 15 16:48:34 puck kernel: [ 1798.787274] CR2: 0000000000000000
    Dec 15 16:48:34 puck kernel: [ 1798.794728] ---[ end trace 52894d3355f88d19 ]---

    markup_oops.pl says the oops is in put_cred:

     ffffffff81478401: 48 89 e5 mov %rsp,%rbp
     ffffffff81478404: 53 push %rbx
     ffffffff81478405: 48 83 ec 08 sub $0x8,%rsp
     ffffffff81478409: e8 f2 c0 1a 00 callq ffffffff81624500 <mcount>
     ffffffff8147840e: 48 89 fb mov %rdi,%rbx | %ebx => ffff88006fe8f900
            put_pid(as->pid);
     ffffffff81478411: 48 8b 7f 18 mov 0x18(%rdi),%rdi
     ffffffff81478415: e8 a6 ea c0 ff callq ffffffff81086ec0 <put_pid>
            put_cred(as->cred);
     ffffffff8147841a: 48 8b 7b 20 mov 0x20(%rbx),%rdi | %edi => 0 %ebx = ffff88006fe8f900
      */
     static inline int atomic_dec_and_test(atomic_t *v)
     {
            unsigned char c;

            asm volatile(LOCK_PREFIX "decl %0; sete %1"
    *ffffffff8147841e: f0 ff 0f lock decl (%rdi) | %edi = 0 <--- faulting instruction
     ffffffff81478421: 0f 94 c0 sete %al
     static inline void put_cred(const struct cred *_cred)
     {
            struct cred *cred = (struct cred *) _cred;

            validate_creds(cred);
            if (atomic_dec_and_test(&(cred)->usage))
     ffffffff81478424: 84 c0 test %al,%al
     ffffffff81478426: 74 05 je ffffffff8147842d <free_async+0x2d>
                    __put_cred(cred);
     ffffffff81478428: e8 d3 99 c1 ff callq ffffffff81091e00 <__put_cred>
            kfree(as->urb->transfer_buffer);
     ffffffff8147842d: 48 8b 43 40 mov 0x40(%rbx),%rax
     ffffffff81478431: 48 8b 78 68 mov 0x68(%rax),%rdi
     ffffffff81478435: e8 a6 e1 ce ff callq ffffffff811665e0 <kfree>
            kfree(as->urb->setup_packet);
     ffffffff8147843a: 48 8b 43 40 mov 0x40(%rbx),%rax
     ffffffff8147843e: 48 8b b8 90 00 00 00 mov 0x90(%rax),%rdi
     ffffffff81478445: e8 96 e1 ce ff callq ffffffff811665e0 <kfree>
            usb_free_urb(as->urb);
     ffffffff8147844a: 48 8b 7b 40 mov 0x40(%rbx),%rdi
     ffffffff8147844e: e8 0d 6b ff ff callq ffffffff8146ef60 <usb_free_urb>

    This bug seems to have been introduced by commit
    d178bc3a708f39cbfefc3fab37032d3f2511b4ec "user namespace: usb: make usb
    urbs user namespace aware (v2)"

    I'm not sure if this is right fix, but it does stop the oops.

    Unfortunately, the Point Grey software still refuses to work, but it's a
    closed source app, so I can't fix it.

    Signed-off-by: Sarah Sharp <email address hidden>
    Acked-by: Serge Hallyn <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 170b209abef52783adcc3855c6afb51333e8ae89
Author: Alan Stern <email address hidden>
Date: Wed Jan 4 16:36:35 2012 -0500

    USB: update documentation for usbmon

    commit d8cae98cddd286e38db1724dda1b0e7b467f9237 upstream.

    The documentation for usbmon is out of date; the usbfs "devices" file
    now exists in /sys/kernel/debug/usb rather than /proc/bus/usb. This
    patch (as1505) updates the documentation accordingly, and also
    mentions that the necessary information can be found by running lsusb.

    Signed-off-by: Alan Stern <email address hidden>
    CC: Pete Zaitcev <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit d1883e7052eeffca3f42922bb31fa44d0992c6a6
Author: K. Y. Srinivasan <email address hidden>
Date: Tue Dec 27 13:49:37 2011 -0800

    Drivers:hv: Fix a bug in vmbus_driver_unregister()

    commit 8f257a142fc3868d69de3f996b95d7bdbc509560 upstream.

    The function vmbus_exists() was introduced recently to deal with cases where
    the vmbus driver failed to initialize and yet other Hyper-V drivers attempted
    to register with the vmbus bus driver. This patch introduced a bug where
    vmbus_driver_unregister() would fail to unregister the driver. This patch
    fixes the problem.

    Signed-off-by: K. Y. Srinivasan <email address hidden>
    Signed-off-by: Fuzhou Chen <email address hidden>
    Cc: Sasha Levin <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 32eef9ed02e483cb39d0d70316ba35a5d4920b6b
Author: K. Y. Srinivasan <email address hidden>
Date: Thu Dec 1 09:59:34 2011 -0800

    drivers: hv: Don't OOPS when you cannot init vmbus

    commit cf6a2eacbcb2593b5b91d0817915c4f0464bb534 upstream.

    The hv vmbus driver was causing an OOPS since it was trying to register drivers
    on top of the bus even if initialization of the bus has failed for some
    reason (such as the odd chance someone would run a hv enabled kernel in a
    non-hv environment).

    Signed-off-by: Sasha Levin <email address hidden>
    Signed-off-by: K. Y. Srinivasan <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 0558681f027b24a134e24fee2d96a0a1c6174c76
Author: Jan Kara <email address hidden>
Date: Thu Dec 22 16:49:05 2011 +0100

    ext3: Don't warn from writepage when readonly inode is spotted after error

    commit 33c104d415e92a51aaf638dc3d93920cfa601e5c upstream.

    WARN_ON_ONCE(IS_RDONLY(inode)) tends to trip when filesystem hits error and is
    remounted read-only. This unnecessarily scares users (well, they should be
    scared because of filesystem error, but the stack trace distracts them from the
    right source of their fear ;-). We could as well just remove the WARN_ON but
    it's not hard to fix it to not trip on filesystem with errors and not use more
    cycles in the common case so that's what we do.

    Signed-off-by: Jan Kara <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 04e06ee56d4667deb90a3bb2952cfcffb051ff65
Author: Jeff Mahoney <email address hidden>
Date: Wed Dec 21 21:18:43 2011 +0100

    reiserfs: Force inode evictions before umount to avoid crash

    commit a9e36da655e54545c3289b2a0700b5c443de0edd upstream.

    This patch fixes a crash in reiserfs_delete_xattrs during umount.

    When shrink_dcache_for_umount clears the dcache from
    generic_shutdown_super, delayed evictions are forced to disk. If an
    evicted inode has extended attributes associated with it, it will
    need to walk the xattr tree to locate and remove them.

    But since shrink_dcache_for_umount will BUG if it encounters active
    dentries, the xattr tree must be released before it's called or it will
    crash during every umount.

    This patch forces the evictions to occur before generic_shutdown_super
    by calling shrink_dcache_sb first. The additional evictions caused
    by the removal of each associated xattr file and dir will be automatically
    handled as they're added to the LRU list.

    CC: <email address hidden>
    Signed-off-by: Jeff Mahoney <email address hidden>
    Signed-off-by: Jan Kara <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit e75c11aceb7c8717241719e531c9adece8111987
Author: Jan Kara <email address hidden>
Date: Wed Dec 21 17:35:34 2011 +0100

    reiserfs: Fix quota mount option parsing

    commit a06d789b424190e9f59da391681f908486db2554 upstream.

    When jqfmt mount option is not specified on remount, we mistakenly clear
    s_jquota_fmt value stored in superblock. Fix the problem.

    CC: <email address hidden>
    Signed-off-by: Jan Kara <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 88e02818005ddaf5d584f58586c38f18168cecf3
Author: Boaz Harrosh <email address hidden>
Date: Tue Nov 29 15:35:53 2011 -0800

    ore: FIX breakage when MISC_FILESYSTEMS is not set

    commit 831c2dc5f47c1dc79c32229d75065ada1dcc66e1 upstream.

    As Reported by Randy Dunlap

    When MISC_FILESYSTEMS is not enabled and NFS4.1 is:

    fs/built-in.o: In function `objio_alloc_io_state':
    objio_osd.c:(.text+0xcb525): undefined reference to `ore_get_rw_state'
    fs/built-in.o: In function `_write_done':
    objio_osd.c:(.text+0xcb58d): undefined reference to `ore_check_io'
    fs/built-in.o: In function `_read_done':
    ...

    When MISC_FILESYSTEMS, which is more of a GUI thing then anything else,
    is not selected. exofs/Kconfig is never examined during Kconfig,
    and it can not do it's magic stuff to automatically select everything
    needed.

    We must split exofs/Kconfig in two. The ore one is always included.
    And the exofs one is left in it's old place in the menu.

    Reported-by: Randy Dunlap <email address hidden>
    Signed-off-by: Boaz Harrosh <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 673a3083dc48d45a798ee509995899e11625aa9d
Author: Boaz Harrosh <email address hidden>
Date: Wed Dec 28 19:21:45 2011 +0200

    ore: Must support none-PAGE-aligned IO

    commit 724577ca355795b0a25c93ccbeee927871ca1a77 upstream.

    NFS might send us offsets that are not PAGE aligned. So
    we must read in the reminder of the first/last pages, in cases
    we need it for Parity calculations.

    We only add an sg segments to read the partial page. But
    we don't mark it as read=true because it is a lock-for-write
    page.

    TODO: In some cases (IO spans a single unit) we can just
    adjust the raid_unit offset/length, but this is left for
    later Kernels.

    Signed-off-by: Boaz Harrosh <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 0889c179651f57c6fdf4ed72e5027c5dcc90bda2
Author: Boaz Harrosh <email address hidden>
Date: Wed Dec 28 19:14:23 2011 +0200

    ore: fix BUG_ON, too few sgs when reading

    commit 361aba569f55dd159b850489a3538253afbb3973 upstream.

    When reading RAID5 files, in rare cases, we calculated too
    few sg segments. There should be two extra for the beginning
    and end partial units.

    Also "too few sg segments" should not be a BUG_ON there is
    all the mechanics in place to handle it, as a short read.
    So just return -ENOMEM and the rest of the code will gracefully
    split the IO.

    Signed-off-by: Boaz Harrosh <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 688485273b3173d2fdb590ff916b55c581da6ed0
Author: Boaz Harrosh <email address hidden>
Date: Tue Dec 27 19:23:36 2011 +0200

    ore: Fix crash in case of an IO error.

    commit ffefb8eaa367e8a5c14f779233d9da1fbc23d164 upstream.

    The users of ore_check_io() expect the reported device
    (In case of error) to be indexed relative to the passed-in
    ore_components table, and not the logical dev index.

    This causes a crash inside objlayoutdriver in case of
    an IO error.

    Signed-off-by: Boaz Harrosh <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 923415295307845e614589c1cce62abedd4d1731
Author: Steven Rostedt <email address hidden>
Date: Fri Nov 4 16:32:25 2011 -0400

    perf: Fix parsing of __print_flags() in TP_printk()

    commit 49908a1b25d448d68fd26faca260e1850201575f upstream.

    A update is made to the sched:sched_switch event that adds some
    logic to the first parameter of the __print_flags() that shows the
    state of tasks. This change cause perf to fail parsing the flags.

    A simple fix is needed to have the parser be able to process ops
    within the argument.

    Reported-by: Andrew Vagin <email address hidden>
    Signed-off-by: Steven Rostedt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 0b58bf9909d4ef70275921fc1535f21390cf5bb5
Author: Johannes Berg <email address hidden>
Date: Mon Dec 19 14:00:59 2011 -0800

    iwlagn: fix (remove) use of PAGE_SIZE

    commit 106671369e6d046c0b3e1e72b18ad6dd9cb298b0 upstream.

    The ICT code erroneously uses PAGE_SIZE. The bug
    is that PAGE_SIZE isn't necessarily 4096, so on
    such platforms this code will not work correctly
    as we'll try to attempt to read an index in the
    table that the device never wrote, it always has
    4096-byte pages.

    Additionally, the manual alignment code here is
    unnecessary -- Documentation/DMA-API-HOWTO.txt
    states:
      The cpu return address and the DMA bus master address are both
      guaranteed to be aligned to the smallest PAGE_SIZE order which
      is greater than or equal to the requested size. This invariant
      exists (for example) to guarantee that if you allocate a chunk
      which is smaller than or equal to 64 kilobytes, the extent of the
      buffer you receive will not cross a 64K boundary.

    Just use appropriate new constants and get rid of
    the alignment code.

    Cc: Emmanuel Grumbach <email address hidden>
    Signed-off-by: Johannes Berg <email address hidden>
    Signed-off-by: Wey-Yi Guy <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 01b366aa69f33489d59d7a79702987752070fb3a
Author: Johannes Berg <email address hidden>
Date: Fri Dec 2 12:22:54 2011 -0800

    iwlagn: fix TID use bug

    commit 9a215e40d70ae63762963ab3ccc7f31dd966dc6a upstream.

    The driver everywhere uses max TID count as 9,
    which is wrong, it should be 8.

    I think the reason it uses 9 here is off-by-one
    confusion by whoever wrote this. We do use the
    value IWL_MAX_TID_COUNT for "not QoS/no TID"
    but that is completely correct even if it is 8
    and not 9 since 0-7 are only valid.

    As a side effect, this fixes the following bug:

     Open BA session requested for 00:23:cd:16:8a:7e tid 8
     ------------[ cut here ]------------
     kernel BUG at drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h:350!
     ...

    when you do
    echo "tx start 8" > /sys/kernel/debug/ieee80211/*/*/*/*/agg_status

    Reported-by: Nikolay Martynov <email address hidden>
    Signed-off-by: Johannes Berg <email address hidden>
    Signed-off-by: Wey-Yi Guy <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 585ea9bc6752c41d669ea0f4cee8f3954df326e0
Author: Eli Cohen <email address hidden>
Date: Tue Jan 3 20:36:48 2012 -0800

    IB/uverbs: Protect QP multicast list

    commit e214a0fe2b382fa302c036ecd6e6ffe99e3b9875 upstream.

    Userspace verbs multicast attach/detach operations on a QP are done
    while holding the rwsem of the QP for reading. That's not sufficient
    since a reader lock allows more than one reader to acquire the
    lock. However, multicast attach/detach does list manipulation that
    can corrupt the list if multiple threads run in parallel.

    Fix this by acquiring the rwsem as a writer to serialize attach/detach
    operations. Add idr_write_qp() and put_qp_write() to encapsulate
    this.

    This fixes oops seen when running applications that perform multicast
    joins/leaves.

    Reported by: Mike Dubman <email address hidden>
    Signed-off-by: Eli Cohen <email address hidden>
    Signed-off-by: Roland Dreier <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 0d878668d0a4663a4807d413532f3a99496eebf4
Author: Ram Vepa <email address hidden>
Date: Fri Dec 23 08:01:43 2011 -0500

    IB/qib: Fix a possible data corruption when receiving packets

    commit eddfb675256f49d14e8c5763098afe3eb2c93701 upstream.

    Prevent a receive data corruption by ensuring that the write to update
    the rcvhdrheadn register to generate an interrupt is at the very end
    of the receive processing.

    Signed-off-by: Ramkrishna Vepa <email address hidden>
    Signed-off-by: Mike Marciniszyn <email address hidden>
    Signed-off-by: Roland Dreier <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit ddcf85d72ffe4fd46239a94253fe04c114d4d1e2
Author: Li Zhong <email address hidden>
Date: Sun Dec 18 16:03:04 2011 +0000

    powerpc: Fix unpaired probe_hcall_entry and probe_hcall_exit

    commit e4f387d8db3ba3c2dae4d8bdfe7bb5f4fe1bcb0d upstream.

    Unpaired calling of probe_hcall_entry and probe_hcall_exit might happen
    as following, which could cause incorrect preempt count.

    __trace_hcall_entry => trace_hcall_entry -> probe_hcall_entry =>
    get_cpu_var => preempt_disable

    __trace_hcall_exit => trace_hcall_exit -> probe_hcall_exit =>
    put_cpu_var => preempt_enable

    where:
    A => B and A -> B means A calls B, but
    => means A will call B through function name, and B will definitely be
    called.
    -> means A will call B through function pointer, so B might not be
    called if the function pointer is not set.

    So error happens when only one of probe_hcall_entry and probe_hcall_exit
    get called during a hcall.

    This patch tries to move the preempt count operations from
    probe_hcall_entry and probe_hcall_exit to its callers.

    Reported-by: Paul E. McKenney <email address hidden>
    Signed-off-by: Li Zhong <email address hidden>
    Tested-by: Paul E. McKenney <email address hidden>
    Signed-off-by: Benjamin Herrenschmidt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 8e04782a06882913304916bc60960e4fc7405e18
Author: Anton Blanchard <email address hidden>
Date: Wed Nov 23 20:07:17 2011 +0000

    powerpc/time: Handle wrapping of decrementer

    commit 37fb9a0231ee43d42d069863bdfd567fca2b61af upstream.

    When re-enabling interrupts we have code to handle edge sensitive
    decrementers by resetting the decrementer to 1 whenever it is negative.
    If interrupts were disabled long enough that the decrementer wrapped to
    positive we do nothing. This means interrupts can be delayed for a long
    time until it finally goes negative again.

    While we hope interrupts are never be disabled long enough for the
    decrementer to go positive, we have a very good test team that can
    drive any kernel into the ground. The softlockup data we get back
    from these fails could be seconds in the future, completely missing
    the cause of the lockup.

    We already keep track of the timebase of the next event so use that
    to work out if we should trigger a decrementer exception.

    Signed-off-by: Anton Blanchard <email address hidden>
    Signed-off-by: Benjamin Herrenschmidt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit f92fed3f1de1942a61978c5e59bbed56eab4ac55
Author: Pontus Fuchs <email address hidden>
Date: Thu Dec 1 12:13:44 2011 +0100

    wl12xx: Restore testmode ABI

    commit 3f1764945eaac532c20ab1f23afa352a40f797b2 upstream.

    Commit 80900d0140a7648587982c8f299830e900e49165 accidently broke
    the ABI for testmode commands. Restore the ABI again.

    Signed-off-by: Pontus Fuchs <email address hidden>
    Signed-off-by: Luciano Coelho <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 67d3bda61b6cf7b8c3166091ab44a07fbd9e091a
Author: Pontus Fuchs <email address hidden>
Date: Tue Oct 18 09:23:42 2011 +0200

    wl12xx: Check buffer bound when processing nvs data

    commit f6efe96edd9c41c624c8f4ddbc4930c1a2d8f1e1 upstream.

    An nvs with malformed contents could cause the processing of the
    calibration data to read beyond the end of the buffer. Prevent this
    from happening by adding bound checking.

    Signed-off-by: Pontus Fuchs <email address hidden>
    Reviewed-by: Luciano Coelho <email address hidden>
    Signed-off-by: Luciano Coelho <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 240ecc4a6fa0449738920ea0658ed4508398091a
Author: Pontus Fuchs <email address hidden>
Date: Tue Oct 18 09:23:41 2011 +0200

    wl12xx: Validate FEM index from ini file and FW

    commit 2131d3c2f99b081806fdae7662c92fe6acda52af upstream.

    Check for out of bound FEM index to prevent reading beyond ini
    memory end.

    Signed-off-by: Pontus Fuchs <email address hidden>
    Reviewed-by: Luciano Coelho <email address hidden>
    Signed-off-by: Luciano Coelho <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 618bbbe723e697e71b4533d3d8af554fbe5f3e16
Author: Rafał Miłecki <email address hidden>
Date: Fri Dec 9 22:16:07 2011 +0100

    bcma: support for suspend and resume

    commit 775ab52142b02237a54184238e922251c59a2b5c upstream.

    bcma used to lock up machine without enabling PCI or initializing CC.

    Signed-off-by: Rafał Miłecki <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit dd4f146b63d18b2cc5b7f20c56ba270f6a45fd01
Author: Andres Salomon <email address hidden>
Date: Mon Dec 19 12:22:58 2011 -0800

    libertas: clean up scan thread handling

    commit afbca95f95f2bf7283a72670c24c1f6de00b1cb5 upstream.

    The libertas scan thread expects priv->scan_req to be non-NULL. In theory,
    it should always be set. In practice, we've seen the following oops:

    [ 8363.067444] Unable to handle kernel NULL pointer dereference at virtual address 00000004
    [ 8363.067490] pgd = c0004000
    [ 8363.078393] [00000004] *pgd=00000000
    [ 8363.086711] Internal error: Oops: 17 [#1] PREEMPT
    [ 8363.091375] Modules linked in: fuse libertas_sdio libertas psmouse mousedev ov7670 mmp_camera joydev videobuf2_core videobuf2_dma_sg videobuf2_memops [last unloaded: scsi_wait_scan]
    [ 8363.107490] CPU: 0 Not tainted (3.0.0-gf7ccc69 #671)
    [ 8363.112799] PC is at lbs_scan_worker+0x108/0x5a4 [libertas]
    [ 8363.118326] LR is at 0x0
    [ 8363.120836] pc : [<bf03a854>] lr : [<00000000>] psr: 60000113
    [ 8363.120845] sp : ee66bf48 ip : 00000000 fp : 00000000
    [ 8363.120845] r10: ee2c2088 r9 : c04e2efc r8 : eef97005
    [ 8363.132231] r7 : eee0716f r6 : ee2c02c0 r5 : ee2c2088 r4 : eee07160
    [ 8363.137419] r3 : 00000000 r2 : a0000113 r1 : 00000001 r0 : eee07160
    [ 8363.143896] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
    [ 8363.157630] Control: 10c5387d Table: 2e754019 DAC: 00000015
    [ 8363.163334] Process kworker/u:1 (pid: 25, stack limit = 0xee66a2f8)

    While I've not found a smoking gun, there are two places that raised red flags
    for me. The first is in _internal_start_scan, when we queue up a scan; we
    first queue the worker, and then set priv->scan_req. There's theoretically
    a 50mS delay which should be plenty, but doing things that way just seems
    racy (and not in the good way).

    The second is in the scan worker thread itself. Depending on the state of
    priv->scan_channel, we cancel pending scan runs and then requeue a run in
    300mS. We then send the scan command down to the hardware, sleep, and if
    we get scan results for all the desired channels, we set priv->scan_req to
    NULL. However, it that's happened in less than 300mS, what happens with
    the pending scan run?

    This patch addresses both of those concerns. With the patch applied, we
    have not seen the oops in the past two weeks.

    Signed-off-by: Andres Salomon <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 69236e6011d14450a3ed033327d1e6e225b35027
Author: Benjamin Herrenschmidt <email address hidden>
Date: Tue Jan 3 12:09:15 2012 +1100

    offb: Fix bug in calculating requested vram size

    commit c055fe0797b7bd8f6f21a13598a55a16d5c13ae7 upstream.

    We used to try to request 8 times more vram than needed, which would
    fail if the card has a too small BAR (observed with qemu & kvm).

    Signed-off-by: Benjamin Herrenschmidt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit dfedad611959d25331b77459bc9a96fb7765127f
Author: Benjamin Herrenschmidt <email address hidden>
Date: Wed Dec 28 00:10:16 2011 +0000

    offb: Fix setting of the pseudo-palette for >8bpp

    commit 1bb0b7d21584b3f878e2bc880db62351ddee5185 upstream.

    When using a >8bpp framebuffer, offb advertises truecolor, not directcolor,
    and doesn't touch the color map even if it has a corresponding access method
    for the real hardware.

    Thus it needs to set the pseudo-palette with all 3 components of the color,
    like other truecolor framebuffers, not with copies of the color index like
    a directcolor framebuffer would do.

    This went unnoticed for a long time because it's pretty hard to get offb
    to kick in with anything but 8bpp (old BootX under MacOS will do that and
    qemu does it).

    Signed-off-by: Benjamin Herrenschmidt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 2289fb57dc2caea22e167bba67b0b52997bce28f
Author: Larry Finger <email address hidden>
Date: Tue Dec 27 12:22:51 2011 -0600

    rt2800usb: Move ID out of unknown

    commit 3f81f8f1524ccca24df1029b0cf825ecef5e5cdc upstream.

    Testing on the openSUSE wireless forum has shown that a Linksys
    WUSB54GC v3 with USB ID 1737:0077 works with rt2800usb when the ID is
    written to /sys/.../new_id. This ID can therefore be moved out of UNKNOWN.

    Signed-off-by: Larry Finger <email address hidden>
    Acked-by: Gertjan van Wingerde <email address hidden>
    Acked-by: Ivo van Doorn <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit a5a0cdd640258b80e116de11517dd6482ab6f229
Author: Neil Horman <email address hidden>
Date: Mon Jan 2 15:31:23 2012 -0500

    firmware: Fix an oops on reading fw_priv->fw in sysfs loading file

    commit eea915bb0d1358755f151eaefb8208a2d5f3e10c upstream.

    This oops was reported recently:
    firmware_loading_store+0xf9/0x17b
    dev_attr_store+0x20/0x22
    sysfs_write_file+0x101/0x134
    vfs_write+0xac/0xf3
    sys_write+0x4a/0x6e
    system_call_fastpath+0x16/0x1b

    The complete backtrace was unfortunately not captured, but details can be found
    here:
    https://bugzilla.redhat.com/show_bug.cgi?id=769920

    The cause is fairly clear.

    Its caused by the fact that firmware_loading_store has a case 0 in its
    switch statement that reads and writes the fw_priv->fw poniter without the
    protection of the fw_lock mutex. since there is a window between the time that
    _request_firmware sets fw_priv->fw to NULL and the time the corresponding sysfs
    file is unregistered, its possible for a user space application to race in, and
    write a zero to the loading file, causing a NULL dereference in
    firmware_loading_store. Fix it by extending the protection of the fw_lock mutex
    to cover all of the firware_loading_store function.

    Signed-off-by: Neil Horman <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 170797705f7ccb335e9fe3f61967a4d465846642
Author: Joe Perches <email address hidden>
Date: Fri Dec 9 14:12:00 2011 -0800

    Documentation: Update stable address

    commit 2eb7f204db51969ea558802a6601d79c2fb273b9 upstream.

    The Japanese/Korean/Chinese versions still need updating.

    Also, the stable kernel 2.6.x.y descriptions are out of date
    and should be updated as well.

    Signed-off-by: Joe Perches <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 13e864be180093e145da19980e247b991d2fd99d
Author: Joe Perches <email address hidden>
Date: Fri Dec 9 13:54:34 2011 -0800

    MAINTAINERS: stable: Update address

    commit bc7a2f3abc636d7cab84258a48e77b08fb5fd3d6 upstream.

    The old address hasn't worked since the great intrusion of August 2011.

    Signed-off-by: Joe Perches <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 904f06d14d0b5de9872816fb97a3ab319bf6c0b0
Author: Arnaud Lacombe <email address hidden>
Date: Sat Nov 19 01:51:30 2011 -0500

    merge_config.sh: Improve file and option handling

    Three issues:

    1) bail out early on error.

    This fixes handling of non-existant file:

    Before:
        % sh scripts/kconfig/merge_config.sh non existant files
        Merging non
        sed: can't read non: No such file or directory
        cat: non: No such file or directory
        Merging existant
        sed: can't read existant: No such file or directory
        cat: existant: No such file or directory
        Merging files
        sed: can't read files: No such file or directory
        cat: files: No such file or directory
        scripts/kconfig/conf --alldefconfig Kconfig
        #
        # configuration written to .config
        #

    After:

        % sh scripts/kconfig/merge_config.sh non existant files
        Merging non
        sed: can't read non: No such file or directory

    2) re-implement argument parsing using sh(1) getopts builtin

    3) verify that the script was given enough argument to proceed. There isn't
    much point running the script with less than 2 arguments.

    CC: Sam Ravnborg <email address hidden>
    CC: <email address hidden>
    CC: <email address hidden>
    CC: Dmitry Fink <email address hidden>
    CC: Darren Hart <email address hidden>
    CC: Eric B Munson <email address hidden>
    CC: Bruce Ashfield <email address hidden>
    CC: Michal Marek <email address hidden>
    CC: <email address hidden>
    Signed-off-by: Arnaud Lacombe <email address hidden>
    [jstultz: Slight tweaks to patch description]
    [jstultz: Avoid using "set -e", and catch non-existing files explicitly]
    Signed-off-by: John Stultz <email address hidden>

commit e58af63725fa5dfee53cb089d59f42f43e1d627a
Author: John Stultz <email address hidden>
Date: Mon Nov 21 15:29:45 2011 -0800

    merge_config.sh: Fix bug in final check

    Arnaud Lacombe pointed out the final checking that
    the requested configs were included in the final .config
    was broken.

    The example was that if you had a fragment that disabled
    CONFIG_DECOMPRESS_GZIP applied to a normal defconfig,
    there would be no final warning that CONFIG_DECOMPRESS_GZIP
    was acutally set in the final .config.

    This bug was introduced by me in v3 of the original patch, and
    the following patch reverts the invalid change.

    Reported-by: Arnaud Lacombe <email address hidden>
    Signed-off-by: John Stultz <email address hidden>

commit 6d778591c6db7e49ad401edce7cf488e109e8508
Author: Darren Hart <email address hidden>
Date: Mon Nov 21 11:42:30 2011 -0800

    merge_config.sh: Whitespace cleanup

    Fix whitespace usage in the clean_up routine.

    Signed-off-by: Darren Hart <email address hidden>
    Signed-off-by: John Stultz <email address hidden>

commit 2559983204c0572c76fef48af19ddae122715bfc
Author: Darren Hart <email address hidden>
Date: Mon Nov 21 11:42:29 2011 -0800

    merge_config.sh: Use signal names compatible with dash and bash

    The SIGHUP SIGINT and SIGTERM names caused failures when running
    merge_config.sh with the dash shell. Dropping the "SIG" component
    makes the script work in both bash and dash.

    Signed-off-by: Darren Hart <email address hidden>
    Signed-off-by: John Stultz <email address hidden>

commit d346dd1f67570d28fcadbf43c4ce0f806fdd19d2
Author: John Stultz <email address hidden>
Date: Wed Aug 24 14:35:24 2011 -0700

    kconfig: Add merge_config.sh script

    After noticing almost every distro has their own method of managing
    config fragments, I went looking at some best practices, and wanted
    to try to consolidate some of the different approaches so this fairly
    simple infrastructure can be shared (and new distros/build systems
    don't have to implement yet another config fragment merge script).

    This script is most influenced by the Windriver tools used in
    the Yocto Project, reusing some portions found there.

    This script merges multiple config fragments, warning on any
    overrided values. It then sets any unspecified values to their
    default, then finally checks to make sure no specified value was
    dropped due to unsatisfied dependencies.

    I'm sure this implementation won't work for everyone, and I expect
    it will need to evolve to adapt for various use cases. But I think
    its a reasonable starting point.

    v2:
      * Reworked to use alldefconfig instead of the proposed
    olddefconfig as suggested by Sam Ravnborg.

    v3:
      * Script improvements from Dmitri.
      * allnoconfig option from Darren
      * pre-make exit option from Darren
      * lots of other fixes/cleanups from Darren.
      * Fix final check to not compain about config values in comments

    v4:
      * No code change, only properly add Darren's signed-off-by line.

    Please let me know if you have any comments or thoughts!

    CC: Sam Ravnborg <email address hidden>
    CC: <email address hidden>
    CC: <email address hidden>
    CC: Dmitry Fink <email address hidden>
    CC: Darren Hart <email address hidden>
    CC: Eric B Munson <email address hidden>
    CC: Bruce Ashfield <email address hidden>
    CC: Michal Marek <email address hidden>
    CC: <email address hidden>
    Signed-off-by: John Stultz <email address hidden>
    Signed-off-by: Darren Hart <email address hidden>
    Signed-off-by: John Stultz <email address hidden>

commit 17c05c6dee35a7e8eb3f3ac9f06c49c96daa3972
Author: Amit Daniel Kachhap <email address hidden>
Date: Wed Dec 21 16:38:23 2011 +0530

    ARM: exynos4: Add thermal sensor driver platform device support

    This patch adds necessary source definations needed for TMU driver and
    the platform device support.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit a1d8ad20f836f6c93cc64c0ff1a0f14849004e49
Author: Amit Daniel Kachhap <email address hidden>
Date: Wed Dec 21 14:32:48 2011 +0530

    thermal: exynos4: Register the tmu sensor with the thermal interface layer

    Export and register information from the hwmon tmu sensor to the samsung
    exynos kernel thermal framework where different cooling devices and thermal
    zone are binded. The exported information is based according to the data
    structure thermal_sensor_conf present in exynos_thermal.h. HWMON sysfs
    functions are currently left although all of them are present in generic
    linux thermal layer.
    Also the platform data structure is modified to pass frequency cooling
    in percentages for each thermal level.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 6437b2693ca0bdafb9264b939cb9a1b9fcac0856
Author: Amit Daniel Kachhap <email address hidden>
Date: Wed Dec 21 15:23:55 2011 +0530

    thermal: exynos: Add thermal interface support for linux thermal layer

    This codes uses the generic linux thermal layer and creates a bridge
    between temperature sensors, linux thermal framework and cooling devices
    for samsung exynos platform. This layer recieves or monitor the
    temperature from the sensor and informs the generic thermal layer to take
    the necessary cooling action.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 807ebf2427a3f208338d49b7d6b66ff115e8cb72
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Dec 13 20:40:01 2011 +0530

    thermal: Add generic cpu cooling implementation

    This patch adds support for generic cpu thermal cooling low level
    implementations using frequency scaling and cpuhotplugg currently.
    Different cpu related cooling devices can be registered by the
    user and the binding of these cooling devices to the corresponding
    trip points can be easily done as the registration API's return the
    cooling device pointer.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 7308530279ffbb04456bfedef5c86281af5d90f4
Author: Amit Daniel Kachhap <email address hidden>
Date: Thu Dec 1 18:51:39 2011 +0530

    thermal: Add a new trip type to use cooling device instance number

    This patch adds a new trip type THERMAL_TRIP_STATE_ACTIVE. This
    trip behaves same as THERMAL_TRIP_ACTIVE but also passes the cooling
    device instance number. This helps the cooling device registered as
    different instances to perform appropriate cooling action decision in
    the set_cur_state call back function.

    Also since the trip temperature's are in ascending order so some logic
    is put in place to skip the un-necessary checks.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 92a78c5dfff148e46ab43caf8344dabe79be5783
Author: Jaecheol Lee <email address hidden>
Date: Tue Dec 6 15:43:10 2011 +0530

    EXYNOS: Removed useless headers and codes

    This patch removes no referencing header files and cleaned up
    useless code.

    Signed-off-by: Jaecheol Lee <email address hidden>
    Signed-off-by: Kukjin Kim <email address hidden>

commit cdc0ab6d14b08082c995e28512285fec390a7ce4
Author: Jaecheol Lee <email address hidden>
Date: Tue Dec 6 15:43:09 2011 +0530

    EXYNOS: Make EXYNOS common cpufreq driver

    To support various EXYNOS series SoCs commonly,
    added exynos common structure.
    exynos-cpufreq.c => EXYNOS series common cpufreq driver
    exynos4210-cpufreq.c => EXYNOS4210 support cpufreq driver

    Signed-off-by: Jaecheol Lee <email address hidden>
    Signed-off-by: Kukjin Kim <email address hidden>

commit c1859cf917f3734c539b3660fcecba33edc58798
Author: Jaecheol Lee <email address hidden>
Date: Tue Dec 6 15:43:08 2011 +0530

    EXYNOS4210: cpufreq code is changed for stable working

    This patch is modify code for stable working
    1. Remove unused register access code
    2. Change sequence for frequency changing

    Signed-off-by: Jaecheol Lee <email address hidden>
    Signed-off-by: Jonghwan Choi <email address hidden>
    Signed-off-by: Jongpill Lee <email address hidden>
    Signed-off-by: Kukjin Kim <email address hidden>

commit b2dc5704dbe07b44eb586250532893ec98017d26
Author: Jaecheol Lee <email address hidden>
Date: Tue Dec 6 15:43:07 2011 +0530

    EXYNOS4210: Update frequency table for cpu divider

    This patch is changes frequency table for cpu divider for stable frequency.

    Signed-off-by: Jaecheol Lee <email address hidden>
    Signed-off-by: Jongpill Lee <email address hidden>
    Signed-off-by: Kukjin Kim <email address hidden>

commit 9d6614da322c00dd536a2c5aff50e88934ddacbc
Author: Jaecheol Lee <email address hidden>
Date: Tue Dec 6 15:43:06 2011 +0530

    EXYNOS4210: Remove code about bus on cpufreq

    This patch removes code for bus on cpufreq because the code
    for bus frequency changing moves to busfreq driver.
    So code about bus on cpufreq is not necessary.

    Signed-off-by: Jaecheol Lee <email address hidden>
    Signed-off-by: Jongpill Lee <email address hidden>
    Signed-off-by: Kukjin Kim <email address hidden>

commit 29a443b2f2b0d3eb5d9b81e5d7eb495a237fbce4
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Jan 10 10:49:19 2012 +0530

    ARM: exynos: Enable l2 configuration through device tree

    This patch enables calling generic l2 setup functions if device tree is used.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 0e751a7fd1547a24aaee058e034074b3aea5854c
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Jan 10 10:45:16 2012 +0530

    ARM: exynos: remove useless code to save/restore L2

    Following the merge of CPU PM notifiers and L2 resume code, this patch
    removes useless code to save and restore L2 registers.

    This is now automatically covered by suspend calls which integrated
    CPU PM notifiers and new sleep code that allows to resume L2 before MMU
    is turned on.

    Signed-off-by: Lorenzo Pieralisi <email address hidden>
    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit c054d6bd3be5c41186359eb3e29ad02d8d0a603a
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Jan 10 10:39:46 2012 +0530

    ARM: exynos: save L2 settings during bootup

    This patch adds code to save L2 register configuration at boot, and
    later used to resume L2 before MMU is enabled in suspend and cpuidle
    resume paths.

    Signed-off-by: Lorenzo Pieralisi <email address hidden>
    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 36c3124de174d3e0a1802783a066c34e6bafaaa0
Author: Amit Daniel Kachhap <email address hidden>
Date: Mon Dec 5 15:24:33 2011 +0530

    ARM: s5p: add L2 early resume code

    This patch adds code to resume L2 before MMU is enabled in
    suspend and cpuidle resume paths. s3c_cpu_resume is moved to the
    data section with appropriate comments.

    Signed-off-by: Lorenzo Pieralisi <email address hidden>
    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 1c6ff422e74e1a58d25a815cf4c04d05255852e5
Author: Amit Daniel Kachhap <email address hidden>
Date: Wed Jan 4 13:46:19 2012 +0530

    ARM: exynos: Add support AFTR mode on EXYNOS4210

    This patch adds support AFTR(ARM OFF TOP RUNNING) mode in
    cpuidle driver. L2 cache keeps their data in this mode.
    This patch ports the code to the latest interfaces to
    save/restore CPU state inclusive of CPU PM notifiers, l2
    resume and cpu_suspend/resume.

    Signed-off-by: Jaecheol Lee <email address hidden>
    Signed-off-by: Lorenzo Pieralisi <email address hidden>
    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 027d7c326426cc82f6190ac905f23e061b10de04
Author: Grant Likely <email address hidden>
Date: Mon Oct 24 11:09:15 2011 +0200

    dt: Linux dt usage model documentation

    v2: 2nd draft
     - Editorial cleanups from Randy Dunlap

    Signed-off-by: Grant Likely <email address hidden>

commit b155f49f99013f97367dd500771a89d6e01573c1
Author: Grant Likely <email address hidden>
Date: Mon Oct 24 11:09:12 2011 +0200

    arm/dt: vexpress: add basic DT platform matching support

    This patch adds a DT match table to the Versatile Express machine
    description in order to enable basic device tree support.

    Tested on a Versatile Express board where the device tree blob is
    passed to the kernel by u-boot.

    Signed-off-by: Lorenzo Pieralisi <email address hidden>
    [converted .dts file to use skeleton.dtsi, and added 'dtbs' targets]
    Signed-off-by: Grant Likely <email address hidden>

commit 924374e93b4fc8b81256afff8b2cf7dddfcc8841
Author: Grant Likely <email address hidden>
Date: Mon Oct 24 11:09:11 2011 +0200

    arm/dt: Add basic device tree support for mx51 and mx53 boards

    This patch add support for the Genesi Efika MX Smarttop and Smartbook,
    the Freescale mx51 babbage board, and the Freescale mx53 loco board

    Signed-off-by: Jason Liu <email address hidden>
    Signed-off-by: Grant Likely <email address hidden>

commit 9c50b33c062467aea0a9609222457213a9cd1c6a
Author: Andrey Konovalov <email address hidden>
Date: Fri Jan 6 23:12:42 2012 +0400

    arm/dt: Add basic device tree support for smdkv310 board

    Enable basic device tree support for Exynos4 smdkv310 board.

    Signed-off-by: Thomas Abraham <email address hidden>
    Signed-off-by: Grant Likely <email address hidden>

commit fb722352d16890b54e392d3055e3ecb4bd3471db
Author: Grant Likely <email address hidden>
Date: Mon Oct 24 11:09:10 2011 +0200

    arm/dt: omap3 basic device tree board support

    Enable basic device tree support for the Gumstix Overo, IGEP, Panda
    and Beagle OMAP boards

    Signed-off-by: Andy Doan <email address hidden>
    Signed-off-by: Jon Medhurst <email address hidden>
    Signed-off-by: Grant Likely <email address hidden>

    Conflicts:

     arch/arm/boot/dts/omap3-beagle.dts
     arch/arm/boot/dts/omap4-panda.dts
     arch/arm/mach-omap2/board-omap4panda.c

commit eefbee38f4dc7f3815f70c00e2d4d6e4ef341e6b
Author: Shawn Guo <email address hidden>
Date: Mon Oct 24 11:09:07 2011 +0200

    arm/dt: add versatile dtb build rules

    Makes 'make dtbs' build the versatile .dtb files when versatile is enabled.

    Signed-off-by: Grant Likely <email address hidden>

commit e1682169767813478b39b9049caffe155d231f4e
Author: John Bonesio <email address hidden>
Date: Mon Oct 24 11:09:06 2011 +0200

    dt: Add id to AUXDATA structure

    This patch adds the ability to set the device id in the AUXDATA structure for
    those few device drivers that just have to have a statically defined device id.

    Signed-off-by: John Bonesio <email address hidden>
    Signed-off-by: Grant Likely <email address hidden>

commit 3d07054219c418577cf384a14107fdadc6deca12
Author: Kautuk Consul <email address hidden>
Date: Tue Nov 22 13:31:30 2011 -0500

    arm: fault.c: Port OOM changes into do_page_fault

    Commit d065bd810b6deb67d4897a14bfe21f8eb526ba99
    (mm: retry page fault when blocking on disk transfer) and
    commit 37b23e0525d393d48a7d59f870b3bc061a30ccdb
    (x86,mm: make pagefault killable)

    The above commits introduced changes into the x86 pagefault handler
    for making the page fault handler retryable as well as killable.

    These changes reduce the mmap_sem hold time, which is crucial
    during OOM killer invocation.

    Port these changes to ARM.

    Without these changes, my ARM board encounters many hang and livelock
    scenarios.
    After applying this patch, OOM feature performance improves according to
    my testing.

    Signed-off-by: Kautuk Consul <email address hidden>
    "I think this is fine"-by Russell King - ARM Linux <email address hidden>
    Signed-off-by: Nicolas Pitre <email address hidden>

commit 2eb6f8b98d8471c83be7e3ab53fe4386884c96a9
Author: Vincent Guittot <email address hidden>
Date: Fri Oct 21 09:02:47 2011 +0200

    sched: Ensure cpu_power periodic update

    With a lot of small task, the softirq sched is nearly never called
    when no_hz is enable. Te load_balance is mainly called with
    the newly_idle mode which doesn't update the cpu_power.
    Add a next_update field which ensure a maximum update period when
    there is short activity

    Signed-off-by: Vincent Guittot <email address hidden>

commit 2b21b980917662503a16e079b5d4a5a8a17886cd
Author: Arnd Bergmann <email address hidden>
Date: Sat Oct 8 17:07:50 2011 +0200

    ARM: kprobes: work around build errors

    I got a few build errors for kprobes playing with randconfig on the
    latest kernel. While this patch manages to avoid these errors, I'm
    pretty sure that it is not the ideal solution.

    The errors I got in arm are while building for ARMv6 with
    the arm-linux-gnueabihf-gcc-4.6 provided by Linaro, which
    results in these messages:

    /tmp/ccGpftnj.s: Assembler messages:
    /tmp/ccGpftnj.s:22066: Error: selected processor does not support ARM mode `mls r0,r1,r2,r3'
    /tmp/ccGpftnj.s:22099: Error: selected processor does not support ARM mode `mlshi r7,r8,r9,r10'
    /tmp/ccGpftnj.s:22128: Error: selected processor does not support ARM mode `mls lr,r1,r2,r13'
    /tmp/ccGpftnj.s:23781: Error: selected processor does not support ARM mode `strexd r0,r2,r3,[sp]'
    /tmp/ccGpftnj.s:23802: Error: selected processor does not support ARM mode `ldrexd r2,r3,[sp]'
    /tmp/ccGpftnj.s:23823: Error: selected processor does not support ARM mode `strexb r0,r2,[sp]'
    /tmp/ccGpftnj.s:23844: Error: selected processor does not support ARM mode `ldrexb r2,[sp]'
    /tmp/ccGpftnj.s:23865: Error: selected processor does not support ARM mode `strexh r0,r2,[sp]'
    /tmp/ccGpftnj.s:23886: Error: selected processor does not support ARM mode `ldrexh r2,[sp]'
    /tmp/ccGpftnj.s:25836: Warning: base register written back, and overlaps second transfer register

    [ NP: I didn't reproduce the T2 errors, and Tixy was doubtful about them.
      Merged Tixy's change suggestions and his ACK. ]

    Signed-off-by: Arnd Bergmann <email address hidden>
    Acked-by: Jon Medhurst <email address hidden>
    Signed-off-by: Nicolas Pitre <email address hidden>

commit 61d24dd4d0528d369ea81f6e5d5e1db9c62ad46a
Author: Ming Lei <email address hidden>
Date: Wed Aug 31 00:03:13 2011 +0800

    usb: ehci: make HC see up-to-date qh/qtd descriptor ASAP

    This patch introduces the helper of ehci_sync_mem to flush
    qtd/qh into memory immediately on some ARM, so that HC can
    see the up-to-date qtd/qh descriptor asap.

    This patch fixs one performance bug on ARM Cortex A9 dual core
    platform, which has been reported on quite a few ARM machines
    (OMAP4, Tegra 2, snowball...), see details from link of
    https://bugs.launchpad.net/bugs/709245.

    The patch has been tested ok on OMAP4 panda A1 board, and the
    performance of 'dd' over usb mass storage can be increased from
    4~5MB/sec to 14~16MB/sec after applying this patch.

    Cc: Russell King <email address hidden>
    Signed-off-by: Ming Lei <email address hidden>
    Signed-off-by: Alan Stern <email address hidden>

commit 01deeef1e25035bbaca9bc580c88dc7cdbc85363
Merge: 805a6af ef3a0bf
Author: Andrey Konovalov <email address hidden>
Date: Fri Jan 6 16:53:54 2012 +0400

    Merge branch 'rmk-devel-stable' into linux-linaro-tracking

    Conflicts:
     arch/arm/kernel/setup.c
     arch/arm/mach-shmobile/board-kota2.c

commit ef3a0bf5bfadbace156fa2a3b9c753df2de41df2
Author: Linus Walleij <email address hidden>
Date: Wed Jan 4 11:42:19 2012 +0100

    ARM: 7269/1: mach-sa1100: fix sched_clock breakage

    Fixed up a simple typo in the runtime sched_clock conversion
    so we compile again.

    Cc: Kristoffer Ericson <email address hidden>
    Acked-by: Marc Zyngier <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit e0b58ee8c429197c3747b1f03dd1cb9dd082bc0e
Merge: cfef032 9561f4e
Author: Russell King <email address hidden>
Date: Wed Jan 4 09:01:51 2012 +0000

    Merge branch 'vmalloc' of git://git.linaro.org/people/nico/linux into devel-stable

commit cfef0320ead7d707c363b18bb6f13f6c3bda316a
Author: Linus Walleij <email address hidden>
Date: Mon Jan 2 14:50:15 2012 +0100

    ARM: 7261/1: clocksource/ux500-prcmu: fix sched_clock breakage

    commit 2f0778afac79bd8d226225556858a636931eeabc adding
    runtime-selectable sched_clock() forgot to patch this
    driver down in drivers/clocksource, this patch fixes
    the problem.

    Reported-by: Daniel Lezcano <email address hidden>
    Acked-by: Marc Zyngier <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 9f9df00accb343f61a5782904af10366a18ebb5a
Author: Jamie Iles <email address hidden>
Date: Wed Dec 14 23:43:17 2011 +0100

    ARM: 7236/1: vic: always use simple ops

    Now that irq_domain_simple_ops are available for non-DT users, use them
    in the VIC driver so that we don't get a NULL dereference in
    irq_domain_to_irq() when registering the domain.

    Cc: Linus Walleij <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 0d2006bbf09e817f125ba1e42b2549bc2c5d7351
Author: Chanho Park <email address hidden>
Date: Tue Jan 3 16:47:51 2012 +0900

    pinctrl: remove unnecessary max pin number

    This patch removes maxpin member in the pin control descriptor
    because we don't need this value as we enumerate a pin space
    using offset.

    Signed-off-by: Chanho Park <email address hidden>
    Signed-off-by: Kyungmin Park <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 706e8520e8450a631ca6f798f8c811faf56f0a59
Author: Chanho Park <email address hidden>
Date: Tue Jan 3 16:47:50 2012 +0900

    pinctrl: correct a offset while enumerating pins

    This patch modifies a offset while enumerating pins to support a
    partial pin space. If we use a pin number for enumerating pins,
    the pin space always starts with zero base. Indeed, we always check
    the pin is in the pin space. An extreme example, there is only two pins.
    One is 0. Another is 1000. We always enumerate whole offsets until 1000.
    For solving this problem, we use the offset of the pin array instead
    of the zero-based pin number.

    Signed-off-by: Chanho Park <email address hidden>
    Signed-off-by: Kyungmin Park <email address hidden>
    [Restored sparse pin space comment]
    Signed-off-by: Linus Walleij <email address hidden>

commit e6337c3c96a7ee5cfd5e7afed825f894d4576f58
Author: Dong Aisheng <email address hidden>
Date: Tue Dec 20 17:51:59 2011 +0800

    pinctrl: some typo fixes

    Minor copyedits.

    Signed-off-by: Dong Aisheng <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 3bece55aa5356af0171aaa64fd9c4f7601c47f1c
Author: Linus Walleij <email address hidden>
Date: Sun Dec 18 23:44:26 2011 +0100

    pinctrl: rename U300 and SIRF pin controllers

    For stringent order, rename the pinmux-* pin controllers to
    pinctrl-* and also rename the Kconfig symbols and in-kernel
    users.

    Cc: Rongjun Ying <email address hidden>
    Cc: Jean-Christophe PLAGNIOL-VILLARD <email address hidden>
    Acked-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 43699dea1ea21a0d5786317a794cb2ba27a6f4fe
Author: Stephen Warren <email address hidden>
Date: Thu Dec 15 16:57:17 2011 -0700

    pinctrl: pass name instead of device to pin_config_*

    Obtaining a "struct pinctrl_dev *" is difficult for code not directly
    related to the pinctrl subsystem. However, the device name of the pinctrl
    device is fairly well known. So, modify pin_config_*() to take the device
    name instead of the "struct pinctrl_dev *".

    Signed-off-by: Stephen Warren <email address hidden>
    [rebased on top of refactoring code]
    Signed-off-by: Linus Walleij <email address hidden>

commit 63fd5984a9b2214cba7dd7dd7b5a75cf40dde39f
Author: Stephen Warren <email address hidden>
Date: Thu Dec 15 16:57:16 2011 -0700

    pinctrl: add "struct seq_file;" to pinconf.h

    This allows one to include pinconf.h without having to include other
    headers first.

    Signed-off-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit ca53c5f1ca5c936777caca46b7c716a40682ce83
Author: Linus Walleij <email address hidden>
Date: Wed Dec 14 20:33:37 2011 +0100

    pinctrl: conjure names for unnamed pins

    If pins with blank names are registered, we assign them names on-the-fly
    on the form "PINn" where n is the pin number for that pin on the specific
    controller.

    Acked-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 23750196ef472e9249958d5165b0bb292518c710
Author: Linus Walleij <email address hidden>
Date: Wed Dec 14 09:30:08 2011 +0100

    pinctrl: add a group-specific hog macro

    To create elegant tables for pinmux hogs on the PXA MMP platform,
    we need this hog macro that can specify both function and group in
    one go.

    Acked-by: Stephen Warren <email address hidden>
    Acked-by: Haojian Zhuang <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 51cd24ee625c348654114032499914d0311e5832
Author: Stephen Warren <email address hidden>
Date: Fri Dec 9 16:59:05 2011 -0700

    pinctrl: don't create a device for each pin controller

    Pin controllers should already be instantiated as a device, so there's
    no need for the pinctrl core to create a new struct device for each
    controller.

    This allows the controller's real name to be used in the mux mapping
    table, rather than e.g. "pinctrl.0", "pinctrl.1", etc.

    This necessitates removal of the PINMUX_MAP_PRIMARY*() macros, since
    their sole purpose was to hard-code the .ctrl_dev_name field to be
    "pinctrl.0".

    Signed-off-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 528b78306ecf82af06c4862aa5518643fe20a440
Author: Stephen Warren <email address hidden>
Date: Fri Dec 9 16:59:04 2011 -0700

    arm/u300: don't use PINMUX_MAP_PRIMARY*

    The next patch will remove these macros.

    Signed-off-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 1ddb6ff03c0cdec58c6cfdbada95acddcce4a7b7
Author: Stephen Warren <email address hidden>
Date: Fri Dec 9 16:59:03 2011 -0700

    pinctrl: implement PINMUX_MAP_SYS_HOG

    This is the same as PINMUX_MAP_PRIMARY_SYS_HOG, except that it allows
    you to specify a particular control device.

    Signed-off-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit ae6b4d8588f4fc95520b0e62c4b1f474c82191a9
Author: Linus Walleij <email address hidden>
Date: Wed Oct 19 18:14:33 2011 +0200

    pinctrl: add a pin config interface

    This add per-pin and per-group pin config interfaces for biasing,
    driving and other such electronic properties. The details of passed
    configurations are passed in an opaque unsigned long which may be
    dereferences to integer types, structs or lists on either side
    of the configuration interface.

    ChangeLog v1->v2:
    - Clear split of terminology: we now have pin controllers, and
      those may support two interfaces using vtables: pin
      multiplexing and pin configuration.
    - Break out pin configuration to its own C file, controllers may
      implement only config without mux, and vice versa, so keep each
      sub-functionality of pin controllers separate. Introduce
      CONFIG_PINCONF in Kconfig.
    - Implement some core logic around pin configuration in the
      pinconf.c file.
    - Remove UNKNOWN config states, these were just surplus baggage.
    - Remove FLOAT config state - HIGH_IMPEDANCE should be enough for
      everyone.
    - PIN_CONFIG_POWER_SOURCE added to handle switching the power
      supply for the pin logic between different sources
    - Explicit DISABLE config enums to turn schmitt-trigger,
      wakeup etc OFF.
    - Update documentation to reflect all the recent reasoning.
    ChangeLog v2->v3:
    - Twist API around to pass around arrays of config tuples instead
      of (param, value) pairs everywhere.
    - Explicit drive strength semantics for push/pull and similar
      drive modes, this shall be the number of drive stages vs
      nominal load impedance, which should match the actual
      electronics used in push/pull CMOS or TTY totempoles.
    - Drop load capacitance configuration - I probably don't know
      what I'm doing here so leave it out.
    - Drop PIN_CONFIG_INPUT_SCHMITT_OFF, instead the argument zero to
      PIN_CONFIG_INPUT_SCHMITT turns schmitt trigger off.
    - Drop PIN_CONFIG_NORMAL_POWER_MODE and have a well defined
      argument to PIN_CONFIG_LOW_POWER_MODE to get out of it instead.
    - Drop PIN_CONFIG_WAKEUP_ENABLE/DISABLE and just use
      PIN_CONFIG_WAKEUP with defined value zero to turn wakeup off.
    - Add PIN_CONFIG_INPUT_DEBOUNCE for configuring debounce time
      on input lines.
    - Fix a bug when we tried to configure pins for pin controllers
      without pinconf support.
    - Initialized debugfs properly so it works.
    - Initialize the mutex properly and lock around config tampering
      sections.
    - Check the return value from get_initial_config() properly.
    ChangeLog v3->v4:
    - Export the pin_config_get(), pin_config_set() and
      pin_config_group() functions.
    - Drop the entire concept of just getting initial config and
      keeping track of pin states internally, instead ask the pins
      what state they are in. Previous idea was plain wrong, if the
      device cannot keep track of its state, the driver should do
      it.
    - Drop the generic configuration layout, it seems this impose
      too much restriction on some pin controllers, so let them do
      things the way they want and split off support for generic
      config as an optional add-on.
    ChangeLog v4->v5:
    - Introduce two symmetric driver calls for group configuration,
      .pin_config_group_[get|set] and corresponding external calls.
    - Remove generic semantic meanings of return values from config
      calls, these belong in the generic config patch. Just pass the
      return value through instead.
    - Add a debugfs entry "pinconf-groups" to read status from group
      configuration only, also slam in a per-group debug callback in
      the pinconf_ops so custom drivers can display something
      meaningful for their pins.
    - Fix some dangling newline.
    - Drop dangling #else clause.
    - Update documentation to match the above.
    ChangeLog v5->v6:
    - Change to using a pin name as parameter for the
      [get|set]_config() functions, as suggested by Stephen Warren.
      This is more natural as names will be what a developer has
      access to in written documentation etc.
    ChangeLog v6->v7:
    - Refactor out by-pin and by-name get/set functions, only expose
      the by-name functions externally, expose the by-pin functions
      internally.
    - Show supported pin control functionality in the debugfs
      pinctrl-devices file.

    Acked-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit b4e3ac74d5cd4152f2ec6b3280b1ff3428952f7f
Author: Linus Walleij <email address hidden>
Date: Wed Nov 16 10:24:39 2011 +0100

    pinctrl/coh901: driver to request its pins

    This makes the COH 901 driver request muxing of its GPIO pins
    from the pinmux-u300 driver using the standard API calls.

    Signed-off-by: Linus Walleij <email address hidden>

commit f812f0f53e5643c06b929ce3299cbaffb307c488
Author: Linus Walleij <email address hidden>
Date: Wed Nov 16 10:23:05 2011 +0100

    pinctrl: u300-pinmux: register proper GPIO ranges

    This register the actual GPIO ranges used by the COH901XXX GPIO
    driver.

    Signed-off-by: Linus Walleij <email address hidden>

commit ca402d37dccf2b797440c5f03bd0db16f977acc9
Author: Linus Walleij <email address hidden>
Date: Wed Nov 16 09:22:59 2011 +0100

    pinctrl: move the U300 GPIO driver to pinctrl

    This driver will be converted to a dual GPIO + pinctrl driver
    since it supports biasing and driving control options. Hopefully
    it can serve as an example.

    Signed-off-by: Linus Walleij <email address hidden>

commit dd68acc7cc256c928256eb5f53e163233605de5d
Author: Linus Walleij <email address hidden>
Date: Tue Nov 15 11:18:54 2011 +0100

    ARM: u300: localize GPIO assignments

    Move the GPIO assignments for the U300 variants down to a local
    header file in the mach-u300 directory. There is no point in
    broadcasting this across the entire kernel.

    Signed-off-by: Linus Walleij <email address hidden>

commit 59b099b04981917ee7fbd88b6f50eeaffc9f33cd
Author: Linus Walleij <email address hidden>
Date: Wed Nov 30 13:28:14 2011 +0100

    pinctrl: make it possible to add multiple maps

    Since we now anyway make a copy of the platform-supplied pinmux
    map, we can just as well make it possible to call the function
    adding maps several times, so as to simplify cases (as PXA) where
    several sets of disparate mappings need to be added depending on
    target platform.

    Acked-by: Haojian Zhuang <email address hidden>
    Acked-by: Arnd Bergmann <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 97607d157c133ab18dfcd77fa836e37fa950a44a
Author: Linus Walleij <email address hidden>
Date: Tue Nov 29 12:52:39 2011 +0100

    pinctrl: make a copy of pinmux map

    This makes a deep copy of the pinmux function map instead of
    keeping the copy supplied from the platform around. This makes
    it possible to tag the platforms map with __initdata as is also
    done as part of this patch.

    Rationale: a certain target platform (PXA) has numerous
    pinmux maps, many of which will be lying around unused after
    boot in a multi-platform binary. Instead, deep-copy the one
    we're going to use and tag them all __initdata so they go away
    after boot.

    ChangeLog v1->v2:
    - Fixup the deep copy, missed a few items on the struct,
      plus mark bool member non-const since we're making runtime
      copies if this stuff now.
    ChangeLog v2->v3:
    - Make a shallow copy (just copy the array of map structs)
      as Arnd noticed, string constants never get discarded by the
      kernel anyway, so these pointers may be safely copied over.

    Reviewed-by: Arnd Bergmann <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 542e704f3ffee1dc4539c9e8191e4dc215220f5e
Author: Linus Walleij <email address hidden>
Date: Mon Nov 14 10:06:22 2011 +0100

    pinctrl: GPIO direction support for muxing

    When requesting a single GPIO pin to be muxed in, some controllers
    will need to poke a different value into the control register
    depending on whether the pin will be used for GPIO output or GPIO
    input. So create pinmux counterparts to gpio_direction_[input|output]
    in the pinctrl framework.

    ChangeLog v1->v2:
    - This also amends the documentation to make it clear the this
      function and associated machinery is *ONLY* intended as a backend
      to gpiolib machinery, not for everyone and his dog to start playing
      around with pins.
    ChangeLog v2->v3:
    - Don't pass an argument to the common request function, instead
      provide pinmux_* counterparts to the gpio_direction_[input|output]
      calls, simpler and anyone can understand it.
    ChangeLog v3->v4:
    - Fix numerous spelling mistakes and dangling text in documentation.
      Add Ack and Rewewed-by.

    Cc: Igor Grinberg <email address hidden>
    Acked-by: Stephen Warren <email address hidden>
    Reviewed-by: Thomas Abraham <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 75d6642a3ee1dfe2552028997cdcc2c4207bec8f
Author: Linus Walleij <email address hidden>
Date: Wed Nov 16 09:58:51 2011 +0100

    pinctrl: print pin range in GPIO range debugs

    Show the mapped pin range corresponding to the GPIO range in
    debugfs for pin controllers.

    Acked-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 3c739ad0df5eb41cd7adad879eda6aa09879eb76
Author: Chanho Park <email address hidden>
Date: Fri Nov 11 18:47:58 2011 +0900

    pinctrl: add a pin_base for sparse gpio-ranges

    This patch enables mapping a base offset of gpio ranges with
    a pin offset even if does'nt matched. A base of pinctrl_gpio_range
    means a base offset of gpio. However, we cannot convert gpio to pin
    number for sparse gpio ranges just only using a gpio base offset.
    We can convert a gpio to real pin number(even if not matched) using
    a new pin_base which means a base pin offset of requested gpio range.
    Now, the pin control subsystem passes the pin base offset to the
    pinmux driver.

    For example, let's assume below two gpio ranges in the system.

    static struct pinctrl_gpio_range gpio_range_a = {
        .name = "chip a",
        .id = 0,
        .base = 32,
        .pin_base = 32,
        .npins = 16,
        .gc = &chip_a;
    };

    static struct pinctrl_gpio_range gpio_range_b = {
        .name = "chip b",
        .id = 0,
        .base = 48,
        .pin_base = 64,
        .npins = 8,
        .gc = &chip_b;
    };

    We can calucalate a exact pin ranges even if doesn't matched with gpio ranges.

    chip a:
        gpio-range : [32 .. 47]
        pin-range : [32 .. 47]
    chip b:
        gpio-range : [48 .. 55]
        pin-range : [64 .. 71]

    Signed-off-by: Chanho Park <email address hidden>
    Signed-off-by: Kyungmin Park <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 33d58949adee5086478e140751e4a7263bd7e207
Author: Marek Belisko <email address hidden>
Date: Mon Oct 31 21:27:52 2011 +0100

    pinctrl: unify pin type from signed to unsigned

    We want singned pins to mean "invalid" only on the outside
    of the subsystem.

    Signed-off-by: Marek Belisko <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 336cdba09a5df706402628fb20b7660d186aff6c
Author: Linus Walleij <email address hidden>
Date: Thu Nov 10 09:27:41 2011 +0100

    pinctrl: documentation update

    Update the docs removing an obsolete __refdata tag and document
    the mysterious return value of pin_free(). And fixes up some various
    confusions in the pinctrl documentation.

    Reported-by: Rajendra Nayak <email address hidden>
    Reported-by: Randy Dunlap <email address hidden>
    Reported-by: Thomas Abraham <email address hidden>
    Reported-by: Uwe Kleine-König <email address hidden>
    Acked-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 3712a3c488987849613a4ad74129e67e40b12b38
Author: Stephen Warren <email address hidden>
Date: Fri Oct 21 12:25:53 2011 -0600

    pinctrl: add explicit gpio_disable_free pinmux_op

    Some pinctrl drivers (Tegra at least) program a pin to be a GPIO in a
    completely different manner than they select which function to mux out of
    that pin. In order to support a single "free" pinmux_op, the driver would
    need to maintain a per-pin state of requested-for-gpio vs. requested-for-
    function. However, that's a lot of work when the core already has explicit
    separate paths for gpio request/free and function request/free.

    So, add a gpio_disable_free op to struct pinmux_ops, and make pin_free()
    call it when appropriate.

    When doing this, I noticed that when calling pin_request():

        !!gpio == (gpio_range != NULL)

    ... and so I collapsed those two parameters in both pin_request(), and
    when adding writing the new code in pin_free().

    Also, for pin_free():

        !!free_func == (gpio_range != NULL)

    However, I didn't want pin_free() to know about the GPIO function naming
    special case, so instead, I reworked pin_free() to always return the pin's
    previously requested function, and now pinmux_free_gpio() calls
    kfree(function). This is much more balanced with the allocation having
    been performed in pinmux_request_gpio().

    Signed-off-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit d2f6a1c6fb0e510a24ccac066eefbcfd0c932858
Author: Marek Belisko <email address hidden>
Date: Wed Oct 26 22:57:20 2011 +0200

    pinctrl: remove double pin validity check.

    Function pin_is_valid just call pin_desc_get which is in pin_request
    call some line below. Remove pin_is_valid() check.

    Acked-by: Stephen Warren <email address hidden>
    Signed-off-by: Marek Belisko <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 7afde8baa83b9ac409a6db86f27a41878aa6b33f
Author: Linus Walleij <email address hidden>
Date: Wed Oct 19 17:07:16 2011 +0200

    pinctrl: move group lookup to core

    Now also the core needs to look up pin groups so move the lookup
    function there and expose it in the internal header.

    Acked-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit b84e673f51799a2d0bad7a7c1e7a74021c4eba4b
Author: Rajendra Nayak <email address hidden>
Date: Tue Nov 15 12:10:26 2011 +0530

    pinctrl: iterate over u300_pmx_mask's in u300_pmx_endisable

    Fix u300_pmx_endisable() to iterate over the list of 'bits' and
    'mask' populated as part of u300_pmx_functions.mask[]

    Signed-off-by: Rajendra Nayak <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 07f29ba67b7f016e8c968c8892f277bb50221ad4
Author: Stephen Warren <email address hidden>
Date: Thu Dec 8 15:16:19 2011 -0700

    MAINTAINERS: Fix pinctrl subsystem's directory

    Signed-off-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 9561f4e052a06167694e110d76ce3a5e38b59522
Author: Nicolas Pitre <email address hidden>
Date: Mon Jan 2 23:00:32 2012 -0500

    Revert "ARM: move VMALLOC_END down temporarily for shmobile"

    This reverts commit 0af362f8440a78b970d5f215e234420fa87d0f3f as shmobile
    is not using a non-standard memory layout anymore.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 5917bfa4c0c529d7a93323671f2edec7e3d81c07
Author: Magnus Damm <email address hidden>
Date: Mon Jan 2 22:57:03 2012 -0500

    ARM: mach-shmobile: use standard 2MiB coherent DMA memory size

    The 158MiB memory area was used to support HD
    resolution multimedia workloads using the same
    legacy memory allocating solution as on SH.

    There are no in-tree kernel dependencies on the
    158MiB setting, and future development should
    reserve and allocate memory using some other
    method like for instance CMA.

    Signed-off-by: Magnus Damm <email address hidden>
    Signed-off-by: Nicolas Pitre <email address hidden>

commit c87fb57346fc7653ace98769f148e0dcd88ac1ee
Author: Jamie Iles <email address hidden>
Date: Wed Dec 14 23:43:16 2011 +0100

    ARM: 7235/1: irqdomain: export irq_domain_simple_ops for !CONFIG_OF

    irqdomain support is used in interrupt controller drivers that may not
    have device tree support but only need the basic HW->Linux irq
    translation. Rather than having each of these implement their own IRQ
    domain, allow them to use the simple ops.

    Acked-by: Thomas Gleixner <email address hidden>
    Acked-by: Rob Herring <email address hidden>
    Cc: Grant Likely <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit df0bcfe0f811a73077c06f75e440397e89ba58a4
Merge: 215e83d a2075a7
Author: Russell King <email address hidden>
Date: Mon Dec 19 21:54:35 2011 +0000

    Merge branch 'arm/common-kconfig-refactor+for-rmk' of git://git.linaro.org/people/dmart/linux-2.6-arm into devel-stable

commit a2075a7aff5f469b91029c14f216dc169d1bd5f3
Author: Dave Martin <email address hidden>
Date: Mon Dec 12 16:17:34 2011 +0000

    imx6q: Remove unconditional dependency on l2x0 L2 cache support

    The i.MX6 Quad SoC will work without the l2x0 L2 cache controller
    support built into the kernel, so this patch removes the dependency
    on CACHE_L2X0.

    This makes the l2x0 support optional, so that it can be turned off
    when desired for debugging purposes etc.

    Since SOC_IMX6Q already depends on ARCH_IMX_V6_V7 and
    ARCH_IMX_V6_V7 selects MIGHT_HAVE_CACHE_L2X0, there is no need to
    select that option explicitly from SOC_IMX6Q.

    Thanks to Shawn Guo for this suggestion. [1]

    [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2011-November/074602.html

    Acked-by: Shawn Guo <email address hidden>
    Tested-by: Shawn Guo <email address hidden>
    Acked-by: Sascha Hauer <email address hidden>

commit 22d80379e9b6b167e145c12099705bc8e9946d84
Author: Dave Martin <email address hidden>
Date: Mon Dec 12 16:17:34 2011 +0000

    highbank: Unconditionally require l2x0 L2 cache controller support

    If running in the Normal World on a TrustZone-enabled SoC, Linux
    does not have complete control over the L2 cache controller
    configuration. The kernel cannot work reliably on such platforms
    without the l2x0 cache support code built in.

    This patch unconditionally enables l2x0 support for the Highbank
    SoC.

    Thanks to Rob Herring for this suggestion. [1]

    [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2011-November/074495.html

    Signed-off-by: Dave Martin <email address hidden>
    Acked-by: Rob Herring <email address hidden>

commit c957445bf960047cf1e9d3aa764beb18f3fbb734
Author: Dave Martin <email address hidden>
Date: Mon Dec 12 16:17:34 2011 +0000

    omap4: Unconditionally require l2x0 L2 cache controller support

    If running in the Normal World on a TrustZone-enabled SoC, Linux
    does not have complete control over the L2 cache controller
    configuration. The kernel cannot work reliably on such platforms
    without the l2x0 cache support code built in.

    This patch unconditionally enables l2x0 support for the OMAP4 SoCs.

    Thanks to Rob Herring for this suggestion. [1]

    [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2011-November/074495.html

    Signed-off-by: Dave Martin <email address hidden>
    Acked-by: Tony Lindgren <email address hidden>

commit 3b55658aefbf82646a246f3c8a14b9b8a24198a9
Author: Dave Martin <email address hidden>
Date: Wed Dec 7 15:38:04 2011 +0000

    ARM: SMP: Refactor Kconfig to be more maintainable

    Making SMP depend on (huge list of MACH_ and ARCH_ configs) is
    bothersome to maintain and likely to lead to merge conflicts.

    This patch moves the knowledge of which platforms are SMP-capable
    to the individual machines. To enable this, a new HAVE_SMP config
    option is introduced to allow machines to indicate that they can
    run in a SMP configuration.

    Signed-off-by: Dave Martin <email address hidden>
    Acked-by: Linus Walleij <email address hidden>
            (for nomadik, ux500)
    Acked-by: Tony Lindgren <email address hidden>
            (for omap)
    Acked-by: Kukjin Kim <email address hidden>
            (for exynos)
    Acked-by: Sascha Hauer <email address hidden>
            (for imx)
    Acked-by: Olof Johansson <email address hidden>
            (for tegra)

commit ce5ea9f3767e8589521319cae2eb6e05c52bd056
Author: Dave Martin <email address hidden>
Date: Tue Nov 29 15:56:19 2011 +0000

    ARM: l2x0/pl310: Refactor Kconfig to be more maintainable

    Making CACHE_L2X0 depend on (huge list of MACH_ and ARCH_ configs)
    is bothersome to maintain and likely to lead to merge conflicts.

    This patch moves the knowledge of which platforms have a L2x0 or
    PL310 cache controller to the individual machines. To enable this,
    a new MIGHT_HAVE_CACHE_L2X0 config option is introduced to allow
    machines to indicate that they may have such a cache controller
    independently of each other.

    Boards/SoCs which cannot reliably operate without the L2 cache
    controller support will need to select CACHE_L2X0 directly from
    their own Kconfigs instead. This applies to some TrustZone-enabled
    boards where Linux runs in the Normal World, for example.

    Signed-off-by: Dave Martin <email address hidden>
    Acked-by: Anton Vorontsov <email address hidden>
            (for cns3xxx)
    Acked-by: Tony Lindgren <email address hidden>
            (for omap)
    Acked-by: Shawn Guo <email address hidden>
            (for imx)
    Acked-by: Kukjin Kim <email address hidden>
            (for exynos)
    Acked-by: Sascha Hauer <email address hidden>
            (for imx)
    Acked-by: Olof Johansson <email address hidden>
            (for tegra)

commit 215e83d971a04f04d191c7f702943412a19408fd
Author: Linus Walleij <email address hidden>
Date: Wed Dec 14 18:15:42 2011 +0100

    ARM: 7233/1: ux500: remove overlapping iotable entries

    The overlapping iotable mapping entries for the ux500 Cortex
    A9 SCU, CPU control and TWD are no longer accepted by the
    kernel. Remove the overlaps so the machine boots again.

    Cc: Srinidhi Kasagar <email address hidden>
    Cc: Rabin Vincent <email address hidden>
    Reported-by: Daniel Lezcano <email address hidden>
    Acked-by: Nicolas Pitre <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 2f0778afac79bd8d226225556858a636931eeabc
Author: Marc Zyngier <email address hidden>
Date: Thu Dec 15 12:19:23 2011 +0100

    ARM: 7205/2: sched_clock: allow sched_clock to be selected at runtime

    sched_clock() is yet another blocker on the road to the single
    image. This patch implements an idea by Russell King:

    http://www.spinics.net/lists/linux-omap/msg49561.html

    Instead of asking the platform to implement both sched_clock()
    itself and the rollover callback, simply register a read()
    function, and let the ARM code care about sched_clock() itself,
    the conversion to ns and the rollover. sched_clock() uses
    this read() function as an indirection to the platform code.
    If the platform doesn't provide a read(), the code falls back
    to the jiffy counter (just like the default sched_clock).

    This allow some simplifications and possibly some footprint gain
    when multiple platforms are compiled in. Among the drawbacks,
    the removal of the *_fixed_sched_clock optimization which could
    negatively impact some platforms (sa1100, tegra, versatile
    and omap).

    Tested on 11MPCore, OMAP4 and Tegra.

    Cc: Imre Kaloz <email address hidden>
    Cc: Eric Miao <email address hidden>
    Cc: Colin Cross <email address hidden>
    Cc: Erik Gilling <email address hidden>
    Cc: Olof Johansson <email address hidden>
    Cc: Sascha Hauer <email address hidden>
    Cc: Alessandro Rubini <email address hidden>
    Cc: STEricsson <email address hidden>
    Cc: Lennert Buytenhek <email address hidden>
    Cc: Ben Dooks <email address hidden>
    Tested-by: Jamie Iles <email address hidden>
    Tested-by: Tony Lindgren <email address hidden>
    Tested-by: Kyungmin Park <email address hidden>
    Acked-by: Linus Walleij <email address hidden>
    Acked-by: Nicolas Pitre <email address hidden>
    Acked-by: Krzysztof Halasa <email address hidden>
    Acked-by: Kukjin Kim <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 3bdc3484e8f2b1b219ad0397d81ce4601fbaf76d
Author: Will Deacon <email address hidden>
Date: Mon Jun 6 12:35:46 2011 +0100

    ARM: kexec: use soft_restart for branching to the reboot buffer

    Now that there is a common way to reset the machine, let's use it
    instead of reinventing the wheel in the kexec backend.

    Signed-off-by: Will Deacon <email address hidden>

commit 02b73e2e9c288cbbb6ec96bef628cf08e29824c4
Author: Will Deacon <email address hidden>
Date: Mon Jun 6 15:49:23 2011 +0100

    ARM: stop: execute platform callback from cpu_stop code

    Sending IPI_CPU_STOP to a CPU causes it to execute a busy cpu_relax
    loop forever. This makes it impossible to kexec successfully on an SMP
    system since the secondary CPUs do not reset.

    This patch adds a callback to platform_cpu_kill, defined when
    CONFIG_HOTPLUG_CPU=y, from the ipi_cpu_stop handling code. This function
    currently just returns 1 on all platforms that define it but allows them
    to do something more sophisticated in the future.

    Signed-off-by: Will Deacon <email address hidden>

commit 290130a17718c1451bb8a77a5e2510e0279bd5f3
Author: Will Deacon <email address hidden>
Date: Mon Jun 6 12:28:54 2011 +0100

    ARM: reset: implement soft_restart for jumping to a physical address

    Tools such as kexec and CPU hotplug require a way to reset the processor
    and branch to some code in physical space. This requires various bits of
    jiggery pokery with the caches and MMU which, when it goes wrong, tends
    to lock up the system.

    This patch fleshes out the soft_restart implementation so that it
    branches to the reset code using the identity mapping. This requires us
    to change to a temporary stack, held within the kernel image as a static
    array, to avoid conflicting with the new view of memory.

    Signed-off-by: Will Deacon <email address hidden>

commit 2d81f1fe81b753a5744fd2deceafab3e62ba02d5
Author: Will Deacon <email address hidden>
Date: Wed Jun 8 15:29:00 2011 +0100

    ARM: lib: add call_with_stack function for safely changing stack

    When disabling the MMU, it is necessary to take out a 1:1 identity map
    of the reset code so that it can safely be executed with and without
    the MMU active. To avoid the situation where the physical address of the
    reset code aliases with the virtual address of the active stack (which
    cannot be included in the 1:1 mapping), it is desirable to change to a
    new stack at a location which is less likely to alias.

    This code adds a new lib function, call_with_stack:

     void call_with_stack(void (*fn)(void *), void *arg, void *sp);

    which changes the stack to point at the sp parameter, before invoking
    fn(arg) with the new stack selected.

    Reviewed-by: Nicolas Pitre <email address hidden>
    Reviewed-by: Catalin Marinas <email address hidden>
    Signed-off-by: Dave Martin <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit ad622671a4da0b6db1c1382e6345e1361c5fbab8
Author: Jamie Iles <email address hidden>
Date: Thu Dec 1 11:16:46 2011 +0100

    ARM: 7183/1: vic: register the VIC for ST-modified VIC's

    When probing the VIC, the ST variant has a different probing method to
    account for the extra interrupts which meant we didn't previously call
    vic_register() which registered the irq_domain.

    Acked-by: Linus Walleij <email address hidden>
    Cc: Marc Zyngier <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 6ae25a5b9d7ba86d6ac19c403dfa57dae6caa73d
Merge: 3ee0fc5 497b7e9
Author: Russell King <email address hidden>
Date: Thu Dec 8 18:02:04 2011 +0000

    Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux into devel-stable

    Conflicts:
     arch/arm/mm/ioremap.c

commit cc96ffbb744bff2826aa9e62b14bb599b1f15fc3
Author: Uwe Kleine-König <email address hidden>
Date: Thu Dec 8 15:52:15 2011 +0100

    pinctrl: remove two unused global variables

    Signed-off-by: Uwe Kleine-König <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 3838d3275923d0e0df706d2d32e633839166ccea
Author: Uwe Kleine-König <email address hidden>
Date: Thu Dec 8 15:42:45 2011 +0100

    pinctrl: make the "Debug PINCTRL calls" entry actually do something

    DEBUG_PINCTRL wasn't used at all and DEBUG_PINMUX doesn't exist.

    Signed-off-by: Uwe Kleine-König <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 497b7e943d0dc5743454de56dcdb67352bbf96b2
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:32 2011 +0000

    ARM: LPAE: Add the Kconfig entries

    This patch adds the ARM_LPAE and ARCH_PHYS_ADDR_T_64BIT Kconfig entries
    allowing LPAE support to be compiled into the kernel.

    Signed-off-by: Catalin Marinas <email address hidden>

commit 77f73a2c8e869b035e71eea5cae07c30fe4bded0
Author: Will Deacon <email address hidden>
Date: Tue Nov 22 17:30:32 2011 +0000

    ARM: LPAE: mark memory banks with start > ULONG_MAX as highmem

    Memory banks living outside of the 32-bit physical address
    space do not have a 1:1 pa <-> va mapping and therefore the
    __va macro may wrap.

    This patch ensures that such banks are marked as highmem so
    that the Kernel doesn't try to split them up when it sees that
    the wrapped virtual address overlaps the vmalloc space.

    Signed-off-by: Will Deacon <email address hidden>
    Signed-off-by: Catalin Marinas <email address hidden>
    Acked-by: Nicolas Pitre <email address hidden>

commit ae2de101739c5a2a43a23a74a0d43aea810fb5a8
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:32 2011 +0000

    ARM: LPAE: Add identity mapping support for the 3-level page table format

    With LPAE, the pgd is a separate page table with entries pointing to the
    pmd. The identity_mapping_add() function needs to ensure that the pgd is
    populated before populating the pmd level. The do..while blocks now loop
    over the pmd in order to have the same implementation for the two page
    table formats. The pmd_addr_end() definition has been removed and the
    generic one used instead. The pmd clean-up is done in the pgd_free()
    function.

    Signed-off-by: Catalin Marinas <email address hidden>

commit 14d8c9512aef5bf25c017d1b331de51c7928c5d4
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:31 2011 +0000

    ARM: LPAE: Add context switching support

    With LPAE, TTBRx registers are 64-bit. The ASID is stored in TTBR0
    rather than a separate Context ID register. This patch makes the
    necessary changes to handle context switching on LPAE.

    Signed-off-by: Catalin Marinas <email address hidden>

commit f7b8156d150f7383b42622a9219b230b36435b4a
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:31 2011 +0000

    ARM: LPAE: Add fault handling support

    The DFSR and IFSR register format is different when LPAE is enabled. In
    addition, DFSR and IFSR have similar definitions for the fault type.
    This modifies the fault code to correctly handle the new format.

    Signed-off-by: Catalin Marinas <email address hidden>

commit c9f27f1026f55b543df260ad8ab84a7bdab7792f
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:29 2011 +0000

    ARM: LPAE: Invalidate the TLB before freeing the PMD

    Similar to the PTE freeing, this patch introduced __pmd_free_tlb() which
    invalidates the TLB before freeing a PMD page. This is needed because on
    newer processors the entry in the upper page table may be cached by the
    TLB and point to random data after the PMD has been freed.

    Signed-off-by: Catalin Marinas <email address hidden>

commit 1b6ba46b7efa31055eb993a6f2c6bbcb8b35b001
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:29 2011 +0000

    ARM: LPAE: MMU setup for the 3-level page table format

    This patch adds the MMU initialisation for the LPAE page table format.
    The swapper_pg_dir size with LPAE is 5 rather than 4 pages. A new
    proc-v7-3level.S file contains the TTB initialisation, context switch
    and PTE setting code with the LPAE. The TTBRx split is based on the
    PAGE_OFFSET with TTBR1 used for the kernel mappings. The 36-bit mappings
    (supersections) and a few other memory types in mmu.c are conditionally
    compiled.

    Signed-off-by: Catalin Marinas <email address hidden>

commit da02877987e6e173ebba137d4e1e155e1f1151cd
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:29 2011 +0000

    ARM: LPAE: Page table maintenance for the 3-level format

    This patch modifies the pgd/pmd/pte manipulation functions to support
    the 3-level page table format. Since there is no need for an 'ext'
    argument to cpu_set_pte_ext(), this patch conditionally defines a
    different prototype for this function when CONFIG_ARM_LPAE.

    The patch also introduces the L_PGD_SWAPPER flag to mark pgd entries
    pointing to pmd tables pre-allocated in the swapper_pg_dir and avoid
    trying to free them at run-time. This flag is 0 with the classic page
    table format.

    Signed-off-by: Catalin Marinas <email address hidden>

commit dcfdae04bd92e8a2ea155db0e21e3bddc09e0a89
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:29 2011 +0000

    ARM: LPAE: Introduce the 3-level page table format definitions

    This patch introduces the pgtable-3level*.h files with definitions
    specific to the LPAE page table format (3 levels of page tables).

    Each table is 4KB and has 512 64-bit entries. An entry can point to a
    40-bit physical address. The young, write and exec software bits share
    the corresponding hardware bits (negated). Other software bits use spare
    bits in the PTE.

    The patch also changes some variable types from unsigned long or int to
    pteval_t or pgprot_t.

    Signed-off-by: Catalin Marinas <email address hidden>

commit d675d0bc47f28c5414fbbe17fcc801f69c45b960
Author: Will Deacon <email address hidden>
Date: Tue Nov 22 17:30:28 2011 +0000

    ARM: LPAE: add ISBs around MMU enabling code

    Before we enable the MMU, we must ensure that the TTBR registers contain
    sane values. After the MMU has been enabled, we jump to the *virtual*
    address of the following function, so we also need to ensure that the
    SCTLR write has taken effect.

    This patch adds ISB instructions around the SCTLR write to ensure the
    visibility of the above.

    Signed-off-by: Will Deacon <email address hidden>
    Signed-off-by: Catalin Marinas <email address hidden>

commit 8d2cd3a38fd663bd341507f5ac29002ffd81d986
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:28 2011 +0000

    ARM: LPAE: Factor out classic-MMU specific code into proc-v7-2level.S

    This patch modifies the proc-v7.S file so that it only contains code
    shared between classic MMU and LPAE. The non-common code is factored out
    into a separate file.

    Signed-off-by: Catalin Marinas <email address hidden>

commit 136848d4ca9cf6f08edf6e50cb9bbe19de55c32a
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:28 2011 +0000

    ARM: LPAE: Move the FSR definitions to separate files

    The FSR structure is different with LPAE and this patch moves the
    classic MMU specific definition to a separate fsr-2level.c file that is
    included in fault.c. It also moves the fsr_fs and FSR bits to the
    fault.h file.

    Signed-off-by: Catalin Marinas <email address hidden>

commit e0c0313bd720977a7ed01dc48f0762a3ddec607f
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:28 2011 +0000

    ARM: LPAE: Move page table maintenance macros to pgtable-2level.h

    The page table maintenance macros need to be duplicated between the
    classic and the LPAE MMU so this patch moves those that are not common
    to the pgtable-2level.h file.

    Signed-off-by: Catalin Marinas <email address hidden>

commit a32618d28dbe6e9bf8ec508ccbc3561a7d7d32f0
Author: Russell King <email address hidden>
Date: Tue Nov 22 17:30:28 2011 +0000

    ARM: pgtable: switch to use pgtable-nopud.h

    Nick Piggin noted upon introducing 4level-fixup.h:

    | Add a temporary "fallback" header so architectures can run with
    | the 4level pagetables patch without modification. All architectures
    | should be converted to use the folding headers (include/asm-generic/
    | pgtable-nop?d.h) as soon as possible, and the fallback header removed.

    This makes ARM compliant with this statement.

    Signed-off-by: Russell King <email address hidden>
    Signed-off-by: Catalin Marinas <email address hidden>

commit 03a6b8274cc61fb9bb77aaa102e63840461c5f3a
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:27 2011 +0000

    ARM: pgtable: Fix compiler warning in ioremap.c introduced by nopud

    With the arch/arm code conversion to pgtable-nopud.h, the section and
    supersection (un|re)map code triggers compiler warnings on UP systems.
    This is caused by pmd_offset() being given a pgd_t argument rather than
    a pud_t one. This patch makes the necessary conversion with the
    assumption that the pud is folded into the pgd. The page table setting
    code only loops over the pmd which is enough with the classic page
    tables. This code is not compiled when LPAE is enabled.

    Signed-off-by: Catalin Marinas <email address hidden>

commit 3ee0fc5ca129cbae81c073756febcb1c552af446
Merge: deee6d5 4e8ee7d
Author: Russell King <email address hidden>
Date: Tue Dec 6 20:27:54 2011 +0000

    Merge branch 'kexec/idmap' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into devel-stable

commit deee6d5359969a0ce4e2760cfd7b9f379bd5698a
Author: Tony Lindgren <email address hidden>
Date: Tue Dec 6 17:50:42 2011 +0100

    ARM: 7194/1: OMAP: Fix build after a merge between v3.2-rc4 and ARM restart changes

    ARM restart changes needed changes to common.h to make it local.
    This conflicted with v3.2-rc4 DSS related hwmod changes that
    git mergetool was not able to handle.

    Signed-off-by: Tony Lindgren <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 4e8ee7de227e3ab9a72040b448ad728c5428a042
Author: Will Deacon <email address hidden>
Date: Wed Nov 23 12:26:25 2011 +0000

    ARM: SMP: use idmap_pgd for mapping MMU enable during secondary booting

    The ARM SMP booting code allocates a temporary set of page tables
    containing an identity mapping of the kernel image and provides this
    to secondary CPUs for initial booting.

    In reality, we only need to include the __turn_mmu_on function in the
    identity mapping since the rest of the kernel is executing from virtual
    addresses after this point.

    This patch adds __turn_mmu_on to the .idmap.text section, allowing the
    SMP booting code to use the idmap_pgd directly and not have to populate
    its own set of page table.

    As a result of this patch, we can make the identity_mapping_add function
    static (since it is only used within mm/idmap.c) and also remove the
    identity_mapping_del function. The identity map population is moved to
    an early initcall so that it is setup in time for secondary CPU bringup.

    Reviewed-by: Catalin Marinas <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit 72662e01088394577be4a3f14da94cf87bea2591
Author: Will Deacon <email address hidden>
Date: Wed Nov 23 12:03:27 2011 +0000

    ARM: head.S: only include __turn_mmu_on in the initial identity mapping

    __create_page_tables identity maps the region of memory from
    __enable_mmu to the end of __turn_mmu_on.

    In preparation for including __turn_mmu_on in the .idmap.text section,
    this patch modifies the identity mapping so that it only includes the
    __turn_mmu_on code.

    Reviewed-by: Catalin Marinas <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit 2c8951ab0c337cb198236df07ad55f9dd4892c26
Author: Will Deacon <email address hidden>
Date: Wed Jun 8 15:53:34 2011 +0100

    ARM: idmap: use idmap_pgd when setting up mm for reboot

    For soft-rebooting a system, it is necessary to map the MMU-off code
    with an identity mapping so that execution can continue safely once the
    MMU has been switched off.

    Currently, switch_mm_for_reboot takes out a 1:1 mapping from 0x0 to
    TASK_SIZE during reboot in the hope that the reset code lives at a
    physical address corresponding to a userspace virtual address.

    This patch modifies the code so that we switch to the idmap_pgd tables,
    which contain a 1:1 mapping of the cpu_reset code. This has the
    advantage of only remapping the code that we need and also means we
    don't need to worry about allocating a pgd from an atomic context in the
    case that the physical address of the cpu_reset code aliases with the
    virtual space used by the kernel.

    Acked-by: Dave Martin <email address hidden>
    Reviewed-by: Catalin Marinas <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit 1a4baafa7d203da1cceb302c2df38f0fea1c17a1
Author: Will Deacon <email address hidden>
Date: Tue Nov 15 13:25:04 2011 +0000

    ARM: proc-*.S: place cpu_reset functions into .idmap.text section

    The CPU reset functions disable the MMU and therefore must be executed
    with an identity mapping in place.

    This patch places the CPU reset functions into the .idmap.text section,
    causing the idmap code to include them as part of the identity mapping.

    Acked-by: Dave Martin <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit e6eadc67873d5f363c864cd7723104e7d47dcb44
Author: Will Deacon <email address hidden>
Date: Tue Nov 15 11:11:19 2011 +0000

    ARM: suspend: use idmap_pgd instead of suspend_pgd

    The ARM CPU suspend code requires cpu_resume_mmu to be identity mapped
    in order to re-enable the MMU when coming out of suspend. Currently,
    this is accomplished by maintaining a suspend_pgd with the relevant
    mapping put in place at init time.

    This patch replaces the use of suspend_pgd with the new idmap_pgd.
    cpu_resume_mmu is placed in the .idmap.text section so that it is
    included in the identity map.

    Reviewed-by: Catalin Marinas <email address hidden>
    Acked-by: Dave Martin <email address hidden>
    Tested-by: Lorenzo Pieralisi <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit 8903826d0cd99aed9267e792d38284cf3092042b
Author: Will Deacon <email address hidden>
Date: Fri Sep 30 11:43:29 2011 +0100

    ARM: idmap: populate identity map pgd at init time using .init.text

    When disabling and re-enabling the MMU, it is necessary to take out an
    identity mapping for the code that manipulates the SCTLR in order to
    avoid it disappearing from under our feet. This is useful when soft
    rebooting and returning from CPU suspend.

    This patch allocates a set of page tables during boot and populates them
    with an identity mapping for the .idmap.text section. This means that
    users of the identity map do not need to manage their own pgd and can
    instead annotate their functions with __idmap or, in the case of assembly
    code, place them in the correct section.

    Acked-by: Dave Martin <email address hidden>
    Reviewed-by: Catalin Marinas <email address hidden>
    Tested-by: Lorenzo Pieralisi <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit 16edc3df8a1b40fd381d3500f23527d7ad6e5e1b
Author: Tony Lindgren <email address hidden>
Date: Tue Dec 6 05:45:37 2011 +0100

    ARM: 7192/1: OMAP: Fix build error for omap1_defconfig

    Otherwise we get the following error:

    In function 'omap_init_consistent_dma_size':
    error: implicit declaration of function 'init_consistent_dma_size'

    Signed-off-by: Tony Lindgren <email address hidden>
    Acked-by: Nicolas Pitre <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 73829af71fdb8655e7ba4b5a2a6612ad34a75a11
Merge: 742eaa6 0af362f
Author: Russell King <email address hidden>
Date: Mon Dec 5 23:27:54 2011 +0000

    Merge branch 'vmalloc' of git://git.linaro.org/people/nico/linux into devel-stable

commit 742eaa6a6e356a16788ce6530271de89bc4f8fb5
Merge: ba8bb18 ae72fd5
Author: Russell King <email address hidden>
Date: Mon Dec 5 23:20:17 2011 +0000

    Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into devel-stable

    Conflicts:
     arch/arm/common/gic.c
     arch/arm/plat-omap/include/plat/common.h

commit ba8bb18a03f8c7508565c385576a5431a4ad804a
Author: Santosh Shilimkar <email address hidden>
Date: Mon Dec 5 09:46:24 2011 +0100

    ARM: 7189/1: OMAP3: Fix build break in cpuidle34xx.c because of irq function

    Fix the below build break by including common.h

    arch/arm/mach-omap2/cpuidle34xx.c: In function 'omap3_enter_idle':
    arch/arm/mach-omap2/cpuidle34xx.c:117: error: implicit declaration of function 'omap_irq_pending'
    make[1]: *** [arch/arm/mach-omap2/cpuidle34xx.o] Error 1
    make: *** [arch/arm/mach-omap2] Error 2

    Signed-off-by: Santosh Shilimkar <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit f88f4dd868e59c0cf1d61d3465966d33e3309b07
Author: Santosh Shilimkar <email address hidden>
Date: Mon Dec 5 09:44:58 2011 +0100

    ARM: 7188/1: OMAP2PLUS: Fix build error: 'omap2/omap3_intc_handle_irq' undeclared.

    Fix the build break by adding the necessary irq functions to
    common header.

    Signed-off-by: Santosh Shilimkar <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 53fadbdd83039bb1181e4ff76123d612cdf26c37
Merge: 2d13cca e1d95ea
Author: Russell King <email address hidden>
Date: Sat Dec 3 09:11:54 2011 +0000

    Merge branch 'irqchip-consolidation' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into devel-stable

commit ae72fd588a2b302222769b44775912b83f0785eb
Merge: 0445e7a feb45d0 e0516a6
Author: Will Deacon <email address hidden>
Date: Fri Dec 2 15:22:18 2011 +0000

    Merge branches 'perf/event-nos', 'perf/updates' and 'perf/omap4' into for-rmk

commit e0516a64e7ea9d9522d98f9f5f47aa38f147779f
Author: Ming Lei <email address hidden>
Date: Wed Mar 2 15:00:08 2011 +0800

    arm: pmu: allow platform specific irq enable/disable handling

    This patch introduces .enable_irq and .disable_irq into
    struct arm_pmu_platdata, so platform specific irq enablement
    can be handled after request_irq, and platform specific irq
    disablement can be handled before free_irq.

    This patch is for support of pmu irq routed from CTI on omap4.

    Acked-by: Jean Pihet <email address hidden>
    Reviewed-by: Will Deacon <email address hidden>
    Signed-off-by: Ming Lei <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit 14eec97ff4635977b026a53b27915ab0dec51e94
Author: Ming Lei <email address hidden>
Date: Mon Oct 24 15:45:53 2011 +0100

    arm: introduce cross trigger interface helpers

    OMAP4 uses cross trigger interface(CTI) to route
    performance monitor irq to GIC, so introduce cti
    helpers to make access for cti easily.

    Acked-by: Jean Pihet <email address hidden>
    Signed-off-by: Ming Lei <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit feb45d06ffd7b59f43f1ed8edf53a0cfe3e7ad2a
Author: Will Deacon <email address hidden>
Date: Mon Nov 14 10:33:05 2011 +0000

    ARM: perf: remove unused armpmu_get_max_events

    armpmu_get_max_events is only called from perf_num_counters, so we can
    inline it there. It existed as a separate entity as a hangover from
    the original perf-based oprofile implementation.

    Signed-off-by: Will Deacon <email address hidden>

commit 0445e7a58e794d82c3a76975b1eefd920addbf39
Author: Will Deacon <email address hidden>
Date: Thu Sep 29 18:23:39 2011 +0100

    ARM: perf: add support for stalled cycle ABI events

    Commit 8f622422 ("perf events: Add generic front-end and back-end
    stalled cycle event definitions") added two new ABI events for counting
    stalled cycles.

    This patch adds support for these new events to the ARM perf
    implementation.

    Cc: Jamie Iles <email address hidden>
    Cc: Jean Pihet <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit 4d301512ab368f83f774f414213a5e6cf3641632
Author: Will Deacon <email address hidden>
Date: Thu Sep 29 15:29:02 2011 +0100

    ARM: perf: clean and update ARMv7 event numbers

    This patch updates the ARMv7 perf event numbers so that:

    (1) A consistent naming scheme is used between different CPUs.

    (2) Only events actually used by Linux are described.

    (3) Where possible, architected events are used in preference to
        CPU-specific events.

    This results in the removal of a load of unused, hardcoded data and
    makes it more clear as to which events are supported on each PMU.

    Cc: Jean Pihet <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit e1d95eaf005b7edd3e63ba9312994c3f834a78ac
Author: Axel Lin <email address hidden>
Date: Thu Dec 1 23:25:45 2011 +0800

    ARM: exynos4: Fix build error

    Trivial fix to fix below build error:

      CC arch/arm/mach-exynos/mach-universal_c210.o
    arch/arm/mach-exynos/mach-universal_c210.c:24: error: expected identifier or '(' before '<' token

    Signed-off-by: Axel Lin <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit 69676c37290317910543ad0bd14e70544fb3dbf2
Author: Axel Lin <email address hidden>
Date: Thu Dec 1 23:24:30 2011 +0800

    ARM: exynos4: Fix build error due to 'gic_bank_offset' undeclared

    Fix below build error:
      CC arch/arm/mach-exynos/cpu.o
    arch/arm/mach-exynos/cpu.c: In function 'exynos4_init_irq':
    arch/arm/mach-exynos/cpu.c:245: error: 'gic_bank_offset' undeclared (first use in this function)
    arch/arm/mach-exynos/cpu.c:245: error: (Each undeclared identifier is reported only once
    arch/arm/mach-exynos/cpu.c:245: error: for each function it appears in.)
    arch/arm/mach-exynos/cpu.c:243: warning: unused variable 'bank_offset'
    make[1]: *** [arch/arm/mach-exynos/cpu.o] Error 1
    make: *** [arch/arm/mach-exynos] Error 2

    Signed-off-by: Axel Lin <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit f59d28dc00ae3f1a76b442dcd0a52d8708c577cc
Author: Barry Song <email address hidden>
Date: Fri Dec 2 10:32:15 2011 +0800

    pinctrl/sirf: fix pin number typo for SPI1

    Signed-off-by: Barry Song <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 0af362f8440a78b970d5f215e234420fa87d0f3f
Author: Nicolas Pitre <email address hidden>
Date: Mon Sep 19 00:28:45 2011 -0400

    ARM: move VMALLOC_END down temporarily for shmobile

    THIS IS A TEMPORARY HACK. The purpose of this is _only_ to avoid a
    regression on an existing machine while a better fix is implemented.

    On shmobile the consistent DMA memory area was set to 158MB in commit
    28f0721a79 with no explanation. The documented size for this area should
    vary between 2MB and 14MB, and none of the other ARM targets exceed that.

    The included #warning is therefore meant to be noisy on purpose to get
    shmobile maintainers attention and this commit reverted once this
    consistent DMA size conflict is resolved.

    Signed-off-by: Nicolas Pitre <email address hidden>
    Cc: Magnus Damm <email address hidden>
    Cc: Paul Mundt <email address hidden>

commit d0e6b2236a26711939bfcdd97370fedcd526a191
Author: Nicolas Pitre <email address hidden>
Date: Thu Sep 15 16:30:54 2011 -0400

    ARM: big removal of now unused vmalloc.h files

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 576d2f2525612ecb5af029a76f21f22a3b82563d
Author: Nicolas Pitre <email address hidden>
Date: Fri Sep 16 01:14:23 2011 -0400

    ARM: add generic ioremap optimization by reusing static mappings

    Now that we have all the static mappings from iotable_init() located
    in the vmalloc area, it is trivial to optimize ioremap by reusing those
    static mappings when the requested physical area fits in one of them,
    and so in a generic way for all platforms.

    Signed-off-by: Nicolas Pitre <email address hidden>
    Tested-by: Stephen Warren <email address hidden>
    Tested-by: Kevin Hilman <email address hidden>
    Tested-by: Jamie Iles <email address hidden>

commit 6ee723a6570a897208b76ab3e9a495e9106b2f8c
Author: Nicolas Pitre <email address hidden>
Date: Thu Sep 15 22:12:19 2011 -0400

    ARM: simplify __iounmap() when dealing with section based mapping

    Firstly, there is no need to have a double pointer here as we're only
    walking the vmlist and not modifying it.

    Secondly, for the same reason, we don't need a write lock but only a
    read lock here, since the lock only protects the coherency of the list
    nothing else.

    Lastly, the reason for holding a lock is not what the comment says, so
    let's remove that misleading piece of information.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 0536bdf33faff4d940ac094c77998cfac368cfff
Author: Nicolas Pitre <email address hidden>
Date: Thu Aug 25 00:35:59 2011 -0400

    ARM: move iotable mappings within the vmalloc region

    In order to remove the build time variation between different SOCs with
    regards to VMALLOC_END, the iotable mappings are now allocated inside
    the vmalloc region. This allows for VMALLOC_END to be identical across
    all machines.

    The value for VMALLOC_END is now set to 0xff000000 which is right where
    the consistent DMA area starts.

    To accommodate all static mappings on machines with possible highmem usage,
    the default vmalloc area size is changed to 240 MB so that VMALLOC_START
    is no higher than 0xf0000000 by default.

    Signed-off-by: Nicolas Pitre <email address hidden>
    Tested-by: Stephen Warren <email address hidden>
    Tested-by: Kevin Hilman <email address hidden>
    Tested-by: Jamie Iles <email address hidden>

commit 2d13ccaa8797d7e599f3792aed4b1e44b47f94a5
Merge: 59136ef 11f1c5d
Author: Russell King <email address hidden>
Date: Mon Nov 21 21:56:56 2011 +0000

    Merge branch 'irqchip-consolidation' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into devel-stable

    Conflicts:
     arch/arm/mach-omap2/board-4430sdp.c
     arch/arm/mach-omap2/board-omap4panda.c
     arch/arm/mach-omap2/include/mach/omap4-common.h
     arch/arm/plat-omap/include/plat/irqs.h

    The changes to omap4-common.h were moved to arch/arm/mach-omap2/common.h
    and the other trivial conflicts resolved. The now empty ifdef in irqs.h
    was also eliminated.

commit 59136ef3c596606d3eef920dc3e0fdfa2ce52c6f
Merge: e879c86 3f1517a
Author: Russell King <email address hidden>
Date: Mon Nov 21 09:49:47 2011 +0000

    Merge branch 'restart-cleanup' into restart

commit 3f1517a761905c55d1db71cb0afd359d74a76a6c
Author: Russell King <email address hidden>
Date: Wed Nov 2 14:38:07 2011 +0000

    ARM: restart: remove poodle restart handler

    The poodle restart handler was added in 74617fb6b8 (3593/1: Add reboot
    and shutdown handlers for Zaurus handhelds), and at that time it was
    necessary to deal with the RCSR register. This commit also forced all
    restarts to use the 'hard' restart method.

    In dc38e2ad53 (pxa: Fix RCSR handling), the RCSR handling was removed,
    leaving just the forcing to use a 'hard' restart. As hard restarts are
    the default (in the absense of a reboot= command line argument), this
    seems pointless. In any case, Richard Purdie says:

    > From what I remember that hardware either always reboots or always
    > halts. I think the option was therefore left hardcoded to make it clear
    > it wasn't expected to work. Later Zaurii models could do either but
    > required some manual poking of registers to make it happen iirc.
    >
    > Regardless, you can probably clean this up as you suggest now.

    So, lets remove the unnecessary interception and rely on the default
    restart mode.

    Acked-by: Richard Purdie <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit e5bc9e257a4ef3dabc6b5573215983d663ffcd55
Author: Russell King <email address hidden>
Date: Mon Nov 7 18:02:39 2011 +0000

    ARM: w90x900: add common nuc9xx.h

    Rather than having separate extern declarations in nuc9*.h, provide
    a common header file containing these definitions.

    Tested-by: Wan Zongshun <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit e879c862fb81b986095ae7a4676b2281c2f97957
Author: Russell King <email address hidden>
Date: Tue Nov 1 13:16:26 2011 +0000

    ARM: restart: only perform setup for restart when soft-restarting

    We only need to set the system up for a soft-restart if we're going to
    be doing a soft-restart. Provide a new function (soft_restart()) which
    does the setup and final call for this, and make platforms use it.
    Eliminate the call to setup_restart() from the default handler.

    This means that platforms arch_reset() function is no longer called with
    the page tables prepared for a soft-restart, and caches will still be
    enabled.

    Acked-by: Nicolas Pitre <email address hidden>
    Acked-by: Will Deacon <email address hidden>
    Acked-by: H Hartley Sweeten <email address hidden>
    Acked-by: Kukjin Kim <email address hidden>
    Acked-by: Sascha Hauer <email address hidden>
    Acked-by: Viresh Kumar <email address hidden>
    Acked-by: Krzysztof Ha■asa <email address hidden>
    Acked-by: Paul Mundt <email address hidden>
    Acked-by: Richard Purdie <email address hidden>
    Acked-by: Wan ZongShun <email address hidden>
    Acked-by: Eric Miao <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit be9b7335e70696bee731c152429b1737e42fe163
Author: Nicolas Pitre <email address hidden>
Date: Thu Aug 25 00:24:21 2011 -0400

    mm: add vm_area_add_early()

    The existing vm_area_register_early() allows for early vmalloc space
    allocation. However upcoming cleanups in the ARM architecture require
    that some fixed locations in the vmalloc area be reserved also very early.

    The name "vm_area_register_early" would have been a good name for the
    reservation part without the allocation. Since it is already in use with
    different semantics, let's create vm_area_add_early() instead.

    Both vm_area_register_early() and vm_area_add_early() can be used together
    meaning that the former is now implemented using the later where it is
    ensured that no conflicting areas are added, but no attempt is made to
    make the allocation scheme in vm_area_register_early() more sophisticated.
    After all, you must know what you're doing when using those functions.

    Signed-off-by: Nicolas Pitre <email address hidden>
    Acked-by: Andrew Morton <email address hidden>
    Cc: <email address hidden>

commit 55a8173cfe1c6b489f8f5705282c762aed2e265e
Author: Nicolas Pitre <email address hidden>
Date: Sun Sep 18 22:40:00 2011 -0400

    ARM: move initialization of the high_memory variable earlier

    Some upcoming changes must know the VMALLOC_START value, which is based
    on high_memory, before bootmem_init() is called.

    The best location to set it is in sanity_check_meminfo() where the needed
    computation is already done, and in the non MMU case it is trivial to do
    now that the meminfo array is already sorted at that point.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 27a3f0e91bed0f4dcf0a363e5f5938126d1ff4e5
Author: Nicolas Pitre <email address hidden>
Date: Thu Aug 25 19:10:29 2011 -0400

    ARM: sort the meminfo array earlier

    The meminfo array has to be sorted before sanity_check_meminfo() in
    arch/arm/mm/mmu.c is called for it to work properly. This also allows
    for a simpler find_limits() in arch/arm/mm/init.c.

    The sort is moved to arch/arm/kernel/setup.c because that's where the
    meminfo array is populated. Eventually this should be improved upon
    to make the memory bank parser a bit more robust against problems
    such as overlapping memory ranges.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 3e28c800440d80ede7edb21dbde61f6522d6536b
Author: Rob Herring <email address hidden>
Date: Thu Sep 29 19:46:18 2011 -0500

    ARM: realview-eb11mp: fix map_desc alignment

    REALVIEW_EB11MP_GIC_CPU_BASE is not 4KB aligned which causes an
    overlapping mapping. Use REALVIEW_EB11MP_SCU_BASE instead which is
    aligned.

    Signed-off-by: Rob Herring <email address hidden>
    Signed-off-by: Nicolas Pitre <email address hidden>

commit 9ceceb652a0f1e5f45cb6c8af09267e7db875d7b
Author: Rob Herring <email address hidden>
Date: Thu Sep 29 16:22:02 2011 -0500

    ARM: realview: fix map_desc alignment

    REALVIEW_PBX_TILE_GIC_CPU_BASE is not 4KB aligned which causes an
    overlapping mapping. Use REALVIEW_PBX_TILE_SCU_BASE instead which is
    aligned.

    Signed-off-by: Rob Herring <email address hidden>
    Signed-off-by: Nicolas Pitre <email address hidden>

commit 38bd7493aa37d72bfa57dfd4e7e34ae6ade2697c
Author: Rob Herring <email address hidden>
Date: Thu Sep 29 13:18:29 2011 -0500

    ARM: versatile: remove overlapping map_desc entry

    The map_desc for VERSATILE_GPIO0_BASE overlaps with VERSATILE_SCTL_BASE.
    The overlapping entry can be removed.

    Signed-off-by: Rob Herring <email address hidden>
    Signed-off-by: Nicolas Pitre <email address hidden>

commit a55eaacb18e61f40e2c2e468d22b192a1e0d2641
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400

    ARM: plat-iop: remove arch specific special handling for ioremap

    A generic version should replace this later.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit d88cc28799fd5ad2987e6b1ff2a3c4d5a039cbaf
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400

    ARM: mach-ixp23xx: remove arch specific special handling for ioremap

    A generic version should replace this later.

    Signed-off-by: Nicolas Pitre <email address hidden>
    Reviewed-by: Deepak Saxena <email address hidden>

commit a8ceac5ef7a98a1c36030e1ebd3f32f105fde288
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400

    ARM: mach-kirkwood: remove arch specific special handling for ioremap

    A generic version should replace this later.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 6949f8c08d232a4f4ed8f93eeff0815b2a6d39f4
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400

    ARM: mach-orion5x: remove arch specific special handling for ioremap

    A generic version should replace this later.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit bfcd2ea6a40b33270564d706396f1b514a988d3c
Author: Nicolas Pitre <email address hidden>
Date: Thu Sep 15 16:23:45 2011 -0400

    ARM: mach-bcmring: use proper constant to identify DMA memory area

    Using VMALLOC_END implies a presumption about the layout which is best
    avoided, even if in practice this would not change much.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 7146182c7f446903dea032fc992dca8d61c12750
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400

    ARM: plat-omap: remove arch specific special handling for ioremap

    A generic version should replace this later.

    As io.c has become nearly empty, omap_init_consistent_dma_size() is moved
    into common.c so that io.c can be removed entirely.

    Signed-off-by: Nicolas Pitre <email address hidden>
    Tested-by: Kevin Hilman <email address hidden>

commit 3a083227a45cbbf5d29e6fe7c093af9e09905d4d
Author: Russell King <email address hidden>
Date: Sat Nov 5 17:38:32 2011 +0000

    ARM: clps711x: consolidate irq/mm/time code into a single file

    The separate files for clps711x which contain maybe one or two data
    structures or functions is an inefficient use of files, and encourages
    further small files as other changes happen. Collapse down these into
    a single core.c file.

    Signed-off-by: Russell King <email address hidden>

commit 4e65331c6bb4a777bd61a4dac0daa9fc47777b63
Author: Tony Lindgren <email address hidden>
Date: Thu Nov 10 22:45:17 2011 +0100

    ARM: 7159/1: OMAP: Introduce local common.h files

    As suggested by Russell King - ARM Linux <email address hidden>,
    there's no need to keep local prototypes in non-local headers.

    Add mach-omap1/common.h and mach-omap2/common.h and move the
    local prototypes there from plat/common.h and mach/omap4-common.h.

    Signed-off-by: Tony Lindgren <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 6a6f1efaced2ca7f8cd581a220af428c6bfc909d
Author: Russell King <email address hidden>
Date: Mon Oct 31 14:34:31 2011 +0000

    ARM: restart: remove local_irq_disable() from within arch_reset()

    IRQs are already disabled by the time arch_reset() is called, so these
    calls to local_irq_disable() instead arch_reset() are redundant. Remove
    them.

    Acked-by: H Hartley Sweeten <email address hidden>
    Acked-by: Nicolas Pitre <email address hidden>
    Acked-by: Will Deacon <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 3c4c342fea35fa1976853d8ebc518a06c98259a3
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400

    ARM: mach-tegra: remove arch specific special handling for ioremap

    A generic version should replace this later.

    Signed-off-by: Nicolas Pitre <email address hidden>
    Tested-by: Stephen Warren <email address hidden>

commit 400eeee1bd48cec3b7c2c57c473568ccb53486cc
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400

    ARM: mach-davinci: remove arch specific special handling for ioremap

    A generic version should replace this later.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit cf48c02e3bf0f996897f0c5ab300b16a69ad67f7
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400

    ARM: mach-at91: remove arch specific special handling for ioremap

    A generic version should replace this later.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit df9528add197bccf10df5e8b465fed54a70d73b4
Author: Nicolas Pitre <email address hidden>
Date: Thu Aug 25 00:33:59 2011 -0400

    ARM: plat-mxc: remove inclusion of <mach/vmalloc.h>

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 8da54a0b47a0c3f2cbb31e92472d5d3887b620b8
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 15:14:19 2011 -0400

    ARM: mach-prima2: don't define SIRFSOC_VA in terms of VMALLOC_END

    ... since it is going to change.

    Signed-off-by: Nicolas Pitre <email address hidden>
    Tested-by: Barry Song <email address hidden>

commit 1a4c1c966958ec602c5efd46eb2e53a9cb17f5e4
Author: Nicolas Pitre <email address hidden>
Date: Thu Aug 25 00:33:59 2011 -0400

    ARM: mach-dove: remove inclusion of <mach/vmalloc.h>

    This include is unnecessary.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 11f1c5de7be06bbb51363002ebc4d00edc2677df
Author: Jamie Iles <email address hidden>
Date: Thu Nov 3 17:32:39 2011 +0000

    ARM: VIC: remove non MULTI_IRQ_HANDLER support

    Now that all platforms are converted to MULTI_IRQ_HANDLER, remove the
    legacy support.

    Tested-by: Thomas Abraham <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit c05012ce9a70100dd547042865df751498244ec3
Author: Jamie Iles <email address hidden>
Date: Thu Nov 3 17:29:03 2011 +0000

    ARM: picoxcell: convert to MULTI_IRQ_HANDLER

    Now that there is a generic IRQ handler for multiple VIC devices use it
    for picoxcell to help building multi platform kernels.

    Signed-off-by: Jamie Iles <email address hidden>

commit bb3a4ebe63194a41b7d4420cbc26732e15aa8242
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:53:31 2011 +0100

    ARM: samsung: convert to MULTI_IRQ_HANDLER

    Now that there is a generic IRQ handler for multiple VIC devices use it
    for samsung to help building multi platform kernels.

    Cc: Kukjin Kim <email address hidden>
    Tested-by: Thomas Abraham <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit c8be7acd63ed65aa034fc036bb2c7867f30561bd
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:46:10 2011 +0100

    ARM: versatile: convert to MULTI_IRQ_HANDLER

    Now that there is a generic IRQ handler for multiple VIC devices use it
    for versatile to help building multi platform kernels.

    Cc: Russell King <email address hidden>
    Tested-by: Marc Zyngier <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit b7378eafb3c478824146977022889c97f077bbd5
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:41:01 2011 +0100

    ARM: u300: convert to MULTI_IRQ_HANDLER

    Now that there is a generic IRQ handler for multiple VIC devices use it
    for u300 to help building multi platform kernels.

    Acked-by: Linus Walleij <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit 66266f4ab8a049680cacf72ce792d967c12cd99a
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:35:14 2011 +0100

    ARM: spear: convert to MULTI_IRQ_HANDLER

    Now that there is a generic IRQ handler for multiple VIC devices use it
    for spear to help building multi platform kernels.

    Acked-by: Viresh Kumar <email address hidden>
    Cc: Rajeev Kumar <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit 774b51f8f8269cb9a2cdbe2ac2c0a2ff62250b01
Author: Jamie Iles <email address hidden>
Date: Fri Nov 4 01:10:04 2011 +0000

    ARM: s3c64xx: convert to MULTI_IRQ_HANDLER

    Now that there is a generic IRQ handler for multiple VIC devices use it
    for s3c64xx to help building multi platform kernels.

    Cc: Ben Dooks <email address hidden>
    Tested-by: Thomas Abraham <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit 42ab5304547b1d40909eeb499b5f38b99410e597
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:25:51 2011 +0100

    ARM: nomadik: convert to MULTI_IRQ_HANDLER

    Now that there is a generic IRQ handler for multiple VIC devices use it
    for nomadik to help building multi platform kernels.

    Cc: Alessandro Rubini <email address hidden>
    Acked-by: Linus Walleij <email address hidden>
    Cc: STEricsson <email address hidden>
    Tested-by: Thomas Abraham <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit 14f127badadb3960f73c63dac91092a7425aa38e
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:22:21 2011 +0100

    ARM: netx: convert to MULTI_IRQ_HANDLER

    Now that there is a generic IRQ handler for multiple VIC devices use it
    for netx to help building multi platform kernels.

    Signed-off-by: Jamie Iles <email address hidden>

commit 9a6879bd902e2ec605fff4d9fb3247b440a1f66a
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:07:05 2011 +0100

    ARM: ep93xx: convert to MULTI_IRQ_HANDLER

    Now that there is a generic IRQ handler for multiple VIC devices use it
    for ep93xx to help building multi platform kernels.

    Cc: Hartley Sweeten <email address hidden>
    Cc: Ryan Mallon <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit 1558368eb5d67a41d4199db32d3f5858660b44cf
Author: Jamie Iles <email address hidden>
Date: Wed Sep 28 09:40:11 2011 +0100

    ARM: vic: MULTI_IRQ_HANDLER handler

    Add a handler for the VIC that is suitable for MULTI_IRQ_HANDLER
    platforms. This can replace the ASM entry macros for platforms that use
    the VIC.

    v4: - rebase ontop of move __exception and friends to
       asm/exception.h
     - rework polling loop to handle as many irqs as possible in one go
    v3: - simplify irq handling loop as suggested by Grant
     - service interrupts from msb->lsb order
    v2: - allow the handler be used for !CONFIG_OF
     - use irq_domain_to_irq()

    Cc: Rob Herring <email address hidden>
    Acked-by: Grant Likely <email address hidden>
    Acked-by: Linus Walleij <email address hidden>
    Tested-by: Thomas Abraham <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit f9b28ccbc7139af656147dcbba9c5425d5706b7d
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 11:00:46 2011 +0100

    ARM: vic: device tree binding

    This adds a device tree binding for the VIC based on the of_irq_init()
    support. This adds an irqdomain to the vic and always registers all
    vics in the static vic array rather than for pm only to keep track of
    the irq domain. struct irq_data::hwirq is used where appropriate rather
    than runtime masking.

    v3: - include linux/export.h for THIS_MODULE
    v2: - use irq_domain_simple_ops
     - remove stub implementation of vic_of_init for !CONFIG_OF
     - Make VIC select IRQ_DOMAIN

    Reviewed-by: Rob Herring <email address hidden>
    Reviewed-by: Grant Likely <email address hidden>
    Tested-by: Thomas Abraham <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit 08d33b27f7063ba2b4a29f9e3a2dcb65f30dec0b
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 13:27:10 2011 +0100

    ARM: GIC: Make MULTI_IRQ_HANDLER mandatory

    Now that MULTI_IRQ_HANDLER is selected by all the in-tree
    GIC users, make it mandatory and remove the unused macros.

    Signed-off-by: Marc Zyngier <email address hidden>

commit ab65be268adaae59da5b1306b425a7859f955669
Author: Marc Zyngier <email address hidden>
Date: Tue Nov 15 17:22:45 2011 +0000

    ARM: omap2plus: remove irq-related global base addresses

    After the MULTI_IRQ_HANDLER conversion, a couple of global
    variables can be removed.

    Signed-off-by: Marc Zyngier <email address hidden>

commit 6b2f55d7851aa358d3a99cff344c560c4967f042
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: omap2plus: convert to CONFIG_MULTI_IRQ_HANDLER

    Convert the omap2plus platforms to be using CONFIG_MULTI_IRQ_HANDLER.
    Each machine is modified to provide either omap2_intc_handle_irq(),
    omap3_intc_handle_irq() or gic_handle_irq().

    This allows for a major cleanup, removing the MULTI_OMAP setup
    from the interrupt path.

    Tested on both Panda and IGEPv2 (single kernel image)

    Tested-by: Tony Lindgren <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit 2db1499784da653f7e257d98fefdebc65fde7c40
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 09:56:17 2011 +0100

    ARM: omap2/3: Add global omap2/3_intc_handle_irq() functions

    Provide the OMAP2/3 IRQ code with low level handlers that can be used
    by platforms using CONFIG_MULTI_IRQ_HANDLER. Though the handlers are
    written in C, the compiled code looks very similar to its assembly
    counterpart (at least with my gcc 4.4.1).

    Tested-by: Tony Lindgren <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit 368b8e252335725ea72d7bcbb3b1c8837b8dfeed
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: zynq: convert to CONFIG_MULTI_IRQ_HANDLER

    Convert the zynq platform to be using the gic_handle_irq
    function as its primary interrupt handler.

    Acked-by: John Linn <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit ead31ee5ed00d2b95922d868cd0d63da23e47213
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: cns3xxx: convert to CONFIG_MULTI_IRQ_HANDLER

    Convert the cns3xxx platform to be using the gic_handle_irq
    function as its primary interrupt handler.

    Acked-by: Anton Vorontsov <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit a83d8e27d2f6f548de54da34a9dfd7f2f7bf200e
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: shmobile: convert smp platforms to gic_handle_irq()

    Convert the SMP shmobile platforms to use gic_handle_irq() instead
    of the assembly macro.

    Cc: Paul Mundt <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit bbf5f38599701d80d0bf03ffd0a68baa48f98e43
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: ux500: convert to CONFIG_MULTI_IRQ_HANDLER

    Convert the ux500 platforms to be using the gic_handle_irq
    function as their primary interrupt handler.

    Acked-by: Linus Walleij <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit afed2a261825e83cf9564dec60961e8aba6dc701
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: tegra2: convert to CONFIG_MULTI_IRQ_HANDLER

    Convert the tegra2 platforms to be using the gic_handle_irq
    function as their primary interrupt handler.

    Tested on harmony.

    Cc: Colin Cross <email address hidden>
    Acked-by: Stephen Warren <email address hidden>
    Acked-by: Olof Johansson <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit 4e44d2cb95bd93abe16a131dbcd4c052ae36665f
Author: Marc Zyngier <email address hidden>
Date: Mon May 30 11:04:53 2011 +0100

    ARM: exynos4: convert to CONFIG_MULTI_IRQ_HANDLER

    Convert the Exynos4 platforms to be using the gic_handle_irq
    function as their primary interrupt handler.

    Cc: Ben Dooks <email address hidden>
    Cc: Kukjin Kim <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit 041f777c93bab29565d999a292b9b9b533fe6f5e
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: msm: convert SMP platforms to CONFIG_MULTI_IRQ_HANDLER

    Convert the SMP msm platforms to be using the gic_handle_irq
    function as their primary interrupt handler.

    Tested-by: David Brown <email address hidden>
    Acked-by: David Brown <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit abd3ca51fba8bc200ae78e99bd1ac19c4e3b6781
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: VExpress: convert to CONFIG_MULTI_IRQ_HANDLER

    Convert the VExpress platform to be using the gic_handle_irq
    function as its primary interrupt handler.

    Signed-off-by: Marc Zyngier <email address hidden>

commit 1b99d9ccb52d64bfdab0d58915909b10cbbdf9e1
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: RealView: convert to CONFIG_MULTI_IRQ_HANDLER

    Convert the RealView platforms to be using the gic_handle_irq
    function as their primary interrupt handler.

    Signed-off-by: Marc Zyngier <email address hidden>

commit 7e01799c669c60460dce43556065ca3b66760dcf
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: highbank: convert to CONFIG_MULTI_IRQ_HANDLER

    Convert the highbank platform to be using the gic_handle_irq
    function as its primary interrupt handler.

    Cc: Rob Herring <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit fea9fe8329c74159fb2030f1aacf29fdab9fc6d6
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: imx: convert smp platforms to global gic_handle_irq()

    Convert the SMP imx platforms to use the global gic_handle_irq()
    function instead a private function.

    Cc: Sascha Hauer <email address hidden>
    Acked-by: Shawn Guo <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit 562e0027d21bf64838178e2f5157df3d5833972e
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 09:56:17 2011 +0100

    ARM: GIC: Add global gic_handle_irq() function

    Provide the GIC code with a low level handler that can be used
    by platforms using CONFIG_MULTI_IRQ_HANDLER.

    Signed-off-by: Marc Zyngier <email address hidden>

commit baeeb8229cace91c10c856d91e5ca861d3c44968
Author: Marc Zyngier <email address hidden>
Date: Wed Nov 2 15:28:49 2011 +0000

    ARM: mxc: rename gic_handle_irq to avoid name clash

    Before introducing a global gic_handle_irq(), rename
    MXC's version to mxc_gic_handle_irq(). This function will be
    removed altogether in a later patch.

    Cc: Sascha Hauer <email address hidden>
    Acked-by: Shawn Guo <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit abeb24ae4d3e543ecf0104cff08a3af4e7a42479
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 09:23:26 2011 +0100

    ARM: Make global handler and CONFIG_MULTI_IRQ_HANDLER mutually exclusive

    Even when CONFIG_MULTI_IRQ_HANDLER is selected, the core code
    requires the arch_irq_handler_default macro to be defined as
    a fallback.

    It turns out nobody is using that particular feature as both PXA
    and shmobile have all their machine descriptors populated with
    the interrupt handler, leaving unused code (or empty macros) in
    their entry-macro.S file just to be able to compile entry-armv.S.

    Make CONFIG_MULTI_IRQ_HANDLER exclusive wrt arch_irq_handler_default,
    which allows to remove one test from the hot path. Also cleanup both
    PXA and shmobile entry-macro.S.

    Cc: Paul Mundt <email address hidden>
    Acked-by: Nicolas Pitre <email address hidden>
    Acked-by: Eric Miao <email address hidden>
    Tested-by: Jamie Iles <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit db0d4db22a78d31c59087f7057b8f1612fecc35d
Author: Marc Zyngier <email address hidden>
Date: Sat Nov 12 16:09:49 2011 +0000

    ARM: gic: allow GIC to support non-banked setups

    The GIC support code is heavily using the fact that hardware
    implementations are exposing banked registers. Unfortunately, it
    looks like at least one GIC implementation (EXYNOS) offers both
    the distributor and the CPU interfaces at different addresses,
    depending on the CPU.

    This problem is solved by allowing the distributor and CPU interface
    addresses to be per-cpu variables for the platforms that require it.
    The EXYNOS code is updated not to mess with the GIC internals while
    handling interrupts, and struct gic_chip_data is back to being private.
    The DT binding for the gic is updated to allow an optional "cpu-offset"
    value, which is used to compute the various base addresses.

    Finally, a new config option (GIC_NON_BANKED) is used to control this
    feature, so the overhead is only present on kernels compiled with
    support for EXYNOS.

    Tested on Origen (EXYNOS4) and Panda (OMAP4).

    Cc: Kukjin Kim <email address hidden>
    Cc: Will Deacon <email address hidden>
    Cc: Thomas Abraham <email address hidden>
    Acked-by: Rob Herring <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit 5aafec15bdc54cf0722696c95091d7bd674bfcad
Author: Russell King <email address hidden>
Date: Tue Nov 1 10:15:27 2011 +0000

    ARM: restart: remove argument to setup_mm_for_reboot()

    setup_mm_for_reboot() doesn't make use of its argument, so remove it.

    Acked-by: Nicolas Pitre <email address hidden>
    Acked-by: Will Deacon <email address hidden>
    Acked-by: H Hartley Sweeten <email address hidden>
    Acked-by: Tony Lindgren <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit ac15e00b1efe705b66a36d1a6a9db7f6ed524c43
Author: Russell King <email address hidden>
Date: Mon Oct 31 09:22:22 2011 +0000

    ARM: restart: move reboot failure handing into machine_restart()

    Move the failure to reboot into machine_restart() to always catch
    this condition, even if a platform decides to hook the restarting
    via arm_pm_restart().

    Acked-by: Nicolas Pitre <email address hidden>
    Acked-by: Will Deacon <email address hidden>
    Acked-by: H Hartley Sweeten <email address hidden>
    Acked-by: Tony Lindgren <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 34adeda943e1fb10e8de022b834996e04241fa7d
Author: Russell King <email address hidden>
Date: Tue Nov 1 16:24:18 2011 +0000

    ARM: restart: add default restart modes for PXA mioa701, spitz and tosa

    Add a default restart mode to reflect the hard-coded restart mode
    found in these files.

    Acked-by: Nicolas Pitre <email address hidden>
    Acked-by: Will Deacon <email address hidden>
    Acked-by: H Hartley Sweeten <email address hidden>
    Acked-by: Robert Jarzmik <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit b44c350d4104265cf3a6b4355dc1ee05c16aa5de
Author: Russell King <email address hidden>
Date: Tue Nov 1 14:27:33 2011 +0000

    ARM: restart: allow platforms more flexibility specifying restart mode

    Change 'soft_reboot' into a more generic 'restart_mode' variable,
    allowing the default restart mode to be specified.

    Acked-by: Nicolas Pitre <email address hidden>
    Acked-by: Will Deacon <email address hidden>
    Acked-by: H Hartley Sweeten <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit a528721da08a793e0cec6ef6281d404eddd6e27b
Author: Russell King <email address hidden>
Date: Fri Nov 4 15:05:24 2011 +0000

    ARM: restart: add restart hook to machine_desc record

    Add a restart hook to the machine_desc record so we don't have to
    populate all platforms with init_early methods to initialize the
    arm_pm_restart function pointer.

    Acked-by: Nicolas Pitre <email address hidden>
    Acked-by: Will Deacon <email address hidden>
    Acked-by: H Hartley Sweeten <email address hidden>
    Acked-by: Tony Lindgren <email address hidden>
    Signed-off-by: Russell King <email address hidden>

File Description Downloads
download icon linux-linaro-3.2-2012.01-0.tar.bz2 (md5) Kernel release tarball 627
last downloaded 5 weeks ago
download icon CHANGELOG-linux-linaro-3.2-2012.01-0 (md5) Kernel changelog 127
last downloaded 10 weeks ago
Total downloads: 754

3.1-2011.12 release from the 3.1 series released 2011-12-15

Release information
Release notes:

The Linaro Kernel Working Group (KWG) is excited to announce the
availability our December 2011 development snapshot:

linux-linaro-3.1-2011.12-1

As the word "snapshot" implies, these are meant as development kernels
and have not been fully validated. You should expect issues and to help
us deliver a better kernel in the future, please file bugs in Launchpad at
https://bugs.launchpad.net/linux-linaro.

The source tarball is available at:
 http://launchpad.net/linux-linaro/3.1/3.1-2011.12/+download/linux-linaro-3.1-2011.12-1.tar.bz2

The kernel sources can also be accessed using git at:
 git://git.linaro.org/kernel/linux-linaro-3.1.git
 tag: linux-linaro-3.1-2011.12-1

This kernel includes the following changes from the 2011.11 kernel:

- Update to 3.1.5 stable kernel

- Inital thermal...

Changelog:

commit 2150f72fe35397cc6d6ce39866bd0462cfbcc916
Author: Will Deacon <email address hidden>
Date: Fri Dec 2 18:16:01 2011 +0100

    ARM: 7185/1: perf: don't assign platform_device on unsupported CPUs

    In the unlikely case that a platform registers a PMU platform_device
    when running on a CPU that is unsupported by perf, we will encounter a
    NULL dereference when trying to assign the platform_device to the
    cpu_pmu structure.

    This patch checks that the CPU is supported by perf before assigning
    the platform_device.

    Reported-by: Pawel Moll <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>
    Signed-off-by: Russell King <email address hidden>
    (cherry picked from commit 6bd054096dce061560cee0e016e292e588dc438f)

commit f8489660a18c1865ee4f4a47593fd2dcf67a4e88
Author: Will Deacon <email address hidden>
Date: Tue Nov 22 18:01:46 2011 +0000

    ARM: perf: check that we have a platform device when reserving PMU

    Attempting to use a hardware counter on a platform with a supported PMU
    but where the platform_device (defining the interrupts) has not been
    registered results in a NULL pointer dereference.

    This patch fixes the problem by checking that we actually have a platform
    device registered before attempting to grab the interrupts.

    Reported-by: Pawel Moll <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>
    (cherry picked from commit e5a21327644adba32816f74a415114d11c57f2e9)

commit 6014abe68ef9c0a32e9c41434d50f56a7d65bc04
Author: Will Deacon <email address hidden>
Date: Thu Nov 17 15:05:14 2011 +0000

    ARM: perf: initialise used_mask for fake PMU during validation

    When validating an event group, we call pmu->get_event_idx for each
    group member in order to check that the group can be scheduled as a
    unit on an empty PMU.

    As a result of 3fc2c830 ("ARM: perf: remove event limit from
    pmu_hw_events"), the used_mask member of struct cpu_hw_events must be
    setup explicitly, something which we don't do for the fake cpu_hw_events
    used for validation.

    This patch sets up an empty used_mask for the fake validation
    cpu_hw_events, preventing NULL deferences when trying to get the event
    index.

    Reported-by: Pawel Moll <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>
    (cherry picked from commit bce34d14428d35d9a06ddc10cd46ecef311764c9)

commit 1226e419377fb4b53d6e08c0a9fd5ecf90597cd6
Merge: ec5237f e82b9d8
Author: Nicolas Pitre <email address hidden>
Date: Wed Dec 14 12:08:53 2011 -0500

    Merge branch 'thermal_cpu_cooling' of git://git.linaro.org/people/amitdanielk/linux into linaro-3.1

    Conflicts:
     drivers/thermal/Kconfig
     drivers/thermal/Makefile

commit ec5237f097a75b7f4d19b87377ef1557431fb199
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Dec 13 20:40:01 2011 +0530

    thermal: Add generic cpu cooling implementation

    This patch adds support for generic cpu thermal cooling low level
    implementations using frequency scaling and cpuhotplugg currently.
    Different cpu related cooling devices can be registered by the
    user and the binding of these cooling devices to the corresponding
    trip points can be easily done as the registration API's return the
    cooling device pointer.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>
    Signed-off-by: Nicolas Pitre <email address hidden>

commit adb2b0bf1daac11ea0284ba259ce0f88c9231591
Author: Amit Daniel Kachhap <email address hidden>
Date: Thu Dec 1 18:51:39 2011 +0530

    thermal: Add a new trip type to use cooling device instance number

    This patch adds a new trip type THERMAL_TRIP_STATE_ACTIVE. This
    trip behaves same as THERMAL_TRIP_ACTIVE but also passes the cooling
    device instance number. This helps the cooling device registered as
    different instances to perform appropriate cooling action decision in
    the set_cur_state call back function.

    Also since the trip temperature's are in ascending order so some logic
    is put in place to skip the un-necessary checks.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>
    Signed-off-by: Nicolas Pitre <email address hidden>

commit e82b9d821ecc1f857142a55b0fb38d0d5256fbaf
Author: Amit Daniel Kachhap <email address hidden>
Date: Wed Dec 14 21:44:07 2011 +0530

    ARM: exynos4: Add thermal sensor driver platform device support

    This patch adds necessary source definations needed for TMU driver and
    the platform device support.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 6bdad5c64b0482e61d20e22ddcfae40b2aa9f83f
Author: Amit Daniel Kachhap <email address hidden>
Date: Mon Dec 12 11:01:39 2011 +0530

    hwmon: exynos4: Add cpu frequency clip data for certain threshold

    This patch helps to modify the exynos4 tmu to get the frequency clipping
    data from the platform if needed for a temperature trip points.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 15bfc7956f3fef104c3b3d14a414f9e80eb94d41
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Dec 13 14:57:23 2011 +0530

    thermal: exynos4: Export information from the TMU driver

    Export information from the hwmon tmu sensor to the samsung exynos
    kernel thermal framework where different cooling devices and thermal
    zone are binded. The exported information is based according to the
    data structure thermal_sensor_info present in exynos_thermal.h.
    HWMON sysfs functions are commented out as they are also present
    in generic linux thermal layer.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit d9f151cda68a86d176b0d6773c019eeae1d58301
Author: Amit Daniel Kachhap <email address hidden>
Date: Mon Dec 12 10:44:36 2011 +0530

    thermal: exynos: Add thermal interface support for linux thermal layer

    This codes uses the generic linux thermal layer and creates a bridge
    between temperature sensors, linux thermal framework and cooling devices
    for samsung exynos platform. This layer recieves or monitor
    the temperature from the sensor and informs the generic thermal layer.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit a3cb3d54f43aa6fdae32be9b0e12b66a0ccedfc3
Author: Amit Daniel Kachhap <email address hidden>
Date: Fri Nov 25 15:15:18 2011 +0530

    ARM: EXYNOS4: Add tmu hwmon driver

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 0e939cfbb42214337ecd1782c4e233972ed90630
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Dec 13 20:40:01 2011 +0530

    thermal: Add generic cpu cooling implementation

    This patch adds support for generic cpu thermal cooling low level
    implementations using frequency scaling and cpuhotplugg currently.
    Different cpu related cooling devices can be registered by the
    user and the binding of these cooling devices to the corresponding
    trip points can be easily done as the registration API's return the
    cooling device pointer.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 3918a3c61ea129534f6c9343df59a73f23a3a331
Author: Amit Daniel Kachhap <email address hidden>
Date: Thu Dec 1 18:51:39 2011 +0530

    thermal: Add a new trip type to use cooling device instance number

    This patch adds a new trip type THERMAL_TRIP_STATE_ACTIVE. This
    trip behaves same as THERMAL_TRIP_ACTIVE but also passes the cooling
    device instance number. This helps the cooling device registered as
    different instances to perform appropriate cooling action decision in
    the set_cur_state call back function.

    Also since the trip temperature's are in ascending order so some logic
    is put in place to skip the un-necessary checks.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit ceb077bd2729f64b4680f81dc8dee308890ac52f
Author: Jongpill Lee <email address hidden>
Date: Tue Jul 5 13:36:19 2011 +0530

    EXYNOS4210: Add Support for DVS Lock

    Signed-off-by: Jongpill Lee <email address hidden>
    Signed-off-by: SangWook Ju <email address hidden>
    Signed-off-by: Jonghwan Choi <email address hidden>
    Signed-off-by: Kukjin Kim <email address hidden>

commit fd899eba028e72659bf6572c974a92652e90dd23
Author: Jongpill Lee <email address hidden>
Date: Tue Jul 5 13:36:18 2011 +0530

    EXYNOS4210: Cleanup sequence and unused codes

    This patch modifies following.
    1. Remove unused register access
    2. Change sequence of changing frequency
    3. Minor optimization

    Signed-off-by: Jongpill Lee <email address hidden>
    Signed-off-by: SangWook Ju <email address hidden>
    Signed-off-by: Jonghwan Choi <email address hidden>
    Signed-off-by: Kukjin Kim <email address hidden>

commit 0a75037e551780bf2d224f7b3db691bb9aa7dd34
Author: Jongpill Lee <email address hidden>
Date: Tue Jul 5 13:36:17 2011 +0530

    EXYNOS4210: Change CPU table and divider

    This patch adds support 1.2GHz CPU frequency and changes
    CPU table and divider for stable working.

    Signed-off-by: Jongpill Lee <email address hidden>
    Signed-off-by: SangWook Ju <email address hidden>
    Signed-off-by: Kukjin Kim <email address hidden>

commit d8ed3dad2b9beb6cab09f00ea1011a7d35e860de
Author: Jongpill Lee <email address hidden>
Date: Tue Jul 5 13:36:16 2011 +0530

    EXYNOS4210: Remove regarding busfreq codes

    Since busfreq codes can be handlend on busfreq driver,
    this patch removes regarding busfreq codes on cpufreq.

    Signed-off-by: Jongpill Lee <email address hidden>
    Signed-off-by: SangWook Ju <email address hidden>
    Signed-off-by: Kukjin Kim <email address hidden>

commit 971be11492b1e248798f7078592b1fa0dfbf3534
Author: Nicolas Pitre <email address hidden>
Date: Tue Dec 13 14:28:39 2011 -0500

    ARM: oprofile: don't mark oprofile_arch_exit() with __exit

    When the oprofile code is built into the kernel, the code marked
    with __exit is discarded at link time. This fails the build as
    oprofile_arch_exit() is referenced from oprofile_init() which is
    in a different section.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 874b0239d896c2b493f2c4c23b2a60ad258632b3
Merge: 4cd6f5d caf4b04
Author: Nicolas Pitre <email address hidden>
Date: Mon Dec 12 11:40:50 2011 -0500

    Merge commit 'v3.1.5' into linaro-3.1

commit caf4b0430be8296bf644199bf3ed3056c02420c7
Author: Greg Kroah-Hartman <email address hidden>
Date: Fri Dec 9 08:57:05 2011 -0800

    Linux 3.1.5

commit 50d224d483a7dbecf84beffff9f815ac104ee5e8
Author: Eric Dumazet <email address hidden>
Date: Thu Dec 1 11:06:34 2011 +0000

    sch_red: fix red_change

    [ Upstream commit 1ee5fa1e9970a16036e37c7b9d5ce81c778252fc ]

    Le mercredi 30 novembre 2011 à 14:36 -0800, Stephen Hemminger a écrit :

    > (Almost) nobody uses RED because they can't figure it out.
    > According to Wikipedia, VJ says that:
    > "there are not one, but two bugs in classic RED."

    RED is useful for high throughput routers, I doubt many linux machines
    act as such devices.

    I was considering adding Adaptative RED (Sally Floyd, Ramakrishna
    Gummadi, Scott Shender), August 2001

    In this version, maxp is dynamic (from 1% to 50%), and user only have to
    setup min_th (target average queue size)
    (max_th and wq (burst in linux RED) are automatically setup)

    By the way it seems we have a small bug in red_change()

    if (skb_queue_empty(&sch->q))
     red_end_of_idle_period(&q->parms);

    First, if queue is empty, we should call
    red_start_of_idle_period(&q->parms);

    Second, since we dont use anymore sch->q, but q->qdisc, the test is
    meaningless.

    Oh well...

    [PATCH] sch_red: fix red_change()

    Now RED is classful, we must check q->qdisc->q.qlen, and if queue is empty,
    we start an idle period, not end it.

    Signed-off-by: Eric Dumazet <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 4851c6a079350393f4a9219878e699845412bace
Author: Eric Dumazet <email address hidden>
Date: Wed Nov 30 12:10:53 2011 +0000

    sch_red: fix red_calc_qavg_from_idle_time

    [ Upstream commit ea6a5d3b97b768561db6358f15e4c84ced0f4f7e ]

    Since commit a4a710c4a7490587 (pkt_sched: Change PSCHED_SHIFT from 10 to
    6) it seems RED/GRED are broken.

    red_calc_qavg_from_idle_time() computes a delay in us units, but this
    delay is now 16 times bigger than real delay, so the final qavg result
    smaller than expected.

    Use standard kernel time services since there is no need to obfuscate
    them.

    Signed-off-by: Eric Dumazet <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 51338aa88d3ef2d05bf8b1f8a3019ebffcea74f1
Author: Julian Anastasov <email address hidden>
Date: Fri Dec 2 11:39:42 2011 +0000

    ipv4: make sure RTO_ONLINK is saved in routing cache

    [ Upstream commit f61759e6b831a55b89e584b198c3da325e2bc379 ]

    __mkroute_output fails to work with the original tos
    and uses value with stripped RTO_ONLINK bit. Make sure we put
    the original TOS bits into rt_key_tos because it used to match
    cached route.

    Signed-off-by: Julian Anastasov <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 9fdec5ec64644ce4f4081e045dfbcd7518276edb
Author: David S. Miller <email address hidden>
Date: Thu Dec 1 13:38:59 2011 -0500

    ipv4: Perform peer validation on cached route lookup.

    [ Upstream commit efbc368dcc6426d5430b9b8eeda944cf2cb74b8c,
      incorporating a follow-on change to prevent an OOPS ]

    Otherwise we won't notice the peer GENID change.

    Reported-by: Steffen Klassert <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 9c8da5125682191090bf32917a6bfba3d711492d
Author: Eric Dumazet <email address hidden>
Date: Sat Nov 26 12:13:44 2011 +0000

    inet: add a redirect generation id in inetpeer

    [ Upstream commit de68dca1816660b0d3ac89fa59ffb410007a143f ]

    Now inetpeer is the place where we cache redirect information for ipv4
    destinations, we must be able to invalidate informations when a route is
    added/removed on host.

    As inetpeer is not yet namespace aware, this patch adds a shared
    redirect_genid, and a per inetpeer redirect_genid. This might be changed
    later if inetpeer becomes ns aware.

    Cache information for one inerpeer is valid as long as its
    redirect_genid has the same value than global redirect_genid.

    Reported-by: Arkadiusz Miśkiewicz <email address hidden>
    Tested-by: Arkadiusz Miśkiewicz <email address hidden>
    Signed-off-by: Eric Dumazet <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 427814da7d68739ec2c53a9433f62323c68ef34d
Author: Eric Dumazet <email address hidden>
Date: Fri Nov 18 15:24:32 2011 -0500

    ipv4: fix redirect handling

    [ Upstream commit 9cc20b268a5a14f5e57b8ad405a83513ab0d78dc ]

    commit f39925dbde77 (ipv4: Cache learned redirect information in
    inetpeer.) introduced a regression in ICMP redirect handling.

    It assumed ipv4_dst_check() would be called because all possible routes
    were attached to the inetpeer we modify in ip_rt_redirect(), but thats
    not true.

    commit 7cc9150ebe (route: fix ICMP redirect validation) tried to fix
    this but solution was not complete. (It fixed only one route)

    So we must lookup existing routes (including different TOS values) and
    call check_peer_redir() on them.

    Reported-by: Ivan Zahariev <email address hidden>
    Signed-off-by: Eric Dumazet <email address hidden>
    CC: Flavio Leitner <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 5c9c7437749337f1af355eb9e447e75a58822da4
Author: Flavio Leitner <email address hidden>
Date: Mon Oct 24 02:56:38 2011 -0400

    route: fix ICMP redirect validation

    [ Upstream commit 7cc9150ebe8ec06cafea9f1c10d92ddacf88d8ae ]

    The commit f39925dbde7788cfb96419c0f092b086aa325c0f
    (ipv4: Cache learned redirect information in inetpeer.)
    removed some ICMP packet validations which are required by
    RFC 1122, section 3.2.2.2:
    ...
      A Redirect message SHOULD be silently discarded if the new
      gateway address it specifies is not on the same connected
      (sub-) net through which the Redirect arrived [INTRO:2,
      Appendix A], or if the source of the Redirect is not the
      current first-hop gateway for the specified destination (see
      Section 3.3.1).

    Signed-off-by: Flavio Leitner <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit fe421e849a3c36373dd59eb5f302705c91a14719
Author: Gao feng <email address hidden>
Date: Wed Oct 19 15:34:09 2011 +0000

    ipv4: avoid useless call of the function check_peer_pmtu

    [ Upstream commit 59445b6b1f90b97c4e28062b96306bacfa4fb170 ]

    In func ipv4_dst_check,check_peer_pmtu should be called only when peer is updated.
    So,if the peer is not updated in ip_rt_frag_needed,we can not inc __rt_peer_genid.

    Signed-off-by: Gao feng <email address hidden>
    Acked-by: Eric Dumazet <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 5eb027bb82d1f9d4af0df73a3ce08945ffc1b481
Author: Eric Dumazet <email address hidden>
Date: Wed Nov 30 04:08:58 2011 +0000

    sch_teql: fix lockdep splat

    [ Upstream commit f7e57044eeb1841847c24aa06766c8290c202583 ]

    We need rcu_read_lock() protection before using dst_get_neighbour(), and
    we must cache its value (pass it to __teql_resolve())

    teql_master_xmit() is called under rcu_read_lock_bh() protection, its
    not enough.

    Signed-off-by: Eric Dumazet <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit e03d2dc771361ff27ca042b793fa34b27bd6f115
Author: Frank Blaschka <email address hidden>
Date: Tue Nov 15 02:31:15 2011 +0000

    qeth: l3 fix rcu splat in xmit

    [ Upstream commit 1d36cb479f204a0fedc1a3e7ce7b32c0a2c48769 ]

    when use dst_get_neighbour to get neighbour, we need
    rcu_read_lock to protect, since dst_get_neighbour uses
    rcu_dereference.

    Signed-off-by: David S. Miller <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit f667de2e66ea9b8f99353ff01221bb355faf3f3c
Author: Eric Dumazet <email address hidden>
Date: Tue Nov 29 20:05:55 2011 +0000

    ipv4: fix lockdep splat in rt_cache_seq_show

    [ Upstream commit 218fa90f072e4aeff9003d57e390857f4f35513e ]

    After commit f2c31e32b378 (fix NULL dereferences in check_peer_redir()),
    dst_get_neighbour() should be guarded by rcu_read_lock() /
    rcu_read_unlock() section.

    Reported-by: Miles Lane <email address hidden>
    Signed-off-by: Eric Dumazet <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit db9a8a29b0c7c61b372300978fbe8b01606103f0
Author: Li Wei <email address hidden>
Date: Tue Nov 8 21:39:28 2011 +0000

    ipv4: fix for ip_options_rcv_srr() daddr update.

    [ Upstream commit b12f62efb8ec0b9523bdb6c2d412c07193086de9 ]

    When opt->srr_is_hit is set skb_rtable(skb) has been updated for
    'nexthop' and iph->daddr should always equals to skb_rtable->rt_dst
    holds, We need update iph->daddr either.

    Signed-off-by: Li Wei <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit f82c753512bfe2fb4127ee72c882924120c11de8
Author: Nick Bowler <email address hidden>
Date: Tue Nov 8 12:12:45 2011 +0000

    ah: Read nexthdr value before overwriting it in ahash input callback.

    [ Upstream commit b7ea81a58adc123a4e980cb0eff9eb5c144b5dc7 ]

    The AH4/6 ahash input callbacks read out the nexthdr field from the AH
    header *after* they overwrite that header. This is obviously not going
    to end well. Fix it up.

    Signed-off-by: Nick Bowler <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit cfa73cca0cac4e07cc963f332aead8d118707432
Author: Nick Bowler <email address hidden>
Date: Tue Nov 8 12:12:44 2011 +0000

    ah: Correctly pass error codes in ahash output callback.

    [ Upstream commit 069294e813ed5f27f82613b027609bcda5f1b914 ]

    The AH4/6 ahash output callbacks pass nexthdr to xfrm_output_resume
    instead of the error code. This appears to be a copy+paste error from
    the input case, where nexthdr is expected. This causes the driver to
    continuously add AH headers to the datagram until either an allocation
    fails and the packet is dropped or the ahash driver hits a synchronous
    fallback and the resulting monstrosity is transmitted.

    Correct this issue by simply passing the error code unadulterated.

    Signed-off-by: Nick Bowler <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit aeed6baa702a285cf03b7dc4182ffc1a7f4e4ed6
Author: Thomas Gleixner <email address hidden>
Date: Fri Dec 2 16:02:45 2011 +0100

    clockevents: Set noop handler in clockevents_exchange_device()

    commit de28f25e8244c7353abed8de0c7792f5f883588c upstream.

    If a device is shutdown, then there might be a pending interrupt,
    which will be processed after we reenable interrupts, which causes the
    original handler to be run. If the old handler is the (broadcast)
    periodic handler the shutdown state might hang the kernel completely.

    Signed-off-by: Thomas Gleixner <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 5a643352d2166077f88180372431ea5e90212b15
Author: Yang Honggang (Joseph) <email address hidden>
Date: Thu Dec 1 22:22:41 2011 -0500

    clocksource: Fix bug with max_deferment margin calculation

    commit b1f919664d04a8d0ba29cb76673c7ca3325a2006 upstream.

    In order to leave a margin of 12.5% we should >> 3 not >> 5.

    Signed-off-by: Yang Honggang (Joseph) <email address hidden>
    [jstultz: Modified commit subject]
    Signed-off-by: John Stultz <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 3e31d12fa35d8328128ef672a933ab6b8e09e10b
Author: Robert Richter <email address hidden>
Date: Fri Oct 7 16:31:46 2011 +0200

    oprofile: Fix crash when unloading module (hr timer mode)

    commit 87121ca504fd1d963a66b3fb0c72054b0fd9a177 upstream.

    Oprofile may crash in a KVM guest while unlaoding modules. This
    happens if oprofile_arch_init() fails and oprofile switches to the hr
    timer mode as a fallback. In this case oprofile_arch_exit() is called,
    but it never was initialized properly which causes the crash. This
    patch fixes this.

    oprofile: using timer interrupt.
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
    IP: [<ffffffff8123c226>] unregister_syscore_ops+0x41/0x58
    PGD 41da3f067 PUD 41d80e067 PMD 0
    Oops: 0002 [#1] PREEMPT SMP
    CPU 5
    Modules linked in: oprofile(-)

    Pid: 2382, comm: modprobe Not tainted 3.1.0-rc7-00018-g709a39d #18 Advanced Micro Device Anaheim/Anaheim
    RIP: 0010:[<ffffffff8123c226>] [<ffffffff8123c226>] unregister_syscore_ops+0x41/0x58
    RSP: 0018:ffff88041de1de98 EFLAGS: 00010296
    RAX: 0000000000000000 RBX: ffffffffa00060e0 RCX: dead000000200200
    RDX: 0000000000000000 RSI: dead000000100100 RDI: ffffffff8178c620
    RBP: ffff88041de1dea8 R08: 0000000000000001 R09: 0000000000000082
    R10: 0000000000000000 R11: ffff88041de1dde8 R12: 0000000000000080
    R13: fffffffffffffff5 R14: 0000000000000001 R15: 0000000000610210
    FS: 00007f9ae5bef700(0000) GS:ffff88042fd40000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: 0000000000000008 CR3: 000000041ca44000 CR4: 00000000000006e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Process modprobe (pid: 2382, threadinfo ffff88041de1c000, task ffff88042db6d040)
    Stack:
     ffff88041de1deb8 ffffffffa0006770 ffff88041de1deb8 ffffffffa000251e
     ffff88041de1dec8 ffffffffa00022c2 ffff88041de1ded8 ffffffffa0004993
     ffff88041de1df78 ffffffff81073115 656c69666f72706f 0000000000610200
    Call Trace:
     [<ffffffffa000251e>] op_nmi_exit+0x15/0x17 [oprofile]
     [<ffffffffa00022c2>] oprofile_arch_exit+0xe/0x10 [oprofile]
     [<ffffffffa0004993>] oprofile_exit+0x13/0x15 [oprofile]
     [<ffffffff81073115>] sys_delete_module+0x1c3/0x22f
     [<ffffffff811bf09e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
     [<ffffffff8148070b>] system_call_fastpath+0x16/0x1b
    Code: 20 c6 78 81 e8 c5 cc 23 00 48 8b 13 48 8b 43 08 48 be 00 01 10 00 00 00 ad de 48 b9 00 02 20 00 00 00 ad de 48 c7 c7 20 c6 78 81
     89 42 08 48 89 10 48 89 33 48 89 4b 08 e8 a6 c0 23 00 5a 5b
    RIP [<ffffffff8123c226>] unregister_syscore_ops+0x41/0x58
     RSP <ffff88041de1de98>
    CR2: 0000000000000008
    ---[ end trace 06d4e95b6aa3b437 ]---

    Signed-off-by: Robert Richter <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit cf246087a19a4958fba3123d21f1359b6177ddb5
Author: Gleb Natapov <email address hidden>
Date: Tue Oct 18 19:55:51 2011 +0200

    jump_label: jump_label_inc may return before the code is patched

    commit bbbf7af4bf8fc69bc751818cf30521080fa47dcb upstream.

    If cpu A calls jump_label_inc() just after atomic_add_return() is
    called by cpu B, atomic_inc_not_zero() will return value greater then
    zero and jump_label_inc() will return to a caller before jump_label_update()
    finishes its job on cpu B.

    Link: http://<email address hidden>

    Cc: Peter Zijlstra <email address hidden>
    Acked-by: Jason Baron <email address hidden>
    Signed-off-by: Gleb Natapov <email address hidden>
    Signed-off-by: Steven Rostedt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 6bdf07f3dd1c2874792bb07cd84d4210cbc15ca7
Author: Steven Rostedt <email address hidden>
Date: Fri Nov 4 16:32:25 2011 -0400

    perf: Fix parsing of __print_flags() in TP_printk()

    commit d06c27b22aa66e48e32f03f9387328a9af9b0625 upstream.

    A update is made to the sched:sched_switch event that adds some
    logic to the first parameter of the __print_flags() that shows the
    state of tasks. This change cause perf to fail parsing the flags.

    A simple fix is needed to have the parser be able to process ops
    within the argument.

    Reported-by: Andrew Vagin <email address hidden>
    Signed-off-by: Steven Rostedt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 491d3a9bc2ee7ad349a2e03bf259dea8895a5edd
Author: Thomas Gleixner <email address hidden>
Date: Fri Dec 2 12:34:16 2011 +0100

    tick-broadcast: Stop active broadcast device when replacing it

    commit c1be84309c58b1e7c6d626e28fba41a22b364c3d upstream.

    When a better rated broadcast device is installed, then the current
    active device is not disabled, which results in two running broadcast
    devices.

    Signed-off-by: Thomas Gleixner <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit fedb66b50d774dc687ac5b6f78fbf4b9bee28865
Author: Ilya Dryomov <email address hidden>
Date: Mon Oct 31 11:07:42 2011 +0200

    tracing: fix event_subsystem ref counting

    commit cb59974742aea24adf6637eb0c4b8e7b48bca6fb upstream.

    Fix a bug introduced by e9dbfae5, which prevents event_subsystem from
    ever being released.

    Ref_count was added to keep track of subsystem users, not for counting
    events. Subsystem is created with ref_count = 1, so there is no need to
    increment it for every event, we have nr_events for that. Fix this by
    touching ref_count only when we actually have a new user -
    subsystem_open().

    Signed-off-by: Ilya Dryomov <email address hidden>
    Link: http://<email address hidden>
    Signed-off-by: Steven Rostedt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit df9490f1a5f1019ebf36bd7820ff405ddc06bfa9
Author: Arve Hjønnevåg <email address hidden>
Date: Tue Nov 22 18:24:51 2011 -0800

    rtc: Fix some bugs that allowed accumulating time drift in suspend/resume

    commit 6a8943d9ec2567572fca25cf69ad45844d0141a3 upstream.

    The current code checks if abs(delta_delta.tv_sec) is greater or
    equal to two before it discards the old delta value, but this can
    trigger at close to -1 seconds since -1.000000001 seconds is stored
    as tv_sec -2 and tv_nsec 999999999 in a normalized timespec.

    rtc_resume had an early return check if the rtc value had not changed
    since rtc_suspend. This effectivly stops time for the duration of the
    short sleep. Check if sleep_time is positive after all the adjustments
    have been applied instead since this allows the old_system adjustment
    in rtc_suspend to have an effect even for short sleep cycles.

    Signed-off-by: Arve Hjønnevåg <email address hidden>
    Signed-off-by: John Stultz <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 0cbc008c56f7b4a11ba6fe80e196d7ab322baabf
Author: Rabin Vincent <email address hidden>
Date: Tue Nov 22 11:03:14 2011 +0100

    rtc: Disable the alarm in the hardware

    commit c0afabd3d553c521e003779c127143ffde55a16f upstream.

    Currently, the RTC code does not disable the alarm in the hardware.

    This means that after a sequence such as the one below (the files are in the
    RTC sysfs), the box will boot up after 2 minutes even though we've
    asked for the alarm to be turned off.

     # echo $((`cat since_epoch`)+120) > wakealarm
     # echo 0 > wakealarm
     # poweroff

    Fix this by disabling the alarm when there are no timers to run.

    Cc: John Stultz <email address hidden>
    Signed-off-by: Rabin Vincent <email address hidden>
    Signed-off-by: John Stultz <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit bf34b36a208ecca76e41814ff8837f8b41528248
Author: Tejun Heo <email address hidden>
Date: Wed Nov 23 08:49:49 2011 -0800

    trace_events_filter: Use rcu_assign_pointer() when setting ftrace_event_call->filter

    commit d3d9acf646679c1981032b0985b386d12fccc60c upstream.

    ftrace_event_call->filter is sched RCU protected but didn't use
    rcu_assign_pointer(). Use it.

    TODO: Add proper __rcu annotation to call->filter and all its users.

    -v2: Use RCU_INIT_POINTER() for %NULL clearing as suggested by Eric.

    Link: http://<email address hidden>

    Cc: Eric Dumazet <email address hidden>
    Cc: Frederic Weisbecker <email address hidden>
    Cc: Jiri Olsa <email address hidden>
    Signed-off-by: Tejun Heo <email address hidden>
    Signed-off-by: Steven Rostedt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 03923350d5fbcdb23faca8c9ca55988aac7383c3
Author: Steven Rostedt <email address hidden>
Date: Fri Nov 4 10:45:23 2011 -0400

    ftrace: Remove force undef config value left for testing

    commit c7c6ec8becaf742b223c7b491f4893014be23a07 upstream.

    A forced undef of a config value was used for testing and was
    accidently left in during the final commit. This causes x86 to
    run slower than needed while running function tracing as well
    as causes the function graph selftest to fail when DYNMAIC_FTRACE
    is not set. This is because the code in MCOUNT expects the ftrace
    code to be processed with the config value set that happened to
    be forced not set.

    The forced config option was left in by:
        commit 6331c28c962561aee59e5a493b7556a4bb585957
        ftrace: Fix dynamic selftest failure on some archs

    Link: http://lkml.kernel.org/r/20111102150255.GA6973@debian

    Reported-by: Rabin Vincent <email address hidden>
    Signed-off-by: Steven Rostedt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 5c30a5b33f77264cddcfb1a6659d3a9ac2661103
Author: Johannes Berg <email address hidden>
Date: Fri Dec 2 08:19:17 2011 -0800

    iwlagn: fix HW crypto for TX-only keys

    commit 274b89ca3b006926cb9b45d78ab5906f4c0fc0aa upstream.

    Group keys in IBSS or AP mode are not programmed
    into the device since we give the key to it with
    every TX packet. However, we do need mac80211 to
    create the MMIC & PN in all cases. Move the code
    around to set the key flags all the time. We set
    them even when the key is removed again but that
    is obviously harmless.

    Reported-by: Reinette Chatre <email address hidden>
    Signed-off-by: Johannes Berg <email address hidden>
    Signed-off-by: Wey-Yi Guy <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 43c308bd8d0a3e7d98c5abcd41a4a3fada3d198f
Author: Wey-Yi Guy <email address hidden>
Date: Fri Dec 2 08:19:18 2011 -0800

    iwlwifi: do not re-configure HT40 after associated

    commit 34a5b4b6af104cf18eb50748509528b9bdbc4036 upstream.

    The ht40 setting should not change after association unless channel switch

    This fix a problem we are seeing which cause uCode assert because driver
    sending invalid information and make uCode confuse

    Here is the firmware assert message:
    kernel: iwlagn 0000:03:00.0: Microcode SW error detected. Restarting 0x82000000.
    kernel: iwlagn 0000:03:00.0: Loaded firmware version: 17.168.5.3 build 42301
    kernel: iwlagn 0000:03:00.0: Start IWL Error Log Dump:
    kernel: iwlagn 0000:03:00.0: Status: 0x000512E4, count: 6
    kernel: iwlagn 0000:03:00.0: 0x00002078 | ADVANCED_SYSASSERT
    kernel: iwlagn 0000:03:00.0: 0x00009514 | uPc
    kernel: iwlagn 0000:03:00.0: 0x00009496 | branchlink1
    kernel: iwlagn 0000:03:00.0: 0x00009496 | branchlink2
    kernel: iwlagn 0000:03:00.0: 0x0000D1F2 | interruptlink1
    kernel: iwlagn 0000:03:00.0: 0x00000000 | interruptlink2
    kernel: iwlagn 0000:03:00.0: 0x01008035 | data1
    kernel: iwlagn 0000:03:00.0: 0x0000C90F | data2
    kernel: iwlagn 0000:03:00.0: 0x000005A7 | line
    kernel: iwlagn 0000:03:00.0: 0x5080B520 | beacon time
    kernel: iwlagn 0000:03:00.0: 0xCC515AE0 | tsf low
    kernel: iwlagn 0000:03:00.0: 0x00000003 | tsf hi
    kernel: iwlagn 0000:03:00.0: 0x00000000 | time gp1
    kernel: iwlagn 0000:03:00.0: 0x29703BF0 | time gp2
    kernel: iwlagn 0000:03:00.0: 0x00000000 | time gp3
    kernel: iwlagn 0000:03:00.0: 0x000111A8 | uCode version
    kernel: iwlagn 0000:03:00.0: 0x000000B0 | hw version
    kernel: iwlagn 0000:03:00.0: 0x00480303 | board version
    kernel: iwlagn 0000:03:00.0: 0x09E8004E | hcmd
    kernel: iwlagn 0000:03:00.0: CSR values:
    kernel: iwlagn 0000:03:00.0: (2nd byte of CSR_INT_COALESCING is CSR_INT_PERIODIC_REG)
    kernel: iwlagn 0000:03:00.0: CSR_HW_IF_CONFIG_REG: 0X00480303
    kernel: iwlagn 0000:03:00.0: CSR_INT_COALESCING: 0X0000ff40
    kernel: iwlagn 0000:03:00.0: CSR_INT: 0X00000000
    kernel: iwlagn 0000:03:00.0: CSR_INT_MASK: 0X00000000
    kernel: iwlagn 0000:03:00.0: CSR_FH_INT_STATUS: 0X00000000
    kernel: iwlagn 0000:03:00.0: CSR_GPIO_IN: 0X00000030
    kernel: iwlagn 0000:03:00.0: CSR_RESET: 0X00000000
    kernel: iwlagn 0000:03:00.0: CSR_GP_CNTRL: 0X080403c5
    kernel: iwlagn 0000:03:00.0: CSR_HW_REV: 0X000000b0
    kernel: iwlagn 0000:03:00.0: CSR_EEPROM_REG: 0X07d60ffd
    kernel: iwlagn 0000:03:00.0: CSR_EEPROM_GP: 0X90000001
    kernel: iwlagn 0000:03:00.0: CSR_OTP_GP_REG: 0X00030001
    kernel: iwlagn 0000:03:00.0: CSR_GIO_REG: 0X00080044
    kernel: iwlagn 0000:03:00.0: CSR_GP_UCODE_REG: 0X000093bb
    kernel: iwlagn 0000:03:00.0: CSR_GP_DRIVER_REG: 0X00000000
    kernel: iwlagn 0000:03:00.0: CSR_UCODE_DRV_GP1: 0X00000000
    kernel: iwlagn 0000:03:00.0: CSR_UCODE_DRV_GP2: 0X00000000
    kernel: iwlagn 0000:03:00.0: CSR_LED_REG: 0X00000078
    kernel: iwlagn 0000:03:00.0: CSR_DRAM_INT_TBL_REG: 0X88214dd2
    kernel: iwlagn 0000:03:00.0: CSR_GIO_CHICKEN_BITS: 0X27800200
    kernel: iwlagn 0000:03:00.0: CSR_ANA_PLL_CFG: 0X00000000
    kernel: iwlagn 0000:03:00.0: CSR_HW_REV_WA_REG: 0X0001001a
    kernel: iwlagn 0000:03:00.0: CSR_DBG_HPET_MEM_REG: 0Xffff0010
    kernel: iwlagn 0000:03:00.0: FH register values:
    kernel: iwlagn 0000:03:00.0: FH_RSCSR_CHNL0_STTS_WPTR_REG: 0X21316d00
    kernel: iwlagn 0000:03:00.0: FH_RSCSR_CHNL0_RBDCB_BASE_REG: 0X021479c0
    kernel: iwlagn 0000:03:00.0: FH_RSCSR_CHNL0_WPTR: 0X00000060
    kernel: iwlagn 0000:03:00.0: FH_MEM_RCSR_CHNL0_CONFIG_REG: 0X80819104
    kernel: iwlagn 0000:03:00.0: FH_MEM_RSSR_SHARED_CTRL_REG: 0X000000fc
    kernel: iwlagn 0000:03:00.0: FH_MEM_RSSR_RX_STATUS_REG: 0X07030000
    kernel: iwlagn 0000:03:00.0: FH_MEM_RSSR_RX_ENABLE_ERR_IRQ2DRV: 0X00000000
    kernel: iwlagn 0000:03:00.0: FH_TSSR_TX_STATUS_REG: 0X07ff0001
    kernel: iwlagn 0000:03:00.0: FH_TSSR_TX_ERROR_REG: 0X00000000
    kernel: iwlagn 0000:03:00.0: Start IWL Event Log Dump: display last 20 entries
    kernel: ------------[ cut here ]------------
    WARNING: at net/mac80211/util.c:1208 ieee80211_reconfig+0x1f1/0x407()
    kernel: Hardware name: 4290W4H
    kernel: Pid: 1896, comm: kworker/0:0 Not tainted 3.1.0 #2
    kernel: Call Trace:
    kernel: [<ffffffff81036558>] ? warn_slowpath_common+0x73/0x87
    kernel: [<ffffffff813b8966>] ? ieee80211_reconfig+0x1f1/0x407
    kernel: [<ffffffff8139e8dc>] ? ieee80211_recalc_smps_work+0x32/0x32
    kernel: [<ffffffff8139e95a>] ? ieee80211_restart_work+0x7e/0x87
    kernel: [<ffffffff810472fa>] ? process_one_work+0x1c8/0x2e3
    kernel: [<ffffffff810480c9>] ? worker_thread+0x17a/0x23a
    kernel: [<ffffffff81047f4f>] ? manage_workers.clone.18+0x15b/0x15b
    kernel: [<ffffffff81047f4f>] ? manage_workers.clone.18+0x15b/0x15b
    kernel: [<ffffffff8104ba97>] ? kthread+0x7a/0x82
    kernel: [<ffffffff813d21b4>] ? kernel_thread_helper+0x4/0x10
    kernel: [<ffffffff8104ba1d>] ? kthread_flush_work_fn+0x11/0x11
    kernel: [<ffffffff813d21b0>] ? gs_change+0xb/0xb

    Reported-by: Udo Steinberg <email address hidden>
    Signed-off-by: Wey-Yi Guy <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 3e4f16a375aafec68144d4edaae4ebd8e5017571
Author: Peter Zijlstra <email address hidden>
Date: Mon Nov 28 21:12:40 2011 +0100

    slab, lockdep: Fix silly bug

    commit 52cef189165d74a5d6030184a8e05595194c69ca upstream.

    Commit 30765b92 ("slab, lockdep: Annotate the locks before using
    them") moves the init_lock_keys() call from after g_cpucache_up =
    FULL, to before it. And overlooks the fact that init_node_lock_keys()
    tests for it and ignores everything !FULL.

    Introduce a LATE stage and change the lockdep test to be <LATE.

    Acked-by: Christoph Lameter <email address hidden>
    Cc: Pekka Enberg <email address hidden>
    Signed-off-by: Peter Zijlstra <email address hidden>
    Signed-off-by: Ingo Molnar <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit a4b63ef678714a98dd8886fea14d5f76da671b6f
Author: Ido Yariv <email address hidden>
Date: Thu Dec 1 13:55:08 2011 +0200

    genirq: Fix race condition when stopping the irq thread

    commit 550acb19269d65f32e9ac4ddb26c2b2070e37f1c upstream.

    In irq_wait_for_interrupt(), the should_stop member is verified before
    setting the task's state to TASK_INTERRUPTIBLE and calling schedule().
    In case kthread_stop sets should_stop and wakes up the process after
    should_stop is checked by the irq thread but before the task's state
    is changed, the irq thread might never exit:

    kthread_stop irq_wait_for_interrupt
    ------------ ----------------------

                                     ...
    ... while (!kthread_should_stop()) {
    kthread->should_stop = 1;
    wake_up_process(k);
    wait_for_completion(&kthread->exited);
    ...
                                         set_current_state(TASK_INTERRUPTIBLE);

                                         ...

                                         schedule();
                                     }

    Fix this by checking if the thread should stop after modifying the
    task's state.

    [ tglx: Simplified it a bit ]

    Signed-off-by: Ido Yariv <email address hidden>
    Link: http://<email address hidden>
    Signed-off-by: Thomas Gleixner <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit aedebb8ae9811dedc3e57757a1048cd8d902fa3a
Author: Luis R. Rodriguez <email address hidden>
Date: Mon Nov 28 16:47:16 2011 -0500

    cfg80211: amend regulatory NULL dereference fix

    commit 0bac71af6e66dc798bf07d0c0dd14ee5503362f9 upstream.

    Johannes' patch for "cfg80211: fix regulatory NULL dereference"
    broke user regulaotry hints and it did not address the fact that
    last_request was left populated even if the previous regulatory
    hint was stale due to the wiphy disappearing.

    Fix user reguluatory hints by only bailing out if for those
    regulatory hints where a request_wiphy is expected. The stale last_request
    considerations are addressed through the previous fixes on last_request
    where we reset the last_request to a static world regdom request upon
    reset_regdomains(). In this case though we further enhance the effect
    by simply restoring reguluatory settings completely.

    Cc: Johannes Berg <email address hidden>
    Signed-off-by: Luis R. Rodriguez <email address hidden>
    Reviewed-by: Johannes Berg <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 5b157407b89257481a639b869f0f42532fceafaa
Author: Luis R. Rodriguez <email address hidden>
Date: Mon Nov 28 16:47:15 2011 -0500

    cfg80211: fix race on init and driver registration

    commit a042994dd377d86bff9446ee76151ceb6267c9ba upstream.

    There is a theoretical race that if hit will trigger
    a crash. The race is between when we issue the first
    regulatory hint, regulatory_hint_core(), gets processed
    by the workqueue and between when the first device
    gets registered to the wireless core. This is not easy
    to reproduce but it was easy to do so through the
    regulatory simulator I have been working on. This
    is a port of the fix I implemented there [1].

    [1] https://github.com/mcgrof/regsim/commit/a246ccf81f059cb662eee288aa13100f631e4cc8

    Cc: Johannes Berg <email address hidden>
    Signed-off-by: Luis R. Rodriguez <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 22e244d6a7b8bedfd87cba78d339b2baee00609c
Author: Nikolay Martynov <email address hidden>
Date: Tue Dec 6 15:39:32 2011 +0100

    mac80211: fix race condition caused by late addBA response

    Upstream commit d305a6557b2c4dca0110f05ffe745b1ef94adb80.

    If addBA responses comes in just after addba_resp_timer has
    expired mac80211 will still accept it and try to open the
    aggregation session. This causes drivers to be confused and
    in some cases even crash.

    This patch fixes the race condition and makes sure that if
    addba_resp_timer has expired addBA response is not longer
    accepted and we do not try to open half-closed session.

    Signed-off-by: Nikolay Martynov <email address hidden>
    [some adjustments]
    Signed-off-by: Johannes Berg <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>

commit 2eca885f630f007513f9f07d9635783917bb94e2
Author: Simon Wunderlich <email address hidden>
Date: Wed Nov 30 16:56:30 2011 +0100

    mac80211: fill rate filter for internal scan requests

    commit c72e8d335e2c6a309b6281f2abcf491f37b8b92b upstream.

    The rates bitmap for internal scan requests shoud be filled,
    otherwise there will be probe requests with zero rates supported.

    Signed-off-by: Simon Wunderlich <email address hidden>
    Signed-off-by: Mathias Kretschmer <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 05602145e34077a8314636d15ad3dae4c7dd81e4
Author: Martin Schwidefsky <email address hidden>
Date: Thu Dec 1 13:32:17 2011 +0100

    add missing .set function for NT_S390_LAST_BREAK regset

    commit b934069c991355d27a053a932591c77960f4e414 upstream.

    The last breaking event address is a read-only value, the regset misses the
    .set function. If a PTRACE_SETREGSET is done for NT_S390_LAST_BREAK we
    get an oops due to a branch to zero:

    Kernel BUG at 0000000000000002 verbose debug info unavailable
    illegal operation: 0001 #1 SMP
    ...
    Call Trace:
    (<0000000000158294> ptrace_regset+0x184/0x188)
     <00000000001595b6> ptrace_request+0x37a/0x4fc
     <0000000000109a78> arch_ptrace+0x108/0x1fc
     <00000000001590d6> SyS_ptrace+0xaa/0x12c
     <00000000005c7a42> sysc_noemu+0x16/0x1c
     <000003fffd5ec10c> 0x3fffd5ec10c
    Last Breaking-Event-Address:
     <0000000000158242> ptrace_regset+0x132/0x188

    Add a nop .set function to prevent the branch to zero.

    Signed-off-by: Martin Schwidefsky <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit a6ff8af2ed1af704e400b558b2811ce7a350d2eb
Author: Robert Richter <email address hidden>
Date: Mon Oct 10 16:21:10 2011 +0200

    oprofile, x86: Fix crash when unloading module (nmi timer mode)

    commit 97f7f8189fe54e3cfe324ef9ad35064f3d2d3bff upstream.

    If oprofile uses the nmi timer interrupt there is a crash while
    unloading the module. The bug can be triggered with oprofile build as
    module and kernel parameter nolapic set. This patch fixes this.

    oprofile: using NMI timer interrupt.
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
    IP: [<ffffffff8123c226>] unregister_syscore_ops+0x41/0x58
    PGD 42dbca067 PUD 41da6a067 PMD 0
    Oops: 0002 [#1] PREEMPT SMP
    CPU 5
    Modules linked in: oprofile(-) [last unloaded: oprofile]

    Pid: 2518, comm: modprobe Not tainted 3.1.0-rc7-00019-gb2fb49d #19 Advanced Micro Device Anaheim/Anaheim
    RIP: 0010:[<ffffffff8123c226>] [<ffffffff8123c226>] unregister_syscore_ops+0x41/0x58
    RSP: 0018:ffff88041ef71e98 EFLAGS: 00010296
    RAX: 0000000000000000 RBX: ffffffffa0017100 RCX: dead000000200200
    RDX: 0000000000000000 RSI: dead000000100100 RDI: ffffffff8178c620
    RBP: ffff88041ef71ea8 R08: 0000000000000001 R09: 0000000000000082
    R10: 0000000000000000 R11: ffff88041ef71de8 R12: 0000000000000080
    R13: fffffffffffffff5 R14: 0000000000000001 R15: 0000000000610210
    FS: 00007fc902f20700(0000) GS:ffff88042fd40000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: 0000000000000008 CR3: 000000041cdb6000 CR4: 00000000000006e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Process modprobe (pid: 2518, threadinfo ffff88041ef70000, task ffff88041d348040)
    Stack:
     ffff88041ef71eb8 ffffffffa0017790 ffff88041ef71eb8 ffffffffa0013532
     ffff88041ef71ec8 ffffffffa00132d6 ffff88041ef71ed8 ffffffffa00159b2
     ffff88041ef71f78 ffffffff81073115 656c69666f72706f 0000000000610200
    Call Trace:
     [<ffffffffa0013532>] op_nmi_exit+0x15/0x17 [oprofile]
     [<ffffffffa00132d6>] oprofile_arch_exit+0xe/0x10 [oprofile]
     [<ffffffffa00159b2>] oprofile_exit+0x1e/0x20 [oprofile]
     [<ffffffff81073115>] sys_delete_module+0x1c3/0x22f
     [<ffffffff811bf09e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
     [<ffffffff8148070b>] system_call_fastpath+0x16/0x1b
    Code: 20 c6 78 81 e8 c5 cc 23 00 48 8b 13 48 8b 43 08 48 be 00 01 10 00 00 00 ad de 48 b9 00 02 20 00 00 00 ad de 48 c7 c7 20 c6 78 81
     89 42 08 48 89 10 48 89 33 48 89 4b 08 e8 a6 c0 23 00 5a 5b
    RIP [<ffffffff8123c226>] unregister_syscore_ops+0x41/0x58
     RSP <ffff88041ef71e98>
    CR2: 0000000000000008
    ---[ end trace 43a541a52956b7b0 ]---

    Signed-off-by: Robert Richter <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit b11ee9e9403ab72d52c46cc8b3b94de17ed196e6
Author: Peter Zijlstra <email address hidden>
Date: Fri Oct 7 13:36:40 2011 +0200

    perf/x86: Fix PEBS instruction unwind

    commit 57d1c0c03c6b48b2b96870d831b9ce6b917f53ac upstream.

    Masami spotted that we always try to decode the instruction stream as
    64bit instructions when running a 64bit kernel, this doesn't work for
    ia32-compat proglets.

    Use TIF_IA32 to detect if we need to use the 32bit instruction
    decoder.

    Reported-by: Masami Hiramatsu <email address hidden>
    Signed-off-by: Peter Zijlstra <email address hidden>
    Signed-off-by: Ingo Molnar <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 400b14179e4170817aa476a29e29514c53bf4e25
Author: Konrad Rzeszutek Wilk <email address hidden>
Date: Tue Nov 15 14:49:09 2011 -0800

    x86/paravirt: PTE updates in k(un)map_atomic need to be synchronous, regardless of lazy_mmu mode

    commit 2cd1c8d4dc7ecca9e9431e2dabe41ae9c7d89e51 upstream.

    Fix an outstanding issue that has been reported since 2.6.37.
    Under a heavy loaded machine processing "fork()" calls could
    crash with:

    BUG: unable to handle kernel paging request at f573fc8c
    IP: [<c01abc54>] swap_count_continued+0x104/0x180
    *pdpt = 000000002a3b9027 *pde = 0000000001bed067 *pte = 0000000000000000 Oops: 0000 [#1] SMP
    Modules linked in:
    Pid: 1638, comm: apache2 Not tainted 3.0.4-linode37 #1
    EIP: 0061:[<c01abc54>] EFLAGS: 00210246 CPU: 3
    EIP is at swap_count_continued+0x104/0x180
    .. snip..
    Call Trace:
     [<c01ac222>] ? __swap_duplicate+0xc2/0x160
     [<c01040f7>] ? pte_mfn_to_pfn+0x87/0xe0
     [<c01ac2e4>] ? swap_duplicate+0x14/0x40
     [<c01a0a6b>] ? copy_pte_range+0x45b/0x500
     [<c01a0ca5>] ? copy_page_range+0x195/0x200
     [<c01328c6>] ? dup_mmap+0x1c6/0x2c0
     [<c0132cf8>] ? dup_mm+0xa8/0x130
     [<c013376a>] ? copy_process+0x98a/0xb30
     [<c013395f>] ? do_fork+0x4f/0x280
     [<c01573b3>] ? getnstimeofday+0x43/0x100
     [<c010f770>] ? sys_clone+0x30/0x40
     [<c06c048d>] ? ptregs_clone+0x15/0x48
     [<c06bfb71>] ? syscall_call+0x7/0xb

    The problem is that in copy_page_range() we turn lazy mode on,
    and then in swap_entry_free() we call swap_count_continued()
    which ends up in:

             map = kmap_atomic(page, KM_USER0) + offset;

    and then later we touch *map.

    Since we are running in batched mode (lazy) we don't actually
    set up the PTE mappings and the kmap_atomic is not done
    synchronously and ends up trying to dereference a page that has
    not been set.

    Looking at kmap_atomic_prot_pfn(), it uses
    'arch_flush_lazy_mmu_mode' and doing the same in
    kmap_atomic_prot() and __kunmap_atomic() makes the problem go
    away.

    Interestingly, commit b8bcfe997e4615 ("x86/paravirt: remove lazy
    mode in interrupts") removed part of this to fix an interrupt
    issue - but it went to far and did not consider this scenario.

    Signed-off-by: Konrad Rzeszutek Wilk <email address hidden>
    Cc: Peter Zijlstra <email address hidden>
    Cc: Jeremy Fitzhardinge <email address hidden>
    Signed-off-by: Andrew Morton <email address hidden>
    Signed-off-by: Ingo Molnar <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 7b4a0b336d67d9f706fb83d3050bcd9bef58cb9d
Author: Peter Chubb <email address hidden>
Date: Mon Dec 5 16:53:53 2011 +0300

    x86: Fix "Acer Aspire 1" reboot hang

    commit 1ef03890969932e9359b9a4c658f7f87771910ac upstream.

    Looks like on some Acer Aspire 1s with older bioses, reboot via bios
    fails. It works on my machine, (with BIOS version 0.3310) but
    not on some others (BIOS version 0.3309).

    There's a log of problems at:

      https://bbs.archlinux.org/viewtopic.php?id=124136

    This patch adds a different callback to the reboot quirk table,
    to allow rebooting via keybaord controller.

    Reported-by: Uroš Vampl <email address hidden>
    Tested-by: Vasily Khoruzhick <email address hidden>
    Signed-off-by: Peter Chubb <email address hidden>
    Cc: Don Zickus <email address hidden>
    Cc: Peter Zijlstra <email address hidden>
    Link: http://<email address hidden>
    Signed-off-by: Ingo Molnar <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 08673cfac6768fce130a6ddb5134299beebfd14f
Author: Bjorn Helgaas <email address hidden>
Date: Sun Sep 25 15:29:00 2011 -0600

    x86/mpparse: Account for bus types other than ISA and PCI

    commit 9e6866686bdf2dcf3aeb0838076237ede532dcc8 upstream.

    In commit f8924e770e04 ("x86: unify mp_bus_info"), the 32-bit
    and 64-bit versions of MP_bus_info were rearranged to match each
    other better. Unfortunately it introduced a regression: prior
    to that change we used to always set the mp_bus_not_pci bit,
    then clear it if we found a PCI bus. After it, we set
    mp_bus_not_pci for ISA buses, clear it for PCI buses, and leave
    it alone otherwise.

    In the cases of ISA and PCI, there's not much difference. But
    ISA is not the only non-PCI bus, so it's better to always set
    mp_bus_not_pci and clear it only for PCI.

    Without this change, Dan's Dell PowerEdge 4200 panics on boot
    with a log indicating interrupt routing trouble unless the
    "noapic" option is supplied. With this change, the machine
    boots reliably without "noapic".

    Fixes http://bugs.debian.org/586494

    Reported-bisected-and-tested-by: Dan McGrath <email address hidden>
    Signed-off-by: Bjorn Helgaas <email address hidden>
    Cc: Dan McGrath <email address hidden>
    Cc: Alexey Starikovskiy <email address hidden>
    [<email address hidden>: clarified commit message]
    Signed-off-by: Jonathan Nieder <email address hidden>
    Link: http://<email address hidden>
    Signed-off-by: Ingo Molnar <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 3ef3c3830482a5de31781a5dca2a9bd7ef6d1562
Author: Salman Qazi <email address hidden>
Date: Tue Nov 15 14:12:06 2011 -0800

    sched, x86: Avoid unnecessary overflow in sched_clock

    commit 4cecf6d401a01d054afc1e5f605bcbfe553cb9b9 upstream.

    (Added the missing signed-off-by line)

    In hundreds of days, the __cycles_2_ns calculation in sched_clock
    has an overflow. cyc * per_cpu(cyc2ns, cpu) exceeds 64 bits, causing
    the final value to become zero. We can solve this without losing
    any precision.

    We can decompose TSC into quotient and remainder of division by the
    scale factor, and then use this to convert TSC into nanoseconds.

    Signed-off-by: Salman Qazi <email address hidden>
    Acked-by: John Stultz <email address hidden>
    Reviewed-by: Paul Turner <email address hidden>
    Signed-off-by: Peter Zijlstra <email address hidden>
    Link: http://<email address hidden>
    Signed-off-by: Ingo Molnar <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit ba92f7efc8390db5ed6da4966ef943718eb048b7
Author: Andiry Xu <email address hidden>
Date: Wed Nov 30 16:37:41 2011 +0800

    xHCI: fix bug in xhci_clear_command_ring()

    commit 158886cd2cf4599e04f9b7e10cb767f5f39b14f1 upstream.

    When system enters suspend, xHCI driver clears command ring by writing zero
    to all the TRBs. However, this also writes zero to the Link TRB, and the ring
    is mangled. This may cause driver accesses wrong memory address and the
    result is unpredicted.

    When clear the command ring, keep the last Link TRB intact, only clear its
    cycle bit. This should fix the "command ring full" issue reported by Oliver
    Neukum.

    This should be backported to stable kernels as old as 2.6.37, since the
    commit 89821320 "xhci: Fix command ring replay after resume" is merged.

    Signed-off-by: Andiry Xu <email address hidden>
    Signed-off-by: Sarah Sharp <email address hidden>
    Reported-by: Oliver Neukum <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 07b91eb2d2c53017fbae33d5eae1037cb078d3e4
Author: Matthieu CASTET <email address hidden>
Date: Mon Nov 28 11:30:22 2011 +0100

    EHCI : Fix a regression in the ISO scheduler

    commit e3420901eba65b1c46bed86d360e3a8685d20734 upstream.

    Fix a regression that was introduced by commit
    811c926c538f7e8d3c08b630dd5844efd7e000f6 (USB: EHCI: fix HUB TT scheduling
    issue with iso transfer).

    We detect an error if next == start, but this means uframe 0 can't be allocated
    anymore for iso transfer...

    Reported-by: Sander Eikelenboom <email address hidden>
    Signed-off-by: Matthieu CASTET <email address hidden>
    Acked-by: Alan Stern <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 027a53824cc8602232cc38a86d9499efec2dcbee
Author: Thomas Poussevin <email address hidden>
Date: Thu Oct 27 18:46:48 2011 +0200

    USB: EHCI: fix HUB TT scheduling issue with iso transfer

    commit 811c926c538f7e8d3c08b630dd5844efd7e000f6 upstream.

    The current TT scheduling doesn't allow to play and then record on a
    full-speed device connected to a high speed hub.

    The IN iso stream can only start on the first uframe (0-2 for a 165 us)
    because of CSPLIT transactions.
    For the OUT iso stream there no such restriction. uframe 0-5 are possible.

    The idea of this patch is that the first uframe are precious (for IN TT iso
    stream) and we should allocate the last uframes first if possible.

    For that we reverse the order of uframe allocation (last uframe first).

    Here an example :

    hid interrupt stream
    ----------------------------------------------------------------------
    uframe | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
    ----------------------------------------------------------------------
    max_tt_usecs | 125 | 125 | 125 | 125 | 125 | 125 | 30 | 0 |
    ----------------------------------------------------------------------
    used usecs on a frame | 13 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
    ----------------------------------------------------------------------

    iso OUT stream
    ----------------------------------------------------------------------
    uframe | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
    ----------------------------------------------------------------------
    max_tt_usecs | 125 | 125 | 125 | 125 | 125 | 125 | 30 | 0 |
    ----------------------------------------------------------------------
    used usecs on a frame | 13 | 125 | 39 | 0 | 0 | 0 | 0 | 0 |
    ----------------------------------------------------------------------

    There no place for iso IN stream (uframe 0-2 are used) and we got "cannot
    submit datapipe for urb 0, error -28: not enough bandwidth" error.

    With the patch this become.

    iso OUT stream
    ----------------------------------------------------------------------
    uframe | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
    ----------------------------------------------------------------------
    max_tt_usecs | 125 | 125 | 125 | 125 | 125 | 125 | 30 | 0 |
    ----------------------------------------------------------------------
    used usecs on a frame | 13 | 0 | 0 | 0 | 125 | 39 | 0 | 0 |
    ----------------------------------------------------------------------

    iso IN stream
    ----------------------------------------------------------------------
    uframe | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
    ----------------------------------------------------------------------
    max_tt_usecs | 125 | 125 | 125 | 125 | 125 | 125 | 30 | 0 |
    ----------------------------------------------------------------------
    used usecs on a frame | 13 | 0 | 125 | 40 | 125 | 39 | 0 | 0 |
    ----------------------------------------------------------------------

    Signed-off-by: Matthieu Castet <email address hidden>
    Signed-off-by: Thomas Poussevin <email address hidden>
    Signed-off-by: Alan Stern <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit de5f8dc38303f9a1fc58349f0d1c6f46a8034a00
Author: Eric Dumazet <email address hidden>
Date: Tue Nov 29 22:31:23 2011 +0100

    IB: Fix RCU lockdep splats

    commit 580da35a31f91a594f3090b7a2c39b85cb051a12 upstream.

    Commit f2c31e32b37 ("net: fix NULL dereferences in check_peer_redir()")
    forgot to take care of infiniband uses of dst neighbours.

    Many thanks to Marc Aurele who provided a nice bug report and feedback.

    Reported-by: Marc Aurele La France <email address hidden>
    Signed-off-by: Eric Dumazet <email address hidden>
    Cc: David Miller <email address hidden>
    Signed-off-by: Roland Dreier <email address hidden>

commit 829d5a92cbfe6e906bbe24a5bb1675a6d27a5db2
Author: Qinglin Ye <email address hidden>
Date: Wed Nov 23 23:39:32 2011 +0800

    USB: usb-storage: unusual_devs entry for Kingston DT 101 G2

    commit cec28a5428793b6bc64e56687fb239759d6da74e upstream.

    Kingston DT 101 G2 replies a wrong tag while transporting, add an
    unusal_devs entry to ignore the tag validation.

    Signed-off-by: Qinglin Ye <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit f769c8c9d67806d5ed3c2ab555b56eef44bb08fe
Author: Veli-Pekka Peltola <email address hidden>
Date: Thu Nov 24 22:08:56 2011 +0200

    usb: option: add SIMCom SIM5218

    commit ec0cd94d881ca89cc9fb61d00d0f4b2b52e605b3 upstream.

    Tested with SIM5218EVB-KIT evaluation kit.

    Signed-off-by: Veli-Pekka Peltola <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit c61954d8c8348de93281f322a3675bb308128414
Author: Dirk Nehring <email address hidden>
Date: Thu Nov 24 19:22:23 2011 +0100

    usb: option: add Huawei E353 controlling interfaces

    commit 46b1848360c8e634e0b063932a1261062fa0f7d6 upstream.

    This patch creates the missing controlling devices for the Huawei E353
    HSPA+ stick.

    Signed-off-by: Dirk Nehring <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 523cc1591e42c0b51e334609a841c7566be2091f
Author: Marcin Kościelnicki <koriakin@0x04.net>
Date: Wed Nov 30 17:01:04 2011 +0100

    usb: ftdi_sio: add PID for Propox ISPcable III

    commit 307369b0ca06b27b511b61714e335ddfccf19c4f upstream.

    Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 9aee2c52173b2d5ab712d692a31c2016c1dda8f2
Author: Benjamin Tissoires <email address hidden>
Date: Wed Nov 16 11:39:52 2011 +0100

    HID: Correct General touch PID

    commit b1807719f6acdf18cc4bde3b5400d05d77801494 upstream.

    Genera Touch told us that 0001 is their single point device
    and 0003 is the multitouch one. Apparently, we made the tests
    someone having a prototype, and not the final product.
    They said it should be safe to do the switch.

    This partially reverts 5572da0 ("HID: hid-mulitouch: add support
    for the 'Sensing Win7-TwoFinger'").

    Signed-off-by: Benjamin Tissoires <email address hidden>
    Signed-off-by: Jiri Kosina <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit da6a65ba7034fe6273bf7dcdae174f4f04dead70
Author: Dan Carpenter <email address hidden>
Date: Tue Nov 22 10:28:31 2011 +0300

    USB: whci-hcd: fix endian conversion in qset_clear()

    commit 8746c83d538cab273d335acb2be226d096f4a5af upstream.

    qset->qh.link is an __le64 field and we should be using cpu_to_le64()
    to fill it.

    Signed-off-by: Dan Carpenter <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit b5e0fb085f337c2ab00532d09056da3525f2e847
Author: Kevin Hilman <email address hidden>
Date: Tue Nov 22 17:18:24 2011 -0800

    usb: musb: PM: fix context save/restore in suspend/resume path

    commit 5d193ce8f1fa7c67c7fd7be2c03ef31eed344a4f upstream.

    Currently the driver tries to save context in the suspend path, but
    will cause an abort if the device is already runtime suspended. This
    happens, for example, if MUSB loaded/compiled-in, in host mode, but no
    USB devices are attached. MUSB will be runtime suspended, but then
    attempting a system suspend will crash due to the context save
    being attempted while the device is disabled.

    On OMAP, as of v3.1, the driver's ->runtime_suspend() callback will be
    called late in the suspend path (by the PM domain layer) if the driver
    is not already runtime suspended, ensuring a full shutdown.

    Therefore, the context save is not needed in the ->suspend() method
    since it will be called in the ->runtime_suspend() method anyways
    (similarily for resume.)

    NOTE: this leaves the suspend/resume methods basically empty (with
          some FIXMEs and comments, but I'll leave it to the maintainers
          to decide whether to remove them.

    Signed-off-by: Kevin Hilman <email address hidden>
    Signed-off-by: Felipe Balbi <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit a7e9e05141e922b1bbf4315827dcf8c80989255c
Author: Federico Vaga <email address hidden>
Date: Sat Oct 29 09:47:39 2011 +0200

    Staging: comedi: fix signal handling in read and write

    commit 6a9ce6b654e491981f6ef7e214cbd4f63e033848 upstream.

    After sleeping on a wait queue, signal_pending(current) should be
    checked (not before sleeping).

    Acked-by: Alessandro Rubini <email address hidden>
    Signed-off-by: Federico Vaga <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 3762465d4a6c6a92a93d361b95dd453fd736ba73
Author: Federico Vaga <email address hidden>
Date: Sat Oct 29 09:45:39 2011 +0200

    Staging: comedi: fix mmap_count

    commit df30b21cb0eed5ba8a8e0cdfeebc66ba8cde821d upstream.

    In comedi_fops, mmap_count is decremented at comedi_vm_ops->close but
    it is not incremented at comedi_vm_ops->open. This may result in a negative
    counter. The patch introduces the open method to keep the counter
    consistent.

    The bug was triggerd by this sample code:

            mmap(0, ...., comedi_fd);
            fork();
            exit(0);

    Acked-by: Alessandro Rubini <email address hidden>
    Signed-off-by: Federico Vaga <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 7994d8747d9ac088be8a2136dc25ea30135ca1e8
Author: Bernd Porr <email address hidden>
Date: Tue Nov 8 21:23:03 2011 +0000

    staging: comedi: fix oops for USB DAQ devices.

    commit 3ffab428f40849ed5f21bcfd7285bdef7902f9ca upstream.

    This fixes kernel oops when an USB DAQ device is plugged out while it's
    communicating with the userspace software.

    Signed-off-by: Bernd Porr <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit df781a42499bdf5a1a4375c55ffed1a80cbdf5b3
Author: Bart Westgeest <email address hidden>
Date: Tue Nov 1 15:01:28 2011 -0400

    staging: usbip: bugfix for deadlock

    commit 438957f8d4a84daa7fa5be6978ad5897a2e9e5e5 upstream.

    Interrupts must be disabled prior to calling usb_hcd_unlink_urb_from_ep.
    If interrupts are not disabled, it can potentially lead to a deadlock.
    The deadlock is readily reproduceable on a slower (ARM based) device
    such as the TI Pandaboard.

    Signed-off-by: Bart Westgeest <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 60709063c5d50549e834ac75288782e84c8e53db
Author: wwang <email address hidden>
Date: Mon Oct 31 15:02:53 2011 +0800

    staging:rts_pstor:Complete scanning_done variable

    commit f7364ba04b0961f3a1f978bbe77102606801e35f upstream.

    Complete scanning_done variable if rtsx-scan thread created failed.

    Signed-off-by: wwang <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit bdbee02fb09ff4278de3c4656689261ee9647007
Author: Lars-Peter Clausen <email address hidden>
Date: Mon Nov 28 09:44:16 2011 +0100

    firmware: Sigma: Fix endianess issues

    commit bda63586bc5929e97288cdb371bb6456504867ed upstream.

    Currently the SigmaDSP firmware loader only works correctly on little-endian
    systems. Fix this by using the proper endianess conversion functions.

    Signed-off-by: Lars-Peter Clausen <email address hidden>
    Acked-by: Mike Frysinger <email address hidden>
    Signed-off-by: Mark Brown <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 2a323db413fbe17c15cd60376d012f2ee2659f8d
Author: Lars-Peter Clausen <email address hidden>
Date: Mon Nov 28 09:44:15 2011 +0100

    firmware: Sigma: Skip header during CRC generation

    commit c56935bdc0a8edf50237d3b0205133a5b0adc604 upstream.

    The firmware header is not part of the CRC, so skip it. Otherwise the firmware
    will be rejected due to non-matching CRCs.

    Signed-off-by: Lars-Peter Clausen <email address hidden>
    Acked-by: Mike Frysinger <email address hidden>
    Signed-off-by: Mark Brown <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 3b958a46b7e81c432d7d6ef00ee4bd51ef2d39e2
Author: Lars-Peter Clausen <email address hidden>
Date: Mon Nov 28 09:44:14 2011 +0100

    firmware: Sigma: Prevent out of bounds memory access

    commit 4f718a29fe4908c2cea782f751e9805319684e2b upstream.

    The SigmaDSP firmware loader currently does not perform enough boundary size
    checks when processing the firmware. As a result it is possible that a
    malformed firmware can cause an out of bounds memory access.

    This patch adds checks which ensure that both the action header and the payload
    are completely inside the firmware data boundaries before processing them.

    Signed-off-by: Lars-Peter Clausen <email address hidden>
    Acked-by: Mike Frysinger <email address hidden>
    Signed-off-by: Mark Brown <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit adc771853323bb695e50eab52299b82d675cd665
Author: Axel Lin <email address hidden>
Date: Tue Nov 22 09:46:51 2011 +0800

    ASoC: Fix wrong define for AD1836_ADC_WORD_OFFSET

    commit 72531c9434fa884d20cb3c36fcec83752f32fdf4 upstream.

    According to the datasheet:
    The BIT[5:4] of ADC Control Register 2 is to control the word width.
            00 = 25 Bits
            01 = 20 Bits
            10 = 16 Bits
            11 = Invalid

    Thus, the AD1836_ADC_WORD_OFFSET should be defined as 4.

    Signed-off-by: Axel Lin <email address hidden>
    Acked-by: Lars-Peter Clausen <email address hidden>
    Signed-off-by: Mark Brown <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 1db3bb31add93148b1a7ae35d02bff41d9357e9c
Author: Charles Chin <email address hidden>
Date: Thu Dec 1 11:21:00 2011 +0100

    ALSA: hda - Fix S3/S4 problem on machines with VREF-pin mute-LED

    commit 88d686027bb43f585914c77dd363f6e817b42c2a upstream.

    The verb command in stac92xx_post_suspend caused the audio to stop
    working after resuming from S3 mode on HP laptops with the VREF-pin
    mute-LED control. Removing relevant post_suspend registering.

    Although removing D3 on AFG is no optimal solution, the impact should
    be small in comparison with the broken S3/S4.

    Signed-off-by: Charles Chin <email address hidden>
    Signed-off-by: Takashi Iwai <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 558238140c9a86bd62b9a1146f0439e28d793215
Author: Alex Deucher <email address hidden>
Date: Mon Nov 28 14:49:26 2011 -0500

    drm/radeon/kms: add some loop timeouts in pageflip code

    commit f64964796dedca340608fb1075ab6baad5625851 upstream.

    Avoid infinite loops waiting for surface updates if a GPU
    reset happens while waiting for a page flip.

    See:
    https://bugs.freedesktop.org/show_bug.cgi?id=43191

    Signed-off-by: Alex Deucher <email address hidden>
    Reviewed-by: Mario Kleiner <email address hidden>
    Tested-by: Simon Farnsworth <email address hidden>
    Signed-off-by: Dave Airlie <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 296573cf874d5d78314c5635de35caec372309bd
Author: Alex Deucher <email address hidden>
Date: Thu Dec 1 11:02:11 2011 -0500

    drm/radeon/kms: add some new pci ids

    commit 2ed4d9d648cbd4fb1c232a646dbdbdfdd373ca94 upstream.

    Signed-off-by: Alex Deucher <email address hidden>
    Signed-off-by: Dave Airlie <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit d22ac9ac4c241c598fba39c0f9a7dea3163e1e44
Author: Wey-Yi Guy <email address hidden>
Date: Thu Oct 27 17:19:39 2011 -0700

    iwlwifi: allow pci_enable_msi fail

    commit 8a39ef8ba0fa0410d71db8e981e887fe4fdeca88 upstream.

    Continue the init process even fail to enable msi

    out_iounmap is no longer used, remove it

    Reported-by: werner <email address hidden>
    Tested-by: werner <email address hidden>
    Signed-off-by: Wey-Yi Guy <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit c66d16e59ba46314e8870e7abc3e1a0f935215e9
Author: stephen hemminger <email address hidden>
Date: Tue Nov 15 08:09:14 2011 +0000

    bridge: correct IPv6 checksum after pull

    commit fa2da8cdae1dd64f78fc915ca1d1a4a93c71e7cb upstream.

    Bridge multicast snooping of ICMPv6 would incorrectly report a checksum problem
    when used with Ethernet devices like sky2 that use CHECKSUM_COMPLETE.
    When bytes are removed from skb, the computed checksum needs to be adjusted.

    Signed-off-by: Stephen Hemminger <email address hidden>
    Tested-by: Martin Volf <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit d3b2937da9fc51f48ae77735e78be53a8a4c0ae4
Author: Hillf Danton <email address hidden>
Date: Tue Nov 15 14:36:12 2011 -0800

    hugetlb: release pages in the error path of hugetlb_cow()

    commit ea4039a34c4c206d015d34a49d0b00868e37db1d upstream.

    If we fail to prepare an anon_vma, the {new, old}_page should be released,
    or they will leak.

    Signed-off-by: Hillf Danton <email address hidden>
    Reviewed-by: Andrea Arcangeli <email address hidden>
    Cc: Hugh Dickins <email address hidden>
    Cc: Johannes Weiner <email address hidden>
    Signed-off-by: Andrew Morton <email address hidden>
    Signed-off-by: Linus Torvalds <email address hidden>
    Cc: Michal Hocko <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 6d10c223ab5a75fa961019fa91fc811128cb876b
Author: Hannes Reinecke <email address hidden>
Date: Wed Nov 9 08:39:24 2011 +0100

    SCSI: Silencing 'killing requests for dead queue'

    commit 745718132c3c7cac98a622b610e239dcd5217f71 upstream.

    When we tear down a device we try to flush all outstanding
    commands in scsi_free_queue(). However the check in
    scsi_request_fn() is imperfect as it only signals that
    we _might start_ aborting commands, not that we've actually
    aborted some.
    So move the printk inside the scsi_kill_request function,
    this will also give us a hint about which commands are aborted.

    Signed-off-by: Hannes Reinecke <email address hidden>
    Signed-off-by: James Bottomley <email address hidden>
    Cc: Christoph Biedl <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 5635019b754fa0ccfc2275369b05142a8a2dbde4
Author: Mitsuo Hayasaka <email address hidden>
Date: Thu Dec 1 17:27:44 2011 -0600

    xfs: use doalloc flag in xfs_qm_dqattach_one()

    commit db3e74b582915d66e10b0c73a62763418f54c340 upstream.

    The doalloc arg in xfs_qm_dqattach_one() is a flag that indicates
    whether a new area to handle quota information will be allocated
    if needed. Originally, it was passed to xfs_qm_dqget(), but has
    been removed by the following commit (probably by mistake):

     commit 8e9b6e7fa4544ea8a0e030c8987b918509c8ff47
     Author: Christoph Hellwig <email address hidden>
     Date: Sun Feb 8 21:51:42 2009 +0100

     xfs: remove the unused XFS_QMOPT_DQLOCK flag

    As the result, xfs_qm_dqget() called from xfs_qm_dqattach_one()
    never allocates the new area even if it is needed.

    This patch gives the doalloc arg to xfs_qm_dqget() in
    xfs_qm_dqattach_one() to fix this problem.

    Signed-off-by: Mitsuo Hayasaka <email address hidden>
    Cc: Alex Elder <email address hidden>
    Cc: Christoph Hellwig <email address hidden>
    Reviewed-by: Christoph Hellwig <email address hidden>
    Signed-off-by: Ben Myers <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit c38aeb8cd119fddc37d7cd648d6c43e782711247
Author: Carlos Maiolino <email address hidden>
Date: Thu Dec 1 17:27:43 2011 -0600

    xfs: Fix possible memory corruption in xfs_readlink

    commit b52a360b2aa1c59ba9970fb0f52bbb093fcc7a24 upstream.

    Fixes a possible memory corruption when the link is larger than
    MAXPATHLEN and XFS_DEBUG is not enabled. This also remove the
    S_ISLNK assert, since the inode mode is checked previously in
    xfs_readlink_by_handle() and via VFS.

    Updated to address concerns raised by Ben Hutchings about the loose
    attention paid to 32- vs 64-bit values, and the lack of handling a
    potentially negative pathlen value:
     - Changed type of "pathlen" to be xfs_fsize_t, to match that of
       ip->i_d.di_size
     - Added checking for a negative pathlen to the too-long pathlen
       test, and generalized the message that gets reported in that case
       to reflect the change
    As a result, if a negative pathlen were encountered, this function
    would return EFSCORRUPTED (and would fail an assertion for a debug
    build)--just as would a too-long pathlen.

    Signed-off-by: Alex Elder <email address hidden>
    Signed-off-by: Carlos Maiolino <email address hidden>
    Reviewed-by: Christoph Hellwig <email address hidden>
    Cc: Ben Myers <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 7f9fae139e1b34b0ecb0ff8ab051c4497d68db2c
Author: Christoph Hellwig <email address hidden>
Date: Thu Dec 1 17:27:42 2011 -0600

    xfs: fix buffer flushing during unmount

    commit 87c7bec7fc3377b3873eb3a0f4b603981ea16ebb upstream.

    The code to flush buffers in the umount code is a bit iffy: we first
    flush all delwri buffers out, but then might be able to queue up a
    new one when logging the sb counts. On a normal shutdown that one
    would get flushed out when doing the synchronous superblock write in
    xfs_unmountfs_writesb, but we skip that one if the filesystem has
    been shut down.

    Fix this by moving the delwri list flushing until just before unmounting
    the log, and while we're at it also remove the superflous delwri list
    and buffer lru flusing for the rt and log device that can never have
    cached or delwri buffers.

    Signed-off-by: Christoph Hellwig <email address hidden>
    Reported-by: Amit Sahrawat <email address hidden>
    Tested-by: Amit Sahrawat <email address hidden>
    Signed-off-by: Alex Elder <email address hidden>
    Cc: Ben Myers <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit b4dd4c13166d1aab0c2cd8033f1cc1211f6f1678
Author: Mitsuo Hayasaka <email address hidden>
Date: Thu Dec 1 17:27:41 2011 -0600

    xfs: Return -EIO when xfs_vn_getattr() failed

    commit ed32201e65e15f3e6955cb84cbb544b08f81e5a5 upstream.

    An attribute of inode can be fetched via xfs_vn_getattr() in XFS.
    Currently it returns EIO, not negative value, when it failed. As a
    result, the system call returns not negative value even though an
    error occured. The stat(2), ls and mv commands cannot handle this
    error and do not work correctly.

    This patch fixes this bug, and returns -EIO, not EIO when an error
    is detected in xfs_vn_getattr().

    Signed-off-by: Mitsuo Hayasaka <email address hidden>
    Reviewed-by: Christoph Hellwig <email address hidden>
    Signed-off-by: Alex Elder <email address hidden>
    Cc: Ben Myers <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 6a426248da83e544995fc8a494630285260ec4ee
Author: Christoph Hellwig <email address hidden>
Date: Thu Dec 1 17:27:40 2011 -0600

    xfs: avoid direct I/O write vs buffered I/O race

    commit c58cb165bd44de8aaee9755a144136ae743be116 upstream.

    Currently a buffered reader or writer can add pages to the pagecache
    while we are waiting for the iolock in xfs_file_dio_aio_write. Prevent
    this by re-checking mapping->nrpages after we got the iolock, and if
    nessecary upgrade the lock to exclusive mode. To simplify this a bit
    only take the ilock inside of xfs_file_aio_write_checks.

    Signed-off-by: Christoph Hellwig <email address hidden>
    Reviewed-by: Dave Chinner <email address hidden>
    Signed-off-by: Alex Elder <email address hidden>
    Cc: Ben Myers <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 686da49e5aa50117d8d824c579c3fd9e0318fbc6
Author: Dave Chinner <email address hidden>
Date: Thu Dec 1 17:27:39 2011 -0600

    xfs: don't serialise direct IO reads on page cache checks

    commit 0c38a2512df272b14ef4238b476a2e4f70da1479 upstream.

    There is no need to grab the i_mutex of the IO lock in exclusive
    mode if we don't need to invalidate the page cache. Taking these
    locks on every direct IO effective serialises them as taking the IO
    lock in exclusive mode has to wait for all shared holders to drop
    the lock. That only happens when IO is complete, so effective it
    prevents dispatch of concurrent direct IO reads to the same inode.

    Fix this by taking the IO lock shared to check the page cache state,
    and only then drop it and take the IO lock exclusively if there is
    work to be done. Hence for the normal direct IO case, no exclusive
    locking will occur.

    Signed-off-by: Dave Chinner <email address hidden>
    Tested-by: Joern Engel <email address hidden>
    Reviewed-by: Christoph Hellwig <email address hidden>
    Signed-off-by: Alex Elder <email address hidden>
    Cc: Ben Myers <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit f06b70aa96019273ed984f76c79ad786ac216f7e
Author: Emmanuel Grumbach <email address hidden>
Date: Sun Nov 27 15:29:44 2011 +0200

    mac80211: fix race between the AGG SM and the Tx data path

    commit 2a1e0fd175dcfd72096ba9291d31e3b1b5342e60 upstream.

    When a packet is supposed to sent be as an a-MPDU, mac80211 sets
    IEEE80211_TX_CTL_AMPDU to let the driver know. On the other
    hand, mac80211 configures the driver for aggregration with the
    ampdu_action callback.
    There is race between these two mechanisms since the following
    scenario can occur when the BA agreement is torn down:

    Tx softIRQ drv configuration
    ========== =================

    check OPERATIONAL bit
    Set the TX_CTL_AMPDU bit in the packet

         clear OPERATIONAL bit
         stop Tx AGG
    Pass Tx packet to the driver.

    In that case the driver would get a packet with TX_CTL_AMPDU set
    although it has already been notified that the BA session has been
    torn down.

    To fix this, we need to synchronize all the Qdisc activity after we
    cleared the OPERATIONAL bit. After that step, all the following
    packets will be buffered until the driver reports it is ready to get
    new packets for this RA / TID. This buffering allows not to run into
    another race that would send packets with TX_CTL_AMPDU unset while
    the driver hasn't been requested to tear down the BA session yet.

    This race occurs in practice and iwlwifi complains with a WARN_ON
    when it happens.

    Signed-off-by: Emmanuel Grumbach <email address hidden>
    Reviewed-by: Johannes Berg <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 743646bb5669b390e18a7d1f45ab5db8db48e09d
Author: Johannes Berg <email address hidden>
Date: Thu Nov 24 20:06:14 2011 +0100

    mac80211: don't stop a single aggregation session twice

    commit 24f50a9d165745fd0701c6e089d35f58a229ea69 upstream.

    Nikolay noticed (by code review) that mac80211 can
    attempt to stop an aggregation session while it is
    already being stopped. So to fix it, check whether
    stop is already being done and bail out if so.

    Also move setting the STOPPING state into the lock
    so things are properly atomic.

    Reported-by: Nikolay Martynov <email address hidden>
    Signed-off-by: Johannes Berg <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 737df45ddfbd5f96a9b38a16d5eef9eb7cd3a9a0
Author: Johannes Berg <email address hidden>
Date: Mon Nov 21 10:44:00 2011 +0100

    cfg80211: fix regulatory NULL dereference

    commit de3584bd62d87b4c250129fbc46ca52c80330add upstream.

    By the time userspace returns with a response to
    the regulatory domain request, the wiphy causing
    the request might have gone away. If this is so,
    reject the update but mark the request as having
    been processed anyway.

    Cc: Luis R. Rodriguez <email address hidden>
    Signed-off-by: Johannes Berg <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 5c76953157d60ee044e23c9050347dd3405a2338
Author: Eliad Peller <email address hidden>
Date: Thu Nov 24 18:13:56 2011 +0200

    nl80211: fix MAC address validation

    commit e007b857e88097c96c45620bf3b04a4e309053d1 upstream.

    MAC addresses have a fixed length. The current
    policy allows passing < ETH_ALEN bytes, which
    might result in reading beyond the buffer.

    Signed-off-by: Eliad Peller <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 7ca622f2e52f3161466ebe93e177fb64c6047dc9
Author: Gertjan van Wingerde <email address hidden>
Date: Wed Nov 16 23:16:15 2011 +0100

    rt2x00: Fix efuse EEPROM reading on PPC32.

    commit 68fa64ef606bcee688fce46d07aa68f175070156 upstream.

    Fix __le32 to __le16 conversion of the first word of an 8-word block
    of EEPROM read via the efuse method.

    Reported-and-tested-by: Ingvar Hagelund <email address hidden>
    Signed-off-by: Gertjan van Wingerde <email address hidden>
    Acked-by: Helmut Schaa <email address hidden>
    Acked-by: Ivo van Doorn <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 160b68b38d29c8ab41eeb8187b2d724bf69c6756
Author: Michael Büsch <email address hidden>
Date: Wed Nov 16 23:55:46 2011 +0100

    p54spi: Fix workqueue deadlock

    commit 2d1618170eb493d18f66f2ac03775409a6fb97c6 upstream.

    priv->work must not be synced while priv->mutex is locked, because
    the mutex is taken in the work handler.
    Move cancel_work_sync down to after the device shutdown code.
    This is safe, because the work handler checks fw_state and bails out
    early in case of a race.

    Signed-off-by: Michael Buesch <email address hidden>
    Acked-by: Christian Lamparter <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 3dcc2d249f99606863f00635e2becf95a389dc9c
Author: Michael Büsch <email address hidden>
Date: Wed Nov 16 23:48:31 2011 +0100

    p54spi: Add missing spin_lock_init

    commit 32d3a3922d617a5a685a5e2d24b20d0e88f192a9 upstream.

    The tx_lock is not initialized properly. Add spin_lock_init().

    Signed-off-by: Michael Buesch <email address hidden>
    Acked-by: Christian Lamparter <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit be80893d309e256fe05a1e55d440bd6188ba2748
Author: John Stultz <email address hidden>
Date: Mon Oct 31 17:06:35 2011 -0400

    clocksource: Avoid selecting mult values that might overflow when adjusted

    commit d65670a78cdbfae94f20a9e05ec705871d7cdf2b upstream.

    For some frequencies, the clocks_calc_mult_shift() function will
    unfortunately select mult values very close to 0xffffffff. This
    has the potential to overflow when NTP adjusts the clock, adding
    to the mult value.

    This patch adds a clocksource.maxadj value, which provides
    an approximation of an 11% adjustment(NTP limits adjustments to
    500ppm and the tick adjustment is limited to 10%), which could
    be made to the clocksource.mult value. This is then used to both
    check that the current mult value won't overflow/underflow, as
    well as warning us if the timekeeping_adjust() code pushes over
    that 11% boundary.

    v2: Fix max_adjustment calculation, and improve WARN_ONCE
    messages.

    v3: Don't warn before maxadj has actually been set

    CC: Yong Zhang <email address hidden>
    CC: David Daney <email address hidden>
    CC: Thomas Gleixner <email address hidden>
    CC: Chen Jie <email address hidden>
    CC: zhangfx <email address hidden>
    Reported-by: Chen Jie <email address hidden>
    Reported-by: zhangfx <email address hidden>
    Tested-by: Yong Zhang <email address hidden>
    Signed-off-by: John Stultz <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit eb5f9ebf61f88796a19df09751762b9e086a5214
Author: Jeff Ohlstein <email address hidden>
Date: Fri Nov 18 15:47:10 2011 -0800

    hrtimer: Fix extra wakeups from __remove_hrtimer()

    commit 27c9cd7e601632b3794e1c3344d37b86917ffb43 upstream.

    __remove_hrtimer() attempts to reprogram the clockevent device when
    the timer being removed is the next to expire. However,
    __remove_hrtimer() reprograms the clockevent *before* removing the
    timer from the timerqueue and thus when hrtimer_force_reprogram()
    finds the next timer to expire it finds the timer we're trying to
    remove.

    This is especially noticeable when the system switches to NOHz mode
    and the system tick is removed. The timer tick is removed from the
    system but the clockevent is programmed to wakeup in another HZ
    anyway.

    Silence the extra wakeup by removing the timer from the timerqueue
    before calling hrtimer_force_reprogram() so that we actually program
    the clockevent for the next timer to expire.

    This was broken by 998adc3 "hrtimers: Convert hrtimers to use
    timerlist infrastructure".

    Signed-off-by: Jeff Ohlstein <email address hidden>
    Link: http://<email address hidden>
    Signed-off-by: Thomas Gleixner <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 92ad5083db212ff3c5f6d1d085d85790f7a6c42c
Author: Hector Palacios <email address hidden>
Date: Mon Nov 14 11:15:25 2011 +0100

    timekeeping: add arch_offset hook to ktime_get functions

    commit d004e024058a0eaca097513ce62cbcf978913e0a upstream.

    ktime_get and ktime_get_ts were calling timekeeping_get_ns()
    but later they were not calling arch_gettimeoffset() so architectures
    using this mechanism returned 0 ns when calling these functions.

    This happened for example when running Busybox's ping which calls
    syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts) which eventually
    calls ktime_get. As a result the returned ping travel time was zero.

    Signed-off-by: Hector Palacios <email address hidden>
    Signed-off-by: John Stultz <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit c1d98cbbfc393f166b8a675b3acbdfab320adadc
Author: Michal Hocko <email address hidden>
Date: Tue Nov 22 07:44:47 2011 -0800

    cgroup_freezer: fix freezing groups with stopped tasks

    commit 884a45d964dd395eda945842afff5e16bcaedf56 upstream.

    2d3cbf8b (cgroup_freezer: update_freezer_state() does incorrect state
    transitions) removed is_task_frozen_enough and replaced it with a simple
    frozen call. This, however, breaks freezing for a group with stopped tasks
    because those cannot be frozen and so the group remains in CGROUP_FREEZING
    state (update_if_frozen doesn't count stopped tasks) and never reaches
    CGROUP_FROZEN.

    Let's add is_task_frozen_enough back and use it at the original locations
    (update_if_frozen and try_to_freeze_cgroup). Semantically we consider
    stopped tasks as frozen enough so we should consider both cases when
    testing frozen tasks.

    Testcase:
    mkdir /dev/freezer
    mount -t cgroup -o freezer none /dev/freezer
    mkdir /dev/freezer/foo
    sleep 1h &
    pid=$!
    kill -STOP $pid
    echo $pid > /dev/freezer/foo/tasks
    echo FROZEN > /dev/freezer/foo/freezer.state
    while true
    do
     cat /dev/freezer/foo/freezer.state
     [ "`cat /dev/freezer/foo/freezer.state`" = "FROZEN" ] && break
     sleep 1
    done
    echo OK

    Signed-off-by: Michal Hocko <email address hidden>
    Acked-by: Li Zefan <email address hidden>
    Cc: Tomasz Buchert <email address hidden>
    Cc: Paul Menage <email address hidden>
    Cc: Andrew Morton <email address hidden>
    Signed-off-by: Tejun Heo <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit ffdb8ca9bea2170b97edb9372bb365fd387a1ff9
Author: Tero Kristo <email address hidden>
Date: Mon Nov 28 16:53:19 2011 +0200

    regulator: twl: fix twl4030 support for smps regulators

    commit ba305e31e88ea5c2f598ff9fbc5424711a429e30 upstream.

    SMPS regulator voltage control differs from the one of the LDO ones.
    Current TWL code was using LDO regulator ops for controlling the SMPS
    regulators, which fails. This was fixed fixed by adding separate
    regulator type which uses correct logic and calculations for the
    voltage levels.

    Signed-off-by: Tero Kristo <email address hidden>
    Signed-off-by: Mark Brown <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 13e15d58a10698371a7d10b5dcdf2ce6630c35ef
Author: Axel Lin <email address hidden>
Date: Mon Nov 28 14:06:31 2011 +0800

    regulator: aat2870: Fix the logic of checking if no id is matched in aat2870_get_regulator

    commit d4d6373c1109b11c8118340be97ae31b8f94d66a upstream.

    In current implementation, the pointer ri is not NULL if no id is matched.
    Fix it by checking i == ARRAY_SIZE(aat2870_regulators) if no id is matched.

    Signed-off-by: Axel Lin <email address hidden>
    Signed-off-by: Mark Brown <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 4148011316b640f48be6b7dd9005033b5347172c
Author: Edward Donovan <email address hidden>
Date: Sun Nov 27 23:07:34 2011 -0500

    genirq: fix regression in irqfixup, irqpoll

    commit 52553ddffad76ccf192d4dd9ce88d5818f57f62a upstream.

    Commit fa27271bc8d2("genirq: Fixup poll handling") introduced a
    regression that broke irqfixup/irqpoll for some hardware configurations.

    Amidst reorganizing 'try_one_irq', that patch removed a test that
    checked for 'action->handler' returning IRQ_HANDLED, before acting on
    the interrupt. Restoring this test back returns the functionality lost
    since 2.6.39. In the current set of tests, after 'action' is set, it
    must precede '!action->next' to take effect.

    With this and my previous patch to irq/spurious.c, c75d720fca8a, all
    IRQ regressions that I have encountered are fixed.

    Signed-off-by: Edward Donovan <email address hidden>
    Reported-and-tested-by: Rogério Brito <email address hidden>
    Cc: Thomas Gleixner <email address hidden>
    Signed-off-by: Linus Torvalds <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 79f1685c82d882192b1e22b3114be78159c54b86
Author: Stanislaw Gruszka <email address hidden>
Date: Mon Nov 28 10:33:40 2011 +0100

    rtlwifi: fix lps_lock deadlock

    commit e55b32c110b025ce07b40227f620e99700bf8741 upstream.

    rtl_lps_leave can be called from interrupt context, so we have to
    disable interrupts when taking lps_lock.

    Below is full lockdep info about deadlock:

    [ 93.815269] =================================
    [ 93.815390] [ INFO: inconsistent lock state ]
    [ 93.815472] 2.6.41.1-3.offch.fc15.x86_64.debug #1
    [ 93.815556] ---------------------------------
    [ 93.815635] inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
    [ 93.815743] swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
    [ 93.815832] (&(&rtlpriv->locks.lps_lock)->rlock){+.?...}, at: [<ffffffffa025dad6>] rtl_lps_leave+0x26/0x103 [rtlwifi]
    [ 93.815947] {SOFTIRQ-ON-W} state was registered at:
    [ 93.815947] [<ffffffff8108e10d>] __lock_acquire+0x369/0xd0c
    [ 93.815947] [<ffffffff8108efb3>] lock_acquire+0xf3/0x13e
    [ 93.815947] [<ffffffff814e981d>] _raw_spin_lock+0x45/0x79
    [ 93.815947] [<ffffffffa025de34>] rtl_swlps_rf_awake+0x5a/0x76 [rtlwifi]
    [ 93.815947] [<ffffffffa025aec0>] rtl_op_config+0x12a/0x32a [rtlwifi]
    [ 93.815947] [<ffffffffa01d614b>] ieee80211_hw_config+0x124/0x129 [mac80211]
    [ 93.815947] [<ffffffffa01e0af3>] ieee80211_dynamic_ps_disable_work+0x32/0x47 [mac80211]
    [ 93.815947] [<ffffffff81075aa5>] process_one_work+0x205/0x3e7
    [ 93.815947] [<ffffffff81076753>] worker_thread+0xda/0x15d
    [ 93.815947] [<ffffffff8107a119>] kthread+0xa8/0xb0
    [ 93.815947] [<ffffffff814f3184>] kernel_thread_helper+0x4/0x10
    [ 93.815947] irq event stamp: 547822
    [ 93.815947] hardirqs last enabled at (547822): [<ffffffff814ea1a7>] _raw_spin_unlock_irqrestore+0x45/0x61
    [ 93.815947] hardirqs last disabled at (547821): [<ffffffff814e9987>] _raw_spin_lock_irqsave+0x22/0x8e
    [ 93.815947] softirqs last enabled at (547790): [<ffffffff810623ed>] _local_bh_enable+0x13/0x15
    [ 93.815947] softirqs last disabled at (547791): [<ffffffff814f327c>] call_softirq+0x1c/0x30
    [ 93.815947]
    [ 93.815947] other info that might help us debug this:
    [ 93.815947] Possible unsafe locking scenario:
    [ 93.815947]
    [ 93.815947] CPU0
    [ 93.815947] ----
    [ 93.815947] lock(&(&rtlpriv->locks.lps_lock)->rlock);
    [ 93.815947] <Interrupt>
    [ 93.815947] lock(&(&rtlpriv->locks.lps_lock)->rlock);
    [ 93.815947]
    [ 93.815947] *** DEADLOCK ***
    [ 93.815947]
    [ 93.815947] no locks held by swapper/0.
    [ 93.815947]
    [ 93.815947] stack backtrace:
    [ 93.815947] Pid: 0, comm: swapper Not tainted 2.6.41.1-3.offch.fc15.x86_64.debug #1
    [ 93.815947] Call Trace:
    [ 93.815947] <IRQ> [<ffffffff814dfd00>] print_usage_bug+0x1e7/0x1f8
    [ 93.815947] [<ffffffff8101a849>] ? save_stack_trace+0x2c/0x49
    [ 93.815947] [<ffffffff8108d55c>] ? print_irq_inversion_bug.part.18+0x1a0/0x1a0
    [ 93.815947] [<ffffffff8108dc8a>] mark_lock+0x106/0x220
    [ 93.815947] [<ffffffff8108e099>] __lock_acquire+0x2f5/0xd0c
    [ 93.815947] [<ffffffff810152af>] ? native_sched_clock+0x34/0x36
    [ 93.830125] [<ffffffff810152ba>] ? sched_clock+0x9/0xd
    [ 93.830125] [<ffffffff81080181>] ? sched_clock_local+0x12/0x75
    [ 93.830125] [<ffffffffa025dad6>] ? rtl_lps_leave+0x26/0x103 [rtlwifi]
    [ 93.830125] [<ffffffff8108efb3>] lock_acquire+0xf3/0x13e
    [ 93.830125] [<ffffffffa025dad6>] ? rtl_lps_leave+0x26/0x103 [rtlwifi]
    [ 93.830125] [<ffffffff814e981d>] _raw_spin_lock+0x45/0x79
    [ 93.830125] [<ffffffffa025dad6>] ? rtl_lps_leave+0x26/0x103 [rtlwifi]
    [ 93.830125] [<ffffffff81422467>] ? skb_dequeue+0x62/0x6d
    [ 93.830125] [<ffffffffa025dad6>] rtl_lps_leave+0x26/0x103 [rtlwifi]
    [ 93.830125] [<ffffffffa025f677>] _rtl_pci_ips_leave_tasklet+0xe/0x10 [rtlwifi]
    [ 93.830125] [<ffffffff8106281f>] tasklet_action+0x8d/0xee
    [ 93.830125] [<ffffffff810629ce>] __do_softirq+0x112/0x25a
    [ 93.830125] [<ffffffff814f327c>] call_softirq+0x1c/0x30
    [ 93.830125] [<ffffffff81010bf6>] do_softirq+0x4b/0xa1
    [ 93.830125] [<ffffffff81062d7d>] irq_exit+0x5d/0xcf
    [ 93.830125] [<ffffffff814f3b7e>] do_IRQ+0x8e/0xa5
    [ 93.830125] [<ffffffff814ea533>] common_interrupt+0x73/0x73
    [ 93.830125] <EOI> [<ffffffff8108b825>] ? trace_hardirqs_off+0xd/0xf
    [ 93.830125] [<ffffffff812bb6d5>] ? intel_idle+0xe5/0x10c
    [ 93.830125] [<ffffffff812bb6d1>] ? intel_idle+0xe1/0x10c
    [ 93.830125] [<ffffffff813f8d5e>] cpuidle_idle_call+0x11c/0x1fe
    [ 93.830125] [<ffffffff8100e2ef>] cpu_idle+0xab/0x101
    [ 93.830125] [<ffffffff814c6373>] rest_init+0xd7/0xde
    [ 93.830125] [<ffffffff814c629c>] ? csum_partial_copy_generic+0x16c/0x16c
    [ 93.830125] [<ffffffff81d4bbb0>] start_kernel+0x3dd/0x3ea
    [ 93.830125] [<ffffffff81d4b2c4>] x86_64_start_reservations+0xaf/0xb3
    [ 93.830125] [<ffffffff81d4b140>] ? early_idt_handlers+0x140/0x140
    [ 93.830125] [<ffffffff81d4b3ca>] x86_64_start_kernel+0x102/0x111

    Resolves:
    https://bugzilla.redhat.com/show_bug.cgi?id=755154

    Reported-by: <email address hidden>
    Reported-and-tested-by: Oliver Paukstadt <email address hidden>
    Acked-by: Larry Finger <email address hidden>
    Signed-off-by: Stanislaw Gruszka <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 01da30a885baa667801facc2a54c80346ab6c414
Author: Tejun Heo <email address hidden>
Date: Thu Nov 24 19:22:24 2011 -0500

    ext4: fix racy use-after-free in ext4_end_io_dio()

    commit 4c81f045c0bd2cbb78cc6446a4cd98038fe11a2e upstream.

    ext4_end_io_dio() queues io_end->work and then clears iocb->private;
    however, io_end->work calls aio_complete() which frees the iocb
    object. If that slab object gets reallocated, then ext4_end_io_dio()
    can end up clearing someone else's iocb->private, this use-after-free
    can cause a leak of a struct ext4_io_end_t structure.

    Detected and tested with slab poisoning.

    [ Note: Can also reproduce using 12 fio's against 12 file systems with the
      following configuration file:

      [global]
      direct=1
      ioengine=libaio
      iodepth=1
      bs=4k
      ba=4k
      size=128m

      [create]
      filename=${TESTDIR}
      rw=write

      -- tytso ]

    Google-Bug-Id: 5354697
    Signed-off-by: Tejun Heo <email address hidden>
    Signed-off-by: "Theodore Ts'o" <email address hidden>
    Reported-by: Kent Overstreet <email address hidden>
    Tested-by: Kent Overstreet <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 453fdf5561cc042b7e127af6a62138969726f539
Author: Trond Myklebust <email address hidden>
Date: Tue Nov 22 14:44:28 2011 +0200

    SUNRPC: Ensure we return EAGAIN in xs_nospace if congestion is cleared

    commit 24ca9a847791fd53d9b217330b15f3c285827a18 upstream.

    By returning '0' instead of 'EAGAIN' when the tests in xs_nospace() fail
    to find evidence of socket congestion, we are making the RPC engine believe
    that the message was incorrectly sent and so it disconnects the socket
    instead of just retrying.

    The bug appears to have been introduced by commit
    5e3771ce2d6a69e10fcc870cdf226d121d868491 (SUNRPC: Ensure that xs_nospace
    return values are propagated).

    Reported-by: Andrew Cooper <email address hidden>
    Signed-off-by: Trond Myklebust <email address hidden>
    Tested-by: Andrew Cooper <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 854b259aa1fbb2f4e63ba02a008f48c36606e73d
Author: Mark Brown <email address hidden>
Date: Mon Nov 21 11:55:41 2011 +0000

    ASoC: Ensure WM8731 register cache is synced when resuming from disabled

    commit ed3e80c4c991a52f9fce3421536a78e331ae0949 upstream.

    Signed-off-by: Mark Brown <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 101e07082f732dfb645ba370b0c0b510e1283f25
Author: Timo Juhani Lindfors <email address hidden>
Date: Thu Nov 17 02:52:50 2011 +0200

    ASoC: wm8753: Skip noop reconfiguration of DAI mode

    commit 2391a0e06789a3f1718dee30b282562f7ed28c87 upstream.

    This patch makes it possible to set DAI mode to its currently applied
    value even if codec is active. This is necessary to allow

    aplay -t raw -r 44100 -f S16_LE -c 2 < /dev/urandom &
    alsactl store -f backup.state
    alsactl restore -f backup.state

    to work without returning errors. This patch is based on a patch sent
    by Klaus Kurzmann <email address hidden>.

    Signed-off-by: Timo Juhani Lindfors <email address hidden>
    Signed-off-by: Mark Brown <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 38c15d6ae974128158acee43380508db968c80bf
Author: Timur Tabi <email address hidden>
Date: Mon Nov 14 16:35:26 2011 -0600

    ASoC: fsl_ssi: properly initialize the sysfs attribute object

    commit 0f768a7235d3dfb6f4833030a95a06419df089cb upstream.

    Commit 6992f533 ("sysfs: Use one lockdep class per sysfs attribute")
    requires 'struct attribute' objects to be initialized with sysfs_attr_init().

    Signed-off-by: Timur Tabi <email address hidden>
    Signed-off-by: Mark Brown <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 71b3b360ee04f567eded77c3bcadb510f9a7c8f0
Author: Johannes Stezenbach <email address hidden>
Date: Mon Nov 14 17:23:16 2011 +0100

    ASoC: sta32x: preserve coefficient RAM

    commit 54dc6cabe684375b3cf549c7b0545613d694aba8 upstream.

    The coefficient RAM must be saved in a shadow so it can
    be restored when the codec is powered on using
    regulator_bulk_enable().

    Signed-off-by: Johannes Stezenbach <email address hidden>
    Signed-off-by: Mark Brown <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 45445147b0cf1c398b370aa064dc2fb7f9b5128e
Author: Takashi Iwai <email address hidden>
Date: Wed Nov 23 07:38:59 2011 +0100

    ALSA: hda/realtek - Fix missing inits of item indices for auto-mic

    commit 6759dc323826c2c806c998cd93945c5476688dd2 upstream.

    When the imux entries are rebuilt in alc_rebuild_imux_for_auto_mic(),
    the initialization of index field is missing. It may work without it
    casually when the original imux was created by the auto-parser, but
    it's definitely broken in the case of static configs where no imux was
    parsed beforehand. Because of this, the auto-mic switching doesn't
    work properly on some model options.

    This patch adds the missing initialization of index field.

    Reported-by: Dmitry Nezhevenko <email address hidden>
    Signed-off-by: Takashi Iwai <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 30444a763d652293e36f38ca43de13d6cf5ec3b0
Author: Tim Blechmann <email address hidden>
Date: Tue Nov 22 11:15:45 2011 +0100

    ALSA: lx6464es - fix device communication via command bus

    commit a29878553a9a7b4c06f93c7e383527cf014d4ceb upstream.

    commit 6175ddf06b6172046a329e3abfd9c901a43efd2e optimized the mem*io
    functions that have been used to send commands to the device. these
    optimizations somehow corrupted the communication with the lx6464es,
    that resulted the device to be unusable with kernels after 2.6.33.

    this patch emulates the memcpy_*_io functions via a loop to avoid these
    problems.

    Signed-off-by: Tim Blechmann <email address hidden>
    LKML-Reference: <email address hidden>
    Signed-off-by: Takashi Iwai <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 9b8fd4ef07fdfeb445ab35b2329fe3c1727297fe
Author: Takashi Iwai <email address hidden>
Date: Thu Nov 24 16:33:09 2011 +0100

    ALSA: hda - Fix jack-detection control of VT1708

    commit 187d333edc0a8e1bb507900ce89853ffe3bd2c84 upstream.

    VT1708 has no support for unsolicited events per jack-plug, the driver
    implements the workq for polling the jack-detection. The mixer element
    "Jack Detect" was supposed to control this behavior on/off, but this
    doesn't work properly as is now. The workq is always started and the
    HP automute is always enabled.

    This patch fixes the jack-detect control behavior by triggering / stopping
    the work appropriately at the state change. Also the work checks the
    internal state to continue scheduling or not.

    Signed-off-by: Takashi Iwai <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 03c371b70411f1f2805e2965eff0629908b59c13
Author: Will Deacon <email address hidden>
Date: Mon Nov 14 17:24:58 2011 +0100

    ARM: 7161/1: errata: no automatic store buffer drain

    commit 11ed0ba1754841316d4095478944300acf19acc3 upstream.

    This patch implements a workaround for PL310 erratum 769419. On
    revisions of the PL310 prior to r3p2, the Store Buffer does not
    automatically drain. This can cause normal, non-cacheable writes to be
    retained when the memory system is idle, leading to suboptimal I/O
    performance for drivers using coherent DMA.

    This patch adds an optional wmb() call to the cpu_idle loop. On systems
    with an outer cache, this causes an explicit flush of the store buffer.

    Acked-by: Catalin Marinas <email address hidden>
    Tested-by: Marc Zyngier <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>
    Signed-off-by: Russell King <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit e9b529a3d8929c793ed6326d407ec7bf18bff6bb
Author: Kevin Hilman <email address hidden>
Date: Wed Nov 23 14:43:01 2011 -0800

    ARM: OMAP: PM: only register TWL with voltage layer when device is present

    commit 46232a3622c6e33605906ee6690dfef372925f53 upstream.

    Current code registers voltage layer details for TWL PMIC even when a TWL
    has not been registered. Fix this to only register the TWL with voltage
    layer when the TWL PMIC is initialized by board-level code.

    Signed-off-by: Kevin Hilman <email address hidden>
    Signed-off-by: Tony Lindgren <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 8591c9d862e86646a1b76ca3154c0ec1b58d51c6
Author: Ming Lei <email address hidden>
Date: Wed Nov 23 14:44:50 2011 -0800

    ARM: OMAP2: select ARM_AMBA if OMAP3_EMU is defined

    commit a8a6565c7615cab3608d75af95b5c8a3522cd7c4 upstream.

    This patch selects ARM_AMBA if OMAP3_EMU is defined because
    OC_ETM depends on ARM_AMBA, so fix the link failure[1].

    [1],
    arch/arm/kernel/built-in.o: In function `etm_remove':
    /home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:609: undefined
    reference to `amba_release_regions'
    arch/arm/kernel/built-in.o: In function `etb_remove':
    /home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:409: undefined
    reference to `amba_release_regions'
    arch/arm/kernel/built-in.o: In function `etm_init':
    /home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:640: undefined
    reference to `amba_driver_register'
    /home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:646: undefined
    reference to `amba_driver_register'
    /home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:648: undefined
    reference to `amba_driver_unregister'
    arch/arm/kernel/built-in.o: In function `etm_probe':
    /home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:545: undefined
    reference to `amba_request_regions'
    /home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:595: undefined
    reference to `amba_release_regions'
    arch/arm/kernel/built-in.o: In function `etb_probe':
    /home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:347: undefined
    reference to `amba_request_regions'
    /home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:392: undefined
    reference to `amba_release_regions'
    arch/arm/mach-omap2/built-in.o: In function `emu_init':
    /home/tom/git/omap/linux-2.6-omap/arch/arm/mach-omap2/emu.c:62:
    undefined reference to `amba_device_register'
    /home/tom/git/omap/linux-2.6-omap/arch/arm/mach-omap2/emu.c:63:
    undefined reference to `amba_device_register'
    make: *** [.tmp_vmlinux1] Error 1
    making modules

    Signed-off-by: Ming Lei <email address hidden>
    Signed-off-by: Tony Lindgren <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 969b42a8899f173a232b5ad14b2a0f5913c8b3b1
Author: sricharan <email address hidden>
Date: Wed Nov 23 14:35:07 2011 -0800

    ARM: OMAP: hwmod: Fix the addr space, irq, dma count APIs

    commit cc1b0765da6078b906772b79ff211b88cc0ae958 upstream.

    The address spaces, irqs and dma reqs count APIs return the
    number of corresponding entries in a hwmod including a additional
    null value or a -1 terminator in the structure introduced recently.
    More information here:

    - 212738a4: omap_hwmod: use a terminator record with omap_hwmod_mpu_irqs
      arrays

    - 78183f3f: omap_hwmod: use a null structure record to terminate
      omap_hwmod_addr_space arrays

    - bc614958: omap_hwmod: use a terminator record with omap_hwmod_dma_info
      arrays

    The issue with irqs and dma info was originally reported by Benoit Cousson.

    The devices which have multiple hwmods and use device_build_ss are
    broken with this, as their resources are populated with a extra null
    value, subsequently the probe fails. So fix the API not to include
    the array terminator in the count.

    Reported-by: Benoit Cousson <email address hidden>
    Signed-off-by: Santosh Shilimkar <email address hidden>
    Signed-off-by: sricharan <email address hidden>
    Signed-off-by: Benoit Cousson <email address hidden>
    Cc: Paul Walmsley <email address hidden>
    Signed-off-by: Tony Lindgren <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 8fe9f659b730ca92367370cf7ae6de6ef640cf62
Author: Felipe Balbi <email address hidden>
Date: Wed Nov 23 14:43:37 2011 -0800

    ARM: OMAP: smartreflex: fix IRQ handling bug

    commit 5a4f1844c2ba21f804d7729306d9b16eaeb724a8 upstream.

    Fix a bug which has been on this driver since
    it was added by the original commit 984aa6db
    which would never clear IRQSTATUS bits.

    Signed-off-by: Felipe Balbi <email address hidden>
    Signed-off-by: Kevin Hilman <email address hidden>
    Signed-off-by: Tony Lindgren <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit acc0e76c23b07b8d0bd85774de9904ce278115c4
Author: Wolfram Sang <email address hidden>
Date: Sat Sep 10 12:26:07 2011 +0200

    arm: mx28: fix bit operation in clock setting

    commit c2735391fbc68feae10d6d14e60956c8106e725f upstream.

    reg | (1 << clk->enable_shift) always evaluates to true. Switch it
    to & which makes much more sense. Same fix as 13be9f00 (ARM i.MX28: fix
    bit operation) at a different location.

    Signed-off-by: Wolfram Sang <email address hidden>
    Cc: Sascha Hauer <email address hidden>
    Cc: Shawn Guo <email address hidden>
    Signed-off-by: Shawn Guo <email address hidden>
    Signed-off-by: Arnd Bergmann <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 8533dca18388b89bcb1772c5f504ac96a4826632
Author: Haojian Zhuang <email address hidden>
Date: Thu Nov 10 07:13:07 2011 +0800

    ARM: pxa: fix inconsistent CONFIG_USB_PXA27X

    commit c0a39151a4055332897cba615623d3de2f3896df upstream.

    Since CONFIG_USB_GADGET_PXA27X and other macros are renamed to
    CONFIG_USB_PXA27X. Update them in arch/arm/mach-pxa and arch/arm/configs
    to keep consistent.

    Signed-off-by: Haojian Zhuang <email address hidden>
    Acked-by: Felipe Balbi <email address hidden>
    Signed-off-by: Eric Miao <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit df01c1efffdaf26ef874f96986a64776c170b024
Author: Daniel Drake <email address hidden>
Date: Mon Nov 21 15:05:56 2011 +0000

    viafb: correct sync polarity for OLPC DCON

    commit a32839696a8eef813a1aff604fbad9a32dff6c95 upstream.

    While the OLPC display appears to be able to handle either positive
    or negative sync, the Display Controller only recognises positive sync.

    This brings viafb (for XO-1.5) in line with lxfb (for XO-1) and
    fixes a recent regression where the XO-1.5 DCON could no longer be
    frozen. Thanks to Florian Tobias Schandinat for helping identify
    the fix.

    Test case: from a vt,
     echo 1 > /sys/devices/platform/dcon/freeze
    should cause the current screen contents to freeze, rather than garbage being
    displayed.

    Signed-off-by: Daniel Drake <email address hidden>
    Signed-off-by: Florian Tobias Schandinat <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit cbd00285bbef94804213974a5fd084c3f7197ec6
Author: Alex Deucher <email address hidden>
Date: Mon Nov 14 14:32:01 2011 -0500

    drm/radeon/kms: fix up gpio i2c mask bits for r4xx

    commit 6c47e5c23aa2a7c54ad7ac13af4bd56cd9e703bf upstream.

    Fixes i2c test failures when i2c_algo_bit.bit_test=1.

    The hw doesn't actually require a mask, so just set it
    to the default mask bits for r1xx-r4xx radeon ddc.

    Signed-off-by: Alex Deucher <email address hidden>
    Cc: Jean Delvare <email address hidden>
    Signed-off-by: Dave Airlie <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 14855077253713109f8a835cc6e9271432460de9
Author: Bjorn Helgaas <email address hidden>
Date: Tue Aug 23 10:16:43 2011 -0600

    PCI hotplug: shpchp: don't blindly claim non-AMD 0x7450 device IDs

    commit 4cac2eb158c6da0c761689345c6cc5df788a6292 upstream.

    Previously we claimed device ID 0x7450, regardless of the vendor, which is
    clearly wrong. Now we'll claim that device ID only for AMD.

    I suspect this was just a typo in the original code, but it's possible this
    change will break shpchp on non-7450 AMD bridges. If so, we'll have to fix
    them as we find them.

    Reference: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=638863
    Reported-by: Ralf Jung <email address hidden>
    Cc: Joerg Roedel <email address hidden>
    Signed-off-by: Bjorn Helgaas <email address hidden>
    Signed-off-by: Jesse Barnes <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit d02f594b5287e6b8a0274991b6b6e645cef79b33
Author: Takashi Iwai <email address hidden>
Date: Wed Nov 16 10:58:03 2011 +0100

    drm/i915: Fix inconsistent backlight level during disabled

    commit 04b38670cf46c096705f24e92a8747d1ab89e53c upstream.

    When the brightness property is inquired while the backlight is disabled,
    the driver returns a wrong value (zero) because it probes the value after
    the backlight was turned off. This caused a black screen even after the
    backlight is enabled again. It should return the internal backlight_level
    instead, so that it won't be influenced by the backlight-enable state.

    BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=41926
    BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/872652

    Tested-by: Kamal Mostafa <email address hidden>
    Cc: Alex Davis <email address hidden>
    Signed-off-by: Takashi Iwai <email address hidden>
    Signed-off-by: Keith Packard <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 8f9940d1bf1d7dface90977031e327ee237408ca
Author: Eric Anholt <email address hidden>
Date: Mon Nov 7 16:07:05 2011 -0800

    drm/i915: Turn on another required clock gating bit on gen6.

    commit 9ca1d10d748e56964de95e3ed80211b192f56cf4 upstream.

    Unlike the previous one, I don't have known testcases it fixes. I'd
    rather not go through the same debug cycle on whatever testcases those
    might be.

    Signed-off-by: Eric Anholt <email address hidden>
    Signed-off-by: Keith Packard <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 9bdbb716a8c3a3363d40b198f351d78bfecd8917
Author: Eric Anholt <email address hidden>
Date: Mon Nov 7 16:07:04 2011 -0800

    drm/i915: Turn on a required 3D clock gating bit on Sandybridge.

    commit 406478dc911e16677fbd9c84d1d50cdffbc031ab upstream.

    Fixes rendering failures in Unigine Tropics and Sanctuary and the mesa
    "fire" demo.

    Signed-off-by: Eric Anholt <email address hidden>
    Signed-off-by: Keith Packard <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 03d51d153892ab5f07362ba63e088f8bf2d0512e
Author: Daniel Vetter <email address hidden>
Date: Sun Oct 9 21:52:01 2011 +0200

    drm/i915: Ivybridge still has fences!

    commit 775d17b6ca4357048f36c22151335addfe15db4b upstream.

    So don't forget to restore them on resume and dump them into
    the error state.

    Signed-off-by: Daniel Vetter <email address hidden>
    Reviewed-by: Chris Wilson <email address hidden>
    Signed-off-by: Keith Packard <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 24966e970264bfffa616f1f2d5f65a2db069b871
Author: Alex Deucher <email address hidden>
Date: Mon Nov 21 12:10:14 2011 -0500

    drm/radeon/kms: fix up gpio i2c mask bits for r4xx for real

    commit d724502a9d7a46f4a56a1663b1f50d2dc9d1ef40 upstream.

    Fixes i2c test failures when i2c_algo_bit.bit_test=1.

    The hw doesn't actually require a mask, so just set it
    to the default mask bits for r1xx-r4xx radeon ddc.

    I missed this part the first time through.

    Signed-off-by: Alex Deucher <email address hidden>
    Cc: Jean Delvare <email address hidden>
    Signed-off-by: Dave Airlie <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 02a04b98adead5626a395edc21bf6d7f17611938
Author: Xi Wang <email address hidden>
Date: Wed Nov 23 01:12:01 2011 -0500

    drm: integer overflow in drm_mode_dirtyfb_ioctl()

    commit a5cd335165e31db9dbab636fd29895d41da55dd2 upstream.

    There is a potential integer overflow in drm_mode_dirtyfb_ioctl()
    if userspace passes in a large num_clips. The call to kmalloc would
    allocate a small buffer, and the call to fb->funcs->dirty may result
    in a memory corruption.

    Reported-by: Haogang Chen <email address hidden>
    Signed-off-by: Xi Wang <email address hidden>
    Signed-off-by: Dave Airlie <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 49f5bf4e65140344f6ab824571b8325b7bd95d9b
Author: Phil Sutter <email address hidden>
Date: Wed Nov 16 18:28:01 2011 +0100

    crypto: mv_cesa - fix hashing of chunks > 1920 bytes

    commit 274252862f386b7868f35bf5ceaa5391a8ccfdf3 upstream.

    This was broken by commit 7759995c75ae0cbd4c861582908449f6b6208e7a (yes,
    myself). The basic problem here is since the digest state is only saved
    after the last chunk, the state array is only valid when handling the
    first chunk of the next buffer. Broken since linux-3.0.

    Signed-off-by: Phil Sutter <email address hidden>
    Signed-off-by: Herbert Xu <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 722daca8514aacaf7ed1311f2cc8e518af675049
Author: Tyler Hicks <email address hidden>
Date: Wed Nov 23 11:31:24 2011 -0600

    eCryptfs: Extend array bounds for all filename chars

    commit 0f751e641a71157aa584c2a2e22fda52b52b8a56 upstream.

    From mhalcrow's original commit message:

        Characters with ASCII values greater than the size of
        filename_rev_map[] are valid filename characters.
        ecryptfs_decode_from_filename() will access kernel memory beyond
        that array, and ecryptfs_parse_tag_70_packet() will then decrypt
        those characters. The attacker, using the FNEK of the crafted file,
        can then re-encrypt the characters to reveal the kernel memory past
        the end of the filename_rev_map[] array. I expect low security
        impact since this array is statically allocated in the text area,
        and the amount of memory past the array that is accessible is
        limited by the largest possible ASCII filename character.

    This patch solves the issue reported by mhalcrow but with an
    implementation suggested by Linus to simply extend the length of
    filename_rev_map[] to 256. Characters greater than 0x7A are mapped to
    0x00, which is how invalid characters less than 0x7A were previously
    being handled.

    Signed-off-by: Tyler Hicks <email address hidden>
    Reported-by: Michael Halcrow <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit a638f9564fd11b37efee4e78d7ef9dc52eb2a7cd
Author: Jeffrey (Sheng-Hui) Chu <email address hidden>
Date: Wed Nov 23 11:33:07 2011 +0100

    i2c-algo-bit: Generate correct i2c address sequence for 10-bit target

    commit cc6bcf7d2ec2234e7b41770185e4dc826390185e upstream.

    The wrong bits were put on the wire, fix that.

    This fixes kernel bug #42562.

    Signed-off-by: Sheng-Hui J. Chu <email address hidden>
    Signed-off-by: Jean Delvare <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 19c8acbc4a4d444d72d256a7541b040cebddc78b
Author: Tyler Hicks <email address hidden>
Date: Mon Nov 21 17:31:29 2011 -0600

    eCryptfs: Flush file in vma close

    commit 32001d6fe9ac6b0423e674a3093aa56740849f3b upstream.

    Dirty pages weren't being written back when an mmap'ed eCryptfs file was
    closed before the mapping was unmapped. Since f_ops->flush() is not
    called by the munmap() path, the lower file was simply being released.
    This patch flushes the eCryptfs file in the vm_ops->close() path.

    https://launchpad.net/bugs/870326

    Signed-off-by: Tyler Hicks <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit d1d274cd1ce2eb979c66233a36a7a92abfc0f18f
Author: Tyler Hicks <email address hidden>
Date: Mon Nov 21 17:31:02 2011 -0600

    eCryptfs: Prevent file create race condition

    commit b59db43ad4434519feb338eacb01d77eb50825c5 upstream.

    The file creation path prematurely called d_instantiate() and
    unlock_new_inode() before the eCryptfs inode info was fully
    allocated and initialized and before the eCryptfs metadata was written
    to the lower file.

    This could result in race conditions in subsequent file and inode
    operations leading to unexpected error conditions or a null pointer
    dereference while attempting to use the unallocated memory.

    https://launchpad.net/bugs/813146

    Signed-off-by: Tyler Hicks <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 4cd6f5d82a1e43abb729fdfe7e7a6833892845dd
Merge: 272d3c7 74517cb
Author: Nicolas Pitre <email address hidden>
Date: Mon Nov 28 22:46:01 2011 -0500

    Merge commit 'v3.1.4' into linaro-3.1

commit 74517cb61ec5b7b5902b36feb0ae2cc60444e8f0
Author: Greg Kroah-Hartman <email address hidden>
Date: Tue Nov 29 07:48:14 2011 +0900

    Linux 3.1.4

commit 4a8dec4b97aaf62dd1d532fd1b2edbc26afd4cb9
Author: Greg Kroah-Hartman <email address hidden>
Date: Tue Nov 29 07:40:10 2011 +0900

    Revert "USB: EHCI: fix HUB TT scheduling issue with iso transfer"

    This reverts commit f0cc710a6dec5b808a6f13f1f8853c094fce5f12.

    Cc: Matthieu Castet <email address hidden>
    Cc: Thomas Poussevin <email address hidden>
    Cc: Alan Stern <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 272d3c754502ee3ccd898264f050721f565d0c8e
Author: Kautuk Consul <email address hidden>
Date: Tue Nov 22 13:31:30 2011 -0500

    arm: fault.c: Port OOM changes into do_page_fault

    Commit d065bd810b6deb67d4897a14bfe21f8eb526ba99
    (mm: retry page fault when blocking on disk transfer) and
    commit 37b23e0525d393d48a7d59f870b3bc061a30ccdb
    (x86,mm: make pagefault killable)

    The above commits introduced changes into the x86 pagefault handler
    for making the page fault handler retryable as well as killable.

    These changes reduce the mmap_sem hold time, which is crucial
    during OOM killer invocation.

    Port these changes to ARM.

    Without these changes, my ARM board encounters many hang and livelock
    scenarios.
    After applying this patch, OOM feature performance improves according to
    my testing.

    Signed-off-by: Kautuk Consul <email address hidden>
    "I think this is fine"-by Russell King - ARM Linux <email address hidden>
    Signed-off-by: Nicolas Pitre <email address hidden>

commit ca6abb54069c4ab951eb71c7034ec6b4eb626a98
Merge: f6b252b a625393
Author: Nicolas Pitre <email address hidden>
Date: Mon Nov 28 11:42:42 2011 -0500

    Merge commit 'v3.1.2' into linaro-3.1

commit e6c2efafa8854e544bd15bdfc8498d4d0507d805
Author: Greg Kroah-Hartman <email address hidden>
Date: Sat Nov 26 09:08:57 2011 -0800

    Linux 3.1.3

commit 26e15787b98f3cac67d0b9458befd24adbef7272
Author: Mikulas Patocka <email address hidden>
Date: Mon Oct 31 17:08:57 2011 -0700

    vmscan: fix shrinker callback bug in fs/super.c

    commit 09f363c7363eb10cfb4b82094bd7064e5608258b upstream.

    The callback must not return -1 when nr_to_scan is zero. Fix the bug in
    fs/super.c and add this requirement to the callback specification.

    Signed-off-by: Mikulas Patocka <email address hidden>
    Cc: Dave Chinner <email address hidden>
    Signed-off-by: Andrew Morton <email address hidden>
    Signed-off-by: Linus Torvalds <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 1bccf76533a1e336dfa8007554d4283253e259c7
Author: Antonio Quartulli <email address hidden>
Date: Sat Oct 22 00:55:39 2011 +0200

    batman-adv: unify hash_entry field position in tt_local/global_entry

    commit 93840ac40bb0d0f177ef8af74e64671be67e8c37 upstream.

    Function tt_response_fill_table() actually uses a tt_local_entry pointer to
    iterate either over the local or the global table entries (it depends on the
    what hash table is passed as argument). To iterate over such entries the
    hlist_for_each_entry_rcu() macro has to access their "hash_entry" field which
    MUST be at the same position in both the tt_global/local_entry structures.

    Reported-by: Simon Wunderlich <email address hidden>
    Signed-off-by: Antonio Quartulli <email address hidden>
    Signed-off-by: Marek Lindner <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 9bab392e4a2120bba4f6fbe8676a5baf16756926
Author: Simon Wunderlich <email address hidden>
Date: Wed Oct 19 10:28:26 2011 +0200

    batman-adv: add sanity check when removing global tts

    commit 6e8014947d6469df1566e9e253805557c5c0e4e0 upstream.

    After removing the batman-adv module, the hash may be already gone
    when tt_global_del_orig() tries to clean the hash. This patch adds
    a sanity check to avoid this.

    Signed-off-by: Simon Wunderlich <email address hidden>
    Tested-by: Alexey Fisher <email address hidden>
    Signed-off-by: Marek Lindner <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 7766f4ed0b29204dc9248dea3bc547a8c93d18cb
Author: Simon Wunderlich <email address hidden>
Date: Wed Oct 19 11:02:25 2011 +0200

    batman-adv: remove references for global tt entries

    commit 531027fcddbcf81c9937dd04f08a7e8f11fd47d2 upstream.

    struct tt_global_entry holds a reference to an orig_node which must be
    decremented before deallocating the structure.

    Signed-off-by: Simon Wunderlich <email address hidden>
    Tested-by: Alexey Fisher <email address hidden>
    Signed-off-by: Marek Lindner <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 02460fcf18a10059eb52a223cc62d7d9b43ac3c0
Author: Antonio Quartulli <email address hidden>
Date: Mon Oct 17 14:25:13 2011 +0200

    batman-adv: correctly set the data field in the TT_REPONSE packet

    commit 9d8523931f7f5eb8900077f0da0fbe6b8ad0010b upstream.

    In the TT_RESPONSE packet, the number of carried entries is not correctly set.
    This leads to a wrong interpretation of the packet payload on the receiver side
    causing random entries to be added to the global translation table. Therefore
    the latter gets always corrupted, triggering a table recovery all the time.

    Signed-off-by: Antonio Quartulli <email address hidden>
    Signed-off-by: Marek Lindner <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit bde860c48a217a9b71fda841090afab693ccb2b6
Author: Antonio Quartulli <email address hidden>
Date: Sun Oct 16 18:53:37 2011 +0200

    batman-adv: fix tt_local_reset_flags() function

    commit 31901264511cf20c5ed33b8649a3ca9ce28df60b upstream.

    Currently the counter of tt_local_entry structures (tt_local_num) is incremented
    each time the tt_local_reset_flags() is invoked causing the node to send wrong
    TT_REPONSE packets containing a copy of non-initialised memory thus corrupting
    other nodes global translation table and making higher level communication
    impossible.

    Reported-by: Junkeun Song <email address hidden>
    Signed-off-by: Antonio Quartulli <email address hidden>
    Acked-by: Junkeun Song <email address hidden>
    Signed-off-by: Marek Lindner <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 89c59226317ff9ebaa54e37a39ba2479c3f11fa8
Author: Jesse Barnes <email address hidden>
Date: Mon Oct 10 14:28:52 2011 -0700

    drm/i915: always set FDI composite sync bit

    commit c4f9c4c2b3f1831e932e04db992cf6fe92c2a95a upstream.

    It's needed for 3 pipe support as well as just regular functionality
    (e.g. DisplayPort).

    Signed-off-by: Jesse Barnes <email address hidden>
    Tested-by: Adam Jackson <email address hidden>
    Tested-by: Eugeni Dodonov <email address hidden>
    Signed-off-by: Keith Packard <email address hidden>
    Signed-off-by: Robert Hooker <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 8ec180a74877149cc5974b221f02660114c62acb
Author: Jesse Barnes <email address hidden>
Date: Wed Oct 12 11:10:21 2011 -0700

    drm/i915: fix IVB cursor support

    commit 65a21cd65316145f9302594be8e69074369e1050 upstream.

    The cursor regs have moved around, add the offsets and new macros for
    getting at them.

    Signed-off-by: Jesse Barnes <email address hidden>
    Tested-By: Eugeni Dodonov <email address hidden>
    Reviewed-By: Eugeni Dodonov <email address hidden>
    Signed-off-by: Keith Packard <email address hidden>
    Signed-off-by: Robert Hooker <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit f4fb118ca065166a74757cbfa2feac4c366deed3
Author: sordna <email address hidden>
Date: Thu Oct 27 21:06:26 2011 -0700

    USB: quirks: adding more quirky webcams to avoid squeaky audio

    commit 0d145d7d4a241c321c832a810bb6edad18e2217b upstream.

    The following patch contains additional affected webcam models, on top of the
    patches commited to linux-next 2394d67e446bf616a0885167d5f0d397bdacfdfc
    and 5b253d88cc6c65a23cefc457a5a4ef139913c5fc

    Signed-off-by: sordna <email address hidden>
    Cc: Oliver Neukum <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 99acf71211a8e9d881461e9099cf30229f99b4d8
Author: Josh Boyer <email address hidden>
Date: Wed Oct 26 13:53:17 2011 -0400

    USB: add quirk for Logitech C600 web cam

    commit 60c71ca972a2dd3fd9d0165b405361c8ad48349b upstream.

    We've had another report of the "chipmunk" sound on a Logitech C600 webcam.
    This patch resolves the issue.

    Signed-off-by: Josh Boyer <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit f0cc710a6dec5b808a6f13f1f8853c094fce5f12
Author: Thomas Poussevin <email address hidden>
Date: Thu Oct 27 18:46:48 2011 +0200

    USB: EHCI: fix HUB TT scheduling issue with iso transfer

    commit 811c926c538f7e8d3c08b630dd5844efd7e000f6 upstream.

    The current TT scheduling doesn't allow to play and then record on a
    full-speed device connected to a high speed hub.

    The IN iso stream can only start on the first uframe (0-2 for a 165 us)
    because of CSPLIT transactions.
    For the OUT iso stream there no such restriction. uframe 0-5 are possible.

    The idea of this patch is that the first uframe are precious (for IN TT iso
    stream) and we should allocate the last uframes first if possible.

    For that we reverse the order of uframe allocation (last uframe first).

    Here an example :

    hid interrupt stream
    ----------------------------------------------------------------------
    uframe | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
    ----------------------------------------------------------------------
    max_tt_usecs | 125 | 125 | 125 | 125 | 125 | 125 | 30 | 0 |
    ----------------------------------------------------------------------
    used usecs on a frame | 13 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
    ----------------------------------------------------------------------

    iso OUT stream
    ----------------------------------------------------------------------
    uframe | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
    ----------------------------------------------------------------------
    max_tt_usecs | 125 | 125 | 125 | 125 | 125 | 125 | 30 | 0 |
    ----------------------------------------------------------------------
    used usecs on a frame | 13 | 125 | 39 | 0 | 0 | 0 | 0 | 0 |
    ----------------------------------------------------------------------

    There no place for iso IN stream (uframe 0-2 are used) and we got "cannot
    submit datapipe for urb 0, error -28: not enough bandwidth" error.

    With the patch this become.

    iso OUT stream
    ----------------------------------------------------------------------
    uframe | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
    ----------------------------------------------------------------------
    max_tt_usecs | 125 | 125 | 125 | 125 | 125 | 125 | 30 | 0 |
    ----------------------------------------------------------------------
    used usecs on a frame | 13 | 0 | 0 | 0 | 125 | 39 | 0 | 0 |
    ----------------------------------------------------------------------

    iso IN stream
    ----------------------------------------------------------------------
    uframe | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
    ----------------------------------------------------------------------
    max_tt_usecs | 125 | 125 | 125 | 125 | 125 | 125 | 30 | 0 |
    ----------------------------------------------------------------------
    used usecs on a frame | 13 | 0 | 125 | 40 | 125 | 39 | 0 | 0 |
    ----------------------------------------------------------------------

    Signed-off-by: Matthieu Castet <email address hidden>
    Signed-off-by: Thomas Poussevin <email address hidden>
    Signed-off-by: Alan Stern <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit ce0e4cbdc4e962aefc25bde683c415e25ed45ee6
Author: Alan Stern <email address hidden>
Date: Tue Oct 25 10:50:58 2011 -0400

    usb-storage: Accept 8020i-protocol commands longer than 12 bytes

    commit 2f640bf4c94324aeaa1b6385c10aab8c5ad1e1cf upstream.

    The 8020i protocol (also 8070i and QIC-157) uses 12-byte commands;
    shorter commands must be padded. Simon Detheridge reports that his
    3-TB USB disk drive claims to use the 8020i protocol (which is
    normally meant for ATAPI devices like CD drives), and because of its
    large size, the disk drive requires the use of 16-byte commands.
    However the usb_stor_pad12_command() routine in usb-storage always
    sets the command length to 12, making the drive impossible to use.

    Since the SFF-8020i specification allows for 16-byte commands in
    future extensions, we may as well accept them. This patch (as1490)
    changes usb_stor_pad12_command() to leave commands larger than 12
    bytes alone rather than truncating them.

    Signed-off-by: Alan Stern <email address hidden>
    Tested-by: Simon Detheridge <email address hidden>
    CC: Matthew Dharm <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 4c72dfff8cfbc0d5c63145691c9dbbd1df995c1c
Author: Andrew Worsley <email address hidden>
Date: Fri Nov 18 23:13:33 2011 +1100

    USB: Fix Corruption issue in USB ftdi driver ftdi_sio.c

    commit b1ffb4c851f185e9051ba837c16d9b84ef688d26 upstream.

    Fix for ftdi_set_termios() glitching output

    ftdi_set_termios() is constantly setting the baud rate, data bits and parity
    unnecessarily on every call, . When called while characters are being
    transmitted can cause the FTDI chip to corrupt the serial port bit stream
    output by stalling the output half a bit during the output of a character.
    Simple fix by skipping this setting if the baud rate/data bits/parity are
    unchanged.

    Signed-off-by: Andrew Worsley <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 22e88b06a5779026f242c2eb628ec058c79b2ed0
Author: Bart Hartgers <email address hidden>
Date: Wed Oct 26 13:29:42 2011 +0200

    USB: ark3116 initialisation fix

    commit 583182ba5f02c8c9be82ea550f2051eaec15b975 upstream.

    This patch for the usb serial ark3116 driver fixes an initialisation
    ordering bug that gets triggered on hotplug when using at least recent
    debian/ubuntu userspace. Without it, ark3116 serial cables don't work.

    Signed-off-by: Bart Hartgers <email address hidden>
    Tested-by: <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 43e3b323523373a33e4f42304db02779ef03751a
Author: Alan Stern <email address hidden>
Date: Thu Oct 27 11:20:21 2011 -0400

    USB: workaround for bug in old version of GCC

    commit 97ff22ee3b4cb3a334f7385e269773141aed702f upstream.

    This patch (as1491) works around a bug in GCC-3.4.6, which is still
    supposed to be supported. The number of microseconds in the udelay()
    call in quirk_usb_disable_ehci() is fixed at 100, but the compiler
    doesn't understand this and generates a link-time error. So we
    replace the otherwise unused variable "delta" with a simple constant
    100. This same pattern is already used in other delay loops in that
    source file.

    Signed-off-by: Alan Stern <email address hidden>
    Reported-by: Konrad Rzepecki <email address hidden>
    Tested-by: Konrad Rzepecki <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 195f0cd98344bfa50c995add0397efe1d60501f6
Author: Havard Skinnemoen <email address hidden>
Date: Wed Nov 9 13:47:38 2011 -0800

    USB: cdc-acm: Fix disconnect() vs close() race

    commit 5dc2470c602da8851907ec18942cd876c3b4ecc1 upstream.

    There's a race between the USB disconnect handler and the TTY close
    handler which may cause the acm object to be freed while it's still
    being used. This may lead to things like

    http://article.gmane.org/gmane.linux.usb.general/54250

    and

    https://lkml.org/lkml/2011/5/29/64

    This is the simplest fix I could come up with. Holding on to open_mutex
    while closing the TTY device prevents acm_disconnect() from freeing the
    acm object between acm->port.count drops to 0 and the TTY side of the
    cleanups are finalized.

    Signed-off-by: Havard Skinnemoen <email address hidden>
    Cc: Oliver Neukum <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit c5d412bfb9fe3dbd61d5ce2257b2ab5ed10ee44a
Author: Tomoya MORINAGA <email address hidden>
Date: Fri Oct 28 09:37:34 2011 +0900

    USB: pch_udc: Support new device LAPIS Semiconductor ML7831 IOH

    commit 731ad81e2dd97e3f222361f7b3ff4b35639e46af upstream.

    ML7831 is companion chip for Intel Atom E6xx series.

    Signed-off-by: Tomoya MORINAGA <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit a0d5bdc518afcf0721bfb7d324e52bba2234030a
Author: wangyanqing <email address hidden>
Date: Thu Nov 10 14:04:08 2011 +0800

    USB: serial: pl2303: rm duplicate id

    commit 0c16595539b612fe948559433dda08ff96a8bdc7 upstream.

    I get report from customer that his usb-serial
    converter doesn't work well,it sometimes work,
    but sometimes it doesn't.

    The usb-serial converter's id:
    vendor_id product_id
    0x4348 0x5523

    Then I search the usb-serial codes, and there are
    two drivers announce support this device, pl2303
    and ch341, commit 026dfaf1 cause it. Through many
    times to test, ch341 works well with this device,
    and pl2303 doesn't work quite often(it just work quite little).

    ch341 works well with this device, so we doesn't
    need pl2303 to support.I try to revert 026dfaf1 first,
    but it failed. So I prepare this patch by hand to revert it.

    Signed-off-by: Wang YanQing <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 6954d95fa354eb6bc277505c658fe28f9553b6b8
Author: Ferenc Wagner <email address hidden>
Date: Thu Nov 17 16:44:58 2011 +0100

    USB: option: add PID of Huawei E173s 3G modem

    commit 4aa3648c719265bac9c2742c9ebb043e6dbdd790 upstream.

    Signed-off-by: Ferenc Wagner <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 8cf4a733a63a487d1028127ac567fef1e3d805eb
Author: <email address hidden> <email address hidden>
Date: Thu Nov 17 19:23:25 2011 +0800

    USB: option: release new PID for ZTE 3G modem

    commit 46b5a277ed90317a4d17e936c16037e76011b219 upstream.

    This patch adds new PIDs for ZTE 3G modem, after we confirm it and tested.
    Thanks for Dan's work at kernel option devier.

    Signed-off-by: Alvin.Zheng <email address hidden>
    Signed-off-by: wsalvin <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 78c5cd61577b370e47eaf8e8405c63fb3f5b8921
Author: Alan Stern <email address hidden>
Date: Thu Nov 3 11:37:10 2011 -0400

    USB: XHCI: resume root hubs when the controller resumes

    commit f69e3120df82391a0ee8118e0a156239a06b2afb upstream.

    This patch (as1494) fixes a problem in xhci-hcd's resume routine.
    When the controller is runtime-resumed, this can only mean that one of
    the two root hubs has made a wakeup request and therefore needs to be
    resumed as well. Rather than try to determine which root hub requires
    attention (which might be difficult in the case where a new
    non-SuperSpeed device has been plugged in), the patch simply resumes
    both root hubs.

    Without this change, there is a race: The controller might be put back
    to sleep before it can activate its IRQ line, and the wakeup condition
    might never get handled.

    The patch also simplifies the logic in xhci_resume a little, combining
    some repeated flag settings into a single pair of statements.

    Signed-off-by: Alan Stern <email address hidden>
    CC: Sarah Sharp <email address hidden>
    Tested-by: Linus Torvalds <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 6b17329bbf8b902dcd1f5a0f94d43f902b72f682
Author: Don Zickus <email address hidden>
Date: Thu Oct 20 23:52:14 2011 -0400

    usb, xhci: fix lockdep warning on endpoint timeout

    commit f43d623164022dcbf6750ef220b7a1133a1183eb upstream.

    While debugging a usb3 problem, I stumbled upon this lockdep warning.

    Oct 18 21:41:17 dhcp47-74 kernel: =================================
    Oct 18 21:41:17 dhcp47-74 kernel: [ INFO: inconsistent lock state ]
    Oct 18 21:41:17 dhcp47-74 kernel: 3.1.0-rc4nmi+ #456
    Oct 18 21:41:17 dhcp47-74 kernel: ---------------------------------
    Oct 18 21:41:17 dhcp47-74 kernel: inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage.
    Oct 18 21:41:17 dhcp47-74 kernel: swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
    Oct 18 21:41:17 dhcp47-74 kernel: (&(&xhci->lock)->rlock){?.-...}, at: [<ffffffffa0228990>] xhci_stop_endpoint_command_watchdog+0x30/0x340 [xhci_hcd]
    Oct 18 21:41:17 dhcp47-74 kernel: {IN-HARDIRQ-W} state was registered at:
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8109a941>] __lock_acquire+0x781/0x1660
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8109bed7>] lock_acquire+0x97/0x170
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81501b46>] _raw_spin_lock+0x46/0x80
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffffa02299fa>] xhci_irq+0x3a/0x1960 [xhci_hcd]
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffffa022b351>] xhci_msi_irq+0x31/0x40 [xhci_hcd]
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff810d2305>] handle_irq_event_percpu+0x85/0x320
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff810d25e8>] handle_irq_event+0x48/0x70
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff810d537d>] handle_edge_irq+0x6d/0x130
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff810048c9>] handle_irq+0x49/0xa0
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8150d56d>] do_IRQ+0x5d/0xe0
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff815029b0>] ret_from_intr+0x0/0x13
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81388aca>] usb_set_device_state+0x8a/0x180
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8138f038>] usb_add_hcd+0x2b8/0x730
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffffa022ed7e>] xhci_pci_probe+0x9e/0xd4 [xhci_hcd]
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8127915f>] local_pci_probe+0x5f/0xd0
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8127a569>] pci_device_probe+0x119/0x120
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81334473>] driver_probe_device+0xa3/0x2c0
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8133473b>] __driver_attach+0xab/0xb0
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8133373c>] bus_for_each_dev+0x6c/0xa0
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff813341fe>] driver_attach+0x1e/0x20
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81333b88>] bus_add_driver+0x1f8/0x2b0
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81334df6>] driver_register+0x76/0x140
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8127a7c6>] __pci_register_driver+0x66/0xe0
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffffa013c04a>] snd_timer_find+0x4a/0x70 [snd_timer]
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffffa013c00e>] snd_timer_find+0xe/0x70 [snd_timer]
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff810001d3>] do_one_initcall+0x43/0x180
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff810a9ed2>] sys_init_module+0x92/0x1f0
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8150ab6b>] system_call_fastpath+0x16/0x1b
    Oct 18 21:41:17 dhcp47-74 kernel: irq event stamp: 631984
    Oct 18 21:41:17 dhcp47-74 kernel: hardirqs last enabled at (631984): [<ffffffff81502720>] _raw_spin_unlock_irq+0x30/0x50
    Oct 18 21:41:17 dhcp47-74 kernel: hardirqs last disabled at (631983): [<ffffffff81501c49>] _raw_spin_lock_irq+0x19/0x90
    Oct 18 21:41:17 dhcp47-74 kernel: softirqs last enabled at (631980): [<ffffffff8105ff63>] _local_bh_enable+0x13/0x20
    Oct 18 21:41:17 dhcp47-74 kernel: softirqs last disabled at (631981): [<ffffffff8150ce6c>] call_softirq+0x1c/0x30
    Oct 18 21:41:17 dhcp47-74 kernel:
    Oct 18 21:41:17 dhcp47-74 kernel: other info that might help us debug this:
    Oct 18 21:41:17 dhcp47-74 kernel: Possible unsafe locking scenario:
    Oct 18 21:41:17 dhcp47-74 kernel:
    Oct 18 21:41:17 dhcp47-74 kernel: CPU0
    Oct 18 21:41:17 dhcp47-74 kernel: ----
    Oct 18 21:41:17 dhcp47-74 kernel: lock(&(&xhci->lock)->rlock);
    Oct 18 21:41:17 dhcp47-74 kernel: <Interrupt>
    Oct 18 21:41:17 dhcp47-74 kernel: lock(&(&xhci->lock)->rlock);
    Oct 18 21:41:17 dhcp47-74 kernel:
    Oct 18 21:41:17 dhcp47-74 kernel: *** DEADLOCK ***
    Oct 18 21:41:17 dhcp47-74 kernel:
    Oct 18 21:41:17 dhcp47-74 kernel: 1 lock held by swapper/0:
    Oct 18 21:41:17 dhcp47-74 kernel: #0: (&ep->stop_cmd_timer){+.-...}, at: [<ffffffff8106abf2>] run_timer_softirq+0x162/0x570
    Oct 18 21:41:17 dhcp47-74 kernel:
    Oct 18 21:41:17 dhcp47-74 kernel: stack backtrace:
    Oct 18 21:41:17 dhcp47-74 kernel: Pid: 0, comm: swapper Tainted: G W 3.1.0-rc4nmi+ #456
    Oct 18 21:41:17 dhcp47-74 kernel: Call Trace:
    Oct 18 21:41:17 dhcp47-74 kernel: <IRQ> [<ffffffff81098ed7>] print_usage_bug+0x227/0x270
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff810999c6>] mark_lock+0x346/0x410
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8109a7de>] __lock_acquire+0x61e/0x1660
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81099893>] ? mark_lock+0x213/0x410
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8109bed7>] lock_acquire+0x97/0x170
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffffa0228990>] ? xhci_stop_endpoint_command_watchdog+0x30/0x340 [xhci_hcd]
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81501b46>] _raw_spin_lock+0x46/0x80
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffffa0228990>] ? xhci_stop_endpoint_command_watchdog+0x30/0x340 [xhci_hcd]
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffffa0228990>] xhci_stop_endpoint_command_watchdog+0x30/0x340 [xhci_hcd]
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8106abf2>] ? run_timer_softirq+0x162/0x570
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8106ac9d>] run_timer_softirq+0x20d/0x570
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8106abf2>] ? run_timer_softirq+0x162/0x570
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffffa0228960>] ? xhci_queue_isoc_tx_prepare+0x8e0/0x8e0 [xhci_hcd]
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff810604d2>] __do_softirq+0xf2/0x3f0
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81020edd>] ? lapic_next_event+0x1d/0x30
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81090d4e>] ? clockevents_program_event+0x5e/0x90
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8150ce6c>] call_softirq+0x1c/0x30
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8100484d>] do_softirq+0x8d/0xc0
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8105ff35>] irq_exit+0xe5/0x100
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8150d65e>] smp_apic_timer_interrupt+0x6e/0x99
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8150b6f0>] apic_timer_interrupt+0x70/0x80
    Oct 18 21:41:17 dhcp47-74 kernel: <EOI> [<ffffffff81095d8d>] ? trace_hardirqs_off+0xd/0x10
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff812ddb76>] ? acpi_idle_enter_bm+0x227/0x25b
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff812ddb71>] ? acpi_idle_enter_bm+0x222/0x25b
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff813eda63>] cpuidle_idle_call+0x103/0x290
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81002155>] cpu_idle+0xe5/0x160
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff814e7f50>] rest_init+0xe0/0xf0
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff814e7e70>] ? csum_partial_copy_generic+0x170/0x170
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81df8e23>] start_kernel+0x3fc/0x407
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81df8321>] x86_64_start_reservations+0x131/0x135
    Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81df8412>] x86_64_start_kernel+0xed/0xf4
    Oct 18 21:41:17 dhcp47-74 kernel: xhci_hcd 0000:00:14.0: xHCI host not responding to stop endpoint command.
    Oct 18 21:41:17 dhcp47-74 kernel: xhci_hcd 0000:00:14.0: Assuming host is dying, halting host.
    Oct 18 21:41:17 dhcp47-74 kernel: xhci_hcd 0000:00:14.0: HC died; cleaning up
    Oct 18 21:41:17 dhcp47-74 kernel: usb 3-4: device descriptor read/8, error -110
    Oct 18 21:41:17 dhcp47-74 kernel: usb 3-4: device descriptor read/8, error -22
    Oct 18 21:41:17 dhcp47-74 kernel: hub 3-0:1.0: cannot disable port 4 (err = -19)

    Basically what is happening is in xhci_stop_endpoint_command_watchdog()
    the xhci->lock is grabbed with just spin_lock. What lockdep deduces is
    that if an interrupt occurred while in this function it would deadlock
    with xhci_irq because that function also grabs the xhci->lock.

    Fixing it is trivial by using spin_lock_irqsave instead.

    This should be queued to stable kernels as far back as 2.6.33.

    Signed-off-by: Don Zickus <email address hidden>
    Signed-off-by: Sarah Sharp <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 88079a41ec43968a7be7d25f11de6d0ab3942b95
Author: Don Zickus <email address hidden>
Date: Thu Nov 3 09:07:18 2011 -0400

    usb, xhci: Clear warm reset change event during init

    commit 79c3dd8150fd5236d95766a9e662e3e932b462c9 upstream.

    I noticed on my Panther Point system that I wasn't getting hotplug events
    for my usb3.0 disk on a usb3 port. I tracked it down to the fact that the
    system had the warm reset change bit still set. This seemed to block future
    events from being received, including a hotplug event.

    Clearing this bit during initialization allowed the hotplug event to be
    received and the disk to be recognized correctly.

    This patch should be backported to kernels as old as 2.6.39.

    Signed-off-by: Don Zickus <email address hidden>
    Signed-off-by: Sarah Sharp <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 4e2b692943de7392100f3e1463522366f810ae83
Author: Sarah Sharp <email address hidden>
Date: Thu Nov 3 13:06:08 2011 -0700

    xhci: Set slot and ep0 flags for address command.

    commit d31c285b3a71cf9056e6a060de41f37780b0af86 upstream.

    Matt's AsMedia xHCI host controller was responding with a Context Error
    to an address device command after a configured device reset. Some
    sequence of events leads both the slot and endpoint zero add flags
    cleared to zero, which the AsMedia host doesn't like:

    [ 223.701839] xhci_hcd 0000:03:00.0: Slot ID 1 Input Context:
    [ 223.701841] xhci_hcd 0000:03:00.0: @ffff880137b25000 (virt) @ffffc000 (dma) 0x000000 - drop flags
    [ 223.701843] xhci_hcd 0000:03:00.0: @ffff880137b25004 (virt) @ffffc004 (dma) 0x000000 - add flags
    [ 223.701846] xhci_hcd 0000:03:00.0: @ffff880137b25008 (virt) @ffffc008 (dma) 0x000000 - rsvd2[0]
    [ 223.701848] xhci_hcd 0000:03:00.0: @ffff880137b2500c (virt) @ffffc00c (dma) 0x000000 - rsvd2[1]
    [ 223.701850] xhci_hcd 0000:03:00.0: @ffff880137b25010 (virt) @ffffc010 (dma) 0x000000 - rsvd2[2]
    [ 223.701852] xhci_hcd 0000:03:00.0: @ffff880137b25014 (virt) @ffffc014 (dma) 0x000000 - rsvd2[3]
    [ 223.701854] xhci_hcd 0000:03:00.0: @ffff880137b25018 (virt) @ffffc018 (dma) 0x000000 - rsvd2[4]
    [ 223.701857] xhci_hcd 0000:03:00.0: @ffff880137b2501c (virt) @ffffc01c (dma) 0x000000 - rsvd2[5]
    [ 223.701858] xhci_hcd 0000:03:00.0: Slot Context:
    [ 223.701860] xhci_hcd 0000:03:00.0: @ffff880137b25020 (virt) @ffffc020 (dma) 0x8400000 - dev_info
    [ 223.701862] xhci_hcd 0000:03:00.0: @ffff880137b25024 (virt) @ffffc024 (dma) 0x010000 - dev_info2
    [ 223.701864] xhci_hcd 0000:03:00.0: @ffff880137b25028 (virt) @ffffc028 (dma) 0x000000 - tt_info
    [ 223.701866] xhci_hcd 0000:03:00.0: @ffff880137b2502c (virt) @ffffc02c (dma) 0x000000 - dev_state
    [ 223.701869] xhci_hcd 0000:03:00.0: @ffff880137b25030 (virt) @ffffc030 (dma) 0x000000 - rsvd[0]
    [ 223.701871] xhci_hcd 0000:03:00.0: @ffff880137b25034 (virt) @ffffc034 (dma) 0x000000 - rsvd[1]
    [ 223.701873] xhci_hcd 0000:03:00.0: @ffff880137b25038 (virt) @ffffc038 (dma) 0x000000 - rsvd[2]
    [ 223.701875] xhci_hcd 0000:03:00.0: @ffff880137b2503c (virt) @ffffc03c (dma) 0x000000 - rsvd[3]
    [ 223.701877] xhci_hcd 0000:03:00.0: Endpoint 00 Context:
    [ 223.701879] xhci_hcd 0000:03:00.0: @ffff880137b25040 (virt) @ffffc040 (dma) 0x000000 - ep_info
    [ 223.701881] xhci_hcd 0000:03:00.0: @ffff880137b25044 (virt) @ffffc044 (dma) 0x2000026 - ep_info2
    [ 223.701883] xhci_hcd 0000:03:00.0: @ffff880137b25048 (virt) @ffffc048 (dma) 0xffffe8e0 - deq
    [ 223.701885] xhci_hcd 0000:03:00.0: @ffff880137b25050 (virt) @ffffc050 (dma) 0x000000 - tx_info
    [ 223.701887] xhci_hcd 0000:03:00.0: @ffff880137b25054 (virt) @ffffc054 (dma) 0x000000 - rsvd[0]
    [ 223.701889] xhci_hcd 0000:03:00.0: @ffff880137b25058 (virt) @ffffc058 (dma) 0x000000 - rsvd[1]
    [ 223.701892] xhci_hcd 0000:03:00.0: @ffff880137b2505c (virt) @ffffc05c (dma) 0x000000 - rsvd[2]
    ...
    [ 223.701927] xhci_hcd 0000:03:00.0: // Ding dong!
    [ 223.701992] xhci_hcd 0000:03:00.0: Setup ERROR: address device command for slot 1.

    The xHCI spec says that both flags must be set to one for the Address
    Device command. When the device is first enumerated,
    xhci_setup_addressable_virt_dev() does set those flags. However, when
    the device is addressed after it has been reset in the configured state,
    xhci_setup_addressable_virt_dev() is not called, and
    xhci_copy_ep0_dequeue_into_input_ctx() is called instead. That function
    relies on the flags being set up by previous commands, which apparently
    isn't a good assumption.

    Move the setting of the flags into the common parent function.

    This should be queued for stable kernels as old as 2.6.35, since that
    was the first introduction of xhci_copy_ep0_dequeue_into_input_ctx.

    Signed-off-by: Sarah Sharp <email address hidden>
    Tested-by: Matt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 5bccc0d01594bef09e120a2fe3e1d48a1d74bcfe
Author: Claudio Scordino <email address hidden>
Date: Thu Nov 17 11:08:32 2011 +0100

    drivers/base/node.c: fix compilation error with older versions of gcc

    commit 91a13c281d7d4648c0b32dede11a0144c4e7984c upstream.

    Patch to fix the error message "directives may not be used inside a macro
    argument" which appears when the kernel is compiled for the cris architecture.

    Signed-off-by: Claudio Scordino <email address hidden>
    Acked-by: David Rientjes <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit c528b7244efaf55654b6a196234c1d3b43d29108
Author: Axel Lin <email address hidden>
Date: Mon Oct 31 10:20:28 2011 +0800

    pcie-gadget-spear: Add "platform:" prefix for platform modalias

    commit 161f14191dc166c4e3f37f68af1bc199c6868b7d upstream.

    Since 43cc71eed1250755986da4c0f9898f9a635cb3bf (platform: prefix MODALIAS
    with "platform:"), the platform modalias is prefixed with "platform:".

    Signed-off-by: Axel Lin <email address hidden>
    Acked-by: Pratyush Anand <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 46e18b7f722c2e4e9c4764774a2932debf35ece2
Author: Wu Fengguang <email address hidden>
Date: Tue Nov 22 16:58:35 2011 +0800

    ALSA: hda - fix ELD memory leak

    Backported from commit b95d68b8179764e29558b75cec35ef4a6a98925b.

    memset(eld) clears eld->proc_entry which will leak the struct
    snd_info_entry when unloading module.

    Fix it by
    - memset only the fields before eld->eld_buffer
    - set eld->eld_valid to true _after_ all eld fields have been filled

    Cc: Pierre-louis Bossart <email address hidden>
    Acked-by: Stephen Warren <email address hidden>
    Signed-off-by: Wu Fengguang <email address hidden>
    Signed-off-by: Takashi Iwai <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 0d2c754e96311f4968e13d1f1744b7c2e2ad3442
Author: Jeff Layton <email address hidden>
Date: Fri Nov 4 13:31:21 2011 -0400

    nfs: when attempting to open a directory, fall back on normal lookup (try #5)

    commit 1788ea6e3b2a58cf4fb00206e362d9caff8d86a7 upstream.

    commit d953126 changed how nfs_atomic_lookup handles an -EISDIR return
    from an OPEN call. Prior to that patch, that caused the client to fall
    back to doing a normal lookup. When that patch went in, the code began
    returning that error to userspace. The d_revalidate codepath however
    never had the corresponding change, so it was still possible to end up
    with a NULL ctx->state pointer after that.

    That patch caused a regression. When we attempt to open a directory that
    does not have a cached dentry, that open now errors out with EISDIR. If
    you attempt the same open with a cached dentry, it will succeed.

    Fix this by reverting the change in nfs_atomic_lookup and allowing
    attempts to open directories to fall back to a normal lookup

    Also, add a NFSv4-specific f_ops->open routine that just returns
    -ENOTDIR. This should never be called if things are working properly,
    but if it ever is, then the dprintk may help in debugging.

    To facilitate this, a new file_operations field is also added to the
    nfs_rpc_ops struct.

    Signed-off-by: Jeff Layton <email address hidden>
    Signed-off-by: Trond Myklebust <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit e901cc458a35b928f240dd3c1e3a565bfb4efa90
Author: Jiri Slaby <email address hidden>
Date: Wed Nov 16 16:27:09 2011 +0100

    TTY: ldisc, wait for ldisc infinitely in hangup

    commit 0c73c08ec73dbe080b9ec56696ee21d32754d918 upstream.

    For /dev/console case, we do not kill all ldisc users. It's due to
    redirected_tty_write test in __tty_hangup. In that case there still
    might be a process waiting e.g. in n_tty_read for input.

    We wait for such processes to disappear. The problem is that we use a
    timeout. After this timeout, we continue closing the ldisc and start
    freeing tty resources. It obviously leads to crashes when the other
    process is woken.

    So to fix this, we wait infinitely before reiniting the ldisc. (The
    tiocsetd remains untouched -- times out after 5s.)

    This is nicely reproducible with this run from shell:
      exec 0<>/dev/console 1<>/dev/console 2<>/dev/console
    and stopping a getty like:
      systemctl stop <email address hidden>

    The crash proper may be produced only under load or with constified
    timing the same as for 92f6fa09b.

    Signed-off-by: Jiri Slaby <email address hidden>
    Cc: Dave Young <email address hidden>
    Cc: Dave Jones <email address hidden>
    Cc: Ben Hutchings <email address hidden>
    Cc: Dmitriy Matrosov <email address hidden>
    Cc: Alan Cox <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit bb4006e04c27d6204da8b535be575d71c265875d
Author: Jiri Slaby <email address hidden>
Date: Wed Nov 16 16:27:08 2011 +0100

    TTY: ldisc, move wait idle to caller

    commit 300420722e0734a4254f3b634e0f82664495d210 upstream.

    It is the only place where reinit is called from. And we really need
    to wait for the old ldisc to go once. Actually this is the place where
    the waiting originally was (before removed and re-added later).

    This will make the fix in the following patch easier to implement.

    Signed-off-by: Jiri Slaby <email address hidden>
    Cc: Dave Young <email address hidden>
    Cc: Dave Jones <email address hidden>
    Cc: Ben Hutchings <email address hidden>
    Cc: Dmitriy Matrosov <email address hidden>
    Cc: Alan Cox <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit d21ada2ca367042fc5a1a11a2c2703e04c93211d
Author: Jiri Slaby <email address hidden>
Date: Wed Nov 16 16:27:07 2011 +0100

    TTY: ldisc, allow waiting for ldisc arbitrarily long

    commit df92d0561de364de53c42abc5d43e04ab6f326a5 upstream.

    To fix a nasty bug in ldisc hup vs. reinit we need to wait infinitely
    long for ldisc to be gone. So here we add a parameter to
    tty_ldisc_wait_idle to allow that.

    This is only a preparation for the real fix which is done in the
    following patches.

    Signed-off-by: Jiri Slaby <email address hidden>
    Cc: Dave Young <email address hidden>
    Cc: Dave Jones <email address hidden>
    Cc: Ben Hutchings <email address hidden>
    Cc: Dmitriy Matrosov <email address hidden>
    Cc: Alan Cox <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 5a25cbde3ff3fafa1f48a00a37ed3fda278b5641
Author: Stephen Boyd <email address hidden>
Date: Tue Oct 25 19:19:43 2011 -0700

    tty: hvc_dcc: Fix duplicate character inputs

    commit c2a3e84f950e7ddba1f3914b005861d46ae60359 upstream.

    Reading from the DCC grabs a character from the buffer and
    clears the status bit. Since this is a context-changing
    operation, instructions following the character read that rely on
    the status bit being accurate need to be synchronized with an
    ISB.

    In this case, the status bit check needs to execute after the
    character read otherwise we run the risk of reading the character
    and checking the status bit before the read can clear the status
    bit in the first place. When this happens, the user will see the
    same character they typed twice, instead of once.

    Add an ISB after the read and the write, so that the status check
    is synchronized with the read/write operations.

    Signed-off-by: Stephen Boyd <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 39e005fc9f29c3afc6eedb52cf02e7a3aec38c2f
Author: Tomoya MORINAGA <email address hidden>
Date: Fri Oct 28 09:38:49 2011 +0900

    pch_uart: Support new device LAPIS Semiconductor ML7831 IOH

    commit 8249f743f732ccbc3056428945ab1d9bd36d46bf upstream.

    ML7831 is companion chip for Intel Atom E6xx series.

    Signed-off-by: Tomoya MORINAGA <email address hidden>
    Acked-by: Alan Cox <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 091fb7d008800a6e3d9831ace030af3370d3a307
Author: Tomoya MORINAGA <email address hidden>
Date: Fri Nov 11 10:55:27 2011 +0900

    pch_uart: Fix DMA resource leak issue

    commit 90f04c2926cfb5bf74533b0a7766bc896f6a0c0e upstream.

    Changing UART mode PIO->DMA->PIO->DMA like below, pch_uart driver can't get
    DMA channel resource.

    setserial /dev/ttyPCH0 ^low_latency
    setserial /dev/ttyPCH0 low_latency

    CAUSE:
    Changing mode using setserial command, ".startup" function which gets DMA
    channel is called before ".verify_port" function which sets
    dma-flag(use_dma/use_dma_flag) as 1.

    PIO->DMA
      .startup: Since dma-flag is 0, DMA channel is not requested.
      .verify_port: dma-flag is set as 1.
      .shutdown: N/A

    DMA->PIO
      .startup: Since dma-flag is 1, DMA channel is requested.
      .verify_port: dma-flag is set as 0.
      .shutdown: Since dma-flag is 0, DMA channel is not released.

    This means DMA channel resource leak occurs.
    Next time, this driver can't get DMA channel resource forever.

    MODIFICATION:
      Currently, when release DMA channel resource, this driver checks dma-flag.
      However, this specification occurs the above issue.
      This driver must check whether dma_request_channel is executed or not.
      The values are saved in private data variable "chan_tx/chan_tx".
      These variables mean if the value is NULL, DMA channel is not requested,
      if not NULL, DMA channel is requested.

    This patch fixes the issue.

    Signed-off-by: Tomoya MORINAGA <email address hidden>
    Acked-by: Alan Cox <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 81aaad2ca2193def671c16559a136b91d0d923f6
Author: Tomoya MORINAGA <email address hidden>
Date: Thu Oct 27 15:45:18 2011 +0900

    pch_uart: Fix hw-flow control issue

    commit a1d7cfe29f13cf45f8094929864b9c66bf0cd91b upstream.

    Using hardware flow control,
    currently, register of the control-bit(AFE) is not set.
    This patch fixes the issue.

    Signed-off-by: Tomoya MORINAGA <email address hidden>
    Acked-by: Alan Cox <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 9b0c37ef53515e6b88be1fae31e3e951911365ca
Author: Tomoya MORINAGA <email address hidden>
Date: Fri Nov 11 10:12:18 2011 +0900

    pch_phub: Fix MAC address writing issue for LAPIS ML7831

    commit 2a9887919457c6e1bd482e8448223be59d19010a upstream.

    ISSUE:
    Using ML7831, MAC address writing doesn't work well.

    CAUSE:
    ML7831 and EG20T have the same register map for MAC address access.
    However, this driver processes the writing the same as ML7223.
    This is not true.
    This driver must process the writing the same as EG20T.
    This patch fixes the issue.

    Signed-off-by: Tomoya MORINAGA <email address hidden>
    Cc: Masayuki Ohtak <email address hidden>
    Cc: Alexander Stein <email address hidden>
    Cc: Denis Turischev <email address hidden>
    Signed-off-by: Andrew Morton <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 94e595f0a54e30ea9622246faf8fd188f8868230
Author: Tomoya MORINAGA <email address hidden>
Date: Fri Oct 28 09:33:13 2011 +0900

    pch_phub: Support new device LAPIS Semiconductor ML7831 IOH

    commit 584ad00ce4bfe594e4c4a89944b3c635187a1ca1 upstream.

    ML7831 is companion chip for Intel Atom E6xx series.

    Signed-off-by: Tomoya MORINAGA <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit a896cd19d7569c9754a75fea01f4c68e355697af
Author: Peter Chen <email address hidden>
Date: Tue Nov 15 21:52:29 2011 +0100

    PM / driver core: disable device's runtime PM during shutdown

    commit af8db1508f2c9f3b6e633e2d2d906c6557c617f9 upstream.

    There may be an issue when the user issue "reboot/shutdown" command, then
    the device has shut down its hardware, after that, this runtime-pm featured
    device's driver will probably be scheduled to do its suspend routine,
    and at its suspend routine, it may access hardware, but the device has
    already shutdown physically, then the system hang may be occurred.

    I ran out this issue using an auto-suspend supported USB devices, like
    3G modem, keyboard. The usb runtime suspend routine may be scheduled
    after the usb controller has been shut down, and the usb runtime suspend
    routine will try to suspend its roothub(controller), it will access
    register, then the system hang occurs as the controller is shutdown.

    Signed-off-by: Peter Chen <email address hidden>
    Acked-by: Ming Lei <email address hidden>
    Acked-by: Greg Kroah-Hartman <email address hidden>
    Signed-off-by: Rafael J. Wysocki <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 268cd0526224188d8d36b7071e0630ae145e88bc
Author: Josh Boyer <email address hidden>
Date: Thu Nov 10 15:10:23 2011 +0000

    ip6_tunnel: copy parms.name after register_netdevice

    commit 731abb9cb27aef6013ce60808a04e04a545f3f4e upstream.

    Commit 1c5cae815d removed an explicit call to dev_alloc_name in ip6_tnl_create
    because register_netdevice will now create a valid name. This works for the
    net_device itself.

    However the tunnel keeps a copy of the name in the parms structure for the
    ip6_tnl associated with the tunnel. parms.name is set by copying the net_device
    name in ip6_tnl_dev_init_gen. That function is called from ip6_tnl_dev_init in
    ip6_tnl_create, but it is done before register_netdevice is called so the name
    is set to a bogus value in the parms.name structure.

    This shows up if you do a simple tunnel add, followed by a tunnel show:

    [root@localhost ~]# ip -6 tunnel add remote fec0::100 local fec0::200
    [root@localhost ~]# ip -6 tunnel show
    ip6tnl0: ipv6/ipv6 remote :: local :: encaplimit 0 hoplimit 0 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
    ip6tnl%d: ipv6/ipv6 remote fec0::100 local fec0::200 encaplimit 4 hoplimit 64 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
    [root@localhost ~]#

    Fix this by moving the strcpy out of ip6_tnl_dev_init_gen, and calling it after
    register_netdevice has successfully returned.

    Signed-off-by: Josh Boyer <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 1d8fdb8410ef5aca16ddf01c1176358c9154bcfa
Author: Luis R. Rodriguez <email address hidden>
Date: Tue Nov 8 14:28:06 2011 -0800

    cfg80211: fix bug on regulatory core exit on access to last_request

    commit 58ebacc66bd11be2327edcefc79de94bd6f5bb4a upstream.

    Commit 4d9d88d1 by Scott James Remnant <email address hidden> added
    the .uevent() callback for the regulatory device used during
    the platform device registration. The change was done to account
    for queuing up udev change requests through udevadm triggers.
    The change also meant that upon regulatory core exit we will now
    send a uevent() but the uevent() callback, reg_device_uevent(),
    also accessed last_request. Right before commiting device suicide
    we free'd last_request but never set it to NULL so
    platform_device_unregister() would lead to bogus kernel paging
    request. Fix this and also simply supress uevents right before
    we commit suicide as they are pointless.

    This fix is required for kernels >= v2.6.39

    $ git describe --contains 4d9d88d1
    v2.6.39-rc1~468^2~25^2^2~21

    The impact of not having this present is that a bogus paging
    access may occur (only read) upon cfg80211 unload time. You
    may also get this BUG complaint below. Although Johannes
    could not reproduce the issue this fix is theoretically correct.

    mac80211_hwsim: unregister radios
    mac80211_hwsim: closing netlink
    BUG: unable to handle kernel paging request at ffff88001a06b5ab
    IP: [<ffffffffa030df9a>] reg_device_uevent+0x1a/0x50 [cfg80211]
    PGD 1836063 PUD 183a063 PMD 1ffcb067 PTE 1a06b160
    Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
    CPU 0
    Modules linked in: cfg80211(-) [last unloaded: mac80211]

    Pid: 2279, comm: rmmod Tainted: G W 3.1.0-wl+ #663 Bochs Bochs
    RIP: 0010:[<ffffffffa030df9a>] [<ffffffffa030df9a>] reg_device_uevent+0x1a/0x50 [cfg80211]
    RSP: 0000:ffff88001c5f9d58 EFLAGS: 00010286
    RAX: 0000000000000000 RBX: ffff88001d2eda88 RCX: ffff88001c7468fc
    RDX: ffff88001a06b5a0 RSI: ffff88001c7467b0 RDI: ffff88001c7467b0
    RBP: ffff88001c5f9d58 R08: 000000000000ffff R09: 000000000000ffff
    R10: 0000000000000000 R11: 0000000000000001 R12: ffff88001c7467b0
    R13: ffff88001d2eda78 R14: ffffffff8164a840 R15: 0000000000000001
    FS: 00007f8a91d8a6e0(0000) GS:ffff88001fc00000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: ffff88001a06b5ab CR3: 000000001c62e000 CR4: 00000000000006f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Process rmmod (pid: 2279, threadinfo ffff88001c5f8000, task ffff88000023c780)
    Stack:
     ffff88001c5f9d98 ffffffff812ff7e5 ffffffff8176ab3d ffff88001c7468c2
     000000000000ffff ffff88001d2eda88 ffff88001c7467b0 ffff880000114820
     ffff88001c5f9e38 ffffffff81241dc7 ffff88001c5f9db8 ffffffff81040189
    Call Trace:
     [<ffffffff812ff7e5>] dev_uevent+0xc5/0x170
     [<ffffffff81241dc7>] kobject_uevent_env+0x1f7/0x490
     [<ffffffff81040189>] ? sub_preempt_count+0x29/0x60
     [<ffffffff814cab1a>] ? _raw_spin_unlock_irqrestore+0x4a/0x90
     [<ffffffff81305307>] ? devres_release_all+0x27/0x60
     [<ffffffff8124206b>] kobject_uevent+0xb/0x10
     [<ffffffff812fee27>] device_del+0x157/0x1b0
     [<ffffffff8130377d>] platform_device_del+0x1d/0x90
     [<ffffffff81303b76>] platform_device_unregister+0x16/0x30
     [<ffffffffa030fffd>] regulatory_exit+0x5d/0x180 [cfg80211]
     [<ffffffffa032bec3>] cfg80211_exit+0x2b/0x45 [cfg80211]
     [<ffffffff8109a84c>] sys_delete_module+0x16c/0x220
     [<ffffffff8108a23e>] ? trace_hardirqs_on_caller+0x7e/0x120
     [<ffffffff814cba02>] system_call_fastpath+0x16/0x1b
    Code: <all your base are belong to me>
    RIP [<ffffffffa030df9a>] reg_device_uevent+0x1a/0x50 [cfg80211]
     RSP <ffff88001c5f9d58>
    CR2: ffff88001a06b5ab
    ---[ end trace 147c5099a411e8c0 ]---

    Reported-by: Johannes Berg <email address hidden>
    Cc: Scott James Remnant <email address hidden>
    Signed-off-by: Luis R. Rodriguez <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 2ebd38f358b941add49441bad15cb75217a0f08b
Author: Johannes Berg <email address hidden>
Date: Thu Nov 3 09:27:01 2011 +0100

    nl80211: fix HT capability attribute validation

    commit 6c7394197af90f6a332180e33f5d025d3037d883 upstream.

    Since the NL80211_ATTR_HT_CAPABILITY attribute is
    used as a struct, it needs a minimum, not maximum
    length. Enforce that properly. Not doing so could
    potentially lead to reading after the buffer.

    Signed-off-by: Johannes Berg <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 76ba12ddde1d6d4694f6b887d960bb69d338cadf
Author: Johannes Berg <email address hidden>
Date: Tue Nov 8 13:04:41 2011 +0100

    mac80211: fix bug in ieee80211_build_probe_req

    commit 5b2bbf75a24d6b06afff6de0eb4819413fd81971 upstream.

    ieee80211_probereq_get() can return NULL in
    which case we should clean up & return NULL
    in ieee80211_build_probe_req() as well.

    Signed-off-by: Johannes Berg <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 4a4d69f0ec7cf7afdcc4346cf6bc8d3835358df8
Author: Johannes Berg <email address hidden>
Date: Tue Nov 8 12:28:33 2011 +0100

    mac80211: fix NULL dereference in radiotap code

    commit f8d1ccf15568268c76f913b45ecdd33134387f1a upstream.

    When receiving failed PLCP frames is enabled, there
    won't be a rate pointer when we add the radiotap
    header and thus the kernel will crash. Fix this by
    not assuming the rate pointer is always valid. It's
    still always valid for frames that have good PLCP
    though, and that is checked & enforced.

    This was broken by my
    commit fc88518916793af8ad6a02e05ff254d95c36d875
    Author: Johannes Berg <email address hidden>
    Date: Fri Jul 30 13:23:12 2010 +0200

        mac80211: don't check rates on PLCP error frames

    where I removed the check in this case but didn't
    take into account that the rate info would be used.

    Reported-by: Xiaokang Qin <email address hidden>
    Signed-off-by: Johannes Berg <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 7aa8983f0b2c57c25de227909072fe4f8edaa9ad
Author: Gertjan van Wingerde <email address hidden>
Date: Sat Nov 12 19:10:44 2011 +0100

    rt2x00: Fix sleep-while-atomic bug in powersaving code.

    commit ed66ba472a742cd8df37d7072804b2111cdb1014 upstream.

    The generic powersaving code that determines after reception of a frame
    whether the device should go back to sleep or whether is could stay
    awake was calling rt2x00lib_config directly from RX tasklet context.
    On a number of the devices this call can actually sleep, due to having
    to confirm that the sleeping commands have been executed successfully.

    Fix this by moving the call to rt2x00lib_config to a workqueue call.

    This fixes bug https://bugzilla.redhat.com/show_bug.cgi?id=731672

    Tested-by: Tomas Trnka <email address hidden>
    Signed-off-by: Gertjan van Wingerde <email address hidden>
    Acked-by: Ivo van Doorn <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit b426a8365ad707b0f700923a5c464c3b7fed234a
Author: Jesper Juhl <email address hidden>
Date: Sun Nov 13 22:14:32 2011 +0100

    Net, libertas: Resolve memory leak in if_spi_host_to_card()

    commit fe09b32a4361bea44169b2063e8c867cabb6a8ba upstream.

    If we hit the default case in the switch in if_spi_host_to_card() we'll leak
    the memory we allocated for 'packet'. This patch resolves the leak by freeing
    the allocated memory in that case.

    Signed-off-by: Jesper Juhl <email address hidden>
    Acked-by: Dan Williams <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 92fd7a89888fc223337fe5fd5dc83b79e1174340
Author: Catalin Marinas <email address hidden>
Date: Mon Nov 7 18:05:53 2011 +0100

    ARM: 7150/1: Allow kernel unaligned accesses on ARMv6+ processors

    commit 8428e84d42179c2a00f5f6450866e70d802d1d05 upstream.

    Recent gcc versions generate unaligned accesses by default on ARMv6 and
    later processors. This patch ensures that the SCTLR.A bit is always
    cleared on such processors to avoid kernel traping before
    alignment_init() is called.

    Signed-off-by: Catalin Marinas <email address hidden>
    Tested-by: John Linn <email address hidden>
    Acked-by: Nicolas Pitre <email address hidden>
    Signed-off-by: Russell King <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 57a3b9c22b828434d282b6f7a29d39a65d964b49
Author: Cornelia Huck <email address hidden>
Date: Thu Nov 17 11:00:41 2011 +0100

    KVM: s390: Fix RUNNING flag misinterpretation

    commit 9e6dabeffd1d0ec2aa19aa076c4886067238d442 upstream.

    CPUSTAT_RUNNING was implemented signifying that a vcpu is not stopped.
    This is not, however, what the architecture says: RUNNING should be
    set when the host is acting on the behalf of the guest operating
    system.

    CPUSTAT_RUNNING has been changed to be set in kvm_arch_vcpu_load()
    and to be unset in kvm_arch_vcpu_put().

    For signifying stopped state of a vcpu, a host-controlled bit has
    been used and is set/unset basically on the reverse as the old
    CPUSTAT_RUNNING bit (including pushing it down into stop handling
    proper in handle_stop()).

    Signed-off-by: Cornelia Huck <email address hidden>
    Signed-off-by: Carsten Otte <email address hidden>
    Signed-off-by: Avi Kivity <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 97e14e742aa276048fa3b5456abec665799e25c0
Author: Tony Jago <email address hidden>
Date: Fri Aug 12 00:19:11 2011 -0300

    saa7164: Add support for another HVR2200 hardware revision

    commit 62dd28d0c659db29bdb89cfe9f0aefe42f0adfe9 upstream.

    Hauppauge have released a new model rev, sub id 8940, this adds
    support.

    [<email address hidden>: I modified Tony's patch slightly in relation to the
     card numbering in saa7164.h, appending rather than inserting the new card
     - normal practise]
    Signed-off-by: Tony Jago <email address hidden>
    Signed-off-by: Steven Toth <email address hidden>
    Signed-off-by: Mauro Carvalho Chehab <email address hidden>
    Signed-off-by: Stefan Bader <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 49d1df8852cb97340c7b0fa31f4aa9be6ec8b759
Author: Vasily Averin <email address hidden>
Date: Fri Nov 11 13:42:16 2011 +0400

    aacraid: controller hangs if kernel uses non-default ASPM policy

    commit cf16123c9c8e346ed1dd171295a678d77648d7f8 upstream.

    Aacraid controller can hang on some nodes if kernel uses non-default
    (powersave) ASPM policy. Controller hangs shortly after successful load and
    hardware detection. Scsi error handler detects this hang and tries to restart
    hardware but it does not help.

    Initially it was noticed on RHEL6-based openVZ kernel after backporting
    aacraid driver from mainline (RHEL6 kernel with original driver works well)
    http://bugzilla.openvz.org/show_bug.cgi?id=2043

    This issue happens because default ASPM policy was changed in Red Hat
    kernels. Therefore guys from Red Hat have noticed this problem long time ago:
    on Fedora 12
     https://bugzilla.redhat.com/show_bug.cgi?id=540478
    on Fedora 14
     https://bugzilla.redhat.com/show_bug.cgi?id=679385

    In RHEL6 kernel this issue was fixed, ASPM was disabled in aacraid driver. In
    kernel changelog I've found that seems it was done by Matthew Garrett: -
    [scsi] aacraid: Disable ASPM by default (Matthew Garrett) [599735]

    However seems this patch was not submitted to mainline. I've reproduced this
    issue on vanilla 3.1.0 kernel booted with "pcie_aspm.policy=powersave" option,
    So I believe it makes sense to do it now.

    Signed-off-by: Vasily Averin <email address hidden>
    [mjg: Checking the Windows drivers indicates that they disable ASPM under all
    circumstances, so:]
    Acked-by: Matthew Garrett <email address hidden>
    Acked-by: Achim Leubner <email address hidden>
    Signed-off-by: James Bottomley <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 611397f62fe6879f675587e62aa44b5a2a251569
Author: Matthew Garrett <email address hidden>
Date: Fri Nov 11 11:14:23 2011 -0500

    hpsa: Disable ASPM

    commit e5a44df85e8d78e5c2d3d2e4f59b460905691e2f upstream.

    The Windows driver .inf disables ASPM on hpsa devices. Do the same because the
    selection of a non default ASPM policy can cause the device to hang.

    Signed-off-by: Matthew Garrett <email address hidden>
    Acked-by: Mike Miller <email address hidden>
    Signed-off-by: James Bottomley <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit bf6f111b5e891b4cfbd4f966488fd824543ba2aa
Author: James Bottomley <email address hidden>
Date: Mon Nov 7 08:51:24 2011 -0600

    fix WARNING: at drivers/scsi/scsi_lib.c:1704

    commit 4e6c82b3614a18740ef63109d58743a359266daf upstream.

    On Mon, 2011-11-07 at 17:24 +1100, Stephen Rothwell wrote:
    > Hi all,
    >
    > Starting some time last week I am getting the following during boot on
    > our PPC970 blade:
    >
    > calling .ipr_init+0x0/0x68 @ 1
    > ipr: IBM Power RAID SCSI Device Driver version: 2.5.2 (April 27, 2011)
    > ipr 0000:01:01.0: Found IOA with IRQ: 26
    > ipr 0000:01:01.0: Starting IOA initialization sequence.
    > ipr 0000:01:01.0: Adapter firmware version: 06160039
    > ipr 0000:01:01.0: IOA initialized.
    > scsi0 : IBM 572E Storage Adapter
    > ------------[ cut here ]------------
    > WARNING: at drivers/scsi/scsi_lib.c:1704
    > Modules linked in:
    > NIP: c00000000053b3d4 LR: c00000000053e5b0 CTR: c000000000541d70
    > REGS: c0000000783c2f60 TRAP: 0700 Not tainted (3.1.0-autokern1)
    > MSR: 8000000000029032 <EE,ME,CE,IR,DR> CR: 24002024 XER: 20000002
    > TASK = c0000000783b8000[1] 'swapper' THREAD: c0000000783c0000 CPU: 0
    > GPR00: 0000000000000001 c0000000783c31e0 c000000000cf38b0 c00000000239a9d0
    > GPR04: c000000000cbe8f8 0000000000000000 c0000000783c3040 0000000000000000
    > GPR08: c000000075daf488 c000000078a3b7ff c000000000bcacc8 0000000000000000
    > GPR12: 0000000044002028 c000000007ffb000 0000000002e40000 000000000099b800
    > GPR16: 0000000000000000 c000000000bba5fc c000000000a61db8 0000000000000000
    > GPR20: 0000000001b77200 0000000000000000 c000000078990000 0000000000000001
    > GPR24: c000000002396828 0000000000000000 0000000000000000 c000000078a3b938
    > GPR28: fffffffffffffffa c0000000008ad2c0 c000000000c7faa8 c00000000239a9d0
    > NIP [c00000000053b3d4] .scsi_free_queue+0x24/0x90
    > LR [c00000000053e5b0] .scsi_alloc_sdev+0x280/0x2e0
    > Call Trace:
    > [c0000000783c31e0] [c000000000c7faa8] wireless_seq_fops+0x278d0/0x2eb88 (unreliable)
    > [c0000000783c3270] [c00000000053e5b0] .scsi_alloc_sdev+0x280/0x2e0
    > [c0000000783c3330] [c00000000053eba0] .scsi_probe_and_add_lun+0x390/0xb40
    > [c0000000783c34a0] [c00000000053f7ec] .__scsi_scan_target+0x16c/0x650
    > [c0000000783c35f0] [c00000000053fd90] .scsi_scan_channel+0xc0/0x100
    > [c0000000783c36a0] [c00000000053fefc] .scsi_scan_host_selected+0x12c/0x1c0
    > [c0000000783c3750] [c00000000083dcb4] .ipr_probe+0x2c0/0x390
    > [c0000000783c3830] [c0000000003f50b4] .local_pci_probe+0x34/0x50
    > [c0000000783c38a0] [c0000000003f5f78] .pci_device_probe+0x148/0x150
    > [c0000000783c3950] [c0000000004e1e8c] .driver_probe_device+0xdc/0x210
    > [c0000000783c39f0] [c0000000004e20cc] .__driver_attach+0x10c/0x110
    > [c0000000783c3a80] [c0000000004e1228] .bus_for_each_dev+0x98/0xf0
    > [c0000000783c3b30] [c0000000004e1bf8] .driver_attach+0x28/0x40
    > [c0000000783c3bb0] [c0000000004e07d8] .bus_add_driver+0x218/0x340
    > [c0000000783c3c60] [c0000000004e2a2c] .driver_register+0x9c/0x1b0
    > [c0000000783c3d00] [c0000000003f62d4] .__pci_register_driver+0x64/0x140
    > [c0000000783c3da0] [c000000000b99f88] .ipr_init+0x4c/0x68
    > [c0000000783c3e20] [c00000000000ad24] .do_one_initcall+0x1a4/0x1e0
    > [c0000000783c3ee0] [c000000000b512d0] .kernel_init+0x14c/0x1fc
    > [c0000000783c3f90] [c000000000022468] .kernel_thread+0x54/0x70
    > Instruction dump:
    > ebe1fff8 7c0803a6 4e800020 7c0802a6 fba1ffe8 fbe1fff8 7c7f1b78 f8010010
    > f821ff71 e8030398 3120ffff 7c090110 <0b000000> e86303b0 482de065 60000000
    > ---[ end trace 759bed76a85e8dec ]---
    > scsi 0:0:1:0: Direct-Access IBM-ESXS MAY2036RC T106 PQ: 0 ANSI: 5
    > ------------[ cut here ]------------
    >
    > I get lots more of these. The obvious commit to point the finger at
    > is 3308511c93e6 ("[SCSI] Make scsi_free_queue() kill pending SCSI
    > commands") but the root cause may be something different.

    Caused by

    commit f7c9c6bb14f3104608a3a83cadea10a6943d2804
    Author: Anton Blanchard <email address hidden>
    Date: Thu Nov 3 08:56:22 2011 +1100

        [SCSI] Fix block queue and elevator memory leak in scsi_alloc_sdev

    Doesn't completely do the teardown. The true fix is to do a proper
    teardown instead of hand rolling it

    Reported-by: Stephen Rothwell <email address hidden>
    Tested-by: Stephen Rothwell <email address hidden>
    Signed-off-by: James Bottomley <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit ea054a92dcd97d4f26694f7535912fc82bf0e7a9
Author: Takashi Iwai <email address hidden>
Date: Wed Nov 16 18:05:11 2011 +0100

    ALSA: hda - Fix the connection selection of ADCs on Cirrus codecs

    commit 05ee7964a470d29889ac48cc8274c1b5a1904a11 upstream.

    spec->cur_adc isn't set until cs_capture_pcm_prepare() is called although
    the driver tries to select the connection at init time and at auto-mic
    switch. This results in the access to the widget NID 0, which is
    obviously invalid, also a wrong capture source.

    This patch fixes the issue by issuing the connect-select verb conditionally
    at appropriate places.

    Reported-and-tested-by: Dylan Reid <email address hidden>
    Signed-off-by: Takashi Iwai <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit d6b8bd1b2d0950cd59f52d260bc7e97b04600b94
Author: Edward Donovan <email address hidden>
Date: Tue Nov 1 15:29:44 2011 -0400

    genirq: Fix irqfixup, irqpoll regression

    commit c75d720fca8a91ce99196d33adea383621027bf2 upstream.

    commit d05c65fff0 ("genirq: spurious: Run only one poller at a time")
    introduced a regression, leaving the boot options 'irqfixup' and
    'irqpoll' non-functional. The patch placed tests in each function, to
    exit if the function is already running. The test in 'misrouted_irq'
    exited when it should have proceeded, effectively disabling
    'misrouted_irq' and 'poll_spurious_irqs'.

    The check for an already running poller needs to be "!= 1" not "== 1"
    as "1" is the value when the first poller starts running.

    Signed-off-by: Edward Donovan <email address hidden>
    Cc: <email address hidden>
    Link: http://lkml<email address hidden>
    Signed-off-by: Thomas Gleixner <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit a6253934bbe858fca204c0b41fa9cddb6f80ab2d
Author: Greg Kroah-Hartman <email address hidden>
Date: Mon Nov 21 14:47:46 2011 -0800

    Linux 3.1.2

commit 742b42b9e87b64b2d2b54826dd3761897e71502d
Author: Ben Hutchings <email address hidden>
Date: Sun Nov 13 19:58:09 2011 +0100

    block: Always check length of all iov entries in blk_rq_map_user_iov()

    commit 6b76106d8ef31111d6fc469564b83b5f5542794f upstream.

    Even after commit 5478755616ae2ef1ce144dded589b62b2a50d575
    ("block: check for proper length of iov entries earlier ...")
    we still won't check for zero-length entries after an unaligned
    entry. Remove the break-statement, so all entries are checked.

    Signed-off-by: Ben Hutchings <email address hidden>
    Signed-off-by: Jens Axboe <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 5831e11b2e21372bf384ecc9ee3398fe5b8eaf6a
Author: Rabin Vincent <email address hidden>
Date: Fri Nov 11 13:29:04 2011 +0100

    backing-dev: ensure wakeup_timer is deleted

    commit 7a401a972df8e184b3d1a3fc958c0a4ddee8d312 upstream.

    bdi_prune_sb() in bdi_unregister() attempts to removes the bdi links
    from all super_blocks and then del_timer_sync() the writeback timer.

    However, this can race with __mark_inode_dirty(), leading to
    bdi_wakeup_thread_delayed() rearming the writeback timer on the bdi
    we're unregistering, after we've called del_timer_sync().

    This can end up with the bdi being freed with an active timer inside it,
    as in the case of the following dump after the removal of an SD card.

    Fix this by redoing the del_timer_sync() in bdi_destory().

     ------------[ cut here ]------------
     WARNING: at /home/rabin/kernel/arm/lib/debugobjects.c:262 debug_print_object+0x9c/0xc8()
     ODEBUG: free active (active state 0) object type: timer_list hint: wakeup_timer_fn+0x0/0x180
     Modules linked in:
     Backtrace:
     [<c00109dc>] (dump_backtrace+0x0/0x110) from [<c0236e4c>] (dump_stack+0x18/0x1c)
      r6:c02bc638 r5:00000106 r4:c79f5d18 r3:00000000
     [<c0236e34>] (dump_stack+0x0/0x1c) from [<c0025e6c>] (warn_slowpath_common+0x54/0x6c)
     [<c0025e18>] (warn_slowpath_common+0x0/0x6c) from [<c0025f28>] (warn_slowpath_fmt+0x38/0x40)
      r8:20000013 r7:c780c6f0 r6:c031613c r5:c780c6f0 r4:c02b1b29
     r3:00000009
     [<c0025ef0>] (warn_slowpath_fmt+0x0/0x40) from [<c015eb4c>] (debug_print_object+0x9c/0xc8)
      r3:c02b1b29 r2:c02bc662
     [<c015eab0>] (debug_print_object+0x0/0xc8) from [<c015f574>] (debug_check_no_obj_freed+0xac/0x1dc)
      r6:c7964000 r5:00000001 r4:c7964000
     [<c015f4c8>] (debug_check_no_obj_freed+0x0/0x1dc) from [<c00a9e38>] (kmem_cache_free+0x88/0x1f8)
     [<c00a9db0>] (kmem_cache_free+0x0/0x1f8) from [<c014286c>] (blk_release_queue+0x70/0x78)
     [<c01427fc>] (blk_release_queue+0x0/0x78) from [<c015290c>] (kobject_release+0x70/0x84)
      r5:c79641f0 r4:c796420c
     [<c015289c>] (kobject_release+0x0/0x84) from [<c0153ce4>] (kref_put+0x68/0x80)
      r7:00000083 r6:c74083d0 r5:c015289c r4:c796420c
     [<c0153c7c>] (kref_put+0x0/0x80) from [<c01527d0>] (kobject_put+0x48/0x5c)
      r5:c79643b4 r4:c79641f0
     [<c0152788>] (kobject_put+0x0/0x5c) from [<c013ddd8>] (blk_cleanup_queue+0x68/0x74)
      r4:c7964000
     [<c013dd70>] (blk_cleanup_queue+0x0/0x74) from [<c01a6370>] (mmc_blk_put+0x78/0xe8)
      r5:00000000 r4:c794c400
     [<c01a62f8>] (mmc_blk_put+0x0/0xe8) from [<c01a64b4>] (mmc_blk_release+0x24/0x38)
      r5:c794c400 r4:c0322824
     [<c01a6490>] (mmc_blk_release+0x0/0x38) from [<c00de11c>] (__blkdev_put+0xe8/0x170)
      r5:c78d5e00 r4:c74083c0
     [<c00de034>] (__blkdev_put+0x0/0x170) from [<c00de2c0>] (blkdev_put+0x11c/0x12c)
      r8:c79f5f70 r7:00000001 r6:c74083d0 r5:00000083 r4:c74083c0
     r3:00000000
     [<c00de1a4>] (blkdev_put+0x0/0x12c) from [<c00b0724>] (kill_block_super+0x60/0x6c)
      r7:c7942300 r6:c79f4000 r5:00000083 r4:c74083c0
     [<c00b06c4>] (kill_block_super+0x0/0x6c) from [<c00b0a94>] (deactivate_locked_super+0x44/0x70)
      r6:c79f4000 r5:c031af64 r4:c794dc00 r3:c00b06c4
     [<c00b0a50>] (deactivate_locked_super+0x0/0x70) from [<c00b1358>] (deactivate_super+0x6c/0x70)
      r5:c794dc00 r4:c794dc00
     [<c00b12ec>] (deactivate_super+0x0/0x70) from [<c00c88b0>] (mntput_no_expire+0x188/0x194)
      r5:c794dc00 r4:c7942300
     [<c00c8728>] (mntput_no_expire+0x0/0x194) from [<c00c95e0>] (sys_umount+0x2e4/0x310)
      r6:c7942300 r5:00000000 r4:00000000 r3:00000000
     [<c00c92fc>] (sys_umount+0x0/0x310) from [<c000d940>] (ret_fast_syscall+0x0/0x30)
     ---[ end trace e5c83c92ada51c76 ]---

    Signed-off-by: Rabin Vincent <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>
    Signed-off-by: Jens Axboe <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 3549966c02c99f02ac0dd74364a4e795296d6d7e
Author: Anton Blanchard <email address hidden>
Date: Mon Nov 14 12:54:47 2011 +0000

    powerpc: Copy down exception vectors after feature fixups

    commit d715e433b7ad19c02fc4becf0d5e9a59f97925de upstream.

    kdump fails because we try to execute an HV only instruction. Feature
    fixups are being applied after we copy the exception vectors down to 0
    so they miss out on any updates.

    We have always had this issue but it only became critical in v3.0
    when we added CFAR support (breaks POWER5) and v3.1 when we added
    POWERNV (breaks everyone).

    Signed-off-by: Anton Blanchard <email address hidden>
    Signed-off-by: Benjamin Herrenschmidt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit fed595473900bb9cdaf88cb56eb01b07f771f14f
Author: Michael Neuling <email address hidden>
Date: Wed Nov 9 20:39:49 2011 +0000

    powerpc: Add hvcall.h include to book3s_hv.c

    commit de1d9248eadd27539eba449b4d09428252e80c04 upstream.

    If you build with KVM and UP it fails with the following due to a
    missing include.

    /arch/powerpc/kvm/book3s_hv.c: In function 'do_h_register_vpa':
    arch/powerpc/kvm/book3s_hv.c:156:10: error: 'H_PARAMETER' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:156:10: note: each undeclared identifier is reported only once for each function it appears in
    arch/powerpc/kvm/book3s_hv.c:192:12: error: 'H_RESOURCE' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:222:9: error: 'H_SUCCESS' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c: In function 'kvmppc_pseries_do_hcall':
    arch/powerpc/kvm/book3s_hv.c:228:30: error: 'H_SUCCESS' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:232:7: error: 'H_CEDE' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:234:7: error: 'H_PROD' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:238:10: error: 'H_PARAMETER' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:250:7: error: 'H_CONFER' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:252:7: error: 'H_REGISTER_VPA' undeclared (first use in this function)
    make[2]: *** [arch/powerpc/kvm/book3s_hv.o] Error 1

    Signed-off-by: Michael Neuling <email address hidden>
    Signed-off-by: Benjamin Herrenschmidt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 9c24bb2008643ecd7588a20fd5ac7e8491f7c5d4
Author: Geoff Levand <email address hidden>
Date: Tue Nov 8 12:37:26 2011 +0000

    powerpc/ps3: Fix lost SMP IPIs

    commit 72f3bea075287785ed32b777b6dd2636aa7002e8 upstream.

    Fixes the PS3 bootup hang introduced in 3.0-rc1 by:

      commit 317f394160e9beb97d19a84c39b7e5eb3d7815a
      sched: Move the second half of ttwu() to the remote cpu

    Move the PS3's LV1 EOI call lv1_end_of_interrupt_ext() from ps3_chip_eoi()
    to ps3_get_irq() for IPI messages.

    If lv1_send_event_locally() is called between a previous call to
    lv1_send_event_locally() and the coresponding call to
    lv1_end_of_interrupt_ext() the second event will not be delivered to the
    target cpu.

    The PS3's SMP IPIs are implemented using lv1_send_event_locally(), so if two
    IPI messages of the same type are sent to the same target in a relatively
    short period of time the second IPI event can become lost when
    lv1_end_of_interrupt_ext() is called from ps3_chip_eoi().

    Signed-off-by: Geoff Levand <email address hidden>
    Signed-off-by: Benjamin Herrenschmidt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 8bb72ab63d58957270b2dc31e6c9bcfa38470d2c
Author: Dan Carpenter <email address hidden>
Date: Fri Nov 4 21:24:36 2011 +0300

    xen-gntalloc: signedness bug in add_grefs()

    commit 99cb2ddcc617f43917e94a4147aa3ccdb2bcd77e upstream.

    gref->gref_id is unsigned so the error handling didn't work.
    gnttab_grant_foreign_access() returns an int type, so we can add a
    cast here, and it doesn't cause any problems.
    gnttab_grant_foreign_access() can return a variety of errors
    including -ENOSPC, -ENOSYS and -ENOMEM.

    Signed-off-by: Dan Carpenter <email address hidden>
    Signed-off-by: Konrad Rzeszutek Wilk <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 1b4f3a211878328065ee7ae79a380241bedaef5a
Author: Dan Carpenter <email address hidden>
Date: Fri Nov 4 21:24:08 2011 +0300

    xen-gntalloc: integer overflow in gntalloc_ioctl_alloc()

    commit 21643e69a4c06f7ef155fbc70e3fba13fba4a756 upstream.

    On 32 bit systems a high value of op.count could lead to an integer
    overflow in the kzalloc() and gref_ids would be smaller than
    expected. If the you triggered another integer overflow in
    "if (gref_size + op.count > limit)" then you'd probably get memory
    corruption inside add_grefs().

    Signed-off-by: Dan Carpenter <email address hidden>
    Signed-off-by: Konrad Rzeszutek Wilk <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 14fa9e2f0916742bf436e84895a3523551d325f5
Author: Zhenzhong Duan <email address hidden>
Date: Thu Oct 27 22:28:59 2011 -0700

    xen:pvhvm: enable PVHVM VCPU placement when using more than 32 CPUs.

    commit 90d4f5534d14815bd94c10e8ceccc57287657ecc upstream.

    PVHVM running with more than 32 vcpus and pv_irq/pv_time enabled
    need VCPU placement to work, or else it will softlockup.

    Acked-by: Stefano Stabellini <email address hidden>
    Signed-off-by: Zhenzhong Duan <email address hidden>
    Signed-off-by: Konrad Rzeszutek Wilk <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 19340174d730574e9a6c119d1c9c6cbb501165a8
Author: Thomas Weber <email address hidden>
Date: Mon Sep 5 11:26:33 2011 +0200

    mfd: Fix twl4030 dependencies for audio codec

    commit f09ee0451a44a4e913a7c3cec3805508f7de6c54 upstream.

    The codec for Devkit8000 (TWL4030) was not detected except
    when build with CONFIG_SND_SOC_ALL_CODECS.

    twl-core.c still uses the CONFIG_TWL4030_CODEC for
    twl_has_codec().

    In commit 57fe7251f5bfc4332f24479376de48a1e8ca6211
    the CONFIG_TWL4030_CODEC was renamed
    into CONFIG_MFD_TWL4030_AUDIO, thatswhy the codec
    was not detected.

    This patch renames the CONFIG_ TWL4030_CODEC into
    CONFIG_MFD_TWL4030_AUDIO in twl-core.c.

    Signed-off-by: Thomas Weber <email address hidden>
    Acked-by: Peter Ujfalusi <email address hidden>
    Signed-off-by: Samuel Ortiz <email address hidden>
    Cc: Jarkko Nikula <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 261a21ff99fb3cef1958b30e4456866ec4427b5b
Author: Rafał Miłecki <email address hidden>
Date: Tue Nov 8 17:15:03 2011 +0100

    b43: refuse to load unsupported firmware

    [This patch is supposed to be applied in 3.1 (and maybe older) branches only.]

    New kernels support newer firmware that users may try to incorrectly use
    with older kernels. Display error and explain the problem in such a case

    Signed-off-by: Rafał Miłecki <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 7608d6b743d5347a01d0afc1b2f8f863a21ebb01
Author: Arend van Spriel <email address hidden>
Date: Tue Aug 23 14:14:00 2011 +0200

    staging: brcm80211: fill in proper rx rate in mac80211 rx status

    commit 5a84d6ad4c9306afb467a600a4c6d7b50da49440 upstream.

    The brcmsmac driver supports different rates on 5GHz but this is not
    taken into account when providing the rate index in the receive
    status information passed to mac80211.

    Reviewed-by: Roland Vossen <email address hidden>
    Reviewed-by: Pieter-Paul Giesberts <email address hidden>
    Reviewed-by: Henry Ptasinski <email address hidden>
    Signed-off-by: Arend van Spriel <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit e7829936ef31adc774aecf5f35037725b6c0e29b
Author: Alex Deucher <email address hidden>
Date: Mon Nov 14 09:33:56 2011 -0500

    drm/radeon: add some missing FireMV pci ids

    commit b872a37437e93df9d112ce674752b3b3a0a17020 upstream.

    Noticed by Egbert.

    Signed-off-by: Alex Deucher <email address hidden>
    Cc: Egbert Eich <email address hidden>
    Signed-off-by: Dave Airlie <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 1c08c931337ba435bf9140f43a20b26e64085cea
Author: Johan Hovold <email address hidden>
Date: Tue Nov 15 14:35:52 2011 -0800

    Revert "leds: save the delay values after a successful call to blink_set()"

    commit cb871513f656bdfc48b185b55f37857b5c750c40 upstream.

    Revert commit 6123b0e274503a0d3588e84fbe07c9aa01bfaf5d.

    The problem this patch intends to solve has alreadqy been fixed by
    commit 7a5caabd090b ("drivers/leds/ledtrig-timer.c: fix broken sysfs
    delay handling").

    Signed-off-by: Johan Hovold <email address hidden>
    Cc: Antonio Ospite <email address hidden>
    Cc: Johannes Berg <email address hidden>
    Cc: Richard Purdie <email address hidden>
    Signed-off-by: Andrew Morton <email address hidden>
    Signed-off-by: Linus Torvalds <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit b8988229c7eed0ac7967fa212a2a3a5c832e7902
Author: Dan Carpenter <email address hidden>
Date: Mon Nov 14 17:52:08 2011 +0300

    hfs: add sanity check for file name length

    commit bc5b8a9003132ae44559edd63a1623b7b99dfb68 upstream.

    On a corrupted file system the ->len field could be wrong leading to
    a buffer overflow.

    Reported-and-acked-by: Clement LECIGNE <email address hidden>
    Signed-off-by: Dan Carpenter <email address hidden>
    Signed-off-by: Linus Torvalds <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit d18c0efc9b76aad26000bb562037a9b675f1c0ae
Author: David Howells <email address hidden>
Date: Tue Nov 15 22:09:45 2011 +0000

    KEYS: Fix a NULL pointer deref in the user-defined key type

    commit 9f35a33b8d06263a165efe3541d9aa0cdbd70b3b upstream.

    Fix a NULL pointer deref in the user-defined key type whereby updating a
    negative key into a fully instantiated key will cause an oops to occur
    when the code attempts to free the non-existent old payload.

    This results in an oops that looks something like the following:

      BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
      IP: [<ffffffff81085fa1>] __call_rcu+0x11/0x13e
      PGD 3391d067 PUD 3894a067 PMD 0
      Oops: 0002 [#1] SMP
      CPU 1
      Pid: 4354, comm: keyctl Not tainted 3.1.0-fsdevel+ #1140 /DG965RY
      RIP: 0010:[<ffffffff81085fa1>] [<ffffffff81085fa1>] __call_rcu+0x11/0x13e
      RSP: 0018:ffff88003d591df8 EFLAGS: 00010246
      RAX: 0000000000000000 RBX: 0000000000000000 RCX: 000000000000006e
      RDX: ffffffff8161d0c0 RSI: 0000000000000000 RDI: 0000000000000000
      RBP: ffff88003d591e18 R08: 0000000000000000 R09: ffffffff8152fa6c
      R10: 0000000000000000 R11: 0000000000000300 R12: ffff88003b8f9538
      R13: ffffffff8161d0c0 R14: ffff88003b8f9d50 R15: ffff88003c69f908
      FS: 00007f97eb18c720(0000) GS:ffff88003bd00000(0000) knlGS:0000000000000000
      CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 0000000000000008 CR3: 000000003d47a000 CR4: 00000000000006e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Process keyctl (pid: 4354, threadinfo ffff88003d590000, task ffff88003c78a040)
      Stack:
       ffff88003e0ffde0 ffff88003b8f9538 0000000000000001 ffff88003b8f9d50
       ffff88003d591e28 ffffffff810860f0 ffff88003d591e68 ffffffff8117bfea
       ffff88003d591e68 ffffffff00000000 ffff88003e0ffde1 ffff88003e0ffde0
      Call Trace:
       [<ffffffff810860f0>] call_rcu_sched+0x10/0x12
       [<ffffffff8117bfea>] user_update+0x8d/0xa2
       [<ffffffff8117723a>] key_create_or_update+0x236/0x270
       [<ffffffff811789b1>] sys_add_key+0x123/0x17e
       [<ffffffff813b84bb>] system_call_fastpath+0x16/0x1b

    Signed-off-by: David Howells <email address hidden>
    Acked-by: Jeff Layton <email address hidden>
    Acked-by: Neil Horman <email address hidden>
    Acked-by: Steve Dickson <email address hidden>
    Acked-by: James Morris <email address hidden>
    Signed-off-by: Linus Torvalds <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit f80f33817c973746ca0187713404461b80ef5d2d
Author: Takashi Iwai <email address hidden>
Date: Tue Nov 8 17:50:27 2011 +0100

    ALSA: usb-audio - Fix the missing volume quirks at delayed init

    commit dcaaf9f2c16b56f8bb316881fcd3f15c18fc71e7 upstream.

    In the recent usb-audio driver, the initialization of volume ranges
    may be delayed when the device doesn't respond well at the probing time.
    But the volume quirks for certain devices are applied only in
    mixer_ctl_feature_info() thus only at the very first probe and will be
    missing when the volume range is initialized later.

    This patch moves the volume quirk code to be always called from the
    volume-range extraction (get_min_max()), so that the quirks are properly
    applied in the later init time.

    Reported-and-tested-by: Alexey Fisher <email address hidden>
    Signed-off-by: Takashi Iwai <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 3485c041be44cfcbe8681a9d79f16d9aaac17529
Author: Takashi Iwai <email address hidden>
Date: Fri Aug 19 08:30:53 2011 +0200

    ALSA: usb-audio - Check the dB-range validity in the later read, too

    commit 9fcd0ab130579d9742538340edda3225f2b49a3e upstream.

    When the initial check of dB-range failed due to the read error, try to
    check again at the later read, too. When an invalid dB range is found,
    remove TLV flags and notify the mixer info change.

    Signed-off-by: Takashi Iwai <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit d047c6e8a7bfa830bca0741a0e38b1edc42b13b7
Author: Alex Deucher <email address hidden>
Date: Tue Nov 8 10:09:58 2011 -0500

    drm/radeon/kms: make an aux failure debug only

    commit 091264f0bc12419560ac64fcef4567809d611658 upstream.

    Can happen when there is no DP panel attached, confusing
    users. Make it debug only.

    Signed-off-by: Alex Deucher <email address hidden>
    Signed-off-by: Dave Airlie <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 68e7aac26cb758d7417d6689f35f2edba6f18751
Author: Marcin Slusarz <email address hidden>
Date: Fri Sep 9 14:16:42 2011 +0200

    drm/nouveau: initialize chan->fence.lock before use

    commit 5e60ee780e792efe6dce97eceb110b1d30bab850 upstream.

    Fence lock needs to be initialized before any call to nouveau_channel_put
    because it calls nouveau_channel_idle->nouveau_fence_update which uses
    fence lock.

    BUG: spinlock bad magic on CPU#0, test/24134
     lock: ffff88019f90dba8, .magic: 00000000, .owner: <none>/-1, .owner_cpu: 0
    Pid: 24134, comm: test Not tainted 3.0.0-nv+ #800
    Call Trace:
     spin_bug+0x9c/0xa3
     do_raw_spin_lock+0x29/0x13c
     _raw_spin_lock+0x1e/0x22
     nouveau_fence_update+0x2d/0xf1
     nouveau_channel_idle+0x22/0xa0
     nouveau_channel_put_unlocked+0x84/0x1bd
     nouveau_channel_put+0x20/0x24
     nouveau_channel_alloc+0x4ec/0x585
     nouveau_ioctl_fifo_alloc+0x50/0x130
     drm_ioctl+0x289/0x361
     do_vfs_ioctl+0x4dd/0x52c
     sys_ioctl+0x42/0x65
     system_call_fastpath+0x16/0x1b

    It's easily triggerable from userspace.

    Additionally remove double initialization of chan->fence.pending.

    Signed-off-by: Marcin Slusarz <email address hidden>
    Signed-off-by: Ben Skeggs <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 650dd7ecc14205705292eb95fe73c2d2a1db3173
Author: Eric Anholt <email address hidden>
Date: Mon Oct 31 23:16:21 2011 -0700

    drm/i915: Fix object refcount leak on mmappable size limit error path.

    commit 14660ccd599dc7bd6ecef17408bd76dc853f9b77 upstream.

    I've been seeing memory leaks on my system in the form of large
    (300-400MB) GEM objects created by now-dead processes laying around
    clogging up memory. I usually notice when it gets to about 1.2GB of
    them. Hopefully this clears up the issue, but I just found this bug
    by inspection.

    Signed-off-by: Eric Anholt <email address hidden>
    Signed-off-by: Keith Packard <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit aa85ae0189ef4d47456fa03a65359a7f81eabbed
Author: Nobuhiro Iwamatsu <email address hidden>
Date: Fri Nov 4 22:13:50 2011 +0900

    sh: Fix cached/uncaced address calculation in 29bit mode

    commit dfd3b596fbbfa48b8e7966ef996d587157554b69 upstream.

    In the case of 29bit mode, CAC/UNCAC_ADDR does not return a right address.
    This revises this problem by using P1SEGADDR and P2SEGADDR in 29bit mode.

    Reported-by: Yutaro Ebihara <email address hidden>
    Signed-off-by: Nobuhiro Iwamatsu <email address hidden>
    Tested-by: Kuninori Morimoto <email address hidden>
    Tested-by: Simon Horman <email address hidden>
    Signed-off-by: Paul Mundt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit d8f0e58a227e8659a357e12f0774ea63e36fd453
Author: Mark Brown <email address hidden>
Date: Fri Nov 4 15:52:31 2011 +0000

    ASoC: Don't use wm8994->control_data in wm8994_readable_register()

    commit 8eeea521d9d0fa6afd62df8c6e6566ee946117fa upstream.

    The field is no longer initialised so this will crash if running on
    wm8958.

    Reported-by: Thomas Abraham <email address hidden>
    Signed-off-by: Mark Brown <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit cf80307d470c66deaba601f9b55b617ca7ffc457
Author: Jochen Friedrich <email address hidden>
Date: Tue Oct 25 20:51:06 2011 +0200

    ARM: at91: Fix USBA gadget registration

    commit dd0b3825495a2e7a8cd6cf0ec077618c008ac7c4 upstream.

    Since 193ab2a6070039e7ee2b9b9bebea754a7c52fd1b, various AT91 boards don't
    register USBA adapters anymore due to depending on a now non-existing
    symbol. Fix the symbol name.

    Signed-off-by: Jochen Friedrich <email address hidden>
    Acked-by: Nicolas Ferre <email address hidden>
    Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 4dc48eb2dd088717e59911663383bf79e1aa33a6
Author: Michael S. Tsirkin <email address hidden>
Date: Mon Nov 7 18:37:05 2011 +0200

    virtio-pci: fix use after free

    commit 72103bd1285211440621f2c46f4fce377584de54 upstream.

    Commit 31a3ddda166cda86d2b5111e09ba4bda5239fae6 introduced
    a use after free in virtio-pci. The main issue is
    that the release method signals removal of the virtio device,
    while remove signals removal of the pci device.

    For example, on driver removal or hot-unplug,
    virtio_pci_release_dev is called before virtio_pci_remove.
    We then might get a crash as virtio_pci_remove tries to use the
    device freed by virtio_pci_release_dev.

    We allocate/free all resources together with the
    pci device, so we can leave the release method empty.

    Signed-off-by: Michael S. Tsirkin <email address hidden>
    Acked-by: Amit Shah <email address hidden>
    Signed-off-by: Rusty Russell <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 435dc21f524e0496863a82104ccec0eea8e3ddff
Author: Takashi Iwai <email address hidden>
Date: Thu Nov 10 12:28:38 2011 +0100

    ALSA: hda - Don't add elements of other codecs to vmaster slave

    commit aeb4b88ec0a948efce8e3a23a8f964d3560a7308 upstream.

    When a virtual mater control is created, the driver looks for slave
    elements from the assigned card instance. But this may include the
    elements of other codecs when multiple codecs are on the same HD-audio
    bus. This works at the first time, but it'll give Oops when it's once
    freed and re-created via reconfig sysfs.

    This patch changes the element-look-up strategy to limit only to the
    mixer elements of the same codec.

    Reported-by: David Henningsson <email address hidden>
    Signed-off-by: Takashi Iwai <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit aa535b5cc1d0e7f9671292392eb34cc0849d2080
Author: Julian Wollrath <email address hidden>
Date: Wed Nov 9 10:02:40 2011 +0100

    ALSA: hda - fix internal mic on Dell Vostro 3500 laptop

    commit f7f9bdfadfda07afb904a9767468e38c2d1a6033 upstream.

    Fix the not working internal mic on Dell Vostro 3500 laptop by introducing the
    new model dell-vostro-3500.

    Signed-off-by: Julian Wollrath <email address hidden>
    Signed-off-by: Takashi Iwai <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

File Description Downloads
download icon CHANGELOG-linux-linaro-3.1-2011.12-1 (md5) Kernel changelog 107
last downloaded 6 weeks ago
download icon linux-linaro-3.1-2011.12-1.tar.bz2 (md5) Kernel release tarball 709
last downloaded 11 weeks ago
Total downloads: 816

3.1-2011.11 (Linaro Linux 3.1-2011.11) release from the 3.1 series released 2011-11-15

Release information
Release notes:

The Linaro Kernel Working Group (KWG) is excited to announce the
availability our October 2011 development snapshot:

linux-linaro-3.1-2011.11-1

As the word "snapshot" implies, these are meant as development kernels
and have not been fully validated. You should expect issues and to help
us deliver a better kernel in the future, please file bugs in Launchpad at
https://bugs.launchpad.net/linux-linaro.

The source tarball is available at:
 http://launchpad.net/linux-linaro/3.1/3.1-2011.11/+download/linux-linaro-3.1-2011.11-0.tar.bz2

The kernel sources can also be accessed using git at:
 git://git.linaro.org/kernel/linux-linaro-3.1.git
 tag: linux-linaro-3.1-2011.11-0

This kernel includes the following changes from the 2011.10 kernel:

- The v3.1.1 stable kernel

- LPAE support from Cat...

File Description Downloads
download icon CHANGELOG-linux-linaro-3.1-2011.11-0 (md5) Kernel changelog 114
last downloaded 46 weeks ago
download icon linux-linaro-3.1-2011.11-0.tar.bz2 (md5) Kernel tarball 491
last downloaded 46 weeks ago
Total downloads: 605

3.1-2011.10 release from the 3.1 series released 2011-10-20

Release information
Release notes:

The Linaro Kernel Working Group (KWG) is excited to announce the
availability our October 2011 development snapshot:

linux-linaro-3.1-2011.10-1

As the word "snapshot" implies, these are meant as development kernels
and have not been fully validated. You should expect issues and to help
us deliver a better kernel in the future, please file bugs in Launchpad at
https://bugs.launchpad.net/linux-linaro.

The source tarball is available at:
 http://launchpad.net/linux-linaro/3.1/3.1-2011.10/+download/linux-linaro-3.1-2011.10-1.tar.bz2

The kernel sources can also be accessed using git at:
 git://git.linaro.org/kernel/linux-linaro-3.1.git
 tag: linux-linaro-3.1-2011.10-1

In addition to an update to the 3.1 (-rc10) kernel, this kernel includes
the following changes that are queued up for 3....

File Description Downloads
download icon linux-linaro-3.1-2011.10-1.tar.bz2 (md5) Linaro 11.10 Kernel Release 452
last downloaded 45 weeks ago
download icon CHANGELOG-linux-linaro-3.0-2011.10-1 (md5) Kernel Change Log 141
last downloaded 25 weeks ago
Total downloads: 593

3.0-2011.09 release from the 3.0 series released 2011-09-22

Release information
Release notes:

The Linaro Kernel Working Group (KWG) is excited to announce the
availability of our September 2011 development snapshot:

linux-linaro-3.0-2011.09-0

As the word "snapshot" implies, these are meant as development kernels
and have not been fully validated. You should expect issues and to help
us deliver a better kernel in the future, please file bugs in Launchpad at
https://bugs.launchpad.net/linux-linaro.

The source tarball is available at:
 http://launchpad.net/linux-linaro/3.0/3.0-2011.09/+download/linux-linaro-3.0-2011.09-0.tar.bz2

The kernel sources can also be accessed using git at:
 git://git.linaro.org/kernel/linux-linaro-3.0.git
 tag: linux-linaro-3.0-2011.09-0

The changes since our 11.08 release include:

- Update to 3.0.4 stable tree

- Fix for https://bugs.launchpad.net/b...

File Description Downloads
download icon linux-linaro-3.0-2011.09-0.tar.bz2 (md5) Kernel tarball 532
last downloaded 26 weeks ago
download icon CHANGELOG-linux-linaro-3.0-2011.09-0 (md5) Kernel changelog 159
last downloaded 20 weeks ago
Total downloads: 691

3.0-2011.08 release from the 3.0 series released 2011-08-19

Release information
Release notes:

The Linaro Kernel Working Group (KWG) is excited to announce the
availability our August 2011 development snapshot:

linux-linaro-3.0-2011.08-0

As the word "snapshot" implies, these are meant as development kernels
and have not been fully validated. You should expect issues and to help
us deliver a better kernel in the future, please file bugs in Launchpad at
https://bugs.launchpad.net/linux-linaro.

The source tarball is available at:
 http://launchpad.net/linux-linaro/3.0/3.0-2011.08/+download/linux-linaro-3.0-2011.08-0.tar.bz2

The kernel sources can also be accessed using git at:
 git://git.linaro.org/kernel/linux-linaro-3.0.git
 tag: linux-linaro-3.0-2011.08-0

The changes since our 11.07 release include:

- Update to 3.0.3 stable tree

- Initial support for Samsung ORIGEN platfo...

File Description Downloads
download icon linux-linaro-3.0-2011.08-0.tar.bz2 (md5) Linux Linaro 2011.08 Source Tarball 405
last downloaded 6 weeks ago
download icon CHANGELOG-linux-linaro-3.0-2011.08-0 (md5) Linux Linaro 2011.08 Changelog 113
last downloaded 15 weeks ago
Total downloads: 518

3.0-2011.07 release from the 3.0 series released 2011-07-25

Release information
Release notes:

The Linaro Kernel Working Group (KWG) is excited to announce the
availability our July 2011 development snapshot:

linux-linaro-3.0-2011.07-1

As the word "snapshot" implies, these are meant as development kernels
and have not been fully validated. You should expect issues and to help
us deliver a better kernel in the future, please file bugs in Launchpad at
https://bugs.launchpad.net/linux-linaro.

The source tarball is available at:
  http://launchpad.net/linux-linaro/3.0/3.0-2011.07/+download/linux-linaro-3.0-2011.07-1.tar.bz2

The kernel sources can also be accessed using git at:
  git://git.linaro.org/kernel/linux-linaro-3.0.git
  tag: linux-linaro-3.0-2011.07-1

This snapshot is based on the 3.0 stable kernel with a number
of changes developed by Linaro and integrated from the 3....

File Description Downloads
download icon CHANGELOG-linux-linaro-3.0-2011.07-1 (md5) Linaro 11.07 Kernel Release 97
last downloaded 46 weeks ago
download icon linux-linaro-3.0-2011.07-1.tar.bz2 (md5) Linaro 11.07 Kernel Release 402
last downloaded 45 weeks ago
Total downloads: 499

2.6.39-2011.06 release from the 2.6.39 series released 2011-06-28

Release information
Release notes:

The Linaro Kernel Working Group (KWG) is excited to announce the
availability our June 2011 development snapshot:

linux-linaro-2.6.39-2011.06-0

As the word "snapshot" implies, these are meant as development kernels
and have not been fully validated. You should expect issues and to help
us deliver a better kernel in the future, please file bugs in Launchpad at
https://bugs.launchpad.net/linux-linaro.

The source tarball is available at:
  http://launchpad.net/linux-linaro/2.6.39/2.6.39-2011.06/+download/linux-linaro-2.6.39-2011.06-0.tar.bz2

The kernel sources can also be accessed using git at:
  git://git.linaro.org/kernel/linux-linaro-2.6.39.git
  tag: linux-linaro-2.6.39-2011.06-0

This snapshot is based on the 2.6.39.1 stable kernel with a number
of changes developed by Linaro and...

File Description Downloads
download icon CHANGELOG-linux-linaro-2.6.39-2011.06-0 (md5) Kernel Change Log 90
last downloaded 12 weeks ago
download icon linux-linaro-2.6.39-2011.06-0.tar.bz2 (md5) Linaro 11.06 Kernel Release 582
last downloaded 46 weeks ago
Total downloads: 672

110 of 11 releases