commit e796c78c404fbe3423d981b6ef056e04b1e4b078
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Tue Oct 30 23:27:11 2012 +0000

    Linux 3.2.33

commit fb063567fceb0291b429b4e39d16d487377c385c
Author: Jean-Christian de Rivaz <jc@eclis.ch>
Date:   Wed Oct 10 12:49:02 2012 +0000

    Add CDC-ACM support for the CX93010-2x UCMxx USB Modem
    
    commit e7d491a19d3e3aac544070293891a2542ae0c565 upstream.
    
    This USB V.92/V.32bis Controllered Modem have the USB vendor ID 0x0572
    and device ID 0x1340. It need the NO_UNION_NORMAL quirk to be recognized.
    
    Reference:
    http://www.conexant.com/servlets/DownloadServlet/DSH-201723-005.pdf?docid=1725&revid=5
    See idVendor and idProduct in table 6-1. Device Descriptors
    
    Signed-off-by: Jean-Christian de Rivaz <jc@eclis.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit be5130eb55187a901723b2dc72bd831b9a1555aa
Author: Maxim Kachur <mcdebugger@duganet.ru>
Date:   Wed Oct 17 18:18:10 2012 +0200

    ALSA: emu10k1: add chip details for E-mu 1010 PCIe card
    
    commit 10f571d09106c3eb85951896522c9650596eff2e upstream.
    
    Add chip details for E-mu 1010 PCIe card. It has the same
    chip as found in E-mu 1010b but it uses different PCI id.
    
    Signed-off-by: Maxim Kachur <mcdebugger@duganet.ru>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 19bed0e32102a9bc2e73a881debe956ce1a9e124
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Oct 11 16:43:40 2012 +0200

    ALSA: ac97 - Fix missing NULL check in snd_ac97_cvol_new()
    
    commit 733a48e5ae5bf28b046fad984d458c747cbb8c21 upstream.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=44721
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4be11470a33359ac885539737a79dac6ba9f3495
Author: Peter Huewe <peter.huewe@infineon.com>
Date:   Thu Sep 27 16:09:33 2012 +0200

    tpm: Propagate error from tpm_transmit to fix a timeout hang
    
    commit abce9ac292e13da367bbd22c1f7669f988d931ac upstream.
    
    tpm_write calls tpm_transmit without checking the return value and
    assigns the return value unconditionally to chip->pending_data, even if
    it's an error value.
    This causes three bugs.
    
    So if we write to /dev/tpm0 with a tpm_param_size bigger than
    TPM_BUFSIZE=0x1000 (e.g. 0x100a)
    and a bufsize also bigger than TPM_BUFSIZE (e.g. 0x100a)
    tpm_transmit returns -E2BIG which is assigned to chip->pending_data as
    -7, but tpm_write returns that TPM_BUFSIZE bytes have been successfully
    been written to the TPM, altough this is not true (bug #1).
    
    As we did write more than than TPM_BUFSIZE bytes but tpm_write reports
    that only TPM_BUFSIZE bytes have been written the vfs tries to write
    the remaining bytes (in this case 10 bytes) to the tpm device driver via
    tpm_write which then blocks at
    
     /* cannot perform a write until the read has cleared
     either via tpm_read or a user_read_timer timeout */
     while (atomic_read(&chip->data_pending) != 0)
    	 msleep(TPM_TIMEOUT);
    
    for 60 seconds, since data_pending is -7 and nobody is able to
    read it (since tpm_read luckily checks if data_pending is greater than
    0) (#bug 2).
    
    After that the remaining bytes are written to the TPM which are
    interpreted by the tpm as a normal command. (bug #3)
    So if the last bytes of the command stream happen to be a e.g.
    tpm_force_clear this gets accidentally sent to the TPM.
    
    This patch fixes all three bugs, by propagating the error code of
    tpm_write and returning -E2BIG if the input buffer is too big,
    since the response from the tpm for a truncated value is bogus anyway.
    Moreover it returns -EBUSY to userspace if there is a response ready to be
    read.
    
    Signed-off-by: Peter Huewe <peter.huewe@infineon.com>
    Signed-off-by: Kent Yoder <key@linux.vnet.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit cc1b75d796ad050c83c95733c4220aaa04fa1304
Author: Pablo Neira Ayuso <pablo@netfilter.org>
Date:   Wed Aug 29 16:25:49 2012 +0000

    netfilter: nf_conntrack: fix racy timer handling with reliable events
    
    commit 5b423f6a40a0327f9d40bc8b97ce9be266f74368 upstream.
    
    Existing code assumes that del_timer returns true for alive conntrack
    entries. However, this is not true if reliable events are enabled.
    In that case, del_timer may return true for entries that were
    just inserted in the dying list. Note that packets / ctnetlink may
    hold references to conntrack entries that were just inserted to such
    list.
    
    This patch fixes the issue by adding an independent timer for
    event delivery. This increases the size of the ecache extension.
    Still we can revisit this later and use variable size extensions
    to allocate this area on demand.
    
    Tested-by: Oliver Smith <olipro@8.c.9.b.0.7.4.0.1.0.0.2.ip6.arpa>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Acked-by: David Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8c812dca4d68f3c11e6f6d28cd8e92b4282909a6
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Sun Oct 28 18:43:50 2012 +0000

    Revert "lockd: use rpc client's cl_nodename for id encoding"
    
    This reverts 5ff39e971c87ea9f4c4c7b253898abafa960e32b which was commit
    303a7ce92064c285a04c870f2dc0192fdb2968cb upstream.
    
    It is not necessary for kernel versions without per-netns RPC clients.
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5bbeedc3110bbb1b5c6b01fc1f027ab5d2eb40d6
Author: Kees Cook <keescook@chromium.org>
Date:   Thu Oct 25 13:38:16 2012 -0700

    fs/compat_ioctl.c: VIDEO_SET_SPU_PALETTE missing error check
    
    commit 12176503366885edd542389eed3aaf94be163fdb upstream.
    
    The compat ioctl for VIDEO_SET_SPU_PALETTE was missing an error check
    while converting ioctl arguments.  This could lead to leaking kernel
    stack contents into userspace.
    
    Patch extracted from existing fix in grsecurity.
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Cc: David Miller <davem@davemloft.net>
    Cc: Brad Spengler <spender@grsecurity.net>
    Cc: PaX Team <pageexec@freemail.hu>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4253a4a1c331f534be64365524e88f317c7f0824
Author: Kees Cook <keescook@chromium.org>
Date:   Thu Oct 25 13:38:14 2012 -0700

    gen_init_cpio: avoid stack overflow when expanding
    
    commit 20f1de659b77364d55d4e7fad2ef657e7730323f upstream.
    
    Fix possible overflow of the buffer used for expanding environment
    variables when building file list.
    
    In the extremely unlikely case of an attacker having control over the
    environment variables visible to gen_init_cpio, control over the
    contents of the file gen_init_cpio parses, and gen_init_cpio was built
    without compiler hardening, the attacker can gain arbitrary execution
    control via a stack buffer overflow.
    
      $ cat usr/crash.list
      file foo ${BIG}${BIG}${BIG}${BIG}${BIG}${BIG} 0755 0 0
      $ BIG=$(perl -e 'print "A" x 4096;') ./usr/gen_init_cpio usr/crash.list
      *** buffer overflow detected ***: ./usr/gen_init_cpio terminated
    
    This also replaces the space-indenting with tabs.
    
    Patch based on existing fix extracted from grsecurity.
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Cc: Michal Marek <mmarek@suse.cz>
    Cc: Brad Spengler <spender@grsecurity.net>
    Cc: PaX Team <pageexec@freemail.hu>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4b77f431a837ebaf54757083425a9ce38dab5488
Author: Jan Luebbe <jlu@pengutronix.de>
Date:   Thu Oct 25 13:38:11 2012 -0700

    drivers/rtc/rtc-imxdi.c: add missing spin lock initialization
    
    commit fee0de7791f967c2c5f0d43eb7b7261761b45e64 upstream.
    
    Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
    Cc: Alessandro Zummo <a.zummo@towertech.it>
    Cc: Roland Stigge <stigge@antcom.de>
    Cc: Grant Likely <grant.likely@secretlab.ca>
    Tested-by: Roland Stigge <stigge@antcom.de>
    Cc: Sascha Hauer <kernel@pengutronix.de>
    Cc: Russell King <linux@arm.linux.org.uk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit e3d92b5e7dac151bdb15577ca0cdcefc8bbcdf41
Author: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
Date:   Thu Oct 25 13:37:51 2012 -0700

    genalloc: stop crashing the system when destroying a pool
    
    commit eedce141cd2dad8d0cefc5468ef41898949a7031 upstream.
    
    The genalloc code uses the bitmap API from include/linux/bitmap.h and
    lib/bitmap.c, which is based on long values.  Both bitmap_set from
    lib/bitmap.c and bitmap_set_ll, which is the lockless version from
    genalloc.c, use BITMAP_LAST_WORD_MASK to set the first bits in a long in
    the bitmap.
    
    That one uses (1 << bits) - 1, 0b111, if you are setting the first three
    bits.  This means that the API counts from the least significant bits
    (LSB from now on) to the MSB.  The LSB in the first long is bit 0, then.
    The same works for the lookup functions.
    
    The genalloc code uses longs for the bitmap, as it should.  In
    include/linux/genalloc.h, struct gen_pool_chunk has unsigned long
    bits[0] as its last member.  When allocating the struct, genalloc should
    reserve enough space for the bitmap.  This should be a proper number of
    longs that can fit the amount of bits in the bitmap.
    
    However, genalloc allocates an integer number of bytes that fit the
    amount of bits, but may not be an integer amount of longs.  9 bytes, for
    example, could be allocated for 70 bits.
    
    This is a problem in itself if the Least Significat Bit in a long is in
    the byte with the largest address, which happens in Big Endian machines.
    This means genalloc is not allocating the byte in which it will try to
    set or check for a bit.
    
    This may end up in memory corruption, where genalloc will try to set the
    bits it has not allocated.  In fact, genalloc may not set these bits
    because it may find them already set, because they were not zeroed since
    they were not allocated.  And that's what causes a BUG when
    gen_pool_destroy is called and check for any set bits.
    
    What really happens is that genalloc uses kmalloc_node with __GFP_ZERO
    on gen_pool_add_virt.  With SLAB and SLUB, this means the whole slab
    will be cleared, not only the requested bytes.  Since struct
    gen_pool_chunk has a size that is a multiple of 8, and slab sizes are
    multiples of 8, we get lucky and allocate and clear the right amount of
    bytes.
    
    Hower, this is not the case with SLOB or with older code that did memset
    after allocating instead of using __GFP_ZERO.
    
    So, a simple module as this (running 3.6.0), will cause a crash when
    rmmod'ed.
    
      [root@phantom-lp2 foo]# cat foo.c
      #include <linux/kernel.h>
      #include <linux/module.h>
      #include <linux/init.h>
      #include <linux/genalloc.h>
    
      MODULE_LICENSE("GPL");
      MODULE_VERSION("0.1");
    
      static struct gen_pool *foo_pool;
    
      static __init int foo_init(void)
      {
              int ret;
              foo_pool = gen_pool_create(10, -1);
              if (!foo_pool)
                      return -ENOMEM;
              ret = gen_pool_add(foo_pool, 0xa0000000, 32 << 10, -1);
              if (ret) {
                      gen_pool_destroy(foo_pool);
                      return ret;
              }
              return 0;
      }
    
      static __exit void foo_exit(void)
      {
              gen_pool_destroy(foo_pool);
      }
    
      module_init(foo_init);
      module_exit(foo_exit);
      [root@phantom-lp2 foo]# zcat /proc/config.gz | grep SLOB
      CONFIG_SLOB=y
      [root@phantom-lp2 foo]# insmod ./foo.ko
      [root@phantom-lp2 foo]# rmmod foo
      ------------[ cut here ]------------
      kernel BUG at lib/genalloc.c:243!
      cpu 0x4: Vector: 700 (Program Check) at [c0000000bb0e7960]
          pc: c0000000003cb50c: .gen_pool_destroy+0xac/0x110
          lr: c0000000003cb4fc: .gen_pool_destroy+0x9c/0x110
          sp: c0000000bb0e7be0
         msr: 8000000000029032
        current = 0xc0000000bb0e0000
        paca    = 0xc000000006d30e00   softe: 0        irq_happened: 0x01
          pid   = 13044, comm = rmmod
      kernel BUG at lib/genalloc.c:243!
      [c0000000bb0e7ca0] d000000004b00020 .foo_exit+0x20/0x38 [foo]
      [c0000000bb0e7d20] c0000000000dff98 .SyS_delete_module+0x1a8/0x290
      [c0000000bb0e7e30] c0000000000097d4 syscall_exit+0x0/0x94
      --- Exception: c00 (System Call) at 000000800753d1a0
      SP (fffd0b0e640) is in userspace
    
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
    Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
    Cc: Benjamin Gaignard <benjamin.gaignard@stericsson.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 49c030f43ddd0b78b73effb0e5a3c636085b2751
Author: Jan Kara <jack@suse.cz>
Date:   Thu Oct 25 13:37:31 2012 -0700

    mm: fix XFS oops due to dirty pages without buffers on s390
    
    commit ef5d437f71afdf4afdbab99213add99f4b1318fd upstream.
    
    On s390 any write to a page (even from kernel itself) sets architecture
    specific page dirty bit.  Thus when a page is written to via buffered
    write, HW dirty bit gets set and when we later map and unmap the page,
    page_remove_rmap() finds the dirty bit and calls set_page_dirty().
    
    Dirtying of a page which shouldn't be dirty can cause all sorts of
    problems to filesystems.  The bug we observed in practice is that
    buffers from the page get freed, so when the page gets later marked as
    dirty and writeback writes it, XFS crashes due to an assertion
    BUG_ON(!PagePrivate(page)) in page_buffers() called from
    xfs_count_page_state().
    
    Similar problem can also happen when zero_user_segment() call from
    xfs_vm_writepage() (or block_write_full_page() for that matter) set the
    hardware dirty bit during writeback, later buffers get freed, and then
    page unmapped.
    
    Fix the issue by ignoring s390 HW dirty bit for page cache pages of
    mappings with mapping_cap_account_dirty().  This is safe because for
    such mappings when a page gets marked as writeable in PTE it is also
    marked dirty in do_wp_page() or do_page_fault().  When the dirty bit is
    cleared by clear_page_dirty_for_io(), the page gets writeprotected in
    page_mkclean().  So pagecache page is writeable if and only if it is
    dirty.
    
    Thanks to Hugh Dickins for pointing out mapping has to have
    mapping_cap_account_dirty() for things to work and proposing a cleaned
    up variant of the patch.
    
    The patch has survived about two hours of running fsx-linux on tmpfs
    while heavily swapping and several days of running on out build machines
    where the original problem was triggered.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    [bwh: Backported to 3.2: adjust context; in particular there is no local
     'anon' in page_remove_rmap()]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d4d11f5bb26878b31b602d8b363e89f291426b47
Author: Oleg Nesterov <oleg@redhat.com>
Date:   Thu Oct 25 22:28:12 2012 +0200

    freezer: exec should clear PF_NOFREEZE along with PF_KTHREAD
    
    commit b40a79591ca918e7b91b0d9b6abd5d00f2e88c19 upstream.
    
    flush_old_exec() clears PF_KTHREAD but forgets about PF_NOFREEZE.
    
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    [bwh: Backported to 3.2: PF_FORKNOEXEC is cleared elsewhere]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a96ac56572db0cbed95a7a2f932cbb1ef3cf415d
Author: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Date:   Tue Oct 16 13:17:43 2012 -0700

    xhci: Fix potential NULL ptr deref in command cancellation.
    
    commit 43a09f7fb01fa1e091416a2aa49b6c666458c1ee upstream.
    
    The command cancellation code doesn't check whether find_trb_seg()
    couldn't find the segment that contains the TRB to be canceled.  This
    could cause a NULL pointer deference later in the function when next_trb
    is called.  It's unlikely to happen unless something is wrong with the
    command ring pointers, so add some debugging in case it happens.
    
    This patch should be backported to stable kernels as old as 3.0, that
    contain the commit b63f4053cc8aa22a98e3f9a97845afe6c15d0a0d "xHCI:
    handle command after aborting the command ring".
    
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit e6fc3c5c6908c771156b9cf38b58228014705647
Author: Anisse Astier <anisse@astier.eu>
Date:   Tue Oct 9 12:22:37 2012 +0200

    ehci: Add yet-another Lucid nohandoff pci quirk
    
    commit 8daf8b6086f9d575200cd0aa3797e26137255609 upstream.
    
    Board name changed on another shipping Lucid tablet.
    
    Signed-off-by: Anisse Astier <anisse@astier.eu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6ca4ef62a10f3358951ddd18c2e9aec25530538b
Author: Anisse Astier <anisse@astier.eu>
Date:   Tue Oct 9 12:22:36 2012 +0200

    ehci: fix Lucid nohandoff pci quirk to be more generic with BIOS versions
    
    commit c323dc023b9501e5d09582ec7efd1d40a9001d99 upstream.
    
    BIOS vendors keep changing the BIOS versions. Only match the beginning
    of the string to match all Lucid tablets with board name M11JB.
    
    Signed-off-by: Anisse Astier <anisse@astier.eu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5dc9177f7fa81876c661b52d50f5d85aa67216ac
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 18:56:33 2012 +0200

    USB: mos7840: remove invalid disconnect handling
    
    commit e681b66f2e19fadbe8a7e2a17900978cb6bc921f upstream.
    
    Remove private zombie flag used to signal disconnect and to prevent
    control urb from being submitted from interrupt urb completion handler.
    
    The control urb will not be re-submitted as both the control urb and the
    interrupt urb is killed on disconnect.
    
    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 9bddee8d24460a26107cf2ad1ff5c045772e307b
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 18:56:32 2012 +0200

    USB: mos7840: remove NULL-urb submission
    
    commit 28c3ae9a8cf45f439c9a0779ebd0256e2ae72813 upstream.
    
    The private int_urb is never allocated so the submission from the
    control completion handler will always fail. Remove this odd piece of
    broken code.
    
    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 1b5863712a104d321d7321077a2f484edddf5ef3
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 13:35:10 2012 +0200

    USB: mos7840: fix port-device leak in error path
    
    commit 3eb55cc4ed88eee3b5230f66abcdbd2a91639eda upstream.
    
    The driver set the usb-serial port pointers to NULL on errors in attach,
    effectively preventing usb-serial core from decrementing the port ref
    counters and releasing the port devices and associated data.
    
    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 61824fc04763ad0de619df9d1c2bf441b2f57123
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 13:35:09 2012 +0200

    USB: mos7840: fix urb leak at release
    
    commit 65a4cdbb170e4ec1a7fa0e94936d47e24a17b0e8 upstream.
    
    Make sure control urb is freed at release.
    
    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 87df704c0761f76644e3b4cc689805cfe60f874c
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 10:29:18 2012 +0200

    USB: sierra: fix memory leak in probe error path
    
    commit 084817d79399ab5ccab2f90a148b0369912a8369 upstream.
    
    Move interface data allocation to attach so that it is deallocated on
    errors in usb-serial probe.
    
    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 05d84306250bff450f5f4b9da3f46125ba46c9d1
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 10:29:17 2012 +0200

    USB: sierra: fix memory leak in attach error path
    
    commit 7e41f9bcdd2e813ea2a3c40db291d87ea06b559f upstream.
    
    Make sure port private data is deallocated on errors in attach.
    
    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 ce834659bc2bbf9a89159bdd8a5a99f21e8f15a3
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 10:29:14 2012 +0200

    USB: mct_u232: fix broken close
    
    commit 5260e458f5eff269a43e4f1e9c47186c57b88ddb upstream.
    
    Make sure generic close is called at close.
    
    The driver relies on the generic write implementation but did not call
    generic close.
    
    Note that the call to kill the read urb is not redundant, as mct_u232
    uses an interrupt urb from the second port as the read urb and that
    generic close therefore fails to kill it.
    
    Compile-only tested.
    
    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 5faf945e7a99b828ecfee43871aee19ec0a03876
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 10:29:12 2012 +0200

    USB: opticon: fix memory leak in error path
    
    commit acbf0e5263de563e25f7c104868e4490b9e72b13 upstream.
    
    Fix memory leak in write error path.
    
    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 f5d45e42e0260ad3459d3be72b9e47d20b568910
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 10:29:11 2012 +0200

    USB: opticon: fix DMA from stack
    
    commit ea0dbebffe118724cd4df7d9b071ea8ee48d48f0 upstream.
    
    Make sure to allocate the control-message buffer dynamically as some
    platforms cannot do DMA from stack.
    
    Note that only the first byte of the old buffer was used.
    
    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 31945e40c63cbbb2040f81aa28418514b8908e1d
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 10:29:01 2012 +0200

    USB: whiteheat: fix memory leak in error path
    
    commit c129197c99550d356cf5f69b046994dd53cd1b9d upstream.
    
    Make sure command buffer is deallocated in case of errors during attach.
    
    Cc: <support@connecttech.com>
    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 e18dbfae927d33d746f6bf8b14f2d030c12b3ba7
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Wed Oct 24 20:37:51 2012 +0200

    vhost: fix mergeable bufs on BE hosts
    
    commit 910a578f7e9400a78a3b13aba0b4d2df16a2cb05 upstream.
    
    We copy head count to a 16 bit field, this works by chance on LE but on
    BE guest gets 0. Fix it up.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Tested-by: Alexander Graf <agraf@suse.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6a026352765b0830d1e6f1fa2a8c1c0499fc1508
Author: Geert Uytterhoeven <geert@linux-m68k.org>
Date:   Sat Sep 29 22:23:19 2012 +0200

    sysfs: sysfs_pathname/sysfs_add_one: Use strlcat() instead of strcat()
    
    commit 66081a72517a131430dcf986775f3268aafcb546 upstream.
    
    The warning check for duplicate sysfs entries can cause a buffer overflow
    when printing the warning, as strcat() doesn't check buffer sizes.
    Use strlcat() instead.
    
    Since strlcat() doesn't return a pointer to the passed buffer, unlike
    strcat(), I had to convert the nested concatenation in sysfs_add_one() to
    an admittedly more obscure comma operator construct, to avoid emitting code
    for the concatenation if CONFIG_BUG is disabled.
    
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 9f9f1c8ccd02d7eb704105833f959a2b96876544
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Fri Oct 12 13:22:42 2012 -0700

    Drivers: hv: Cleanup error handling in vmbus_open()
    
    commit 1392550240aaa72ce3a094a38bd23525cd67ce60 upstream.
    
    Fix a memory leak  in the error handling path in the function vmbus_open().
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
    Reported-by: Jason Wang <jasowang@redhat.com>
    Acked-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0687fd33e67b20ac425eac5f6736f8b4283f4eb9
Author: Michael Shigorin <mike@osdn.org.ua>
Date:   Mon Oct 22 12:18:56 2012 +0300

    usb-storage: add unusual_devs entry for Casio EX-N1 digital camera
    
    commit d7870af7e2e3a91b462075ec1ca669b482215187 upstream.
    
    This commit sets removable subclass for Casio EX-N1 digital camera.
    
    The patch has been tested within an ALT Linux kernel:
    http://git.altlinux.org/people/led/packages/?p=kernel-image-3.0.git;a=commitdiff;h=c0fd891836e89fe0c93a4d536a59216d90e4e3e7
    
    See also https://bugzilla.kernel.org/show_bug.cgi?id=49221
    
    Signed-off-by: Oleksandr Chumachenko <ledest@gmail.com>
    Signed-off-by: Michael Shigorin <mike@osdn.org.ua>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8bca6a55e7f0abd7328ce1ba1454a0dd5f175477
Author: Lennart Sorensen <lsorense@csclub.uwaterloo.ca>
Date:   Wed Oct 24 10:23:09 2012 -0400

    USB: serial: Fix memory leak in sierra_release()
    
    commit f7bc5051667b74c3861f79eed98c60d5c3b883f7 upstream.
    
    I found a memory leak in sierra_release() (well sierra_probe() I guess)
    that looses 8 bytes each time the driver releases a device.
    
    Signed-off-by: Len Sorensen <lsorense@csclub.uwaterloo.ca>
    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 36aa56684247a98e92bf5ca97d8c0833cbe9b909
Author: Felix Fietkau <nbd@openwrt.org>
Date:   Wed Oct 17 13:50:43 2012 +0200

    Revert "ath9k_hw: Updated AR9003 tx gain table for 5GHz"
    
    commit 73b26df5fa1a6245d6fc982362518b620bc7c2fe upstream.
    
    This reverts commit a240dc7b3c7463bd60cf0a9b2a90f52f78aae0fd.
    
    This commit is reducing tx power by at least 10 db on some devices,
    e.g. the Buffalo WZR-HP-G450H.
    
    Signed-off-by: Felix Fietkau <nbd@openwrt.org>
    Cc: rmanohar@qca.qualcomm.com
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a3e1d0bc4c950b597890ec851c3ea9ec709599dd
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Mon Oct 22 17:14:36 2012 -0400

    SUNRPC: Get rid of the xs_error_report socket callback
    
    commit f878b657ce8e7d3673afe48110ec208a29e38c4a upstream.
    
    Chris Perl reports that we're seeing races between the wakeup call in
    xs_error_report and the connect attempts. Basically, Chris has shown
    that in certain circumstances, the call to xs_error_report causes the
    rpc_task that is responsible for reconnecting to wake up early, thus
    triggering a disconnect and retry.
    
    Since the sk->sk_error_report() calls in the socket layer are always
    followed by a tcp_done() in the cases where we care about waking up
    the rpc_tasks, just let the state_change callbacks take responsibility
    for those wake ups.
    
    Reported-by: Chris Perl <chris.perl@gmail.com>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Tested-by: Chris Perl <chris.perl@gmail.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d5b39621940bd5cf4acf43116af84281b4c3238e
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Tue Oct 23 17:50:07 2012 -0400

    SUNRPC: Prevent races in xs_abort_connection()
    
    commit 4bc1e68ed6a8b59be8a79eb719be515a55c7bc68 upstream.
    
    The call to xprt_disconnect_done() that is triggered by a successful
    connection reset will trigger another automatic wakeup of all tasks
    on the xprt->pending rpc_wait_queue. In particular it will cause an
    early wake up of the task that called xprt_connect().
    
    All we really want to do here is clear all the socket-specific state
    flags, so we split that functionality out of xs_sock_mark_closed()
    into a helper that can be called by xs_abort_connection()
    
    Reported-by: Chris Perl <chris.perl@gmail.com>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Tested-by: Chris Perl <chris.perl@gmail.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b6181a66e2678087ce98dd47554bd4a3ce54788d
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Tue Oct 23 11:40:02 2012 -0400

    Revert "SUNRPC: Ensure we close the socket on EPIPE errors too..."
    
    commit b9d2bb2ee537424a7f855e1f93eed44eb9ee0854 upstream.
    
    This reverts commit 55420c24a0d4d1fce70ca713f84aa00b6b74a70e.
    Now that we clear the connected flag when entering TCP_CLOSE_WAIT,
    the deadlock described in this commit is no longer possible.
    Instead, the resulting call to xs_tcp_shutdown() can interfere
    with pending reconnection attempts.
    
    Reported-by: Chris Perl <chris.perl@gmail.com>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Tested-by: Chris Perl <chris.perl@gmail.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 86024793d4781612d47a3e63a7682a9c3de1d771
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Tue Oct 23 11:35:47 2012 -0400

    SUNRPC: Clear the connect flag when socket state is TCP_CLOSE_WAIT
    
    commit d0bea455dd48da1ecbd04fedf00eb89437455fdc upstream.
    
    This is needed to ensure that we call xprt_connect() upon the next
    call to call_connect().
    
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Tested-by: Chris Perl <chris.perl@gmail.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 1d3bda6f1b995e50f3c8529333471351b986c503
Author: Andrew Morton <akpm@linux-foundation.org>
Date:   Tue Oct 23 14:09:39 2012 -0700

    amd64_edac:__amd64_set_scrub_rate(): avoid overindexing scrubrates[]
    
    commit 168bfeef7bba3f9784f7540b053e4ac72b769ce9 upstream.
    
    If none of the elements in scrubrates[] matches, this loop will cause
    __amd64_set_scrub_rate() to incorrectly use the n+1th element.
    
    As the function is designed to use the final scrubrates[] element in the
    case of no match, we can fix this bug by simply terminating the array
    search at the n-1th element.
    
    Boris: this code is fragile anyway, see here why:
    http://marc.info/?l=linux-kernel&m=135102834131236&w=2
    
    It will be rewritten more robustly soonish.
    
    Reported-by: Denis Kirjanov <kirjanov@gmail.com>
    Cc: Doug Thompson <dougthompson@xmission.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5b0398effd52c5483c0f28d3473206386a264138
Author: Chris Metcalf <cmetcalf@tilera.com>
Date:   Fri Oct 19 11:43:11 2012 -0400

    arch/tile: avoid generating .eh_frame information in modules
    
    commit 627072b06c362bbe7dc256f618aaa63351f0cfe6 upstream.
    
    The tile tool chain uses the .eh_frame information for backtracing.
    The vmlinux build drops any .eh_frame sections at link time, but when
    present in kernel modules, it causes a module load failure due to the
    presence of unsupported pc-relative relocations.  When compiling to
    use compiler feedback support, the compiler by default omits .eh_frame
    information, so we don't see this problem.  But when not using feedback,
    we need to explicitly suppress the .eh_frame.
    
    Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 05366b68ce37e1664b4df70912507453c7729d9b
Author: Andreas Herrmann <andreas.herrmann3@amd.com>
Date:   Tue Oct 23 00:55:10 2012 +0200

    cpufreq / powernow-k8: Remove usage of smp_processor_id() in preemptible code
    
    commit e4df1cbcc1f329e53a1fff7450b2229e0addff20 upstream.
    
    Commit 6889125b8b4e09c5e53e6ecab3433bed1ce198c9
    (cpufreq/powernow-k8: workqueue user shouldn't migrate the kworker to another CPU)
    causes powernow-k8 to trigger a preempt warning, e.g.:
    
      BUG: using smp_processor_id() in preemptible [00000000] code: cpufreq/3776
      caller is powernowk8_target+0x20/0x49
      Pid: 3776, comm: cpufreq Not tainted 3.6.0 #9
      Call Trace:
       [<ffffffff8125b447>] debug_smp_processor_id+0xc7/0xe0
       [<ffffffff814877e7>] powernowk8_target+0x20/0x49
       [<ffffffff81482b02>] __cpufreq_driver_target+0x82/0x8a
       [<ffffffff81484fc6>] cpufreq_governor_performance+0x4e/0x54
       [<ffffffff81482c50>] __cpufreq_governor+0x8c/0xc9
       [<ffffffff81482e6f>] __cpufreq_set_policy+0x1a9/0x21e
       [<ffffffff814839af>] store_scaling_governor+0x16f/0x19b
       [<ffffffff81484f16>] ? cpufreq_update_policy+0x124/0x124
       [<ffffffff8162b4a5>] ? _raw_spin_unlock_irqrestore+0x2c/0x49
       [<ffffffff81483640>] store+0x60/0x88
       [<ffffffff811708c0>] sysfs_write_file+0xf4/0x130
       [<ffffffff8111243b>] vfs_write+0xb5/0x151
       [<ffffffff811126e0>] sys_write+0x4a/0x71
       [<ffffffff816319a9>] system_call_fastpath+0x16/0x1b
    
    Fix this by by always using work_on_cpu().
    
    Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit de6274f449810e6050a3a8f364dcaf7f545cd3dd
Author: Octavian Purdila <octavian.purdila@intel.com>
Date:   Mon Oct 1 22:21:12 2012 +0300

    usb hub: send clear_tt_buffer_complete events when canceling TT clear work
    
    commit 3b6054da68f9b0d5ed6a7ed0f42a79e61904352c upstream.
    
    There is a race condition in the USB hub code with regard to handling
    TT clear requests that can get the HCD driver in a deadlock. Usually
    when an TT clear request is scheduled it will be executed immediately:
    
    <7>[    6.077583] usb 2-1.3: unlink qh1-0e01/f4d4db00 start 0 [1/2 us]
    <3>[    6.078041] usb 2-1: clear tt buffer port 3, a3 ep2 t04048d82
    <7>[    6.078299] hub_tt_work:731
    <7>[    9.309089] usb 2-1.5: link qh1-0e01/f4d506c0 start 0 [1/2 us]
    <7>[    9.324526] ehci_hcd 0000:00:1d.0: reused qh f4d4db00 schedule
    <7>[    9.324539] usb 2-1.3: link qh1-0e01/f4d4db00 start 0 [1/2 us]
    <7>[    9.341530] usb 1-1.1: link qh4-0e01/f397aec0 start 2 [1/2 us]
    <7>[   10.116159] usb 2-1.3: unlink qh1-0e01/f4d4db00 start 0 [1/2 us]
    <3>[   10.116459] usb 2-1: clear tt buffer port 3, a3 ep2 t04048d82
    <7>[   10.116537] hub_tt_work:731
    
    However, if a suspend operation is triggered before hub_tt_work is
    scheduled, hub_quiesce will cancel the work without notifying the HCD
    driver:
    
    <3>[   35.033941] usb 2-1: clear tt buffer port 3, a3 ep2 t04048d80
    <5>[   35.034022] sd 0:0:0:0: [sda] Stopping disk
    <7>[   35.034039] hub 2-1:1.0: hub_suspend
    <7>[   35.034067] usb 2-1: unlink qh256-0001/f3b1ab00 start 1 [1/0 us]
    <7>[   35.035085] hub 1-0:1.0: hub_suspend
    <7>[   35.035102] usb usb1: bus suspend, wakeup 0
    <7>[   35.035106] ehci_hcd 0000:00:1a.0: suspend root hub
    <7>[   35.035298] hub 2-0:1.0: hub_suspend
    <7>[   35.035313] usb usb2: bus suspend, wakeup 0
    <7>[   35.035315] ehci_hcd 0000:00:1d.0: suspend root hub
    <6>[   35.250017] PM: suspend of devices complete after 216.979 msecs
    <6>[   35.250822] PM: late suspend of devices complete after 0.799 msecs
    <7>[   35.252343] ehci_hcd 0000:00:1d.0: wakeup: 1
    <7>[   35.262923] ehci_hcd 0000:00:1d.0: --> PCI D3hot
    <7>[   35.263302] ehci_hcd 0000:00:1a.0: wakeup: 1
    <7>[   35.273912] ehci_hcd 0000:00:1a.0: --> PCI D3hot
    <6>[   35.274254] PM: noirq suspend of devices complete after 23.442 msecs
    <6>[   35.274975] ACPI: Preparing to enter system sleep state S3
    <6>[   35.292666] PM: Saving platform NVS memory
    <7>[   35.295030] Disabling non-boot CPUs ...
    <6>[   35.297351] CPU 1 is now offline
    <6>[   35.300345] CPU 2 is now offline
    <6>[   35.303929] CPU 3 is now offline
    <7>[   35.303931] lockdep: fixing up alternatives.
    <6>[   35.304825] Extended CMOS year: 2000
    
    When the device will resume the EHCI driver will get stuck in
    ehci_endpoint_disable waiting for the tt_clearing flag to reset:
    
    <0>[   47.610967] usb 2-1.3: **** DPM device timeout ****
    <7>[   47.610972]  f2f11c60 00000092 f2f11c0c c10624a5 00000003 f4c6e880 c1c8a4c0 c1c8a4c0
    <7>[   47.610983]  15c55698 0000000b f56b34c0 f2a45b70 f4c6e880 00000082 f2a4602c f2f11c30
    <7>[   47.610993]  c10787f8 f4cac000 f2a45b70 00000000 f4cac010 f2f11c58 00000046 00000001
    <7>[   47.611004] Call Trace:
    <7>[   47.611006]  [<c10624a5>] ? sched_clock_cpu+0xf5/0x160
    <7>[   47.611019]  [<c10787f8>] ? lock_release_holdtime.part.22+0x88/0xf0
    <7>[   47.611026]  [<c103ed46>] ? lock_timer_base.isra.35+0x26/0x50
    <7>[   47.611034]  [<c17592d3>] ? schedule_timeout+0x133/0x290
    <7>[   47.611044]  [<c175b43e>] schedule+0x1e/0x50
    <7>[   47.611051]  [<c17592d8>] schedule_timeout+0x138/0x290
    <7>[   47.611057]  [<c10624a5>] ? sched_clock_cpu+0xf5/0x160
    <7>[   47.611063]  [<c103e560>] ? usleep_range+0x40/0x40
    <7>[   47.611070]  [<c1759445>] schedule_timeout_uninterruptible+0x15/0x20
    <7>[   47.611077]  [<c14935f4>] ehci_endpoint_disable+0x64/0x160
    <7>[   47.611084]  [<c147d1ee>] ? usb_hcd_flush_endpoint+0x10e/0x1d0
    <7>[   47.611092]  [<c1165663>] ? sysfs_add_file+0x13/0x20
    <7>[   47.611100]  [<c147d5a9>] usb_hcd_disable_endpoint+0x29/0x40
    <7>[   47.611107]  [<c147fafc>] usb_disable_endpoint+0x5c/0x80
    <7>[   47.611111]  [<c147fb57>] usb_disable_interface+0x37/0x50
    <7>[   47.611116]  [<c1477650>] usb_reset_and_verify_device+0x4b0/0x640
    <7>[   47.611122]  [<c1474665>] ? hub_port_status+0xb5/0x100
    <7>[   47.611129]  [<c147a975>] usb_port_resume+0xd5/0x220
    <7>[   47.611136]  [<c148877f>] generic_resume+0xf/0x30
    <7>[   47.611142]  [<c14821a3>] usb_resume+0x133/0x180
    <7>[   47.611147]  [<c1473b10>] ? usb_dev_thaw+0x10/0x10
    <7>[   47.611152]  [<c1473b1d>] usb_dev_resume+0xd/0x10
    <7>[   47.611157]  [<c13baa60>] dpm_run_callback+0x40/0xb0
    <7>[   47.611164]  [<c13bdb03>] ? pm_runtime_enable+0x43/0x70
    <7>[   47.611171]  [<c13bafc6>] device_resume+0x1a6/0x2c0
    <7>[   47.611177]  [<c13ba940>] ? dpm_show_time+0xe0/0xe0
    <7>[   47.611183]  [<c13bb0f9>] async_resume+0x19/0x40
    <7>[   47.611189]  [<c10580c4>] async_run_entry_fn+0x64/0x160
    <7>[   47.611196]  [<c104a244>] ? process_one_work+0x104/0x480
    <7>[   47.611203]  [<c104a24c>] ? process_one_work+0x10c/0x480
    <7>[   47.611209]  [<c104a2c0>] process_one_work+0x180/0x480
    <7>[   47.611215]  [<c104a244>] ? process_one_work+0x104/0x480
    <7>[   47.611220]  [<c1058060>] ? async_schedule+0x10/0x10
    <7>[   47.611226]  [<c104c15c>] worker_thread+0x11c/0x2f0
    <7>[   47.611233]  [<c104c040>] ? manage_workers.isra.27+0x1f0/0x1f0
    <7>[   47.611239]  [<c10507f8>] kthread+0x78/0x80
    <7>[   47.611244]  [<c1750000>] ? timer_cpu_notify+0xd6/0x20d
    <7>[   47.611253]  [<c1050780>] ? __init_kthread_worker+0x60/0x60
    <7>[   47.611258]  [<c176357e>] kernel_thread_helper+0x6/0xd
    <7>[   47.611283] ------------[ cut here ]------------
    
    This patch changes hub_quiesce behavior to flush the TT clear work
    instead of canceling it, to make sure that no TT clear request remains
    uncompleted before suspend.
    
    Signed-off-by: Octavian Purdila <octavian.purdila@intel.com>
    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 4a40d59021b6b895e3f19e53a5dfee9fefca7855
Author: Will Deacon <will.deacon@arm.com>
Date:   Fri Oct 19 17:53:01 2012 +0100

    ARM: 7559/1: smp: switch away from the idmap before updating init_mm.mm_count
    
    commit 5f40b909728ad784eb43aa309d3c4e9bdf050781 upstream.
    
    When booting a secondary CPU, the primary CPU hands two sets of page
    tables via the secondary_data struct:
    
    	(1) swapper_pg_dir: a normal, cacheable, shared (if SMP) mapping
    	    of the kernel image (i.e. the tables used by init_mm).
    
    	(2) idmap_pgd: an uncached mapping of the .idmap.text ELF
    	    section.
    
    The idmap is generally used when enabling and disabling the MMU, which
    includes early CPU boot. In this case, the secondary CPU switches to
    swapper as soon as it enters C code:
    
    	struct mm_struct *mm = &init_mm;
    	unsigned int cpu = smp_processor_id();
    
    	/*
    	 * All kernel threads share the same mm context; grab a
    	 * reference and switch to it.
    	 */
    	atomic_inc(&mm->mm_count);
    	current->active_mm = mm;
    	cpumask_set_cpu(cpu, mm_cpumask(mm));
    	cpu_switch_mm(mm->pgd, mm);
    
    This causes a problem on ARMv7, where the identity mapping is treated as
    strongly-ordered leading to architecturally UNPREDICTABLE behaviour of
    exclusive accesses, such as those used by atomic_inc.
    
    This patch re-orders the secondary_start_kernel function so that we
    switch to swapper before performing any exclusive accesses.
    
    Cc: David McKay <david.mckay@st.com>
    Reported-by: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 3042c7c2ee52f0ebfc8e09bc2c4cdbff3fc4ec61
Author: Kees Cook <keescook@chromium.org>
Date:   Fri Oct 19 13:56:51 2012 -0700

    kernel/sys.c: fix stack memory content leak via UNAME26
    
    commit 2702b1526c7278c4d65d78de209a465d4de2885e upstream.
    
    Calling uname() with the UNAME26 personality set allows a leak of kernel
    stack contents.  This fixes it by defensively calculating the length of
    copy_to_user() call, making the len argument unsigned, and initializing
    the stack buffer to zero (now technically unneeded, but hey, overkill).
    
    CVE-2012-0957
    
    Reported-by: PaX Team <pageexec@freemail.hu>
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: PaX Team <pageexec@freemail.hu>
    Cc: Brad Spengler <spender@grsecurity.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit cab128d34ceeff27e4c0bc0ffbff213a3baedb93
Author: Stefán Freyr <stefan.freyr@gmail.com>
Date:   Fri Oct 19 22:46:00 2012 +0200

    ALSA: hda - add dock support for Thinkpad T430
    
    commit 84f98fdf7865fbd35b312eb39ea91e5618c514c7 upstream.
    
    I have a Lenovo ThinkPad T430 and an UltraBase Series 3 docking
    station.
    
    Without this patch, if I plug my headphones into the jack on the
    computer, everything works fine. The computer speakers mute and the
    audio is played in the headphones. However, if I plug into the docking
    station headphone jack the computer speakers are muted but there is no
    audio in the headphones.
    
    Addresses https://bugs.launchpad.net/bugs/1060372
    
    Signed-off-by: Joseph Salisbury <joseph.salisbury@canonical.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6488ee494d5fbac63fb7c8e2fc3400c3dd53972f
Author: David Vrabel <david.vrabel@citrix.com>
Date:   Fri Oct 19 17:29:07 2012 +0100

    xen/x86: don't corrupt %eip when returning from a signal handler
    
    commit a349e23d1cf746f8bdc603dcc61fae9ee4a695f6 upstream.
    
    In 32 bit guests, if a userspace process has %eax == -ERESTARTSYS
    (-512) or -ERESTARTNOINTR (-513) when it is interrupted by an event
    /and/ the process has a pending signal then %eip (and %eax) are
    corrupted when returning to the main process after handling the
    signal.  The application may then crash with SIGSEGV or a SIGILL or it
    may have subtly incorrect behaviour (depending on what instruction it
    returned to).
    
    The occurs because handle_signal() is incorrectly thinking that there
    is a system call that needs to restarted so it adjusts %eip and %eax
    to re-execute the system call instruction (even though user space had
    not done a system call).
    
    If %eax == -514 (-ERESTARTNOHAND (-514) or -ERESTART_RESTARTBLOCK
    (-516) then handle_signal() only corrupted %eax (by setting it to
    -EINTR).  This may cause the application to crash or have incorrect
    behaviour.
    
    handle_signal() assumes that regs->orig_ax >= 0 means a system call so
    any kernel entry point that is not for a system call must push a
    negative value for orig_ax.  For example, for physical interrupts on
    bare metal the inverse of the vector is pushed and page_fault() sets
    regs->orig_ax to -1, overwriting the hardware provided error code.
    
    xen_hypervisor_callback() was incorrectly pushing 0 for orig_ax
    instead of -1.
    
    Classic Xen kernels pushed %eax which works as %eax cannot be both
    non-negative and -RESTARTSYS (etc.), but using -1 is consistent with
    other non-system call entry points and avoids some of the tests in
    handle_signal().
    
    There were similar bugs in xen_failsafe_callback() of both 32 and
    64-bit guests. If the fault was corrected and the normal return path
    was used then 0 was incorrectly pushed as the value for orig_ax.
    
    Signed-off-by: David Vrabel <david.vrabel@citrix.com>
    Acked-by: Jan Beulich <JBeulich@suse.com>
    Acked-by: Ian Campbell <ian.campbell@citrix.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit adb0f4a1995dc2a166313ac5ddc0a2f4a5c2d4c6
Author: Heiko Carstens <heiko.carstens@de.ibm.com>
Date:   Thu Oct 18 11:11:01 2012 +0200

    s390: fix linker script for 31 bit builds
    
    commit c985cb37f1b39c2c8035af741a2a0b79f1fbaca7 upstream.
    
    Because of a change in the s390 arch backend of binutils (commit 23ecd77
    "Pick the default arch depending on the target size" in binutils repo)
    31 bit builds will fail since the linker would now try to create 64 bit
    binary output.
    Fix this by setting OUTPUT_ARCH to s390:31-bit instead of s390.
    Thanks to Andreas Krebbel for figuring out the issue.
    
    Fixes this build error:
    
      LD      init/built-in.o
    s390x-4.7.2-ld: s390:31-bit architecture of input file
     `arch/s390/kernel/head.o' is incompatible with s390:64-bit output
    
    Cc: Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 87c4bcc0d96ed2e72f92b8e937a55ef494135ca8
Author: Bjørn Mork <bjorn@mork.no>
Date:   Thu Oct 18 17:14:17 2012 +0200

    USB: option: add more ZTE devices
    
    commit 4b35f1c52943851b310afb09047bfe991ac8f5ae upstream.
    
    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 0ba595fd91d66d3b269b4d919443713e1839a782
Author: Bjørn Mork <bjorn@mork.no>
Date:   Thu Oct 18 17:19:53 2012 +0200

    USB: option: blacklist net interface on ZTE devices
    
    commit 1452df6f1b7e396d89c2a1fdbdc0e0e839f97671 upstream.
    
    Based on information from the ZTE Windows drivers.
    
    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 0d7d7745cc05f367f272daca859639a02e07feef
Author: Alexis R. Cortes <alexis.cortes@ti.com>
Date:   Wed Oct 17 14:09:12 2012 -0500

    usb: host: xhci: New system added for Compliance Mode Patch on SN65LVPE502CP
    
    commit 470809741a28c3092279f4e1f3f432e534d46068 upstream.
    
    This minor change adds a new system to which the "Fix Compliance Mode
    on SN65LVPE502CP Hardware" patch has to be applied also.
    
    System added:
    Vendor: Hewlett-Packard. System Model: Z1
    
    Signed-off-by: Alexis R. Cortes <alexis.cortes@ti.com>
    Acked-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 04dd5c71af5db7aa9b9c303292857bdfe57ff817
Author: Nicolas Boullis <nboullis@debian.org>
Date:   Tue Oct 16 00:06:23 2012 +0200

    usb: acm: fix the computation of the number of data bits
    
    commit 301a29da6e891e7eb95c843af0ecdbe86d01f723 upstream.
    
    The current code assumes that CSIZE is 0000060, which appears to be
    wrong on some arches (such as powerpc).
    
    Signed-off-by: Nicolas Boullis <nboullis@debian.org>
    Acked-by: Oliver Neukum <oneukum@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8716d18b3d70ac1f6f6b5b350d691bff020ccc52
Author: Ming Lei <ming.lei@canonical.com>
Date:   Tue Oct 16 21:21:21 2012 +0800

    USB: cdc-acm: fix pipe type of write endpoint
    
    commit c5211187f7ff8e8dbff4ebf7c011ac4c0ffe319c upstream.
    
    If the write endpoint is interrupt type, usb_sndintpipe() should
    be passed to usb_fill_int_urb() instead of usb_sndbulkpipe().
    
    Cc: Oliver Neukum <oneukum@suse.de>
    Signed-off-by: Ming Lei <ming.lei@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 7c0e8a8f31cb45aac347736fd72143bfa89355d3
Author: Sasha Levin <levinsasha928@gmail.com>
Date:   Tue Jul 17 00:01:26 2012 +0200

    SUNRPC: Prevent kernel stack corruption on long values of flush
    
    commit 212ba90696ab4884e2025b0b13726d67aadc2cd4 upstream.
    
    The buffer size in read_flush() is too small for the longest possible values
    for it. This can lead to a kernel stack corruption:
    
    [   43.047329] Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in: ffffffff833e64b4
    [   43.047329]
    [   43.049030] Pid: 6015, comm: trinity-child18 Tainted: G        W    3.5.0-rc7-next-20120716-sasha #221
    [   43.050038] Call Trace:
    [   43.050435]  [<ffffffff836c60c2>] panic+0xcd/0x1f4
    [   43.050931]  [<ffffffff833e64b4>] ? read_flush.isra.7+0xe4/0x100
    [   43.051602]  [<ffffffff810e94e6>] __stack_chk_fail+0x16/0x20
    [   43.052206]  [<ffffffff833e64b4>] read_flush.isra.7+0xe4/0x100
    [   43.052951]  [<ffffffff833e6500>] ? read_flush_pipefs+0x30/0x30
    [   43.053594]  [<ffffffff833e652c>] read_flush_procfs+0x2c/0x30
    [   43.053596]  [<ffffffff812b9a8c>] proc_reg_read+0x9c/0xd0
    [   43.053596]  [<ffffffff812b99f0>] ? proc_reg_write+0xd0/0xd0
    [   43.053596]  [<ffffffff81250d5b>] do_loop_readv_writev+0x4b/0x90
    [   43.053596]  [<ffffffff81250fd6>] do_readv_writev+0xf6/0x1d0
    [   43.053596]  [<ffffffff812510ee>] vfs_readv+0x3e/0x60
    [   43.053596]  [<ffffffff812511b8>] sys_readv+0x48/0xb0
    [   43.053596]  [<ffffffff8378167d>] system_call_fastpath+0x1a/0x1f
    
    Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 34fb2c5983d16fac57b1ff78b5dbfe98b12bbde0
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Sat Oct 13 00:30:28 2012 -0400

    NLM: nlm_lookup_file() may return NLMv4-specific error codes
    
    commit cd0b16c1c3cda12dbed1f8de8f1a9b0591990724 upstream.
    
    If the filehandle is stale, or open access is denied for some reason,
    nlm_fopen() may return one of the NLMv4-specific error codes nlm4_stale_fh
    or nlm4_failed. These get passed right through nlm_lookup_file(),
    and so when nlmsvc_retrieve_args() calls the latter, it needs to filter
    the result through the cast_status() machinery.
    
    Failure to do so, will trigger the BUG_ON() in encode_nlm_stat...
    
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Reported-by: Larry McVoy <lm@bitmover.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4bd0ee768c5242d7ae09dbb66c9e531a22da1f68
Author: David Henningsson <david.henningsson@canonical.com>
Date:   Wed Oct 17 12:43:44 2012 +0200

    ALSA: hda - Always check array bounds in alc_get_line_out_pfx
    
    commit 71aa5ebe36a4e936eff281b375a4707b6a8320f2 upstream.
    
    Even when CONFIG_SND_DEBUG is not enabled, we don't want to
    return an arbitrary memory location when the channel count is
    larger than we expected.
    
    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 66a0d04ab3977f62ae3dcec25bd6df4a830cd02c
Author: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
Date:   Thu Oct 4 16:37:16 2012 +0900

    cgroup: notify_on_release may not be triggered in some cases
    
    commit 1f5320d5972aa50d3e8d2b227b636b370e608359 upstream.
    
    notify_on_release must be triggered when the last process in a cgroup is
    move to another. But if the first(and only) process in a cgroup is moved to
    another, notify_on_release is not triggered.
    
    	# mkdir /cgroup/cpu/SRC
    	# mkdir /cgroup/cpu/DST
    	#
    	# echo 1 >/cgroup/cpu/SRC/notify_on_release
    	# echo 1 >/cgroup/cpu/DST/notify_on_release
    	#
    	# sleep 300 &
    	[1] 8629
    	#
    	# echo 8629 >/cgroup/cpu/SRC/tasks
    	# echo 8629 >/cgroup/cpu/DST/tasks
    	-> notify_on_release for /SRC must be triggered at this point,
    	   but it isn't.
    
    This is because put_css_set() is called before setting CGRP_RELEASABLE
    in cgroup_task_migrate(), and is a regression introduce by the
    commit:74a1166d(cgroups: make procs file writable), which was merged
    into v3.0.
    
    Cc: Ben Blum <bblum@andrew.cmu.edu>
    Acked-by: Li Zefan <lizefan@huawei.com>
    Signed-off-by: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 735dbc9e51ae26e10eb3a0f277cfd2d81ca675bb
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Tue Sep 25 16:40:12 2012 +0200

    iwlwifi: fix 6000 series channel switch command
    
    commit 8f7b8db6e0557c8437adf9371e020cd89a7e85dc upstream.
    
    The channel switch command for 6000 series devices
    is larger than the maximum inline command size of
    320 bytes. The command is therefore refused with a
    warning. Fix this by allocating the command and
    using the NOCOPY mechanism.
    
    Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    [bwh: Backported to 3.2: adjust filename, context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit de5bfe1d956feac7a0ed4df18a3f5eefd8c75a1c
Author: Stanislav Yakovlev <stas.yakovlev@gmail.com>
Date:   Mon Oct 15 14:14:32 2012 +0000

    net/wireless: ipw2200: Fix panic occurring in ipw_handle_promiscuous_tx()
    
    commit bf11315eeda510ea4fc1a2bf972d8155d31d89b4 upstream.
    
    The driver does not count space of radiotap fields when allocating skb for
    radiotap packet. This leads to kernel panic with the following call trace:
    
    ...
    [67607.676067] [<c152f90f>] error_code+0x67/0x6c
    [67607.676067] [<c142f831>] ? skb_put+0x91/0xa0
    [67607.676067] [<f8cf5e5b>] ? ipw_handle_promiscuous_tx+0x16b/0x2d0 [ipw2200]
    [67607.676067] [<f8cf5e5b>] ipw_handle_promiscuous_tx+0x16b/0x2d0 [ipw2200]
    [67607.676067] [<f8cf899b>] ipw_net_hard_start_xmit+0x8b/0x90 [ipw2200]
    [67607.676067] [<f8741c5a>] libipw_xmit+0x55a/0x980 [libipw]
    [67607.676067] [<c143d3e8>] dev_hard_start_xmit+0x218/0x4d0
    ...
    
    This bug was found by VittGam.
    https://bugzilla.kernel.org/show_bug.cgi?id=43255
    
    Signed-off-by: Stanislav Yakovlev <stas.yakovlev@gmail.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 3b3cbdb97533b1e47260a9dcb5fd9d7f4741de5c
Author: Piotr Haber <phaber@broadcom.com>
Date:   Thu Oct 11 14:05:15 2012 +0200

    bcma: fix unregistration of cores
    
    commit 1fffa905adffbf0d3767fc978ef09afb830275eb upstream.
    
    When cores are unregistered, entries
    need to be removed from cores list in a safe manner.
    
    Reported-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Reviewed-by: Arend Van Spriel <arend@broadcom.com>
    Signed-off-by: Piotr Haber <phaber@broadcom.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 69ec78aa6ff687c99e50b4e769046abe42717dc7
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Tue Oct 2 21:34:23 2012 +0200

    mac80211: check if key has TKIP type before updating IV
    
    commit 4045f72bcf3c293c7c5932ef001742d8bb5ded76 upstream.
    
    This patch fix corruption which can manifest itself by following crash
    when switching on rfkill switch with rt2x00 driver:
    https://bugzilla.redhat.com/attachment.cgi?id=615362
    
    Pointer key->u.ccmp.tfm of group key get corrupted in:
    
    ieee80211_rx_h_michael_mic_verify():
    
            /* update IV in key information to be able to detect replays */
            rx->key->u.tkip.rx[rx->security_idx].iv32 = rx->tkip_iv32;
            rx->key->u.tkip.rx[rx->security_idx].iv16 = rx->tkip_iv16;
    
    because rt2x00 always set RX_FLAG_MMIC_STRIPPED, even if key is not TKIP.
    
    We already check type of the key in different path in
    ieee80211_rx_h_michael_mic_verify() function, so adding additional
    check here is reasonable.
    
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d77d5bae994ce63c5bec55484a0f1ba75ed18081
Author: Egbert Eich <eich@suse.de>
Date:   Mon Oct 15 08:21:39 2012 +0200

    drm/radeon: Don't destroy I2C Bus Rec in radeon_ext_tmds_enc_destroy().
    
    commit 082918471139b07964967cfe5f70230909c82ae1 upstream.
    
    radeon_i2c_fini() walks thru the list of I2C bus recs rdev->i2c_bus[]
    to destroy each of them.
    radeon_ext_tmds_enc_destroy() however also has code to destroy it's
    associated I2C bus rec which has been obtained by radeon_i2c_lookup()
    and is therefore also in the i2c_bus[] list.
    This causes a double free resulting in a kernel panic when unloading
    the radeon driver.
    Removing destroy code from radeon_ext_tmds_enc_destroy() fixes this
    problem.
    
    agd5f: fix compiler warning
    
    Signed-off-by: Egbert Eich <eich@suse.de>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d2538f509271a60e57524a2a9fdc5e123ec41819
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Oct 10 10:18:35 2012 +0300

    oprofile, x86: Fix wrapping bug in op_x86_get_ctrl()
    
    commit 44009105081b51417f311f4c3be0061870b6b8ed upstream.
    
    The "event" variable is a u16 so the shift will always wrap to zero
    making the line a no-op.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Robert Richter <robert.richter@amd.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 59008b8335900e02576e160349e1e286311b91dd
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Apr 30 13:50:56 2012 +0000

    pcmcia: sharpsl: don't discard sharpsl_pcmcia_ops
    
    commit fdc858a466b738d35d3492bc7cf77b1dac98bf7c upstream.
    
    The sharpsl_pcmcia_ops structure gets passed into
    sa11xx_drv_pcmcia_probe, where it gets accessed at run-time,
    unlike all other pcmcia drivers that pass their structures
    into platform_device_add_data, which makes a copy.
    
    This means the gcc warning is valid and the structure
    must not be marked as __initdata.
    
    Without this patch, building collie_defconfig results in:
    
    drivers/pcmcia/pxa2xx_sharpsl.c:22:31: fatal error: mach-pxa/hardware.h: No such file or directory
    compilation terminated.
    make[3]: *** [drivers/pcmcia/pxa2xx_sharpsl.o] Error 1
    make[2]: *** [drivers/pcmcia] Error 2
    make[1]: *** [drivers] Error 2
    make: *** [sub-make] Error 2
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Cc: Dominik Brodowski <linux@dominikbrodowski.net>
    Cc: Russell King <rmk+kernel@arm.linux.org.uk>
    Cc: Pavel Machek <pavel@suse.cz>
    Cc: linux-pcmcia@lists.infradead.org
    Cc: Jochen Friedrich <jochen@scram.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 3154d1d8a3f7d057044667d744f02202a40826cd
Author: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Date:   Wed Oct 10 13:25:48 2012 -0400

    xen/bootup: allow {read|write}_cr8 pvops call.
    
    commit 1a7bbda5b1ab0e02622761305a32dc38735b90b2 upstream.
    
    We actually do not do anything about it. Just return a default
    value of zero and if the kernel tries to write anything but 0
    we BUG_ON.
    
    This fixes the case when an user tries to suspend the machine
    and it blows up in save_processor_state b/c 'read_cr8' is set
    to NULL and we get:
    
    kernel BUG at /home/konrad/ssd/linux/arch/x86/include/asm/paravirt.h:100!
    invalid opcode: 0000 [#1] SMP
    Pid: 2687, comm: init.late Tainted: G           O 3.6.0upstream-00002-gac264ac-dirty #4 Bochs Bochs
    RIP: e030:[<ffffffff814d5f42>]  [<ffffffff814d5f42>] save_processor_state+0x212/0x270
    
    .. snip..
    Call Trace:
     [<ffffffff810733bf>] do_suspend_lowlevel+0xf/0xac
     [<ffffffff8107330c>] ? x86_acpi_suspend_lowlevel+0x10c/0x150
     [<ffffffff81342ee2>] acpi_suspend_enter+0x57/0xd5
    
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8ad5c816c2d1203915602a8ce8b3f086204559a8
Author: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Date:   Wed Oct 10 13:30:47 2012 -0400

    xen/bootup: allow read_tscp call for Xen PV guests.
    
    commit cd0608e71e9757f4dae35bcfb4e88f4d1a03a8ab upstream.
    
    The hypervisor will trap it. However without this patch,
    we would crash as the .read_tscp is set to NULL. This patch
    fixes it and sets it to the native_read_tscp call.
    
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 3029c7814c046543125da61095eecefb446e9e42
Author: Jason Wessel <jason.wessel@windriver.com>
Date:   Fri Aug 10 12:21:15 2012 -0500

    mips,kgdb: fix recursive page fault with CONFIG_KPROBES
    
    commit f0a996eeeda214f4293e234df33b29bec003b536 upstream.
    
    This fault was detected using the kgdb test suite on boot and it
    crashes recursively due to the fact that CONFIG_KPROBES on mips adds
    an extra die notifier in the page fault handler.  The crash signature
    looks like this:
    
    kgdbts:RUN bad memory access test
    KGDB: re-enter exception: ALL breakpoints killed
    Call Trace:
    [<807b7548>] dump_stack+0x20/0x54
    [<807b7548>] dump_stack+0x20/0x54
    
    The fix for now is to have kgdb return immediately if the fault type
    is DIE_PAGE_FAULT and allow the kprobe code to decide what is supposed
    to happen.
    
    Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Cc: David S. Miller <davem@davemloft.net>
    Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 2ce7b03705f186f899e45b7d6b9a657c2138ac8c
Author: Johan Hedberg <johan.hedberg@intel.com>
Date:   Thu Oct 11 16:26:06 2012 +0200

    Bluetooth: SMP: Fix setting unknown auth_req bits
    
    commit 065a13e2cc665f6547dc7e8a9d6b6565badf940a upstream.
    
    When sending a pairing request or response we should not just blindly
    copy the value that the remote device sent. Instead we should at least
    make sure to mask out any unknown bits. This is particularly critical
    from the upcoming LE Secure Connections feature perspective as
    incorrectly indicating support for it (by copying the remote value)
    would cause a failure to pair with devices that support it.
    
    Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
    Acked-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 69cc003f594c8697e623c78f800c4c7bcaf7c900
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Oct 11 14:20:58 2012 +1100

    md/raid10: use correct limit variable
    
    commit 91502f099dfc5a1e8812898e26ee280713e1d002 upstream.
    
    Clang complains that we are assigning a variable to itself.  This should
    be using bad_sectors like the similar earlier check does.
    
    Bug has been present since 3.1-rc1.  It is minor but could
    conceivably cause corruption or other bad behaviour.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit fe54b1e7efb9b0c4bc0be5202c50639cd7571c8e
Author: Amerigo Wang <amwang@redhat.com>
Date:   Tue Oct 9 17:48:16 2012 +0000

    pktgen: fix crash when generating IPv6 packets
    
    commit 5aa8b572007c4bca1e6d3dd4c4820f1ae49d6bb2 upstream.
    
    For IPv6, sizeof(struct ipv6hdr) = 40, thus the following
    expression will result negative:
    
            datalen = pkt_dev->cur_pkt_size - 14 -
                      sizeof(struct ipv6hdr) - sizeof(struct udphdr) -
                      pkt_dev->pkt_overhead;
    
    And,  the check "if (datalen < sizeof(struct pktgen_hdr))" will be
    passed as "datalen" is promoted to unsigned, therefore will cause
    a crash later.
    
    This is a quick fix by checking if "datalen" is negative. The following
    patch will increase the default value of 'min_pkt_size' for IPv6.
    
    This bug should exist for a long time, so Cc -stable too.
    
    Cc: David S. Miller <davem@davemloft.net>
    Signed-off-by: Cong Wang <amwang@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6780e9e1d9f227fc2cf1ff966f43a5d794086e79
Author: David Henningsson <david.henningsson@canonical.com>
Date:   Wed Oct 10 16:32:09 2012 +0200

    ALSA: hda - do not detect jack on internal speakers for Realtek
    
    commit f7f4b2322bf7b8c5929b7eb5a667091f32592580 upstream.
    
    This caused the internal speaker to mute itself because it was
    present, which happened after powersave.
    It was found on Dell XPS 15 (L502x), ALC665.
    
    Reported-by: Da Fox <da.fox.mail@gmail.com>
    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 3b0622adf033c6ed9cc35adfcfc8dfad20c56445
Author: Michal Hocko <mhocko@suse.cz>
Date:   Wed Oct 10 11:51:09 2012 +0530

    nohz: Fix idle ticks in cpu summary line of /proc/stat
    
    commit 7386cdbf2f57ea8cff3c9fde93f206e58b9fe13f upstream.
    
    Git commit 09a1d34f8535ecf9 "nohz: Make idle/iowait counter update
    conditional" introduced a bug in regard to cpu hotplug. The effect is
    that the number of idle ticks in the cpu summary line in /proc/stat is
    still counting ticks for offline cpus.
    
    Reproduction is easy, just start a workload that keeps all cpus busy,
    switch off one or more cpus and then watch the idle field in top.
    On a dual-core with one cpu 100% busy and one offline cpu you will get
    something like this:
    
    %Cpu(s): 48.7 us,  1.3 sy,  0.0 ni, 50.0 id,  0.0 wa,  0.0 hi,  0.0 si,
    %0.0 st
    
    The problem is that an offline cpu still has ts->idle_active == 1.
    To fix this we should make sure that the cpu is online when calling
    get_cpu_idle_time_us and get_cpu_iowait_time_us.
    
    [Srivatsa: Rebased to current mainline]
    
    Reported-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Michal Hocko <mhocko@suse.cz>
    Reviewed-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
    Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
    Link: http://lkml.kernel.org/r/20121010061820.8999.57245.stgit@srivatsabhat.in.ibm.com
    Cc: deepthi@linux.vnet.ibm.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 311a597eb29216e6b61db30ddc729fd670459e8c
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Oct 10 08:50:35 2012 +0200

    ALSA: hda - Fix memory leaks at error path in patch_cirrus.c
    
    commit c5e0b6dbad9b4d18c561af90b384d02373f1c994 upstream.
    
    The proper destructor should be called at the error path.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    [bwh: Backported to 3.2: drop the change to nonexistent patch_cs4213()]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 814a7833df19e1de7447f870ae890adb12561627
Author: Dmitry Monakhov <dmonakhov@openvz.org>
Date:   Wed Oct 10 01:04:58 2012 -0400

    ext4: race-condition protection for ext4_convert_unwritten_extents_endio
    
    commit dee1f973ca341c266229faa5a1a5bb268bed3531 upstream.
    
    We assumed that at the time we call ext4_convert_unwritten_extents_endio()
    extent in question is fully inside [map.m_lblk, map->m_len] because
    it was already split during submission.  But this may not be true due to
    a race between writeback vs fallocate.
    
    If extent in question is larger than requested we will split it again.
    Special precautions should being done if zeroout required because
    [map.m_lblk, map->m_len] already contains valid data.
    
    Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit ba3385bc8c513fd741f09ef75e53e0e6547b079e
Author: Hugh Dickins <hughd@google.com>
Date:   Sun Oct 7 20:32:51 2012 -0700

    tmpfs,ceph,gfs2,isofs,reiserfs,xfs: fix fh_len checking
    
    commit 35c2a7f4908d404c9124c2efc6ada4640ca4d5d5 upstream.
    
    Fuzzing with trinity oopsed on the 1st instruction of shmem_fh_to_dentry(),
    	u64 inum = fid->raw[2];
    which is unhelpfully reported as at the end of shmem_alloc_inode():
    
    BUG: unable to handle kernel paging request at ffff880061cd3000
    IP: [<ffffffff812190d0>] shmem_alloc_inode+0x40/0x40
    Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
    Call Trace:
     [<ffffffff81488649>] ? exportfs_decode_fh+0x79/0x2d0
     [<ffffffff812d77c3>] do_handle_open+0x163/0x2c0
     [<ffffffff812d792c>] sys_open_by_handle_at+0xc/0x10
     [<ffffffff83a5f3f8>] tracesys+0xe1/0xe6
    
    Right, tmpfs is being stupid to access fid->raw[2] before validating that
    fh_len includes it: the buffer kmalloc'ed by do_sys_name_to_handle() may
    fall at the end of a page, and the next page not be present.
    
    But some other filesystems (ceph, gfs2, isofs, reiserfs, xfs) are being
    careless about fh_len too, in fh_to_dentry() and/or fh_to_parent(), and
    could oops in the same way: add the missing fh_len checks to those.
    
    Reported-by: Sasha Levin <levinsasha928@gmail.com>
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Sage Weil <sage@inktank.com>
    Cc: Steven Whitehouse <swhiteho@redhat.com>
    Cc: Christoph Hellwig <hch@infradead.org>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit c03970223182c35eeff66d4ff319bf2d97f4efc3
Author: Alexander Holler <holler@ahsoftware.de>
Date:   Tue Aug 14 09:11:09 2012 +0200

    video/udlfb: fix line counting in fb_write
    
    commit b8c4321f3d194469007f5f5f2b34ec278c264a04 upstream.
    
    Line 0 and 1 were both written to line 0 (on the display) and all subsequent
    lines had an offset of -1. The result was that the last line on the display
    was never overwritten by writes to /dev/fbN.
    
    Signed-off-by: Alexander Holler <holler@ahsoftware.de>
    Acked-by: Bernie Thompson <bernie@plugable.com>
    Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 20e6199e93250b6a6506f65c07e18fb18ad382ab
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Oct 9 10:18:23 2012 +0300

    timekeeping: Cast raw_interval to u64 to avoid shift overflow
    
    commit 5b3900cd409466c0070b234d941650685ad0c791 upstream.
    
    We fixed a bunch of integer overflows in timekeeping code during the 3.6
    cycle.  I did an audit based on that and found this potential overflow.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: John Stultz <johnstul@us.ibm.com>
    Link: http://lkml.kernel.org/r/20121009071823.GA19159@elgon.mountain
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    [bwh: Backported to 3.2: adjust context; use timekeeper.raw_interval]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a3c51b174d95aa3bce6845d03719928ab02289f6
Author: Hildner, Christian <christian.hildner@siemens.com>
Date:   Mon Oct 8 15:49:03 2012 +0200

    timers: Fix endless looping between cascade() and internal_add_timer()
    
    commit 26cff4e2aa4d666dc6a120ea34336b5057e3e187 upstream.
    
    Adding two (or more) timers with large values for "expires" (they have
    to reside within tv5 in the same list) leads to endless looping
    between cascade() and internal_add_timer() in case CONFIG_BASE_SMALL
    is one and jiffies are crossing the value 1 << 18. The bug was
    introduced between 2.6.11 and 2.6.12 (and survived for quite some
    time).
    
    This patch ensures that when cascade() is called timers within tv5 are
    not added endlessly to their own list again, instead they are added to
    the next lower tv level tv4 (as expected).
    
    Signed-off-by: Christian Hildner <christian.hildner@siemens.com>
    Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>
    Link: http://lkml.kernel.org/r/98673C87CB31274881CFFE0B65ECC87B0F5FC1963E@DEFTHW99EA4MSX.ww902.siemens.net
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit e14e98d41430a225e91800a118272718ddd4969d
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Tue Oct 2 11:03:31 2012 -0700

    storvsc: Account for in-transit packets in the RESET path
    
    commit 5c1b10ab7f93d24f29b5630286e323d1c5802d5c upstream.
    
    Properly account for I/O in transit before returning from the RESET call.
    In the absense of this patch, we could have a situation where the host may
    respond to a command that was issued prior to the issuance of the RESET
    command at some arbitrary time after responding to the RESET command.
    Currently, the host does not do anything with the RESET command.
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    [bwh: Backported to 3.2: adjust filename, context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 532522966057823f75a606d46cfba4ec5bf9dcc0
Author: Lukas Czerner <lczerner@redhat.com>
Date:   Thu Aug 16 16:38:45 2012 +0200

    scsi_debug: Fix off-by-one bug when unmapping region
    
    commit bc977749e967daa56de1922cf4cb38525631c51c upstream.
    
    Currently it is possible to unmap one more block than user requested to
    due to the off-by-one error in unmap_region(). This is probably due to
    the fact that the end variable despite its name actually points to the
    last block to unmap + 1. However in the condition it is handled as the
    last block of the region to unmap.
    
    The bug was not previously spotted probably due to the fact that the
    region was not zeroed, which has changed with commit
    be1dd78de5686c062bb3103f9e86d444a10ed783. With that commit we were able
    to corrupt the ext4 file system on 256M scsi_debug device with LBPRZ
    enabled using fstrim.
    
    Since the 'end' semantic is the same in several functions there this
    commit just fixes the condition to use the 'end' variable correctly in
    that context.
    
    Reported-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Lukas Czerner <lczerner@redhat.com>
    Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
    Acked-by: Douglas Gilbert <dgilbert@interlog.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    [bwh: Backported to 3.2: adjust context; unwrap the if-statement]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a92fc36ebe032a04313cdf16b2152e36ca7c20c3
Author: Russell King <rmk+kernel@arm.linux.org.uk>
Date:   Tue Oct 9 11:13:26 2012 +0100

    ARM: vfp: fix saving d16-d31 vfp registers on v6+ kernels
    
    commit 846a136881b8f73c1f74250bf6acfaa309cab1f2 upstream.
    
    Michael Olbrich reported that his test program fails when built with
    -O2 -mcpu=cortex-a8 -mfpu=neon, and a kernel which supports v6 and v7
    CPUs:
    
    volatile int x = 2;
    volatile int64_t y = 2;
    
    int main() {
    	volatile int a = 0;
    	volatile int64_t b = 0;
    	while (1) {
    		a = (a + x) % (1 << 30);
    		b = (b + y) % (1 << 30);
    		assert(a == b);
    	}
    }
    
    and two instances are run.  When built for just v7 CPUs, this program
    works fine.  It uses the "vadd.i64 d19, d18, d16" VFP instruction.
    
    It appears that we do not save the high-16 double VFP registers across
    context switches when the kernel is built for v6 CPUs.  Fix that.
    
    Tested-By: Michael Olbrich <m.olbrich@pengutronix.de>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5d1d1dbc9d31707d00d4c77f3359e6c9ed992766
Author: Feng Tang <feng.tang@intel.com>
Date:   Fri Sep 28 15:22:01 2012 +0800

    ACPI: EC: Add a quirk for CLEVO M720T/M730T laptop
    
    commit 67bfa9b60bd689601554526d144b21d529f78a09 upstream.
    
    By enlarging the GPE storm threshold back to 20, that laptop's
    EC works fine with interrupt mode instead of polling mode.
    
    https://bugzilla.kernel.org/show_bug.cgi?id=45151
    
    Reported-and-Tested-by: Francesco <trentini@dei.unipd.it>
    Signed-off-by: Feng Tang <feng.tang@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6e653c320e86a62e0079217f70fead75e9a56aec
Author: Feng Tang <feng.tang@intel.com>
Date:   Fri Sep 28 15:22:00 2012 +0800

    ACPI: EC: Make the GPE storm threshold a module parameter
    
    commit a520d52e99b14ba7db135e916348f12f2a6e09be upstream.
    
    The Linux EC driver includes a mechanism to detect GPE storms,
    and switch from interrupt-mode to polling mode.  However, polling
    mode sometimes doesn't work, so the workaround is problematic.
    Also, different systems seem to need the threshold for detecting
    the GPE storm at different levels.
    
    ACPI_EC_STORM_THRESHOLD was initially 20 when it's created, and
    was changed to 8 in 2.6.28 commit 06cf7d3c7 "ACPI: EC: lower interrupt storm
    threshold" to fix kernel bug 11892 by forcing the laptop in that bug to
    work in polling mode. However in bug 45151, it works fine in interrupt
    mode if we lift the threshold back to 20.
    
    This patch makes the threshold a module parameter so that user has a
    flexible option to debug/workaround this issue.
    
    The default is unchanged.
    
    This is also a preparation patch to fix specific systems:
    	https://bugzilla.kernel.org/show_bug.cgi?id=45151
    
    Signed-off-by: Feng Tang <feng.tang@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 9719a5f38c56b4005c5427e6730a6f808567d7f0
Author: Matthew Garrett <mjg59@srcf.ucam.org>
Date:   Fri Jun 22 13:49:31 2012 -0400

    module: taint kernel when lve module is loaded
    
    commit c99af3752bb52ba3aece5315279a57a477edfaf1 upstream.
    
    Cloudlinux have a product called lve that includes a kernel module. This
    was previously GPLed but is now under a proprietary license, but the
    module continues to declare MODULE_LICENSE("GPL") and makes use of some
    EXPORT_SYMBOL_GPL symbols. Forcibly taint it in order to avoid this.
    
    Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
    Cc: Alex Lyashkov <umka@cloudlinux.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0b02e6bf9f503004c22206de09589d52fcc5a5db
Author: Daniel Drake <dsd@laptop.org>
Date:   Tue Sep 4 11:45:32 2012 -0400

    viafb: don't touch clock state on OLPC XO-1.5
    
    commit 012a1211845eab69a5488d59eb87d24cc518c627 upstream.
    
    As detailed in the thread titled "viafb PLL/clock tweaking causes XO-1.5
    instability," enabling or disabling the IGA1/IGA2 clocks causes occasional
    stability problems during suspend/resume cycles on this platform.
    
    This is rather odd, as the documentation suggests that clocks have two
    states (on/off) and the default (stable) configuration is configured to
    enable the clock only when it is needed. However, explicitly enabling *or*
    disabling the clock triggers this system instability, suggesting that there
    is a 3rd state at play here.
    
    Leaving the clock enable/disable registers alone solves this problem.
    This fixes spurious reboots during suspend/resume behaviour introduced by
    commit b692a63a.
    
    Signed-off-by: Daniel Drake <dsd@laptop.org>
    Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f42ce0ca9eaf8a71f95dd0909c3ade7ab9cd824d
Author: J. Bruce Fields <bfields@redhat.com>
Date:   Wed Aug 29 15:21:58 2012 -0700

    nfsd4: fix nfs4 stateid leak
    
    commit cf9182e90b2af04245ac4fae497fe73fc71285b4 upstream.
    
    Processes that open and close multiple files may end up setting this
    oo_last_closed_stid without freeing what was previously pointed to.
    This can result in a major leak, visible for example by watching the
    nfsd4_stateids line of /proc/slabinfo.
    
    Reported-by: Cyril B. <cbay@excellency.fr>
    Tested-by: Cyril B. <cbay@excellency.fr>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 414f1c99192dafc1d09e0188c1481ef722fe05d6
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Wed Oct 3 16:25:17 2012 +0100

    staging: comedi: amplc_pc236: fix invalid register access during detach
    
    commit aaeb61a97b7159ebe30b18a422d04eeabfa8790b upstream.
    
    `pc236_detach()` is called by the comedi core if it attempted to attach
    a device and failed.  `pc236_detach()` calls `pc236_intr_disable()` if
    the comedi device private data pointer (`devpriv`) is non-null.  This
    test is insufficient as `pc236_intr_disable()` accesses hardware
    registers and the attach routine may have failed before it has saved
    their I/O base addresses.
    
    Fix it by checking `dev->iobase` is non-zero before calling
    `pc236_intr_disable()` as that means the I/O base addresses have been
    saved and the hardware registers can be accessed.  It also implies the
    comedi device private data pointer is valid, so there is no need to
    check it.
    
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    [Ian Abbott: This patch is for the stable 3.0 kernel.]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit bc25463b2238562c3470c3bb0e15a9799defde7b
Author: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
Date:   Fri Oct 12 04:34:17 2012 +0000

    tcp: resets are misrouted
    
    [ Upstream commit 4c67525849e0b7f4bd4fab2487ec9e43ea52ef29 ]
    
    After commit e2446eaa ("tcp_v4_send_reset: binding oif to iif in no
    sock case").. tcp resets are always lost, when routing is asymmetric.
    Yes, backing out that patch will result in misrouting of resets for
    dead connections which used interface binding when were alive, but we
    actually cannot do anything here.  What's died that's died and correct
    handling normal unbound connections is obviously a priority.
    
    Comment to comment:
    > This has few benefits:
    >   1. tcp_v6_send_reset already did that.
    
    It was done to route resets for IPv6 link local addresses. It was a
    mistake to do so for global addresses. The patch fixes this as well.
    
    Actually, the problem appears to be even more serious than guaranteed
    loss of resets.  As reported by Sergey Soloviev <sol@eqv.ru>, those
    misrouted resets create a lot of arp traffic and huge amount of
    unresolved arp entires putting down to knees NAT firewalls which use
    asymmetric routing.
    
    Signed-off-by: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0cf1f12a037169d284625ca3bc4687cc2b826499
Author: jeff.liu <jeff.liu@oracle.com>
Date:   Mon Oct 8 18:57:27 2012 +0000

    RDS: fix rds-ping spinlock recursion
    
    [ Upstream commit 5175a5e76bbdf20a614fb47ce7a38f0f39e70226 ]
    
    This is the revised patch for fixing rds-ping spinlock recursion
    according to Venkat's suggestions.
    
    RDS ping/pong over TCP feature has been broken for years(2.6.39 to
    3.6.0) since we have to set TCP cork and call kernel_sendmsg() between
    ping/pong which both need to lock "struct sock *sk". However, this
    lock has already been hold before rds_tcp_data_ready() callback is
    triggerred. As a result, we always facing spinlock resursion which
    would resulting in system panic.
    
    Given that RDS ping is only used to test the connectivity and not for
    serious performance measurements, we can queue the pong transmit to
    rds_wq as a delayed response.
    
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    CC: Venkat Venkatsubra <venkat.x.venkatsubra@oracle.com>
    CC: David S. Miller <davem@davemloft.net>
    CC: James Morris <james.l.morris@oracle.com>
    Signed-off-by: Jie Liu <jeff.liu@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 16e23aa20ef67e5a97347aecbeae843e72149a68
Author: Florian Zumbiehl <florz@florz.de>
Date:   Sun Oct 7 15:51:58 2012 +0000

    vlan: don't deliver frames for unknown vlans to protocols
    
    [ Upstream commit 48cc32d38a52d0b68f91a171a8d00531edc6a46e ]
    
    6a32e4f9dd9219261f8856f817e6655114cfec2f made the vlan code skip marking
    vlan-tagged frames for not locally configured vlans as PACKET_OTHERHOST if
    there was an rx_handler, as the rx_handler could cause the frame to be received
    on a different (virtual) vlan-capable interface where that vlan might be
    configured.
    
    As rx_handlers do not necessarily return RX_HANDLER_ANOTHER, this could cause
    frames for unknown vlans to be delivered to the protocol stack as if they had
    been received untagged.
    
    For example, if an ipv6 router advertisement that's tagged for a locally not
    configured vlan is received on an interface with macvlan interfaces attached,
    macvlan's rx_handler returns RX_HANDLER_PASS after delivering the frame to the
    macvlan interfaces, which caused it to be passed to the protocol stack, leading
    to ipv6 addresses for the announced prefix being configured even though those
    are completely unusable on the underlying interface.
    
    The fix moves marking as PACKET_OTHERHOST after the rx_handler so the
    rx_handler, if there is one, sees the frame unchanged, but afterwards,
    before the frame is delivered to the protocol stack, it gets marked whether
    there is an rx_handler or not.
    
    Signed-off-by: Florian Zumbiehl <florz@florz.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 380fd8550acc9c04fb2b7835a9663b5a0e53b840
Author: Graham Gower <graham.gower@gmail.com>
Date:   Mon Oct 8 08:34:50 2012 +0000

    skge: Add DMA mask quirk for Marvell 88E8001 on ASUS P5NSLI motherboard
    
    [ Upstream commit a2af139ff1cd85df586690ff626619ab1ee88b0a ]
    
    Marvell 88E8001 on an ASUS P5NSLI motherboard is unable to send/receive
    packets on a system with >4gb ram unless a 32bit DMA mask is used.
    
    This issue has been around for years and a fix was sent 3.5 years ago, but
    there was some debate as to whether it should instead be fixed as a PCI quirk.
    http://www.spinics.net/lists/netdev/msg88670.html
    
    However, 18 months later a similar workaround was introduced for another
    chipset exhibiting the same problem.
    http://www.spinics.net/lists/netdev/msg142287.html
    
    Signed-off-by: Graham Gower <graham.gower@gmail.com>
    Signed-off-by: Jan Ceuleers <jan.ceuleers@computer.org>
    Acked-by: Stephen Hemminger <shemminger@vyatta.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f5b6b28c1f2c77dcbbf4b0f478078c6d6a661628
Author: ramesh.nagappa@gmail.com <ramesh.nagappa@gmail.com>
Date:   Fri Oct 5 19:10:15 2012 +0000

    net: Fix skb_under_panic oops in neigh_resolve_output
    
    [ Upstream commit e1f165032c8bade3a6bdf546f8faf61fda4dd01c ]
    
    The retry loop in neigh_resolve_output() and neigh_connected_output()
    call dev_hard_header() with out reseting the skb to network_header.
    This causes the retry to fail with skb_under_panic. The fix is to
    reset the network_header within the retry loop.
    
    Signed-off-by: Ramesh Nagappa <ramesh.nagappa@ericsson.com>
    Reviewed-by: Shawn Lu <shawn.lu@ericsson.com>
    Reviewed-by: Robert Coulson <robert.coulson@ericsson.com>
    Reviewed-by: Billie Alsup <billie.alsup@ericsson.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit ad5ca6d13f5c9c2f34f0ebc0dbea3da0e417805b
Author: Devin Heitmueller <dheitmueller@kernellabs.com>
Date:   Mon Aug 6 22:47:03 2012 -0300

    au0828: fix case where STREAMOFF being called on stopped stream causes BUG()
    
    commit a595c1ce4c9d572cf53513570b9f1a263d7867f2 upstream.
    
    We weren't checking whether the resource was in use before calling
    res_free(), so applications which called STREAMOFF on a v4l2 device that
    wasn't already streaming would cause a BUG() to be hit (MythTV).
    
    Reported-by: Larry Finger <larry.finger@lwfinger.net>
    Reported-by: Jay Harbeston <jharbestonus@gmail.com>
    Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit eae685328a74c7731815e9e7cd12fe61ba30e3e4
Author: David S. Miller <davem@davemloft.net>
Date:   Wed Aug 15 00:37:29 2012 -0700

    sparc64: Be less verbose during vmemmap population.
    
    [ Upstream commit 2856cc2e4d0852c3ddaae9dcb19cb9396512eb08 ]
    
    On a 2-node machine with 256GB of ram we get 512 lines of
    console output, which is just too much.
    
    This mimicks Yinghai Lu's x86 commit c2b91e2eec9678dbda274e906cc32ea8f711da3b
    (x86_64/mm: check and print vmemmap allocation continuous) except that
    we aren't ever going to get contiguous block pointers in between calls
    so just print when the virtual address or node changes.
    
    This decreases the output by an order of 16.
    
    Also demote this to KERN_DEBUG.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a237282d20f7e84c3ce0586d7862ecb1088dfe5b
Author: Jiri Kosina <jkosina@suse.cz>
Date:   Wed Aug 1 21:10:51 2012 +0200

    sparc64: do not clobber personality flags in sys_sparc64_personality()
    
    [ Upstream commit a27032eee8cb6e16516f13c8a9752e9d5d4cc430 ]
    
    There are multiple errors in how sys_sparc64_personality() handles
    personality flags stored in top three bytes.
    
    - directly comparing current->personality against PER_LINUX32 doesn't work
      in cases when any of the personality flags stored in the top three bytes
      are used.
    - directly forcefully setting personality to PER_LINUX32 or PER_LINUX
      discards any flags stored in the top three bytes
    
    Fix the first one by properly using personality() macro to compare only
    PER_MASK bytes.
    Fix the second one by setting only the bits that should be set, instead of
    overwriting the whole value.
    
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 00f784c84afeae6380f6f5c3f993d3da501dc648
Author: David S. Miller <davem@davemloft.net>
Date:   Tue Oct 16 13:05:25 2012 -0700

    sparc64: Fix bit twiddling in sparc_pmu_enable_event().
    
    [ Upstream commit e793d8c6740f8fe704fa216e95685f4d92c4c4b9 ]
    
    There was a serious disconnect in the logic happening in
    sparc_pmu_disable_event() vs. sparc_pmu_enable_event().
    
    Event disable is implemented by programming a NOP event into the PCR.
    
    However, event enable was not reversing this operation.  Instead, it
    was setting the User/Priv/Hypervisor trace enable bits.
    
    That's not sparc_pmu_enable_event()'s job, that's what
    sparc_pmu_enable() and sparc_pmu_disable() do .
    
    The intent of sparc_pmu_enable_event() is clear, since it first clear
    out the event type encoding field.  So fix this by OR'ing in the event
    encoding rather than the trace enable bits.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6471fbc6eb71dd615075f58576ad813697700873
Author: David S. Miller <davem@davemloft.net>
Date:   Sun Oct 14 17:59:40 2012 -0700

    sparc64: Like x86 we should check current->mm during perf backtrace generation.
    
    [ Upstream commit 08280e6c4c2e8049ac61d9e8e3536ec1df629c0d ]
    
    If the MM is not active, only report the top-level PC.  Do not try to
    access the address space.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 1b4ea31d107d4b8985f56c939f712f8a0dd59271
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Wed Oct 10 17:25:00 2012 -0700

    sparc64: fix ptrace interaction with force_successful_syscall_return()
    
    [ Upstream commit 55c2770e413e96871147b9406a9c41fe9bc5209c ]
    
    we want syscall_trace_leave() called on exit from any syscall;
    skipping its call in case we'd done force_successful_syscall_return()
    is broken...
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6d89b22d7d5d34d0d65a1d28978110f68b3e4c17
Author: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Date:   Fri Jun 22 09:43:07 2012 +0200

    drm/i915: no lvds quirk for Zotac ZDBOX SD ID12/ID13
    
    commit 9756fe38d10b2bf90c81dc4d2f17d5632e135364 upstream.
    
    This box claims to have an LVDS interface but doesn't
    actually have one.
    
    Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f654d7c3bbc0290054492d780801a40f992a23b9
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Fri Apr 13 15:51:51 2012 +0200

    drm/i915: don't pwrite tiled objects through the gtt
    
    commit c07496fa61f4c5cb2addd1c57f6b22fcaeea2eeb upstream.
    
    ... we will botch up the bit17 swizzling. Furthermore tiled pwrite is
    a (now) unused slowpath, so no one really cares.
    
    This fixes the last swizzling issues I have with i-g-t on my bit17
    swizzling i915G. No regression, it's been broken since the dawn of
    gem, but it's nice for regression tracking when really _all_ i-g-t
    tests work.
    
    Actually this is not true, Chris Wilson noticed while reviewing this
    patch that the commit
    
    commit d9e86c0ee60f323e890484628f351bf50fa9a15d
    Author: Chris Wilson <chris@chris-wilson.co.uk>
    Date:   Wed Nov 10 16:40:20 2010 +0000
    
        drm/i915: Pipelined fencing [infrastructure]
    
    contained a functional change that broke things.
    
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    [Luís Picciochi Oliveira: I picked the commit Daniel suggested and
    edited it to affect the code that matched the same logical location on
    the same function.]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8b627487f0ca84067d592ab8a4d126620fa59092
Author: Bryan Schumaker <bjschuma@netapp.com>
Date:   Mon Sep 24 13:39:01 2012 -0400

    SUNRPC: Set alloc_slot for backchannel tcp ops
    
    commit 84e28a307e376f271505af65a7b7e212dd6f61f4 upstream.
    
    f39c1bfb5a03e2d255451bff05be0d7255298fa4 (SUNRPC: Fix a UDP transport
    regression) introduced the "alloc_slot" function for xprt operations,
    but never created one for the backchannel operations.  This patch fixes
    a null pointer dereference when mounting NFS over v4.1.
    
    Call Trace:
     [<ffffffffa0207957>] ? xprt_reserve+0x47/0x50 [sunrpc]
     [<ffffffffa02023a4>] call_reserve+0x34/0x60 [sunrpc]
     [<ffffffffa020e280>] __rpc_execute+0x90/0x400 [sunrpc]
     [<ffffffffa020e61a>] rpc_async_schedule+0x2a/0x40 [sunrpc]
     [<ffffffff81073589>] process_one_work+0x139/0x500
     [<ffffffff81070e70>] ? alloc_worker+0x70/0x70
     [<ffffffffa020e5f0>] ? __rpc_execute+0x400/0x400 [sunrpc]
     [<ffffffff81073d1e>] worker_thread+0x15e/0x460
     [<ffffffff8145c839>] ? preempt_schedule+0x49/0x70
     [<ffffffff81073bc0>] ? rescuer_thread+0x230/0x230
     [<ffffffff81079603>] kthread+0x93/0xa0
     [<ffffffff81465d04>] kernel_thread_helper+0x4/0x10
     [<ffffffff81079570>] ? kthread_freezable_should_stop+0x70/0x70
     [<ffffffff81465d00>] ? gs_change+0x13/0x13
    
    Signed-off-by: Bryan Schumaker <bjschuma@netapp.com>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit e48980d0eff084cc9ec51df85d655739c235668d
Author: Jiri Pirko <jpirko@redhat.com>
Date:   Tue Mar 20 18:10:01 2012 +0000

    e1000: fix vlan processing regression
    
    commit 52f5509fe8ccb607ff9b84ad618f244262336475 upstream.
    
    This patch fixes a regression introduced by commit "e1000: do vlan
    cleanup (799d531)".
    
    Apparently some e1000 chips (not mine) are sensitive about the order of
    setting vlan filter and vlan stripping/inserting functionality. So this
    patch changes the order so it's the same as before vlan cleanup.
    
    Reported-by: Ben Greear <greearb@candelatech.com>
    Signed-off-by: Jiri Pirko <jpirko@redhat.com>
    Tested-by: Ben Greear <greearb@candelatech.com>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    [Jonathan Nieder: It doesn't apply cleanly to kernels before
    v3.3-rc1~182^2~581 (net: introduce and use netdev_features_t for
    device features sets) but a backport is straightforward.]
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
    Tested-by: Andrey Jr. Melnikov <temnota@kmv.ru>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 810352f7bc7ee8788c89660bec3b7790e1c215bc
Author: David Henningsson <david.henningsson@canonical.com>
Date:   Tue Apr 10 13:05:29 2012 +0200

    ALSA: hda - Fix oops caused by recent commit "Fix internal mic for Lenovo Ideapad U300s"
    
    commit 83b0c6ba999643ee8ad6329f26e1cdc870e1a920 upstream.
    
    Make sure we don't dereference the "quirk" pointer when it is null.
    
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    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 a8cfa724f6059e312e7a10f3116f4d028842d73c
Author: Brian Norris <computersforpeace@gmail.com>
Date:   Fri Jul 13 09:28:24 2012 -0700

    mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver
    
    commit bf7a01bf7987b63b121d572b240c132ec44129c4 upstream.
    
    The NAND_CHIPOPTIONS_MSK has limited utility and is causing real bugs. It
    silently masks off at least one flag that might be set by the driver
    (NAND_NO_SUBPAGE_WRITE). This breaks the GPMI NAND driver and possibly
    others.
    
    Really, as long as driver writers exercise a small amount of care with
    NAND_* options, this mask is not necessary at all; it was only here to
    prevent certain options from accidentally being set by the driver. But the
    original thought turns out to be a bad idea occasionally. Thus, kill it.
    
    Note, this patch fixes some major gpmi-nand breakage.
    
    Signed-off-by: Brian Norris <computersforpeace@gmail.com>
    Tested-by: Huang Shijie <shijie8@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
    Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
    [Brian Norris: This is a backport for v3.2 stable.]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 04f2ad7734c4446f99a2c42503d6d94cf7271a8b
Author: Jan Kara <jack@suse.cz>
Date:   Wed Jul 11 23:16:25 2012 +0200

    jbd: Fix assertion failure in commit code due to lacking transaction credits
    
    commit 09e05d4805e6c524c1af74e524e5d0528bb3fef3 upstream.
    
    ext3 users of data=journal mode with blocksize < pagesize were occasionally
    hitting assertion failure in journal_commit_transaction() checking whether the
    transaction has at least as many credits reserved as buffers attached.  The
    core of the problem is that when a file gets truncated, buffers that still need
    checkpointing or that are attached to the committing transaction are left with
    buffer_mapped set. When this happens to buffers beyond i_size attached to a
    page stradding i_size, subsequent write extending the file will see these
    buffers and as they are mapped (but underlying blocks were freed) things go
    awry from here.
    
    The assertion failure just coincidentally (and in this case luckily as we would
    start corrupting filesystem) triggers due to journal_head not being properly
    cleaned up as well.
    
    Under some rare circumstances this bug could even hit data=ordered mode users.
    There the assertion won't trigger and we would end up corrupting the
    filesystem.
    
    We fix the problem by unmapping buffers if possible (in lots of cases we just
    need a buffer attached to a transaction as a place holder but it must not be
    written out anyway). And in one case, we just have to bite the bullet and wait
    for transaction commit to finish.
    
    Reviewed-by: Josef Bacik <jbacik@fusionio.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6f182a333e4cbaac645e73b3dc601bd456e2bad0
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Sun Sep 9 18:49:14 2012 +0100

    samsung-laptop: make the dmi check less strict (part 2)
    
    commit 3be324a94df0c3f032178d04549dbfbf6cccb09a upstream.
    
    These are the hunks that I dropped when backporting for 3.2.24,
    which are applicable now that we also have commit f34cd9ca
    ('samsung-laptop: don't handle backlight if handled by acpi/video').
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 7575321ed9310c37a94e87c464eefe0cc808290a
Author: Corentin Chary <corentincj@iksaif.net>
Date:   Sat Nov 26 11:00:00 2011 +0100

    samsung-laptop: don't handle backlight if handled by acpi/video
    
    commit f34cd9ca9320876e9c12764f052004628a03ba2d upstream.
    
    samsung-laptop is not at all related to ACPI, but since this interface
    is not documented at all, and the driver has to use it at load to
    understand how it works on the laptop, I think it's a good idea to
    disable it if a better solution is available.
    
    Signed-off-by: Corentin Chary <corentincj@iksaif.net>
    Signed-off-by: Matthew Garrett <mjg@redhat.com>
    [bwh: Backported to 3.2:
     - Adjust context, and change return to goto, since we do not have commit
       5dea7a2 ('samsung-laptop: move code into init/exit functions')
     - Use static variable since we do not have commit a6df489
       ('samsung-laptop: put all local variables in a single structure')]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 582e0a81e7e5bc587ff1f768793911799a46ca39
Author: Jan Engelhardt <jengelh@medozas.de>
Date:   Sat Jan 14 17:38:55 2012 +0100

    netfilter: ipset: avoid use of kernel-only types
    
    commit 5276e16bb6f35412583518d6f04651dd9dc114be upstream.
    
    When using the xt_set.h header in userspace, one will get these gcc
    reports:
    
    ipset/ip_set.h:184:1: error: unknown type name "u16"
    In file included from libxt_SET.c:21:0:
    netfilter/xt_set.h:61:2: error: unknown type name "u32"
    netfilter/xt_set.h:62:2: error: unknown type name "u32"
    
    Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
    Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>