commit 8499e79e9ee4c946ae38fd12e5d3afe8b68f2dfd
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Tue Jun 19 23:18:30 2012 +0100

    Linux 3.2.21

commit cae016e2cd6bccdab083dd6496126afa82c1dad3
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Thu Jun 14 22:06:36 2012 +0200

    drm/radeon: add some additional 6xx/7xx/EG register init
    
    commit b866d1334ba2d544bc575d75357dea6bdcdc7f46 upstream.
    
    - SMX_SAR_CTL0 needs to be programmed correctly to prevent
    problems with memory exports in certain cases.
    - VC_ENHANCE needs to be initialized on 6xx/7xx.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit e0254df58aa9a0eede8b7f8dc1cb453e8f1e6b5c
Author: Hugh Dickins <hughd@google.com>
Date:   Fri Jun 15 17:55:50 2012 -0700

    swap: fix shmem swapping when more than 8 areas
    
    commit 9b15b817f3d62409290fd56fe3cbb076a931bb0a upstream.
    
    Minchan Kim reports that when a system has many swap areas, and tmpfs
    swaps out to the ninth or more, shmem_getpage_gfp()'s attempts to read
    back the page cannot locate it, and the read fails with -ENOMEM.
    
    Whoops.  Yes, I blindly followed read_swap_header()'s pte_to_swp_entry(
    swp_entry_to_pte()) technique for determining maximum usable swap
    offset, without stopping to realize that that actually depends upon the
    pte swap encoding shifting swap offset to the higher bits and truncating
    it there.  Whereas our radix_tree swap encoding leaves offset in the
    lower bits: it's swap "type" (that is, index of swap area) that was
    truncated.
    
    Fix it by reducing the SWP_TYPE_SHIFT() in swapops.h, and removing the
    broken radix_to_swp_entry(swp_to_radix_entry()) from read_swap_header().
    
    This does not reduce the usable size of a swap area any further, it
    leaves it as claimed when making the original commit: no change from 3.0
    on x86_64, nor on i386 without PAE; but 3.0's 512GB is reduced to 128GB
    per swapfile on i386 with PAE.  It's not a change I would have risked
    five years ago, but with x86_64 supported for ten years, I believe it's
    appropriate now.
    
    Hmm, and what if some architecture implements its swap pte with offset
    encoded below type? That would equally break the maximum usable swap
    offset check.  Happily, they all follow the same tradition of encoding
    offset above type, but I'll prepare a check on that for next.
    
    Reported-and-Reviewed-and-Tested-by: Minchan Kim <minchan@kernel.org>
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 7e86185a3e138974ce88fe75baf3410addafc334
Author: Daniel Mack <zonque@gmail.com>
Date:   Tue Jun 12 20:23:52 2012 +0200

    USB: fix gathering of interface associations
    
    commit b3a3dd074f7053ef824ad077e5331b52220ceba1 upstream.
    
    TEAC's UD-H01 (and probably other devices) have a gap in the interface
    number allocation of their descriptors:
    
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength          220
        bNumInterfaces          3
        [...]
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       0
          [...]
        Interface Association:
          bLength                 8
          bDescriptorType        11
          bFirstInterface         2
          bInterfaceCount         2
          bFunctionClass          1 Audio
          bFunctionSubClass       0
          bFunctionProtocol      32
          iFunction               4
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        2
          bAlternateSetting       0
          [...]
    
    Once a configuration is selected, usb_set_configuration() walks the
    known interfaces of a given configuration and calls find_iad() on
    each of them to set the interface association pointer the interface
    is included in.
    
    The problem here is that the loop variable is taken for the interface
    number in the comparison logic that gathers the association. Which is
    fine as long as the descriptors are sane.
    
    In the case above, however, the logic gets out of sync and the
    interface association fields of all interfaces beyond the interface
    number gap are wrong.
    
    Fix this by passing the interface's bInterfaceNumber to find_iad()
    instead.
    
    Signed-off-by: Daniel Mack <zonque@gmail.com>
    Reported-by: bEN <ml_all@circa.be>
    Reported-by: Ivan Perrone <ivanperrone@hotmail.com>
    Tested-by: ivan perrone <ivanperrone@hotmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d65602a876757353c0a5f9e7fd4c3f8c98477404
Author: Otto Meta <otto.patches@sister-shadow.de>
Date:   Wed Jun 6 18:46:21 2012 +0200

    usb: cdc-acm: fix devices not unthrottled on open
    
    commit 6c4707f3f8c44ec18282e1c014c80e1c257042f9 upstream.
    
    Currently CDC-ACM devices stay throttled when their TTY is closed while
    throttled, stalling further communication attempts after the next open.
    
    Unthrottling during open/activate got lost starting with kernel
    3.0.0 and this patch reintroduces it.
    
    Signed-off-by: Otto Meta <otto.patches@sister-shadow.de>
    Acked-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4dd27dc995567bd95a33956264cc987e03ecc7f9
Author: Ricardo Martins <rasm@fe.up.pt>
Date:   Tue May 22 18:02:03 2012 +0100

    USB: fix PS3 EHCI systems
    
    commit 4f7a67e2dd49fbfba002c453bc24bf00e701cc71 upstream.
    
    After commit aaa0ef289afe9186f81e2340114ea413eef0492a "PS3 EHCI QH
    read work-around", Terratec Grabby (em28xx) stopped working with AMD
    Geode LX 800 (USB controller AMD CS5536). Since this is a PS3 only
    fix, the following patch adds a conditional block around it.
    
    Signed-off-by: Ricardo Martins <rasm@fe.up.pt>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5f081af6cbb83e72194ad3a82623ca42eeb0e662
Author: Geoff Levand <geoff@infradead.org>
Date:   Tue Nov 8 16:01:18 2011 -0800

    usb: PS3 EHCI QH read work-around
    
    commit aaa0ef289afe9186f81e2340114ea413eef0492a upstream.
    
    PS3 EHCI HC errata fix 244.  The SCC EHCI HC will not correctly perform QH
    reads that occur near or span a micro-frame boundry.  This is due to a problem
    in the Nak Count Reload Control logic (EHCI Specification 1.0 Section 4.9.1).
    
    The work-around for this problem is for the HC driver to set I=1 (inactive) for
    QHs with H=1 (list head).
    
    Signed-off-by: Geoff Levand <geoff@infradead.org>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 29623c3e8dd0a0b94f2f3ee6ccb08345acff2b1e
Author: Andiry Xu <andiry.xu@gmail.com>
Date:   Wed Jun 13 10:51:57 2012 +0800

    xHCI: Increase the timeout for controller save/restore state operation
    
    commit 622eb783fe6ff4c1baa47db16c3a5db97f9e6e50 upstream.
    
    When system software decides to power down the xHC with the intent of
    resuming operation at a later time, it will ask xHC to save the internal
    state and restore it when resume to correctly recover from a power event.
    Two bits are used to enable this operation: Save State and Restore State.
    
    xHCI spec 4.23.2 says software should "Set the Controller Save/Restore
    State flag in the USBCMD register and wait for the Save/Restore State
    Status flag in the USBSTS register to transition to '0'". However, it does
    not define how long software should wait for the SSS/RSS bit to transition
    to 0.
    
    Currently the timeout is set to 1ms. There is bug report
    (https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1002697)
    indicates that the timeout is too short for ASMedia ASM1042 host controller
    to save/restore the state successfully. Increase the timeout to 10ms helps to
    resolve the issue.
    
    This patch should be backported to stable kernels as old as 2.6.37, that
    contain the commit 5535b1d5f8885695c6ded783c692e3c0d0eda8ca "USB: xHCI:
    PCI power management implementation"
    
    Signed-off-by: Andiry Xu <andiry.xu@gmail.com>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Cc: Ming Lei <ming.lei@canonical.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a48eb115826dbaaa1b1adab5cc4b763b144d6c7e
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri Jun 1 10:06:24 2012 +0200

    xhci: Don't free endpoints in xhci_mem_cleanup()
    
    commit 32f1d2c536d0c26c5814cb0e6a0606c42d02fac1 upstream.
    
    This patch fixes a few issues introduced in the recent fix
    [f8a9e72d: USB: fix resource leak in xhci power loss path]
    
    - The endpoints listed in bw table are just links and each entry is an
     array member of dev->eps[].  But the commit above adds a kfree() call
     to these instances, and thus it results in memory corruption.
    
    - It clears only the first entry of rh_bw[], but there can be multiple
      ports.
    
    - It'd be safer to clear the list_head of ep as well, not only
      removing from the list, as it's checked in
      xhci_discover_or_reset_device().
    
    This patch should be backported to kernels as old as 3.2, that contain
    the commit 839c817ce67178ca3c7c7ad534c571bba1e69ebe "xhci: Store
    information about roothubs and TTs."
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Reviewed-by: Oliver Neukum <oneukum@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 2fa0005575a80b5977f147577b52fe9b91ca9f17
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri Jun 1 10:06:23 2012 +0200

    xhci: Fix invalid loop check in xhci_free_tt_info()
    
    commit 46ed8f00d8982e49f8fe2c1a9cea192f640cb3ba upstream.
    
    xhci_free_tt_info() may access the invalid memory when it removes the
    last entry but the list is not empty.  Then tt_next reaches to the
    list head but it still tries to check the tt_info of that entry.
    
    This patch fixes the bug and cleans up the messy code by rewriting
    with a simple list_for_each_entry_safe().
    
    This patch should be backported to kernels as old as 3.2, that contain
    the commit 839c817ce67178ca3c7c7ad534c571bba1e69ebe "xhci: Store
    information about roothubs and TTs."
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Reviewed-by: Oliver Neukum <oneukum@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f21c193188e8368ea07d867ad4a02596a888f2ca
Author: Bjørn Mork <bjorn@mork.no>
Date:   Wed May 30 10:00:14 2012 +0200

    USB: serial: Enforce USB driver and USB serial driver match
    
    commit 954c3f8a5f1b7716be9eee978b3bc85bae92d7c8 upstream.
    
    We need to make sure that the USB serial driver we find
    matches the USB driver whose probe we are currently
    executing. Otherwise we will end up with USB serial
    devices bound to the correct serial driver but wrong
    USB driver.
    
    An example of such cross-probing, where the usbserial_generic
    USB driver has found the sierra serial driver:
    
    May 29 18:26:15 nemi kernel: [ 4442.559246] usbserial_generic 4-4:1.0: Sierra USB modem converter detected
    May 29 18:26:20 nemi kernel: [ 4447.556747] usbserial_generic 4-4:1.2: Sierra USB modem converter detected
    May 29 18:26:25 nemi kernel: [ 4452.557288] usbserial_generic 4-4:1.3: Sierra USB modem converter detected
    
    sysfs view of the same problem:
    
    bjorn@nemi:~$ ls -l /sys/bus/usb/drivers/sierra/
    total 0
    --w------- 1 root root 4096 May 29 18:23 bind
    lrwxrwxrwx 1 root root    0 May 29 18:23 module -> ../../../../module/usbserial
    --w------- 1 root root 4096 May 29 18:23 uevent
    --w------- 1 root root 4096 May 29 18:23 unbind
    bjorn@nemi:~$ ls -l /sys/bus/usb-serial/drivers/sierra/
    total 0
    --w------- 1 root root 4096 May 29 18:23 bind
    lrwxrwxrwx 1 root root    0 May 29 18:23 module -> ../../../../module/sierra
    -rw-r--r-- 1 root root 4096 May 29 18:23 new_id
    lrwxrwxrwx 1 root root    0 May 29 18:32 ttyUSB0 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.0/ttyUSB0
    lrwxrwxrwx 1 root root    0 May 29 18:32 ttyUSB1 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.2/ttyUSB1
    lrwxrwxrwx 1 root root    0 May 29 18:32 ttyUSB2 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.3/ttyUSB2
    --w------- 1 root root 4096 May 29 18:23 uevent
    --w------- 1 root root 4096 May 29 18:23 unbind
    
    bjorn@nemi:~$ ls -l /sys/bus/usb/drivers/usbserial_generic/
    total 0
    lrwxrwxrwx 1 root root    0 May 29 18:33 4-4:1.0 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.0
    lrwxrwxrwx 1 root root    0 May 29 18:33 4-4:1.2 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.2
    lrwxrwxrwx 1 root root    0 May 29 18:33 4-4:1.3 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.3
    --w------- 1 root root 4096 May 29 18:33 bind
    lrwxrwxrwx 1 root root    0 May 29 18:33 module -> ../../../../module/usbserial
    --w------- 1 root root 4096 May 29 18:22 uevent
    --w------- 1 root root 4096 May 29 18:33 unbind
    bjorn@nemi:~$ ls -l /sys/bus/usb-serial/drivers/generic/
    total 0
    --w------- 1 root root 4096 May 29 18:33 bind
    lrwxrwxrwx 1 root root    0 May 29 18:33 module -> ../../../../module/usbserial
    -rw-r--r-- 1 root root 4096 May 29 18:33 new_id
    --w------- 1 root root 4096 May 29 18:22 uevent
    --w------- 1 root root 4096 May 29 18:33 unbind
    
    So we end up with a mismatch between the USB driver and the
    USB serial driver.  The reason for the above is simple: The
    USB driver probe will succeed if *any* registered serial
    driver matches, and will use that serial driver for all
    serial driver functions.
    
    This makes ref counting go wrong. We count the USB driver
    as used, but not the USB serial driver.  This may result
    in Oops'es as demonstrated by Johan Hovold <jhovold@gmail.com>:
    
    [11811.646396] drivers/usb/serial/usb-serial.c: get_free_serial 1
    [11811.646443] drivers/usb/serial/usb-serial.c: get_free_serial - minor base = 0
    [11811.646460] drivers/usb/serial/usb-serial.c: usb_serial_probe - registering ttyUSB0
    [11811.646766] usb 6-1: pl2303 converter now attached to ttyUSB0
    [11812.264197] USB Serial deregistering driver FTDI USB Serial Device
    [11812.264865] usbcore: deregistering interface driver ftdi_sio
    [11812.282180] USB Serial deregistering driver pl2303
    [11812.283141] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
    [11812.283272] usbcore: deregistering interface driver pl2303
    [11812.301056] USB Serial deregistering driver generic
    [11812.301186] usbcore: deregistering interface driver usbserial_generic
    [11812.301259] drivers/usb/serial/usb-serial.c: usb_serial_disconnect
    [11812.301823] BUG: unable to handle kernel paging request at f8e7438c
    [11812.301845] IP: [<f8e38445>] usb_serial_disconnect+0xb5/0x100 [usbserial]
    [11812.301871] *pde = 357ef067 *pte = 00000000
    [11812.301957] Oops: 0000 [#1] PREEMPT SMP
    [11812.301983] Modules linked in: usbserial(-) [last unloaded: pl2303]
    [11812.302008]
    [11812.302019] Pid: 1323, comm: modprobe Tainted: G        W    3.4.0-rc7+ #101 Dell Inc. Vostro 1520/0T816J
    [11812.302115] EIP: 0060:[<f8e38445>] EFLAGS: 00010246 CPU: 1
    [11812.302130] EIP is at usb_serial_disconnect+0xb5/0x100 [usbserial]
    [11812.302141] EAX: f508a180 EBX: f508a180 ECX: 00000000 EDX: f8e74300
    [11812.302151] ESI: f5050800 EDI: 00000001 EBP: f5141e78 ESP: f5141e58
    [11812.302160]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
    [11812.302170] CR0: 8005003b CR2: f8e7438c CR3: 34848000 CR4: 000007d0
    [11812.302180] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
    [11812.302189] DR6: ffff0ff0 DR7: 00000400
    [11812.302199] Process modprobe (pid: 1323, ti=f5140000 task=f61e2bc0 task.ti=f5140000)
    [11812.302209] Stack:
    [11812.302216]  f8e3be0f f8e3b29c f8e3ae00 00000000 f513641c f5136400 f513641c f507a540
    [11812.302325]  f5141e98 c133d2c1 00000000 00000000 f509c400 f513641c f507a590 f5136450
    [11812.302372]  f5141ea8 c12f0344 f513641c f507a590 f5141ebc c12f0c67 00000000 f507a590
    [11812.302419] Call Trace:
    [11812.302439]  [<c133d2c1>] usb_unbind_interface+0x51/0x190
    [11812.302456]  [<c12f0344>] __device_release_driver+0x64/0xb0
    [11812.302469]  [<c12f0c67>] driver_detach+0x97/0xa0
    [11812.302483]  [<c12f001c>] bus_remove_driver+0x6c/0xe0
    [11812.302500]  [<c145938d>] ? __mutex_unlock_slowpath+0xcd/0x140
    [11812.302514]  [<c12f0ff9>] driver_unregister+0x49/0x80
    [11812.302528]  [<c1457df6>] ? printk+0x1d/0x1f
    [11812.302540]  [<c133c50d>] usb_deregister+0x5d/0xb0
    [11812.302557]  [<f8e37c55>] ? usb_serial_deregister+0x45/0x50 [usbserial]
    [11812.302575]  [<f8e37c8d>] usb_serial_deregister_drivers+0x2d/0x40 [usbserial]
    [11812.302593]  [<f8e3a6e2>] usb_serial_generic_deregister+0x12/0x20 [usbserial]
    [11812.302611]  [<f8e3acf0>] usb_serial_exit+0x8/0x32 [usbserial]
    [11812.302716]  [<c1080b48>] sys_delete_module+0x158/0x260
    [11812.302730]  [<c110594e>] ? mntput+0x1e/0x30
    [11812.302746]  [<c145c3c3>] ? sysenter_exit+0xf/0x18
    [11812.302746]  [<c107777c>] ? trace_hardirqs_on_caller+0xec/0x170
    [11812.302746]  [<c145c390>] sysenter_do_call+0x12/0x36
    [11812.302746] Code: 24 02 00 00 e8 dd f3 20 c8 f6 86 74 02 00 00 02 74 b4 8d 86 4c 02 00 00 47 e8 78 55 4b c8 0f b6 43 0e 39 f8 7f a9 8b 53 04 89 d8 <ff> 92 8c 00 00 00 89 d8 e8 0e ff ff ff 8b 45 f0 c7 44 24 04 2f
    [11812.302746] EIP: [<f8e38445>] usb_serial_disconnect+0xb5/0x100 [usbserial] SS:ESP 0068:f5141e58
    [11812.302746] CR2: 00000000f8e7438c
    
    Fix by only evaluating serial drivers pointing back to the
    USB driver we are currently probing.  This still allows two
    or more drivers to match the same device, running their
    serial driver probes to sort out which one to use.
    
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Reviewed-by: Felipe Balbi <balbi@ti.com>
    Tested-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 625adc701de3d25f45a0dc25d1fe5aaf1bc9bef7
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Wed Jun 13 11:20:19 2012 -0400

    USB: add NO_D3_DURING_SLEEP flag and revert 151b61284776be2
    
    commit c2fb8a3fa25513de8fedb38509b1f15a5bbee47b upstream.
    
    This patch (as1558) fixes a problem affecting several ASUS computers:
    The machine crashes or corrupts memory when going into suspend if the
    ehci-hcd driver is bound to any controllers.  Users have been forced
    to unbind or unload ehci-hcd before putting their systems to sleep.
    
    After extensive testing, it was determined that the machines don't
    like going into suspend when any EHCI controllers are in the PCI D3
    power state.  Presumably this is a firmware bug, but there's nothing
    we can do about it except to avoid putting the controllers in D3
    during system sleep.
    
    The patch adds a new flag to indicate whether the problem is present,
    and avoids changing the controller's power state if the flag is set.
    Runtime suspend is unaffected; this matters only for system suspend.
    However as a side effect, the controller will not respond to remote
    wakeup requests while the system is asleep.  Hence USB wakeup is not
    functional -- but of course, this is already true in the current state
    of affairs.
    
    A similar patch has already been applied as commit
    151b61284776be2d6f02d48c23c3625678960b97 (USB: EHCI: fix crash during
    suspend on ASUS computers).  The patch supersedes that one and reverts
    it.  There are two differences:
    
    	The old patch added the flag at the USB level; this patch
    	adds it at the PCI level.
    
    	The old patch applied to all chipsets with the same vendor,
    	subsystem vendor, and product IDs; this patch makes an
    	exception for a known-good system (based on DMI information).
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Tested-by: Dâniel Fraga <fragabr@gmail.com>
    Tested-by: Andrey Rahmatullin <wrar@wrar.name>
    Tested-by: Steven Rostedt <rostedt@goodmis.org>
    Reviewed-by: Rafael J. Wysocki <rjw@sisk.pl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 1686a65dce9c39014e28dc77a9ac9abd1efba48c
Author: Roland Dreier <roland@purestorage.com>
Date:   Mon Jun 4 23:24:51 2012 -0700

    target: Return error to initiator if SET TARGET PORT GROUPS emulation fails
    
    commit 59e4f541baf728dbb426949bfa9f6862387ffd0e upstream.
    
    The error paths in target_emulate_set_target_port_groups() are all
    essentially "rc = -EINVAL; goto out;" but the code at "out:" ignores
    rc and always returns success.  This means that even if eg explicit
    ALUA is turned off, the initiator will always see a good SCSI status
    for SET TARGET PORT GROUPS.
    
    Fix this by returning rc as is intended.  It appears this bug was
    added by the following patch:
    
    commit 05d1c7c0d0db4cc25548d9aadebb416888a82327
    Author: Andy Grover <agrover@redhat.com>
    Date:   Wed Jul 20 19:13:28 2011 +0000
    
        target: Make all control CDBs scatter-gather
    
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Cc: Andy Grover <agrover@redhat.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    [bwh: Backported to 3.2: we have transport_complete_task()
     and not target_complete_cmd()]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b9f60ea7bcd215aca12be7989406fd04c43e8adf
Author: 说不得 <gavin.kx@qq.com>
Date:   Mon May 28 21:31:29 2012 +0800

    USB: option: add more YUGA device ids
    
    commit 0ef0be15fd2564767f114c249fc4af704d8e16f4 upstream.
    
    Signed-off-by: gavin zhu <gavin.zhu@qq.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 78eb9cdad95f77edeed29661fd1e2e0f5ab103e6
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue May 29 18:22:48 2012 +0200

    USB: option: fix memory leak
    
    commit b9c3aab315b51f81649a0d737c4c73783fbd8de0 upstream.
    
    Fix memory leak introduced by commit 383cedc3bb435de7a2 ("USB: serial:
    full autosuspend support for the option driver") which allocates
    usb-serial data but never frees it.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6a0bee09c55f4c133826fdea42510b097a2a6ad8
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue May 29 17:57:52 2012 +0200

    USB: option: fix port-data abuse
    
    commit 4273f9878b0a8271df055e3c8f2e7f08c6a4a2f4 upstream.
    
    Commit 8b4c6a3ab596961b78465 ("USB: option: Use generic USB wwan code")
    moved option port-data allocation to usb_wwan_startup but still cast the
    port data to the old struct...
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 85887743d0201c3b422a722d6d5e43f27a139782
Author: Alan Cox <alan@linux.intel.com>
Date:   Tue May 22 20:45:13 2012 +0100

    USB: mct_u232: Fix incorrect TIOCMSET return
    
    commit 1aa3c63cf0a79153ee13c8f82e4eb6c40b66a161 upstream.
    
    The low level helper returns 1 on success. The ioctl should however return
    0. As this is the only user of the helper return, make the helper return 0 or
    an error code.
    
    Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=43009
    Signed-off-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0942852bf06ba780fe0c73e22ada76ab6fb7eb21
Author: Andrew Bird <ajb@spheresystems.co.uk>
Date:   Mon May 28 12:43:06 2012 +0100

    USB: option: Updated Huawei K4605 has better id
    
    commit 42ca7da1c2363dbef4ba1b6917c4c02274b6a5e2 upstream.
    
    Later firmwares for this device now have proper subclass and
    protocol info so we can identify it nicely without needing to use
    the blacklist. I'm not removing the old 0xff matching as there
    may be devices in the field that still need that.
    
    Signed-off-by: Andrew Bird <ajb@spheresystems.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a436e816dd5d1562262718fe2cd8c513bb3c56a5
Author: Tom Cassidy <tomas.cassidy@gmail.com>
Date:   Wed Jun 6 17:08:48 2012 +1000

    USB: serial: sierra: Add support for Sierra Wireless AirCard 320U modem
    
    commit 19a3dd1575e954e8c004413bee3e12d3962f2525 upstream.
    
    Add support for Sierra Wireless AirCard 320U modem
    
    Signed-off-by: Tomas Cassidy <tomas.cassidy@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit bd9ddffba6ffa3a84992f1e199aeb7ab37c9f46d
Author: Mikko Tuumanen <mikko.tuumanen@qemsoftware.com>
Date:   Fri Jun 1 11:28:55 2012 +0300

    USB: serial: cp210x: add Optris MS Pro usb id
    
    commit 5bbfa6f427c1d7244a5ee154ab8fa37265a5e049 upstream.
    
    Signed-off-by: Mikko Tuumanen <mikko.tuumanen@qemsoftware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 492b4229d785016539a3ea4b85a4039dde73e481
Author: Evan McNabb <evan@mcnabbs.org>
Date:   Fri May 25 22:46:14 2012 -0400

    USB: ftdi-sio: Add support for RT Systems USB-RTS01 serial adapter
    
    commit e00a54d772210d450e5c1a801534c3c8a448549f upstream.
    
    Add support for RT Systems USB-RTS01 USB to Serial adapter:
    http://www.rtsystemsinc.com/Photos/USBRTS01.html
    
    Tested by controlling Icom IC-718 amateur radio transceiver via hamlib.
    
    Signed-off-by: Evan McNabb <evan@mcnabbs.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit cb3d6514b7d014ba2b36efe029a0a9350fb387c4
Author: Bjørn Mork <bjorn@mork.no>
Date:   Thu May 24 11:19:04 2012 +0200

    USB: qcserial: Add Sierra Wireless device IDs
    
    commit c41444ccfa33a1c20efa319e554cb531576e64a2 upstream.
    
    Some additional IDs found in the BSD/GPL licensed out-of-tree
    GobiSerial driver from Sierra Wireless.
    
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 59035858db2d7828142ef22355a32df642a6883a
Author: Bjørn Mork <bjorn@mork.no>
Date:   Wed Jan 25 13:03:29 2012 +0100

    usb: cdc-wdm: Add device-id for Huawei 3G/LTE modems
    
    commit fec67b45bf045582c3172101970090d640cd56d9 upstream.
    
    [v2: Editorial changes suggested by Sergei Shtylyov]
    
    These modems use the Qualcomm MSM Interface (QMI) protocol for
    management of their CDC ECM like wwan interface.  This driver
    is perfect for exporting the protocol to userspace.
    
    The created character device will be indistinguishable from a
    common AT command based Device Management interface, so
    userspace applications must do some intelligent matching
    on the USB device.
    
    Cc: Sergei Shtylyov <sshtylyov@mvista.com>
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Acked-by: Oliver Neukum <oneukum@suse.de>
    Acked-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f2ee53504cd695d2e908420fbfb1956614793cc2
Author: David Henningsson <david.henningsson@canonical.com>
Date:   Tue Jun 12 13:15:12 2012 +0200

    ALSA: HDA: Pin fixup for Zotac Z68 motherboard
    
    commit edfe3bfc1b779ddda9bcff523eb022dda37b93c8 upstream.
    
    Pin 0x1b was connected to the front panel connector, which according to
    the HDA standard should contain a mic and a headphone. In this case,
    the headphone was listed as "line out" by BIOS.
    
    BugLink: https://bugs.launchpad.net/bugs/993162
    Signed-off-by: David Henningsson <david.henningsson@canonical.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 9aac059e3b39e5343e430ab6a7c06ca3dcad6911
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Feb 13 12:03:25 2012 +0100

    ALSA: hda - Add another jack-detection suppression for ASUS ALC892
    
    commit 1565cc358585be40608b46f18f7ac431a1aae2bc upstream.
    
    Add the jack-detect suppression for an ASUS machine with ALC892 codec.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42655
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4961bcfc8225042545d63fe7e112c395b8cb3c2e
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Feb 13 11:56:25 2012 +0100

    ALSA: hda - Suppress auto-mute feature on some machines with ALC861
    
    commit e652f4c861fb7f1f59ff0828db0d85578471932d upstream.
    
    A few machines with ALC861 & co are reported not to work properly with
    the auto-mute feature in software.  The auto-mute feature is implemented
    in the hardware level, and the jack-detection never works with them.
    
    Also, rename the fixup index as ALC861_FIXUP_* to follow the standard.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6d23dafba9578a2710846342d7fd1dbfdb099e2e
Author: Jaroslav Kysela <perex@perex.cz>
Date:   Tue Feb 7 14:18:14 2012 +0100

    ALSA: hda - add support for Uniwill ECS M31EI notebook
    
    commit 416846d2b31fc740ed9d5a5ec116964fb43c4358 upstream.
    
    This hardware requires same fixup for the node 0x0f like Asus A6Rp.
    More information: https://bugzilla.redhat.com/show_bug.cgi?id=785417
    
    Signed-off-by: Jaroslav Kysela <perex@perex.cz>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 76c8103ac650773cc31f3de8713ea68919b357b8
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Feb 13 11:55:02 2012 +0100

    ALSA: hda - Add codec->no_jack_detect flag
    
    commit 71b1e9e43d5199f57c109e20c0f4dffc5c048130 upstream.
    
    Add a new flag to indicate that the codec has no jack-detection cap.
    This flag should be set for hardwares that have no jack-detect
    implementation although the codec chip itself supports it.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    [bwh: Backported to 3.2: adjust filename and context for is_jack_detectable()]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit cbb05493366d341a1b66b2bf7488b4957ffc7e75
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Wed Jun 6 13:55:02 2012 +0200

    iwlwifi: disable the buggy chain extension feature in HW
    
    commit d012d04e4d6312ea157b6cf19e9689af934f5aa7 upstream.
    
    This feature has been reported to be buggy and enabled by
    default. We therefore need to disable it manually.
    
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    [bwh: Backported to 3.2 as instructed: pass bus(trans) to iwl_write_prph()]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 9e8ed57850a9d5157430fb09161a2456171d8684
Author: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com>
Date:   Tue Jun 5 20:24:37 2012 +0200

    iwlwifi: use correct supported firmware for 6035 and 6000g2
    
    commit d2c8b15d0cb486f4938ba7f2af349d9d1220cb10 upstream.
    
    My patch
    
       iwlwifi: use correct released ucode version
    
    did not correctly report supported firmware
    for the 6035 device. This patch fixes it. The
    minimum supported firmware version for 6035
    is v6.
    
    Also correct the minimum supported firmware
    version for the 6000g2 series of devices.
    
    Signed-off-by: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com>
    Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    [bwh: Backported to 3.2:
     - adjust context
     - make IWL_DEVICE_6035 identical for IWL_DEVICE_6030 except for the
       ucode_api_* fields]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5b89f6bc01adb03d54dc90ecead12d86550fa6bb
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Fri Jun 8 10:58:09 2012 -0400

    NFSv4: Fix unnecessary delegation returns in nfs4_do_open
    
    commit 2d0dbc6ae8a5194aaecb9cfffb9053f38fce8b86 upstream.
    
    While nfs4_do_open() expects the fmode argument to be restricted to
    combinations of FMODE_READ and FMODE_WRITE, both nfs4_atomic_open()
    and nfs4_proc_create will pass the nfs_open_context->mode,
    which contains the full fmode_t.
    
    This patch ensures that nfs4_do_open strips the other fmode_t bits,
    fixing a problem in which the nfs4_do_open call would result in an
    unnecessary delegation return.
    
    Reported-by: Fred Isaman <iisaman@netapp.com>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 67c94967a36535a3e6c495ceda9b41aee2c448db
Author: Jaccon Bastiaansen <jaccon.bastiaansen@gmail.com>
Date:   Mon Apr 30 11:53:43 2012 +0200

    ARM i.MX imx21ads: Fix overlapping static i/o mappings
    
    commit 350ab15bb2ffe7103bc6bf6c634f3c5b286eaf2a upstream.
    
    The statically defined I/O memory regions for the i.MX21 on chip
    peripherals and the on board I/O peripherals of the i.MX21ADS board
    overlap. This results in a kernel crash during startup. This is fixed
    by reducing the memory range for the on board I/O peripherals to the
    actually required range.
    
    Signed-off-by: Jaccon Bastiaansen <jaccon.bastiaansen@gmail.com>
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b8878d246b5cacedcebd20cac9add30a4dbcf7df
Author: Shawn Guo <shawn.guo@linaro.org>
Date:   Tue May 22 22:13:46 2012 +0800

    ARM: imx6: exit coherency when shutting down a cpu
    
    commit 602bf40971d7f9a1ec0b7ba2b7e6427849828651 upstream.
    
    There is a system hang issue on imx6q which can easily be seen with
    running a cpu hotplug stress testing (hotplug secondary cores from
    user space via sysfs interface for thousands iterations).
    
    It turns out that the issue is caused by coherency of the cpu that
    is being shut down.  When shutting down a cpu, we need to have the
    cpu exit coherency to prevent it from receiving cache, TLB, or BTB
    maintenance operations broadcast by other CPUs in the cluster.
    
    Copy cpu_enter_lowpower() and cpu_leave_lowpower() from mach-vexpress
    to have coherency properly handled in platform_cpu_die(), thus fix
    the issue.
    
    Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4b5b660f26443a4e3e2a6ce7ea39aa0d3fcb7fef
Author: Bjørn Mork <bjorn@mork.no>
Date:   Tue Jun 5 21:18:10 2012 +0000

    net: sierra_net: device IDs for Aircard 320U++
    
    commit dd03cff23d694cfb0fdae80cb618e7ced05ea696 upstream.
    
    Adding device IDs for Aircard 320U and two other devices
    found in the out-of-tree version of this driver.
    
    Cc: linux@sierrawireless.com
    Cc: Autif Khan <autif.mlist@gmail.com>
    Cc: Tom Cassidy <tomas.cassidy@gmail.com>
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b3f92ffcf17680fc2064962c41debb424a2be403
Author: nagalakshmi.nandigama@lsi.com <nagalakshmi.nandigama@lsi.com>
Date:   Tue Apr 17 11:25:04 2012 +0530

    mpt2sas: Fix unsafe using smp_processor_id() in preemptible
    
    commit a2c658505bf5c75516ee0a79287223e86a2474af upstream.
    
    When CONFIG_DEBUG_PREEMPT is enabled, bug is observed in the smp_processor_id().
    This is because smp_processor_id() is not called in preempt safe condition.
    
    To fix this issue, use raw_smp_processor_id instead of smp_processor_id.
    
    Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 37a63c5c91599cc41c9e739696f5391e927ad178
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Tue Jun 5 12:16:50 2012 +0200

    cfg80211: fix interface combinations check
    
    commit 463454b5dbd8dbab6e2fc6c557329e5b811b9c32 upstream.
    
    If a given interface combination doesn't contain
    a required interface type then we missed checking
    that and erroneously allowed it even though iface
    type wasn't there at all. Add a check that makes
    sure that all interface types are accounted for.
    
    Reported-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit ec2f2d36fb217a8750e4c82f91406f265174462f
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Tue Jun 5 09:38:35 2012 +0200

    iwlwifi: unregister LEDs if mac80211 registration fails
    
    commit 0e1fa7ef25004b9c1a14147bce61c15c2f1c6744 upstream.
    
    Otherwise the LEDs stick around and cause issues the
    next time around since they're still there but not
    really hooked up.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    [bwh: Backported to 3.2: adjust filename]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0056a5555414ff62439e07deb3a40dd7f11156d6
Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
Date:   Tue Jun 5 12:31:32 2012 +0100

    ASoC: wm8994: Apply volume updates with clocks enabled
    
    commit bfd37bb5f681961e255fd2f346c20fdae2ef3f27 upstream.
    
    Volume updates may not be acted upon if there is no clock applied when
    the volume update is written. Ensure this doesn't happen by writing out
    registers with volume updates after we enable each of the clocks.
    
    There are more registers updated than before as previously we were
    relying on wm_hubs to set those for controls it manages.
    
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit fb6f6bf562ad3364027ab1fad771a2e45b4056a4
Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
Date:   Tue Jun 5 12:25:19 2012 +0100

    ASoC: wm8994: Ensure all AIFnCLK events are run from the _late variants
    
    commit c8fdc1b56611faa7b38eab6b99da5e20113661ff upstream.
    
    Ensure that all the actions get taken at appropriate times by calling the
    _PRE and _POST events for the aifNclk_ev functions explicitly.
    
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit adf49ce365294f2b4cba66ea216be4470d77c792
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon Jun 4 13:43:11 2012 +0200

    iwlwifi: disable WoWLAN if !CONFIG_PM_SLEEP
    
    commit fcb6ff5e2cb83e1de10631f6621f45ca3401bf61 upstream.
    
    If CONFIG_PM_SLEEP is disabled, then iwlwifi doesn't
    support suspend/resume handlers and thus mac80211
    (correctly) refuses advertising WoWLAN. Disable
    WoWLAN in the driver in this case.
    
    Reported-by: Sebastian Kemper <sebastian_ml@gmx.net>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    [bwh: Backported to 3.2: adjust filename, context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6c6967906305e4681c555338d8ad8823e8487c42
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Fri Jun 1 11:29:40 2012 +0200

    rt2x00: use atomic variable for seqno
    
    commit e5851dac2c95af7159716832300b9f50c62c648e upstream.
    
    Remove spinlock as atomic_t can be used instead. Note we use only 16
    lower bits, upper bits are changed but we impilcilty cast to u16.
    
    This fix possible deadlock on IBSS mode reproted by lockdep:
    
    =================================
    [ INFO: inconsistent lock state ]
    3.4.0-wl+ #4 Not tainted
    ---------------------------------
    inconsistent {IN-SOFTIRQ-W} -> {SOFTIRQ-ON-W} usage.
    kworker/u:2/30374 [HC0[0]:SC0[0]:HE1:SE1] takes:
     (&(&intf->seqlock)->rlock){+.?...}, at: [<f9979a20>] rt2x00queue_create_tx_descriptor+0x380/0x490 [rt2x00lib]
    {IN-SOFTIRQ-W} state was registered at:
      [<c04978ab>] __lock_acquire+0x47b/0x1050
      [<c0498504>] lock_acquire+0x84/0xf0
      [<c0835733>] _raw_spin_lock+0x33/0x40
      [<f9979a20>] rt2x00queue_create_tx_descriptor+0x380/0x490 [rt2x00lib]
      [<f9979f2a>] rt2x00queue_write_tx_frame+0x1a/0x300 [rt2x00lib]
      [<f997834f>] rt2x00mac_tx+0x7f/0x380 [rt2x00lib]
      [<f98fe363>] __ieee80211_tx+0x1b3/0x300 [mac80211]
      [<f98ffdf5>] ieee80211_tx+0x105/0x130 [mac80211]
      [<f99000dd>] ieee80211_xmit+0xad/0x100 [mac80211]
      [<f9900519>] ieee80211_subif_start_xmit+0x2d9/0x930 [mac80211]
      [<c0782e87>] dev_hard_start_xmit+0x307/0x660
      [<c079bb71>] sch_direct_xmit+0xa1/0x1e0
      [<c0784bb3>] dev_queue_xmit+0x183/0x730
      [<c078c27a>] neigh_resolve_output+0xfa/0x1e0
      [<c07b436a>] ip_finish_output+0x24a/0x460
      [<c07b4897>] ip_output+0xb7/0x100
      [<c07b2d60>] ip_local_out+0x20/0x60
      [<c07e01ff>] igmpv3_sendpack+0x4f/0x60
      [<c07e108f>] igmp_ifc_timer_expire+0x29f/0x330
      [<c04520fc>] run_timer_softirq+0x15c/0x2f0
      [<c0449e3e>] __do_softirq+0xae/0x1e0
    irq event stamp: 18380437
    hardirqs last  enabled at (18380437): [<c0526027>] __slab_alloc.clone.3+0x67/0x5f0
    hardirqs last disabled at (18380436): [<c0525ff3>] __slab_alloc.clone.3+0x33/0x5f0
    softirqs last  enabled at (18377616): [<c0449eb3>] __do_softirq+0x123/0x1e0
    softirqs last disabled at (18377611): [<c041278d>] do_softirq+0x9d/0xe0
    
    other info that might help us debug this:
     Possible unsafe locking scenario:
    
           CPU0
           ----
      lock(&(&intf->seqlock)->rlock);
      <Interrupt>
        lock(&(&intf->seqlock)->rlock);
    
     *** DEADLOCK ***
    
    4 locks held by kworker/u:2/30374:
     #0:  (wiphy_name(local->hw.wiphy)){++++.+}, at: [<c045cf99>] process_one_work+0x109/0x3f0
     #1:  ((&sdata->work)){+.+.+.}, at: [<c045cf99>] process_one_work+0x109/0x3f0
     #2:  (&ifibss->mtx){+.+.+.}, at: [<f98f005b>] ieee80211_ibss_work+0x1b/0x470 [mac80211]
     #3:  (&intf->beacon_skb_mutex){+.+...}, at: [<f997a644>] rt2x00queue_update_beacon+0x24/0x50 [rt2x00lib]
    
    stack backtrace:
    Pid: 30374, comm: kworker/u:2 Not tainted 3.4.0-wl+ #4
    Call Trace:
     [<c04962a6>] print_usage_bug+0x1f6/0x220
     [<c0496a12>] mark_lock+0x2c2/0x300
     [<c0495ff0>] ? check_usage_forwards+0xc0/0xc0
     [<c04978ec>] __lock_acquire+0x4bc/0x1050
     [<c0527890>] ? __kmalloc_track_caller+0x1c0/0x1d0
     [<c0777fb6>] ? copy_skb_header+0x26/0x90
     [<c0498504>] lock_acquire+0x84/0xf0
     [<f9979a20>] ? rt2x00queue_create_tx_descriptor+0x380/0x490 [rt2x00lib]
     [<c0835733>] _raw_spin_lock+0x33/0x40
     [<f9979a20>] ? rt2x00queue_create_tx_descriptor+0x380/0x490 [rt2x00lib]
     [<f9979a20>] rt2x00queue_create_tx_descriptor+0x380/0x490 [rt2x00lib]
     [<f997a5cf>] rt2x00queue_update_beacon_locked+0x5f/0xb0 [rt2x00lib]
     [<f997a64d>] rt2x00queue_update_beacon+0x2d/0x50 [rt2x00lib]
     [<f9977e3a>] rt2x00mac_bss_info_changed+0x1ca/0x200 [rt2x00lib]
     [<f9977c70>] ? rt2x00mac_remove_interface+0x70/0x70 [rt2x00lib]
     [<f98e4dd0>] ieee80211_bss_info_change_notify+0xe0/0x1d0 [mac80211]
     [<f98ef7b8>] __ieee80211_sta_join_ibss+0x3b8/0x610 [mac80211]
     [<c0496ab4>] ? mark_held_locks+0x64/0xc0
     [<c0440012>] ? virt_efi_query_capsule_caps+0x12/0x50
     [<f98efb09>] ieee80211_sta_join_ibss+0xf9/0x140 [mac80211]
     [<f98f0456>] ieee80211_ibss_work+0x416/0x470 [mac80211]
     [<c0496d8b>] ? trace_hardirqs_on+0xb/0x10
     [<c077683b>] ? skb_dequeue+0x4b/0x70
     [<f98f207f>] ieee80211_iface_work+0x13f/0x230 [mac80211]
     [<c045cf99>] ? process_one_work+0x109/0x3f0
     [<c045d015>] process_one_work+0x185/0x3f0
     [<c045cf99>] ? process_one_work+0x109/0x3f0
     [<f98f1f40>] ? ieee80211_teardown_sdata+0xa0/0xa0 [mac80211]
     [<c045ed86>] worker_thread+0x116/0x270
     [<c045ec70>] ? manage_workers+0x1e0/0x1e0
     [<c0462f64>] kthread+0x84/0x90
     [<c0462ee0>] ? __init_kthread_worker+0x60/0x60
     [<c083d382>] kernel_thread_helper+0x6/0x10
    
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Acked-by: Helmut Schaa <helmut.schaa@googlemail.com>
    Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 68d214eda1a87c9045ab8c5247d1911cfc47bede
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Thu May 31 15:09:27 2012 +0200

    mac80211: clean up remain-on-channel on interface stop
    
    commit 71ecfa1893034eeb1c93e02e22ee2ad26d080858 upstream.
    
    When any interface goes down, it could be the one that we
    were doing a remain-on-channel with. We therefore need to
    cancel the remain-on-channel and flush the related work
    structs so they don't run after the interface has been
    removed or even destroyed.
    
    It's also possible in this case that an off-channel SKB
    was never transmitted, so free it if this is the case.
    Note that this can also happen if the driver finishes
    the off-channel period without ever starting it.
    
    Reported-by: Nirav Shah <nirav.j2.shah@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit c022fe20a36fa5c578a76b6c9a64b5d663f82f4b
Author: Grazvydas Ignotas <notasas@gmail.com>
Date:   Sat May 26 00:21:33 2012 +0300

    usb: musb_gadget: fix crash caused by dangling pointer
    
    commit 08f75bf14fadaa81fe362d5acda9b77b113dd0a2 upstream.
    
    usb_ep_ops.disable must clear external copy of the endpoint descriptor,
    otherwise musb crashes after loading/unloading several gadget modules
    in a row:
    
    Unable to handle kernel paging request at virtual address bf013730
    pgd = c0004000
    [bf013730] *pgd=8f26d811, *pte=00000000, *ppte=00000000
    Internal error: Oops: 7 [#1]
    Modules linked in: g_cdc [last unloaded: g_file_storage]
    CPU: 0    Not tainted  (3.2.17 #647)
    PC is at musb_gadget_enable+0x4c/0x24c
    LR is at _raw_spin_lock_irqsave+0x4c/0x58
    [<c027c030>] (musb_gadget_enable+0x4c/0x24c) from [<bf01b760>] (gether_connect+0x3c/0x19c [g_cdc])
    [<bf01b760>] (gether_connect+0x3c/0x19c [g_cdc]) from [<bf01ba1c>] (ecm_set_alt+0x15c/0x180 [g_cdc])
    [<bf01ba1c>] (ecm_set_alt+0x15c/0x180 [g_cdc]) from [<bf01ecd4>] (composite_setup+0x85c/0xac4 [g_cdc])
    [<bf01ecd4>] (composite_setup+0x85c/0xac4 [g_cdc]) from [<c027b744>] (musb_g_ep0_irq+0x844/0x924)
    [<c027b744>] (musb_g_ep0_irq+0x844/0x924) from [<c027a97c>] (musb_interrupt+0x79c/0x864)
    [<c027a97c>] (musb_interrupt+0x79c/0x864) from [<c027aaa8>] (generic_interrupt+0x64/0x7c)
    [<c027aaa8>] (generic_interrupt+0x64/0x7c) from [<c00797cc>] (handle_irq_event_percpu+0x28/0x178)
    ...
    
    Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d143f1cb81ce3e6843f0898e4797d86804b29ec6
Author: Sascha Hauer <s.hauer@pengutronix.de>
Date:   Mon Jun 4 14:58:07 2012 +0200

    ARM i.MX53: Fix PLL4 base address
    
    commit cdd781ab1906d039c2a93078385645d2d5af8491 upstream.
    
    MX53_DPLL4_BASE accidently returned the base address of PLL3.
    Fix this.
    
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    [bwh: Backported to 3.2: adjust filename]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b22c7115f09667e64e449c6f7a9bdfc97cab604d
Author: AnilKumar Ch <anilkumar@ti.com>
Date:   Wed May 23 17:45:11 2012 +0530

    can: c_can: fix race condition in c_can_open()
    
    commit f461f27a4436dbe691908fe08b867ef888848cc3 upstream.
    
    Fix the issue of C_CAN interrupts getting disabled forever when canconfig
    utility is used multiple times. According to NAPI usage we disable all
    the hardware interrupts in ISR and re-enable them in poll(). Current
    implementation calls napi_enable() after hardware interrupts are enabled.
    If we get any interrupts between these two steps then we do not process
    those interrupts because napi is not enabled. Mostly these interrupts
    come because of STATUS is not 0x7 or ERROR interrupts. If napi_enable()
    happens before HW interrupts enabled then c_can_poll() function will be
    called eventual re-enabling.
    
    This patch moves the napi_enable() call before interrupts enabled.
    
    Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
    Acked-by: Wolfgang Grandegger <wg@grandegger.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 2d0b51477157f5c7669cf56da4f816e8dc546f64
Author: AnilKumar Ch <anilkumar@ti.com>
Date:   Wed May 23 17:45:10 2012 +0530

    can: c_can: fix an interrupt thrash issue with c_can driver
    
    commit 148c87c89e1a8863d3d965179f3ab1a06490569e upstream.
    
    This patch fixes an interrupt thrash issue with c_can driver.
    
    In c_can_isr() function interrupts are disabled and enabled only in
    c_can_poll() function. c_can_isr() & c_can_poll() both read the
    irqstatus flag. However, irqstatus is always read as 0 in c_can_poll()
    because all C_CAN interrupts are disabled in c_can_isr(). This causes
    all interrupts to be re-enabled in c_can_poll() which in turn causes
    another interrupt since the event is not really handled. This keeps
    happening causing a flood of interrupts.
    
    To fix this, read the irqstatus register in isr and use the same cached
    value in the poll function.
    
    Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
    Acked-by: Wolfgang Grandegger <wg@grandegger.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit cef5f1eed423742799a938436b667407019918f1
Author: AnilKumar Ch <anilkumar@ti.com>
Date:   Wed May 23 17:45:09 2012 +0530

    can: c_can: fix "BUG! echo_skb is occupied!" during transmit
    
    commit 617caccebe451716df21c069b079d5936ed7b0f3 upstream.
    
    This patch fixes an issue with transmit routine, which causes
    "can_put_echo_skb: BUG! echo_skb is occupied!" message when
    using "cansequence -p" on D_CAN controller.
    
    In c_can driver, while transmitting packets tx_echo flag holds
    the no of can frames put for transmission into the hardware.
    
    As the comment above c_can_do_tx() indicates, if we find any packet
    which is not transmitted then we should stop looking for more.
    In the current implementation this is not taken care of causing the
    said message.
    
    Also, fix the condition used to find if the packet is transmitted
    or not. Current code skips the first tx message object and ends up
    checking one extra invalid object.
    
    While at it, fix the comment on top of c_can_do_tx() to use the
    terminology "packet" instead of "package" since it is more
    standard.
    
    Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
    Acked-by: Wolfgang Grandegger <wg@grandegger.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0997627ec97c5159f383df2b64f4c8e7fbe71a7b
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Thu May 31 15:26:38 2012 -0400

    NFSv4.1: Fix a request leak on the back channel
    
    commit b3b02ae5865c2dcd506322e0fc6def59a042e72f upstream.
    
    If the call to svc_process_common() fails, then the request
    needs to be freed before we can exit bc_svc_process.
    
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 3fed6d5841445d9d3a4266de48e9047a153d029e
Author: Andre Przywara <andre.przywara@amd.com>
Date:   Tue May 29 13:07:31 2012 +0200

    xen/setup: filter APERFMPERF cpuid feature out
    
    commit 5e626254206a709c6e937f3dda69bf26c7344f6f upstream.
    
    Xen PV kernels allow access to the APERF/MPERF registers to read the
    effective frequency. Access to the MSRs is however redirected to the
    currently scheduled physical CPU, making consecutive read and
    compares unreliable. In addition each rdmsr traps into the hypervisor.
    So to avoid bogus readouts and expensive traps, disable the kernel
    internal feature flag for APERF/MPERF if running under Xen.
    This will
    a) remove the aperfmperf flag from /proc/cpuinfo
    b) not mislead the power scheduler (arch/x86/kernel/cpu/sched.c) to
       use the feature to improve scheduling (by default disabled)
    c) not mislead the cpufreq driver to use the MSRs
    
    This does not cover userland programs which access the MSRs via the
    device file interface, but this will be addressed separately.
    
    Signed-off-by: Andre Przywara <andre.przywara@amd.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0084ba7b528dceee67237bb1d61f9e09c6153cfb
Author: Mathias Krause <minipli@googlemail.com>
Date:   Wed May 30 01:43:08 2012 +0200

    crypto: aesni-intel - fix unaligned cbc decrypt for x86-32
    
    commit 7c8d51848a88aafdb68f42b6b650c83485ea2f84 upstream.
    
    The 32 bit variant of cbc(aes) decrypt is using instructions requiring
    128 bit aligned memory locations but fails to ensure this constraint in
    the code. Fix this by loading the data into intermediate registers with
    load unaligned instructions.
    
    This fixes reported general protection faults related to aesni.
    
    References: https://bugzilla.kernel.org/show_bug.cgi?id=43223
    Reported-by: Daniel <garkein@mailueberfall.de>
    Signed-off-by: Mathias Krause <minipli@googlemail.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5a5ce86198840d0521a3b1255b52ef5a71621b45
Author: Peter Korsgaard <jacmet@sunsite.dk>
Date:   Thu May 31 20:53:08 2012 +1000

    hwrng: atmel-rng - fix race condition leading to repeated bits
    
    commit 121daad8fd1dce63076fa55aaedd5dc3f981b334 upstream.
    
    Data valid gets cleared by reading the ISR (status register) and NOT from
    reading ODATA (data register). A new data word can become available between
    checking ISR and reading ODATA, causing us to reuse the same data word next
    time atmel_trng_read() gets called, if that happens before the following
    data word is ready.
    
    With this fixed, rngtest no longer complains of 'Continous run' errors.
    Before:
    
    rngtest -c 1000 < /dev/hwrng
    rngtest 3
    Copyright (c) 2004 by Henrique de Moraes Holschuh
    This is free software; see the source for copying conditions.  There is NO warr.
    
    rngtest: starting FIPS tests...
    rngtest: bits received from input: 20000032
    rngtest: FIPS 140-2 successes: 923
    rngtest: FIPS 140-2 failures: 77
    rngtest: FIPS 140-2(2001-10-10) Monobit: 0
    rngtest: FIPS 140-2(2001-10-10) Poker: 0
    rngtest: FIPS 140-2(2001-10-10) Runs: 1
    rngtest: FIPS 140-2(2001-10-10) Long run: 0
    rngtest: FIPS 140-2(2001-10-10) Continuous run: 76
    rngtest: input channel speed: (min=721.402; avg=46003.510; max=49321.338)Kibitss
    rngtest: FIPS tests speed: (min=11.442; avg=12.714; max=12.801)Mibits/s
    rngtest: Program run time: 1931860 microseconds
    
    After:
    
    rngtest -c 1000 < /dev/hwrng
    rngtest 3
    Copyright (c) 2004 by Henrique de Moraes Holschuh
    This is free software; see the source for copying conditions.  There is NO warr.
    
    rngtest: starting FIPS tests...
    rngtest: bits received from input: 20000032
    rngtest: FIPS 140-2 successes: 1000
    rngtest: FIPS 140-2 failures: 0
    rngtest: FIPS 140-2(2001-10-10) Monobit: 0
    rngtest: FIPS 140-2(2001-10-10) Poker: 0
    rngtest: FIPS 140-2(2001-10-10) Runs: 0
    rngtest: FIPS 140-2(2001-10-10) Long run: 0
    rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
    rngtest: input channel speed: (min=777.518; avg=36988.482; max=43115.342)Kibitss
    rngtest: FIPS tests speed: (min=11.951; avg=12.715; max=12.887)Mibits/s
    rngtest: Program run time: 2035543 microseconds
    
    Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
    Reported-by: George Pontis <GPontis@z9.com>
    Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 1757efa77a3f9e114667b3a3a7f7f222fcb3a280
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Wed Jun 6 09:13:36 2012 +0200

    iwlwifi: don't mess up the SCD when removing a key
    
    commit d6ee27eb13beab94056e0de52d81220058ca2297 upstream.
    
    When we remove a key, we put a key index which was supposed
    to tell the fw that we are actually removing the key. But
    instead the fw took that index as a valid index and messed
    up the SRAM of the device.
    
    This memory corruption on the device mangled the data of
    the SCD. The impact on the user is that SCD queue 2 got
    stuck after having removed keys.
    The message is the log that was printed is:
    
    Queue 2 stuck for 10000ms
    
    This doesn't seem to fix the higher queues that get stuck
    from time to time.
    
    Reviewed-by: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com>
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit dcbf047fc060c9cfea0c4bb16ac322e4e6a08500
Author: Dimitri Sivanich <sivanich@sgi.com>
Date:   Tue Jun 5 13:44:36 2012 -0500

    sched: Fix the relax_domain_level boot parameter
    
    commit a841f8cef4bb124f0f5563314d0beaf2e1249d72 upstream.
    
    It does not get processed because sched_domain_level_max is 0 at the
    time that setup_relax_domain_level() is run.
    
    Simply accept the value as it is, as we don't know the value of
    sched_domain_level_max until sched domain construction is completed.
    
    Fix sched_relax_domain_level in cpuset.  The build_sched_domain() routine calls
    the set_domain_attribute() routine prior to setting the sd->level, however,
    the set_domain_attribute() routine relies on the sd->level to decide whether
    idle load balancing will be off/on.
    
    Signed-off-by: Dimitri Sivanich <sivanich@sgi.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/20120605184436.GA15668@sgi.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    [bwh: Backported to 3.2: adjust the filename]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b39d6032d8c17e4f2f2074793bc99a114ac841f5
Author: Andre Przywara <andre.przywara@amd.com>
Date:   Fri Mar 23 10:02:17 2012 +0100

    hwmon: (fam15h_power) Increase output resolution
    
    On high CPU load the accumulating values in the running_avg_cap
    register are very low (below 10), so averaging them too early leads
    to unnecessary poor output resolution. Since we pretend to output
    micro-Watt we better keep all the bits we have as long as possible.
    
    Signed-off-by: Andre Przywara <andre.przywara@amd.com>
    Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
    Acked-by: Guenter Roeck <guenter.roeck@ericsson.com>
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    (cherry picked from commit 941a956b0e387b21f385f486c34ef67576775cfc)
    
    Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 161449f010c00726bb5384a1ae371433b8d625c7
Author: Andreas Herrmann <andreas.herrmann3@amd.com>
Date:   Tue Apr 3 12:13:07 2012 +0200

    x86/amd: Re-enable CPU topology extensions in case BIOS has disabled it
    
    BIOS will switch off the corresponding feature flag on family
    15h models 10h-1fh non-desktop CPUs.
    
    The topology extension CPUID leafs are required to detect which
    cores belong to the same compute unit. (thread siblings mask is
    set accordingly and also correct information about L1i and L2
    cache sharing depends on this).
    
    W/o this patch we wouldn't see which cores belong to the same
    compute unit and also cache sharing information for L1i and L2
    would be incorrect on such systems.
    
    Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    (cherry picked from commit f7f286a910221ae18b21c18d9d0f4cd88965829f)
    
    Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit cb60c34ea70a5e3e4cc6b76e0c1d2385efcaafc7
Author: Borislav Petkov <borislav.petkov@amd.com>
Date:   Sun Jun 10 00:50:15 2012 +0900

    x86, MCE, AMD: Make APIC LVT thresholding interrupt optional
    
    commit f227d4306cf30e1d5b6f231e8ef9006c34f3d186 upstream.
    
    Currently, the APIC LVT interrupt for error thresholding is implicitly
    enabled. However, there are models in the F15h range which do not enable
    it. Make the code machinery which sets up the APIC interrupt support
    an optional setting and add an ->interrupt_capable member to the bank
    representation mirroring that capability and enable the interrupt offset
    programming only if it is true.
    
    Simplify code and fixup comment style while at it.
    
    This patch is for stable kernels v3.0 to v3.2.
    
    Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
    Signed-off-by: Robert Richter <robert.richter@amd.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 02f26d8ffc65f1ce6935d67c71819de44c91e39d
Author: Pavel Shilovsky <piastry@etersoft.ru>
Date:   Thu May 10 19:49:38 2012 +0400

    fuse: fix stat call on 32 bit platforms
    
    commit 45c72cd73c788dd18c8113d4a404d6b4a01decf1 upstream.
    
    Now we store attr->ino at inode->i_ino, return attr->ino at the
    first time and then return inode->i_ino if the attribute timeout
    isn't expired. That's wrong on 32 bit platforms because attr->ino
    is 64 bit and inode->i_ino is 32 bit in this case.
    
    Fix this by saving 64 bit ino in fuse_inode structure and returning
    it every time we call getattr. Also squash attr->ino into inode->i_ino
    explicitly.
    
    Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru>
    Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5a8bd352510b04c0b499293e947424c782b0be8c
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Sat May 5 00:39:21 2012 +1000

    drm/nouveau/disp: fix dithering not being enabled on some eDP macbooks
    
    commit a6a17859f1bdf607650ee055101f54c5f207762b upstream.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    [Maarten Lankhorst backported to 3.2,
     changing nv_connector->type to nv_connector->dcb->type]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 863b3ff89bbef02bcbf3ca87648dd54435f84170
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Sat Mar 24 16:26:13 2012 +1000

    drm/nouveau: default to 8bpc for non-LVDS panels if EDID isn't useful
    
    commit c8435362f2211086b34ce871fa9c3fcc7ca79ff9 upstream.
    
    A few reports of bad behaviour since the autodetection defaulted to 6bpc,
    lets fix this.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit acab2a9f3bb371052482ced2b33f24bcf4a5a297
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Mon Oct 17 10:24:49 2011 +1000

    drm/nouveau: determine a value for display_info.bpc if edid doesn't
    
    commit 6322175530c89ab719cea28202f96a3660491727 upstream.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 15111afdac2abbd82c7c6aac52442f537b0c1d84
Author: Steffen Rumler <steffen.rumler.ext@nsn.com>
Date:   Wed Jun 6 16:37:17 2012 +0200

    powerpc: Fix kernel panic during kernel module load
    
    commit 3c75296562f43e6fbc6cddd3de948a7b3e4e9bcf upstream.
    
    This fixes a problem which can causes kernel oopses while loading
    a kernel module.
    
    According to the PowerPC EABI specification, GPR r11 is assigned
    the dedicated function to point to the previous stack frame.
    In the powerpc-specific kernel module loader, do_plt_call()
    (in arch/powerpc/kernel/module_32.c), GPR r11 is also used
    to generate trampoline code.
    
    This combination crashes the kernel, in the case where the compiler
    chooses to use a helper function for saving GPRs on entry, and the
    module loader has placed the .init.text section far away from the
    .text section, meaning that it has to generate a trampoline for
    functions in the .init.text section to call the GPR save helper.
    Because the trampoline trashes r11, references to the stack frame
    using r11 can cause an oops.
    
    The fix just uses GPR r12 instead of GPR r11 for generating the
    trampoline code.  According to the statements from Freescale, this is
    safe from an EABI perspective.
    
    I've tested the fix for kernel 2.6.33 on MPC8541.
    
    Signed-off-by: Steffen Rumler <steffen.rumler.ext@nsn.com>
    [paulus@samba.org: reworded the description]
    Signed-off-by: Paul Mackerras <paulus@samba.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8228104b705a63bd9815ebcda85f2bdc70a1617f
Author: Cliff Wickman <cpw@sgi.com>
Date:   Thu Jun 7 08:31:40 2012 -0500

    x86/uv: Fix UV2 BAU legacy mode
    
    commit d5d2d2eea84b0d8450b082edbc3dbde41fb8bfd8 upstream.
    
    The SGI Altix UV2 BAU (Broadcast Assist Unit) as used for
    tlb-shootdown (selective broadcast mode) always uses UV2
    broadcast descriptor format. There is no need to clear the
    'legacy' (UV1) mode, because the hardware always uses UV2 mode
    for selective broadcast.
    
    But the BIOS uses general broadcast and legacy mode, and the
    hardware pays attention to the legacy mode bit for general
    broadcast. So the kernel must not clear that mode bit.
    
    Signed-off-by: Cliff Wickman <cpw@sgi.com>
    Link: http://lkml.kernel.org/r/E1SccoO-0002Lh-Cb@eag09.americas.sgi.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 7036d1e164ce41ef13c69a2b71f535e5846547c5
Author: Eugeni Dodonov <eugeni.dodonov@intel.com>
Date:   Wed Jun 6 11:59:06 2012 -0300

    char/agp: add another Ironlake host bridge
    
    commit 67384fe3fd450536342330f684ea1f7dcaef8130 upstream.
    
    This seems to come on Gigabyte H55M-S2V and was discovered through the
    https://bugs.freedesktop.org/show_bug.cgi?id=50381 debugging.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50381
    Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit ded8ea3e69064b0b7d30e86470c3a3e3cdfdc58c
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Wed May 23 14:02:00 2012 +0200

    drm/i915: fix up ivb plane 3 pageflips
    
    commit cb05d8dedefa3066bf5d74ef88c6ca6cf4bd1c87 upstream.
    
    Or at least plug another gapping hole. Apparrently hw desingers only
    moved the bit field, but did not bother ot re-enumerate the planes
    when adding support for a 3rd pipe.
    
    Discovered by i-g-t/flip_test.
    
    This may or may not fix the reference bugzilla, because that one
    smells like we have still larger fish to fry.
    
    v2: Fixup the impossible case to catch programming errors, noticed by
    Chris Wilson.
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=50069
    Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
    Tested-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
    Eugeni Dodonov <eugeni.dodonov@intel.com>
    Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a1550894983f409ec89c74584575e8bd975dd918
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Apr 17 19:35:53 2012 +0100

    drm/i915: Unpin the flip target if we fail to queue the flip
    
    commit 83d4092b0381e5dd6f312b2ec57121dcf0fcbade upstream.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    [bwh: Backported to 3.2:
     - adjust context
     - we don't have intel_unpin_fb_obj(); use i915_gem_object_unpin()]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 3b63a92697541c17c4760ed0d0ecf30719d8ccc5
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Mon Jun 4 11:18:15 2012 +0200

    drm/i915: hold forcewake around ring hw init
    
    commit b7884eb45ec98c0d34c7f49005ae9d4b4b4e38f6 upstream.
    
    Empirical evidence suggests that we need to: On at least one ivb
    machine when running the hangman i-g-t test, the rings don't properly
    initialize properly - the RING_START registers seems to be stuck at
    all zeros.
    
    Holding forcewake around this register init sequences makes chip reset
    reliable again. Note that this is not the first such issue:
    
    commit f01db988ef6f6c70a6cc36ee71e4a98a68901229
    Author: Sean Paul <seanpaul@chromium.org>
    Date:   Fri Mar 16 12:43:22 2012 -0400
    
        drm/i915: Add wait_for in init_ring_common
    
    added delay loops to make RING_START and RING_CTL initialization
    reliable on the blt ring at boot-up. So I guess it won't hurt if we do
    this unconditionally for all force_wake needing gpus.
    
    To avoid copy&pasting of the HAS_FORCE_WAKE check I've added a new
    intel_info bit for that.
    
    v2: Fixup missing commas in static struct and properly handling the
    error case in init_ring_common, both noticed by Jani Nikula.
    
    Reported-and-tested-by: Yang Guang <guang.a.yang@intel.com>
    Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50522
    Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    [bwh: Backported to 3.2:
     - drop changes to Haswell device information
     - NEEDS_FORCE_WAKE didn't refer to Valley View anyway]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 71583724d282be6e3ced2c21633466035f09b356
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jun 4 17:05:40 2012 +0100

    drm/i915: Mark the ringbuffers as being in the GTT domain
    
    commit 3eef8918ff440837f6af791942d8dd07e1a268ee upstream.
    
    By correctly describing the rinbuffers as being in the GTT domain, it
    appears that we are more careful with the management of the CPU cache
    upon resume and so prevent some coherency issue when submitting commands
    to the GPU later. A secondary effect is that the debug logs are then
    consistent with the actual usage (i.e. they no longer describe the
    ringbuffers as being in the CPU write domain when we are accessing them
    through an wc iomapping.)
    
    Reported-and-tested-by: Daniel Gnoutcheff <daniel@gnoutcheff.name>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41092
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>