commit 4de01ac37194505a91082dc9e131c5fe32b7b527
Author: Andi Kleen <andi@firstfloor.org>
Date:   Thu Apr 28 08:21:24 2011 -0700

    release-2.6.35.13
    
    Release 2.6.35.13
    
    From: Andi Kleen <andi@firstfloor.org>
    
    Release 2.6.35.13
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 47764cfbd17b4796f7f2d90c13832313ea95343f
Author: Chuck Ebbert <cebbert@redhat.com>
Date:   Tue Apr 26 20:21:50 2011 -0400

    2.6.35.13 longterm review
    
    Also please revert the patch "fix-cred-leak-in-af_netlink" from 2.6.35.12.
    The proper fix was "af_netlink-add-needed-scm_destroy-after-scm_send" which
    was also added in that release. Here's a revert patch:
    
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit f60b63aaa8f2054b5c8bac192ba99e3a99f2d72f
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sun Feb 20 10:03:12 2011 -0800

    Revert "tpm_tis: Use timeouts returned from TPM"
    
    [ upstream commit e58713724059da7d2982d6ad945192c8fca5b729 ]
    
    This reverts commit 9b29050f8f75916f974a2d231ae5d3cd59792296.
    
    It has caused hibernate regressions, for example Juri Sladby's report:
    
      "I'm unable to hibernate 2.6.37.1 unless I rmmod tpm_tis:
       [10974.074587] Suspending console(s) (use no_console_suspend to debug)
       [10974.103073] tpm_tis 00:0c: Operation Timed out
       [10974.103089] legacy_suspend(): pnp_bus_suspend+0x0/0xa0 returns -62
       [10974.103095] PM: Device 00:0c failed to freeze: error -62"
    
    and Rafael points out that some of the new conditionals in that commit
    seem to make no sense.  This commit needs more work and testing, let's
    revert it for now.
    
    Reported-by: Norbert Preining <preining@logic.at>
    Reported-and-requested-by: Jiri Slaby <jirislaby@gmail.com>
    Cc: Stefan Berger <stefanb@linux.vnet.ibm.com>
    Cc: Guillaume Chazarain <guichaz@gmail.com>
    Cc: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
    Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit a37486058b79610f79fabe9dba4156de0493f24c
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Mar 1 13:23:27 2011 -0800

    Revert "TPM: Long default timeout fix"
    
    [ upstream commit 8d1dc20e8d689c7e6a0a4d2c94e36a99d5793ecb ]
    
    This reverts commit c4ff4b829ef9e6353c0b133b7adb564a68054979.
    
    Ted Ts'o reports:
    
     "TPM is working for me so I can log into employer's network in 2.6.37.
      It broke when I tried 2.6.38-rc6, with the following relevant lines
      from my dmesg:
    
      [   11.081627] tpm_tis 00:0b: 1.2 TPM (device-id 0x0, rev-id 78)
      [   25.734114] tpm_tis 00:0b: Operation Timed out
      [   78.040949] tpm_tis 00:0b: Operation Timed out
    
      This caused me to get suspicious, especially since the _other_ TPM
      commit in 2.6.38 had already been reverted, so I tried reverting
      commit c4ff4b829e: "TPM: Long default timeout fix".  With this commit
      reverted, my TPM on my Lenovo T410 is once again working."
    
    Requested-and-tested-by: Theodore Ts'o <tytso@mit.edu>
    Acked-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 9128ce02d90d51012f561526d8c052f85a0d725b
Author: Phil Edworthy <PHIL.EDWORTHY@renesas.com>
Date:   Thu Apr 14 16:11:35 2011 +0100

    2.6.35.y: Revert "SH: Add missing consts to sys_execve() declaration"
    
    This reverts commit 1219932ca26da2026e598590a3b7a2f36b3c3621
    (commit d8b5fc01683c66060edc202d6bb5635365822181 upstream).
    
    The reverted commit depends on an upstream commit that has not
    been applied to 2.6.35.y (d7627467b7a8dd6944885290a03a07ceb28c10eb).
    
    This fixes a build failure on all SH devices:
    
    /arch/sh/kernel/process_32.c:299: error: conflicting types for 'sys_execve'
    /arch/sh/include/asm/syscalls_32.h:22: note: previous declaration of 'sys_execve' was here
    
    Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit a6cba0b73761e2d3b94b0cceb15ee1f5f52d2b85
Author: Dmitry Torokhov <dtor@vmware.com>
Date:   Tue Apr 12 23:06:28 2011 -0700

    USB: xhci - also free streams when resetting devices
    
    upstream commit: 2dea75d96ade3c7cd2bfe73f99c7b3291dc3d03a
    
    Currently, when resetting a device, xHCI driver disables all but one
    endpoints and frees their rings, but leaves alone any streams that
    might have been allocated. Later, when users try to free allocated
    streams, we oops in xhci_setup_no_streams_ep_input_ctx() because
    ep->ring is NULL.
    
    Let's free not only rings but also stream data as well, so that
    calling free_streams() on a device that was reset will be safe.
    
    This should be queued for stable trees back to 2.6.35.
    
    Reviewed-by: Micah Elizabeth Scott <micah@vmware.com>
    Signed-off-by: Dmitry Torokhov <dtor@vmware.com>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: stable@kernel.org

commit e6d11da6869184f5cd3375a2b636e1aae9898a8f
Author: Matthew Wilcox <willy@linux.intel.com>
Date:   Tue Sep 28 00:57:32 2010 -0400

    USB: Fix unplug of device with active streams
    
    upstream commit: b214f191d95ba4b5a35aebd69cd129cf7e3b1884
    
    If I unplug a device while the UAS driver is loaded, I get an oops
    in usb_free_streams().  This is because usb_unbind_interface() calls
    usb_disable_interface() which calls usb_disable_endpoint() which sets
    ep_out and ep_in to NULL.  Then the UAS driver calls usb_pipe_endpoint()
    which returns a NULL pointer and passes an array of NULL pointers to
    usb_free_streams().
    
    I think the correct fix for this is to check for the NULL pointer
    in usb_free_streams() rather than making the driver check for this
    situation.  My original patch for this checked for dev->state ==
    USB_STATE_NOTATTACHED, but the call to usb_disable_interface() is
    conditional, so not all drivers would want this check.
    
    Note from Sarah Sharp: This patch does avoid a potential dereference,
    but the real fix (which will be implemented later) is to set the
    .soft_unbind flag in the usb_driver structure for the UAS driver, and
    all drivers that allocate streams.  The driver should free any streams
    when it is unbound from the interface.  This avoids leaking stream rings
    in the xHCI driver when usb_disable_interface() is called.
    
    This should be queued for stable trees back to 2.6.35.
    
    Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: stable@kernel.org

commit 62e2d392a18f2a3149e31fecbe18a32a06587174
Author: Jan Kiszka <jan.kiszka@siemens.com>
Date:   Tue Nov 2 08:05:51 2010 +0100

    intel-iommu: Fix use after release during device attach
    
    upstream commit 7a6610139a
    
    Obtain the new pgd pointer before releasing the page containing this
    value.
    
    Cc: stable@kernel.org
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reviewed-by: Sheng Yang <sheng@linux.intel.com>
    Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>

commit f0aa357c5f66cc5befc35d5d438d323182cdeb2a
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Wed Apr 20 15:57:14 2011 +0200

    iwlwifi: fix skb usage after free
    
    [AK: Did some changes for the backport to .35. Stanislaw, please verify
    them]
    
    Since
    
    commit a120e912eb51e347f36c71b60a1d13af74d30e83
    Author: Stanislaw Gruszka <sgruszka@redhat.com>
    Date:   Fri Feb 19 15:47:33 2010 -0800
    
        iwlwifi: sanity check before counting number of tfds can be free
    
    we use skb->data after calling ieee80211_tx_status_irqsafe(), which
    could free skb instantly.
    
    On current kernels I do not observe practical problems related with
    bug, but on 2.6.35.y it cause random system hangs when stressing
    wireless link.
    
    Cc: stable@kernel.org # 2.6.32+
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 98081a1026dd80b985a084df2678e7d032729f6d
Author: Lydia Wang <lydiawang@viatech.com.cn>
Date:   Tue Mar 22 16:21:38 2011 +0800

    ALSA: hda - VIA: Fix stereo mixer recording no sound issue
    
    commit bff5fbf50bd498c217994bd2d41a53ac3141185a upstream.
    
    Modify function via_mux_enum_put() to fix stereo mixer recording
    no sound issue.
    
    Signed-off-by: Lydia Wang <lydiawang@viatech.com.cn>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 1171ee52d9bc2940298844b6f485686d75fab25f
Author: Lydia Wang <lydiawang@viatech.com.cn>
Date:   Tue Mar 22 16:23:23 2011 +0800

    ALSA: hda - VIA: Add missing support for VT1718S in A-A path
    
    commit ab657e0cacc39d88145871c6a3c844597c02d406 upstream.
    
    Modify mute_aa_path() function to support VT1718S codec.
    
    Signed-off-by: Lydia Wang <lydiawang@viatech.com.cn>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 971f304b0ecef95693e5c46fb534366d0fef94cc
Author: Greg Kroah-Hartman <gregkh@suse.de>
Date:   Wed Mar 23 15:50:39 2011 -0700

    Revert "intel_idle: PCI quirk to prevent Lenovo Ideapad s10-3 boot hang"
    
    This reverts commit 05f7676dc3559c2b9061fda4e44c085a8d32fb05.
    
    To quote Len Brown:
    	intel_idle was deemed a "feature", and thus not included in
    	2.6.33.stable, and thus 2.6.33.stable does not need this patch.
    so I'm removing it.
    
    Cc: Len Brown <len.brown@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 78823deddd26e3e59ed15dee48520c03897030e2
Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Date:   Wed Feb 23 11:19:17 2011 -0300

    uvcvideo: Fix descriptor parsing for video output devices
    
    commit 4093a5c4a3f59cba1a085bbf87b6ffdddc5a443d upstream.
    
    Commit 4057ac6ca9a77c4275b34b5925ab5c99557913b1
    
        V4L/DVB (13505): uvcvideo: Refactor chain scan
    
    broke output terminals parsing. Fix it.
    
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 2e0220abd543b17359395e2ab9fdda3a5223988e
Author: Fry, Donald H <donald.h.fry@intel.com>
Date:   Wed Feb 16 11:49:34 2011 -0800

    iwlagn: Support new 5000 microcode.
    
    commit 41504cce240f791f1e16561db95728c5537fbad9 upstream.
    
    New iwlwifi-5000 microcode requires driver support for API version 5.
    
    Signed-off-by: Don Fry <donald.h.fry@intel.com>
    Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 7d7fcb84736f7be2552c796047b69fb0dc46ea75
Author: Stefan Haberland <stefan.haberland@de.ibm.com>
Date:   Thu Feb 17 13:13:55 2011 +0100

    dasd: correct device table
    
    commit 5da24b7627ff821e154a3aaecd5d60e1d8e228a5 upstream.
    
    The 3880 storage control unit supports a 3380 device
    type, but not a 3390 device type.
    
    Reported-by: Stephen Powell <zlinuxman@wowway.com>
    Signed-off-by: Stefan Haberland <stefan.haberland@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Stephen Powell <zlinuxman@wowway.com>
    Cc: Jonathan Nieder <jrnieder@gmail.com>
    Cc: Bastian Blank <waldi@debian.org>

commit 7821dc28348d2634d67b8cf2da72308101d1bdfd
Author: Greg Rose <gregory.v.rose@intel.com>
Date:   Tue Nov 16 19:41:36 2010 -0800

    Remove extra struct page member from the buffer info structure
    
    commit b1d670f10e8078485884f0cf7e384d890909aeaa upstream.
    
    declaration.
    
    Reported-by: Andi Kleen <andi@firstfloor.org>
    Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Tested-by: Emil Tantilov <emil.s.tantilov@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Cc: Andreas Radke <a.radke@arcor.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit f24ac96f1acc55d78f79a3286d1ba60dbf6cbc26
Author: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Date:   Thu Apr 21 14:49:55 2011 +0300

    UBIFS: fix master node recovery
    
    commit 6e0d9fd38b750d678bf9fd07db23582f52fafa55 upstream.
    
    This patch fixes the following symptoms:
    1. Unmount UBIFS cleanly.
    2. Start mounting UBIFS R/W and have a power cut immediately
    3. Start mounting UBIFS R/O, this succeeds
    4. Try to re-mount UBIFS R/W - this fails immediately or later on,
       because UBIFS will write the master node to the flash area
       which has been written before.
    
    The analysis of the problem:
    
    1. UBIFS is unmounted cleanly, both copies of the master node are clean.
    2. UBIFS is being mounter R/W, starts changing master node copy 1, and
       a power cut happens. The copy N1 becomes corrupted.
    3. UBIFS is being mounted R/O. It notices the copy N1 is corrupted and
       reads copy N2. Copy N2 is clean.
    4. Because of R/O mode, UBIFS cannot recover copy 1.
    5. The mount code (ubifs_mount()) sees that the master node is clean,
       so it decides that no recovery is needed.
    6. We are re-mounting R/W. UBIFS believes no recovery is needed and
       starts updating the master node, but copy N1 is still corrupted
       and was not recovered!
    
    Fix this problem by marking the master node as dirty every time we
    recover it and we are in R/O mode. This forces further recovery and
    the UBIFS cleans-up the corruptions and recovers the copy N1 when
    re-mounting R/W later.
    
    Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 4a8031feb7c4bdad402763dfee193565c99b07e8
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Sat Apr 23 18:42:56 2011 +0100

    kconfig: Avoid buffer underrun in choice input
    
    commit 3ba41621156681afcdbcd624e3191cbc65eb94f4 upstream.
    
    Commit 40aee729b350 ('kconfig: fix default value for choice input')
    fixed some cases where kconfig would select the wrong option from a
    choice with a single valid option and thus enter an infinite loop.
    
    However, this broke the test for user input of the form 'N?', because
    when kconfig selects the single valid option the input is zero-length
    and the test will read the byte before the input buffer.  If this
    happens to contain '?' (as it will in a mips build on Debian unstable
    today) then kconfig again enters an infinite loop.
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 16c67021be095358fe47d5015d9d925a723288bd
Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
Date:   Fri Apr 8 16:32:16 2011 +0900

    ASoC: Fix output PGA enabling in wm_hubs CODECs
    
    commit 39cca168bdfaef9d0c496ec27f292445d6184946 upstream.
    
    The output PGA was not being powered up in headphone and speaker paths,
    removing the ability to offer volume control and mute with the output
    PGA.
    
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 617a954d482ca5c165da9ec8345a02a23fbaab78
Author: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date:   Mon Apr 11 10:59:09 2011 +0200

    serial/imx: read cts state only after acking cts change irq
    
    commit 5680e94148a86e8c31fdc5cb0ea0d5c6810c05b0 upstream.
    
    If cts changes between reading the level at the cts input (USR1_RTSS)
    and acking the irq (USR1_RTSD) the last edge doesn't generate an irq and
    uart_handle_cts_change is called with a outdated value for cts.
    
    The race was introduced by commit
    
    	ceca629 ([ARM] 2971/1: i.MX uart handle rts irq)
    
    Reported-by: Arwed Springer <Arwed.Springer@de.trumpf.com>
    Tested-by: Arwed Springer <Arwed.Springer@de.trumpf.com>
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 0993450a8cccc34704e7375ca47ec555be909b05
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Tue Jan 25 15:28:21 2011 -0500

    NFS: nfs_wcc_update_inode() should set nfsi->attr_gencount
    
    commit 27dc1cd3ad9300f81e1219e5fc305d91d85353f8 upstream.
    
    If the call to nfs_wcc_update_inode() results in an attribute update, we
    need to ensure that the inode's attr_gencount gets bumped too, otherwise
    we are not protected against races with other GETATTR calls.
    
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit d287e1976eb287fbf3817df536758f1bffe74ded
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Thu Apr 14 11:19:50 2011 -0400

    drm/radeon/kms: fix bad shift in atom iio table parser
    
    commit 8e461123f28e6b17456225e70eb834b3b30d28bb upstream.
    
    Noticed by Patrick Lowry.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit e77004d6125829cc856553e08fb2d5d2afb2e289
Author: Alex Williamson <alex.williamson@redhat.com>
Date:   Fri Mar 4 14:52:30 2011 -0700

    intel-iommu: Fix get_domain_for_dev() error path
    
    commit 2fe9723df8e45fd247782adea244a5e653c30bf4 upstream.
    
    If we run out of domain_ids and fail iommu_attach_domain(), we
    fall into domain_exit() without having setup enough of the
    domain structure for this to do anything useful.  In fact, it
    typically runs off into the weeds walking the bogus domain->devices
    list.  Just free the domain.
    
    Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
    Acked-by: Donald Dutile <ddutile@redhat.com>
    Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 8e2f9d0be8626aca810c8cac38fce207ea81af4a
Author: Alex Williamson <alex.williamson@redhat.com>
Date:   Fri Mar 4 14:52:16 2011 -0700

    intel-iommu: Unlink domain from iommu
    
    commit a97590e56d0d58e1dd262353f7cbd84e81d8e600 upstream.
    
    When we remove a device, we unlink the iommu from the domain, but
    we never do the reverse unlinking of the domain from the iommu.
    This means that we never clear iommu->domain_ids, eventually leading
    to resource exhaustion if we repeatedly bind and unbind a device
    to a driver.  Also free empty domains to avoid a resource leak.
    
    Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
    Acked-by: Donald Dutile <ddutile@redhat.com>
    Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit be57626a0d05b26e7e2db01ebe3fe0c0d3e8bc2e
Author: Joerg Roedel <joerg.roedel@amd.com>
Date:   Mon Apr 18 15:45:46 2011 +0200

    x86, gart: Make sure GART does not map physmem above 1TB
    
    commit 665d3e2af83c8fbd149534db8f57d82fa6fa6753 upstream.
    
    The GART can only map physical memory below 1TB. Make sure
    the gart driver in the kernel does not try to map memory
    above 1TB.
    
    Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Link: http://lkml.kernel.org/r/1303134346-5805-5-git-send-email-joerg.roedel@amd.com
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 63201d75a4b0e92609642888aecc3b3dfc2e25d2
Author: Jason Conti <jason.conti@gmail.com>
Date:   Thu Apr 7 21:09:57 2011 +0200

    p54: Initialize extra_len in p54_tx_80211
    
    commit a6756da9eace8b4af73e9dea43f1fc2889224c94 upstream.
    
    This patch fixes a very serious off-by-one bug in
    the driver, which could leave the device in an
    unresponsive state.
    
    The problem was that the extra_len variable [used to
    reserve extra scratch buffer space for the firmware]
    was left uninitialized. Because p54_assign_address
    later needs the value to reserve additional space,
    the resulting frame could be to big for the small
    device's memory window and everything would
    immediately come to a grinding halt.
    
    Reference: https://bugs.launchpad.net/bugs/722185
    
    Acked-by: Christian Lamparter <chunkeey@googlemail.com>
    Signed-off-by: Jason Conti <jason.conti@gmail.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 0dc54b12b37bb287ec4ef606ed3cc346b818e682
Author: Liu Yuan <tailai.ly@taobao.com>
Date:   Tue Apr 19 13:47:58 2011 +0200

    block, blk-sysfs: Fix an err return path in blk_register_queue()
    
    commit ed5302d3c25006a9edc7a7fbea97a30483f89ef7 upstream.
    
    We do not call blk_trace_remove_sysfs() in err return path
    if kobject_add() fails. This path fixes it.
    
    Signed-off-by: Liu Yuan <tailai.ly@taobao.com>
    Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 6af5fb1038b725d5a064c003f78f855d412728df
Author: Christian Lamparter <chunkeey@googlemail.com>
Date:   Wed Apr 6 20:40:31 2011 +0200

    ath: add missing regdomain pair 0x5c mapping
    
    commit bd39a274fb7b43374c797bafdb7f506598f36f77 upstream.
    
    Joe Culler reported a problem with his AR9170 device:
    
    > ath: EEPROM regdomain: 0x5c
    > ath: EEPROM indicates we should expect a direct regpair map
    > ath: invalid regulatory domain/country code 0x5c
    > ath: Invalid EEPROM contents
    
    It turned out that the regdomain 'APL7_FCCA' was not mapped yet.
    According to Luis R. Rodriguez [Atheros' engineer] APL7 maps to
    FCC_CTL and FCCA maps to FCC_CTL as well, so the attached patch
    should be correct.
    
    Reported-by: Joe Culler <joe.culler@gmail.com>
    Acked-by: Luis R. Rodriguez <lrodriguez@atheros.com>
    Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 0ed05379c28294629c08fa348c83965e098bbcf6
Author: Felix Fietkau <nbd@openwrt.org>
Date:   Fri Mar 25 17:43:41 2011 +0100

    ath9k: fix a chip wakeup related crash in ath9k_start
    
    [ upstream commit f62d816fc4324afbb7cf90110c70b6a14139b225 ]
    
    When the chip is still asleep when ath9k_start is called,
    ath9k_hw_configpcipowersave can trigger a data bus error.
    
    Signed-off-by: Felix Fietkau <nbd@openwrt.org>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: stable@kernel.org
    Signed-off-by: John W. Linville <linville@tuxdriver.com>

commit dffa5ee4119483e30441071cfc7d94f74e82d1e9
Author: Jan Beulich <JBeulich@novell.com>
Date:   Thu Mar 31 00:01:58 2011 -0700

    Input: synaptics - fix crash in synaptics_module_init()
    
    [ upstream commit 708748670c7c6dd5bd3b141473086e6937e72737 ]
    
    'struct dmi_system_id' arrays must always have a terminator to keep
    dmi_check_system() from looking at data (and possibly crashing) it
    isn't supposed to look at.
    
    The issue went unnoticed until ef8313bb1a22e7d2125d9d758aa8a81f1de91d81,
    but was introduced about a year earlier with
    7705d548cbe33f18ea7713b9a07aa11047aaeca4 (which also similarly changed
    lifebook.c, but the problem there got eliminated shortly afterwards).
    
    The first hunk therefore is a stable candidate back to 2.6.33, while
    the full change is needed only on 2.6.38.
    
    Signed-off-by: Jan Beulich <jbeulich@novell.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: stable@kernel.org
    Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

commit 4aa96ce73e0282f556fdc5850313a4d0ca15532f
Author: Kees Cook <kees.cook@canonical.com>
Date:   Wed Jan 12 00:34:49 2011 -0800

    net: ax25: fix information leak to userland harder
    
    commit 5b919f833d9d60588d026ad82d17f17e8872c7a9 upstream.
    
    Commit fe10ae53384e48c51996941b7720ee16995cbcb7 adds a memset() to clear
    the structure being sent back to userspace, but accidentally used the
    wrong size.
    
    Reported-by: Brad Spengler <spender@grsecurity.net>
    Signed-off-by: Kees Cook <kees.cook@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 07991dfa5079fe9170b4285ad8fbb51781dcb22c
Author: Hans Rosenfeld <hans.rosenfeld@amd.com>
Date:   Wed Aug 18 16:19:50 2010 +0200

    x86, cpu: Fix regression in AMD errata checking code
    
    commit 07a7795ca2e6e66d00b184efb46bd0e23d90d3fe upstream.
    
    A bug in the family-model-stepping matching code caused the presence of
    errata to go undetected when OSVW was not used. This causes hangs on
    some K8 systems because the E400 workaround is not enabled.
    
    Signed-off-by: Hans Rosenfeld <hans.rosenfeld@amd.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1282141190-930137-1-git-send-email-hans.rosenfeld@amd.com>
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit eaf0c653ec6898c65aceff17469a35ce97bab8aa
Author: Dmitry Torokhov <dtor@vmware.com>
Date:   Wed Mar 23 22:41:23 2011 -0700

    USB: xhci - fix math in xhci_get_endpoint_interval()
    
    commit dfa49c4ad120a784ef1ff0717168aa79f55a483a upstream.
    
    When parsing exponent-expressed intervals we subtract 1 from the
    value and then expect it to match with original + 1, which is
    highly unlikely, and we end with frequent spew:
    
    	usb 3-4: ep 0x83 - rounding interval to 512 microframes
    
    Also, parsing interval for fullspeed isochronous endpoints was
    incorrect - according to USB spec they use exponent-based
    intervals (but xHCI spec claims frame-based intervals). I trust
    USB spec more, especially since USB core agrees with it.
    
    This should be queued for stable kernels back to 2.6.31.
    
    Reviewed-by: Micah Elizabeth Scott <micah@vmware.com>
    Signed-off-by: Dmitry Torokhov <dtor@vmware.com>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 7582e0dedb0f71907b0cd6cc298b246628ced943
Author: Dmitry Torokhov <dtor@vmware.com>
Date:   Sun Mar 20 02:15:17 2011 -0700

    USB: xhci - fix unsafe macro definitions
    
    commit 5a6c2f3ff039154872ce597952f8b8900ea0d732 upstream.
    
    Macro arguments used in expressions need to be enclosed in parenthesis
    to avoid unpleasant surprises.
    
    This should be queued for kernels back to 2.6.31
    
    Signed-off-by: Dmitry Torokhov <dtor@vmware.com>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit b367480dbb551ca870e09dae5a28be7464dd809a
Author: Dmitry Torokhov <dtor@vmware.com>
Date:   Fri Mar 18 21:29:01 2011 -0700

    USB: fix formatting of SuperSpeed endpoints in /proc/bus/usb/devices
    
    commit 2868a2b1ba8f9c7f6c4170519ebb6c62934df70e upstream.
    
    Isochronous and interrupt SuperSpeed endpoints use the same mechanisms
    for decoding bInterval values as HighSpeed ones so adjust the code
    accordingly.
    
    Also bandwidth reservation for SuperSpeed matches highspeed, not
    low/full speed.
    
    Signed-off-by: Dmitry Torokhov <dtor@vmware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 16e9999883d5aef8514a9d64f5ecec4f22634c1d
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Tue Apr 5 13:36:15 2011 -0400

    USB: EHCI: unlink unused QHs when the controller is stopped
    
    commit 94ae4976e253757e9b03a44d27d41b20f1829d80 upstream.
    
    This patch (as1458) fixes a problem affecting ultra-reliable systems:
    When hardware failover of an EHCI controller occurs, the data
    structures do not get released correctly.  This is because the routine
    responsible for removing unused QHs from the async schedule assumes
    the controller is running properly (the frame counter is used in
    determining how long the QH has been idle) -- but when a failover
    causes the controller to be electronically disconnected from the PCI
    bus, obviously it stops running.
    
    The solution is simple: Allow scan_async() to remove a QH from the
    async schedule if it has been idle for long enough _or_ if the
    controller is stopped.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reported-and-Tested-by: Dan Duval <dan.duval@stratus.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 66b681ef4893e65f9219da4c1bb493dc99bde0c5
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Apr 18 10:36:54 2011 -0700

    proc: do proper range check on readdir offset
    
    commit d8bdc59f215e62098bc5b4256fd9928bf27053a1 upstream.
    
    Rather than pass in some random truncated offset to the pid-related
    functions, check that the offset is in range up-front.
    
    This is just cleanup, the previous commit fixed the real problem.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit e84891e970ce8baf3c57b5a79d05f52072170052
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Apr 18 10:35:30 2011 -0700

    next_pidmap: fix overflow condition
    
    commit c78193e9c7bcbf25b8237ad0dec82f805c4ea69b upstream.
    
    next_pidmap() just quietly accepted whatever 'last' pid that was passed
    in, which is not all that safe when one of the users is /proc.
    
    Admittedly the proc code should do some sanity checking on the range
    (and that will be the next commit), but that doesn't mean that the
    helper functions should just do that pidmap pointer arithmetic without
    checking the range of its arguments.
    
    So clamp 'last' to PID_MAX_LIMIT.  The fact that we then do "last+1"
    doesn't really matter, the for-loop does check against the end of the
    pidmap array properly (it's only the actual pointer arithmetic overflow
    case we need to worry about, and going one bit beyond isn't going to
    overflow).
    
    [ Use PID_MAX_LIMIT rather than pid_max as per Eric Biederman ]
    
    Reported-by: Tavis Ormandy <taviso@cmpxchg8b.com>
    Analyzed-by: Robert Święcki <robert@swiecki.net>
    Cc: Eric W. Biederman <ebiederm@xmission.com>
    Cc: Pavel Emelyanov <xemul@openvz.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 7434532fb72b9e5315ba32e1bf6fdb9061f504e0
Author: Marius B. Kotsbak <marius@kotsbak.com>
Date:   Tue Mar 22 00:01:53 2011 +0100

    USB: option: Added support for Samsung GT-B3730/GT-B3710 LTE USB modem.
    
    commit 80f9df3e0093ad9f1eeefd2ff7fd27daaa518d25 upstream.
    
    Bind only modem AT command endpoint to option.
    
    Signed-off-by: Marius B. Kotsbak <marius@kotsbak.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit c5f6106e9d80fbccdc9a7e4827e82076fb3e7570
Author: Enrico Mioso <mrkiko.rs@gmail.com>
Date:   Fri Sep 17 10:54:23 2010 +0200

    USB: option: Add new ONDA vendor id and product id for ONDA MT825UP
    
    commit c6991b6fd2b4201174dc4620d0c8c4f5ff27b36f upstream.
    
    This patch, adds to the option driver the Onda Communication
    (http://www.ondacommunication.com) vendor id, and the MT825UP modem
    device id.
    
    Note that many variants of this same device are being release here in
    Italy (at least one or two per telephony operator).
    
    These devices are perfectly equivalent except for some predefined
    settings (which can be changed of course).
    
    It should be noted that most ONDA devices are allready supported (they
    used other vendor's ids in the past). The patch seems working fine here,
    and the rest of the driver seems uninfluenced.
    
    Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit da7ffa19f5a8e6428a8b01a245cd838aa496ec07
Author: Paul Friedrich <Paul.Friedrich@hameg.com>
Date:   Fri Mar 18 11:13:55 2011 +0100

    USB: ftdi_sio: add ids for Hameg HO720 and HO730
    
    commit c53c2fab40cf16e13af66f40bfd27200cda98d2f upstream.
    
    usb serial: ftdi_sio: add two missing USB ID's for Hameg interfaces HO720
    and HO730
    
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit e17e9da97bca277c34a7a9ceb09c82e55040709c
Author: Johan Hovold <jhovold@gmail.com>
Date:   Fri Apr 8 17:38:22 2011 +0200

    USB: ftdi_sio: add PID for OCT DK201 docking station
    
    commit 11a31d84129dc3133417d626643d714c9df5317e upstream.
    
    Add PID 0x0103 for serial port of the OCT DK201 docking station.
    
    Reported-by: Jan Hoogenraad <jan@hoogenraad.net>
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit c8bcddad9920fa746e46c2b09ae02fa289757246
Author: Christian Simon <simon@swine.de>
Date:   Mon Mar 28 21:54:47 2011 +0200

    USB: ftdi_sio: Added IDs for CTI USB Serial Devices
    
    commit 5a9443f08c83c294c5c806a689c1184b27cb26b3 upstream.
    
    I added new ProdutIds for two devices from CTI GmbH Leipzig.
    
    Signed-off-by: Christian Simon <simon@swine.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 1a2c7d94b5a0f06387e0c346861ac2f67f07c5ca
Author: Joerg Roedel <joerg.roedel@amd.com>
Date:   Fri Apr 15 14:47:40 2011 +0200

    x86, amd: Disable GartTlbWlkErr when BIOS forgets it
    
    commit 5bbc097d890409d8eff4e3f1d26f11a9d6b7c07e upstream.
    
    This patch disables GartTlbWlk errors on AMD Fam10h CPUs if
    the BIOS forgets to do is (or is just too old). Letting
    these errors enabled can cause a sync-flood on the CPU
    causing a reboot.
    
    The AMD BKDG recommends disabling GART TLB Wlk Error completely.
    
    This patch is the fix for
    
    	https://bugzilla.kernel.org/show_bug.cgi?id=33012
    
    on my machine.
    
    Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Link: http://lkml.kernel.org/r/20110415131152.GJ18463@8bytes.org
    Tested-by: Alexandre Demers <alexandre.f.demers@gmail.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit f6325b0c59f6a6ee4ba009c415c7fd3c8f08b513
Author: Boris Ostrovsky <boris.ostrovsky@amd.com>
Date:   Tue Mar 15 12:13:44 2011 -0400

    x86, AMD: Set ARAT feature on AMD processors
    
    commit b87cf80af3ba4b4c008b4face3c68d604e1715c6 upstream.
    
    Support for Always Running APIC timer (ARAT) was introduced in
    commit db954b5898dd3ef3ef93f4144158ea8f97deb058. This feature
    allows us to avoid switching timers from LAPIC to something else
    (e.g. HPET) and go into timer broadcasts when entering deep
    C-states.
    
    AMD processors don't provide a CPUID bit for that feature but
    they also keep APIC timers running in deep C-states (except for
    cases when the processor is affected by erratum 400). Therefore
    we should set ARAT feature bit on AMD CPUs.
    
    Tested-by: Borislav Petkov <borislav.petkov@amd.com>
    Acked-by: Andreas Herrmann <andreas.herrmann3@amd.com>
    Acked-by: Mark Langsdorf <mark.langsdorf@amd.com>
    Acked-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky@amd.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1300205624-4813-1-git-send-email-ostr@amd64.org>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 5b6a0df7eaf9c516bd018f056fe336b941fad165
Author: Hans Rosenfeld <hans.rosenfeld@amd.com>
Date:   Wed Jul 28 19:09:31 2010 +0200

    x86, cpu: Clean up AMD erratum 400 workaround
    
    commit 9d8888c2a214aece2494a49e699a097c2ba9498b upstream.
    
    Remove check_c1e_idle() and use the new AMD errata checking framework
    instead.
    
    Signed-off-by: Hans Rosenfeld <hans.rosenfeld@amd.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1280336972-865982-2-git-send-email-hans.rosenfeld@amd.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 22e086770c43e105b0f64eef88752fea39a3c68c
Author: Hans Rosenfeld <hans.rosenfeld@amd.com>
Date:   Wed Jul 28 19:09:30 2010 +0200

    x86, cpu: AMD errata checking framework
    
    commit d78d671db478eb8b14c78501c0cee1cc7baf6967 upstream.
    
    Errata are defined using the AMD_LEGACY_ERRATUM() or AMD_OSVW_ERRATUM()
    macros. The latter is intended for newer errata that have an OSVW id
    assigned, which it takes as first argument. Both take a variable number
    of family-specific model-stepping ranges created by AMD_MODEL_RANGE().
    
    Iff an erratum has an OSVW id, OSVW is available on the CPU, and the
    OSVW id is known to the hardware, it is used to determine whether an
    erratum is present. Otherwise, the model-stepping ranges are matched
    against the current CPU to find out whether the erratum applies.
    
    For certain special errata, the code using this framework might have to
    conduct further checks to make sure an erratum is really (not) present.
    
    Signed-off-by: Hans Rosenfeld <hans.rosenfeld@amd.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1280336972-865982-1-git-send-email-hans.rosenfeld@amd.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit bd1ad0b2ef08f8c6e42bfd356d7666bca6e2bfcb
Author: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Date:   Wed Apr 13 10:31:52 2011 +0300

    UBIFS: fix oops when R/O file-system is fsync'ed
    
    commit 78530bf7f2559b317c04991b52217c1608d5a58d upstream.
    
    This patch fixes severe UBIFS bug: UBIFS oopses when we 'fsync()' an
    file on R/O-mounter file-system. We (the UBIFS authors) incorrectly
    thought that VFS would not propagate 'fsync()' down to the file-system
    if it is read-only, but this is not the case.
    
    It is easy to exploit this bug using the following simple perl script:
    
    use strict;
    use File::Sync qw(fsync sync);
    
    die "File path is not specified" if not defined $ARGV[0];
    my $path = $ARGV[0];
    
    open FILE, "<", "$path" or die "Cannot open $path: $!";
    fsync(\*FILE) or die "cannot fsync $path: $!";
    close FILE or die "Cannot close $path: $!";
    
    Thanks to Reuben Dowle <Reuben.Dowle@navico.com> for reporting about this
    issue.
    
    Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reported-by: Reuben Dowle <Reuben.Dowle@navico.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit d8d3d0e28304d3ed22f33ec8d1cfab54e7946d79
Author: Randy Dunlap <randy.dunlap@oracle.com>
Date:   Thu Apr 14 15:22:07 2011 -0700

    MAINTAINERS: update STABLE BRANCH info
    
    commit d00ebeac5f24f290636f7a895dafc124b2930a08 upstream.
    
    Drop Chris Wright from STABLE maintainers.  He hasn't done STABLE release
    work for quite some time.
    
    Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
    Acked-by: Chris Wright <chrisw@sous-sol.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit b83ab1f39a78cd10c4512bfaf7642cf98c818788
Author: Bob Liu <lliubbo@gmail.com>
Date:   Thu Apr 14 15:22:20 2011 -0700

    ramfs: fix memleak on no-mmu arch
    
    commit b836aec53e2bce71de1d5415313380688c851477 upstream.
    
    On no-mmu arch, there is a memleak during shmem test.  The cause of this
    memleak is ramfs_nommu_expand_for_mapping() added page refcount to 2
    which makes iput() can't free that pages.
    
    The simple test file is like this:
    
      int main(void)
      {
    	int i;
    	key_t k = ftok("/etc", 42);
    
    	for ( i=0; i<100; ++i) {
    		int id = shmget(k, 10000, 0644|IPC_CREAT);
    		if (id == -1) {
    			printf("shmget error\n");
    		}
    		if(shmctl(id, IPC_RMID, NULL ) == -1) {
    			printf("shm  rm error\n");
    			return -1;
    		}
    	}
    	printf("run ok...\n");
    	return 0;
      }
    
    And the result:
    
      root:/> free
                   total         used         free       shared      buffers
      Mem:         60320        17912        42408            0            0
      -/+ buffers:              17912        42408
      root:/> shmem
      run ok...
      root:/> free
                   total         used         free       shared      buffers
      Mem:         60320        19096        41224            0            0
      -/+ buffers:              19096        41224
      root:/> shmem
      run ok...
      root:/> free
                   total         used         free       shared      buffers
      Mem:         60320        20296        40024            0            0
      -/+ buffers:              20296        40024
      ...
    
    After this patch the test result is:(no memleak anymore)
    
      root:/> free
                   total         used         free       shared      buffers
      Mem:         60320        16668        43652            0            0
      -/+ buffers:              16668        43652
      root:/> shmem
      run ok...
      root:/> free
                   total         used         free       shared      buffers
      Mem:         60320        16668        43652            0            0
      -/+ buffers:              16668        43652
    
    Signed-off-by: Bob Liu <lliubbo@gmail.com>
    Acked-by: Hugh Dickins <hughd@google.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 1ad8267b5d86dce44f538953dab1944c0b6bf032
Author: Jeff Mahoney <jeffm@suse.com>
Date:   Thu Feb 24 17:23:09 2011 -0500

    mca.c: Fix cast from integer to pointer warning
    
    commit c1d036c4d1cb00b7e8473a2ad0a78f13e13a8183 upstream.
    
    ia64_mca_cpu_init has a void *data local variable that is assigned
    the value from either __get_free_pages() or mca_bootmem(). The problem
    is that __get_free_pages returns an unsigned long and mca_bootmem, via
    alloc_bootmem(), returns a void *. format_mca_init_stack takes the void *,
    and it's also used with __pa(), but that casts it to long anyway.
    
    This results in the following build warning:
    
    arch/ia64/kernel/mca.c:1898: warning: assignment makes pointer from
    integer without a cast
    
    Cast the return of __get_free_pages to a void * to avoid
    the warning.
    
    Signed-off-by: Jeff Mahoney <jeffm@suse.com>
    Signed-off-by: Tony Luck <tony.luck@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 386797ea0e4eb044f6c7433c15d75cb4120f73a7
Author: Jeff Mahoney <jeffm@suse.com>
Date:   Thu Feb 24 15:33:24 2011 -0500

    tioca: Fix assignment from incompatible pointer warnings
    
    commit b4a6b3436531f6c5256e6d60d388c3c28ff1a0e9 upstream.
    
    The prototype for sn_pci_provider->{dma_map,dma_map_consistent} expects
    an unsigned long instead of a u64.
    
    Signed-off-by: Jeff Mahoney <jeffm@suse.com>
    Signed-off-by: Tony Luck <tony.luck@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 77b51dedbea56d55f44f3f0ea3f47b784cb04106
Author: Jan Beulich <JBeulich@novell.com>
Date:   Tue Mar 1 14:28:02 2011 +0000

    x86: Fix a bogus unwind annotation in lib/semaphore_32.S
    
    commit e938c287ea8d977e079f07464ac69923412663ce upstream.
    
    'simple' would have required specifying current frame address
    and return address location manually, but that's obviously not
    the case (and not necessary) here.
    
    Signed-off-by: Jan Beulich <jbeulich@novell.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <4D6D1082020000780003454C@vpn.id2.novell.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 49a57ca87515571338f2f541ff5726cab004a337
Author: Jiri Slaby <jslaby@suse.cz>
Date:   Sun Mar 13 06:54:31 2011 +0000

    NET: cdc-phonet, handle empty phonet header
    
    commit 468c3f924f043cad7a04f4f4d5224a2c9bc886c1 upstream.
    
    Currently, for N 5800 XM I get:
    cdc_phonet: probe of 1-6:1.10 failed with error -22
    
    It's because phonet_header is empty. Extra altsetting looks like
    there:
    E 05 24 00 01 10 03 24 ab 05 24 06 0a 0b 04 24 fd  .$....$..$....$.
    E 00                                               .
    
    I don't see the header used anywhere so just check if the phonet
    descriptor is there, not the structure itself.
    
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Rémi Denis-Courmont <remi.denis-courmont@nokia.com>
    Cc: David S. Miller <davem@davemloft.net>
    Acked-by: Rémi Denis-Courmont <remi.denis-courmont@nokia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit b9d68407049fa7bada4dc580f5a225055ef6ed5d
Author: Vasiliy Kulikov <segoon@openwall.com>
Date:   Fri Feb 4 15:24:19 2011 +0300

    UBIFS: restrict world-writable debugfs files
    
    commit 8c559d30b4e59cf6994215ada1fe744928f494bf upstream.
    
    Don't allow everybody to dump sensitive information about filesystems.
    
    Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
    Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 347d0613b1c4422421a88b00d411b18eb3baa9ac
Author: Vasiliy Kulikov <segoon@openwall.com>
Date:   Fri Feb 4 09:23:33 2011 -0300

    video: sn9c102: world-wirtable sysfs files
    
    commit 14ddc3188d50855ae2a419a6aced995e2834e5d4 upstream.
    
    Don't allow everybody to change video settings.
    
    Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
    Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
    Acked-by: Luca Risolia <luca.risolia@studio.unibo.it>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 0696d0df97fc59f0de7ba8fca98f4f47d62acd4e
Author: Jeff Layton <jlayton@redhat.com>
Date:   Mon Mar 14 13:48:08 2011 -0400

    cifs: always do is_path_accessible check in cifs_mount
    
    commit 70945643722ffeac779d2529a348f99567fa5c33 upstream.
    
    Currently, we skip doing the is_path_accessible check in cifs_mount if
    there is no prefixpath. I have a report of at least one server however
    that allows a TREE_CONNECT to a share that has a DFS referral at its
    root. The reporter in this case was using a UNC that had no prefixpath,
    so the is_path_accessible check was not triggered and the box later hit
    a BUG() because we were chasing a DFS referral on the root dentry for
    the mount.
    
    This patch fixes this by removing the check for a zero-length
    prefixpath.  That should make the is_path_accessible check be done in
    this situation and should allow the client to chase the DFS referral at
    mount time instead.
    
    Reported-and-Tested-by: Yogesh Sharma <ysharma@cymer.com>
    Signed-off-by: Jeff Layton <jlayton@redhat.com>
    Signed-off-by: Steve French <sfrench@us.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit c797893cd1108165fcd7dac1d0954fcc5b6e6ec6
Author: Alex Elder <aelder@sgi.com>
Date:   Tue Mar 1 17:50:00 2011 +0000

    xfs: zero proper structure size for geometry calls
    
    commit af24ee9ea8d532e16883251a6684dfa1be8eec29 upstream.
    
    Commit 493f3358cb289ccf716c5a14fa5bb52ab75943e5 added this call to
    xfs_fs_geometry() in order to avoid passing kernel stack data back
    to user space:
    
    +       memset(geo, 0, sizeof(*geo));
    
    Unfortunately, one of the callers of that function passes the
    address of a smaller data type, cast to fit the type that
    xfs_fs_geometry() requires.  As a result, this can happen:
    
    Kernel panic - not syncing: stack-protector: Kernel stack is corrupted
    in: f87aca93
    
    Pid: 262, comm: xfs_fsr Not tainted 2.6.38-rc6-493f3358cb2+ #1
    Call Trace:
    
    [<c12991ac>] ? panic+0x50/0x150
    [<c102ed71>] ? __stack_chk_fail+0x10/0x18
    [<f87aca93>] ? xfs_ioc_fsgeometry_v1+0x56/0x5d [xfs]
    
    Fix this by fixing that one caller to pass the right type and then
    copy out the subset it is interested in.
    
    Note: This patch is an alternative to one originally proposed by
    Eric Sandeen.
    
    Reported-by: Jeffrey Hundstad <jeffrey.hundstad@mnsu.edu>
    Signed-off-by: Alex Elder <aelder@sgi.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reviewed-by: Eric Sandeen <sandeen@redhat.com>
    Tested-by: Jeffrey Hundstad <jeffrey.hundstad@mnsu.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 33b1b26d48822cbe04d14ba255672ed5ecadb3da
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Thu Oct 28 15:40:55 2010 +0000

    net: fix rds_iovec page count overflow
    
    commit 1b1f693d7ad6d193862dcb1118540a030c5e761f upstream.
    
    As reported by Thomas Pollet, the rdma page counting can overflow.  We
    get the rdma sizes in 64-bit unsigned entities, but then limit it to
    UINT_MAX bytes and shift them down to pages (so with a possible "+1" for
    an unaligned address).
    
    So each individual page count fits comfortably in an 'unsigned int' (not
    even close to overflowing into signed), but as they are added up, they
    might end up resulting in a signed return value. Which would be wrong.
    
    Catch the case of tot_pages turning negative, and return the appropriate
    error code.
    
    Reported-by: Thomas Pollet <thomas.pollet@gmail.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Andy Grover <andy.grover@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    [v2: nr is unsigned in the old code]
    Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
    Acked-by: Tim Gardner <tim.gardner@canonical.com>
    Acked-by: Brad Figg <brad.figg@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 4d9566dc782ea4c60c44f3d6ee8e982061967c90
Author: Dan Rosenberg <drosenberg@vsecurity.com>
Date:   Sun Dec 26 06:54:53 2010 +0000

    CAN: Use inode instead of kernel address for /proc file
    
    commit 9f260e0efa4766e56d0ac14f1aeea6ee5eb8fe83 upstream.
    
    Since the socket address is just being used as a unique identifier, its
    inode number is an alternative that does not leak potentially sensitive
    information.
    
    CC-ing stable because MITRE has assigned CVE-2010-4565 to the issue.
    
    Signed-off-by: Dan Rosenberg <drosenberg@vsecurity.com>
    Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Moritz Muehlenhoff <jmm@debian.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit eca877d1ae4a597ff1f213396662690143d01f88
Author: Dan Rosenberg <drosenberg@vsecurity.com>
Date:   Wed Dec 22 13:58:27 2010 +0000

    irda: prevent integer underflow in IRLMP_ENUMDEVICES
    
    commit fdac1e0697356ac212259f2147aa60c72e334861 upstream.
    
    If the user-provided len is less than the expected offset, the
    IRLMP_ENUMDEVICES getsockopt will do a copy_to_user() with a very large
    size value.  While this isn't be a security issue on x86 because it will
    get caught by the access_ok() check, it may leak large amounts of kernel
    heap on other architectures.  In any event, this patch fixes it.
    
    Signed-off-by: Dan Rosenberg <drosenberg@vsecurity.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Moritz Muehlenhoff <jmm@debian.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 58c373ba73707261ace8a2227a7ec99d58e9fd94
Author: Nelson Elhage <nelhage@ksplice.com>
Date:   Wed Nov 3 16:35:41 2010 +0000

    inet_diag: Make sure we actually run the same bytecode we audited.
    
    commit 22e76c849d505d87c5ecf3d3e6742a65f0ff4860 upstream.
    
    We were using nlmsg_find_attr() to look up the bytecode by attribute when
    auditing, but then just using the first attribute when actually running
    bytecode. So, if we received a message with two attribute elements, where only
    the second had type INET_DIAG_REQ_BYTECODE, we would validate and run different
    bytecode strings.
    
    Fix this by consistently using nlmsg_find_attr everywhere.
    
    [AK: Add const to nlmsg_find_attr to fix new warning]
    
    Signed-off-by: Nelson Elhage <nelhage@ksplice.com>
    Signed-off-by: Thomas Graf <tgraf@infradead.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    [jmm: Slightly adapted to apply against 2.6.32]
    Cc: Moritz Muehlenhoff <jmm@debian.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 153e4ee16df4ec1660a97c6040715e5993f9032e
Author: Kulikov Vasiliy <segooon@gmail.com>
Date:   Sun Oct 31 07:10:32 2010 +0000

    net: tipc: fix information leak to userland
    
    commit 88f8a5e3e7defccd3925cabb1ee4d3994e5cdb52 upstream.
    
    Structure sockaddr_tipc is copied to userland with padding bytes after
    "id" field in union field "name" unitialized.  It leads to leaking of
    contents of kernel stack memory.  We have to initialize them to zero.
    
    Signed-off-by: Vasiliy Kulikov <segooon@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Moritz Muehlenhoff <jmm@debian.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 6e7fd0751dea4c3472f0a1f7b58d0b1ea53fbd84
Author: J. Bruce Fields <bfields@redhat.com>
Date:   Thu Mar 24 22:51:14 2011 -0400

    nfsd: fix auth_domain reference leak on nlm operations
    
    commit 954032d2527f2fce7355ba70709b5e143d6b686f upstream.
    
    This was noticed by users who performed more than 2^32 lock operations
    and hence made this counter overflow (eventually leading to
    use-after-free's).  Setting rq_client to NULL here means that it won't
    later get auth_domain_put() when it should be.
    
    Appears to have been introduced in 2.5.42 by "[PATCH] kNFSd: Move auth
    domain lookup into svcauth" which moved most of the rq_client handling
    to common svcauth code, but left behind this one line.
    
    Cc: Neil Brown <neilb@suse.de>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 091bfbbc8a7da176d4553bff8e7d29736599017e
Author: Yongqiang Yang <xiaoqiangnk@gmail.com>
Date:   Mon Apr 4 15:40:24 2011 -0400

    ext4: fix credits computing for indirect mapped files
    
    commit 5b41395fcc0265fc9f193aef9df39ce49d64677c upstream.
    
    When writing a contiguous set of blocks, two indirect blocks could be
    needed depending on how the blocks are aligned, so we need to increase
    the number of credits needed by one.
    
    [ Also fixed a another bug which could further underestimate the
      number of journal credits needed by 1; the code was using integer
      division instead of DIV_ROUND_UP() -- tytso]
    
    Signed-off-by: Yongqiang Yang <xiaoqiangnk@gmail.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 61de8898a1dc81b0f58f2b3bbc60917a375bc45f
Author: Philip A. Prindeville <philipp@redfish-solutions.com>
Date:   Wed Mar 30 12:59:26 2011 +0000

    atm/solos-pci: Don't include frame pseudo-header on transmit hex-dump
    
    commit 18b429e74eeafe42e947b1b0f9a760c7153a0b5c upstream.
    
    Omit pkt_hdr preamble when dumping transmitted packet as hex-dump;
    we can pull this up because the frame has already been sent, and
    dumping it is the last thing we do with it before freeing it.
    
    Also include the size, vpi, and vci in the debug as is done on
    receive.
    
    Use "port" consistently instead of "device" intermittently.
    
    Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit f5228c7c5062d5257f881d2f9c6a355215ce79b2
Author: Phillip Lougher <phillip@lougher.demon.co.uk>
Date:   Tue Mar 15 22:09:55 2011 +0000

    Squashfs: handle corruption of directory structure
    
    commit 44cff8a9ee8a974f9e931df910688e7fc1f0b0f9 upstream.
    
    Handle the rare case where a directory metadata block is uncompressed and
    corrupted, leading to a kernel oops in directory scanning (memcpy).
    Normally corruption is detected at the decompression stage and dealt with
    then, however, this will not happen if:
    
    - metadata isn't compressed (users can optionally request no metadata
      compression), or
    - the compressed metadata block was larger than the original, in which
      case the uncompressed version was used, or
    - the data was corrupt after decompression
    
    This patch fixes this by adding some sanity checks against known maximum
    values.
    
    Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 297a19bdbec76bbf4668abd4a8eb4bcf6b4019f8
Author: Borislav Petkov <borislav.petkov@amd.com>
Date:   Tue Mar 29 21:29:54 2011 +0200

    x86, microcode, AMD: Extend ucode size verification
    
    Upstream commit: 44d60c0f5c58c2168f31df9a481761451840eb54
    
    The different families have a different max size for the ucode patch,
    adjust size checking to the family we're running on. Also, do not
    vzalloc the max size of the ucode but only the actual size that is
    passed on from the firmware loader.
    
    Cc: <stable@kernel.org>
    Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit e0908c530987e7df4cfb4ef7d94cd2c0e17f6b95
Author: Andy Gospodarek <andy@greyhouse.net>
Date:   Wed Feb 2 14:53:25 2011 -0800

    gro: reset skb_iif on reuse
    
    commit 6d152e23ad1a7a5b40fef1f42e017d66e6115159 upstream.
    
    Like Herbert's change from a few days ago:
    
    66c46d741e2e60f0e8b625b80edb0ab820c46d7a gro: Reset dev pointer on reuse
    
    this may not be necessary at this point, but we should still clean up
    the skb->skb_iif.  If not we may end up with an invalid valid for
    skb->skb_iif when the skb is reused and the check is done in
    __netif_receive_skb.
    
    Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Brandon Philips <bphilips@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 760a5d738e7fe9bcdf6dd6a573541edb01a95ac2
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Sat Jan 29 20:44:54 2011 -0800

    gro: Reset dev pointer on reuse
    
    commit 66c46d741e2e60f0e8b625b80edb0ab820c46d7a upstream.
    
    On older kernels the VLAN code may zero skb->dev before dropping
    it and causing it to be reused by GRO.
    
    Unfortunately we didn't reset skb->dev in that case which causes
    the next GRO user to get a bogus skb->dev pointer.
    
    This particular problem no longer happens with the current upstream
    kernel due to changes in VLAN processing.
    
    However, for correctness we should still reset the skb->dev pointer
    in the GRO reuse function in case a future user does the same thing.
    
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Brandon Philips <bphilips@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 38a4189d5c25a817018416dee94b52bd9be2e7c5
Author: Kulikov Vasiliy <segooon@gmail.com>
Date:   Wed Jul 28 20:41:17 2010 +0400

    sound: oss: midi_synth: check get_user() return value
    
    commit b3390ceab95601afc12213c3ec5551d3bc7b638f upstream.
    
    get_user() may fail, if so return -EFAULT.
    
    Signed-off-by: Kulikov Vasiliy <segooon@gmail.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 95e07fd5a69dd641592cba4f225e898c441dca6b
Author: Dan Rosenberg <drosenberg@vsecurity.com>
Date:   Wed Mar 23 10:53:41 2011 -0400

    sound/oss: remove offset from load_patch callbacks
    
    commit b769f49463711205d57286e64cf535ed4daf59e9 upstream.
    
    Was: [PATCH] sound/oss/midi_synth: prevent underflow, use of
    uninitialized value, and signedness issue
    
    The offset passed to midi_synth_load_patch() can be essentially
    arbitrary.  If it's greater than the header length, this will result in
    a copy_from_user(dst, src, negative_val).  While this will just return
    -EFAULT on x86, on other architectures this may cause memory corruption.
    Additionally, the length field of the sysex_info structure may not be
    initialized prior to its use.  Finally, a signed comparison may result
    in an unintentionally large loop.
    
    On suggestion by Takashi Iwai, version two removes the offset argument
    from the load_patch callbacks entirely, which also resolves similar
    issues in opl3.  Compile tested only.
    
    v3 adjusts comments and hopefully gets copy offsets right.
    
    Signed-off-by: Dan Rosenberg <drosenberg@vsecurity.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit dc29b760f88ce16053425113e49f1eba4f75422d
Author: Vasiliy Kulikov <segoon@openwall.com>
Date:   Thu Mar 17 01:40:10 2011 +0000

    econet: 4 byte infoleak to the network
    
    commit 67c5c6cb8129c595f21e88254a3fc6b3b841ae8e upstream.
    
    struct aunhdr has 4 padding bytes between 'pad' and 'handle' fields on
    x86_64.  These bytes are not initialized in the variable 'ah' before
    sending 'ah' to the network.  This leads to 4 bytes kernel stack
    infoleak.
    
    This bug was introduced before the git epoch.
    
    Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
    Acked-by: Phil Blundell <philb@gnu.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 8bc9047b8496f04f9a8239e7ff2452c6b5668253
Author: Vasiliy Kulikov <segoon@openwall.com>
Date:   Tue Mar 22 16:34:01 2011 -0700

    drivers/misc/ep93xx_pwm.c: world-writable sysfs files
    
    commit deb187e72470b0382d4f0cb859e76e1ebc3a1082 upstream.
    
    Don't allow everybody to change device settings.
    
    Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
    Acked-by: Hartley Sweeten <hartleys@visionengravers.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Matthieu Crapet <mcrapet@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit faf71f45b0485c3d97ed987489185288ba94b638
Author: Vasiliy Kulikov <segoon@openwall.com>
Date:   Tue Mar 22 16:34:53 2011 -0700

    drivers/rtc/rtc-ds1511.c: world-writable sysfs nvram file
    
    commit 49d50fb1c28738ef6bad0c2b87d5355a1653fed5 upstream.
    
    Don't allow everybogy to write to NVRAM.
    
    Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Andy Sharp <andy.sharp@onstor.com>
    Cc: Alessandro Zummo <a.zummo@towertech.it>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 4749480caa4baa97804bbce1ccf873d29b04ca43
Author: Vasiliy Kulikov <segoon@openwall.com>
Date:   Fri Feb 4 15:23:36 2011 +0300

    mfd: ab3100: world-writable debugfs *_priv files
    
    commit f8a0697722d12a201588225999cfc8bfcbc82781 upstream.
    
    Don't allow everybody to change device hardware registers.
    
    Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
    Acked-by: Linus Walleij <linus.walleij@stericsson.com>
    Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 29701eac578602bcb6a1a034b964cb75656c6939
Author: Vasiliy Kulikov <segoon@openwall.com>
Date:   Tue Mar 15 13:37:13 2011 +0100

    ipv6: netfilter: ip6_tables: fix infoleak to userspace
    
    commit 6a8ab060779779de8aea92ce3337ca348f973f54 upstream.
    
    Structures ip6t_replace, compat_ip6t_replace, and xt_get_revision are
    copied from userspace.  Fields of these structs that are
    zero-terminated strings are not checked.  When they are used as argument
    to a format string containing "%s" in request_module(), some sensitive
    information is leaked to userspace via argument of spawned modprobe
    process.
    
    The first bug was introduced before the git epoch;  the second was
    introduced in 3bc3fe5e (v2.6.25-rc1);  the third is introduced by
    6b7d31fc (v2.6.15-rc1).  To trigger the bug one should have
    CAP_NET_ADMIN.
    
    Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
    Signed-off-by: Patrick McHardy <kaber@trash.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 9c09bd6e205093f8344028671260efd1687f26b9
Author: Vasiliy Kulikov <segoon@openwall.com>
Date:   Sun Mar 20 15:42:52 2011 +0100

    netfilter: ipt_CLUSTERIP: fix buffer overflow
    
    commit 961ed183a9fd080cf306c659b8736007e44065a5 upstream.
    
    'buffer' string is copied from userspace.  It is not checked whether it is
    zero terminated.  This may lead to overflow inside of simple_strtoul().
    Changli Gao suggested to copy not more than user supplied 'size' bytes.
    
    It was introduced before the git epoch.  Files "ipt_CLUSTERIP/*" are
    root writable only by default, however, on some setups permissions might be
    relaxed to e.g. network admin user.
    
    Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
    Acked-by: Changli Gao <xiaosuo@gmail.com>
    Signed-off-by: Patrick McHardy <kaber@trash.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit d52f8b882ab7a4c44dc04b7195266c75e236b4f0
Author: Vasiliy Kulikov <segoon@openwall.com>
Date:   Tue Mar 15 13:35:21 2011 +0100

    netfilter: arp_tables: fix infoleak to userspace
    
    commit 42eab94fff18cb1091d3501cd284d6bd6cc9c143 upstream.
    
    Structures ipt_replace, compat_ipt_replace, and xt_get_revision are
    copied from userspace.  Fields of these structs that are
    zero-terminated strings are not checked.  When they are used as argument
    to a format string containing "%s" in request_module(), some sensitive
    information is leaked to userspace via argument of spawned modprobe
    process.
    
    The first bug was introduced before the git epoch;  the second is
    introduced by 6b7d31fc (v2.6.15-rc1);  the third is introduced by
    6b7d31fc (v2.6.15-rc1).  To trigger the bug one should have
    CAP_NET_ADMIN.
    
    Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
    Signed-off-by: Patrick McHardy <kaber@trash.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 754e601978068dab6d6ed3f25fd3fbb7ec9d28c2
Author: Vasiliy Kulikov <segoon@openwall.com>
Date:   Tue Mar 15 13:36:05 2011 +0100

    netfilter: ip_tables: fix infoleak to userspace
    
    commit 78b79876761b86653df89c48a7010b5cbd41a84a upstream.
    
    Structures ipt_replace, compat_ipt_replace, and xt_get_revision are
    copied from userspace.  Fields of these structs that are
    zero-terminated strings are not checked.  When they are used as argument
    to a format string containing "%s" in request_module(), some sensitive
    information is leaked to userspace via argument of spawned modprobe
    process.
    
    The first and the third bugs were introduced before the git epoch; the
    second was introduced in 2722971c (v2.6.17-rc1).  To trigger the bug
    one should have CAP_NET_ADMIN.
    
    Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
    Signed-off-by: Patrick McHardy <kaber@trash.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 8f6e8f4068274710a9d6aaad0089a13494daf753
Author: Peter Huewe <huewe.external.infineon@googlemail.com>
Date:   Tue Mar 29 13:31:25 2011 +0200

    char/tpm: Fix unitialized usage of data buffer
    
    commit 1309d7afbed112f0e8e90be9af975550caa0076b upstream.
    
    This patch fixes information leakage to the userspace by initializing
    the data buffer to zero.
    
    Reported-by: Peter Huewe <huewe.external@infineon.com>
    Signed-off-by: Peter Huewe <huewe.external@infineon.com>
    Signed-off-by: Marcel Selhorst <m.selhorst@sirrix.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    [ Also removed the silly "* sizeof(u8)".  If that isn't 1, we have way
      deeper problems than a simple multiplication can fix.   - Linus ]
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 3778903dd4568b9f5f8a8cd0ea3c09b40307ecd0
Author: Goldwyn Rodrigues <rgoldwyn@gmail.com>
Date:   Thu Feb 17 09:44:40 2011 -0600

    Treat writes as new when holes span across page boundaries
    
    commit 272b62c1f0f6f742046e45b50b6fec98860208a0 upstream.
    
    When a hole spans across page boundaries, the next write forces
    a read of the block. This could end up reading existing garbage
    data from the disk in ocfs2_map_page_blocks. This leads to
    non-zero holes. In order to avoid this, mark the writes as new
    when the holes span across page boundaries.
    
    Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.de>
    Signed-off-by: jlbec <jlbec@evilplan.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 40e16b189b9594052a8efb92c4c0f0249dd4479b
Author: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
Date:   Thu Mar 24 14:51:21 2011 -0300

    Bluetooth: add support for Apple MacBook Pro 8,2
    
    commit 63a8588debd4dc72becb9e27add9343c76301c7d upstream.
    
    Just adding the vendor details makes it work fine.
    
    Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
    Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 794cf4569083bd3a54bcba5068e2beaea5663f2d
Author: Vasiliy Kulikov <segoon@openwall.com>
Date:   Mon Feb 14 13:54:31 2011 +0300

    Bluetooth: bnep: fix buffer overflow
    
    commit 43629f8f5ea32a998d06d1bb41eefa0e821ff573 upstream.
    
    Struct ca is copied from userspace.  It is not checked whether the "device"
    field is NULL terminated.  This potentially leads to BUG() inside of
    alloc_netdev_mqs() and/or information leak by creating a device with a name
    made of contents of kernel stack.
    
    Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
    Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit ce0f98ea90a8171cdaf249c0c623b455931d69ec
Author: Vasiliy Kulikov <segoon@openwall.com>
Date:   Mon Feb 14 16:49:23 2011 +0100

    bridge: netfilter: fix information leak
    
    commit d846f71195d57b0bbb143382647c2c6638b04c5a upstream.
    
    Struct tmp is copied from userspace.  It is not checked whether the "name"
    field is NULL terminated.  This may lead to buffer overflow and passing
    contents of kernel stack as a module name to try_then_request_module() and,
    consequently, to modprobe commandline.  It would be seen by all userspace
    processes.
    
    Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
    Signed-off-by: Patrick McHardy <kaber@trash.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit de204eb252ffd7786bcdead3a88d04e17b98a993
Author: Vasiliy Kulikov <segoon@openwall.com>
Date:   Mon Feb 14 13:54:26 2011 +0300

    Bluetooth: sco: fix information leak to userspace
    
    commit c4c896e1471aec3b004a693c689f60be3b17ac86 upstream.
    
    struct sco_conninfo has one padding byte in the end.  Local variable
    cinfo of type sco_conninfo is copied to userspace with this uninizialized
    one byte, leading to old stack contents leak.
    
    Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
    Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 4c4b0c5672df6404af076f47f9625e4eaa30954c
Author: John W. Linville <linville@tuxdriver.com>
Date:   Wed Mar 30 14:02:46 2011 -0400

    b43: allocate receive buffers big enough for max frame len + offset
    
    commit c85ce65ecac078ab1a1835c87c4a6319cf74660a upstream.
    
    Otherwise, skb_put inside of dma_rx can fail...
    
    	https://bugzilla.kernel.org/show_bug.cgi?id=32042
    
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 50ff23dee524be20ac74a545df4ccad9dbf94c14
Author: Christian Lamparter <chunkeey@googlemail.com>
Date:   Sat Apr 2 11:31:29 2011 +0200

    p54usb: IDs for two new devices
    
    commit 220107610c7c2c9703e09eb363e8ab31025b9315 upstream.
    
    Reported-by: Mark Davis [via p54/devices wiki]
    Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit a912dbb16e083224bab946591e2251278a1dd358
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Thu Apr 7 07:35:50 2011 -0700

    mm: avoid wrapping vm_pgoff in mremap()
    
    commit 982134ba62618c2d69fbbbd166d0a11ee3b7e3d8 upstream.
    
    The normal mmap paths all avoid creating a mapping where the pgoff
    inside the mapping could wrap around due to overflow.  However, an
    expanding mremap() can take such a non-wrapping mapping and make it
    bigger and cause a wrapping condition.
    
    Noticed by Robert Swiecki when running a system call fuzzer, where it
    caused a BUG_ON() due to terminally confusing the vma_prio_tree code.  A
    vma dumping patch by Hugh then pinpointed the crazy wrapped case.
    
    Reported-and-tested-by: Robert Swiecki <robert@swiecki.net>
    Acked-by: Hugh Dickins <hughd@google.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit b229ff76e622cb4ba1e79c21764ff20b8c7f8fbe
Author: Jan Kara <jack@suse.cz>
Date:   Thu Mar 31 18:36:52 2011 +0200

    quota: Don't write quota info in dquot_commit()
    
    commit b03f24567ce7caf2420b8be4c6eb74c191d59a91 upstream.
    
    There's no reason to write quota info in dquot_commit(). The writing is a
    relict from the old days when we didn't have dquot_acquire() and
    dquot_release() and thus dquot_commit() could have created / removed quota
    structures from the file. These days dquot_commit() only updates usage counters
    / limits in quota structure and thus there's no need to write quota info.
    
    This also fixes an issue with journaling filesystem which didn't reserve
    enough space in the transaction for write of quota info (it could have been
    dirty at the time of dquot_commit() because of a race with other operation
    changing it).
    
    Reported-and-tested-by: Lukas Czerner <lczerner@redhat.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit ccc269e534996fa18bb89317a3af3451d94bb78a
Author: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Date:   Mon Apr 4 17:16:39 2011 +0300

    UBIFS: fix debugging failure in dbg_check_space_info
    
    commit 7da6443aca9be29c6948dcbd636ad50154d0bc0c upstream.
    
    This patch fixes a debugging failure with which looks like this:
    UBIFS error (pid 32313): dbg_check_space_info: free space changed from 6019344 to 6022654
    
    The reason for this failure is described in the comment this patch adds
    to the code. But in short - 'c->freeable_cnt' may be different before
    and after re-mounting, and this is normal. So the debugging code should
    make sure that free space calculations do not depend on 'c->freeable_cnt'.
    
    A similar issue has been reported here:
    http://lists.infradead.org/pipermail/linux-mtd/2011-April/034647.html
    
    This patch should fix it.
    
    For the -stable guys: this patch is only relevant for kernels 2.6.30
    onwards.
    
    Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 6883e53afcda1cc1576f3bbb1e9d6dbe4012db4c
Author: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Date:   Fri Mar 25 19:09:54 2011 +0200

    UBIFS: fix oops on error path in read_pnode
    
    commit 54acbaaa523ca0bd284a18f67ad213c379679e86 upstream.
    
    Thanks to coverity which spotted that UBIFS will oops if 'kmalloc()'
    in 'read_pnode()' fails and we dereference a NULL 'pnode' pointer
    when we 'goto out'.
    
    Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 83d20f1306dc5ce76f195917dead2ce30351d2fb
Author: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Date:   Fri Mar 25 18:33:57 2011 +0200

    UBIFS: do not read flash unnecessarily
    
    commit 8b229c76765816796eec7ccd428f03bd8de8b525 upstream.
    
    This fix makes the 'dbg_check_old_index()' function return
    immediately if debugging is disabled, instead of executing
    incorrect 'goto out' which causes UBIFS to:
    
    1. Allocate memory
    2. Read the flash
    
    On every commit. OK, we do not commit that often, but it is
    still silly to do unneeded I/O anyway.
    
    Credits to coverity for spotting this silly issue.
    
    Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 7f4353ff07d3fa47f2334d596d83c4465a2960ed
Author: Suresh Siddha <suresh.b.siddha@intel.com>
Date:   Tue Mar 29 15:38:12 2011 -0700

    x86, mtrr, pat: Fix one cpu getting out of sync during resume
    
    commit 84ac7cdbdd0f04df6b96153f7a79127fd6e45467 upstream.
    
    On laptops with core i5/i7, there were reports that after resume
    graphics workloads were performing poorly on a specific AP, while
    the other cpu's were ok. This was observed on a 32bit kernel
    specifically.
    
    Debug showed that the PAT init was not happening on that AP
    during resume and hence it contributing to the poor workload
    performance on that cpu.
    
    On this system, resume flow looked like this:
    
    1. BP starts the resume sequence and we reinit BP's MTRR's/PAT
       early on using mtrr_bp_restore()
    
    2. Resume sequence brings all AP's online
    
    3. Resume sequence now kicks off the MTRR reinit on all the AP's.
    
    4. For some reason, between point 2 and 3, we moved from BP
       to one of the AP's. My guess is that printk() during resume
       sequence is contributing to this. We don't see similar
       behavior with the 64bit kernel but there is no guarantee that
       at this point the remaining resume sequence (after AP's bringup)
       has to happen on BP.
    
    5. set_mtrr() was assuming that we are still on BP and skipped the
       MTRR/PAT init on that cpu (because of 1 above)
    
    6. But we were on an AP and this led to not reprogramming PAT
       on this cpu leading to bad performance.
    
    Fix this by doing unconditional mtrr_if->set_all() in set_mtrr()
    during MTRR/PAT init. This might be unnecessary if we are still
    running on BP. But it is of no harm and will guarantee that after
    resume, all the cpu's will be in sync with respect to the
    MTRR/PAT registers.
    
    Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1301438292-28370-1-git-send-email-eric@anholt.net>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Tested-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit f86c63dd724d6779a6b193206d31008e0dc53c12
Author: Li Zefan <lizf@cn.fujitsu.com>
Date:   Mon Mar 28 02:01:25 2011 +0000

    Btrfs: Fix uninitialized root flags for subvolumes
    
    commit 08fe4db170b4193603d9d31f40ebaf652d07ac9c upstream.
    
    root_item->flags and root_item->byte_limit are not initialized when
    a subvolume is created. This bug is not revealed until we added
    readonly snapshot support - now you mount a btrfs filesystem and you
    may find the subvolumes in it are readonly.
    
    To work around this problem, we steal a bit from root_item->inode_item->flags,
    and use it to indicate if those fields have been properly initialized.
    When we read a tree root from disk, we check if the bit is set, and if
    not we'll set the flag and initialize the two fields of the root item.
    
    Reported-by: Andreas Philipp <philipp.andreas@gmail.com>
    Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Tested-by: Andreas Philipp <philipp.andreas@gmail.com>
    Signed-off-by: Chris Mason <chris.mason@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 18569f1467745ca8ebe929ecc43046ab71fd01a5
Author: Dan Rosenberg <drosenberg@vsecurity.com>
Date:   Sat Mar 19 20:43:43 2011 +0000

    ROSE: prevent heap corruption with bad facilities
    
    commit be20250c13f88375345ad99950190685eda51eb8 upstream.
    
    When parsing the FAC_NATIONAL_DIGIS facilities field, it's possible for
    a remote host to provide more digipeaters than expected, resulting in
    heap corruption.  Check against ROSE_MAX_DIGIS to prevent overflows, and
    abort facilities parsing on failure.
    
    Additionally, when parsing the FAC_CCITT_DEST_NSAP and
    FAC_CCITT_SRC_NSAP facilities fields, a remote host can provide a length
    of less than 10, resulting in an underflow in a memcpy size, causing a
    kernel panic due to massive heap corruption.  A length of greater than
    20 results in a stack overflow of the callsign array.  Abort facilities
    parsing on these invalid length values.
    
    Signed-off-by: Dan Rosenberg <drosenberg@vsecurity.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit b656c2b755012f488d2705d095db10854a2d803f
Author: Clemens Ladisch <clemens@ladisch.de>
Date:   Wed Mar 30 08:24:25 2011 +0200

    ALSA: ens1371: fix Creative Ectiva support
    
    commit 6ebb8a4a43e34f999ab36f27f972f3cd751cda4f upstream.
    
    To make the EV1938 chip work, add a magic bit and an extra delay.
    
    Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Tested-by: Tino Schmidt <mailtinoshomepage@gmx.net>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 5f46532ee26f42500aa79df246f3ccbef013c6f8
Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
Date:   Wed Mar 23 20:45:40 2011 +0000

    ASoC: Explicitly say registerless widgets have no register
    
    commit 0ca03cd7d0fa3bfbd56958136a10f19733c4ce12 upstream.
    
    This stops code that handles widgets generically from attempting to access
    registers for these widgets.
    
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Acked-by: Liam Girdwood <lrg@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 61b4a6c0ab467bb30931018fc620e93c5602c96b
Author: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Date:   Sun Mar 27 22:50:49 2011 +0900

    nilfs2: fix data loss in mmap page write for hole blocks
    
    commit 34094537943113467faee98fe67c8a3d3f9a0a8b upstream.
    
    From the result of a function test of mmap, mmap write to shared pages
    turned out to be broken for hole blocks.  It doesn't write out filled
    blocks and the data will be lost after umount.  This is due to a bug
    that the target file is not queued for log writer when filling hole
    blocks.
    
    Also, nilfs_page_mkwrite function exits normal code path even after
    successfully filled hole blocks due to a change of block_page_mkwrite
    function; just after nilfs was merged into the mainline,
    block_page_mkwrite() started to return VM_FAULT_LOCKED instead of zero
    by the patch "mm: close page_mkwrite races" (commit:
    b827e496c893de0c).  The current nilfs_page_mkwrite() is not handling
    this value properly.
    
    This corrects nilfs_page_mkwrite() and will resolve the data loss
    problem in mmap write.
    
    [This should be applied to every kernel since 2.6.30 but a fix is
     needed for 2.6.37 and prior kernels]
    
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Tested-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 0b03d0985f309d5f65498220a01d7c2b4bb77661
Author: Dan Rosenberg <drosenberg@vsecurity.com>
Date:   Sat Mar 19 20:14:30 2011 +0000

    irda: prevent heap corruption on invalid nickname
    
    commit d50e7e3604778bfc2dc40f440e0742dbae399d54 upstream.
    
    Invalid nicknames containing only spaces will result in an underflow in
    a memcpy size calculation, subsequently destroying the heap and
    panicking.
    
    v2 also catches the case where the provided nickname is longer than the
    buffer size, which can result in controllable heap corruption.
    
    Signed-off-by: Dan Rosenberg <drosenberg@vsecurity.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 44b722fa1d1fdaecdf6fce55c26f90a98ea4b1d2
Author: Dan Rosenberg <drosenberg@vsecurity.com>
Date:   Sun Mar 20 15:32:06 2011 +0000

    irda: validate peer name and attribute lengths
    
    commit d370af0ef7951188daeb15bae75db7ba57c67846 upstream.
    
    Length fields provided by a peer for names and attributes may be longer
    than the destination array sizes.  Validate lengths to prevent stack
    buffer overflows.
    
    Signed-off-by: Dan Rosenberg <drosenberg@vsecurity.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit f3373d71e3cbda31c253a8be1956de17ad089bb6
Author: Dan Rosenberg <drosenberg@vsecurity.com>
Date:   Mon Feb 14 13:45:28 2011 +0000

    xfs: prevent leaking uninitialized stack memory in FSGEOMETRY_V1
    
    commit c4d0c3b097f7584772316ee4d64a09fe0e4ddfca upstream.
    
    The FSGEOMETRY_V1 ioctl (and its compat equivalent) calls out to
    xfs_fs_geometry() with a version number of 3.  This code path does not
    fill in the logsunit member of the passed xfs_fsop_geom_t, leading to
    the leaking of four bytes of uninitialized stack data to potentially
    unprivileged callers.
    
    v2 switches to memset() to avoid future issues if structure members
    change, on suggestion of Dave Chinner.
    
    Signed-off-by: Dan Rosenberg <drosenberg@vsecurity.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reviewed-by: Eugene Teo <eugeneteo@kernel.org>
    Signed-off-by: Alex Elder <aelder@sgi.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit db9fb5db749de2109d9312929c6e2f70b2055f89
Author: Olaf Hering <olaf@aepfle.de>
Date:   Mon Mar 21 14:41:37 2011 +0100

    staging: hv: use sync_bitops when interacting with the hypervisor
    
    commit 22356585712d1ff08fbfed152edd8b386873b238 upstream.
    
    Locking is required when tweaking bits located in a shared page, use the
    sync_ version of bitops. Without this change vmbus_on_event() will miss
    events and as a result, vmbus_isr() will not schedule the receive tasklet.
    
    [Backported to 2.6.32 stable kernel by Haiyang Zhang <haiyangz@microsoft.com>]
    
    Signed-off-by: Olaf Hering <olaf@aepfle.de>
    Acked-by: Haiyang Zhang <haiyangz@microsoft.com>
    Acked-by: Hank Janssen <hjanssen@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit fd5d4740a543f457f787a7760a309350a49bb8c6
Author: Haiyang Zhang <haiyangz@microsoft.com>
Date:   Wed Apr 6 15:18:00 2011 -0700

    staging: hv: Fix GARP not sent after Quick Migration
    
    commit c996edcf1c451b81740abbcca5257ed7e353fcc6 upstream.
    
    After Quick Migration, the network is not immediately operational in the
    current context when receiving RNDIS_STATUS_MEDIA_CONNECT event. So, I added
    another netif_notify_peers() into a scheduled work, otherwise GARP packet will
    not be sent after quick migration, and cause network disconnection.
    
    Thanks to Mike Surcouf <mike@surcouf.co.uk> for reporting the bug and
    testing the patch.
    
    Reported-by: Mike Surcouf <mike@surcouf.co.uk>
    Tested-by: Mike Surcouf <mike@surcouf.co.uk>
    Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
    Signed-off-by: Hank Janssen <hjanssen@microsoft.com>
    Signed-off-by: Abhishek Kane <v-abkane@microsoft.com>
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit dfc75cfe82f7961feae07838cb832853d7433543
Author: Arjan Mels <arjan.mels@gmx.net>
Date:   Tue Apr 5 20:26:59 2011 +0200

    staging: usbip: bugfix for isochronous packets and optimization
    
    commit 28276a28d8b3cd19f4449991faad4945fe557656 upstream.
    
    For isochronous packets the actual_length is the sum of the actual
    length of each of the packets, however between the packets might be
    padding, so it is not sufficient to just send the first actual_length
    bytes of the buffer. To fix this and simultanesouly optimize the
    bandwidth the content of the isochronous packets are send without the
    padding, the padding is restored on the receiving end.
    
    Signed-off-by: Arjan Mels <arjan.mels@gmx.net>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Takahiro Hirofuchi <hirofuchi@users.sourceforge.net>
    Cc: Max Vozeler <max@vozeler.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit db898d0c5c493ce4177d5e1d3a953e079a56a24b
Author: Arjan Mels <arjan.mels@gmx.net>
Date:   Tue Apr 5 20:26:38 2011 +0200

    staging: usbip: bugfix add number of packets for isochronous frames
    
    commit 1325f85fa49f57df034869de430f7c302ae23109 upstream.
    
    The number_of_packets was not transmitted for RET_SUBMIT packets. The
    linux client used the stored number_of_packet from the submitted
    request. The windows userland client does not do this however and needs
    to know the number_of_packets to determine the size of the transmission.
    
    Signed-off-by: Arjan Mels <arjan.mels@gmx.net>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Takahiro Hirofuchi <hirofuchi@users.sourceforge.net>
    Cc: Max Vozeler <max@vozeler.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 92df499eee56047df6dcac34a743ee72ba3a82ef
Author: Arjan Mels <arjan.mels@gmx.net>
Date:   Tue Apr 5 20:26:11 2011 +0200

    staging: usbip: bugfixes related to kthread conversion
    
    commit d2dd0b07c3e725d386d20294ec906f7ddef207fa upstream.
    
    When doing a usb port reset do a queued reset instead to prevent a
    deadlock: the reset will cause the driver to unbind, causing the
    usb_driver_lock_for_reset to stall.
    
    Signed-off-by: Arjan Mels <arjan.mels@gmx.net>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Takahiro Hirofuchi <hirofuchi@users.sourceforge.net>
    Cc: Max Vozeler <max@vozeler.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit e0026eb67a332b6ab0f2e61838aeba1b15604696
Author: Andrew Vasquez <andrew.vasquez@qlogic.com>
Date:   Fri May 28 15:08:22 2010 -0700

    qla2xxx: Make the FC port capability mutual exclusive.
    
    [ upstream commit b0cd579cde8ee0c7ed52239531ba09bcbc5b54c2 ]
    
    In case of both target and initiator capabilities reported by fc port,
    the fc port port capability is made mutualy exclusive with priority given
    for target capabilities.
    
    Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
    Signed-off-by: James Bottomley <James.Bottomley@suse.de>
    Acked-by: Madhuranath Iyengar <Madhu.Iyengar@qlogic.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 7c2141d484fbfa03af5f83602162d9576564121b
Author: Mel Gorman <mel@csn.ul.ie>
Date:   Thu Jan 13 15:45:41 2011 -0800

    mm: page allocator: adjust the per-cpu counter threshold when memory is low
    
    Upstream commit 88f5acf88ae6a9778f6d25d0d5d7ec2d57764a97
    
    Commit aa45484 ("calculate a better estimate of NR_FREE_PAGES when memory
    is low") noted that watermarks were based on the vmstat NR_FREE_PAGES.  To
    avoid synchronization overhead, these counters are maintained on a per-cpu
    basis and drained both periodically and when a threshold is above a
    threshold.  On large CPU systems, the difference between the estimate and
    real value of NR_FREE_PAGES can be very high.  The system can get into a
    case where pages are allocated far below the min watermark potentially
    causing livelock issues.  The commit solved the problem by taking a better
    reading of NR_FREE_PAGES when memory was low.
    
    Unfortately, as reported by Shaohua Li this accurate reading can consume a
    large amount of CPU time on systems with many sockets due to cache line
    bouncing.  This patch takes a different approach.  For large machines
    where counter drift might be unsafe and while kswapd is awake, the per-cpu
    thresholds for the target pgdat are reduced to limit the level of drift to
    what should be a safe level.  This incurs a performance penalty in heavy
    memory pressure by a factor that depends on the workload and the machine
    but the machine should function correctly without accidentally exhausting
    all memory on a node.  There is an additional cost when kswapd wakes and
    sleeps but the event is not expected to be frequent - in Shaohua's test
    case, there was one recorded sleep and wake event at least.
    
    To ensure that kswapd wakes up, a safe version of zone_watermark_ok() is
    introduced that takes a more accurate reading of NR_FREE_PAGES when called
    from wakeup_kswapd, when deciding whether it is really safe to go back to
    sleep in sleeping_prematurely() and when deciding if a zone is really
    balanced or not in balance_pgdat().  We are still using an expensive
    function but limiting how often it is called.
    
    When the test case is reproduced, the time spent in the watermark
    functions is reduced.  The following report is on the percentage of time
    spent cumulatively spent in the functions zone_nr_free_pages(),
    zone_watermark_ok(), __zone_watermark_ok(), zone_watermark_ok_safe(),
    zone_page_state_snapshot(), zone_page_state().
    
    vanilla                      11.6615%
    disable-threshold            0.2584%
    
    David said:
    
    : We had to pull aa454840 "mm: page allocator: calculate a better estimate
    : of NR_FREE_PAGES when memory is low and kswapd is awake" from 2.6.36
    : internally because tests showed that it would cause the machine to stall
    : as the result of heavy kswapd activity.  I merged it back with this fix as
    : it is pending in the -mm tree and it solves the issue we were seeing, so I
    : definitely think this should be pushed to -stable (and I would seriously
    : consider it for 2.6.37 inclusion even at this late date).
    
    Signed-off-by: Mel Gorman <mel@csn.ul.ie>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reported-by: Shaohua Li <shaohua.li@intel.com>
    Reviewed-by: Christoph Lameter <cl@linux.com>
    Tested-by: Nicolas Bareil <nico@chdir.org>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Kyle McMartin <kyle@mcmartin.ca>
    Cc: <stable@kernel.org>		[2.6.37.1, 2.6.36.x]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    
    backported from 88f5acf88ae6a9778f6d25d0d5d7ec2d57764a97
    BugLink: http://bugs.launchpad.net/bugs/719446
    Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>