commit cd854fa8669e98b116ff3863df4e708890edb6b4
Author: Andi Kleen <andi@firstfloor.org>
Date:   Thu Mar 31 11:58:56 2011 -0700

    Release 2.6.35.12
    
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 44736f7cc1e6fa539449f1327b6e88323e96de57
Author: Roland Dreier <roland@purestorage.com>
Date:   Mon Mar 28 14:13:35 2011 -0700

    Relax si_code check in rt_sigqueueinfo and rt_tgsigqueueinfo
    
    [ upstream commit 243b422 ]
    
    Commit da48524eb206 ("Prevent rt_sigqueueinfo and rt_tgsigqueueinfo
    from spoofing the signal code") made the check on si_code too strict.
    There are several legitimate places where glibc wants to queue a
    negative si_code different from SI_QUEUE:
    
     - This was first noticed with glibc's aio implementation, which wants
       to queue a signal with si_code SI_ASYNCIO; the current kernel
       causes glibc's tst-aio4 test to fail because rt_sigqueueinfo()
       fails with EPERM.
    
     - Further examination of the glibc source shows that getaddrinfo_a()
       wants to use SI_ASYNCNL (which the kernel does not even define).
       The timer_create() fallback code wants to queue signals with SI_TIMER.
    
    As suggested by Oleg Nesterov <oleg@redhat.com>, loosen the check to
    forbid only the problematic SI_TKILL case.
    
    Reported-by: Klaus Dittrich <kladit@arcor.de>
    Acked-by: Julien Tinnes <jln@google.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: <stable@kernel.org>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit c8149a61de28892d8d28fd2180d1f9bbba2c9551
Author: Marcelo Tosatti <mtosatti@redhat.com>
Date:   Thu Mar 31 11:58:56 2011 -0700

    KVM: VMX: Fix host userspace gsbase corruption
    
    commit c8770e7ba63bb5dd8fe5f9d251275a8fa717fb78 upstream.
    
    We now use load_gs_index() to load gs safely; unfortunately this also
    changes MSR_KERNEL_GS_BASE, which we managed separately.  This resulted
    in confusion and breakage running 32-bit host userspace on a 64-bit kernel.
    
    Fix by
    - saving guest MSR_KERNEL_GS_BASE before we we reload the host's gs
    - doing the host save/load unconditionally, instead of only when in guest
      long mode
    
    Things can be cleaned up further, but this is the minmal fix for now.
    
    Signed-off-by: Avi Kivity <avi@redhat.com>
    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 8aeabadb7ba1c1310bb968950e5f3f1793a58b19
Author: Avi Kivity <avi@redhat.com>
Date:   Thu Mar 31 11:58:56 2011 -0700

    KVM: Correct ordering of ldt reload wrt fs/gs reload
    
    commit 0a77fe4c188e25917799f2356d4aa5e6d80c39a2 upstream.
    
    If fs or gs refer to the ldt, they must be reloaded after the ldt.  Reorder
    the code to that effect.
    
    Userspace code that uses the ldt with kvm is nonexistent, so this doesn't fix
    a user-visible bug.
    
    Signed-off-by: Avi Kivity <avi@redhat.com>
    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit b59a19a633904c9b1bb7fbbdb33023b1eb7ce641
Author: Avi Kivity <avi@redhat.com>
Date:   Thu Mar 31 11:58:55 2011 -0700

    KVM: Fix fs/gs reload oops with invalid ldt
    
    commit 9581d442b9058d3699b4be568b6e5eae38a41493 upstream.
    
    kvm reloads the host's fs and gs blindly, however the underlying segment
    descriptors may be invalid due to the user modifying the ldt after loading
    them.
    
    Fix by using the safe accessors (loadsegment() and load_gs_index()) instead
    of home grown unsafe versions.
    
    This is CVE-2010-3698.
    
    KVM-Stable-Tag.
    Signed-off-by: Avi Kivity <avi@redhat.com>
    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit ae364158077225260dced4bf5f39db8c8c1289db
Author: Marcelo Tosatti <mtosatti@redhat.com>
Date:   Thu Mar 31 11:58:55 2011 -0700

    Revert "KVM: Correct ordering of ldt reload wrt fs/gs reload"
    
    This reverts commit d3f813da18f83a31f2678988b450e6a1c94c95ed.
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit a0e696446fddddabf00c57e1db5f38b929c3e713
Author: Avi Kivity <avi@redhat.com>
Date:   Thu Mar 31 11:58:55 2011 -0700

    KVM: i8259: initialize isr_ack
    
    commit a0272630bb594b4eac03a79e77957df7dad8eade upstream.
    
    isr_ack is never initialized.  So, until the first PIC reset, interrupts
    may fail to be injected.  This can cause Windows XP to fail to boot, as
    reported in the fallout from the fix to
    https://bugzilla.kernel.org/show_bug.cgi?id=21962.
    
    Reported-and-tested-by: Nicolas Prochazka <prochazka.nicolas@gmail.com>
    Signed-off-by: Avi Kivity <avi@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 8295c17f384a1e50b56cacbdc0d91e1c21c1b953
Author: Andre Przywara <andre.przywara@amd.com>
Date:   Thu Mar 31 11:58:55 2011 -0700

    KVM: enlarge number of possible CPUID leaves
    
    commit 73c1160ce377d8fc6d84cb630ebf9658808bec49 upstream.
    
    Currently the number of CPUID leaves KVM handles is limited to 40.
    My desktop machine (AthlonII) already has 35 and future CPUs will
    expand this well beyond the limit. Extend the limit to 80 to make
    room for future processors.
    
    KVM-Stable-Tag.
    Signed-off-by: Andre Przywara <andre.przywara@amd.com>
    Signed-off-by: Avi Kivity <avi@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit a334427ace8de88f5257cb6431f4bfc0588c7ac7
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Mon Feb 21 09:03:36 2011 +0100

    iwl3945: remove plcp check
    
    commit c91d01556f52255a31575be0cb1981c92a2a5028 upstream.
    
    Patch fixes:
    https://bugzilla.redhat.com/show_bug.cgi?id=654599
    
    Many users report very low speed problem on 3945 devices,
    this patch fixes problem, but only for some of them.
    
    For unknown reason, sometimes after hw scanning, device is not able
    to receive frames at high rate. Since plcp health check may request
    hw scan to "reset radio", performance problem start to be observable
    after update kernel to .35, where plcp check was introduced.
    
    Bug reporter confirmed that removing plcp check fixed problem for him.
    
    Reported-and-tested-by: SilvioTO <silviotoya@yahoo.it>
    Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit ecbde8e81e12c89a4d19ba4c66afa4f8784187d3
Author: NeilBrown <neilb@suse.de>
Date:   Thu Feb 24 17:26:41 2011 +1100

    md: Fix - again - partition detection when array becomes active
    
    [ upstream commit f0b4f7e2f29af678bd9af43422c537dcb6008603 ]
    
    Revert
        b821eaa572fd737faaf6928ba046e571526c36c6
    and
        f3b99be19ded511a1bf05a148276239d9f13eefa
    
    When I wrote the first of these I had a wrong idea about the
    lifetime of 'struct block_device'.  It can disappear at any time that
    the block device is not open if it falls out of the inode cache.
    
    So relying on the 'size' recorded with it to detect when the
    device size has changed and so we need to revalidate, is wrong.
    
    Rather, we really do need the 'changed' attribute stored directly in
    the mddev and set/tested as appropriate.
    
    Without this patch, a sequence of:
       mknod / open / close / unlink
    
    (which can cause a block_device to be created and then destroyed)
    will result in a rescan of the partition table and consequence removal
    and addition of partitions.
    Several of these in a row can get udev racing to create and unlink and
    other code can get confused.
    
    With the patch, the rescan is only performed when needed and so there
    are no races.
    
    This is suitable for any stable kernel from 2.6.35.
    
    Reported-by: "Wojcik, Krzysztof" <krzysztof.wojcik@intel.com>
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: stable@kernel.org

commit b6c33e339d01d1132887d822555697b0b4bbded9
Author: Guenter Roeck <guenter.roeck@ericsson.com>
Date:   Sat Aug 14 21:08:55 2010 +0200

    hwmon: (w83627ehf) Driver cleanup
    
    [ upstream commit da2e025590cf7038440132d4bbc967a579b11112 ]
    
    - Moved fan pwm register array pointers into per-instance data.
    - Only read fan pwm data for installed/supported fans.
    - Update fan max output and fan step output information from data in
      registers.
    - Create max_output and step_output attribute files only if respective
      fan pwm registers exist.
    
    Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 491da76ab1094232131cd3434cde096350e1b82c
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Sat Jan 29 14:57:22 2011 +0000

    net: Fix ip link add netns oops
    
    [ upstream commit 13ad17745c2cbd437d9e24b2d97393e0be11c439 ]
    
    Ed Swierk <eswierk@bigswitch.com> writes:
    > On 2.6.35.7
    >  ip link add link eth0 netns 9999 type macvlan
    > where 9999 is a nonexistent PID triggers an oops and causes all network functions to hang:
    > [10663.821898] BUG: unable to handle kernel NULL pointer dereference at 000000000000006d
    >  [10663.821917] IP: [<ffffffff8149c2fa>] __dev_alloc_name+0x9a/0x170
    >  [10663.821933] PGD 1d3927067 PUD 22f5c5067 PMD 0
    >  [10663.821944] Oops: 0000 [#1] SMP
    >  [10663.821953] last sysfs file: /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
    >  [10663.821959] CPU 3
    >  [10663.821963] Modules linked in: macvlan ip6table_filter ip6_tables rfcomm ipt_MASQUERADE binfmt_misc iptable_nat nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack sco ipt_REJECT bnep l2cap xt_tcpudp iptable_filter ip_tables x_tables bridge stp vboxnetadp vboxnetflt vboxdrv kvm_intel kvm parport_pc ppdev snd_hda_codec_intelhdmi snd_hda_codec_conexant arc4 iwlagn iwlcore mac80211 snd_hda_intel snd_hda_codec snd_hwdep snd_pcm snd_seq_midi snd_rawmidi i915 snd_seq_midi_event snd_seq thinkpad_acpi drm_kms_helper btusb tpm_tis nvram uvcvideo snd_timer snd_seq_device bluetooth videodev v4l1_compat v4l2_compat_ioctl32 tpm drm tpm_bios snd cfg80211 psmouse serio_raw intel_ips soundcore snd_page_alloc intel_agp i2c_algo_bit video output netconsole configfs lp parport usbhid hid e1000e sdhci_pci ahci libahci sdhci led_class
    >  [10663.822155]
    >  [10663.822161] Pid: 6000, comm: ip Not tainted 2.6.35-23-generic #41-Ubuntu 2901CTO/2901CTO
    >  [10663.822167] RIP: 0010:[<ffffffff8149c2fa>] [<ffffffff8149c2fa>] __dev_alloc_name+0x9a/0x170
    >  [10663.822177] RSP: 0018:ffff88014aebf7b8 EFLAGS: 00010286
    >  [10663.822182] RAX: 00000000fffffff4 RBX: ffff8801ad900800 RCX: 0000000000000000
    >  [10663.822187] RDX: ffff880000000000 RSI: 0000000000000000 RDI: ffff88014ad63000
    >  [10663.822191] RBP: ffff88014aebf808 R08: 0000000000000041 R09: 0000000000000041
    >  [10663.822196] R10: 0000000000000000 R11: dead000000200200 R12: ffff88014aebf818
    >  [10663.822201] R13: fffffffffffffffd R14: ffff88014aebf918 R15: ffff88014ad62000
    >  [10663.822207] FS: 00007f00c487f700(0000) GS:ffff880001f80000(0000) knlGS:0000000000000000
    >  [10663.822212] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    >  [10663.822216] CR2: 000000000000006d CR3: 0000000231f19000 CR4: 00000000000026e0
    >  [10663.822221] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    >  [10663.822226] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    >  [10663.822231] Process ip (pid: 6000, threadinfo ffff88014aebe000, task ffff88014afb16e0)
    >  [10663.822236] Stack:
    >  [10663.822240] ffff88014aebf808 ffffffff814a2bb5 ffff88014aebf7e8 00000000a00ee8d6
    >  [10663.822251] <0> 0000000000000000 ffffffffa00ef940 ffff8801ad900800 ffff88014aebf818
    >  [10663.822265] <0> ffff88014aebf918 ffff8801ad900800 ffff88014aebf858 ffffffff8149c413
    >  [10663.822281] Call Trace:
    >  [10663.822290] [<ffffffff814a2bb5>] ? dev_addr_init+0x75/0xb0
    >  [10663.822298] [<ffffffff8149c413>] dev_alloc_name+0x43/0x90
    >  [10663.822307] [<ffffffff814a85ee>] rtnl_create_link+0xbe/0x1b0
    >  [10663.822314] [<ffffffff814ab2aa>] rtnl_newlink+0x48a/0x570
    >  [10663.822321] [<ffffffff814aafcc>] ? rtnl_newlink+0x1ac/0x570
    >  [10663.822332] [<ffffffff81030064>] ? native_x2apic_icr_read+0x4/0x20
    >  [10663.822339] [<ffffffff814a8c17>] rtnetlink_rcv_msg+0x177/0x290
    >  [10663.822346] [<ffffffff814a8aa0>] ? rtnetlink_rcv_msg+0x0/0x290
    >  [10663.822354] [<ffffffff814c25d9>] netlink_rcv_skb+0xa9/0xd0
    >  [10663.822360] [<ffffffff814a8a85>] rtnetlink_rcv+0x25/0x40
    >  [10663.822367] [<ffffffff814c223e>] netlink_unicast+0x2de/0x2f0
    >  [10663.822374] [<ffffffff814c303e>] netlink_sendmsg+0x1fe/0x2e0
    >  [10663.822383] [<ffffffff81488533>] sock_sendmsg+0xf3/0x120
    >  [10663.822391] [<ffffffff815899fe>] ? _raw_spin_lock+0xe/0x20
    >  [10663.822400] [<ffffffff81168656>] ? __d_lookup+0x136/0x150
    >  [10663.822406] [<ffffffff815899fe>] ? _raw_spin_lock+0xe/0x20
    >  [10663.822414] [<ffffffff812b7a0d>] ? _atomic_dec_and_lock+0x4d/0x80
    >  [10663.822422] [<ffffffff8116ea90>] ? mntput_no_expire+0x30/0x110
    >  [10663.822429] [<ffffffff81486ff5>] ? move_addr_to_kernel+0x65/0x70
    >  [10663.822435] [<ffffffff81493308>] ? verify_iovec+0x88/0xe0
    >  [10663.822442] [<ffffffff81489020>] sys_sendmsg+0x240/0x3a0
    > [10663.822450] [<ffffffff8111e2a9>] ? __do_fault+0x479/0x560
    >  [10663.822457] [<ffffffff815899fe>] ? _raw_spin_lock+0xe/0x20
    >  [10663.822465] [<ffffffff8116cf4a>] ? alloc_fd+0x10a/0x150
    >  [10663.822473] [<ffffffff8158d76e>] ? do_page_fault+0x15e/0x350
    >  [10663.822482] [<ffffffff8100a0f2>] system_call_fastpath+0x16/0x1b
    >  [10663.822487] Code: 90 48 8d 78 02 be 25 00 00 00 e8 92 1d e2 ff 48 85 c0 75 cf bf 20 00 00 00 e8 c3 b1 c6 ff 49 89 c7 b8 f4 ff ff ff 4d 85 ff 74 bd <4d> 8b 75 70 49 8d 45 70 48 89 45 b8 49 83 ee 58 eb 28 48 8d 55
    >  [10663.822618] RIP [<ffffffff8149c2fa>] __dev_alloc_name+0x9a/0x170
    >  [10663.822627] RSP <ffff88014aebf7b8>
    >  [10663.822631] CR2: 000000000000006d
    >  [10663.822636] ---[ end trace 3dfd6c3ad5327ca7 ]---
    
    This bug was introduced in:
    commit 81adee47dfb608df3ad0b91d230fb3cef75f0060
    Author: Eric W. Biederman <ebiederm@aristanetworks.com>
    Date:   Sun Nov 8 00:53:51 2009 -0800
    
        net: Support specifying the network namespace upon device creation.
    
        There is no good reason to not support userspace specifying the
        network namespace during device creation, and it makes it easier
        to create a network device and pass it to a child network namespace
        with a well known name.
    
        We have to be careful to ensure that the target network namespace
        for the new device exists through the life of the call.  To keep
        that logic clear I have factored out the network namespace grabbing
        logic into rtnl_link_get_net.
    
        In addtion we need to continue to pass the source network namespace
        to the rtnl_link_ops.newlink method so that we can find the base
        device source network namespace.
    
        Signed-off-by: Eric W. Biederman <ebiederm@aristanetworks.com>
        Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
    
    Where apparently I forgot to add error handling to the path where we create
    a new network device in a new network namespace, and pass in an invalid pid.
    
    Cc: stable@kernel.org
    Reported-by: Ed Swierk <eswierk@bigswitch.com>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 15361175578d65b4be8519399d03fe1c9b6ca425
Author: Pekka Enberg <penberg@kernel.org>
Date:   Mon Feb 14 17:46:21 2011 +0200

    Revert "slab: Fix missing DEBUG_SLAB last user"
    
    [ upstream commit 3ff84a7f36554b257cd57325b1a7c1fa4b49fbe3 ]
    
    This reverts commit 5c5e3b33b7cb959a401f823707bee006caadd76e.
    
    The commit breaks ARM thusly:
    
    | Mount-cache hash table entries: 512
    | slab error in verify_redzone_free(): cache `idr_layer_cache': memory outside object was overwritten
    | Backtrace:
    | [<c0227088>] (dump_backtrace+0x0/0x110) from [<c0431afc>] (dump_stack+0x18/0x1c)
    | [<c0431ae4>] (dump_stack+0x0/0x1c) from [<c0293304>] (__slab_error+0x28/0x30)
    | [<c02932dc>] (__slab_error+0x0/0x30) from [<c0293a74>] (cache_free_debugcheck+0x1c0/0x2b8)
    | [<c02938b4>] (cache_free_debugcheck+0x0/0x2b8) from [<c0293f78>] (kmem_cache_free+0x3c/0xc0)
    | [<c0293f3c>] (kmem_cache_free+0x0/0xc0) from [<c032b1c8>] (ida_get_new_above+0x19c/0x1c0)
    | [<c032b02c>] (ida_get_new_above+0x0/0x1c0) from [<c02af7ec>] (alloc_vfsmnt+0x54/0x144)
    | [<c02af798>] (alloc_vfsmnt+0x0/0x144) from [<c0299830>] (vfs_kern_mount+0x30/0xec)
    | [<c0299800>] (vfs_kern_mount+0x0/0xec) from [<c0299908>] (kern_mount_data+0x1c/0x20)
    | [<c02998ec>] (kern_mount_data+0x0/0x20) from [<c02146c4>] (sysfs_init+0x68/0xc8)
    | [<c021465c>] (sysfs_init+0x0/0xc8) from [<c02137d4>] (mnt_init+0x90/0x1b0)
    | [<c0213744>] (mnt_init+0x0/0x1b0) from [<c0213388>] (vfs_caches_init+0x100/0x140)
    | [<c0213288>] (vfs_caches_init+0x0/0x140) from [<c0208c0c>] (start_kernel+0x2e8/0x368)
    | [<c0208924>] (start_kernel+0x0/0x368) from [<c0208034>] (__enable_mmu+0x0/0x2c)
    | c0113268: redzone 1:0xd84156c5c032b3ac, redzone 2:0xd84156c5635688c0.
    | slab error in cache_alloc_debugcheck_after(): cache `idr_layer_cache': double free, or memory outside object was overwritten
    | ...
    | c011307c: redzone 1:0x9f91102ffffffff, redzone 2:0x9f911029d74e35b
    | slab: Internal list corruption detected in cache 'idr_layer_cache'(24), slabp c0113000(16). Hexdump:
    |
    | 000: 20 4f 10 c0 20 4f 10 c0 7c 00 00 00 7c 30 11 c0
    | 010: 10 00 00 00 10 00 00 00 00 00 c9 17 fe ff ff ff
    | 020: fe ff ff ff fe ff ff ff fe ff ff ff fe ff ff ff
    | 030: fe ff ff ff fe ff ff ff fe ff ff ff fe ff ff ff
    | 040: fe ff ff ff fe ff ff ff fe ff ff ff fe ff ff ff
    | 050: fe ff ff ff fe ff ff ff fe ff ff ff 11 00 00 00
    | 060: 12 00 00 00 13 00 00 00 14 00 00 00 15 00 00 00
    | 070: 16 00 00 00 17 00 00 00 c0 88 56 63
    | kernel BUG at /home/rmk/git/linux-2.6-rmk/mm/slab.c:2928!
    
    Reference: https://lkml.org/lkml/2011/2/7/238
    Cc: <stable@kernel.org> # 2.6.35.y and later
    Reported-and-analyzed-by: Russell King <rmk@arm.linux.org.uk>
    Signed-off-by: Pekka Enberg <penberg@kernel.org>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 552dca81137cfd49b2b4eebffc6a3621da31e83f
Author: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date:   Tue Mar 15 14:37:10 2011 +0100

    perf: Fix tear-down of inherited group events
    
    [ upstream commit 38b435b16c36b0d863efcf3f07b34a6fac9873fd ]
    
    When destroying inherited events, we need to destroy groups too,
    otherwise the event iteration in perf_event_exit_task_context() will
    miss group siblings and we leak events with all the consequences.
    
    Reported-and-tested-by: Vince Weaver <vweaver1@eecs.utk.edu>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: <stable@kernel.org> # .35+
    LKML-Reference: <1300196470.2203.61.camel@twins>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

commit 94f8413636c7c43eeebee440510adc4faa19a398
Author: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Date:   Wed Feb 23 15:46:42 2011 -0800

    xhci: Update internal dequeue pointers after stalls.
    
    [ upstream commit bf161e85fb153c0dd5a95faca73fd6a9d237c389 ]
    
    When an endpoint stalls, the xHCI driver must move the endpoint ring's
    dequeue pointer past the stalled transfer.  To do that, the driver issues
    a Set TR Dequeue Pointer command, which will complete some time later.
    
    Takashi was having issues with USB 1.1 audio devices that stalled, and his
    analysis of the code was that the old code would not update the xHCI
    driver's ring dequeue pointer after the command completes.  However, the
    dequeue pointer is set in xhci_find_new_dequeue_state(), just before the
    set command is issued to the hardware.
    
    Setting the dequeue pointer before the Set TR Dequeue Pointer command
    completes is a dangerous thing to do, since the xHCI hardware can fail the
    command.  Instead, store the new dequeue pointer in the xhci_virt_ep
    structure, and update the ring's dequeue pointer when the Set TR dequeue
    pointer command completes.
    
    While we're at it, make sure we can't queue another Set TR Dequeue Command
    while the first one is still being processed.  This just won't work with
    the internal xHCI state code.  I'm still not sure if this is the right
    thing to do, since we might have a case where a driver queues multiple
    URBs to a control ring, one of the URBs Stalls, and then the driver tries
    to cancel the second URB.  There may be a race condition there where the
    xHCI driver might try to issue multiple Set TR Dequeue Pointer commands,
    but I would have to think very hard about how the Stop Endpoint and
    cancellation code works.  Keep the fix simple until when/if we run into
    that case.
    
    This patch should be queued to kernels all the way back to 2.6.31.
    
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Tested-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: stable@kernel.org

commit cce6b81802386a32a6f13ff65974431a97070dc9
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date:   Thu Mar 31 11:58:53 2011 -0700

    USB: isp1760: Implement solution for erratum 2
    
    The document says:
    |2.1 Problem description
    |    When at least two USB devices are simultaneously running, it is observed that
    |    sometimes the INT corresponding to one of the USB devices stops occurring. This may
    |    be observed sometimes with USB-to-serial or USB-to-network devices.
    |    The problem is not noticed when only USB mass storage devices are running.
    |2.2 Implication
    |    This issue is because of the clearing of the respective Done Map bit on reading the ATL
    |    PTD Done Map register when an INT is generated by another PTD completion, but is not
    |    found set on that read access. In this situation, the respective Done Map bit will remain
    |    reset and no further INT will be asserted so the data transfer corresponding to that USB
    |    device will stop.
    |2.3 Workaround
    |    An SOF INT can be used instead of an ATL INT with polling on Done bits. A time-out can
    |    be implemented and if a certain Done bit is never set, verification of the PTD completion
    |    can be done by reading PTD contents (valid bit).
    |    This is a proven workaround implemented in software.
    
    Russell King run into this with an USB-to-serial converter. This patch
    implements his suggestion to enable the high frequent SOF interrupt only
    at the time we have ATL packages queued. It goes even one step further
    and enables the SOF interrupt only if we have more than one ATL packet
    queued at the same time.
    
    Cc: <stable@kernel.org> # [2.6.35.x, 2.6.36.x, 2.6.37.x]
    Tested-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit e3f1f25fa0344e4a981e8f5e5d5c3457ed420d35
Author: Mark Mentovai <mark@moxienet.com>
Date:   Wed Nov 17 16:34:37 2010 -0500

    cfg80211: fix can_beacon_sec_chan, reenable HT40
    
    [ upstream commit 09a02fdb919876c01e8f05960750a418b3f7fa48 ]
    
    This follows wireless-testing 9236d838c920e90708570d9bbd7bb82d30a38130
    ("cfg80211: fix extension channel checks to initiate communication") and
    fixes accidental case fall-through. Without this fix, HT40 is entirely
    blocked.
    
    Signed-off-by: Mark Mentovai <mark@moxienet.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: stable@kernel.org
    Acked-by: Luis R. Rodriguez <lrodriguez@atheros.com
    Signed-off-by: John W. Linville <linville@tuxdriver.com>

commit 40478e1a3440c6b5e0f5fd81133494aefaf11ec2
Author: Chuck Ebbert <cebbert@redhat.com>
Date:   Thu Mar 31 11:58:52 2011 -0700

    revert misc: uss720.c: add another vendor/product ID
    
    In 2.6.35.10:
    
    [  122.146074] usb 2-1: new full speed USB device using uhci_hcd and address 2
    [  122.325102] usb 2-1: New USB device found, idVendor=050d, idProduct=0002
    [  122.325110] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    [  122.325117] usb 2-1: Product: IEEE-1284 Controller
    [  122.325121] usb 2-1: Manufacturer: Belk USB Printing Support
    [  123.531167] usblp0: USB Bidirectional printer dev 2 if 0 alt 1 proto 2 vid
    0x050D pid 0x0002
    [  123.531208] usbcore: registered new interface driver usblp
    
    In 2.6.35.11:
    
    [ 8046.227051] usb 2-1: new full speed USB device using uhci_hcd and address 6
    [ 8046.408083] usb 2-1: New USB device found, idVendor=050d, idProduct=0002
    [ 8046.408088] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    [ 8046.408092] usb 2-1: Product: IEEE-1284 Controller
    [ 8046.408094] usb 2-1: Manufacturer: Belk USB Printing Support
    [ 8047.552140] get_1284_register timeout
    [ 8047.554102] uss720: async_complete: urb error -104
    [repeats]
    [ 8047.556111] uss720: async_complete: urb error -32
    [sequence repeats]
    [unplug connector]
    [ 8485.688067] parport0: fix this legacy no-device port driver!
    [ 8485.688427] uss720: async_complete: urb error -32
    
    Blacklisting the uss720 driver fixes the problem.
    
    
    From 0a67b7cf26d73ed1dbea7e99d63673b5c4aa479e Mon Sep 17 00:00:00 2001
    From: Thomas Sailer <t.sailer@alumni.ethz.ch>
    Date: Tue, 14 Dec 2010 16:04:05 +0100
    Subject: [PATCH] USB: misc: uss720.c: add another vendor/product ID
    
    commit ecc1624a2fff45780959efbcb73ace18fdb3c58d upstream.
    
    Fabio Battaglia report that he has another cable that works with this
    driver, so this patch adds its vendor/product ID.
    
    Signed-off-by: Thomas Sailer <t.sailer@alumni.ethz.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 04d450668aa58e6202916ad870cdfc73621dee26
Author: David Howells <dhowells@redhat.com>
Date:   Thu Mar 31 11:58:52 2011 -0700

    Patch cab9e9848b9a8283b0504a2d7c435a9f5ba026de to the 2.6.35.y stable tree
    
    stored a ref to the current cred struct in struct scm_cookie.  This was fine
    with AF_UNIX as that calls scm_destroy() from its packet sending functions, but
    AF_NETLINK, which also uses scm_send(), does not call scm_destroy() - meaning
    that the copied credentials leak each time SCM data is sent over a netlink
    socket.
    
    This can be triggered quite simply on a Fedora 13 or 14 userspace with the
    2.6.35.11 kernel (or something based off of that) by calling:
    
    	#!/bin/bash
    	for ((i=0; i<100; i++))
    	do
    		su - -c /bin/true
    		cut -d: -f1 /proc/slabinfo | grep 'cred\|key\|task_struct'
    		cat /proc/keys | wc -l
    	done
    
    This leaks the session key that pam_keyinit creates for 'su -', which appears
    in /proc/keys as being revoked (has the R flag set against it) afterward su is
    called.
    
    Furthermore, if CONFIG_SLAB=y, then the cred and key slab object usage counts
    can be viewed and seen to increase.  The key slab increases by one object per
    loop, and this can be seen after the system has had a couple of minutes to
    stand after the script above has been run on it.
    
    If the system is working correctly, the key and cred counts should return to
    roughly what they were before.
    
    This patch from upstream (b47030c71dfd6c8cd5cb6e551b6f7f7cfc96f6a6) is needed
    to fix the problem:
    
    ===============================================================================
    
    From: Eric W. Biederman <ebiederm@xmission.com>
    
    af_netlink: Add needed scm_destroy after scm_send.
    
    scm_send occasionally allocates state in the scm_cookie, so I have
    modified netlink_sendmsg to guarantee that when scm_send succeeds
    scm_destory will be called to free that state.
    
    Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reviewed-by: Daniel Lezcano <daniel.lezcano@free.fr>
    Acked-by: Pavel Emelyanov <xemul@openvz.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7c8864bea48017a5166baa01f3bd81bf7ad623d7
Author: Pablo Neira Ayuso <pablo@netfilter.org>
Date:   Tue Feb 1 16:03:46 2011 +0100

    netfilter: arpt_mangle: fix return values of checkentry
    
    In 135367b "netfilter: xtables: change xt_target.checkentry return type",
    the type returned by checkentry was changed from boolean to int, but the
    return values where not adjusted.
    
    arptables: Input/output error
    
    This broke arptables with the mangle target since it returns true
    under success, which is interpreted by xtables as >0, thus
    returning EIO.
    
    The following Linux kernels are affected:
    * 2.6.35.9
    * 2.6.36.4
    * 2.6.37.3
    
    Cc: stable@kernel.org
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Patrick McHardy <kaber@trash.net>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    (cherry picked from commit 9d0db8b6b1da9e3d4c696ef29449700c58d589db)

commit 79a03efd3311c204f22e92cdf1a4c0d63e1c759c
Author: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Date:   Wed May 26 12:00:10 2010 -0300

    classmate-laptop: depends on RFKILL or RFKILL=n
    
    [ upstream commit f35843ed8d17562f7c5da4b34a4a81b0cc450e9e ]
    
    Randy Dunlap has reported that building classmate-laptop fails when
    CONFIG_RFKILL=m and CONFIG_ACPI_CMPC=y. He suggested depending on
    RFKILL, but, then, it will not be possible to select classmate-laptop
    when RFKILL is off. There's no known problem with building and using
    classmate-laptop with RFKILL off. So depend on RFKILL or RFKILL=n.
    
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
    Signed-off-by: Matthew Garrett <mjg@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reported-by: Randy Dunlap <randy.dunlap@oracle.com>
    Cc: Randy Dunlap <randy.dunlap@oracle.com>
    Cc: platform-driver-x86@vger.kernel.org
    Cc: Daniel Oliveira Nascimento <don@syst.com.br>

commit b3b49f6609e293e8a9d17f24911a2dc771ee3679
Author: Rafael J. Wysocki <rjw@sisk.pl>
Date:   Mon Sep 20 19:44:56 2010 +0200

    PM / Hibernate: Make default image size depend on total RAM size
    
    [ upstream commit ac5c24ec1e983313ef0015258fba6f630e54e7cf ]
    
    The default hibernation image size is currently hard coded and euqal
    to 500 MB, which is not a reasonable default on many contemporary
    systems.  Make it equal 2/5 of the total RAM size (this is slightly
    below the maximum, i.e. 1/2 of the total RAM size, and seems to be
    generally suitable).
    
    Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
    Tested-by: M. Vefa Bicakci <bicave@superonline.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 3bb2757ba74f0898c7d80d00407887e377a3f238
Author: Rafael J. Wysocki <rjw@sisk.pl>
Date:   Mon Sep 20 19:44:38 2010 +0200

    PM / Hibernate: Improve comments in hibernate_preallocate_memory()
    
    [ upstream commit 266f1a25eff5ff98c498d7754a419aacfd88f71c ]
    
    One comment in hibernate_preallocate_memory() is wrong, so fix it and
    add one more comment to clarify the meaning of the fixed one.
    
    Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 82c2780e98b244e76ee4ec346f08499409c370df
Author: Roberto Sassu <roberto.sassu@polito.it>
Date:   Thu Mar 17 12:48:50 2011 +0100

    eCryptfs: ecryptfs_keyring_auth_tok_for_sig() bug fix
    
    commit 1821df040ac3cd6a57518739f345da6d50ea9d3f upstream.
    
    The pointer '(*auth_tok_key)' is set to NULL in case request_key()
    fails, in order to prevent its use by functions calling
    ecryptfs_keyring_auth_tok_for_sig().
    
    Signed-off-by: Roberto Sassu <roberto.sassu@polito.it>
    Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit d28a97ca224292508122da0cb92a321cc8b5bb4f
Author: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
Date:   Wed Mar 9 11:49:13 2011 -0600

    eCryptfs: Unlock page in write_begin error path
    
    commit 50f198ae16ac66508d4b8d5a40967a8507ad19ee upstream.
    
    Unlock the page in error path of ecryptfs_write_begin(). This may
    happen, for example, if decryption fails while bring the page
    up-to-date.
    
    Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 5d61725bfd063c59dca2d72edacfe1e217efc457
Author: Krishnasamy, Somasundaram <Somasundaram.Krishnasamy@lsi.com>
Date:   Mon Feb 28 18:13:22 2011 -0500

    ses: Avoid kernel panic when lun 0 is not mapped
    
    commit d1e12de804f9d8ad114786ca7c2ce593cba79891 upstream.
    
    During device discovery, scsi mid layer sends INQUIRY command to LUN
    0. If the LUN 0 is not mapped to host, it creates a temporary
    scsi_device with LUN id 0 and sends REPORT_LUNS command to it. After
    the REPORT_LUNS succeeds, it walks through the LUN table and adds each
    LUN found to sysfs. At the end of REPORT_LUNS lun table scan, it will
    delete the temporary scsi_device of LUN 0.
    
    When scsi devices are added to sysfs, it calls add_dev function of all
    the registered class interfaces. If ses driver has been registered,
    ses_intf_add() of ses module will be called. This function calls
    scsi_device_enclosure() to check the inquiry data for EncServ
    bit. Since inquiry was not allocated for temporary LUN 0 scsi_device,
    it will cause NULL pointer exception.
    
    To fix the problem, sdev->inquiry is checked for NULL before reading it.
    
    Signed-off-by: Somasundaram Krishnasamy <Somasundaram.Krishnasamy@lsi.com>
    Signed-off-by: Babu Moger <babu.moger@lsi.com>
    Signed-off-by: James Bottomley <James.Bottomley@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 4fec50c333c8b4ed55ba05320b781e63ed829e8d
Author: John Hughes <john@Calva.COM>
Date:   Wed Nov 4 19:01:22 2009 +0100

    ses: show devices for enclosures with no page 7
    
    commit 877a55979c189c590e819a61cbbe2b7947875f17 upstream.
    
    enclosure page 7 gives us the "pretty" names of the enclosure slots.
    Without a page 7, we can still use the enclosure code as long as we
    make up numeric names for the slots. Unfortunately, the current code
    fails to add any devices because the check for page 10 is in the wrong
    place if we have no page 7.  Fix it so that devices show up even if
    the enclosure has no page 7.
    
    Signed-off-by: James Bottomley <James.Bottomley@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 6e59c823bf33fbbf211fa55198aafaf125fab95f
Author: Felix Fietkau <nbd@openwrt.org>
Date:   Mon Mar 21 20:01:00 2011 +0100

    mac80211: initialize sta->last_rx in sta_info_alloc
    
    commit 8bc8aecdc5e26cfda12dbd6867af4aa67836da6a upstream.
    
    This field is used to determine the inactivity time. When in AP mode,
    hostapd uses it for kicking out inactive clients after a while. Without this
    patch, hostapd immediately deauthenticates a new client if it checks the
    inactivity time before the client sends its first data frame.
    
    Signed-off-by: Felix Fietkau <nbd@openwrt.org>
    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 8c389a3b0274f3bf86724d2776973071ac86dbdb
Author: Dan Rosenberg <drosenberg@vsecurity.com>
Date:   Wed Mar 23 11:42:57 2011 -0400

    sound/oss/opl3: validate voice and channel indexes
    
    commit 4d00135a680727f6c3be78f8befaac009030e4df upstream.
    
    User-controllable indexes for voice and channel values may cause reading
    and writing beyond the bounds of their respective arrays, leading to
    potentially exploitable memory corruption.  Validate these indexes.
    
    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 d6b391f4879ddcc92f3f46dca793aaaa2cb1a84e
Author: Bud Brown <bud.brown@redhat.com>
Date:   Wed Mar 23 20:47:11 2011 +0100

    cciss: fix lost command issue
    
    commit 1ddd5049545e0aa1a0ed19bca4d9c9c3ce1ac8a2 upstream.
    
    Under certain workloads a command may seem to get lost. IOW, the Smart Array
    thinks all commands have been completed but we still have commands in our
    completion queue. This may lead to system instability, filesystems going
    read-only, or even panics depending on the affected filesystem. We add an
    extra read to force the write to complete.
    
    Testing shows this extra read avoids the problem.
    
    Signed-off-by: Mike Miller <mike.miller@hp.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 7d90e50de05ac6589b9109039fa15b778522c62a
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Wed Mar 23 02:44:30 2011 +0000

    myri10ge: fix rmmod crash
    
    commit cda6587c21a887254c8ed4b58da8fcc4040ab557 upstream.
    
    Rmmod myri10ge crash at free_netdev() -> netif_napi_del(), because napi
    structures are already deallocated. To fix call netif_napi_del() before
    kfree() at myri10ge_free_slices().
    
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.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 f64186a734ac08b03842f785217ef5aa3ebdc559
Author: Frederic Weisbecker <fweisbec@gmail.com>
Date:   Wed Mar 23 19:29:39 2011 +0100

    perf: Better fit max unprivileged mlock pages for tools needs
    
    commit 880f57318450dbead6a03f9e31a1468924d6dd88 upstream.
    
    The maximum kilobytes of locked memory that an unprivileged user
    can reserve is of 512 kB = 128 pages by default, scaled to the
    number of onlined CPUs, which fits well with the tools that use
    128 data pages by default.
    
    However tools actually use 129 pages, because they need one more
    for the user control page. Thus the default mlock threshold is
    not sufficient for the default tools needs and we always end up
    to evaluate the constant mlock rlimit policy, which doesn't have
    this scaling with the number of online CPUs.
    
    Hence, on systems that have more than 16 CPUs, we overlap the
    rlimit threshold and fail to mmap:
    
    	$ perf record ls
    	Error: failed to mmap with 1 (Operation not permitted)
    
    Just increase the max unprivileged mlock threshold by one page
    so that it supports well perf tools even after 16 CPUs.
    
    Reported-by: Han Pingtian <phan@redhat.com>
    Reported-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
    Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Stephane Eranian <eranian@google.com>
    LKML-Reference: <1300904979-5508-1-git-send-email-fweisbec@gmail.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit ed2debec5324a5382823bbfca2d493424f2d78f0
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Mar 24 09:50:15 2011 +0100

    ALSA: Fix yet another race in disconnection
    
    commit a45e3d6b13e97506b616980c0f122c3389bcefa4 upstream.
    
    This patch fixes a race between snd_card_file_remove() and
    snd_card_disconnect().  When the card is added to shutdown_files list
    in snd_card_disconnect(), but it's freed in snd_card_file_remove() at
    the same time, the shutdown_files list gets corrupted.  The list member
    must be freed in snd_card_file_remove() as well.
    
    Reported-and-tested-by: Russ Dill <russ.dill@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 083dda3eb79e0ec653ed81ffe9cc2c29cc8ab1b8
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Mar 23 22:54:32 2011 +0100

    ALSA: hda - Fix SPDIF out regression on ALC889
    
    commit 20b67dddcc5f29d3d0c900225d85e0ac655bc69d upstream.
    
    The commit 5a8cfb4e8ae317d283f84122ed20faa069c5e0c4
        ALSA: hda - Use ALC_INIT_DEFAULT for really default initialization
    changed to use the default initialization method for ALC889, but
    this caused a regression on SPDIF output on some machines.
    This seems due to the COEF setup included in the default init procedure.
    For making SPDIF working again, the COEF-setup has to be avoided for
    the id 0889.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=24342
    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 cef20fc68de94ffc279b8f56205d47cd591dd42b
Author: Stuart Hayes <stuart_hayes@yahoo.com>
Date:   Wed Mar 2 13:42:05 2011 +0100

    dcdbas: force SMI to happen when expected
    
    commit dd65c736d1b5312c80c88a64bf521db4959eded5 upstream.
    
    The dcdbas driver can do an I/O write to cause a SMI to occur.  The SMI handler
    looks at certain registers and memory locations, so the SMI needs to happen
    immediately.  On some systems I/O writes are posted, though, causing the SMI to
    happen well after the "outb" occurred, which causes random failures.  Following
    the "outb" with an "inb" forces the write to go through even if it is posted.
    
    Signed-off-by: Stuart Hayes <stuart_hayes@yahoo.com>
    Acked-by: Doug Warzecha <douglas_warzecha@dell.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Chuck Ebbert <cebbert@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 0fce96e0a736b60c49c4a1f8a37be56fe02d02b7
Author: Josef Bacik <josef@redhat.com>
Date:   Thu Nov 18 20:52:55 2010 -0500

    fs: call security_d_instantiate in d_obtain_alias V2
    
    commit 24ff6663ccfdaf088dfa7acae489cb11ed4f43c4 upstream.
    
    While trying to track down some NFS problems with BTRFS, I kept noticing I was
    getting -EACCESS for no apparent reason.  Eric Paris and printk() helped me
    figure out that it was SELinux that was giving me grief, with the following
    denial
    
    type=AVC msg=audit(1290013638.413:95): avc:  denied  { 0x800000 } for  pid=1772
    comm="nfsd" name="" dev=sda1 ino=256 scontext=system_u:system_r:kernel_t:s0
    tcontext=system_u:object_r:unlabeled_t:s0 tclass=file
    
    Turns out this is because in d_obtain_alias if we can't find an alias we create
    one and do all the normal instantiation stuff, but we don't do the
    security_d_instantiate.
    
    Usually we are protected from getting a hashed dentry that hasn't yet run
    security_d_instantiate() by the parent's i_mutex, but obviously this isn't an
    option there, so in order to deal with the case that a second thread comes in
    and finds our new dentry before we get to run security_d_instantiate(), we go
    ahead and call it if we find a dentry already.  Eric assures me that this is ok
    as the code checks to see if the dentry has been initialized already so calling
    security_d_instantiate() against the same dentry multiple times is ok.  With
    this patch I'm no longer getting errant -EACCESS values.
    
    Signed-off-by: Josef Bacik <josef@redhat.com>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Chuck Ebbert <cebbert@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 4214a0da0bdd0a7d11a7b560dfed69617d2a6dab
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Tue Mar 22 18:40:10 2011 -0400

    SUNRPC: Never reuse the socket port after an xs_close()
    
    commit 246408dcd5dfeef2df437ccb0ef4d6ee87805f58 upstream.
    
    If we call xs_close(), we're in one of two situations:
     - Autoclose, which means we don't expect to resend a request
     - bind+connect failed, which probably means the port is in use
    
    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 b88505e58ce6d36732cd15841cc821f97efca9bb
Author: Olaf Hering <olaf@aepfle.de>
Date:   Wed Mar 16 22:11:46 2011 -0700

    Input: xen-kbdfront - advertise either absolute or relative coordinates
    
    commit 8c3c283e6bf463ab498d6e7823aff6c4762314b6 upstream.
    
    A virtualized display device is usually viewed with the vncviewer
    application, either by 'xm vnc domU' or with vncviewer localhost:port.
    vncviewer and the RFB protocol provides absolute coordinates to the
    virtual display. These coordinates are either passed through to a PV
    guest or converted to relative coordinates for a HVM guest.
    
    A PV guest receives these coordinates and passes them to the kernels
    evdev driver. There it can be picked up by applications such as the
    xorg-input drivers. Using absolute coordinates avoids issues such as
    guest mouse pointer not tracking host mouse pointer due to wrong mouse
    acceleration settings in the guests X display.
    
    Advertise either absolute or relative coordinates to the input system
    and the evdev driver, depending on what dom0 provides. The xorg-input
    driver prefers relative coordinates even if a devices provides both.
    
    Signed-off-by: Olaf Hering <olaf@aepfle.de>
    Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
    Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 6526452b56265b15e331004e3f3cc7f271bd4cd0
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 22 11:12:11 2011 +0100

    USB: cdc-acm: fix potential null-pointer dereference on disconnect
    
    commit 7e7797e7f6f7bfab73fca02c65e40eaa5bb9000c upstream.
    
    Fix potential null-pointer exception on disconnect introduced by commit
    11ea859d64b69a747d6b060b9ed1520eab1161fe (USB: additional power savings
    for cdc-acm devices that support remote wakeup).
    
    Only access acm->dev after making sure it is non-null in control urb
    completion handler.
    
    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 decdbcebb0bbb9b05858086131afc69b8a8da01e
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 22 11:12:10 2011 +0100

    USB: cdc-acm: fix potential null-pointer dereference
    
    commit 15e5bee33ffc11d0e5c6f819a65e7881c5c407be upstream.
    
    Must check return value of tty_port_tty_get.
    
    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 6fff16ce9d1cf7aa4dc2b07410e338e04bc47582
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue Mar 22 11:12:09 2011 +0100

    USB: cdc-acm: fix memory corruption / panic
    
    commit 23b80550e2aa61d0ba3af98b831b9195be0db9ee upstream.
    
    Prevent read urbs from being resubmitted from tasklet after port close.
    
    The receive tasklet was not disabled on port close, which could lead to
    corruption of receive lists on consecutive port open. In particular,
    read urbs could be re-submitted before port open, added to free list in
    open, and then added a second time to the free list in the completion
    handler.
    
    cdc-acm.c: Entering acm_tty_open.
    cdc-acm.c: acm_control_msg: rq: 0x22 val: 0x3 len: 0x0 result: 0
    cdc-acm.c: Entering acm_rx_tasklet
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da280, rcv 0xf57fbc24, buf 0xf57fbd64
    cdc-acm.c: set line: 115200 0 0 8
    cdc-acm.c: acm_control_msg: rq: 0x20 val: 0x0 len: 0x7 result: 7
    cdc-acm.c: acm_tty_close
    cdc-acm.c: acm_port_down
    cdc-acm.c: acm_control_msg: rq: 0x22 val: 0x0 len: 0x0 result: 0
    cdc-acm.c: acm_ctrl_irq - urb shutting down with status: -2
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da300, rcv 0xf57fbc10, buf 0xf57fbd50
    cdc-acm.c: Entering acm_read_bulk with status -2
    cdc_acm 4-1:1.1: Aborting, acm not ready
    cdc-acm.c: Entering acm_read_bulk with status -2
    cdc_acm 4-1:1.1: Aborting, acm not ready
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da380, rcv 0xf57fbbfc, buf 0xf57fbd3c
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da400, rcv 0xf57fbbe8, buf 0xf57fbd28
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da480, rcv 0xf57fbbd4, buf 0xf57fbd14
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da900, rcv 0xf57fbbc0, buf 0xf57fbd00
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da980, rcv 0xf57fbbac, buf 0xf57fbcec
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50daa00, rcv 0xf57fbb98, buf 0xf57fbcd8
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50daa80, rcv 0xf57fbb84, buf 0xf57fbcc4
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50dab00, rcv 0xf57fbb70, buf 0xf57fbcb0
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50dab80, rcv 0xf57fbb5c, buf 0xf57fbc9c
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50dac00, rcv 0xf57fbb48, buf 0xf57fbc88
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50dac80, rcv 0xf57fbb34, buf 0xf57fbc74
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50dad00, rcv 0xf57fbb20, buf 0xf57fbc60
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50dad80, rcv 0xf57fbb0c, buf 0xf57fbc4c
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da880, rcv 0xf57fbaf8, buf 0xf57fbc38
    cdc-acm.c: Entering acm_tty_open.
    cdc-acm.c: acm_control_msg: rq: 0x22 val: 0x3 len: 0x0 result: 0
    cdc-acm.c: Entering acm_rx_tasklet
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da280, rcv 0xf57fbc24, buf 0xf57fbd64
    cdc-acm.c: Entering acm_tty_write to write 3 bytes,
    cdc-acm.c: Get 3 bytes...
    cdc-acm.c: acm_write_start susp_count: 0
    cdc-acm.c: Entering acm_read_bulk with status 0
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    
    ------------[ cut here ]------------
    WARNING: at /home/johan/src/linux/linux-2.6/lib/list_debug.c:57 list_del+0x10c/0x120()
    Hardware name: Vostro 1520
    list_del corruption. next->prev should be f57fbc10, but was f57fbaf8
    Modules linked in: cdc_acm
    Pid: 3, comm: ksoftirqd/0 Not tainted 2.6.37+ #39
    Call Trace:
     [<c103c7e2>] warn_slowpath_common+0x72/0xa0
     [<c11dd8ac>] ? list_del+0x10c/0x120
     [<c11dd8ac>] ? list_del+0x10c/0x120
     [<c103c8b3>] warn_slowpath_fmt+0x33/0x40
     [<c11dd8ac>] list_del+0x10c/0x120
     [<f8051dbf>] acm_rx_tasklet+0xef/0x3e0 [cdc_acm]
     [<c135465d>] ? net_rps_action_and_irq_enable+0x6d/0x80
     [<c1042bb6>] tasklet_action+0xe6/0x140
     [<c104342f>] __do_softirq+0xaf/0x210
     [<c1043380>] ? __do_softirq+0x0/0x210
     <IRQ>  [<c1042c9a>] ? run_ksoftirqd+0x8a/0x1c0
     [<c1042c10>] ? run_ksoftirqd+0x0/0x1c0
     [<c105ac24>] ? kthread+0x74/0x80
     [<c105abb0>] ? kthread+0x0/0x80
     [<c100337a>] ? kernel_thread_helper+0x6/0x10
    ---[ end trace efd9a11434f0082e ]---
    ------------[ cut here ]------------
    WARNING: at /home/johan/src/linux/linux-2.6/lib/list_debug.c:57 list_del+0x10c/0x120()
    Hardware name: Vostro 1520
    list_del corruption. next->prev should be f57fbd50, but was f57fbdb0
    Modules linked in: cdc_acm
    Pid: 3, comm: ksoftirqd/0 Tainted: G        W   2.6.37+ #39
    Call Trace:
     [<c103c7e2>] warn_slowpath_common+0x72/0xa0
     [<c11dd8ac>] ? list_del+0x10c/0x120
     [<c11dd8ac>] ? list_del+0x10c/0x120
     [<c103c8b3>] warn_slowpath_fmt+0x33/0x40
     [<c11dd8ac>] list_del+0x10c/0x120
     [<f8051dd6>] acm_rx_tasklet+0x106/0x3e0 [cdc_acm]
     [<c135465d>] ? net_rps_action_and_irq_enable+0x6d/0x80
     [<c1042bb6>] tasklet_action+0xe6/0x140
     [<c104342f>] __do_softirq+0xaf/0x210
     [<c1043380>] ? __do_softirq+0x0/0x210
     <IRQ>  [<c1042c9a>] ? run_ksoftirqd+0x8a/0x1c0
     [<c1042c10>] ? run_ksoftirqd+0x0/0x1c0
     [<c105ac24>] ? kthread+0x74/0x80
     [<c105abb0>] ? kthread+0x0/0x80
     [<c100337a>] ? kernel_thread_helper+0x6/0x10
    ---[ end trace efd9a11434f0082f ]---
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da300, rcv 0xf57fbc10, buf 0xf57fbd50
    cdc-acm.c: disconnected from network
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da380, rcv 0xf57fbbfc, buf 0xf57fbd3c
    cdc-acm.c: Entering acm_rx_tasklet
    ------------[ cut here ]------------
    WARNING: at /home/johan/src/linux/linux-2.6/lib/list_debug.c:48 list_del+0xd5/0x120()
    Hardware name: Vostro 1520
    list_del corruption, next is LIST_POISON1 (00100100)
    Modules linked in: cdc_acm
    Pid: 3, comm: ksoftirqd/0 Tainted: G        W   2.6.37+ #39
    Call Trace:
     [<c103c7e2>] warn_slowpath_common+0x72/0xa0
     [<c11dd875>] ? list_del+0xd5/0x120
     [<c11dd875>] ? list_del+0xd5/0x120
     [<c103c8b3>] warn_slowpath_fmt+0x33/0x40
     [<c11dd875>] list_del+0xd5/0x120
     [<f8051fac>] acm_rx_tasklet+0x2dc/0x3e0 [cdc_acm]
     [<c106dbab>] ? trace_hardirqs_on+0xb/0x10
     [<c1042b30>] ? tasklet_action+0x60/0x140
     [<c1042bb6>] tasklet_action+0xe6/0x140
     [<c104342f>] __do_softirq+0xaf/0x210
     [<c1043380>] ? __do_softirq+0x0/0x210
     <IRQ>  [<c1042c9a>] ? run_ksoftirqd+0x8a/0x1c0
     [<c1042c10>] ? run_ksoftirqd+0x0/0x1c0
     [<c105ac24>] ? kthread+0x74/0x80
     [<c105abb0>] ? kthread+0x0/0x80
     [<c100337a>] ? kernel_thread_helper+0x6/0x10
    ---[ end trace efd9a11434f00830 ]---
    BUG: unable to handle kernel paging request at 00200200
    IP: [<c11dd7bd>] list_del+0x1d/0x120
    *pde = 00000000
    Oops: 0000 [#1] PREEMPT SMP
    last sysfs file: /sys/devices/pci0000:00/0000:00:1a.1/usb4/4-1/4-1:1.0/tty/ttyACM0/uevent
    Modules linked in: cdc_acm
    Pid: 3, comm: ksoftirqd/0 Tainted: G        W   2.6.37+ #39 0T816J/Vostro 1520
    EIP: 0060:[<c11dd7bd>] EFLAGS: 00010046 CPU: 0
    EIP is at list_del+0x1d/0x120
    EAX: f57fbd3c EBX: f57fb800 ECX: ffff8000 EDX: 00200200
    ESI: f57fbe90 EDI: f57fbd3c EBP: f600bf54 ESP: f600bf3c
     DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
    Process ksoftirqd/0 (pid: 3, ti=f600a000 task=f60791c0 task.ti=f6082000)
    Stack:
     c1527e84 00000030 c1527e54 00100100 f57fb800 f57fbd3c f600bf98 f8051fac
     f8053104 f8052b94 f600bf6c c106dbab f600bf80 00000286 f60791c0 c1042b30
     f57fbda8 f57f5800 f57fbdb0 f57fbd80 f57fbe7c c1656b04 00000000 f600bfb0
    Call Trace:
     [<f8051fac>] ? acm_rx_tasklet+0x2dc/0x3e0 [cdc_acm]
     [<c106dbab>] ? trace_hardirqs_on+0xb/0x10
     [<c1042b30>] ? tasklet_action+0x60/0x140
     [<c1042bb6>] ? tasklet_action+0xe6/0x140
     [<c104342f>] ? __do_softirq+0xaf/0x210
     [<c1043380>] ? __do_softirq+0x0/0x210
     <IRQ>
     [<c1042c9a>] ? run_ksoftirqd+0x8a/0x1c0
     [<c1042c10>] ? run_ksoftirqd+0x0/0x1c0
     [<c105ac24>] ? kthread+0x74/0x80
     [<c105abb0>] ? kthread+0x0/0x80
     [<c100337a>] ? kernel_thread_helper+0x6/0x10
    Code: ff 48 14 e9 57 ff ff ff 90 90 90 90 90 90 55 89 e5 83 ec 18 81 38 00 01 10 00 0f 84 9c 00 00 00 8b 50 04 81 fa 00 02 20 00 74 33 <8b> 12 39 d0 75 5c 8b 10 8b 4a 04 39 c8 0f 85 b5 00 00 00 8b 48
    EIP: [<c11dd7bd>] list_del+0x1d/0x120 SS:ESP 0068:f600bf3c
    CR2: 0000000000200200
    ---[ end trace efd9a11434f00831 ]---
    Kernel panic - not syncing: Fatal exception in interrupt
    Pid: 3, comm: ksoftirqd/0 Tainted: G      D W   2.6.37+ #39
    Call Trace:
     [<c13fede1>] ? printk+0x1d/0x24
     [<c13fecce>] panic+0x66/0x15c
     [<c10067df>] oops_end+0x8f/0x90
     [<c1025476>] no_context+0xc6/0x160
     [<c10255a8>] __bad_area_nosemaphore+0x98/0x140
     [<c103cf68>] ? release_console_sem+0x1d8/0x210
     [<c1025667>] bad_area_nosemaphore+0x17/0x20
     [<c1025a49>] do_page_fault+0x279/0x420
     [<c1006a8f>] ? show_trace+0x1f/0x30
     [<c13fede1>] ? printk+0x1d/0x24
     [<c10257d0>] ? do_page_fault+0x0/0x420
     [<c140333b>] error_code+0x5f/0x64
     [<c103007b>] ? select_task_rq_fair+0x37b/0x6a0
     [<c10257d0>] ? do_page_fault+0x0/0x420
     [<c11dd7bd>] ? list_del+0x1d/0x120
     [<f8051fac>] acm_rx_tasklet+0x2dc/0x3e0 [cdc_acm]
     [<c106dbab>] ? trace_hardirqs_on+0xb/0x10
     [<c1042b30>] ? tasklet_action+0x60/0x140
     [<c1042bb6>] tasklet_action+0xe6/0x140
     [<c104342f>] __do_softirq+0xaf/0x210
     [<c1043380>] ? __do_softirq+0x0/0x210
     <IRQ>  [<c1042c9a>] ? run_ksoftirqd+0x8a/0x1c0
     [<c1042c10>] ? run_ksoftirqd+0x0/0x1c0
     [<c105ac24>] ? kthread+0x74/0x80
     [<c105abb0>] ? kthread+0x0/0x80
     [<c100337a>] ? kernel_thread_helper+0x6/0x10
    panic occurred, switching back to text console
    ------------[ cut here ]------------
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit a0a81bea48c2dfebd7cd557d52788198d1f42d07
Author: Peter Holik <peter@holik.at>
Date:   Fri Mar 18 18:47:44 2011 +0100

    USB: uss720 fixup refcount position
    
    commit adaa3c6342b249548ea830fe8e02aa5b45be8688 upstream.
    
    My testprog do a lot of bitbang - after hours i got following warning and my machine lockups:
    WARNING: at /build/buildd/linux-2.6.38/lib/kref.c:34
    After debugging uss720 driver i discovered that the completion callback was called before
    usb_submit_urb returns. The callback frees the request structure that is krefed on return by
    usb_submit_urb.
    
    Signed-off-by: Peter Holik <peter@holik.at>
    Acked-by: Thomas Sailer <t.sailer@alumni.ethz.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 83ed3460b8ab1880f670dbf925f50bb7e156346f
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Wed Mar 16 10:57:15 2011 -0400

    ehci-hcd: Bug fix: don't set a QH's Halt bit
    
    commit b5a3b3d985493c173925907adfebf3edab236fe7 upstream.
    
    This patch (as1453) fixes a long-standing bug in the ehci-hcd driver.
    
    There is no need to set the Halt bit in the overlay region for an
    unlinked or blocked QH.  Contrary to what the comment says, setting
    the Halt bit does not cause the QH to be patched later; that decision
    (made in qh_refresh()) depends only on whether the QH is currently
    pointing to a valid qTD.  Likewise, setting the Halt bit does not
    prevent completions from activating the QH while it is "stopped"; they
    are prevented by the fact that qh_completions() temporarily changes
    qh->qh_state to QH_STATE_COMPLETING.
    
    On the other hand, there are circumstances in which the QH will be
    reactivated _without_ being patched; this happens after an URB beyond
    the head of the queue is unlinked.  Setting the Halt bit will then
    cause the hardware to see the QH with both the Active and Halt bits
    set, an invalid combination that will prevent the queue from
    advancing and may even crash some controllers.
    
    Apparently the only reason this hasn't been reported before is that
    unlinking URBs from the middle of a running queue is quite uncommon.
    However Test 17, recently added to the usbtest driver, does exactly
    this, and it confirms the presence of the bug.
    
    In short, there is no reason to set the Halt bit for an unlinked or
    blocked QH, and there is a very good reason not to set it.  Therefore
    the code that sets it is removed.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Tested-by: Andiry Xu <andiry.xu@amd.com>
    CC: David Brownell <david-b@pacbell.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit c3b31b69a2264c21bb2da19ff1df5a04fe024bd9
Author: Stephan Lachowsky <stephan.lachowsky@maxim-ic.com>
Date:   Thu Jan 27 23:04:33 2011 -0300

    uvcvideo: Fix uvc_fixup_video_ctrl() format search
    
    commit 38a66824d96de8aeeb915e6f46f0d3fe55828eb1 upstream.
    
    The scheme used to index format in uvc_fixup_video_ctrl() is not robust:
    format index is based on descriptor ordering, which does not necessarily
    match bFormatIndex ordering.  Searching for first matching format will
    prevent uvc_fixup_video_ctrl() from using the wrong format/frame to make
    adjustments.
    
    Signed-off-by: Stephan Lachowsky <stephan.lachowsky@maxim-ic.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 6d3760c3a4c60286f5c564b2fb9247324205ce72
Author: Mi Jinlong <mijinlong@cn.fujitsu.com>
Date:   Fri Feb 18 09:08:31 2011 +0800

    nfsd41: modify the members value of nfsd4_op_flags
    
    commit 5ece3cafbd88d4da5c734e1810c4a2e6474b57b2 upstream.
    
    The members of nfsd4_op_flags, (ALLOWED_WITHOUT_FH | ALLOWED_ON_ABSENT_FS)
    equals to  ALLOWED_AS_FIRST_OP, maybe that's not what we want.
    
    OP_PUTROOTFH with op_flags = ALLOWED_WITHOUT_FH | ALLOWED_ON_ABSENT_FS,
    can't appears as the first operation with out SEQUENCE ops.
    
    This patch modify the wrong value of ALLOWED_WITHOUT_FH etc which
    was introduced by f9bb94c4.
    
    Reviewed-by: Benny Halevy <bhalevy@panasas.com>
    Signed-off-by: Mi Jinlong <mijinlong@cn.fujitsu.com>
    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 c704af98055ff4b3280c5ee59a7badf27a6f7e1a
Author: Henry Nestler <henry.nestler@gmail.com>
Date:   Sun Feb 20 20:50:56 2011 +0000

    fbcon: Bugfix soft cursor detection in Tile Blitting
    
    commit d6244bc0ed0c52a795e6f4dcab3886daf3e74fac upstream.
    
    Use mask 0x10 for "soft cursor" detection on in function tile_cursor.
    (Tile Blitting Operation in framebuffer console).
    
    The old mask 0x01 for vc_cursor_type detects CUR_NONE, CUR_LOWER_THIRD
    and every second mode value as "software cursor". This hides the cursor
    for these modes (cursor.mode = 0). But, only CUR_NONE or "software cursor"
    should hide the cursor.
    See also 0x10 in functions add_softcursor, bit_cursor and cw_cursor.
    
    Signed-off-by: Henry Nestler <henry.nestler@gmail.com>
    Signed-off-by: Paul Mundt <lethal@linux-sh.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 9496d25a15f0cb376a2d7a22f27ad372f6dfca44
Author: Kees Cook <kees.cook@canonical.com>
Date:   Wed Mar 23 16:42:53 2011 -0700

    proc: protect mm start_code/end_code in /proc/pid/stat
    
    commit 5883f57ca0008ffc93e09cbb9847a1928e50c6f3 upstream.
    
    While mm->start_stack was protected from cross-uid viewing (commit
    f83ce3e6b02d5 ("proc: avoid information leaks to non-privileged
    processes")), the start_code and end_code values were not.  This would
    allow the text location of a PIE binary to leak, defeating ASLR.
    
    Note that the value "1" is used instead of "0" for a protected value since
    "ps", "killall", and likely other readers of /proc/pid/stat, take
    start_code of "0" to mean a kernel thread and will misbehave.  Thanks to
    Brad Spengler for pointing this out.
    
    Addresses CVE-2011-0726
    
    Signed-off-by: Kees Cook <kees.cook@canonical.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Cc: David Howells <dhowells@redhat.com>
    Cc: Eugene Teo <eugeneteo@kernel.sg>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Brad Spengler <spender@grsecurity.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 0b5d79b55f305d2d9c00f4760b0653f40187be4e
Author: Aaro Koskinen <aaro.koskinen@nokia.com>
Date:   Wed Mar 23 16:42:50 2011 -0700

    procfs: fix /proc/<pid>/maps heap check
    
    commit 0db0c01b53a1a421513f91573241aabafb87802a upstream.
    
    The current code fails to print the "[heap]" marking if the heap is split
    into multiple mappings.
    
    Fix the check so that the marking is displayed in all possible cases:
    	1. vma matches exactly the heap
    	2. the heap vma is merged e.g. with bss
    	3. the heap vma is splitted e.g. due to locked pages
    
    Test cases. In all cases, the process should have mapping(s) with
    [heap] marking:
    
    	(1) vma matches exactly the heap
    
    	#include <stdio.h>
    	#include <unistd.h>
    	#include <sys/types.h>
    
    	int main (void)
    	{
    		if (sbrk(4096) != (void *)-1) {
    			printf("check /proc/%d/maps\n", (int)getpid());
    			while (1)
    				sleep(1);
    		}
    		return 0;
    	}
    
    	# ./test1
    	check /proc/553/maps
    	[1] + Stopped                    ./test1
    	# cat /proc/553/maps | head -4
    	00008000-00009000 r-xp 00000000 01:00 3113640    /test1
    	00010000-00011000 rw-p 00000000 01:00 3113640    /test1
    	00011000-00012000 rw-p 00000000 00:00 0          [heap]
    	4006f000-40070000 rw-p 00000000 00:00 0
    
    	(2) the heap vma is merged
    
    	#include <stdio.h>
    	#include <unistd.h>
    	#include <sys/types.h>
    
    	char foo[4096] = "foo";
    	char bar[4096];
    
    	int main (void)
    	{
    		if (sbrk(4096) != (void *)-1) {
    			printf("check /proc/%d/maps\n", (int)getpid());
    			while (1)
    				sleep(1);
    		}
    		return 0;
    	}
    
    	# ./test2
    	check /proc/556/maps
    	[2] + Stopped                    ./test2
    	# cat /proc/556/maps | head -4
    	00008000-00009000 r-xp 00000000 01:00 3116312    /test2
    	00010000-00012000 rw-p 00000000 01:00 3116312    /test2
    	00012000-00014000 rw-p 00000000 00:00 0          [heap]
    	4004a000-4004b000 rw-p 00000000 00:00 0
    
    	(3) the heap vma is splitted (this fails without the patch)
    
    	#include <stdio.h>
    	#include <unistd.h>
    	#include <sys/mman.h>
    	#include <sys/types.h>
    
    	int main (void)
    	{
    		if ((sbrk(4096) != (void *)-1) && !mlockall(MCL_FUTURE) &&
    		    (sbrk(4096) != (void *)-1)) {
    			printf("check /proc/%d/maps\n", (int)getpid());
    			while (1)
    				sleep(1);
    		}
    		return 0;
    	}
    
    	# ./test3
    	check /proc/559/maps
    	[1] + Stopped                    ./test3
    	# cat /proc/559/maps|head -4
    	00008000-00009000 r-xp 00000000 01:00 3119108    /test3
    	00010000-00011000 rw-p 00000000 01:00 3119108    /test3
    	00011000-00012000 rw-p 00000000 00:00 0          [heap]
    	00012000-00013000 rw-p 00000000 00:00 0          [heap]
    
    It looks like the bug has been there forever, and since it only results in
    some information missing from a procfile, it does not fulfil the -stable
    "critical issue" criteria.
    
    Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.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 24ce42c3962c4e15b96ae6d1ccd9d558848eec75
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Sat Feb 26 22:40:19 2011 +0200

    ext3: skip orphan cleanup on rocompat fs
    
    commit ce654b37f87980d95f339080e4c3bdb2370bdf22 upstream.
    
    Orphan cleanup is currently executed even if the file system has some
    number of unknown ROCOMPAT features, which deletes inodes and frees
    blocks, which could be very bad for some RO_COMPAT features.
    
    This patch skips the orphan cleanup if it contains readonly compatible
    features not known by this ext3 implementation, which would prevent
    the fs from being mounted (or remounted) readwrite.
    
    Signed-off-by: Amir Goldstein <amir73il@users.sf.net>
    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 4f34c6e9301963bb8e6d9ad47226ece6bd8e6677
Author: Julien Tinnes <jln@google.com>
Date:   Fri Mar 18 15:05:21 2011 -0700

    Prevent rt_sigqueueinfo and rt_tgsigqueueinfo from spoofing the signal code
    
    commit da48524eb20662618854bb3df2db01fc65f3070c upstream.
    
    Userland should be able to trust the pid and uid of the sender of a
    signal if the si_code is SI_TKILL.
    
    Unfortunately, the kernel has historically allowed sigqueueinfo() to
    send any si_code at all (as long as it was negative - to distinguish it
    from kernel-generated signals like SIGILL etc), so it could spoof a
    SI_TKILL with incorrect siginfo values.
    
    Happily, it looks like glibc has always set si_code to the appropriate
    SI_QUEUE, so there are probably no actual user code that ever uses
    anything but the appropriate SI_QUEUE flag.
    
    So just tighten the check for si_code (we used to allow any negative
    value), and add a (one-time) warning in case there are binaries out
    there that might depend on using other si_code values.
    
    Signed-off-by: Julien Tinnes <jln@google.com>
    Acked-by: Oleg Nesterov <oleg@redhat.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 c358c7982e8c4c5f1012a76fc3045eee29bb6824
Author: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Date:   Fri Feb 18 11:32:40 2011 +0000

    xen: set max_pfn_mapped to the last pfn mapped
    
    commit 14988a4d350ce3b41ecad4f63c4f44c56f5ae34d upstream.
    
    Do not set max_pfn_mapped to the end of the initial memory mappings,
    that also contain pages that don't belong in pfn space (like the mfn
    list).
    
    Set max_pfn_mapped to the last real pfn mapped in the initial memory
    mappings that is the pfn backing _end.
    
    Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
    Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <alpine.DEB.2.00.1103171739050.3382@kaball-desktop>
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 5ccd2de34ed4817d5b1acaaddc2af5082885ea4f
Author: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Date:   Mon Feb 28 16:20:11 2011 +0000

    PCI hotplug: acpiphp: set current_state to D0 in register_slot
    
    commit 47e9037ac16637cd7f12b8790ea7ce6680e42168 upstream.
    
    If a device doesn't support power management (pm_cap == 0) but it is
    acpi_pci_power_manageable() because there is a _PS0 method declared for
    it and _EJ0 is also declared for the slot then nobody is going to set
    current_state = PCI_D0 for this device.  This is what I think it is
    happening:
    
    pci_enable_device
        |
    __pci_enable_device_flags
    /* here we do not set current_state because !pm_cap */
        |
    do_pci_enable_device
        |
    pci_set_power_state
        |
    __pci_start_power_transition
        |
    pci_platform_power_transition
    /* platform_pci_power_manageable() calls acpi_pci_power_manageable that
     * returns true */
        |
    platform_pci_set_power_state
    /* acpi_pci_set_power_state gets called and does nothing because the
     * acpi device has _EJ0, see the comment "If the ACPI device has _EJ0,
     * ignore the device" */
    
    at this point if we refer to the commit message that introduced the
    comment above (10b3dcae0f275e2546e55303d64ddbb58cec7599), it is up to
    the hotplug driver to set the state to D0.
    However AFAICT the pci hotplug driver never does, in fact
    drivers/pci/hotplug/acpiphp_glue.c:register_slot sets the slot flags to
    (SLOT_ENABLED | SLOT_POWEREDON) but it does not set the pci device
    current state to PCI_D0.
    
    So my proposed fix is also to set current_state = PCI_D0 in
    register_slot.
    Comments are very welcome.
    
    Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit b845a0bebf3e8728277ed92e1cb66e8901cf4b50
Author: Hugh Dickins <hughd@google.com>
Date:   Tue Mar 22 16:33:43 2011 -0700

    shmem: let shared anonymous be nonlinear again
    
    commit bee4c36a5cf5c9f63ce1d7372aa62045fbd16d47 upstream.
    
    Up to 2.6.22, you could use remap_file_pages(2) on a tmpfs file or a
    shared mapping of /dev/zero or a shared anonymous mapping.  In 2.6.23 we
    disabled it by default, but set VM_CAN_NONLINEAR to enable it on safe
    mappings.  We made sure to set it in shmem_mmap() for tmpfs files, but
    missed it in shmem_zero_setup() for the others.  Fix that at last.
    
    Reported-by: Kenny Simpson <theonetruekenny@yahoo.com>
    Signed-off-by: Hugh Dickins <hughd@google.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 b9aa753f949640e886e776a793af042f4262bde7
Author: Roland Dreier <roland@purestorage.com>
Date:   Tue Mar 22 16:35:10 2011 -0700

    aio: wake all waiters when destroying ctx
    
    commit e91f90bb0bb10be9cc8efd09a3cf4ecffcad0db1 upstream.
    
    The test program below will hang because io_getevents() uses
    add_wait_queue_exclusive(), which means the wake_up() in io_destroy() only
    wakes up one of the threads.  Fix this by using wake_up_all() in the aio
    code paths where we want to make sure no one gets stuck.
    
    	// t.c -- compile with gcc -lpthread -laio t.c
    
    	#include <libaio.h>
    	#include <pthread.h>
    	#include <stdio.h>
    	#include <unistd.h>
    
    	static const int nthr = 2;
    
    	void *getev(void *ctx)
    	{
    		struct io_event ev;
    		io_getevents(ctx, 1, 1, &ev, NULL);
    		printf("io_getevents returned\n");
    		return NULL;
    	}
    
    	int main(int argc, char *argv[])
    	{
    		io_context_t ctx = 0;
    		pthread_t thread[nthr];
    		int i;
    
    		io_setup(1024, &ctx);
    
    		for (i = 0; i < nthr; ++i)
    			pthread_create(&thread[i], NULL, getev, ctx);
    
    		sleep(1);
    
    		io_destroy(ctx);
    
    		for (i = 0; i < nthr; ++i)
    			pthread_join(thread[i], NULL);
    
    		return 0;
    	}
    
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reviewed-by: Jeff Moyer <jmoyer@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>

commit 4d5afe547f5edb659a7813d8190842da14618808
Author: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Date:   Mon Mar 21 17:59:35 2011 +0100

    hwmon: (sht15) Fix integer overflow in humidity calculation
    
    commit ccd32e735de7a941906e093f8dca924bb05c5794 upstream.
    
    An integer overflow occurs in the calculation of RHlinear when the
    relative humidity is greater than around 30%. The consequence is a subtle
    (but noticeable) error in the resulting humidity measurement.
    
    Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Jonathan Cameron <jic23@cam.ac.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit ef8844ee3f2c657b1e5a92250721dc1c73c96c9a
Author: Alexander van Heukelum <heukelum@fastmail.fm>
Date:   Fri Mar 11 21:59:38 2011 +0100

    x86, binutils, xen: Fix another wrong size directive
    
    commit 371c394af27ab7d1e58a66bc19d9f1f3ac1f67b4 upstream.
    
    The latest binutils (2.21.0.20110302/Ubuntu) breaks the build
    yet another time, under CONFIG_XEN=y due to a .size directive that
    refers to a slightly differently named (hence, to the now very
    strict and unforgiving assembler, non-existent) symbol.
    
    [ mingo:
    
       This unnecessary build breakage caused by new binutils
       version 2.21 gets escallated back several kernel releases spanning
       several years of Linux history, affecting over 130,000 upstream
       kernel commits (!), on CONFIG_XEN=y 64-bit kernels (i.e. essentially
       affecting all major Linux distro kernel configs).
    
       Git annotate tells us that this slight debug symbol code mismatch
       bug has been introduced in 2008 in commit 3d75e1b8:
    
         3d75e1b8        (Jeremy Fitzhardinge    2008-07-08 15:06:49 -0700 1231) ENTRY(xen_do_hypervisor_callback)   # do_hypervisor_callback(struct *pt_regs)
    
       The 'bug' is just a slight assymetry in ENTRY()/END()
       debug-symbols sequences, with lots of assembly code between the
       ENTRY() and the END():
    
         ENTRY(xen_do_hypervisor_callback)   # do_hypervisor_callback(struct *pt_regs)
           ...
         END(do_hypervisor_callback)
    
       Human reviewers almost never catch such small mismatches, and binutils
       never even warned about it either.
    
       This new binutils version thus breaks the Xen build on all upstream kernels
       since v2.6.27, out of the blue.
    
       This makes a straightforward Git bisection of all 64-bit Xen-enabled kernels
       impossible on such binutils, for a bisection window of over hundred
       thousand historic commits. (!)
    
       This is a major fail on the side of binutils and binutils needs to turn
       this show-stopper build failure into a warning ASAP. ]
    
    Signed-off-by: Alexander van Heukelum <heukelum@fastmail.fm>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Jeremy Fitzhardinge <jeremy@goop.org>
    Cc: Jan Beulich <jbeulich@novell.com>
    Cc: H.J. Lu <hjl.tools@gmail.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Kees Cook <kees.cook@canonical.com>
    LKML-Reference: <1299877178-26063-1-git-send-email-heukelum@fastmail.fm>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 5857fb84e4065b8e502f8eb1db4041aa69d51812
Author: Stefan Nilsson XK <stefan.xk.nilsson@stericsson.com>
Date:   Tue Mar 1 14:41:04 2011 +0100

    mmc: sdio: remember new card RCA when redetecting card
    
    commit 0aab3995485b8a994bf29a995a008c9ea4a28054 upstream.
    
    During redetection of a SDIO card, a request for a new card RCA
    was submitted to the card, but was then overwritten by the old RCA.
    This caused the card to be deselected instead of selected when using
    the incorrect RCA.  This bug's been present since the "oldcard"
    handling was introduced in 2.6.32.
    
    Signed-off-by: Stefan Nilsson XK <stefan.xk.nilsson@stericsson.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reviewed-by: Ulf Hansson <ulf.hansson@stericsson.com>
    Reviewed-by: Pawel Wieczorkiewicz <pawel.wieczorkiewicz@stericsson.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Chris Ball <cjb@laptop.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 60f5700d693e7a23352851aa1c77d1aad8f3d062
Author: Roman Fietze <roman.fietze@telemotive.de>
Date:   Sun Mar 20 14:50:52 2011 +0100

    i2c: Fix typo in instantiating-devices document
    
    commit 6ced9e6b3901af4ab6ac0a11231402c888286ea6 upstream.
    
    The struct i2c_board_info member holding the name is "type", not
    "name".
    
    Signed-off-by: Roman Fietze <roman.fietze@telemotive.de>
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit dcb3d4d2505262133fc2fbb904aecd04a78cb0ae
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Mon Feb 7 19:28:01 2011 +0100

    fix per-cpu flag problem in the cpu affinity checkers
    
    commit 9804c9eaeacfe78651052c5ddff31099f60ef78c upstream.
    
    The CHECK_IRQ_PER_CPU is wrong, it should be checking
    irq_to_desc(irq)->status not just irq.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: James Bottomley <James.Bottomley@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 5ac44fed9008dd82edb8bd3470698d8b83d2fed9
Author: Milton Miller <miltonm@bga.com>
Date:   Tue Mar 15 13:27:17 2011 -0600

    smp_call_function_many: handle concurrent clearing of mask
    
    commit 723aae25d5cdb09962901d36d526b44d4be1051c upstream.
    
    Mike Galbraith reported finding a lockup ("perma-spin bug") where the
    cpumask passed to smp_call_function_many was cleared by other cpu(s)
    while a cpu was preparing its call_data block, resulting in no cpu to
    clear the last ref and unlock the block.
    
    Having cpus clear their bit asynchronously could be useful on a mask of
    cpus that might have a translation context, or cpus that need a push to
    complete an rcu window.
    
    Instead of adding a BUG_ON and requiring yet another cpumask copy, just
    detect the race and handle it.
    
    Note: arch_send_call_function_ipi_mask must still handle an empty
    cpumask because the data block is globally visible before the that arch
    callback is made.  And (obviously) there are no guarantees to which cpus
    are notified if the mask is changed during the call; only cpus that were
    online and had their mask bit set during the whole call are guaranteed
    to be called.
    
    Reported-by: Mike Galbraith <efault@gmx.de>
    Reported-by: Jan Beulich <JBeulich@novell.com>
    Acked-by: Jan Beulich <jbeulich@novell.com>
    Signed-off-by: Milton Miller <miltonm@bga.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 8dd765de113ce62bae99052a56c1f03f82f489cb
Author: Shaohua Li <shaohua.li@intel.com>
Date:   Wed Mar 16 11:37:29 2011 +0800

    x86: Flush TLB if PGD entry is changed in i386 PAE mode
    
    commit 4981d01eada5354d81c8929d5b2836829ba3df7b upstream.
    
    According to intel CPU manual, every time PGD entry is changed in i386 PAE
    mode, we need do a full TLB flush. Current code follows this and there is
    comment for this too in the code.
    
    But current code misses the multi-threaded case. A changed page table
    might be used by several CPUs, every such CPU should flush TLB. Usually
    this isn't a problem, because we prepopulate all PGD entries at process
    fork. But when the process does munmap and follows new mmap, this issue
    will be triggered.
    
    When it happens, some CPUs keep doing page faults:
    
      http://marc.info/?l=linux-kernel&m=129915020508238&w=2
    
    Reported-by: Yasunori Goto<y-goto@jp.fujitsu.com>
    Tested-by: Yasunori Goto<y-goto@jp.fujitsu.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reviewed-by: Rik van Riel <riel@redhat.com>
    Signed-off-by: Shaohua Li<shaohua.li@intel.com>
    Cc: Mallick Asit K <asit.k.mallick@intel.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: linux-mm <linux-mm@kvack.org>
    LKML-Reference: <1300246649.2337.95.camel@sli10-conroe>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 2926c9ad1f0e8b8b0957f84e533403d6dc9514db
Author: Milton Miller <miltonm@bga.com>
Date:   Tue Mar 15 13:27:16 2011 -0600

    call_function_many: add missing ordering
    
    commit 45a5791920ae643eafc02e2eedef1a58e341b736 upstream.
    
    Paul McKenney's review pointed out two problems with the barriers in the
    2.6.38 update to the smp call function many code.
    
    First, a barrier that would force the func and info members of data to
    be visible before their consumption in the interrupt handler was
    missing.  This can be solved by adding a smp_wmb between setting the
    func and info members and setting setting the cpumask; this will pair
    with the existing and required smp_rmb ordering the cpumask read before
    the read of refs.  This placement avoids the need a second smp_rmb in
    the interrupt handler which would be executed on each of the N cpus
    executing the call request.  (I was thinking this barrier was present
    but was not).
    
    Second, the previous write to refs (establishing the zero that we the
    interrupt handler was testing from all cpus) was performed by a third
    party cpu.  This would invoke transitivity which, as a recient or
    concurrent addition to memory-barriers.txt now explicitly states, would
    require a full smp_mb().
    
    However, we know the cpumask will only be set by one cpu (the data
    owner) and any preivous iteration of the mask would have cleared by the
    reading cpu.  By redundantly writing refs to 0 on the owning cpu before
    the smp_wmb, the write to refs will follow the same path as the writes
    that set the cpumask, which in turn allows us to keep the barrier in the
    interrupt handler a smp_rmb instead of promoting it to a smp_mb (which
    will be be executed by N cpus for each of the possible M elements on the
    list).
    
    I moved and expanded the comment about our (ab)use of the rcu list
    primitives for the concurrent walk earlier into this function.  I
    considered moving the first two paragraphs to the queue list head and
    lock, but felt it would have been too disconected from the code.
    
    Cc: Paul McKinney <paulmck@linux.vnet.ibm.com>
    Signed-off-by: Milton Miller <miltonm@bga.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 d3b50d91a9aa573aef712e372764521189146a81
Author: Milton Miller <miltonm@bga.com>
Date:   Tue Mar 15 13:27:16 2011 -0600

    call_function_many: fix list delete vs add race
    
    commit e6cd1e07a185d5f9b0aa75e020df02d3c1c44940 upstream.
    
    Peter pointed out there was nothing preventing the list_del_rcu in
    smp_call_function_interrupt from running before the list_add_rcu in
    smp_call_function_many.
    
    Fix this by not setting refs until we have gotten the lock for the list.
    Take advantage of the wmb in list_add_rcu to save an explicit additional
    one.
    
    I tried to force this race with a udelay before the lock & list_add and
    by mixing all 64 online cpus with just 3 random cpus in the mask, but
    was unsuccessful.  Still, inspection shows a valid race, and the fix is
    a extension of the existing protection window in the current code.
    
    Reported-by: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: Milton Miller <miltonm@bga.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 72c399c6add21b6cd912a085a1b1f00751fbbcf1
Author: Eric Sandeen <sandeen@redhat.com>
Date:   Fri Mar 4 16:04:08 2011 -0600

    ext3: Always set dx_node's fake_dirent explicitly.
    
    commit d7433142b63d727b5a217c37b1a1468b116a9771 upstream.
    
    (crossport of 1f7bebb9e911d870fa8f997ddff838e82b5715ea
    by Andreas Schlick <schlick@lavabit.com>)
    
    When ext3_dx_add_entry() has to split an index node, it has to ensure that
    name_len of dx_node's fake_dirent is also zero, because otherwise e2fsck
    won't recognise it as an intermediate htree node and consider the htree to
    be corrupted.
    
    Signed-off-by: Eric Sandeen <sandeen@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 09d55df69df7b1b5500fdca8f40c7955342213be
Author: Anton Blanchard <anton@samba.org>
Date:   Wed Mar 9 14:38:42 2011 +1100

    perf, powerpc: Handle events that raise an exception without overflowing
    
    commit 0837e3242c73566fc1c0196b4ec61779c25ffc93 upstream.
    
    Events on POWER7 can roll back if a speculative event doesn't
    eventually complete. Unfortunately in some rare cases they will
    raise a performance monitor exception. We need to catch this to
    ensure we reset the PMC. In all cases the PMC will be 256 or less
    cycles from overflow.
    
    Signed-off-by: Anton Blanchard <anton@samba.org>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <20110309143842.6c22845e@kryten>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 7d88d3b036943c87750745bded1d39fb76691b9c
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Tue Mar 15 19:56:30 2011 -0400

    SUNRPC: Ensure we always run the tk_callback before tk_action
    
    commit e020c6800c9621a77223bf2c1ff68180e41e8ebf upstream.
    
    This fixes a race in which the task->tk_callback() puts the rpc_task
    to sleep, setting a new callback. Under certain circumstances, the current
    code may end up executing the task->tk_action before it gets round to the
    callback.
    
    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 5989dd43dff051d62fea4ea5f730dec9c9acb3c1
Author: Przemyslaw Bruski <pbruskispam@op.pl>
Date:   Sun Mar 13 16:18:58 2011 +0100

    ALSA: ctxfi - Clear input settings before initialization
    
    commit efed5f26664f93991c929d5bb343e65f900d72bc upstream.
    
    Clear input settings before initialization.
    
    Signed-off-by: Przemyslaw Bruski <pbruskispam@op.pl>
    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 99cf93e9b9e67fd1ac9d2067c6fe42f167fe81c3
Author: Przemyslaw Bruski <pbruskispam@op.pl>
Date:   Sun Mar 13 16:18:57 2011 +0100

    ALSA: ctxfi - Fix SPDIF status retrieval
    
    commit f164753a263bfd2daaf3e0273b179de7e099c57d upstream.
    
    SDPIF status retrieval always returned the default settings instead of
    the actual ones.
    
    Signed-off-by: Przemyslaw Bruski <pbruskispam@op.pl>
    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 3a5487a6be67115e24c164f80be511fe6d6b98d7
Author: Przemyslaw Bruski <pbruskispam@op.pl>
Date:   Sun Mar 13 16:18:56 2011 +0100

    ALSA: ctxfi - Fix incorrect SPDIF status bit mask
    
    commit 4c1847e884efddcc3ede371f7839e5e65b25c34d upstream.
    
    SPDIF status mask creation was incorrect.
    
    Signed-off-by: Przemyslaw Bruski <pbruskispam@op.pl>
    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 7a0c7104fc7aba88bfc8138224f5ee2f2391ce28
Author: Ben Hutchings <bhutchings@solarflare.com>
Date:   Thu Jan 13 19:47:56 2011 +0000

    PCI: sysfs: Fix failure path for addition of "vpd" attribute
    
    commit 0f12a4e29368a9476076515881d9ef4e5876c6e2 upstream.
    
    Commit 280c73d ("PCI: centralize the capabilities code in
    pci-sysfs.c") changed the initialisation of the "rom" and "vpd"
    attributes, and made the failure path for the "vpd" attribute
    incorrect.  We must free the new attribute structure (attr), but
    instead we currently free dev->vpd->attr.  That will normally be NULL,
    resulting in a memory leak, but it might be a stale pointer, resulting
    in a double-free.
    
    Found by inspection; compile-tested only.
    
    Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 7d6fac3aa14a7d8248b34d5d5ca2c9947e1e8ab6
Author: Jiri Slaby <jslaby@suse.cz>
Date:   Mon Feb 28 10:45:10 2011 +0100

    PCI: do not create quirk I/O regions below PCIBIOS_MIN_IO for ICH
    
    commit 87e3dc3855430bd254370afc79f2ed92250f5b7c upstream.
    
    Some broken BIOSes on ICH4 chipset report an ACPI region which is in
    conflict with legacy IDE ports when ACPI is disabled. Even though the
    regions overlap, IDE ports are working correctly (we cannot find out
    the decoding rules on chipsets).
    
    So the only problem is the reported region itself, if we don't reserve
    the region in the quirk everything works as expected.
    
    This patch avoids reserving any quirk regions below PCIBIOS_MIN_IO
    which is 0x1000. Some regions might be (and are by a fast google
    query) below this border, but the only difference is that they won't
    be reserved anymore. They should still work though the same as before.
    
    The conflicts look like (1f.0 is bridge, 1f.1 is IDE ctrl):
    pci 0000:00:1f.1: address space collision: [io 0x0170-0x0177] conflicts with 0000:00:1f.0 [io  0x0100-0x017f]
    
    At 0x0100 a 128 bytes long ACPI region is reported in the quirk for
    ICH4. ata_piix then fails to find disks because the IDE legacy ports
    are zeroed:
    ata_piix 0000:00:1f.1: device not available (can't reserve [io 0x0000-0x0007])
    
    References: https://bugzilla.novell.com/show_bug.cgi?id=558740
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Thomas Renninger <trenn@suse.de>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit e32a55e626737a1e5ccf42ebaa89070084125788
Author: Jiri Slaby <jslaby@suse.cz>
Date:   Mon Feb 28 10:45:09 2011 +0100

    PCI: add more checking to ICH region quirks
    
    commit cdb9755849fbaf2bb9c0a009ba5baa817a0f152d upstream.
    
    Per ICH4 and ICH6 specs, ACPI and GPIO regions are valid iff ACPI_EN
    and GPIO_EN bits are set to 1. Add checks for these bits into the
    quirks prior to the region creation.
    
    While at it, name the constants by macros.
    
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Thomas Renninger <trenn@suse.de>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit eff1214a95e75a52b0fd6220bd92bab8d849e9b8
Author: Vitaliy Kulikov <Vitaliy.Kulikov@idt.com>
Date:   Wed Mar 9 19:47:43 2011 -0600

    ALSA: hda - fix digital mic selection in mixer on 92HD8X codecs
    
    commit 094a42452abd5564429045e210281c6d22e67fca upstream.
    
    When the mux for digital mic is different from the mux for other mics,
    the current auto-parser doesn't handle them in a right way but provides
    only one mic.  This patch fixes the issue.
    
    Signed-off-by: Vitaliy Kulikov <Vitaliy.Kulikov@idt.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 b543907c05b156ddf349ff966fb318de089520e7
Author: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Date:   Wed Feb 23 18:12:29 2011 -0800

    xhci: Fix cycle bit calculation during stall handling.
    
    commit 01a1fdb9a7afa5e3c14c9316d6f380732750b4e4 upstream.
    
    When an endpoint stalls, we need to update the xHCI host's internal
    dequeue pointer to move it past the stalled transfer.  This includes
    updating the cycle bit (TRB ownership bit) if we have moved the dequeue
    pointer past a link TRB with the toggle cycle bit set.
    
    When we're trying to find the new dequeue segment, find_trb_seg() is
    supposed to keep track of whether we've passed any link TRBs with the
    toggle cycle bit set.  However, this while loop's body
    
    	while (cur_seg->trbs > trb ||
    			&cur_seg->trbs[TRBS_PER_SEGMENT - 1] < trb) {
    
    Will never get executed if the ring only contains one segment.
    find_trb_seg() will return immediately, without updating the new cycle
    bit.  Since find_trb_seg() has no idea where in the segment the TD that
    stalled was, make the caller, xhci_find_new_dequeue_state(), check for
    this special case and update the cycle bit accordingly.
    
    This patch should be queued to kernels all the way back to 2.6.31.
    
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Tested-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 eefbb867d84225d11fe5ea7367cef079addca9d4
Author: wangyanqing <udknight@gmail.com>
Date:   Fri Mar 11 06:24:38 2011 -0800

    USB: serial: ch341: add new id
    
    commit d0781383038e983a63843a9a6a067ed781db89c1 upstream.
    
    I picked up a new DAK-780EX(professional digitl reverb/mix system),
    which use CH341T chipset to communication with computer on 3/2011
    and the CH341T's vendor code is 1a86
    
    Looking up the CH341T's vendor and product id's I see:
    
    1a86  QinHeng Electronics
      5523  CH341 in serial mode, usb to serial port converter
    
    CH341T,CH341 are the products of the same company, maybe
    have some common hardware, and I test the ch341.c works
    well with CH341T
    
    Cc: 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 e688c3c8e6031059fbea2ebdb2f07948280a9561
Author: Jiri Slaby <jslaby@suse.cz>
Date:   Mon Feb 28 10:34:06 2011 +0100

    USB: serial/kobil_sct, fix potential tty NULL dereference
    
    commit 6960f40a954619857e7095a6179eef896f297077 upstream.
    
    Make sure that we check the return value of tty_port_tty_get.
    Sometimes it may return NULL and we later dereference that.
    
    The only place here is in kobil_read_int_callback, so fix it.
    
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 37e1711cff542c857e3c95ed0e6ac6c09ac819ef
Author: Senthil Balasubramanian <senthilkumar@atheros.com>
Date:   Wed Dec 22 21:14:20 2010 +0530

    ath9k_hw: Fix incorrect macversion and macrev checks
    
    commit ac45c12dfb3f727a5a7a3332ed9c11b4a5ab287e upstream.
    
    There are few places where we are checking for macversion and revsions
    before RTC is powered ON. However we are reading the macversion and
    revisions only after RTC is powered ON and so both macversion and
    revisions are actully zero and this leads to incorrect srev checks
    
    Incorrect srev checks can cause registers to be configured wrongly and can
    cause unexpected behavior. Fixing this seems to address the ASPM issue that
    we have observed. The laptop becomes very slow and hangs mostly with ASPM L1
    enabled without this fix.
    
    fix this by reading the macversion and revisisons even before we start
    using them. There is no reason why should we delay reading this info
    until RTC is powered on as this is just a register information.
    
    Signed-off-by: Senthil Balasubramanian <senthilkumar@atheros.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 b0a8120fc5cd5bb4e74c2b94c8e2445b49cf51de
Author: Andreas Herrmann <andreas.herrmann3@amd.com>
Date:   Tue Mar 15 15:31:37 2011 +0100

    x86, quirk: Fix SB600 revision check
    
    commit 1d3e09a304e6c4e004ca06356578b171e8735d3c upstream.
    
    Commit 7f74f8f28a2bd9db9404f7d364e2097a0c42cc12
    (x86 quirk: Fix polarity for IRQ0 pin2 override on SB800
    systems) introduced a regression. It removed some SB600 specific
    code to determine the revision ID without adapting a
    corresponding revision ID check for SB600.
    
    See this mail thread:
    
      http://marc.info/?l=linux-kernel&m=129980296006380&w=2
    
    This patch adapts the corresponding check to cover all SB600
    revisions.
    
    Tested-by: Wang Lei <f3d27b@gmail.com>
    Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    LKML-Reference: <20110315143137.GD29499@alberich.amd.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit ca78068b35522c820207b36191cba1385163f198
Author: Sean Hefty <sean.hefty@intel.com>
Date:   Wed Feb 23 08:17:40 2011 -0800

    IB/cm: Bump reference count on cm_id before invoking callback
    
    commit 29963437a48475036353b95ab142bf199adb909e upstream.
    
    When processing a SIDR REQ, the ib_cm allocates a new cm_id.  The
    refcount of the cm_id is initialized to 1.  However, cm_process_work
    will decrement the refcount after invoking all callbacks.  The result
    is that the cm_id will end up with refcount set to 0 by the end of the
    sidr req handler.
    
    If a user tries to destroy the cm_id, the destruction will proceed,
    under the incorrect assumption that no other threads are referencing
    the cm_id.  This can lead to a crash when the cm callback thread tries
    to access the cm_id.
    
    This problem was noticed as part of a larger investigation with kernel
    crashes in the rdma_cm when running on a real time OS.
    
    Signed-off-by: Sean Hefty <sean.hefty@intel.com>
    Acked-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit af8c55e566b98985bde53ce09e72afcc6db04d4f
Author: Sean Hefty <sean.hefty@intel.com>
Date:   Wed Feb 23 08:11:32 2011 -0800

    RDMA/cma: Fix crash in request handlers
    
    commit 25ae21a10112875763c18b385624df713a288a05 upstream.
    
    Doug Ledford and Red Hat reported a crash when running the rdma_cm on
    a real-time OS.  The crash has the following call trace:
    
        cm_process_work
           cma_req_handler
              cma_disable_callback
              rdma_create_id
                 kzalloc
                 init_completion
              cma_get_net_info
              cma_save_net_info
              cma_any_addr
                 cma_zero_addr
              rdma_translate_ip
                 rdma_copy_addr
              cma_acquire_dev
                 rdma_addr_get_sgid
                 ib_find_cached_gid
                 cma_attach_to_dev
              ucma_event_handler
                 kzalloc
                 ib_copy_ah_attr_to_user
              cma_comp
    
    [ preempted ]
    
        cma_write
            copy_from_user
            ucma_destroy_id
               copy_from_user
               _ucma_find_context
               ucma_put_ctx
               ucma_free_ctx
                  rdma_destroy_id
                     cma_exch
                     cma_cancel_operation
                     rdma_node_get_transport
    
            rt_mutex_slowunlock
            bad_area_nosemaphore
            oops_enter
    
    They were able to reproduce the crash multiple times with the
    following details:
    
        Crash seems to always happen on the:
                mutex_unlock(&conn_id->handler_mutex);
        as conn_id looks to have been freed during this code path.
    
    An examination of the code shows that a race exists in the request
    handlers.  When a new connection request is received, the rdma_cm
    allocates a new connection identifier.  This identifier has a single
    reference count on it.  If a user calls rdma_destroy_id() from another
    thread after receiving a callback, rdma_destroy_id will proceed to
    destroy the id and free the associated memory.  However, the request
    handlers may still be in the process of running.  When control returns
    to the request handlers, they can attempt to access the newly created
    identifiers.
    
    Fix this by holding a reference on the newly created rdma_cm_id until
    the request handler is through accessing it.
    
    Signed-off-by: Sean Hefty <sean.hefty@intel.com>
    Acked-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit f40668b7b5b2224c23826d5f1abe076c7563b98e
Author: Seth Heasley <seth.heasley@intel.com>
Date:   Fri Mar 11 11:57:42 2011 -0800

    ahci: AHCI mode SATA patch for Intel Patsburg SATA RAID controller
    
    commit 64a3903d0885879ba8706a8bcf71c5e3e7664db2 upstream.
    
    This patch adds an updated SATA RAID DeviceID for the Intel Patsburg PCH.
    
    Signed-off-by: Seth Heasley <seth.heasley@intel.com>
    Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 9af7029b95687b78d8529aad52945acc9fc04912
Author: Seth Heasley <seth.heasley@intel.com>
Date:   Mon Jan 10 12:57:17 2011 -0800

    ahci: AHCI mode SATA patch for Intel DH89xxCC DeviceIDs
    
    commit a4a461a6df6c0481d5a3d61660ed97f5b539cf16 upstream.
    
    This patch adds the AHCI-mode SATA DeviceID for the Intel DH89xxCC PCH.
    
    Signed-off-by: Seth Heasley <seth.heasley@intel.com>
    Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit af02964e201041e04b3e4af91f46a2473f8cd20b
Author: Seth Heasley <seth.heasley@intel.com>
Date:   Thu Sep 9 09:44:56 2010 -0700

    ahci: AHCI and RAID mode SATA patch for Intel Patsburg DeviceIDs
    
    commit 992b3fb9b5391bc4de5b42bb810dc6dd583a6c4a upstream.
    
    This patch adds the Intel Patsburg (PCH) SATA AHCI and RAID Controller
    DeviceIDs.
    
    Signed-off-by: Seth Heasley <seth.heasley@intel.com>
    Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 92c1022c321ea0a7d190d87a5cb3293226b24822
Author: Kamal Mostafa <kamal@canonical.com>
Date:   Thu Feb 3 17:38:05 2011 -0800

    x86: Emit "mem=nopentium ignored" warning when not supported
    
    commit 9a6d44b9adb777ca9549e88cd55bd8f2673c52a2 upstream.
    
    Emit warning when "mem=nopentium" is specified on any arch other
    than x86_32 (the only that arch supports it).
    
    Signed-off-by: Kamal Mostafa <kamal@canonical.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    BugLink: http://bugs.launchpad.net/bugs/553464
    Cc: Yinghai Lu <yinghai@kernel.org>
    Cc: Len Brown <len.brown@intel.com>
    Cc: Rafael J. Wysocki <rjw@sisk.pl>
    LKML-Reference: <1296783486-23033-2-git-send-email-kamal@canonical.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 190b6fa5f90830b1ea5abc1be50d8db69d07fb1b
Author: Kamal Mostafa <kamal@canonical.com>
Date:   Thu Feb 3 17:38:04 2011 -0800

    x86: Fix panic when handling "mem={invalid}" param
    
    commit 77eed821accf5dd962b1f13bed0680e217e49112 upstream.
    
    Avoid removing all of memory and panicing when "mem={invalid}"
    is specified, e.g. mem=blahblah, mem=0, or mem=nopentium (on
    platforms other than x86_32).
    
    Signed-off-by: Kamal Mostafa <kamal@canonical.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    BugLink: http://bugs.launchpad.net/bugs/553464
    Cc: Yinghai Lu <yinghai@kernel.org>
    Cc: Len Brown <len.brown@intel.com>
    Cc: Rafael J. Wysocki <rjw@sisk.pl>
    LKML-Reference: <1296783486-23033-1-git-send-email-kamal@canonical.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 02966761c2632f7a15ecfc83bcd32b935ae84d3d
Author: Steven Rostedt <srostedt@redhat.com>
Date:   Thu Feb 10 21:26:13 2011 -0500

    ftrace: Fix memory leak with function graph and cpu hotplug
    
    commit 868baf07b1a259f5f3803c1dc2777b6c358f83cf upstream.
    
    When the fuction graph tracer starts, it needs to make a special
    stack for each task to save the real return values of the tasks.
    All running tasks have this stack created, as well as any new
    tasks.
    
    On CPU hot plug, the new idle task will allocate a stack as well
    when init_idle() is called. The problem is that cpu hotplug does
    not create a new idle_task. Instead it uses the idle task that
    existed when the cpu went down.
    
    ftrace_graph_init_task() will add a new ret_stack to the task
    that is given to it. Because a clone will make the task
    have a stack of its parent it does not check if the task's
    ret_stack is already NULL or not. When the CPU hotplug code
    starts a CPU up again, it will allocate a new stack even
    though one already existed for it.
    
    The solution is to treat the idle_task specially. In fact, the
    function_graph code already does, just not at init_idle().
    Instead of using the ftrace_graph_init_task() for the idle task,
    which that function expects the task to be a clone, have a
    separate ftrace_graph_init_idle_task(). Also, we will create a
    per_cpu ret_stack that is used by the idle task. When we call
    ftrace_graph_init_idle_task() it will check if the idle task's
    ret_stack is NULL, if it is, then it will assign it the per_cpu
    ret_stack.
    
    Reported-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Suggested-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 7838ead2b8f913f82d2b1d7f51e12d9ff1d6d936
Author: Andrey Vagin <avagin@openvz.org>
Date:   Wed Mar 9 15:22:23 2011 -0800

    x86/mm: Handle mm_fault_error() in kernel space
    
    commit f86268549f424f83b9eb0963989270e14fbfc3de upstream.
    
    mm_fault_error() should not execute oom-killer, if page fault
    occurs in kernel space.  E.g. in copy_from_user()/copy_to_user().
    
    This would happen if we find ourselves in OOM on a
    copy_to_user(), or a copy_from_user() which faults.
    
    Without this patch, the kernels hangs up in copy_from_user(),
    because OOM killer sends SIG_KILL to current process, but it
    can't handle a signal while in syscall, then the kernel returns
    to copy_from_user(), reexcute current command and provokes
    page_fault again.
    
    With this patch the kernel return -EFAULT from copy_from_user().
    
    The code, which checks that page fault occurred in kernel space,
    has been copied from do_sigbus().
    
    This situation is handled by the same way on powerpc, xtensa,
    tile, ...
    
    Signed-off-by: Andrey Vagin <avagin@openvz.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    LKML-Reference: <201103092322.p29NMNPH001682@imap1.linux-foundation.org>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit e5c30be3fa24a717a89a6ee9d0cd735e6002cdfd
Author: Florian Fainelli <florian@openwrt.org>
Date:   Sun Feb 27 19:53:53 2011 +0100

    MIPS: MTX-1: Make au1000_eth probe all PHY addresses
    
    commit bf3a1eb85967dcbaae42f4fcb53c2392cec32677 upstream.
    
    When au1000_eth probes the MII bus for PHY address, if we do not set
    au1000_eth platform data's phy_search_highest_address, the MII probing
    logic will exit early and will assume a valid PHY is found at address 0.
    For MTX-1, the PHY is at address 31, and without this patch, the link
    detection/speed/duplex would not work correctly.
    
    Signed-off-by: Florian Fainelli <florian@openwrt.org>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    To: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/2111/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 466f2609fe579b51358ea66774457962a860ddcc
Author: Tejun Heo <tj@kernel.org>
Date:   Thu Dec 9 15:59:32 2010 +0100

    libata: no special completion processing for EH commands
    
    commit f08dc1ac6b15c681f4643d8da1700e06c3855608 upstream.
    
    ata_qc_complete() contains special handling for certain commands.  For
    example, it schedules EH for device revalidation after certain
    configurations are changed.  These shouldn't be applied to EH
    commands but they were.
    
    In most cases, it doesn't cause an actual problem because EH doesn't
    issue any command which would trigger special handling; however, ACPI
    can issue such commands via _GTF which can cause weird interactions.
    
    Restructure ata_qc_complete() such that EH commands are always passed
    on to __ata_qc_complete().
    
    stable: Please apply to -stable only after 2.6.38 is released.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reported-by: Kyle McMartin <kyle@mcmartin.ca>
    Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit a2ee4c35474fb4c5151e0c691540b375fe5f97cf
Author: Axel Lin <axel.lin@gmail.com>
Date:   Mon Mar 7 11:04:24 2011 +0800

    mtd: add "platform:" prefix for platform modalias
    
    commit c804c733846572ca85c2bba60c7fe6fa024dff18 upstream.
    
    Since 43cc71eed1250755986da4c0f9898f9a635cb3bf (platform: prefix MODALIAS
    with "platform:"), the platform modalias is prefixed with "platform:".
    
    Signed-off-by: Axel Lin <axel.lin@gmail.com>
    Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.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 c4fb5a6409c69eeaab515d2f96ed3ba27fee10d8
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sun Mar 13 13:50:33 2011 +0100

    hwmon/f71882fg: Set platform drvdata to NULL later
    
    commit d9ebaa45472c92704f4814682eec21455edcfa1f upstream.
    
    This avoids a possible race leading to trying to dereference NULL.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Acked-by: Jean Delvare <khali@linux-fr.org>
    Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 9afaa41ad6235dc13c19affd061dffb55cf9c6b2
Author: [Dstephen hemminger <shemminger@vyatta.com>
Date:   Thu Mar 31 11:58:35 2011 -0700

    ip6ip6-autoload-ip6-tunnel
    
    Fromm foo
    From: stephen hemminger <shemminger@vyatta.com>
    Date: Thu, 10 Mar 2011 11:43:19 +0000 (+0000)
    Subject: ip6ip6: autoload ip6 tunnel
    
    From: stephen hemminger <shemminger@vyatta.com>
    
    commit 6dfbd87a20a737641ef228230c77f4262434fa24 upstream
    
    ip6ip6: autoload ip6 tunnel
    
    Add necessary alias to autoload ip6ip6 tunnel module.
    
    Signed-off-by: Stephen Hemminger <shemminger@vyatta.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 764504f33c9f5d2692dac5873c2bbbc7363b525c
Author: Vasiliy Kulikov <segoon@openwall.com>
Date:   Wed Mar 2 00:33:13 2011 +0300

    net: don't allow CAP_NET_ADMIN to load non-netdev kernel modules
    
    commit 8909c9ad8ff03611c9c96c9a92656213e4bb495b upstream.
    
    Since a8f80e8ff94ecba629542d9b4b5f5a8ee3eb565c any process with
    CAP_NET_ADMIN may load any module from /lib/modules/.  This doesn't mean
    that CAP_NET_ADMIN is a superset of CAP_SYS_MODULE as modules are
    limited to /lib/modules/**.  However, CAP_NET_ADMIN capability shouldn't
    allow anybody load any module not related to networking.
    
    This patch restricts an ability of autoloading modules to netdev modules
    with explicit aliases.  This fixes CVE-2011-1019.
    
    Arnd Bergmann suggested to leave untouched the old pre-v2.6.32 behavior
    of loading netdev modules by name (without any prefix) for processes
    with CAP_SYS_MODULE to maintain the compatibility with network scripts
    that use autoloading netdev modules by aliases like "eth0", "wlan0".
    
    Currently there are only three users of the feature in the upstream
    kernel: ipip, ip_gre and sit.
    
        root@albatros:~# capsh --drop=$(seq -s, 0 11),$(seq -s, 13 34) --
        root@albatros:~# grep Cap /proc/$$/status
        CapInh:	0000000000000000
        CapPrm:	fffffff800001000
        CapEff:	fffffff800001000
        CapBnd:	fffffff800001000
        root@albatros:~# modprobe xfs
        FATAL: Error inserting xfs
        (/lib/modules/2.6.38-rc6-00001-g2bf4ca3/kernel/fs/xfs/xfs.ko): Operation not permitted
        root@albatros:~# lsmod | grep xfs
        root@albatros:~# ifconfig xfs
        xfs: error fetching interface information: Device not found
        root@albatros:~# lsmod | grep xfs
        root@albatros:~# lsmod | grep sit
        root@albatros:~# ifconfig sit
        sit: error fetching interface information: Device not found
        root@albatros:~# lsmod | grep sit
        root@albatros:~# ifconfig sit0
        sit0      Link encap:IPv6-in-IPv4
    	      NOARP  MTU:1480  Metric:1
    
        root@albatros:~# lsmod | grep sit
        sit                    10457  0
        tunnel4                 2957  1 sit
    
    For CAP_SYS_MODULE module loading is still relaxed:
    
        root@albatros:~# grep Cap /proc/$$/status
        CapInh:	0000000000000000
        CapPrm:	ffffffffffffffff
        CapEff:	ffffffffffffffff
        CapBnd:	ffffffffffffffff
        root@albatros:~# ifconfig xfs
        xfs: error fetching interface information: Device not found
        root@albatros:~# lsmod | grep xfs
        xfs                   745319  0
    
    Reference: https://lkml.org/lkml/2011/2/24/203
    
    Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
    Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
    Acked-by: David S. Miller <davem@davemloft.net>
    Acked-by: Kees Cook <kees.cook@canonical.com>
    Signed-off-by: James Morris <jmorris@namei.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 87f18d37dbbfeaf1cb3d8f7de81e38bc849f0536
Author: Ivan Vecera <ivecera@redhat.com>
Date:   Thu Jan 27 12:24:11 2011 +0100

    r8169: use RxFIFO overflow workaround for 8168c chipset.
    
    commit b5ba6d12bdac21bc0620a5089e0f24e362645efd upstream.
    
    I found that one of the 8168c chipsets (concretely XID 1c4000c0) starts
    generating RxFIFO overflow errors. The result is an infinite loop in
    interrupt handler as the RxFIFOOver is handled only for ...MAC_VER_11.
    With the workaround everything goes fine.
    
    Signed-off-by: Ivan Vecera <ivecera@redhat.com>
    Acked-by: Francois Romieu <romieu@fr.zoreil.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Hayes <hayeswang@realtek.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit f59cc338d129dfd372658899c9a91287f49b1cb9
Author: roel <roel.kluin@gmail.com>
Date:   Tue Mar 8 22:32:26 2011 +0100

    nfsd: wrong index used in inner loop
    
    commit 3ec07aa9522e3d5e9d5ede7bef946756e623a0a0 upstream.
    
    [AK plus merged with commit 5a02ab7c3c4580f94d13c683721039855b67cda6 upstream ]
    
    Index i was already used in the outer loop
    
    Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
    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 3015340ba8ece69d4f3a46319282887b1115913b
Author: Jan Engelhardt <jengelh@medozas.de>
Date:   Wed Mar 2 12:10:13 2011 +0100

    netfilter: nf_log: avoid oops in (un)bind with invalid nfproto values
    
    commit 9ef0298a8e5730d9a46d640014c727f3b4152870 upstream.
    
    Like many other places, we have to check that the array index is
    within allowed limits, or otherwise, a kernel oops and other nastiness
    can ensue when we access memory beyond the end of the array.
    
    [ 5954.115381] BUG: unable to handle kernel paging request at 0000004000000000
    [ 5954.120014] IP:  __find_logger+0x6f/0xa0
    [ 5954.123979]  nf_log_bind_pf+0x2b/0x70
    [ 5954.123979]  nfulnl_recv_config+0xc0/0x4a0 [nfnetlink_log]
    [ 5954.123979]  nfnetlink_rcv_msg+0x12c/0x1b0 [nfnetlink]
    ...
    
    The problem goes back to v2.6.30-rc1~1372~1342~31 where nf_log_bind
    was decoupled from nf_log_register.
    
    Reported-by: Miguel Di Ciurcio Filho <miguel.filho@gmail.com>,
      via irc.freenode.net/#netfilter
    Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
    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 125124738e4704bf30ac47a59c96f7e3cbfb8161
Author: Matt Evans <matt@ozlabs.org>
Date:   Mon Mar 7 17:26:04 2011 +0530

    powerpc/kexec: Fix orphaned offline CPUs across kexec
    
    Commit: e8e5c2155b0035b6e04f29be67f6444bc914005b upstream
    
    When CPU hotplug is used, some CPUs may be offline at the time a kexec is
    performed.  The subsequent kernel may expect these CPUs to be already running,
    and will declare them stuck.  On pseries, there's also a soft-offline (cede)
    state that CPUs may be in; this can also cause problems as the kexeced kernel
    may ask RTAS if they're online -- and RTAS would say they are.  The CPU will
    either appear stuck, or will cause a crash as we replace its cede loop beneath
    it.
    
    This patch kicks each present offline CPU awake before the kexec, so that
    none are forever lost to these assumptions in the subsequent kernel.
    
    Now, the behaviour is that all available CPUs that were offlined are now
    online & usable after the kexec.  This mimics the behaviour of a full reboot
    (on which all CPUs will be restarted).
    
    Signed-off-by: Matt Evans <matt@ozlabs.org>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Kamalesh babulal <kamalesh@linux.vnet.ibm.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    cc: Anton Blanchard <anton@samba.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 551d7fec8a6edde9c3284e26f4566f1453490665
Author: Hugh Dickins <hughd@google.com>
Date:   Wed Feb 23 21:39:49 2011 -0800

    mm: fix possible cause of a page_mapped BUG
    
    commit a3e8cc643d22d2c8ed36b9be7d9c9ca21efcf7f7 upstream.
    
    Robert Swiecki reported a BUG_ON(page_mapped) from a fuzzer, punching
    a hole with madvise(,, MADV_REMOVE).  That path is under mutex, and
    cannot be explained by lack of serialization in unmap_mapping_range().
    
    Reviewing the code, I found one place where vm_truncate_count handling
    should have been updated, when I switched at the last minute from one
    way of managing the restart_addr to another: mremap move changes the
    virtual addresses, so it ought to adjust the restart_addr.
    
    But rather than exporting the notion of restart_addr from memory.c, or
    converting to restart_pgoff throughout, simply reset vm_truncate_count
    to 0 to force a rescan if mremap move races with preempted truncation.
    
    We have no confirmation that this fixes Robert's BUG,
    but it is a fix that's worth making anyway.
    
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Kerin Millar <kerframil@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 7978eb8d9cf53e9781bc9e143addeee8ee1ec4fe
Author: Don Skidmore <donald.c.skidmore@intel.com>
Date:   Tue Jan 18 22:53:47 2011 +0000

    ixgbe: fix for 82599 erratum on Header Splitting
    
    commit a124339ad28389093ed15eca990d39c51c5736cc upstream.
    
    We have found a hardware erratum on 82599 hardware that can lead to
    unpredictable behavior when Header Splitting mode is enabled.  So
    we are no longer enabling this feature on affected hardware.
    
    Please see the 82599 Specification Update for more information.
    
    Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
    Tested-by: Stephen Ko <stephen.s.ko@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit d97f1cbed8f5b7aaf11a51d7bd5e4674f3d822c4
Author: Anton Blanchard <anton@au1.ibm.com>
Date:   Mon Feb 28 03:27:53 2011 +0000

    RxRPC: Fix v1 keys
    
    commit f009918a1c1bbf8607b8aab3959876913a30193a upstream.
    
    commit 339412841d7 (RxRPC: Allow key payloads to be passed in XDR form)
    broke klog for me. I notice the v1 key struct had a kif_version field
    added:
    
    -struct rxkad_key {
    -       u16     security_index;         /* RxRPC header security index */
    -       u16     ticket_len;             /* length of ticket[] */
    -       u32     expiry;                 /* time at which expires */
    -       u32     kvno;                   /* key version number */
    -       u8      session_key[8];         /* DES session key */
    -       u8      ticket[0];              /* the encrypted ticket */
    -};
    
    +struct rxrpc_key_data_v1 {
    +       u32             kif_version;            /* 1 */
    +       u16             security_index;
    +       u16             ticket_length;
    +       u32             expiry;                 /* time_t */
    +       u32             kvno;
    +       u8              session_key[8];
    +       u8              ticket[0];
    +};
    
    However the code in rxrpc_instantiate strips it away:
    
    	data += sizeof(kver);
    	datalen -= sizeof(kver);
    
    Removing kif_version fixes my problem.
    
    Signed-off-by: Anton Blanchard <anton@samba.org>
    Signed-off-by: David Howells <dhowells@redhat.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 4e6c91302a8e7073d69adca8100a1f7361050f6f
Author: Dan Carpenter <error27@gmail.com>
Date:   Thu Mar 3 17:56:06 2011 +0100

    keyboard: integer underflow bug
    
    commit b652277b09d3d030cb074cc6a98ba80b34244c03 upstream.
    
    The "ct" variable should be an unsigned int.  Both struct kbdiacrs
    ->kb_cnt and struct kbd_data ->accent_table_size are unsigned ints.
    
    Making it signed causes a problem in KBDIACRUC because the user could
    set the signed bit and cause a buffer overflow.
    
    Signed-off-by: Dan Carpenter <error27@gmail.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit ed0afb9880641cc6a22a46b75fcaca67728ce41b
Author: Li Zefan <lizf@cn.fujitsu.com>
Date:   Fri Mar 4 17:36:21 2011 -0800

    cpuset: add a missing unlock in cpuset_write_resmask()
    
    commit b75f38d659e6fc747eda64cb72f3920e29dd44a4 upstream.
    
    Don't forget to release cgroup_mutex if alloc_trial_cpuset() fails.
    
    [akpm@linux-foundation.org: avoid multiple return points]
    Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Paul Menage <menage@google.com>
    Acked-by: David Rientjes <rientjes@google.com>
    Cc: Miao Xie <miaox@cn.fujitsu.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 d63d8586fd2d38b7faa03938f7a9957f4f021427
Author: Pavel Shilovsky <piastryyy@gmail.com>
Date:   Mon Jan 17 20:15:44 2011 +0300

    CIFS: Fix oplock break handling (try #2)
    
    commit 12fed00de963433128b5366a21a55808fab2f756 upstream.
    
    When we get oplock break notification we should set the appropriate
    value of OplockLevel field in oplock break acknowledge according to
    the oplock level held by the client in this time. As we only can have
    level II oplock or no oplock in the case of oplock break, we should be
    aware only about clientCanCacheRead field in cifsInodeInfo structure.
    
    Signed-off-by: Pavel Shilovsky <piastryyy@gmail.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 23816cabbcac4826dd62590edeb0518e318217a7
Author: Ian Campbell <Ian.Campbell@citrix.com>
Date:   Fri Feb 11 07:44:16 2011 +0000

    arp_notify: unconditionally send gratuitous ARP for NETDEV_NOTIFY_PEERS.
    
    commit d11327ad6695db8117c78d70611e71102ceec2ac upstream.
    
    NETDEV_NOTIFY_PEER is an explicit request by the driver to send a link
    notification while NETDEV_UP/NETDEV_CHANGEADDR generate link
    notifications as a sort of side effect.
    
    In the later cases the sysctl option is present because link
    notification events can have undesired effects e.g. if the link is
    flapping. I don't think this applies in the case of an explicit
    request from a driver.
    
    This patch makes NETDEV_NOTIFY_PEER unconditional, if preferred we
    could add a new sysctl for this case which defaults to on.
    
    This change causes Xen post-migration ARP notifications (which cause
    switches to relearn their MAC tables etc) to be sent by default.
    
    Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    [reported to solve hyperv live migration problem - gkh]
    Cc: Haiyang Zhang <haiyangz@microsoft.com>
    Cc: Mike Surcouf <mike@surcouf.co.uk>
    Cc: Hank Janssen <hjanssen@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 7e150642300a8c69f3e219f960f0d454ca442df8
Author: Kees Cook <kees.cook@canonical.com>
Date:   Mon Oct 11 11:28:16 2010 -0700

    usb: iowarrior: don't trust report_size for buffer size
    
    commit 3ed780117dbe5acb64280d218f0347f238dafed0 upstream.
    
    If the iowarrior devices in this case statement support more than 8 bytes
    per report, it is possible to write past the end of a kernel heap allocation.
    This will probably never be possible, but change the allocation to be more
    defensive anyway.
    
    Signed-off-by: Kees Cook <kees.cook@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Acked-by: Brandon Philips <bphilips@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 91cda1a87e73670380948ad0954a2b544adf88fc
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Tue Feb 22 02:00:11 2011 +0000

    r8169: disable ASPM
    
    commit ba04c7c93bbcb48ce880cf75b6e9dffcd79d4c7b upstream.
    
    For some time is known that ASPM is causing troubles on r8169, i.e. make
    device randomly stop working without any errors in dmesg.
    
    Currently Tomi Leppikangas reports that system with r8169 device hangs
    with MCE errors when ASPM is enabled:
    https://bugzilla.redhat.com/show_bug.cgi?id=642861#c4
    
    Lets disable ASPM for r8169 devices at all, to avoid problems with
    r8169 PCIe devices at least for some users.
    
    Reported-by: Tomi Leppikangas <tomi.leppikangas@gmail.com>
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.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 e75a325f093d5e85b246f69cb3139e684d1023ab
Author: Bruce Allan <bruce.w.allan@intel.com>
Date:   Wed Feb 2 09:30:36 2011 +0000

    e1000e: disable broken PHY wakeup for ICH10 LOMs, use MAC wakeup instead
    
    commit 4def99bbfd46e05c5e03b5b282cb4ee30e27ff19 upstream.
    
    When support for 82577/82578 was added[1] in 2.6.31, PHY wakeup was in-
    advertently enabled (even though it does not function properly) on ICH10
    LOMs.  This patch makes it so that the ICH10 LOMs use MAC wakeup instead
    as was done with the initial support for those devices (i.e. 82567LM-3,
    82567LF-3 and 82567V-4).
    
    [1] commit a4f58f5455ba0efda36fb33c37074922d1527a10
    
    Reported-by: Aurelien Jarno <aurelien@aurel32.net>
    Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit e64b535e21ce80a24123c0dd4de56eb490faaa81
Author: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Date:   Tue Mar 1 23:02:07 2011 -0800

    dccp: fix oops on Reset after close
    
    commit 720dc34bbbe9493c7bd48b2243058b4e447a929d upstream.
    
    This fixes a bug in the order of dccp_rcv_state_process() that still permitted
    reception even after closing the socket. A Reset after close thus causes a NULL
    pointer dereference by not preventing operations on an already torn-down socket.
    
     dccp_v4_do_rcv()
    	|
    	| state other than OPEN
    	v
     dccp_rcv_state_process()
    	|
    	| DCCP_PKT_RESET
    	v
     dccp_rcv_reset()
    	|
    	v
     dccp_time_wait()
    
     WARNING: at net/ipv4/inet_timewait_sock.c:141 __inet_twsk_hashdance+0x48/0x128()
     Modules linked in: arc4 ecb carl9170 rt2870sta(C) mac80211 r8712u(C) crc_ccitt ah
     [<c0038850>] (unwind_backtrace+0x0/0xec) from [<c0055364>] (warn_slowpath_common)
     [<c0055364>] (warn_slowpath_common+0x4c/0x64) from [<c0055398>] (warn_slowpath_n)
     [<c0055398>] (warn_slowpath_null+0x1c/0x24) from [<c02b72d0>] (__inet_twsk_hashd)
     [<c02b72d0>] (__inet_twsk_hashdance+0x48/0x128) from [<c031caa0>] (dccp_time_wai)
     [<c031caa0>] (dccp_time_wait+0x40/0xc8) from [<c031c15c>] (dccp_rcv_state_proces)
     [<c031c15c>] (dccp_rcv_state_process+0x120/0x538) from [<c032609c>] (dccp_v4_do_)
     [<c032609c>] (dccp_v4_do_rcv+0x11c/0x14c) from [<c0286594>] (release_sock+0xac/0)
     [<c0286594>] (release_sock+0xac/0x110) from [<c031fd34>] (dccp_close+0x28c/0x380)
     [<c031fd34>] (dccp_close+0x28c/0x380) from [<c02d9a78>] (inet_release+0x64/0x70)
    
    The fix is by testing the socket state first. Receiving a packet in Closed state
    now also produces the required "No connection" Reset reply of RFC 4340, 8.3.1.
    
    Reported-and-tested-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
    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 85dbd9451121547d212ccd64af3c79111b901243
Author: Christian Lamparter <chunkeey@googlemail.com>
Date:   Sat Feb 26 12:58:06 2011 +0100

    p54usb: add Senao NUB-350 usbid
    
    commit 2b799a6b25bb9f9fbc478782cd9503e8066ab618 upstream.
    
    Reported-by: Mark Davis
    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 7c9c7573f5eb5bf6d95e7b7c81d9a4ac99a55c15
Author: Josh Hunt <johunt@akamai.com>
Date:   Thu Feb 24 11:48:22 2011 +0100

    ext2: Fix link count corruption under heavy link+rename load
    
    commit e8a80c6f769dd4622d8b211b398452158ee60c0b upstream.
    
    vfs_rename_other() does not lock renamed inode with i_mutex. Thus changing
    i_nlink in a non-atomic manner (which happens in ext2_rename()) can corrupt
    it as reported and analyzed by Josh.
    
    In fact, there is no good reason to mess with i_nlink of the moved file.
    We did it presumably to simulate linking into the new directory and unlinking
    from an old one. But the practical effect of this is disputable because fsck
    can possibly treat file as being properly linked into both directories without
    writing any error which is confusing. So we just stop increment-decrement
    games with i_nlink which also fixes the corruption.
    
    CC: Al Viro <viro@ZenIV.linux.org.uk>
    Signed-off-by: Josh Hunt <johunt@akamai.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 c3b01b0df34002e981ed6d0b04fe8cecd25d3625
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Fri Feb 25 22:34:23 2011 +0100

    clockevents: Prevent oneshot mode when broadcast device is periodic
    
    commit 3a142a0672b48a853f00af61f184c7341ac9c99d upstream.
    
    When the per cpu timer is marked CLOCK_EVT_FEAT_C3STOP, then we only
    can switch into oneshot mode, when the backup broadcast device
    supports oneshot mode as well. Otherwise we would try to switch the
    broadcast device into an unsupported mode unconditionally. This went
    unnoticed so far as the current available broadcast devices support
    oneshot mode. Seth unearthed this problem while debugging and working
    around an hpet related BIOS wreckage.
    
    Add the necessary check to tick_is_oneshot_available().
    
    Reported-and-tested-by: Seth Forshee <seth.forshee@canonical.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <alpine.LFD.2.00.1102252231200.2701@localhost6.localdomain6>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 23d154c71721fd0fa6199851078f32e6bd765664
Author: Miklos Szeredi <mszeredi@suse.cz>
Date:   Fri Feb 25 14:44:58 2011 +0100

    fuse: fix hang of single threaded fuseblk filesystem
    
    commit 5a18ec176c934ca1bc9dc61580a5e0e90a9b5733 upstream.
    
    Single threaded NTFS-3G could get stuck if a delayed RELEASE reply
    triggered a DESTROY request via path_put().
    
    Fix this by
    
     a) making RELEASE requests synchronous, whenever possible, on fuseblk
     filesystems
    
     b) if not possible (triggered by an asynchronous read/write) then do
     the path_put() in a separate thread with schedule_work().
    
    Reported-by: Oliver Neukum <oneukum@suse.de>
    Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 71f4fa9d7193a64da840be62cc4de3b7e1c6f43c
Author: Don Zickus <dzickus@redhat.com>
Date:   Mon Feb 7 23:25:00 2011 -0500

    x86: Use u32 instead of long to set reset vector back to 0
    
    commit 299c56966a72b9109d47c71a6db52097098703dd upstream.
    
    A customer of ours, complained that when setting the reset
    vector back to 0, it trashed other data and hung their box.
    They noticed when only 4 bytes were set to 0 instead of 8,
    everything worked correctly.
    
    Mathew pointed out:
    
     |
     | We're supposed to be resetting trampoline_phys_low and
     | trampoline_phys_high here, which are two 16-bit values.
     | Writing 64 bits is definitely going to overwrite space
     | that we're not supposed to be touching.
     |
    
    So limit the area modified to u32.
    
    Signed-off-by: Don Zickus <dzickus@redhat.com>
    Acked-by: Matthew Garrett <mjg@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1297139100-424-1-git-send-email-dzickus@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit dc85a0dd595f342727bdae2ab72b6e860b8c38ab
Author: Jochen Friedrich <jochen@scram.de>
Date:   Wed Jan 26 11:30:01 2011 +0100

    mfd: Fix NULL pointer due to non-initialized ucb1x00-ts absinfo
    
    commit 9063f1f15eec35e5fd608879cef8be5728f2d12a upstream.
    
    Call input_set_abs_params instead of manually setting absbit only.
    This fixes this oops:
    
    Unable to handle kernel NULL pointer dereference at virtual address 00000024
    Internal error: Oops: 41b67017 [#1]
    CPU: 0    Not tainted  (2.6.37 #4)
    pc : [<c016d1fc>]    lr : [<00000000>]    psr: 20000093
    sp : c19e5f30  ip : c19e5e6c  fp : c19e5f58
    r10: 00000000  r9 : c19e4000  r8 : 00000003
    r7 : 000001e4  r6 : 00000001  r5 : c1854400  r4 : 00000003
    r3 : 00000018  r2 : 00000018  r1 : 00000018  r0 : c185447c
    Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
    Control: c1b6717f  Table: c1b6717f  DAC: 00000017
    Stack: (0xc19e5f30 to 0xc19e6000)
    5f20:                                     00000003 00000003 c1854400 00000013
    5f40: 00000001 000001e4 000001c5 c19e5f80 c19e5f5c c016d5e8 c016cf5c 000001e4
    5f60: c1854400 c18b5860 00000000 00000171 000001e4 c19e5fc4 c19e5f84 c01559a4
    5f80: c016d584 c18b5868 00000000 c1bb5c40 c0035afc c18b5868 c18b5868 c1a55d54
    5fa0: c18b5860 c0155750 00000013 00000000 00000000 00000000 c19e5ff4 c19e5fc8
    5fc0: c0050174 c015575c 00000000 c18b5860 00000000 c19e5fd4 c19e5fd4 c1a55d54
    5fe0: c00500f0 c003b464 00000000 c19e5ff8 c003b464 c00500fc 04000400 04000400
    Backtrace:
    Function entered at [<c016cf50>] from [<c016d5e8>]
    Function entered at [<c016d578>] from [<c01559a4>]
     r8:000001e4 r7:00000171 r6:00000000 r5:c18b5860 r4:c1854400
    Function entered at [<c0155750>] from [<c0050174>]
    Function entered at [<c00500f0>] from [<c003b464>]
     r6:c003b464 r5:c00500f0 r4:c1a55d54
    Code: e59520fc e1a03286 e0433186 e0822003 (e592000c)
    
    >>PC;  c016d1fc <input_handle_event+2ac/5a0>   <=====
    
    Trace; c016cf50 <input_handle_event+0/5a0>
    Trace; c016d5e8 <input_event+70/88>
    Trace; c016d578 <input_event+0/88>
    Trace; c01559a4 <ucb1x00_thread+254/2dc>
    Trace; c0155750 <ucb1x00_thread+0/2dc>
    Trace; c0050174 <kthread+84/8c>
    Trace; c00500f0 <kthread+0/8c>
    Trace; c003b464 <do_exit+0/624>
    
    Signed-off-by: Jochen Friedrich <jochen@scram.de>
    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 ef7626ef2ce9260ef806b1f21b2340007df790ea
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Feb 24 08:35:06 2011 +1000

    drm: fix unsigned vs signed comparison issue in modeset ctl ioctl.
    
    commit 1922756124ddd53846877416d92ba4a802bc658f upstream.
    
    This fixes CVE-2011-1013.
    
    Reported-by: Matthiew Herrb (OpenBSD X.org team)
    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 065d36903eda46c9b3434feaebc9b2e2b48c1689
Author: Tristan Ye <tristan.ye@oracle.com>
Date:   Fri Jan 21 18:20:18 2011 +0800

    Ocfs2/refcounttree: Fix a bug for refcounttree to writeback clusters in a right number.
    
    commit acf3bb007e5636ef4c17505affb0974175108553 upstream.
    
    Current refcounttree codes actually didn't writeback the new pages out in
    write-back mode, due to a bug of always passing a ZERO number of clusters
    to 'ocfs2_cow_sync_writeback', the patch tries to pass a proper one in.
    
    Signed-off-by: Tristan Ye <tristan.ye@oracle.com>
    Signed-off-by: Joel Becker <jlbec@evilplan.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 4bb1e0d018b987cbbac02b631242cbecdf4c6ae0
Author: David S. Miller <davem@davemloft.net>
Date:   Wed Feb 9 21:48:36 2011 -0800

    x25: Do not reference freed memory.
    
    commit 96642d42f076101ba98866363d908cab706d156c upstream.
    
    In x25_link_free(), we destroy 'nb' before dereferencing
    'nb->dev'.  Don't do this, because 'nb' might be freed
    by then.
    
    Reported-by: Randy Dunlap <randy.dunlap@oracle.com>
    Tested-by: Randy Dunlap <randy.dunlap@oracle.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 0fa2aea484fd2fd9a713c77445a1bc49eafd3ad7
Author: Paul Zimmerman <Paul.Zimmerman@synopsys.com>
Date:   Sat Feb 12 14:07:57 2011 -0800

    xhci: Fix an error in count_sg_trbs_needed()
    
    commit bcd2fde05341cef0052e49566ec88b406a521cf3 upstream.
    
    The expression
    
    	while (running_total < sg_dma_len(sg))
    
    does not take into account that the remaining data length can be less
    than sg_dma_len(sg). In that case, running_total can end up being
    greater than the total data length, so an extra TRB is counted.
    Changing the expression to
    
    	while (running_total < sg_dma_len(sg) && running_total < temp)
    
    fixes that.
    
    This patch should be queued for stable kernels back to 2.6.31.
    
    Signed-off-by: Paul Zimmerman <paulz@synopsys.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 3f2e65401564db89de1c91901287b483f38db5c6
Author: Paul Zimmerman <Paul.Zimmerman@synopsys.com>
Date:   Sat Feb 12 14:07:20 2011 -0800

    xhci: Fix errors in the running total calculations in the TRB math
    
    commit 5807795bd4dececdf553719cc02869e633395787 upstream.
    
    Calculations like
    
    	running_total = TRB_MAX_BUFF_SIZE -
    		(sg_dma_address(sg) & (TRB_MAX_BUFF_SIZE - 1));
    	if (running_total != 0)
    		num_trbs++;
    
    are incorrect, because running_total can never be zero, so the if()
    expression will never be true. I think the intention was that
    running_total be in the range of 0 to TRB_MAX_BUFF_SIZE-1, not 1
    to TRB_MAX_BUFF_SIZE. So adding a
    
    	running_total &= TRB_MAX_BUFF_SIZE - 1;
    
    fixes the problem.
    
    This patch should be queued for stable kernels back to 2.6.31.
    
    Signed-off-by: Paul Zimmerman <paulz@synopsys.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 25d6b22368f95c5ef83f1ee7313d3b66fbf027d3
Author: Paul Zimmerman <Paul.Zimmerman@synopsys.com>
Date:   Sat Feb 12 14:06:44 2011 -0800

    xhci: Clarify some expressions in the TRB math
    
    commit a2490187011cc2263117626615a581927d19f1d3 upstream.
    
    This makes it easier to spot some problems, which will be fixed by the
    next patch in the series. Also change dev_dbg to dev_err in
    check_trb_math(), so any math errors will be visible even when running
    with debug disabled.
    
    Note: This patch changes the expressions containing
    "((1 << TRB_MAX_BUFF_SHIFT) - 1)" to use the equivalent
    "(TRB_MAX_BUFF_SIZE - 1)". No change in behavior is intended for
    those expressions.
    
    This patch should be queued for stable kernels back to 2.6.31.
    
    Signed-off-by: Paul Zimmerman <paulz@synopsys.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 f239e2d130e493b80338290722c902f0e6e3198d
Author: Paul Zimmerman <Paul.Zimmerman@synopsys.com>
Date:   Sat Feb 12 14:06:06 2011 -0800

    xhci: Avoid BUG() in interrupt context
    
    commit 68e41c5d032668e2905404afbef75bc58be179d6 upstream.
    
    Change the BUGs in xhci_find_new_dequeue_state() to WARN_ONs, to avoid
    bringing down the box if one of them is hit
    
    This patch should be queued for stable kernels back to 2.6.31.
    
    Signed-off-by: Paul Zimmerman <paulz@synopsys.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 267f9dcb958df286b3237ad9d073c016c5f9842e
Author: Andreas Herrmann <andreas.herrmann3@amd.com>
Date:   Thu Feb 24 15:53:46 2011 +0100

    x86 quirk: Fix polarity for IRQ0 pin2 override on SB800 systems
    
    commit 7f74f8f28a2bd9db9404f7d364e2097a0c42cc12 upstream.
    
    On some SB800 systems polarity for IOAPIC pin2 is wrongly
    specified as low active by BIOS. This caused system hangs after
    resume from S3 when HPET was used in one-shot mode on such
    systems because a timer interrupt was missed (HPET signal is
    high active).
    
    For more details see:
    
      http://marc.info/?l=linux-kernel&m=129623757413868
    
    Tested-by: Manoj Iyer <manoj.iyer@canonical.com>
    Tested-by: Andre Przywara <andre.przywara@amd.com>
    Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Borislav Petkov <borislav.petkov@amd.com>
    LKML-Reference: <20110224145346.GD3658@alberich.amd.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit e918f6a71094520d8a7db5a2c6aa94f3859e7faa
Author: NeilBrown <neilb@suse.de>
Date:   Wed Feb 16 13:58:51 2011 +1100

    md: correctly handle probe of an 'mdp' device.
    
    commit 8f5f02c460b7ca74ce55ce126ce0c1e58a3f923d upstream.
    
    'mdp' devices are md devices with preallocated device numbers
    for partitions. As such it is possible to mknod and open a partition
    before opening the whole device.
    
    this causes  md_probe() to be called with a device number of a
    partition, which in-turn calls mddev_find with such a number.
    
    However mddev_find expects the number of a 'whole device' and
    does the wrong thing with partition numbers.
    
    So add code to mddev_find to remove the 'partition' part of
    a device number and just work with the 'whole device'.
    
    This patch addresses https://bugzilla.kernel.org/show_bug.cgi?id=28652
    
    Reported-by: hkmaly@bigfoot.com
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit e609b7f09120400455b6d54bae2cb56c85578d42
Author: Timo Warns <Warns@pre-sense.de>
Date:   Fri Feb 25 14:44:21 2011 -0800

    ldm: corrupted partition table can cause kernel oops
    
    commit 294f6cf48666825d23c9372ef37631232746e40d upstream.
    
    The kernel automatically evaluates partition tables of storage devices.
    The code for evaluating LDM partitions (in fs/partitions/ldm.c) contains
    a bug that causes a kernel oops on certain corrupted LDM partitions.  A
    kernel subsystem seems to crash, because, after the oops, the kernel no
    longer recognizes newly connected storage devices.
    
    The patch changes ldm_parse_vmdb() to Validate the value of vblk_size.
    
    Signed-off-by: Timo Warns <warns@pre-sense.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Eugene Teo <eugeneteo@kernel.sg>
    Acked-by: Richard Russon <ldm@flatcap.org>
    Cc: Harvey Harrison <harvey.harrison@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 0eccd188cfeaf857a26f2d72941d27d298cf6a54
Author: Davide Libenzi <davidel@xmailserver.org>
Date:   Fri Feb 25 14:44:12 2011 -0800

    epoll: prevent creating circular epoll structures
    
    commit 22bacca48a1755f79b7e0f192ddb9fbb7fc6e64e upstream.
    
    In several places, an epoll fd can call another file's ->f_op->poll()
    method with ep->mtx held.  This is in general unsafe, because that other
    file could itself be an epoll fd that contains the original epoll fd.
    
    The code defends against this possibility in its own ->poll() method using
    ep_call_nested, but there are several other unsafe calls to ->poll
    elsewhere that can be made to deadlock.  For example, the following simple
    program causes the call in ep_insert recursively call the original fd's
    ->poll, leading to deadlock:
    
     #include <unistd.h>
     #include <sys/epoll.h>
    
     int main(void) {
         int e1, e2, p[2];
         struct epoll_event evt = {
             .events = EPOLLIN
         };
    
         e1 = epoll_create(1);
         e2 = epoll_create(2);
         pipe(p);
    
         epoll_ctl(e2, EPOLL_CTL_ADD, e1, &evt);
         epoll_ctl(e1, EPOLL_CTL_ADD, p[0], &evt);
         write(p[1], p, sizeof p);
         epoll_ctl(e1, EPOLL_CTL_ADD, e2, &evt);
    
         return 0;
     }
    
    On insertion, check whether the inserted file is itself a struct epoll,
    and if so, do a recursive walk to detect whether inserting this file would
    create a loop of epoll structures, which could lead to deadlock.
    
    [nelhage@ksplice.com: Use epmutex to serialize concurrent inserts]
    Signed-off-by: Davide Libenzi <davidel@xmailserver.org>
    Signed-off-by: Nelson Elhage <nelhage@ksplice.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reported-by: Nelson Elhage <nelhage@ksplice.com>
    Tested-by: Nelson Elhage <nelhage@ksplice.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 0ba1a33e1e67b555104cb586454fbcffba88635d
Author: Max Vozeler <max@vozeler.com>
Date:   Wed Jan 12 15:02:05 2011 +0200

    staging: usbip: vhci: use urb->dev->portnum to find port
    
    commit 01446ef5af4e8802369bf4d257806e24345a9371 upstream.
    
    The access to pending_port was racy when two devices
    were being attached at the same time.
    
    Signed-off-by: Max Vozeler <max@vozeler.com>
    Tested-by: Mark Wehby <MWehby@luxotticaRetail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 8ff66f1d0cbdce0a50d7db47863f610b3c45f9e0
Author: Max Vozeler <max@vozeler.com>
Date:   Wed Jan 12 15:02:02 2011 +0200

    staging: usbip: vhci: refuse to enqueue for dead connections
    
    commit 6d212153a838354078cc7d96f9bb23b7d1fd3d1b upstream.
    
    There can be requests to enqueue URBs while we are shutting
    down a connection.
    
    Signed-off-by: Max Vozeler <max@vozeler.com>
    Tested-by: Mark Wehby <MWehby@luxotticaRetail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 9f19953fd27806290a9943631ba2fdfd9edb8d0e
Author: Max Vozeler <max@vozeler.com>
Date:   Wed Jan 12 15:02:01 2011 +0200

    staging: usbip: vhci: give back URBs from in-flight unlink requests
    
    commit b92a5e23737172c52656a090977408a80d7f06d1 upstream.
    
    If we never received a RET_UNLINK because the TCP
    connection broke the pending URBs still need to be
    unlinked and given back.
    
    Previously processes would be stuck trying to kill
    the URB even after the device was detached.
    
    Signed-off-by: Max Vozeler <max@vozeler.com>
    Tested-by: Mark Wehby <MWehby@luxotticaRetail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 1c8d316294916da7e2a2f1f178ca3f3bd6d7b531
Author: Max Vozeler <max@vozeler.com>
Date:   Wed Jan 12 15:02:00 2011 +0200

    staging: usbip: vhci: update reference count for usb_device
    
    commit 7606ee8aa33287dd3e6eb44c78541b87a413a325 upstream.
    
    This fixes an oops observed when reading status during
    removal of a device:
    
    [ 1706.648285] general protection fault: 0000 [#1] SMP
    [ 1706.648294] last sysfs file: /sys/devices/platform/vhci_hcd/status
    [ 1706.648297] CPU 1
    [ 1706.648300] Modules linked in: binfmt_misc microcode fuse loop vhci_hcd(N) usbip(N) usbcore usbip_common_mod(N) rtc_core rtc_lib joydev dm_mirror dm_region_hash dm_log linear dm_snapshot xennet dm_mod ext3 mbcache jbd processor thermal_sys hwmon xenblk cdrom
    [ 1706.648324] Supported: Yes
    [ 1706.648327] Pid: 10422, comm: usbip Tainted: G          N  2.6.32.12-0.7-xen #1
    [ 1706.648330] RIP: e030:[<ffffffff801b10d5>]  [<ffffffff801b10d5>] strnlen+0x5/0x40
    [ 1706.648340] RSP: e02b:ffff8800a994dd30  EFLAGS: 00010286
    [ 1706.648343] RAX: ffffffff80481ec1 RBX: 0000000000000000 RCX: 0000000000000002
    [ 1706.648347] RDX: 00200d1d4f1c001c RSI: ffffffffffffffff RDI: 00200d1d4f1c001c
    [ 1706.648350] RBP: ffff880129a1c0aa R08: ffffffffa01901c4 R09: 0000000000000006
    [ 1706.648353] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8800a9a1c0ab
    [ 1706.648357] R13: 00200d1d4f1c001c R14: 00000000ffffffff R15: ffff880129a1c0aa
    [ 1706.648363] FS:  00007f2f2e9ca700(0000) GS:ffff880001018000(0000) knlGS:0000000000000000
    [ 1706.648367] CS:  e033 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 1706.648370] CR2: 000000000071b048 CR3: 00000000b4b68000 CR4: 0000000000002660
    [ 1706.648374] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [ 1706.648378] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    [ 1706.648381] Process usbip (pid: 10422, threadinfo ffff8800a994c000, task ffff88007b170200)
    [ 1706.648385] Stack:
    [ 1706.648387]  ffffffff801b28c9 0000000000000002 ffffffffa01901c4 ffff8800a9a1c0ab
    [ 1706.648391] <0> ffffffffa01901c6 ffff8800a994de08 ffffffff801b339b 0000000000000004
    [ 1706.648397] <0> 0000000affffffff ffffffffffffffff 00000000000067c0 0000000000000000
    [ 1706.648404] Call Trace:
    [ 1706.648413]  [<ffffffff801b28c9>] string+0x39/0xe0
    [ 1706.648419]  [<ffffffff801b339b>] vsnprintf+0x1eb/0x620
    [ 1706.648423]  [<ffffffff801b3813>] sprintf+0x43/0x50
    [ 1706.648429]  [<ffffffffa018d719>] show_status+0x1b9/0x220 [vhci_hcd]
    [ 1706.648438]  [<ffffffff8024a2b7>] dev_attr_show+0x27/0x60
    [ 1706.648445]  [<ffffffff80144821>] sysfs_read_file+0x101/0x1d0
    [ 1706.648451]  [<ffffffff800da4a7>] vfs_read+0xc7/0x130
    [ 1706.648457]  [<ffffffff800da613>] sys_read+0x53/0xa0
    [ 1706.648462]  [<ffffffff80007458>] system_call_fastpath+0x16/0x1b
    [ 1706.648468]  [<00007f2f2de40f30>] 0x7f2f2de40f30
    [ 1706.648470] Code: 66 0f 1f 44 00 00 48 83 c2 01 80 3a 00 75 f7 48 89 d0 48 29 f8 f3 c3 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 48 85 f6 74 29 <80> 3f 00 74 24 48 8d 56 ff 48 89 f8 eb 0e 0f 1f 44 00 00 48 83
    [ 1706.648507] RIP  [<ffffffff801b10d5>] strnlen+0x5/0x40
    [ 1706.648511]  RSP <ffff8800a994dd30>
    [ 1706.649575] ---[ end trace b4eb72bf2e149593 ]---
    
    Signed-off-by: Max Vozeler <max@vozeler.com>
    Tested-by: Mark Wehby <MWehby@luxotticaRetail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 42aa554be97de7c9d15aae76a9f9200de25823a7
Author: Jon Thomas <jthomas@redhat.com>
Date:   Wed Feb 16 11:02:34 2011 -0500

    sierra: add new ID for Airprime/Sierra USB IP modem
    
    commit e1dc5157c574e7249dc1cd072fde2e48b3011533 upstream.
    
    I picked up a new Sierra usb 308 (At&t Shockwave) on 2/2011 and the vendor code
    is 0x0f3d
    
    Looking up vendor and product id's I see:
    
    0f3d  Airprime, Incorporated
     0112  CDMA 1xEVDO PC Card, PC 5220
    
    Sierra and Airprime are somehow related and I'm guessing the At&t usb 308 might
    be have some common hardware with the AirPrime SL809x.
    
    Signed-off-by: Jon Thomas <jthomas@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit db07f6d4d8cfc7cf067075d0d8d77bb10abe9282
Author: Christian Lamparter <chunkeey@googlemail.com>
Date:   Fri Feb 11 01:48:42 2011 +0100

    p54pci: update receive dma buffers before and after processing
    
    commit 0bf719dfdecc5552155cbec78e49fa06e531e35c upstream.
    
    Documentation/DMA-API-HOWTO.txt states:
    
    "DMA transfers need to be synced properly in order for
    the cpu and device to see the most uptodate and correct
    copy of the DMA buffer."
    
    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 cdb645bdea66542d53216b6c85483b7b6dfd8472
Author: Maciej Szmigiero <mhej@o2.pl>
Date:   Sat Feb 5 21:52:00 2011 +0100

    USB: Add quirk for Samsung Android phone modem
    
    commit 72a012ce0a02c6c616676a24b40ff81d1aaeafda upstream.
    
    My Galaxy Spica needs this quirk when in modem mode, otherwise
    it causes endless USB bus resets and is unusable in this mode.
    
    Unfortunately Samsung decided to reuse ID of its old CDMA phone SGH-I500
    for the modem part.
    That's why in addition to this patch the visor driver must be prevented
    from binding to SPH-I500 ID, so ACM driver can do that.
    
    Signed-off-by: Maciej Szmigiero <mhej@o2.pl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 5a67c8ece38ca56d2efa725691e6b191fe6dfbaa
Author: Maciej Szmigiero <mhej@o2.pl>
Date:   Mon Feb 7 12:42:36 2011 +0100

    USB: Add Samsung SGH-I500/Android modem ID switch to visor driver
    
    commit acb52cb1613e1d3c8a8c650717cc51965c60d7d4 upstream.
    
    [USB]Add Samsung SGH-I500/Android modem ID switch to visor driver
    
    Samsung decided to reuse USB ID of its old CDMA phone SGH-I500 for the
    modem part of some of their Android phones. At least Galaxy Spica
    is affected.
    
    This modem needs ACM driver and does not work with visor driver which
    binds the conflicting ID for SGH-I500.
    Because SGH-I500 is pretty an old hardware its best to add switch to
    visor
    driver in cause somebody still wants to use that phone with Linux.
    
    Note that this is needed only when using the Android phone as modem,
    not in USB storage or ADB mode.
    
    Signed-off-by: Maciej Szmigiero <mhej@o2.pl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit ff91c7c848902af82f0bbf428038a9b08d0e8d7c
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Thu Feb 17 10:26:38 2011 -0500

    USB: add quirks entry for Keytouch QWERTY Panel
    
    commit 3c18e30f87ac5466bddbb05cf955605efd7db025 upstream.
    
    This patch (as1448) adds a quirks entry for the Keytouch QWERTY Panel
    firmware, used in the IEC 60945 keyboard.  This device crashes during
    enumeration when the computer asks for its configuration string
    descriptor.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Tested-by: kholis <nur.kholis.majid@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit be8787645695b75ac654b322b72f8e529ef1e728
Author: Johan Hovold <jhovold@gmail.com>
Date:   Fri Feb 11 16:57:08 2011 +0100

    usb: musb: omap2430: fix kernel panic on reboot
    
    commit b193b412e62b134adf69af286c7e7f8e99259350 upstream.
    
    Cancel idle timer in musb_platform_exit.
    
    The idle timer could trigger after clock had been disabled leading to
    kernel panic when MUSB_DEVCTL is accessed in musb_do_idle on 2.6.37.
    
    The fault below is no longer triggered on 2.6.38-rc4 (clock is disabled
    later, and only if compiled as a module, and the offending memory access
    has moved) but the timer should be cancelled nonetheless.
    
    Rebooting... musb_hdrc musb_hdrc: remove, state 4
    usb usb1: USB disconnect, address 1
    musb_hdrc musb_hdrc: USB bus 1 deregistered
    Unhandled fault: external abort on non-linefetch (0x1028) at 0xfa0ab060
    Internal error: : 1028 [#1] PREEMPT
    last sysfs file: /sys/kernel/uevent_seqnum
    Modules linked in:
    CPU: 0    Not tainted  (2.6.37+ #6)
    PC is at musb_do_idle+0x24/0x138
    LR is at musb_do_idle+0x18/0x138
    pc : [<c02377d8>]    lr : [<c02377cc>]    psr: 80000193
    sp : cf2bdd80  ip : cf2bdd80  fp : c048a20c
    r10: c048a60c  r9 : c048a40c  r8 : cf85e110
    r7 : cf2bc000  r6 : 40000113  r5 : c0489800  r4 : cf85e110
    r3 : 00000004  r2 : 00000006  r1 : fa0ab000  r0 : cf8a7000
    Flags: Nzcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
    Control: 10c5387d  Table: 8faac019  DAC: 00000015
    Process reboot (pid: 769, stack limit = 0xcf2bc2f0)
    Stack: (0xcf2bdd80 to 0xcf2be000)
    dd80: 00000103 c0489800 c02377b4 c005fa34 00000555 c0071a8c c04a3858 cf2bdda8
    dda0: 00000555 c048a00c cf2bdda8 cf2bdda8 1838beb0 00000103 00000004 cf2bc000
    ddc0: 00000001 00000001 c04896c8 0000000a 00000000 c005ac14 00000001 c003f32c
    dde0: 00000000 00000025 00000000 cf2bc000 00000002 00000001 cf2bc000 00000000
    de00: 00000001 c005ad08 cf2bc000 c002e07c c03ec039 ffffffff fa200000 c0033608
    de20: 00000001 00000000 cf852c14 cf81f200 c045b714 c045b708 cf2bc000 c04a37e8
    de40: c0033c04 cf2bc000 00000000 00000001 cf2bde68 cf2bde68 c01c3abc c004f7d8
    de60: 60000013 ffffffff c0033c04 00000000 01234567 fee1dead 00000000 c006627c
    de80: 00000001 c00662c8 28121969 c00663ec cfa38c40 cf9f6a00 cf2bded0 cf9f6a0c
    dea0: 00000000 cf92f000 00008914 c02cd284 c04a55c8 c028b398 c00715c0 becf24a8
    dec0: 30687465 00000000 00000000 00000000 00000002 1301a8c0 00000000 00000000
    dee0: 00000002 1301a8c0 00000000 00000000 c0450494 cf527920 00011f10 cf2bdf08
    df00: 00011f10 cf2bdf10 00011f10 cf2bdf18 c00f0b44 c004f7e8 cf2bdf18 cf2bdf18
    df20: 00011f10 cf2bdf30 00011f10 cf2bdf38 cf401300 cf486100 00000008 c00d2b28
    df40: 00011f10 cf401300 00200200 c00d3388 00011f10 cfb63a88 cfb63a80 c00c2f08
    df60: 00000000 00000000 cfb63a80 00000000 cf0a3480 00000006 c0033c04 cfb63a80
    df80: 00000000 c00c0104 00000003 cf0a3480 cfb63a80 00000000 00000001 00000004
    dfa0: 00000058 c0033a80 00000000 00000001 fee1dead 28121969 01234567 00000000
    dfc0: 00000000 00000001 00000004 00000058 00000001 00000001 00000000 00000001
    dfe0: 4024d200 becf2cb0 00009210 4024d218 60000010 fee1dead 00000000 00000000
    [<c02377d8>] (musb_do_idle+0x24/0x138) from [<c005fa34>] (run_timer_softirq+0x1a8/0x26)
    [<c005fa34>] (run_timer_softirq+0x1a8/0x26c) from [<c005ac14>] (__do_softirq+0x88/0x13)
    [<c005ac14>] (__do_softirq+0x88/0x138) from [<c005ad08>] (irq_exit+0x44/0x98)
    [<c005ad08>] (irq_exit+0x44/0x98) from [<c002e07c>] (asm_do_IRQ+0x7c/0xa0)
    [<c002e07c>] (asm_do_IRQ+0x7c/0xa0) from [<c0033608>] (__irq_svc+0x48/0xa8)
    Exception stack(0xcf2bde20 to 0xcf2bde68)
    de20: 00000001 00000000 cf852c14 cf81f200 c045b714 c045b708 cf2bc000 c04a37e8
    de40: c0033c04 cf2bc000 00000000 00000001 cf2bde68 cf2bde68 c01c3abc c004f7d8
    de60: 60000013 ffffffff
    [<c0033608>] (__irq_svc+0x48/0xa8) from [<c004f7d8>] (sub_preempt_count+0x0/0xb8)
    Code: ebf86030 e5940098 e594108c e5902010 (e5d13060)
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    
    ---[ end trace 3689c0d808f9bf7c ]---
    Kernel panic - not syncing: Fatal exception in interrupt
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 2227ae957ac60b70dadec05d1bb5e57cb084e131
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Fri Feb 18 23:27:23 2011 +0100

    genirq: Disable the SHIRQ_DEBUG call in request_threaded_irq for now
    
    commit 6d83f94db95cfe65d2a6359cccdf61cf087c2598 upstream.
    
    With CONFIG_SHIRQ_DEBUG=y we call a newly installed interrupt handler
    in request_threaded_irq().
    
    The original implementation (commit a304e1b8) called the handler
    _BEFORE_ it was installed, but that caused problems with handlers
    calling disable_irq_nosync(). See commit 377bf1e4.
    
    It's braindead in the first place to call disable_irq_nosync in shared
    handlers, but ....
    
    Moving this call after we installed the handler looks innocent, but it
    is very subtle broken on SMP.
    
    Interrupt handlers rely on the fact, that the irq core prevents
    reentrancy.
    
    Now this debug call violates that promise because we run the handler
    w/o the IRQ_INPROGRESS protection - which we cannot apply here because
    that would result in a possibly forever masked interrupt line.
    
    A concurrent real hardware interrupt on a different CPU results in
    handler reentrancy and can lead to complete wreckage, which was
    unfortunately observed in reality and took a fricking long time to
    debug.
    
    Leave the code here for now. We want this debug feature, but that's
    not easy to fix. We really should get rid of those
    disable_irq_nosync() abusers and remove that function completely.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Anton Vorontsov <avorontsov@ru.mvista.com>
    Cc: David Woodhouse <dwmw2@infradead.org>
    Cc: Arjan van de Ven <arjan@infradead.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

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

    platform: x86: tc1100-wmi: world-writable sysfs wireless and jogdial files
    
    commit 8a6a142c1286797978e4db266d22875a5f424897 upstream.
    
    Don't allow everybody to change WMI settings.
    
    Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
    Signed-off-by: Matthew Garrett <mjg@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 1f6b585a2e843e9ed52f8d5861db3247bdf8b555
Author: Vasiliy Kulikov <segoon@openwall.com>
Date:   Fri Feb 4 15:23:59 2011 +0300

    platform: x86: asus_acpi: world-writable procfs files
    
    commit 8040835760adf0ef66876c063d47f79f015fb55d upstream.
    
    Don't allow everybody to change ACPI settings.  The comment says that it
    is done deliberatelly, however, the comment before disp_proc_write()
    says that at least one of these setting is experimental.
    
    Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
    Signed-off-by: Matthew Garrett <mjg@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 2e5582d2831f77f20862dc0b66b1f0cbb1a03883
Author: Vasiliy Kulikov <segoon@openwall.com>
Date:   Fri Feb 4 15:23:56 2011 +0300

    platform: x86: acer-wmi: world-writable sysfs threeg file
    
    commit b80b168f918bba4b847e884492415546b340e19d upstream.
    
    Don't allow everybody to write to hardware registers.
    
    Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
    Signed-off-by: Matthew Garrett <mjg@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit de009baa36ee44f5218220a1a8b41153b68a4cb5
Author: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
Date:   Tue Jan 11 12:43:42 2011 -0600

    eCryptfs: Copy up lower inode attrs in getattr
    
    commit 55f9cf6bbaa682958a7dd2755f883b768270c3ce upstream.
    
    The lower filesystem may do some type of inode revalidation during a
    getattr call. eCryptfs should take advantage of that by copying the
    lower inode attributes to the eCryptfs inode after a call to
    vfs_getattr() on the lower inode.
    
    I originally wrote this fix while working on eCryptfs on nfsv3 support,
    but discovered it also fixed an eCryptfs on ext4 nanosecond timestamp
    bug that was reported.
    
    https://bugs.launchpad.net/bugs/613873
    
    Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit fe5d03ded1703844bb0d05219a4de9d071b7046b
Author: Matthew Garrett <mjg@redhat.com>
Date:   Wed Feb 9 16:39:40 2011 -0500

    acer-wmi: Fix capitalisation of GUID
    
    commit bbb706079abe955a9e3f208f541de97d99449236 upstream.
    
    6AF4F258-B401-42fd-BE91-3D4AC2D7C0D3 needs to be
    6AF4F258-B401-42FD-BE91-3D4AC2D7C0D3 to match the hardware alias.
    
    Signed-off-by: Matthew Garrett <mjg@redhat.com>
    Acked-by: Carlos Corbacho <carlos@strangeworlds.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 7d13ddf6579f7a201201765315cf1a969226dde7
Author: Russell King <rmk+kernel@arm.linux.org.uk>
Date:   Sun Feb 20 12:22:52 2011 +0000

    ARM: Ensure predictable endian state on signal handler entry
    
    commit 53399053eb505cf541b2405bd9d9bca5ecfb96fb upstream.
    
    Ensure a predictable endian state when entering signal handlers.  This
    avoids programs which use SETEND to momentarily switch their endian
    state from having their signal handlers entered with an unpredictable
    endian state.
    
    Acked-by: Dave Martin <dave.martin@linaro.org>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 6f1b1e1384b23cfab30c2bc02a8f94927274c10d
Author: Geert Uytterhoeven <geert@linux-m68k.org>
Date:   Sun Jan 16 10:09:13 2011 -0300

    radio-aimslab.c needs #include <linux/delay.h>
    
    commit 2400982a2e8a8e4e95f0a0e1517bbe63cc88038f upstream.
    
    Commit e3c92215198cb6aa00ad38db2780faa6b72e0a3f ("[media] radio-aimslab.c: Fix
    gcc 4.5+ bug") removed the include, but introduced new callers of msleep():
    
    | drivers/media/radio/radio-aimslab.c: In function ‘rt_decvol’:
    | drivers/media/radio/radio-aimslab.c:76: error: implicit declaration of function ‘msleep’
    
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: dann frazier <dannf@debian.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 2d1db98fe0e20e7e419451e7eef36289cbdc4c68
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Feb 14 22:45:59 2011 +0100

    ALSA: caiaq - Fix possible string-buffer overflow
    
    commit eaae55dac6b64c0616046436b294e69fc5311581 upstream.
    
    Use strlcpy() to assure not to overflow the string array sizes by
    too long USB device name string.
    
    Reported-by: Rafa <rafa@mwrinfosecurity.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 1e1e015ade892234b1b0e487521af07f46117aa5
Author: David Henningsson <david.henningsson@canonical.com>
Date:   Mon Feb 14 20:27:44 2011 +0100

    ALSA: HDA: Add position_fix quirk for an Asus device
    
    commit b540afc2b3d6e4cd1d1f137ef6d9e9c78d67fecd upstream.
    
    The bug reporter claims that position_fix=1 is needed for his
    microphone to work. The controller PCI vendor-id is [1002:4383] (rev 40).
    
    Reported-by: Kjell L.
    BugLink: http://bugs.launchpad.net/bugs/718402
    Signed-off-by: David Henningsson <david.henningsson@canonical.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 7b395dfa721d590bcafaf3f022f3c3a96e9fc218
Author: Timo Warns <warns@pre-sense.de>
Date:   Thu Feb 17 22:27:40 2011 +0100

    fs/partitions: Validate map_count in Mac partition tables
    
    commit fa7ea87a057958a8b7926c1a60a3ca6d696328ed upstream.
    
    Validate number of blocks in map and remove redundant variable.
    
    Signed-off-by: Timo Warns <warns@pre-sense.de>
    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 f153f5f88f2a1e5ad38a328b144bd3a5b1f5dca3
Author: Stanislaw Gruszka <stf_xl@pop3.wp.pl>
Date:   Sat Feb 12 21:06:51 2011 +0100

    PM / Hibernate: Return error code when alloc_image_page() fails
    
    commit 2e725a065b0153f0c449318da1923a120477633d upstream.
    
    Currently we return 0 in swsusp_alloc() when alloc_image_page() fails.
    Fix that.  Also remove unneeded "error" variable since the only
    useful value of error is -ENOMEM.
    
    [rjw: Fixed up the changelog and changed subject.]
    
    Signed-off-by: Stanislaw Gruszka <stf_xl@wp.pl>
    Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 6736d3bbb4c33f0e99cfdbfb74cbefeda7048c17
Author: Martin Schwidefsky <schwidefsky@de.ibm.com>
Date:   Tue Feb 15 09:43:32 2011 +0100

    s390: remove task_show_regs
    
    commit 261cd298a8c363d7985e3482946edb4bfedacf98 upstream.
    
    task_show_regs used to be a debugging aid in the early bringup days
    of Linux on s390. /proc/<pid>/status is a world readable file, it
    is not a good idea to show the registers of a process. The only
    correct fix is to remove task_show_regs.
    
    Reported-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.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 06ba304f64519b48c7438e9ab48c74e1f0b772b0
Author: NeilBrown <neilb@suse.de>
Date:   Wed Feb 16 13:08:35 2011 +1100

    nfsd: correctly handle return value from nfsd_map_name_to_*
    
    commit 47c85291d3dd1a51501555000b90f8e281a0458e upstream.
    
    These functions return an nfs status, not a host_err.  So don't
    try to convert  before returning.
    
    This is a regression introduced by
    3c726023402a2f3b28f49b9d90ebf9e71151157d; I fixed up two of the callers,
    but missed these two.
    
    Reported-by: Herbert Poetzl <herbert@13thfloor.at>
    Signed-off-by: NeilBrown <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 e7063b88e6c51d05ad29dbdf9e610451ee6ba559
Author: Brian King <brking@linux.vnet.ibm.com>
Date:   Fri Feb 19 10:08:31 2010 -0600

    scsi_dh_alua: Add IBM Power Virtual SCSI ALUA device to dev list
    
    commit 22963a37b3437a25812cc856afa5a84ad4a3f541 upstream.
    
    Adds IBM Power Virtual SCSI ALUA devices to the ALUA device handler.
    
    Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
    Signed-off-by: James Bottomley <James.Bottomley@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: maximilian attems <max@stro.at>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 5b0a60bac224665da075691ee6a46bad0581f3cc
Author: Mike Christie <michaelc@cs.wisc.edu>
Date:   Thu Feb 18 17:32:03 2010 -0600

    scsi_dh_alua: add netapp to dev list
    
    commit cd4a8814d44672bd2c8f04a472121bfbe193809c upstream.
    
    Newer Netapp target software supports ALUA, so
    this patch adds them to the scsi_dev_alua dev list.
    
    Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
    Signed-off-by: James Bottomley <James.Bottomley@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: maximilian attems <max@stro.at>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit d5ea92235e005b6715ad5acc17f8517134f9571f
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Wed Sep 29 22:16:36 2010 +0200

    isdn: hisax: Replace the bogus access to irq stats
    
    commit 40f08a724fcc21285cf3a75aec957aef908605c6 upstream.
    
    Abusing irq stats in a driver for counting interrupts is a horrible
    idea and not safe with shared interrupts. Replace it by a local
    interrupt counter.
    
    Noticed by the attempt to remove the irq stats export.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reviewed-by: Ingo Molnar <mingo@elte.hu>
    Cc: maximilian attems <max@stro.at>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit a453138cc592112d08b51ba97c77c8de60c8be91
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date:   Wed Aug 11 13:10:16 2010 -0400

    NFS: fix the return value of nfs_file_fsync()
    
    commit 0702099bd86c33c2dcdbd3963433a61f3f503901 upstream.
    
    By the commit af7fa16 2010-08-03 NFS: Fix up the fsync code
    close(2) became returning the non-zero value even if it went well.
    nfs_file_fsync() should return 0 when "status" is positive.
    
    Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit a633f63ce3ccfae3e15d092a25b19e39dc4b33c4
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Mon Feb 7 13:36:16 2011 +0000

    CRED: Fix memory and refcount leaks upon security_prepare_creds() failure
    
    commit fb2b2a1d37f80cc818fd4487b510f4e11816e5e1 upstream.
    
    In prepare_kernel_cred() since 2.6.29, put_cred(new) is called without
    assigning new->usage when security_prepare_creds() returned an error.  As a
    result, memory for new and refcount for new->{user,group_info,tgcred} are
    leaked because put_cred(new) won't call __put_cred() unless old->usage == 1.
    
    Fix these leaks by assigning new->usage (and new->subscribers which was added
    in 2.6.32) before calling security_prepare_creds().
    
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Signed-off-by: David Howells <dhowells@redhat.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 1e1d5bf10f0ee5550bcbfd14dd944a526a68a93e
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Mon Feb 7 13:36:10 2011 +0000

    CRED: Fix BUG() upon security_cred_alloc_blank() failure
    
    commit 2edeaa34a6e3f2c43b667f6c4f7b27944b811695 upstream.
    
    In cred_alloc_blank() since 2.6.32, abort_creds(new) is called with
    new->security == NULL and new->magic == 0 when security_cred_alloc_blank()
    returns an error.  As a result, BUG() will be triggered if SELinux is enabled
    or CONFIG_DEBUG_CREDENTIALS=y.
    
    If CONFIG_DEBUG_CREDENTIALS=y, BUG() is called from __invalid_creds() because
    cred->magic == 0.  Failing that, BUG() is called from selinux_cred_free()
    because selinux_cred_free() is not expecting cred->security == NULL.  This does
    not affect smack_cred_free(), tomoyo_cred_free() or apparmor_cred_free().
    
    Fix these bugs by
    
    (1) Set new->magic before calling security_cred_alloc_blank().
    
    (2) Handle null cred->security in creds_are_invalid() and selinux_cred_free().
    
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Signed-off-by: David Howells <dhowells@redhat.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 693f1255cb838ea0504c0faff7374997cb6c8908
Author: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Date:   Fri Feb 4 18:13:24 2011 +0000

    CRED: Fix kernel panic upon security_file_alloc() failure.
    
    commit 78d2978874e4e10e97dfd4fd79db45bdc0748550 upstream.
    
    In get_empty_filp() since 2.6.29, file_free(f) is called with f->f_cred == NULL
    when security_file_alloc() returned an error.  As a result, kernel will panic()
    due to put_cred(NULL) call within RCU callback.
    
    Fix this bug by assigning f->f_cred before calling security_file_alloc().
    
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Signed-off-by: David Howells <dhowells@redhat.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 ed887b2eed606d4267e950161d40b9d36154ff30
Author: Ben Hutchings <bhutchings@solarflare.com>
Date:   Mon Feb 7 19:20:55 2011 +0000

    bonding/vlan: Avoid mangled NAs on slaves without VLAN tag insertion
    
    This is related to commit f88a4a9b65a6f3422b81be995535d0e69df11bb8
    upstream, but the bug cannot be properly fixed without the other
    changes to VLAN tagging in 2.6.37.
    
    bond_na_send() attempts to insert a VLAN tag in between building and
    sending packets of the respective formats.  If the slave does not
    implement hardware VLAN tag insertion then vlan_put_tag() will mangle
    the network-layer header because the Ethernet header is not present at
    this point (unlike in bond_arp_send()).
    
    Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
    Acked-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 515884e98dc4f1c99387000d420394c3bc47c0d7
Author: Dan Carpenter <error27@gmail.com>
Date:   Fri Jan 7 16:41:54 2011 -0300

    av7110: check for negative array offset
    
    commit cb26a24ee9706473f31d34cc259f4dcf45cd0644 upstream.
    
    info->num comes from the user.  It's type int.  If the user passes
    in a negative value that would cause memory corruption.
    
    Signed-off-by: Dan Carpenter <error27@gmail.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 ac9a0f1a28f560f2c65ee6e2ae5b750fac9f14cb
Author: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Date:   Mon Oct 25 16:53:46 2010 -0700

    x86/pvclock: Zero last_value on resume
    
    commit e7a3481c0246c8e45e79c629efd63b168e91fcda upstream.
    
    If the guest domain has been suspend/resumed or migrated, then the
    system clock backing the pvclock clocksource may revert to a smaller
    value (ie, can be non-monotonic across the migration/save-restore).
    
    Make sure we zero last_value in that case so that the domain
    continues to see clock updates.
    
    Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit ce7f2cfe2de74e8bc53a04c63fd61696b89ffe3e
Author: dann frazier <dann.frazier@canonical.com>
Date:   Thu Nov 18 15:03:09 2010 -0700

    ocfs2_connection_find() returns pointer to bad structure
    
    commit 226291aa4641fa13cb5dec3bcb3379faa83009e2 upstream.
    
    If ocfs2_live_connection_list is empty, ocfs2_connection_find() will return
    a pointer to the LIST_HEAD, cast as a ocfs2_live_connection. This can cause
    an oops when ocfs2_control_send_down() dereferences c->oc_conn:
    
    Call Trace:
      [<ffffffffa00c2a3c>] ocfs2_control_message+0x28c/0x2b0 [ocfs2_stack_user]
      [<ffffffffa00c2a95>] ocfs2_control_write+0x35/0xb0 [ocfs2_stack_user]
      [<ffffffff81143a88>] vfs_write+0xb8/0x1a0
      [<ffffffff8155cc13>] ? do_page_fault+0x153/0x3b0
      [<ffffffff811442f1>] sys_write+0x51/0x80
      [<ffffffff810121b2>] system_call_fastpath+0x16/0x1b
    
    Fix by explicitly returning NULL if no match is found.
    
    Signed-off-by: dann frazier <dann.frazier@canonical.com>
    Signed-off-by: Joel Becker <joel.becker@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit a9ba6fef50d463c4d089c49df24678a6df1d80c9
Author: Dan Rosenberg <drosenberg@vsecurity.com>
Date:   Fri Oct 1 11:51:47 2010 +0000

    sctp: Fix out-of-bounds reading in sctp_asoc_get_hmac()
    
    commit 51e97a12bef19b7e43199fc153cf9bd5f2140362 upstream.
    
    The sctp_asoc_get_hmac() function iterates through a peer's hmac_ids
    array and attempts to ensure that only a supported hmac entry is
    returned.  The current code fails to do this properly - if the last id
    in the array is out of range (greater than SCTP_AUTH_HMAC_ID_MAX), the
    id integer remains set after exiting the loop, and the address of an
    out-of-bounds entry will be returned and subsequently used in the parent
    function, causing potentially ugly memory corruption.  This patch resets
    the id integer to 0 on encountering an invalid id so that NULL will be
    returned after finishing the loop if no valid ids are found.
    
    Signed-off-by: Dan Rosenberg <drosenberg@vsecurity.com>
    Acked-by: Vlad Yasevich <vladislav.yasevich@hp.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 44c1a1c019045500afd9bb90170ba10d1f5128d7
Author: Kashyap, Desai <kashyap.desai@lsi.com>
Date:   Thu Feb 10 11:53:44 2011 +0530

    mptfusion: Fix Incorrect return value in mptscsih_dev_reset
    
    commit bcfe42e98047f1935c5571c8ea77beb2d43ec19d upstream.
    
    There's a branch at the end of this function that
    is supposed to normalize the return value with what
    the mid-layer expects. In this one case, we get it wrong.
    
    Also increase the verbosity of the INFO level printk
    at the end of mptscsih_abort to include the actual return value
    and the scmd->serial_number. The reason being success
    or failure is actually determined by the state of
    the internal tag list when a TMF is issued, and not the
    return value of the TMF cmd. The serial_number is also
    used in this decision, thus it's useful to know for debugging
    purposes.
    
    Reported-by: Peter M. Petrakis <peter.petrakis@canonical.com>
    Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
    Signed-off-by: James Bottomley <James.Bottomley@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 194ab78ef659f30a0a3d1dc8542a6f0f976b76a5
Author: Kashyap, Desai <kashyap.desai@lsi.com>
Date:   Thu Feb 10 11:52:21 2011 +0530

    mptfusion: mptctl_release is required in mptctl.c
    
    commit 84857c8bf83e8aa87afc57d2956ba01f11d82386 upstream.
    
    Added missing release callback for file_operations mptctl_fops.
    Without release callback there will be never freed. It remains on
    mptctl's eent list even after the file is closed and released.
    
    Relavent RHEL bugzilla is 660871
    
    Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
    Signed-off-by: James Bottomley <James.Bottomley@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 6c1ab83daaff423f23209f981936473364bda02f
Author: Konstantin Khorenko <khorenko@parallels.com>
Date:   Tue Feb 1 17:16:29 2011 +0300

    NFSD: memory corruption due to writing beyond the stat array
    
    commit 3aa6e0aa8ab3e64bbfba092c64d42fd1d006b124 upstream.
    
    If nfsd fails to find an exported via NFS file in the readahead cache, it
    should increment corresponding nfsdstats counter (ra_depth[10]), but due to a
    bug it may instead write to ra_depth[11], corrupting the following field.
    
    In a kernel with NFSDv4 compiled in the corruption takes the form of an
    increment of a counter of the number of NFSv4 operation 0's received; since
    there is no operation 0, this is harmless.
    
    In a kernel with NFSDv4 disabled it corrupts whatever happens to be in the
    memory beyond nfsdstats.
    
    Signed-off-by: Konstantin Khorenko <khorenko@openvz.org>
    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 cec5d24f1ce6c52f5d2ed93b845e0de40127c88c
Author: Namhyung Kim <namhyung@gmail.com>
Date:   Fri Feb 11 07:07:01 2011 +0100

    kernel/user.c: add lock release annotation on free_user()
    
    commit 571428be550fbe37160596995e96ad398873fcbd upstream.
    
    free_user() releases uidhash_lock but was missing annotation.  Add it.
    This removes following sparse warnings:
    
     include/linux/spinlock.h:339:9: warning: context imbalance in 'free_user' - unexpected unlock
     kernel/user.c:120:6: warning: context imbalance in 'free_uid' - wrong count at exit
    
    Signed-off-by: Namhyung Kim <namhyung@gmail.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Dhaval Giani <dhaval.giani@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 118de48b5183dbb3d6281302528ad1a93624854f
Author: Suresh Siddha <suresh.b.siddha@intel.com>
Date:   Thu Feb 10 10:23:28 2011 +0100

    sched: Use group weight, idle cpu metrics to fix imbalances during idle
    
    Commit: aae6d3ddd8b90f5b2c8d79a2b914d1706d124193 upstream
    
    Currently we consider a sched domain to be well balanced when the imbalance
    is less than the domain's imablance_pct. As the number of cores and threads
    are increasing, current values of imbalance_pct (for example 25% for a
    NUMA domain) are not enough to detect imbalances like:
    
    a) On a WSM-EP system (two sockets, each having 6 cores and 12 logical threads),
    24 cpu-hogging tasks get scheduled as 13 on one socket and 11 on another
    socket. Leading to an idle HT cpu.
    
    b) On a hypothetial 2 socket NHM-EX system (each socket having 8 cores and
    16 logical threads), 16 cpu-hogging tasks can get scheduled as 9 on one
    socket and 7 on another socket. Leaving one core in a socket idle
    whereas in another socket we have a core having both its HT siblings busy.
    
    While this issue can be fixed by decreasing the domain's imbalance_pct
    (by making it a function of number of logical cpus in the domain), it
    can potentially cause more task migrations across sched groups in an
    overloaded case.
    
    Fix this by using imbalance_pct only during newly_idle and busy
    load balancing. And during idle load balancing, check if there
    is an imbalance in number of idle cpu's across the busiest and this
    sched_group or if the busiest group has more tasks than its weight that
    the idle cpu in this_group can pull.
    
    Reported-by: Nikhil Rao <ncrao@google.com>
    Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1284760952.2676.11.camel@sbsiddha-MOBL3.sc.intel.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 43c34b42474e03b54e11f6f17d87ce1160a83bc0
Author: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date:   Thu Feb 10 10:23:28 2011 +0100

    sched, cgroup: Fixup broken cgroup movement
    
    Commit: b2b5ce022acf5e9f52f7b78c5579994fdde191d4 upstream
    
    Dima noticed that we fail to correct the ->vruntime of sleeping tasks
    when we move them between cgroups.
    
    Reported-by: Dima Zavin <dima@android.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Tested-by: Mike Galbraith <efault@gmx.de>
    LKML-Reference: <1287150604.29097.1513.camel@twins>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 0ca4534301c1bd86d00e3ba6beeef045a606e0c5
Author: Ingo Molnar <mingo@elte.hu>
Date:   Thu Feb 10 10:23:28 2011 +0100

    sched: Export account_system_vtime()
    
    Commit: b7dadc38797584f6203386da1947ed5edf516646 upstream
    
    KVM uses it for example:
    
     ERROR: "account_system_vtime" [arch/x86/kvm/kvm.ko] undefined!
    
    Cc: Venkatesh Pallipadi <venki@google.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    LKML-Reference: <1286237003-12406-3-git-send-email-venki@google.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 70f43fbf43440db130a7e3daeb276e29ed9a8f80
Author: Venkatesh Pallipadi <venki@google.com>
Date:   Thu Feb 10 10:23:28 2011 +0100

    sched: Call tick_check_idle before __irq_enter
    
    Commit: d267f87fb8179c6dba03d08b91952e81bc3723c7 upstream
    
    When CPU is idle and on first interrupt, irq_enter calls tick_check_idle()
    to notify interruption from idle. But, there is a problem if this call
    is done after __irq_enter, as all routines in __irq_enter may find
    stale time due to yet to be done tick_check_idle.
    
    Specifically, trace calls in __irq_enter when they use global clock and also
    account_system_vtime change in this patch as it wants to use sched_clock_cpu()
    to do proper irq timing.
    
    But, tick_check_idle was moved after __irq_enter intentionally to
    prevent problem of unneeded ksoftirqd wakeups by the commit ee5f80a:
    
        irq: call __irq_enter() before calling the tick_idle_check
        Impact: avoid spurious ksoftirqd wakeups
    
    Moving tick_check_idle() before __irq_enter and wrapping it with
    local_bh_enable/disable would solve both the problems.
    
    Fixed-by: Yong Zhang <yong.zhang0@gmail.com>
    Signed-off-by: Venkatesh Pallipadi <venki@google.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1286237003-12406-9-git-send-email-venki@google.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit fd72c5feeb61857dbcc4fac1c98157925fbb085e
Author: Venkatesh Pallipadi <venki@google.com>
Date:   Thu Feb 10 10:23:27 2011 +0100

    sched: Remove irq time from available CPU power
    
    Commit: aa483808516ca5cacfa0e5849691f64fec25828e upstream
    
    The idea was suggested by Peter Zijlstra here:
    
      http://marc.info/?l=linux-kernel&m=127476934517534&w=2
    
    irq time is technically not available to the tasks running on the CPU.
    This patch removes irq time from CPU power piggybacking on
    sched_rt_avg_update().
    
    Tested this by keeping CPU X busy with a network intensive task having 75%
    oa a single CPU irq processing (hard+soft) on a 4-way system. And start seven
    cycle soakers on the system. Without this change, there will be two tasks on
    each CPU. With this change, there is a single task on irq busy CPU X and
    remaining 7 tasks are spread around among other 3 CPUs.
    
    Signed-off-by: Venkatesh Pallipadi <venki@google.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1286237003-12406-8-git-send-email-venki@google.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit a3fe22ee824895aafdc1b788e19c081a2e6dd9da
Author: Venkatesh Pallipadi <venki@google.com>
Date:   Thu Feb 10 10:23:27 2011 +0100

    sched: Do not account irq time to current task
    
    Commit: 305e6835e05513406fa12820e40e4a8ecb63743c upstream
    
    Scheduler accounts both softirq and interrupt processing times to the
    currently running task. This means, if the interrupt processing was
    for some other task in the system, then the current task ends up being
    penalized as it gets shorter runtime than otherwise.
    
    Change sched task accounting to acoount only actual task time from
    currently running task. Now update_curr(), modifies the delta_exec to
    depend on rq->clock_task.
    
    Note that this change only handles CONFIG_IRQ_TIME_ACCOUNTING case. We can
    extend this to CONFIG_VIRT_CPU_ACCOUNTING with minimal effort. But, thats
    for later.
    
    This change will impact scheduling behavior in interrupt heavy conditions.
    
    Tested on a 4-way system with eth0 handled by CPU 2 and a network heavy
    task (nc) running on CPU 3 (and no RSS/RFS). With that I have CPU 2
    spending 75%+ of its time in irq processing. CPU 3 spending around 35%
    time running nc task.
    
    Now, if I run another CPU intensive task on CPU 2, without this change
    /proc/<pid>/schedstat shows 100% of time accounted to this task. With this
    change, it rightly shows less than 25% accounted to this task as remaining
    time is actually spent on irq processing.
    
    Signed-off-by: Venkatesh Pallipadi <venki@google.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1286237003-12406-7-git-send-email-venki@google.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 06dd801446a3e212dc0a2eb6bb03d9ec7438bca1
Author: Venkatesh Pallipadi <venki@google.com>
Date:   Thu Feb 10 10:23:27 2011 +0100

    x86: Add IRQ_TIME_ACCOUNTING
    
    Commit: e82b8e4ea4f3dffe6e7939f90e78da675fcc450e upstream
    
    This patch adds IRQ_TIME_ACCOUNTING option on x86 and runtime enables it
    when TSC is enabled.
    
    This change just enables fine grained irq time accounting, isn't used yet.
    Following patches use it for different purposes.
    
    Signed-off-by: Venkatesh Pallipadi <venki@google.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1286237003-12406-6-git-send-email-venki@google.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 445352de175186a234c6ce1b8e000619ce1d2d1c
Author: Venkatesh Pallipadi <venki@google.com>
Date:   Thu Feb 10 10:23:27 2011 +0100

    sched: Add IRQ_TIME_ACCOUNTING, finer accounting of irq time
    
    Commit: b52bfee445d315549d41eacf2fa7c156e7d153d5 upstream
    
    s390/powerpc/ia64 have support for CONFIG_VIRT_CPU_ACCOUNTING which does
    the fine granularity accounting of user, system, hardirq, softirq times.
    Adding that option on archs like x86 will be challenging however, given the
    state of TSC reliability on various platforms and also the overhead it will
    add in syscall entry exit.
    
    Instead, add a lighter variant that only does finer accounting of
    hardirq and softirq times, providing precise irq times (instead of timer tick
    based samples). This accounting is added with a new config option
    CONFIG_IRQ_TIME_ACCOUNTING so that there won't be any overhead for users not
    interested in paying the perf penalty.
    
    This accounting is based on sched_clock, with the code being generic.
    So, other archs may find it useful as well.
    
    This patch just adds the core logic and does not enable this logic yet.
    
    Signed-off-by: Venkatesh Pallipadi <venki@google.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1286237003-12406-5-git-send-email-venki@google.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 70501ead1f5f8760d9ec1c3fd7f69cfe62c5f35e
Author: Venkatesh Pallipadi <venki@google.com>
Date:   Thu Feb 10 10:23:27 2011 +0100

    sched: Add a PF flag for ksoftirqd identification
    
    Commit: 6cdd5199daf0cb7b0fcc8dca941af08492612887 upstream
    
    To account softirq time cleanly in scheduler, we need to identify whether
    softirq is invoked in ksoftirqd context or softirq at hardirq tail context.
    Add PF_KSOFTIRQD for that purpose.
    
    As all PF flag bits are currently taken, create space by moving one of the
    infrequently used bits (PF_THREAD_BOUND) down in task_struct to be along
    with some other state fields.
    
    Signed-off-by: Venkatesh Pallipadi <venki@google.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1286237003-12406-4-git-send-email-venki@google.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit aa42a9b327e862d49d3695fe88b6833d18ecd285
Author: Dave Young <hidave.darkstar@gmail.com>
Date:   Thu Feb 10 10:23:26 2011 +0100

    sched: Remove unused PF_ALIGNWARN flag
    
    Commit: 637bbdc5b83615ef9f45f50399d1c7f27473c713 upstream
    
    PF_ALIGNWARN is not implemented and it is for 486 as the
    comment.
    
    It is not likely someone will implement this flag feature.
    So here remove this flag and leave the valuable 0x00000001 for
    future use.
    
    Signed-off-by: Dave Young <hidave.darkstar@gmail.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    LKML-Reference: <20100913121903.GB22238@darkstar>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit bc03fafaa1d9cd28c4981cf9eeffb60841deeb76
Author: Venkatesh Pallipadi <venki@google.com>
Date:   Thu Feb 10 10:23:26 2011 +0100

    sched: Consolidate account_system_vtime extern declaration
    
    Commit: e1e10a265d28273ab8c70be19d43dcbdeead6c5a upstream
    
    Just a minor cleanup patch that makes things easier to the following patches.
    No functionality change in this patch.
    
    Signed-off-by: Venkatesh Pallipadi <venki@google.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1286237003-12406-3-git-send-email-venki@google.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 4032f13ae3acede13531d4cc882aa55f3509c4a9
Author: Venkatesh Pallipadi <venki@google.com>
Date:   Thu Feb 10 10:23:26 2011 +0100

    sched: Fix softirq time accounting
    
    Commit: 75e1056f5c57050415b64cb761a3acc35d91f013 upstream
    
    Peter Zijlstra found a bug in the way softirq time is accounted in
    VIRT_CPU_ACCOUNTING on this thread:
    
       http://lkml.indiana.edu/hypermail//linux/kernel/1009.2/01366.html
    
    The problem is, softirq processing uses local_bh_disable internally. There
    is no way, later in the flow, to differentiate between whether softirq is
    being processed or is it just that bh has been disabled. So, a hardirq when bh
    is disabled results in time being wrongly accounted as softirq.
    
    Looking at the code a bit more, the problem exists in !VIRT_CPU_ACCOUNTING
    as well. As account_system_time() in normal tick based accouting also uses
    softirq_count, which will be set even when not in softirq with bh disabled.
    
    Peter also suggested solution of using 2*SOFTIRQ_OFFSET as irq count
    for local_bh_{disable,enable} and using just SOFTIRQ_OFFSET while softirq
    processing. The patch below does that and adds API in_serving_softirq() which
    returns whether we are currently processing softirq or not.
    
    Also changes one of the usages of softirq_count in net/sched/cls_cgroup.c
    to in_serving_softirq.
    
    Looks like many usages of in_softirq really want in_serving_softirq. Those
    changes can be made individually on a case by case basis.
    
    Signed-off-by: Venkatesh Pallipadi <venki@google.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1286237003-12406-2-git-send-email-venki@google.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 3af2f86eee3c8892a9feb5a7866c2cd94e7678b4
Author: Nikhil Rao <ncrao@google.com>
Date:   Thu Feb 10 10:23:26 2011 +0100

    sched: Drop group_capacity to 1 only if local group has extra capacity
    
    Commit: 75dd321d79d495a0ee579e6249ebc38ddbb2667f upstream
    
    When SD_PREFER_SIBLING is set on a sched domain, drop group_capacity to 1
    only if the local group has extra capacity. The extra check prevents the case
    where you always pull from the heaviest group when it is already under-utilized
    (possible with a large weight task outweighs the tasks on the system).
    
    For example, consider a 16-cpu quad-core quad-socket machine with MC and NUMA
    scheduling domains. Let's say we spawn 15 nice0 tasks and one nice-15 task,
    and each task is running on one core. In this case, we observe the following
    events when balancing at the NUMA domain:
    
    - find_busiest_group() will always pick the sched group containing the niced
      task to be the busiest group.
    - find_busiest_queue() will then always pick one of the cpus running the
      nice0 task (never picks the cpu with the nice -15 task since
      weighted_cpuload > imbalance).
    - The load balancer fails to migrate the task since it is the running task
      and increments sd->nr_balance_failed.
    - It repeats the above steps a few more times until sd->nr_balance_failed > 5,
      at which point it kicks off the active load balancer, wakes up the migration
      thread and kicks the nice 0 task off the cpu.
    
    The load balancer doesn't stop until we kick out all nice 0 tasks from
    the sched group, leaving you with 3 idle cpus and one cpu running the
    nice -15 task.
    
    When balancing at the NUMA domain, we drop sgs.group_capacity to 1 if the child
    domain (in this case MC) has SD_PREFER_SIBLING set.  Subsequent load checks are
    not relevant because the niced task has a very large weight.
    
    In this patch, we add an extra condition to the "if(prefer_sibling)" check in
    update_sd_lb_stats(). We drop the capacity of a group only if the local group
    has extra capacity, ie. nr_running < group_capacity. This patch preserves the
    original intent of the prefer_siblings check (to spread tasks across the system
    in low utilization scenarios) and fixes the case above.
    
    It helps in the following ways:
    - In low utilization cases (where nr_tasks << nr_cpus), we still drop
      group_capacity down to 1 if we prefer siblings.
    - On very busy systems (where nr_tasks >> nr_cpus), sgs.nr_running will most
      likely be > sgs.group_capacity.
    - When balancing large weight tasks, if the local group does not have extra
      capacity, we do not pick the group with the niced task as the busiest group.
      This prevents failed balances, active migration and the under-utilization
      described above.
    
    Signed-off-by: Nikhil Rao <ncrao@google.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1287173550-30365-5-git-send-email-ncrao@google.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit ea529386cb43daded114d0b8804060e32b2c3e9d
Author: Nikhil Rao <ncrao@google.com>
Date:   Thu Feb 10 10:23:25 2011 +0100

    sched: Force balancing on newidle balance if local group has capacity
    
    Commit: fab476228ba37907ad75216d0fd9732ada9c119e upstream
    
    This patch forces a load balance on a newly idle cpu when the local group has
    extra capacity and the busiest group does not have any. It improves system
    utilization when balancing tasks with a large weight differential.
    
    Under certain situations, such as a niced down task (i.e. nice = -15) in the
    presence of nr_cpus NICE0 tasks, the niced task lands on a sched group and
    kicks away other tasks because of its large weight. This leads to sub-optimal
    utilization of the machine. Even though the sched group has capacity, it does
    not pull tasks because sds.this_load >> sds.max_load, and f_b_g() returns NULL.
    
    With this patch, if the local group has extra capacity, we shortcut the checks
    in f_b_g() and try to pull a task over. A sched group has extra capacity if the
    group capacity is greater than the number of running tasks in that group.
    
    Thanks to Mike Galbraith for discussions leading to this patch and for the
    insight to reuse SD_NEWIDLE_BALANCE.
    
    Signed-off-by: Nikhil Rao <ncrao@google.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1287173550-30365-4-git-send-email-ncrao@google.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 56cb45ba8f738f979621b4f91b21908b4226bbe6
Author: Nikhil Rao <ncrao@google.com>
Date:   Thu Feb 10 10:23:25 2011 +0100

    sched: Set group_imb only a task can be pulled from the busiest cpu
    
    Commit: 2582f0eba54066b5e98ff2b27ef0cfa833b59f54 upstream
    
    When cycling through sched groups to determine the busiest group, set
    group_imb only if the busiest cpu has more than 1 runnable task. This patch
    fixes the case where two cpus in a group have one runnable task each, but there
    is a large weight differential between these two tasks. The load balancer is
    unable to migrate any task from this group, and hence do not consider this
    group to be imbalanced.
    
    Signed-off-by: Nikhil Rao <ncrao@google.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1286996978-7007-3-git-send-email-ncrao@google.com>
    [ small code readability edits ]
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 1f8e01cc3447bb1c18014be7de43e1fef344e0c1
Author: Nikhil Rao <ncrao@google.com>
Date:   Thu Feb 10 10:23:25 2011 +0100

    sched: Do not consider SCHED_IDLE tasks to be cache hot
    
    Commit: ef8002f6848236de5adc613063ebeabddea8a6fb upstream
    
    This patch adds a check in task_hot to return if the task has SCHED_IDLE
    policy. SCHED_IDLE tasks have very low weight, and when run with regular
    workloads, are typically scheduled many milliseconds apart. There is no
    need to consider these tasks hot for load balancing.
    
    Signed-off-by: Nikhil Rao <ncrao@google.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1287173550-30365-2-git-send-email-ncrao@google.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 279d138207ac3273bd233f75aba8eb49b2f1bc0f
Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Date:   Thu Feb 10 10:22:08 2011 +0100

    sched: suppress RCU lockdep splat in task_fork_fair
    
    Commit: b0a0f667a349247bd7f05f806b662a25653822bc upstream
    
    > ===================================================
    > [ INFO: suspicious rcu_dereference_check() usage. ]
    > ---------------------------------------------------
    > /home/greearb/git/linux.wireless-testing/kernel/sched.c:618 invoked rcu_dereference_check() without protection!
    >
    > other info that might help us debug this:
    >
    > rcu_scheduler_active = 1, debug_locks = 1
    > 1 lock held by ifup/23517:
    >   #0:  (&rq->lock){-.-.-.}, at: [<c042f782>] task_fork_fair+0x3b/0x108
    >
    > stack backtrace:
    > Pid: 23517, comm: ifup Not tainted 2.6.36-rc6-wl+ #5
    > Call Trace:
    >   [<c075e219>] ? printk+0xf/0x16
    >   [<c0455842>] lockdep_rcu_dereference+0x74/0x7d
    >   [<c0426854>] task_group+0x6d/0x79
    >   [<c042686e>] set_task_rq+0xe/0x57
    >   [<c042f79e>] task_fork_fair+0x57/0x108
    >   [<c042e965>] sched_fork+0x82/0xf9
    >   [<c04334b3>] copy_process+0x569/0xe8e
    >   [<c0433ef0>] do_fork+0x118/0x262
    >   [<c076302f>] ? do_page_fault+0x16a/0x2cf
    >   [<c044b80c>] ? up_read+0x16/0x2a
    >   [<c04085ae>] sys_clone+0x1b/0x20
    >   [<c04030a5>] ptregs_clone+0x15/0x30
    >   [<c0402f1c>] ? sysenter_do_call+0x12/0x38
    
    Here a newly created task is having its runqueue assigned.  The new task
    is not yet on the tasklist, so cannot go away.  This is therefore a false
    positive, suppress with an RCU read-side critical section.
    
    Reported-by: Ben Greear <greearb@candelatech.com
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Tested-by: Ben Greear <greearb@candelatech.com
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 54b79ba6355064fdbcea6bf96e28c148efc1c924
Author: stable-bot for Steven Rostedt <srostedt@redhat.com>
Date:   Thu Feb 10 10:21:08 2011 +0100

    sched: Give CPU bound RT tasks preference
    
    From:: Steven Rostedt <srostedt@redhat.com>
    
    Commit: b3bc211cfe7d5fe94b310480d78e00bea96fbf2a upstream
    
    If a high priority task is waking up on a CPU that is running a
    lower priority task that is bound to a CPU, see if we can move the
    high RT task to another CPU first. Note, if all other CPUs are
    running higher priority tasks than the CPU bounded current task,
    then it will be preempted regardless.
    
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Gregory Haskins <ghaskins@novell.com>
    LKML-Reference: <20100921024138.888922071@goodmis.org>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 758df963bb23a00cb6f2fbf9714ea37d3fa116a8
Author: Steven Rostedt <srostedt@redhat.com>
Date:   Thu Feb 10 10:20:08 2011 +0100

    sched: Try not to migrate higher priority RT tasks
    
    Commit: 43fa5460fe60dea5c610490a1d263415419c60f6 upstream
    
    When first working on the RT scheduler design, we concentrated on
    keeping all CPUs running RT tasks instead of having multiple RT
    tasks on a single CPU waiting for the migration thread to move
    them. Instead we take a more proactive stance and push or pull RT
    tasks from one CPU to another on wakeup or scheduling.
    
    When an RT task wakes up on a CPU that is running another RT task,
    instead of preempting it and killing the cache of the running RT
    task, we look to see if we can migrate the RT task that is waking
    up, even if the RT task waking up is of higher priority.
    
    This may sound a bit odd, but RT tasks should be limited in
    migration by the user anyway. But in practice, people do not do
    this, which causes high prio RT tasks to bounce around the CPUs.
    This becomes even worse when we have priority inheritance, because
    a high prio task can block on a lower prio task and boost its
    priority. When the lower prio task wakes up the high prio task, if
    it happens to be on the same CPU it will migrate off of it.
    
    But in reality, the above does not happen much either, because the
    wake up of the lower prio task, which has already been boosted, if
    it was on the same CPU as the higher prio task, it would then
    migrate off of it. But anyway, we do not want to migrate them
    either.
    
    To examine the scheduling, I created a test program and examined it
    under kernelshark. The test program created CPU * 2 threads, where
    each thread had a different priority. The program takes different
    options. The options used in this change log was to have priority
    inheritance mutexes or not.
    
    All threads did the following loop:
    
    static void grab_lock(long id, int iter, int l)
    {
    	ftrace_write("thread %ld iter %d, taking lock %d\n",
    		     id, iter, l);
    	pthread_mutex_lock(&locks[l]);
    	ftrace_write("thread %ld iter %d, took lock %d\n",
    		     id, iter, l);
    	busy_loop(nr_tasks - id);
    	ftrace_write("thread %ld iter %d, unlock lock %d\n",
    		     id, iter, l);
    	pthread_mutex_unlock(&locks[l]);
    }
    
    void *start_task(void *id)
    {
    	[...]
    	while (!done) {
    		for (l = 0; l < nr_locks; l++) {
    			grab_lock(id, i, l);
    			ftrace_write("thread %ld iter %d sleeping\n",
    				     id, i);
    			ms_sleep(id);
    		}
    		i++;
    	}
    	[...]
    }
    
    The busy_loop(ms) keeps the CPU spinning for ms milliseconds. The
    ms_sleep(ms) sleeps for ms milliseconds. The ftrace_write() writes
    to the ftrace buffer to help analyze via ftrace.
    
    The higher the id, the higher the prio, the shorter it does the
    busy loop, but the longer it spins. This is usually the case with
    RT tasks, the lower priority tasks usually run longer than higher
    priority tasks.
    
    At the end of the test, it records the number of loops each thread
    took, as well as the number of voluntary preemptions, non-voluntary
    preemptions, and number of migrations each thread took, taking the
    information from /proc/$$/sched and /proc/$$/status.
    
    Running this on a 4 CPU processor, the results without changes to
    the kernel looked like this:
    
    Task        vol    nonvol   migrated     iterations
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    
    ----        ---    ------   --------     ----------
      0:         53      3220       1470             98
      1:        562       773        724             98
      2:        752       933       1375             98
      3:        749        39        697             98
      4:        758         5        515             98
      5:        764         2        679             99
      6:        761         2        535             99
      7:        757         3        346             99
    
    total:     5156       4977      6341            787
    
    Each thread regardless of priority migrated a few hundred times.
    The higher priority tasks, were a little better but still took
    quite an impact.
    
    By letting higher priority tasks bump the lower prio task from the
    CPU, things changed a bit:
    
    Task        vol    nonvol   migrated     iterations
    ----        ---    ------   --------     ----------
      0:         37      2835       1937             98
      1:        666      1821       1865             98
      2:        654      1003       1385             98
      3:        664       635        973             99
      4:        698       197        352             99
      5:        703       101        159             99
      6:        708         1         75             99
      7:        713         1          2             99
    
    total:     4843       6594      6748            789
    
    The total # of migrations did not change (several runs showed the
    difference all within the noise). But we now see a dramatic
    improvement to the higher priority tasks. (kernelshark showed that
    the watchdog timer bumped the highest priority task to give it the
    2 count. This was actually consistent with every run).
    
    Notice that the # of iterations did not change either.
    
    The above was with priority inheritance mutexes. That is, when the
    higher prority task blocked on a lower priority task, the lower
    priority task would inherit the higher priority task (which shows
    why task 6 was bumped so many times). When not using priority
    inheritance mutexes, the current kernel shows this:
    
    Task        vol    nonvol   migrated     iterations
    ----        ---    ------   --------     ----------
      0:         56      3101       1892             95
      1:        594       713        937             95
      2:        625       188        618             95
      3:        628         4        491             96
      4:        640         7        468             96
      5:        631         2        501             96
      6:        641         1        466             96
      7:        643         2        497             96
    
    total:     4458       4018      5870            765
    
    Not much changed with or without priority inheritance mutexes. But
    if we let the high priority task bump lower priority tasks on
    wakeup we see:
    
    Task        vol    nonvol   migrated     iterations
    ----        ---    ------   --------     ----------
      0:        115      3439       2782             98
      1:        633      1354       1583             99
      2:        652       919       1218             99
      3:        645       713        934             99
      4:        690         3          3             99
      5:        694         1          4             99
      6:        720         3          4             99
      7:        747         0          1            100
    
    Which shows a even bigger change. The big difference between task 3
    and task 4 is because we have only 4 CPUs on the machine, causing
    the 4 highest prio tasks to always have preference.
    
    Although I did not measure cache misses, and I'm sure there would
    be little to measure since the test was not data intensive, I could
    imagine large improvements for higher priority tasks when dealing
    with lower priority tasks. Thus, I'm satisfied with making the
    change and agreeing with what Gregory Haskins argued a few years
    ago when we first had this discussion.
    
    One final note. All tasks in the above tests were RT tasks. Any RT
    task will always preempt a non RT task that is running on the CPU
    the RT task wants to run on.
    
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Gregory Haskins <ghaskins@novell.com>
    LKML-Reference: <20100921024138.605460343@goodmis.org>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit ce2e30cac777d6969855db38f5e4f73304e27196
Author: Venkatesh Pallipadi <venki@google.com>
Date:   Thu Feb 10 09:52:52 2011 +0100

    sched: Increment cache_nice_tries only on periodic lb
    
    Commit: 58b26c4c025778c09c7a1438ff185080e11b7d0a upstream
    
    scheduler uses cache_nice_tries as an indicator to do cache_hot and
    active load balance, when normal load balance fails. Currently,
    this value is changed on any failed load balance attempt. That ends
    up being not so nice to workloads that enter/exit idle often, as
    they do more frequent new_idle balance and that pretty soon results
    in cache hot tasks being pulled in.
    
    Making the cache_nice_tries ignore failed new_idle balance seems to
    make better sense. With that only the failed load balance in
    periodic load balance gets accounted and the rate of accumulation
    of cache_nice_tries will not depend on idle entry/exit (short
    running sleep-wakeup kind of tasks). This reduces movement of
    cache_hot tasks.
    
    schedstat diff (after-before) excerpt from a workload that has
    frequent and short wakeup-idle pattern (:2 in cpu col below refers
    to NEWIDLE idx) This snapshot was across ~400 seconds.
    
    Without this change:
    domainstats:  domain0
     cpu     cnt      bln      fld      imb     gain    hgain  nobusyq  nobusyg
     0:2  306487   219575    73167  110069413    44583    19070     1172   218403
     1:2  292139   194853    81421  120893383    50745    21902     1259   193594
     2:2  283166   174607    91359  129699642    54931    23688     1287   173320
     3:2  273998   161788    93991  132757146    57122    24351     1366   160422
     4:2  289851   215692    62190  83398383    36377    13680      851   214841
     5:2  316312   222146    77605  117582154    49948    20281      988   221158
     6:2  297172   195596    83623  122133390    52801    21301      929   194667
     7:2  283391   178078    86378  126622761    55122    22239      928   177150
     8:2  297655   210359    72995  110246694    45798    19777     1125   209234
     9:2  297357   202011    79363  119753474    50953    22088     1089   200922
    10:2  278797   178703    83180  122514385    52969    22726     1128   177575
    11:2  272661   167669    86978  127342327    55857    24342     1195   166474
    12:2  293039   204031    73211  110282059    47285    19651      948   203083
    13:2  289502   196762    76803  114712942    49339    20547     1016   195746
    14:2  264446   169609    78292  115715605    50459    21017      982   168627
    15:2  260968   163660    80142  116811793    51483    21281     1064   162596
    
    With this change:
    domainstats:  domain0
     cpu     cnt      bln      fld      imb     gain    hgain  nobusyq  nobusyg
     0:2  272347   187380    77455  105420270    24975        1      953   186427
     1:2  267276   172360    86234  116242264    28087        6     1028   171332
     2:2  259769   156777    93281  123243134    30555        1     1043   155734
     3:2  250870   143129    97627  127370868    32026        6     1188   141941
     4:2  248422   177116    64096  78261112    22202        2      757   176359
     5:2  275595   180683    84950  116075022    29400        6      778   179905
     6:2  262418   162609    88944  119256898    31056        4      817   161792
     7:2  252204   147946    92646  122388300    32879        4      824   147122
     8:2  262335   172239    81631  110477214    26599        4      864   171375
     9:2  261563   164775    88016  117203621    28331        3      849   163926
    10:2  243389   140949    93379  121353071    29585        2      909   140040
    11:2  242795   134651    98310  124768957    30895        2     1016   133635
    12:2  255234   166622    79843  104696912    26483        4      746   165876
    13:2  244944   151595    83855  109808099    27787        3      801   150794
    14:2  241301   140982    89935  116954383    30403        6      845   140137
    15:2  232271   128564    92821  119185207    31207        4     1416   127148
    
    Signed-off-by: Venkatesh Pallipadi <venki@google.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1284167957-3675-1-git-send-email-venki@google.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 25f24a9de3c47261441bfa3d9cccae3616f42893
Author: Suresh Siddha <suresh.b.siddha@intel.com>
Date:   Thu Feb 10 09:52:07 2011 +0100

    sched: Move sched_avg_update() to update_cpu_load()
    
    Commit: da2b71edd8a7db44fe1746261410a981f3e03632 upstream
    
    Currently sched_avg_update() (which updates rt_avg stats in the rq)
    is getting called from scale_rt_power() (in the load balance context)
    which doesn't take rq->lock.
    
    Fix it by moving the sched_avg_update() to more appropriate
    update_cpu_load() where the CFS load gets updated as well.
    
    Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    LKML-Reference: <1282596171.2694.3.camel@sbsiddha-MOBL3>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 824a6dcef20b339735b0f0e89841fcf2fbbe2621
Author: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Date:   Thu Dec 23 11:12:42 2010 -0800

    usb: Realloc xHCI structures after a hub is verified.
    
    commit 653a39d1f61bdc9f277766736d21d2e9be0391cb upstream.
    
    When there's an xHCI host power loss after a suspend from memory, the USB
    core attempts to reset and verify the USB devices that are attached to the
    system.  The xHCI driver has to reallocate those devices, since the
    hardware lost all knowledge of them during the power loss.
    
    When a hub is plugged in, and the host loses power, the xHCI hardware
    structures are not updated to say the device is a hub.  This is usually
    done in hub_configure() when the USB hub is detected.  That function is
    skipped during a reset and verify by the USB core, since the core restores
    the old configuration and alternate settings, and the hub driver has no
    idea this happened.  This bug makes the xHCI host controller reject the
    enumeration of low speed devices under the resumed hub.
    
    Therefore, make the USB core re-setup the internal xHCI hub device
    information by calling update_hub_device() when hub_activate() is called
    for a hub reset resume.  After a host power loss, all devices under the
    roothub get a reset-resume or a disconnect.
    
    This patch should be queued for the 2.6.37 stable tree.
    
    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 e9cedc82e9ec9c15723490ea9f6daaa2806ac094
Author: Suresh Siddha <suresh.b.siddha@intel.com>
Date:   Thu Feb 3 12:20:04 2011 -0800

    x86, mm: avoid possible bogus tlb entries by clearing prev mm_cpumask after switching mm
    
    commit 831d52bc153971b70e64eccfbed2b232394f22f8 upstream.
    
    Clearing the cpu in prev's mm_cpumask early will avoid the flush tlb
    IPI's while the cr3 is still pointing to the prev mm.  And this window
    can lead to the possibility of bogus TLB fills resulting in strange
    failures.  One such problematic scenario is mentioned below.
    
     T1. CPU-1 is context switching from mm1 to mm2 context and got a NMI
         etc between the point of clearing the cpu from the mm_cpumask(mm1)
         and before reloading the cr3 with the new mm2.
    
     T2. CPU-2 is tearing down a specific vma for mm1 and will proceed with
         flushing the TLB for mm1.  It doesn't send the flush TLB to CPU-1
         as it doesn't see that cpu listed in the mm_cpumask(mm1).
    
     T3. After the TLB flush is complete, CPU-2 goes ahead and frees the
         page-table pages associated with the removed vma mapping.
    
     T4. CPU-2 now allocates those freed page-table pages for something
         else.
    
     T5. As the CR3 and TLB caches for mm1 is still active on CPU-1, CPU-1
         can potentially speculate and walk through the page-table caches
         and can insert new TLB entries.  As the page-table pages are
         already freed and being used on CPU-2, this page walk can
         potentially insert a bogus global TLB entry depending on the
         (random) contents of the page that is being used on CPU-2.
    
     T6. This bogus TLB entry being global will be active across future CR3
         changes and can result in weird memory corruption etc.
    
    To avoid this issue, for the prev mm that is handing over the cpu to
    another mm, clear the cpu from the mm_cpumask(prev) after the cr3 is
    changed.
    
    Marking it for -stable, though we haven't seen any reported failure that
    can be attributed to this.
    
    Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
    Acked-by: Ingo Molnar <mingo@elte.hu>
    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 fbb04f77b029c591fd77043e4c88b600efff5027
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jan 20 10:03:24 2011 +0000

    drm/i915: Add dependency on CONFIG_TMPFS
    
    commit f7ab9b407b3bc83161c2aa74c992ba4782e87c9c upstream.
    
    Without tmpfs, shmem_readpage() is not compiled in causing an OOPS as
    soon as we try to allocate some swappable pages for GEM.
    
    Jan 19 22:52:26 harlie kernel: Modules linked in: i915(+) drm_kms_helper cfbcopyarea video backlight cfbimgblt cfbfillrect
    Jan 19 22:52:26 harlie kernel:
    Jan 19 22:52:26 harlie kernel: Pid: 1125, comm: modprobe Not tainted 2.6.37Harlie #10 To be filled by O.E.M./To be filled by O.E.M.
    Jan 19 22:52:26 harlie kernel: EIP: 0060:[<00000000>] EFLAGS: 00010246 CPU: 3
    Jan 19 22:52:26 harlie kernel: EIP is at 0x0
    Jan 19 22:52:26 harlie kernel: EAX: 00000000 EBX: f7b7d000 ECX: f3383100 EDX: f7b7d000
    Jan 19 22:52:26 harlie kernel: ESI: f1456118 EDI: 00000000 EBP: f2303c98 ESP: f2303c7c
    Jan 19 22:52:26 harlie kernel:  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
    Jan 19 22:52:26 harlie kernel: Process modprobe (pid: 1125, ti=f2302000 task=f259cd80 task.ti=f2302000)
    Jan 19 22:52:26 harlie kernel: Stack:
    Jan 19 22:52:26 harlie udevd-work[1072]: '/sbin/modprobe -b pci:v00008086d00000046sv00000000sd00000000bc03sc00i00' unexpected exit with status 0x0009
    Jan 19 22:52:26 harlie kernel:  c1074061 000000d0 f2f42b80 00000000 000a13d2 f2d5dcc0 00000001 f2303cac
    Jan 19 22:52:26 harlie kernel:  c107416f 00000000 000a13d2 00000000 f2303cd4 f8d620ed f2cee620 00001000
    Jan 19 22:52:26 harlie kernel:  00000000 000a13d2 f1456118 f2d5dcc0 f1a40000 00001000 f2303d04 f8d637ab
    Jan 19 22:52:26 harlie kernel: Call Trace:
    Jan 19 22:52:26 harlie kernel:  [<c1074061>] ? do_read_cache_page+0x71/0x160
    Jan 19 22:52:26 harlie kernel:  [<c107416f>] ? read_cache_page_gfp+0x1f/0x30
    Jan 19 22:52:26 harlie kernel:  [<f8d620ed>] ? i915_gem_object_get_pages+0xad/0x1d0 [i915]
    Jan 19 22:52:26 harlie kernel:  [<f8d637ab>] ? i915_gem_object_bind_to_gtt+0xeb/0x2d0 [i915]
    Jan 19 22:52:26 harlie kernel:  [<f8d65961>] ? i915_gem_object_pin+0x151/0x190 [i915]
    Jan 19 22:52:26 harlie kernel:  [<c11e16ed>] ? drm_gem_object_init+0x3d/0x60
    Jan 19 22:52:26 harlie kernel:  [<f8d65aa5>] ? i915_gem_init_ringbuffer+0x105/0x1e0 [i915]
    Jan 19 22:52:26 harlie kernel:  [<f8d571b7>] ? i915_driver_load+0x667/0x1160 [i915]
    
    Reported-by: John J. Stimson-III <john@idsfa.net>
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 47cf86927073a10323fa5ce198adba1ce69b3748
Author: Knut Petersen <knut_petersen@t-online.de>
Date:   Fri Jan 14 15:38:10 2011 +0000

    drm/i915/lvds: Add AOpen i915GMm-HFS to the list of false-positive LVDS
    
    commit 22ab70d3262ddb6e69b3c246a34e2967ba5eb1e8 upstream.
    
    Signed-off-by: Knut Petersen <knut_petersen@t-online.de>
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 06d8e2516efb9e1574135d42cee2626e27961652
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Wed Feb 2 19:46:06 2011 -0500

    drm/radeon/kms: fix s/r issues with bios scratch regs
    
    commit 87364760de5d631390c478fcbac8db1b926e0adf upstream.
    
    The accelerate mode bit gets checked by certain atom
    command tables to set up some register state.  It needs
    to be clear when setting modes and set when not.
    
    Fixes:
    https://bugzilla.kernel.org/show_bug.cgi?id=26942
    
    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 18021895811ff8556c0dfe5bed81ef90d053340c
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Tue Feb 1 19:06:46 2011 -0500

    drm/radeon: remove 0x4243 pci id
    
    commit 63a507800c8aca5a1891d598ae13f829346e8e39 upstream.
    
    0x4243 is a PCI bridge, not a GPU.
    
    Fixes:
    https://bugs.freedesktop.org/show_bug.cgi?id=33815
    
    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 534db03998f262ce3dd832948adb5309a45af6ed
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Mon Jan 31 16:48:51 2011 -0500

    drm/radeon/kms: add pll debugging output
    
    commit 51d4bf840a27fe02c883ddc6d9708af056773769 upstream.
    
    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 083c5885f631f3694246fceee32ee2cb77192a8c
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Tue Jan 18 18:26:11 2011 +0000

    drm/radeon/kms: make the mac rv630 quirk generic
    
    commit be23da8ad219650517cbbb7acbeaeb235667113a upstream.
    
    Seems some other boards do this as well.
    
    Reported-by: Andrea Merello <andrea.merello@gmail.com>
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 56da787c4103bae08b51d52de36c18a3daf0e338
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Tue Jan 4 00:43:39 2011 -0500

    drm/radeon/kms: add quirk for Mac Radeon HD 2600 card
    
    commit f598aa7593427ffe3a61e7767c34bd695a5e7ed0 upstream.
    
    Reported-by: 屋国遥 <hyagni@gmail.com>
    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 940da4c89846182301e4cef616f62e921a979369
Author: Mike Snitzer <snitzer@redhat.com>
Date:   Thu Jan 13 19:59:46 2011 +0000

    dm mpath: disable blk_abort_queue
    
    commit 09c9d4c9b6a2b5909ae3c6265e4cd3820b636863 upstream.
    
    Revert commit 224cb3e981f1b2f9f93dbd49eaef505d17d894c2
      dm: Call blk_abort_queue on failed paths
    
    Multipath began to use blk_abort_queue() to allow for
    lower latency path deactivation.  This was found to
    cause list corruption:
    
       the cmd gets blk_abort_queued/timedout run on it and the scsi eh
       somehow is able to complete and run scsi_queue_insert while
       scsi_request_fn is still trying to process the request.
    
       https://www.redhat.com/archives/dm-devel/2010-November/msg00085.html
    
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Alasdair G Kergon <agk@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Mike Anderson <andmike@linux.vnet.ibm.com>
    Cc: Mike Christie <michaelc@cs.wisc.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 909e776f2916d9197efd789d52c9f34c41415453
Author: Mike Snitzer <snitzer@redhat.com>
Date:   Thu Jan 13 19:53:46 2011 +0000

    dm: dont take i_mutex to change device size
    
    commit c217649bf2d60ac119afd71d938278cffd55962b upstream.
    
    No longer needlessly hold md->bdev->bd_inode->i_mutex when changing the
    size of a DM device.  This additional locking is unnecessary because
    i_size_write() is already protected by the existing critical section in
    dm_swap_table().  DM already has a reference on md->bdev so the
    associated bd_inode may be changed without lifetime concerns.
    
    A negative side-effect of having held md->bdev->bd_inode->i_mutex was
    that a concurrent DM device resize and flush (via fsync) would deadlock.
    Dropping md->bdev->bd_inode->i_mutex eliminates this potential for
    deadlock.  The following reproducer no longer deadlocks:
      https://www.redhat.com/archives/dm-devel/2009-July/msg00284.html
    
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Alasdair G Kergon <agk@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 7aa043b04c3584f52c9c3e120fca1521d8836499
Author: Amitkumar Karwar <akarwar@marvell.com>
Date:   Tue Jan 11 16:14:24 2011 -0800

    ieee80211: correct IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK macro
    
    commit 8d661f1e462d50bd83de87ee628aaf820ce3c66c upstream.
    
    It is defined in include/linux/ieee80211.h. As per IEEE spec.
    bit6 to bit15 in block ack parameter represents buffer size.
    So the bitmask should be 0xFFC0.
    
    Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
    Signed-off-by: Bing Zhao <bzhao@marvell.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 840533075951dd0ce6c4bfaca3182bb1dbedb230
Author: Eric Paris <eparis@redhat.com>
Date:   Thu Dec 2 16:13:40 2010 -0500

    SELinux: do not compute transition labels on mountpoint labeled filesystems
    
    commit 415103f9932d45f7927f4b17e3a9a13834cdb9a1 upstream.
    
    selinux_inode_init_security computes transitions sids even for filesystems
    that use mount point labeling.  It shouldn't do that.  It should just use
    the mount point label always and no matter what.
    
    This causes 2 problems.  1) it makes file creation slower than it needs to be
    since we calculate the transition sid and 2) it allows files to be created
    with a different label than the mount point!
    
    # id -Z
    staff_u:sysadm_r:sysadm_t:s0-s0:c0.c1023
    # sesearch --type --class file --source sysadm_t --target tmp_t
    Found 1 semantic te rules:
       type_transition sysadm_t tmp_t : file user_tmp_t;
    
    # mount -o loop,context="system_u:object_r:tmp_t:s0"  /tmp/fs /mnt/tmp
    
    # ls -lZ /mnt/tmp
    drwx------. root root system_u:object_r:tmp_t:s0       lost+found
    # touch /mnt/tmp/file1
    # ls -lZ /mnt/tmp
    -rw-r--r--. root root staff_u:object_r:user_tmp_t:s0   file1
    drwx------. root root system_u:object_r:tmp_t:s0       lost+found
    
    Whoops, we have a mount point labeled filesystem tmp_t with a user_tmp_t
    labeled file!
    
    Signed-off-by: Eric Paris <eparis@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reviewed-by: Reviewed-by: James Morris <jmorris@namei.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 88164580062e2fcb5afe58cd7ffaca05f668f009
Author: Eric Paris <eparis@redhat.com>
Date:   Thu Dec 16 11:46:51 2010 -0500

    SELinux: define permissions for DCB netlink messages
    
    commit 350e4f31e0eaf56dfc3b328d24a11bdf42a41fb8 upstream.
    
    Commit 2f90b865 added two new netlink message types to the netlink route
    socket.  SELinux has hooks to define if netlink messages are allowed to
    be sent or received, but it did not know about these two new message
    types.  By default we allow such actions so noone likely noticed.  This
    patch adds the proper definitions and thus proper permissions
    enforcement.
    
    Signed-off-by: Eric Paris <eparis@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: James Morris <jmorris@namei.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 5373abb7b877203095f9bd806d9f8040998fccb5
Author: Stefan Berger <stefanb@linux.vnet.ibm.com>
Date:   Tue Jan 11 14:37:29 2011 -0500

    tpm_tis: Use timeouts returned from TPM
    
    commit 9b29050f8f75916f974a2d231ae5d3cd59792296 upstream.
    
    The current TPM TIS driver in git discards the timeout values returned
    from the TPM. The check of the response packet needs to consider that
    the return_code field is 0 on success and the size of the expected
    packet is equivalent to the header size + u32 length indicator for the
    TPM_GetCapability() result + 3 timeout indicators of type u32.
    
    I am also adding a sysfs entry 'timeouts' showing the timeouts that are
    being used.
    
    Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Tested-by: Guillaume Chazarain <guichaz@gmail.com>
    Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit fdd7c779cc992bd5d0930e381b8023907cb750f0
Author: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
Date:   Fri Nov 12 22:30:02 2010 +0100

    TPM: Long default timeout fix
    
    commit c4ff4b829ef9e6353c0b133b7adb564a68054979 upstream.
    
    If duration variable value is 0 at this point, it's because
    chip->vendor.duration wasn't filled by tpm_get_timeouts() yet.
    This patch sets then the lowest timeout just to give enough
    time for tpm_get_timeouts() to further succeed.
    
    This fix avoids long boot times in case another entity attempts
    to send commands to the TPM when the TPM isn't accessible.
    
    Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
    Signed-off-by: James Morris <jmorris@namei.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 41922ad4ddb29e0dff33a645d4d697895acb14ce
Author: Tejun Heo <tj@kernel.org>
Date:   Sun Jan 9 17:48:20 2011 -0500

    pata_mpc52xx: inherit from ata_bmdma_port_ops
    
    commit 77c5fd19075d299fe820bb59bb21b0b113676e20 upstream.
    
    pata_mpc52xx supports BMDMA but inherits ata_sff_port_ops which
    triggers BUG_ON() when a DMA command is issued.  Fix it.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reported-by: Roman Fietze <roman.fietze@telemotive.de>
    Cc: Sergei Shtylyov <sshtylyov@mvista.com>
    Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 863591babfdd78d107f54d0b3cff1c55841f902b
Author: NeilBrown <neilb@suse.de>
Date:   Wed Jan 12 09:03:35 2011 +1100

    md: fix regression with re-adding devices to arrays with no metadata
    
    commit bf572541ab44240163eaa2d486b06f306a31d45a upstream.
    
    Commit 1a855a0606 (2.6.37-rc4) fixed a problem where devices were
    re-added when they shouldn't be but caused a regression in a less
    common case that means sometimes devices cannot be re-added when they
    should be.
    
    In particular, when re-adding a device to an array without metadata
    we should always access the device, but after the above commit we
    didn't.
    
    This patch sets the In_sync flag in that case so that the re-add
    succeeds.
    
    This patch is suitable for any -stable kernel to which 1a855a0606 was
    applied.
    
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 755fc62c61ab748285ef5940f6a7c9b93f1b70b8
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Mon Jan 10 12:56:05 2011 +0100

    hostap_cs: fix sleeping function called from invalid context
    
    commit 4e5518ca53be29c1ec3c00089c97bef36bfed515 upstream.
    
    pcmcia_request_irq() and pcmcia_enable_device() are intended
    to be called from process context (first function allocate memory
    with GFP_KERNEL, second take a mutex). We can not take spin lock
    and call them.
    
    It's safe to move spin lock after pcmcia_enable_device() as we
    still hold off IRQ until dev->base_addr is 0 and driver will
    not proceed with interrupts when is not ready.
    
    Patch resolves:
    https://bugzilla.redhat.com/show_bug.cgi?id=643758
    
    Reported-and-tested-by: rbugz@biobind.com
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.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 e9873656fb0e28d4f5f461a990e4885e2a01f947
Author: Anton Blanchard <anton@samba.org>
Date:   Thu Jan 20 14:44:33 2011 -0800

    kernel/smp.c: fix smp_call_function_many() SMP race
    
    commit 6dc19899958e420a931274b94019e267e2396d3e upstream.
    
    I noticed a failure where we hit the following WARN_ON in
    generic_smp_call_function_interrupt:
    
                    if (!cpumask_test_and_clear_cpu(cpu, data->cpumask))
                            continue;
    
                    data->csd.func(data->csd.info);
    
                    refs = atomic_dec_return(&data->refs);
                    WARN_ON(refs < 0);      <-------------------------
    
    We atomically tested and cleared our bit in the cpumask, and yet the
    number of cpus left (ie refs) was 0.  How can this be?
    
    It turns out commit 54fdade1c3332391948ec43530c02c4794a38172
    ("generic-ipi: make struct call_function_data lockless") is at fault.  It
    removes locking from smp_call_function_many and in doing so creates a
    rather complicated race.
    
    The problem comes about because:
    
     - The smp_call_function_many interrupt handler walks call_function.queue
       without any locking.
     - We reuse a percpu data structure in smp_call_function_many.
     - We do not wait for any RCU grace period before starting the next
       smp_call_function_many.
    
    Imagine a scenario where CPU A does two smp_call_functions back to back,
    and CPU B does an smp_call_function in between.  We concentrate on how CPU
    C handles the calls:
    
    CPU A            CPU B                  CPU C              CPU D
    
    smp_call_function
                                            smp_call_function_interrupt
                                                walks
    					call_function.queue sees
    					data from CPU A on list
    
                     smp_call_function
    
                                            smp_call_function_interrupt
                                                walks
    
                                            call_function.queue sees
                                              (stale) CPU A on list
    							   smp_call_function int
    							   clears last ref on A
    							   list_del_rcu, unlock
    smp_call_function reuses
    percpu *data A
                                             data->cpumask sees and
                                             clears bit in cpumask
                                             might be using old or new fn!
                                             decrements refs below 0
    
    set data->refs (too late!)
    
    The important thing to note is since the interrupt handler walks a
    potentially stale call_function.queue without any locking, then another
    cpu can view the percpu *data structure at any time, even when the owner
    is in the process of initialising it.
    
    The following test case hits the WARN_ON 100% of the time on my PowerPC
    box (having 128 threads does help :)
    
    #include <linux/module.h>
    #include <linux/init.h>
    
    #define ITERATIONS 100
    
    static void do_nothing_ipi(void *dummy)
    {
    }
    
    static void do_ipis(struct work_struct *dummy)
    {
    	int i;
    
    	for (i = 0; i < ITERATIONS; i++)
    		smp_call_function(do_nothing_ipi, NULL, 1);
    
    	printk(KERN_DEBUG "cpu %d finished\n", smp_processor_id());
    }
    
    static struct work_struct work[NR_CPUS];
    
    static int __init testcase_init(void)
    {
    	int cpu;
    
    	for_each_online_cpu(cpu) {
    		INIT_WORK(&work[cpu], do_ipis);
    		schedule_work_on(cpu, &work[cpu]);
    	}
    
    	return 0;
    }
    
    static void __exit testcase_exit(void)
    {
    }
    
    module_init(testcase_init)
    module_exit(testcase_exit)
    MODULE_LICENSE("GPL");
    MODULE_AUTHOR("Anton Blanchard");
    
    I tried to fix it by ordering the read and the write of ->cpumask and
    ->refs.  In doing so I missed a critical case but Paul McKenney was able
    to spot my bug thankfully :) To ensure we arent viewing previous
    iterations the interrupt handler needs to read ->refs then ->cpumask then
    ->refs _again_.
    
    Thanks to Milton Miller and Paul McKenney for helping to debug this issue.
    
    [miltonm@bga.com: add WARN_ON and BUG_ON, remove extra read of refs before initial read of mask that doesn't help (also noted by Peter Zijlstra), adjust comments, hopefully clarify scenario ]
    [miltonm@bga.com: remove excess tests]
    Signed-off-by: Anton Blanchard <anton@samba.org>
    Signed-off-by: Milton Miller <miltonm@bga.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.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 f1127642d5214684a533ba465bb62f013c51fe99
Author: Guy Martin <gmsoft@tuxicoman.be>
Date:   Mon Dec 6 16:48:04 2010 +0100

    parisc : Remove broken line wrapping handling pdc_iodc_print()
    
    commit fbea668498e93bb38ac9226c7af9120a25957375 upstream.
    
    Remove the broken line wrapping handling in pdc_iodc_print().
    It is broken in 3 ways :
      - It doesn't keep track of the current screen position, it just
        assumes that the new buffer will be printed at the begining of the
        screen.
      - It doesn't take in account that non printable characters won't
        increase the current position on the screen.
      - And last but not least, it triggers a kernel panic if a backspace
        is the first char in the provided buffer :
    
     Backtrace:
      [<0000000040128ec4>] pdc_console_write+0x44/0x78
      [<0000000040128f18>] pdc_console_tty_write+0x20/0x38
      [<000000004032f1ac>] n_tty_write+0x2a4/0x550
      [<000000004032b158>] tty_write+0x1e0/0x2d8
      [<00000000401bb420>] vfs_write+0xb8/0x188
      [<00000000401bb630>] sys_write+0x68/0xb8
      [<0000000040104eb8>] syscall_exit+0x0/0x14
    
    Most terminals handle the line wrapping just fine. I've confirmed that
    it works correctly on a C8000 with both vga and serial output.
    
    Signed-off-by: Guy Martin <gmsoft@tuxicoman.be>
    Signed-off-by: James Bottomley <James.Bottomley@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit e6acb2773a21f1863cf3a7a6831e4a0c2d926011
Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date:   Thu Jan 20 20:35:23 2011 +0000

    powerpc: Fix some 6xx/7xxx CPU setup functions
    
    commit 1f1936ff3febf38d582177ea319eaa278f32c91f upstream.
    
    Some of those functions try to adjust the CPU features, for example
    to remove NAP support on some revisions. However, they seem to use
    r5 as an index into the CPU table entry, which might have been right
    a long time ago but no longer is. r4 is the right register to use.
    
    This probably caused some off behaviours on some PowerMac variants
    using 750cx or 7455 processor revisions.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit df73343c660da9b988c068456d2ef0d511456573
Author: David Miller <davem@davemloft.net>
Date:   Sun Feb 13 16:37:07 2011 -0800

    klist: Fix object alignment on 64-bit.
    
    commit 795abaf1e4e188c4171e3cd3dbb11a9fcacaf505 upstream.
    
    Commit c0e69a5bbc6f ("klist.c: bit 0 in pointer can't be used as flag")
    intended to make sure that all klist objects were at least pointer size
    aligned, but used the constant "4" which only works on 32-bit.
    
    Use "sizeof(void *)" which is correct in all cases.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Acked-by: Jesper Nilsson <jesper.nilsson@axis.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 d9ad11a63585b0f918d396176c528e57bac99f5e
Author: Dario Lombardo <dario.lombardo@libero.it>
Date:   Fri Jan 21 15:35:19 2011 +0100

    drivers: update to pl2303 usb-serial to support Motorola cables
    
    commit 96a3e79edff6f41b0f115a82f1a39d66218077a7 upstream.
    
    Added 0x0307 device id to support Motorola cables to the pl2303 usb
    serial driver. This cable has a modified chip that is a pl2303, but
    declares itself as 0307. Fixed by adding the right device id to the
    supported devices list, assigning it the code labeled
    PL2303_PRODUCT_ID_MOTOROLA.
    
    Signed-off-by: Dario Lombardo <dario.lombardo@libero.it>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 6adc3af5842abe628c282baf122a9be81d854b47
Author: Tim Deegan <Tim.Deegan@citrix.com>
Date:   Thu Feb 10 08:50:41 2011 +0000

    fix jiffy calculations in calibrate_delay_direct to handle overflow
    
    commit 70a062286b9dfcbd24d2e11601aecfead5cf709a upstream.
    
    Fixes a hang when booting as dom0 under Xen, when jiffies can be
    quite large by the time the kernel init gets this far.
    
    Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    [jbeulich@novell.com: !time_after() -> time_before_eq() as suggested by Jiri Slaby]
    Signed-off-by: Jan Beulich <jbeulich@novell.com>
    Cc: Jiri Slaby <jslaby@suse.cz>
    Cc: Jeremy Fitzhardinge <jeremy@goop.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 9c452576359d2ffae23d13274c053fbbeceb90a6
Author: Suresh Siddha <suresh.b.siddha@intel.com>
Date:   Wed Feb 2 17:02:55 2011 -0800

    x86, mtrr: Avoid MTRR reprogramming on BP during boot on UP platforms
    
    commit f7448548a9f32db38f243ccd4271617758ddfe2c upstream.
    
    Markus Kohn ran into a hard hang regression on an acer aspire
    1310, when acpi is enabled. git bisect showed the following
    commit as the bad one that introduced the boot regression.
    
    	commit d0af9eed5aa91b6b7b5049cae69e5ea956fd85c3
    	Author: Suresh Siddha <suresh.b.siddha@intel.com>
    	Date:   Wed Aug 19 18:05:36 2009 -0700
    
    	    x86, pat/mtrr: Rendezvous all the cpus for MTRR/PAT init
    
    Because of the UP configuration of that platform,
    native_smp_prepare_cpus() bailed out (in smp_sanity_check())
    before doing the set_mtrr_aps_delayed_init()
    
    Further down the boot path, native_smp_cpus_done() will call the
    delayed MTRR initialization for the AP's (mtrr_aps_init()) with
    mtrr_aps_delayed_init not set. This resulted in the boot
    processor reprogramming its MTRR's to the values seen during the
    start of the OS boot. While this is not needed ideally, this
    shouldn't have caused any side-effects. This is because the
    reprogramming of MTRR's (set_mtrr_state() that gets called via
    set_mtrr()) will check if the live register contents are
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    
    different from what is being asked to write and will do the actual
    write only if they are different.
    
    BP's mtrr state is read during the start of the OS boot and
    typically nothing would have changed when we ask to reprogram it
    on BP again because of the above scenario on an UP platform. So
    on a normal UP platform no reprogramming of BP MTRR MSR's
    happens and all is well.
    
    However, on this platform, bios seems to be modifying the fixed
    mtrr range registers between the start of OS boot and when we
    double check the live registers for reprogramming BP MTRR
    registers. And as the live registers are modified, we end up
    reprogramming the MTRR's to the state seen during the start of
    the OS boot.
    
    During ACPI initialization, something in the bios (probably smi
    handler?) don't like this fact and results in a hard lockup.
    
    We didn't see this boot hang issue on this platform before the
    commit d0af9eed5aa91b6b7b5049cae69e5ea956fd85c3, because only
    the AP's (if any) will program its MTRR's to the value that BP
    had at the start of the OS boot.
    
    Fix this issue by checking mtrr_aps_delayed_init before
    continuing further in the mtrr_aps_init(). Now, only AP's (if
    any) will program its MTRR's to the BP values during boot.
    
    Addresses https://bugzilla.novell.com/show_bug.cgi?id=623393
    
      [ By the way, this behavior of the bios modifying MTRR's after the start
        of the OS boot is not common and the kernel is not prepared to
        handle this situation well. Irrespective of this issue, during
        suspend/resume, linux kernel will try to reprogram the BP's MTRR values
        to the values seen during the start of the OS boot. So suspend/resume might
        be already broken on this platform for all linux kernel versions. ]
    
    Reported-and-bisected-by: Markus Kohn <jabber@gmx.org>
    Tested-by: Markus Kohn <jabber@gmx.org>
    Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
    Cc: Thomas Renninger <trenn@novell.com>
    Cc: Rafael Wysocki <rjw@novell.com>
    Cc: Venkatesh Pallipadi <venki@google.com>
    LKML-Reference: <1296694975.4418.402.camel@sbsiddha-MOBL3.sc.intel.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 663fa622fa8a14a5f06fad75adb0fcec41c1d82f
Author: Tejun Heo <tj@kernel.org>
Date:   Thu Feb 10 15:01:22 2011 -0800

    ptrace: use safer wake up on ptrace_detach()
    
    commit 01e05e9a90b8f4c3997ae0537e87720eb475e532 upstream.
    
    The wake_up_process() call in ptrace_detach() is spurious and not
    interlocked with the tracee state.  IOW, the tracee could be running or
    sleeping in any place in the kernel by the time wake_up_process() is
    called.  This can lead to the tracee waking up unexpectedly which can be
    dangerous.
    
    The wake_up is spurious and should be removed but for now reduce its
    toxicity by only waking up if the tracee is in TRACED or STOPPED state.
    
    This bug can possibly be used as an attack vector.  I don't think it
    will take too much effort to come up with an attack which triggers oops
    somewhere.  Most sleeps are wrapped in condition test loops and should
    be safe but we have quite a number of places where sleep and wakeup
    conditions are expected to be interlocked.  Although the window of
    opportunity is tiny, ptrace can be used by non-privileged users and with
    some loading the window can definitely be extended and exploited.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Acked-by: Roland McGrath <roland@redhat.com>
    Acked-by: Oleg Nesterov <oleg@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 69057aa6b8d7dc5e73efe4e157e5657ec7850c02
Author: Pavel Machek <pavel@ucw.cz>
Date:   Sun Jan 9 08:38:48 2011 +0100

    serial: unbreak billionton CF card
    
    commit d0694e2aeb815042aa0f3e5036728b3db4446f1d upstream.
    
    Unbreak Billionton CF bluetooth card. This actually fixes a regression
    on zaurus.
    
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit d941e905c951364db60f5ad802c8730fc2526d1a
Author: Jean Delvare <khali@linux-fr.org>
Date:   Fri Jan 14 22:03:49 2011 +0100

    i2c: Unregister dummy devices last on adapter removal
    
    commit 5219bf884b6e2b54e734ca1799b6f0014bb2b4b7 upstream.
    
    Remove real devices first and dummy devices last. This gives device
    driver which instantiated dummy devices themselves a chance to clean
    them up before we do.
    
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Tested-by: Hans Verkuil <hverkuil@xs4all.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit c8ff6363cfcfe2192cc45c14bfda8b99431aa65f
Author: Christian Lamparter <chunkeey@googlemail.com>
Date:   Thu Jan 6 23:47:52 2011 +0100

    p54: fix sequence no. accounting off-by-one error
    
    commit 3b5c5827d1f80ad8ae844a8b1183f59ddb90fe25 upstream.
    
    P54_HDR_FLAG_DATA_OUT_SEQNR is meant to tell the
    firmware that "the frame's sequence number has
    already been set by the application."
    
    Whereas IEEE80211_TX_CTL_ASSIGN_SEQ is set for
    frames which lack a valid sequence number and
    either the driver or firmware has to assign one.
    
    Yup, it's the exact opposite!
    
    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 2be4ae77eca91af0f0577f1a174f3eae0797df2b
Author: Sven Neumann <s.neumann@raumfeld.com>
Date:   Fri Nov 12 11:36:22 2010 +0100

    ds2760_battery: Fix calculation of time_to_empty_now
    
    commit 86af95039b69a90db15294eb1f9c147f1df0a8ea upstream.
    
    A check against division by zero was modified in commit b0525b48.
    Since this change time_to_empty_now is always reported as zero
    while the battery is discharging and as a negative value while
    the battery is charging. This is because current is negative while
    the battery is discharging.
    
    Fix the check introduced by commit b0525b48 so that time_to_empty_now
    is reported correctly during discharge and as zero while charging.
    
    Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
    Acked-by: Daniel Mack <daniel@caiaq.de>
    Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit bd5235a5e5c6b1f180722a46611ab110d06adb69
Author: Milton Miller <miltonm@bga.com>
Date:   Fri Jan 7 02:55:06 2011 -0600

    virtio: remove virtio-pci root device
    
    commit 8b3bb3ecf1934ac4a7005ad9017de1127e2fbd2f upstream.
    
    We sometimes need to map between the virtio device and
    the given pci device. One such use is OS installer that
    gets the boot pci device from BIOS and needs to
    find the relevant block device. Since it can't,
    installation fails.
    
    Instead of creating a top-level devices/virtio-pci
    directory, create each device under the corresponding
    pci device node.  Symlinks to all virtio-pci
    devices can be found under the pci driver link in
    bus/pci/drivers/virtio-pci/devices, and all virtio
    devices under drivers/bus/virtio/devices.
    
    Signed-off-by: Milton Miller <miltonm@bga.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Tested-by: Michael S. Tsirkin <mst@redhat.com>
    Acked-by: Gleb Natapov <gleb@redhat.com>
    Tested-by: "Daniel P. Berrange" <berrange@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit ca41567c53cdcc735571092e838d996c1150c70b
Author: Tejun Heo <tj@kernel.org>
Date:   Wed Dec 22 10:06:36 2010 +0100

    PCI: pci-stub: ignore zero-length id parameters
    
    commit 99a0fadf561e1f553c08f0a29f8b2578f55dd5f0 upstream.
    
    pci-stub uses strsep() to separate list of ids and generates a warning
    message when it fails to parse an id.  However, not specifying the
    parameter results in ids set to an empty string.  strsep() happily
    returns the empty string as the first token and thus triggers the
    warning message spuriously.
    
    Make the tokner ignore zero length ids.
    
    Reported-by: Chris Wright <chrisw@sous-sol.org>
    Reported-by: Prasad Joshi <P.G.Joshi@student.reading.ac.uk>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 6cc795e4261bad5beb01adb0125e886c8750ac5c
Author: Thomas Taranowski <tom@baringforge.com>
Date:   Wed Jan 12 17:00:44 2011 -0800

    rapidio: fix hang on RapidIO doorbell queue full condition
    
    commit 12a4dc43911785f51a596f771ae0701b18d436f1 upstream.
    
    In fsl_rio_dbell_handler() the code currently simply acknowledges the QFI
    queue full interrupt, but does nothing to resolve the queue full
    condition.  Instead, it jumps to the end of the isr.  When a queue full
    condition occurs, the isr is then re-entered immediately and continually,
    forever.
    
    The fix is to just fall through and read out current doorbell entries.
    
    Signed-off-by: Thomas Taranowski <tom@baringforge.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Alexandre Bounine <alexandre.bounine@idt.com>
    Cc: Kumar Gala <galak@kernel.crashing.org>
    Cc: Matt Porter <mporter@kernel.crashing.org>
    Cc: Li Yang <leoli@freescale.com>
    Cc: Thomas Moll <thomas.moll@sysgo.com>
    Cc: Micha Nelissen <micha@neli.hopto.org>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Grant Likely <grant.likely@secretlab.ca>
    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 377490f5fdb3f967667ea0d2634938a671625f06
Author: Don Fry <donald.h.fry@intel.com>
Date:   Sun Feb 6 09:29:45 2011 -0800

    iwlagn: Re-enable RF_KILL interrupt when down
    
    commit 3dd823e6b86407aed1a025041d8f1df77e43a9c8 upstream.
    
    With commit 554d1d027b19265c4aa3f718b3126d2b86e09a08 only one RF_KILL
    interrupt will be seen by the driver when the interface is down.
    
    Re-enable the interrupt when it occurs to see all transitions.
    
    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: 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 1d2b536410df084435e2453a504ad2fedd46b690
Author: Paul Fox <pgf@laptop.org>
Date:   Wed Jan 12 17:00:07 2011 -0800

    rtc-cmos: fix suspend/resume
    
    commit 2fb08e6ca9f00d1aedb3964983e9c8f84b36b807 upstream.
    
    rtc-cmos was setting suspend/resume hooks at the device_driver level.
    However, the platform bus code (drivers/base/platform.c) only looks for
    resume hooks at the dev_pm_ops level, or within the platform_driver.
    
    Switch rtc_cmos to use dev_pm_ops so that suspend/resume code is executed
    again.
    
    Paul said:
    
    : The user visible symptom in our (XO laptop) case was that rtcwake would
    : fail to wake the laptop.  The RTC alarm would expire, but the wakeup
    : wasn't unmasked.
    :
    : As for severity, the impact may have been reduced because if I recall
    : correctly, the bug only affected platforms with CONFIG_PNP disabled.
    
    Signed-off-by: Paul Fox <pgf@laptop.org>
    Signed-off-by: Daniel Drake <dsd@laptop.org>
    Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
    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 5df006274e1b1701e2fa185808fcee59ebb7c108
Author: Chuck Lever <chuck.lever@oracle.com>
Date:   Fri Jan 21 15:54:57 2011 +0000

    NFS: Fix "kernel BUG at fs/aio.c:554!"
    
    commit 839f7ad6932d95f4d5ae7267b95c574714ff3d5b upstream.
    
    Nick Piggin reports:
    
    > I'm getting use after frees in aio code in NFS
    >
    > [ 2703.396766] Call Trace:
    > [ 2703.396858]  [<ffffffff8100b057>] ? native_sched_clock+0x27/0x80
    > [ 2703.396959]  [<ffffffff8108509e>] ? put_lock_stats+0xe/0x40
    > [ 2703.397058]  [<ffffffff81088348>] ? lock_release_holdtime+0xa8/0x140
    > [ 2703.397159]  [<ffffffff8108a2a5>] lock_acquire+0x95/0x1b0
    > [ 2703.397260]  [<ffffffff811627db>] ? aio_put_req+0x2b/0x60
    > [ 2703.397361]  [<ffffffff81039701>] ? get_parent_ip+0x11/0x50
    > [ 2703.397464]  [<ffffffff81612a31>] _raw_spin_lock_irq+0x41/0x80
    > [ 2703.397564]  [<ffffffff811627db>] ? aio_put_req+0x2b/0x60
    > [ 2703.397662]  [<ffffffff811627db>] aio_put_req+0x2b/0x60
    > [ 2703.397761]  [<ffffffff811647fe>] do_io_submit+0x2be/0x7c0
    > [ 2703.397895]  [<ffffffff81164d0b>] sys_io_submit+0xb/0x10
    > [ 2703.397995]  [<ffffffff8100307b>] system_call_fastpath+0x16/0x1b
    >
    > Adding some tracing, it is due to nfs completing the request then
    > returning something other than -EIOCBQUEUED, so aio.c
    > also completes the request.
    
    To address this, prevent the NFS direct I/O engine from completing
    async iocbs when the forward path returns an error without starting
    any I/O.
    
    This fix appears to survive ^C during both "xfstest no. 208" and "fsx
    -Z."
    
    It's likely this bug has existed for a very long while, as we are seeing
    very similar symptoms in OEL 5.  Copying stable.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    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 2045cadb2357c23a0bb334b993af0f2e55a1d8fb
Author: Mike Frysinger <vapier@gentoo.org>
Date:   Tue Jan 11 19:57:33 2011 -0500

    ASoC: Blackfin AC97: fix build error after multi-component update
    
    commit e9c2048915048d605fd76539ddd96f00d593e1eb upstream.
    
    We need to tweak how we query the active capture/playback state after
    the recent overhauls of common code.
    
    Signed-off-by: Mike Frysinger <vapier@gentoo.org>
    Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 86cd20034021d74ebd0e79e96ef4d74d7e802486
Author: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Date:   Fri Jan 14 15:59:13 2011 +0000

    ASoC: WM8990: msleep() takes milliseconds not jiffies
    
    commit 7ebcf5d6021a696680ee77d9162a2edec2d671dd upstream.
    
    Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
    Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit a0f33df166682a70c1d8aaa28aadbb4e4d4e9370
Author: Clemens Ladisch <clemens@ladisch.de>
Date:   Thu Feb 10 16:15:44 2011 +0100

    ALSA: hrtimer: handle delayed timer interrupts
    
    commit b1d4f7f4bdcf9915c41ff8cfc4425c84dabb1fde upstream.
    
    If a timer interrupt was delayed too much, hrtimer_forward_now() will
    forward the timer expiry more than once.  When this happens, the
    additional number of elapsed ALSA timer ticks must be passed to
    snd_timer_interrupt() to prevent the ALSA timer from falling behind.
    
    This mostly fixes MIDI slowdown problems on highly-loaded systems with
    badly behaved interrupt handlers.
    
    Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reported-and-tested-by: Arthur Marsh <arthur.marsh@internode.on.net>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 72784680f1c730c89a067930f8d4ec0e88d488ed
Author: Edgar (gimli) Hucek <gimli@dark-green.com>
Date:   Tue Nov 9 17:38:42 2010 +0100

    input: bcm5974: Add support for MacBookAir3
    
    commit 6021afcf19d8c6f5db6d11cadcfb6a22d0c28a48 upstream.
    
    This patch adds support for the MacBookAir3,1 and MacBookAir3,2
    models.
    
    [rydberg@euromail.se: touchpad range calibration]
    Signed-off-by: Edgar (gimli) Hucek <gimli@dark-green.com>
    Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 76ad0710fcbdbea25be092f68cc55a40703706af
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Feb 2 17:16:38 2011 +0100

    ALSA: hda - Fix memory leaks in conexant jack arrays
    
    commit 70f7db11c45a313b23922cacf248c613c3b2144c upstream.
    
    The Conexant codec driver adds the jack arrays in init callback which
    may be called also in each PM resume.  This results in the addition of
    new jack element at each time.
    
    The fix is to check whether the requested jack is already present in
    the array.
    
    Reference: Novell bug 668929
    	https://bugzilla.novell.com/show_bug.cgi?id=668929
    
    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 cf789a9168dc89e10926d85e14257843945d99a6
Author: David Henningsson <david.henningsson@canonical.com>
Date:   Tue Jan 25 19:44:26 2011 +0100

    ALSA: HDA: Fix dmesg output of HDMI supported bits
    
    commit d757534ed15387202e322854cd72dc58bbb975de upstream.
    
    This typo caused the dmesg output of the supported bits of HDMI
    to be cut off early.
    
    Signed-off-by: David Henningsson <david.henningsson@canonical.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 c04265109cbe48d623bda599e96a3e9fa7b51db7
Author: Raymond Yau <superquad.vortex2@gmail.com>
Date:   Sun Jan 16 10:55:54 2011 +0800

    ALSA : au88x0 - Limit number of channels to fix Oops via OSS emu
    
    commit d9ab344336f74c012f6643ed3d1ad8ca0136de3b upstream.
    
    Fix playback/capture channels patch to change supported playback
    channels of au8830 to 1,2,4 and capture channels to 1,2.
    This prevent oops when oss emulation use SNDCTL_DSP_CHANNELS to
    set 3 Channels
    
    Signed-off-by: Raymond Yau <superquad.vortex2@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 9e5ad61f8d81da0b58535ac2cf60d36e26ca567a
Author: Mauro Carvalho Chehab <mchehab@redhat.com>
Date:   Mon Oct 25 17:51:15 2010 -0300

    em28xx: Fix audio input for Terratec Grabby
    
    commit a3fa904ec79b94f0db7faed010ff94d42f7d1d47 upstream.
    
    The audio input line was wrong. Fix 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 9c198dad83c19a05a11b5a195242f3e8dcbe55f4
Author: Mauro Carvalho Chehab <mchehab@redhat.com>
Date:   Thu Jan 6 08:16:04 2011 -0200

    radio-aimslab.c: Fix gcc 4.5+ bug
    
    commit e3c92215198cb6aa00ad38db2780faa6b72e0a3f upstream.
    
    gcc 4.5+ doesn't properly evaluate some inlined expressions.
    A previous patch were proposed by Andrew Morton using noinline.
    However, the entire inlined function is bogus, so let's just
    remove it and be happy.
    
    Reported-by: Andrew Morton <akpm@linux-foundation.org>
    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 2e001e82b7d37f374261b5f8290f58976363234b
Author: Kashyap, Desai <kashyap.desai@lsi.com>
Date:   Tue Jan 4 11:38:39 2011 +0530

    mpt2sas: Kernel Panic during Large Topology discovery
    
    commit 4224489f45b503f0a1f1cf310f76dc108f45689a upstream.
    
    There was a configuration page timing out during the initial port
    enable at driver load time. The port enable would fail, and this would
    result in the driver unloading itself, meanwhile the driver was accessing
    freed memory in another context resulting in the panic.  The fix is to
    prevent access to freed memory once the driver had issued the diag reset
    which woke up the sleeping port enable process.  The routine
    _base_reset_handler was reorganized so the last sleeping process woken up was
    the port_enable.
    
    Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
    Signed-off-by: James Bottomley <James.Bottomley@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit e38e3219fdd87269cf63a696e5cc7b2e54d60405
Author: Kashyap, Desai <kashyap.desai@lsi.com>
Date:   Tue Jan 4 11:34:57 2011 +0530

    mpt2sas: Correct resizing calculation for max_queue_depth
    
    commit 11e1b961ab067ee3acaf723531da4d3f23e1d6f7 upstream.
    
    The ioc->hba_queue_depth is not properly resized when the controller
    firmware reports that it supports more outstanding IO than what can be fit
    inside the reply descriptor pool depth. This is reproduced by setting the
    controller global credits larger than 30,000. The bug results in an
    incorrect sizing of the queues. The fix is to resize the queue_size by
    dividing queue_diff by two.
    
    Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
    Signed-off-by: James Bottomley <James.Bottomley@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit fbc633e83f67c91926ba25ee33ee9872c51e303f
Author: Kashyap, Desai <kashyap.desai@lsi.com>
Date:   Tue Jan 4 11:32:13 2011 +0530

    mpt2sas: Fix device removal handshake for zoned devices
    
    commit 4dc2757a2e9a9d1f2faee4fc6119276fc0061c16 upstream.
    
    When zoning end devices, the driver is not sending device
    removal handshake alogrithm to firmware. This results in controller
    firmware not sending sas topology add events the next time the device is
    added. The fix is the driver should be doing the device removal handshake
    even though the PHYSTATUS_VACANT bit is set in the PhyStatus of the
    event data. The current design is avoiding the handshake when the
    VACANT bit is set in the phy status.
    
    Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
    Signed-off-by: James Bottomley <James.Bottomley@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit b58639720eac254dcf92195d3ae08edd67863540
Author: James Bottomley <James.Bottomley@suse.de>
Date:   Thu Jan 20 17:26:44 2011 -0600

    libsas: fix runaway error handler problem
    
    commit 9ee91f7fb550a4c82f82d9818e42493484c754af upstream.
    
    libsas makes use of scsi_schedule_eh() but forgets to clear the
    host_eh_scheduled flag in its error handling routine.  Because of this,
    the error handler thread never gets to sleep; it's constantly awake and
    trying to run the error routine leading to console spew and inability to
    run anything else (at least on a UP system).  The fix is to clear the
    flag as we splice the work queue.
    
    Signed-off-by: James Bottomley <James.Bottomley@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 90b97746d7566dd0215f757dffcf6ae02017f533
Author: James Bottomley <James.Bottomley@suse.de>
Date:   Fri Dec 17 15:36:34 2010 -0500

    fix medium error problems with some arrays which can cause data corruption
    
    commit a8733c7baf457b071528e385a0b7d4aaec79287c upstream.
    
    Our current handling of medium error assumes that data is returned up
    to the bad sector.  This assumption holds good for all disk devices,
    all DIF arrays and most ordinary arrays.  However, an LSI array engine
    was recently discovered which reports a medium error without returning
    any data.  This means that when we report good data up to the medium
    error, we've reported junk originally in the buffer as good.  Worse,
    if the read consists of requested data plus a readahead, and the error
    occurs in readahead, we'll just strip off the readahead and report
    junk up to userspace as good data with no error.
    
    The fix for this is to have the error position computation take into
    account the amount of data returned by the driver using the scsi
    residual data.  Unfortunately, not every driver fills in this data,
    but for those who don't, it's set to zero, which means we'll think a
    full set of data was transferred and the behaviour will be identical
    to the prior behaviour of the code (believe the buffer up to the error
    sector).  All modern drivers seem to set the residual, so that should
    fix up the LSI failure/corruption case.
    
    Reported-by: Douglas Gilbert <dgilbert@interlog.com>
    Signed-off-by: James Bottomley <James.Bottomley@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 724f5feecb5ec1b67db3b67b6aa45d08da2caf59
Author: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Date:   Wed Nov 10 05:03:15 2010 -0800

    ath9k: Fix bug in delimiter padding computation
    
    commit 39ec2997c374b528cdbf65099b6d6b8593a67f7f upstream.
    
    There is a roundng error in delimiter padding computation
    which causes severe throughput drop with some of AR9003.
    
    signed-off-by: Felix Fietkau <nbd@openwrt.org>
    Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.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 70f11ca245c351cc64db6f9b0fab31001b972413
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Thu Dec 23 12:38:21 2010 +0100

    iwlagn: enable only rfkill interrupt when device is down
    
    commit 554d1d027b19265c4aa3f718b3126d2b86e09a08 upstream.
    
    Since commit 6cd0b1cb872b3bf9fc5de4536404206ab74bafdd "iwlagn: fix
    hw-rfkill while the interface is down", we enable interrupts when
    device is not ready to receive them. However hardware, when it is in
    some inconsistent state, can generate other than rfkill interrupts
    and crash the system. I can reproduce crash with "kernel BUG at
    drivers/net/wireless/iwlwifi/iwl-agn.c:1010!" message, when forcing
    firmware restarts.
    
    To fix only enable rfkill interrupt when down device and after probe.
    I checked patch on laptop with 5100 device, rfkill change is still
    passed to user space when device is down.
    
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.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 8bf615aa447b026c79847c0cbef5748add62c1ce
Author: Haiyang Zhang <haiyangz@microsoft.com>
Date:   Wed Feb 2 13:42:58 2011 -0800

    staging: hv: Enable sending GARP packet after live migration
    
    commit 7c161d0b900ea9bd9fc5ea5d3fa9916e9eb0dd88 upstream.
    
    The hv_netvsc gets RNDIS_STATUS_MEDIA_CONNECT event after the VM
    is live migrated. Adding call to netif_notify_peers() for this event
    to send GARP (Gratuitous ARP) to notify network peers. Otherwise,
    the VM's network connection may stop after a live migration.
    
    This patch should also be applied to stable kernel 2.6.32 and later.
    
    Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
    Signed-off-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 ddad244f7a8d7ac810cefe919a750383d4dc7ff6
Author: Ky Srinivasan <ksrinivasan@novell.com>
Date:   Thu Dec 16 18:59:19 2010 -0700

    Staging: hv: fix sysfs symlink on hv block device
    
    commit 268eff909afaca93188d2d14554cbf824f6a0e41 upstream.
    
    The block device does not create the proper symlink in sysfs because we
    forgot to set up the gendisk structure properly.  This patch fixes the
    issue.
    
    Signed-off-by: K. Y. Srinivasan <ksrinivasan@novell.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Hank Janssen <hjanssen@microsoft.com>
    Cc: Haiyang Zhang <haiyangz@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit b63383a733aaa1cfb15d7da2339e7d6a265d9ab0
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Wed Jan 19 11:48:44 2011 +0000

    staging: comedi: ni_labpc: Use shared IRQ for PCMCIA card
    
    commit d1ce318496f5943d2cc5e20171fc383a59a1421f upstream.
    
    The ni_labpc driver module only requests a shared IRQ for PCI devices,
    requesting a non-shared IRQ for non-PCI devices.
    As this module is also used by the ni_labpc_cs module for certain
    National Instruments PCMCIA cards, it also needs to request a shared IRQ
    for PCMCIA devices, otherwise you get a IRQ mismatch with the CardBus
    controller.
    
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit a99686bd98eb3baccacdfa0e6becfa97c90f427b
Author: Ruben Smits <ruben.smits@mech.kuleuven.be>
Date:   Sat Dec 11 08:26:18 2010 +0100

    staging: comedi: add support for newer jr3 1-channel pci board
    
    commit 6292817d58637f85dd623cfe563c7f5ec4f4c470 upstream.
    
    add DEVICE_ID to table
    
    Signed-off-by: Ruben Smits <ruben.smits@mech.kuleuven.be>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 011fd193cd1ead28d3d408a6dae89ad0f4649a16
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Mon Jan 31 10:56:37 2011 -0500

    USB: prevent buggy hubs from crashing the USB stack
    
    commit d199c96d41d80a567493e12b8e96ea056a1350c1 upstream.
    
    If anyone comes across a high-speed hub that (by mistake or by design)
    claims to have no Transaction Translators, plugging a full- or
    low-speed device into it will cause the USB stack to crash.  This
    patch (as1446) prevents the problem by ignoring such devices, since
    the kernel has no way to communicate with them.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Tested-by: Perry Neben <neben@vmware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit fd211cc38c1904b1e829e595a20f55e69eb4f368
Author: Michael Williamson <michael.h.williamson@gmail.com>
Date:   Thu Jan 27 18:36:19 2011 -0600

    USB: ftdi_sio: Add VID=0x0647, PID=0x0100 for Acton Research spectrograph
    
    commit 28fe2eb0162a1d23370dd99ff7d0e35632b1ee91 upstream.
    
    Add the USB Vendor ID and Product ID for a Acton Research Corp.
    spectrograph device with a FTDI chip for serial I/O.
    
    Signed-off-by: Michael H Williamson <michael.h.williamson@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 8cb24112de67da453888fe7ddcf8b2e3b03401dd
Author: Arvid Ephraim Picciani <arvid.picciani@nokia.com>
Date:   Tue Jan 25 15:58:40 2011 +0100

    USB: cdc-acm: Adding second ACM channel support for Nokia N8
    
    commit 721d92fc6373dee15846216f9d178ec240ec0fd7 upstream.
    
    This adds the N8 to the list of devices in cdc-acm, in order to get the
    secondary ACM device exposed.
    
    In the spirit of:
    http://kerneltrap.org/mailarchive/linux-usb/2010/9/4/6264554
    
    Signed-off-by: Arvid Ephraim Picciani <arvid.picciani@nokia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 5d2084b8acf15af976199fda0d199c2d71d479e0
Author: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Date:   Sat Jan 29 15:32:52 2011 +0100

    USB: ftdi_sio: add ST Micro Connect Lite uart support
    
    commit 6ec2f46c4b4abf48c88c0ae7c476f347b97e1105 upstream.
    
    on ST Micro Connect Lite we have 4 port
    Part A and B for the JTAG
    Port C Uart
    Port D for PIO
    
    Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit f522aa8db193529e265a2c090f45757ce5b0e4f3
Author: Nick Holloway <Nick.Holloway@pyrites.org.uk>
Date:   Wed Jan 26 21:47:43 2011 +0000

    USB: Storage: Add unusual_devs entry for VTech Kidizoom
    
    commit c25f6b1591b158f7ae3b9132367d0fa6d632e70e upstream.
    
    This device suffers from the off-by-one error when reporting the capacity,
    so add entry with US_FL_FIX_CAPACITY.
    
    Signed-off-by: Nick Holloway <Nick.Holloway@pyrites.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 9c816d50bf4cf75e13a44233cf38cb54215ab976
Author: Ionut Nicu <ionut.nicu@gmail.com>
Date:   Tue Dec 28 22:21:08 2010 +0200

    USB: ti_usb: fix module removal
    
    commit b14de3857227cd978f515247853fd15cc2425d3e upstream.
    
    If usb_deregister() is called after usb_serial_deregister() when
    the device is plugged in, the following Oops occurs:
    
    [   95.337377] BUG: unable to handle kernel NULL pointer dereference at 00000010
    [   95.338236] IP: [<c0776b2d>] klist_put+0x12/0x62
    [   95.338356] *pdpt = 000000003001a001 *pde = 0000000000000000
    [   95.338356] Oops: 0000 [#1] SMP
    [   95.340499] last sysfs file: /sys/devices/pci0000:00/0000:00:1d.2/usb8/idVendor
    [   95.340499] Modules linked in: ti_usb_3410_5052(-) usbserial cpufreq_ondemand acpi_cpufreq mperf iptable_nat nf_nat iptable_mangle ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter ip6_tables ipv6 uinput arc4 ecb iwlagn iwlcore mac80211 cfg80211 microcode pcspkr acer_wmi joydev wmi sky2 [last unloaded: scsi_wait_scan]
    [   95.341908]
    [   95.341908] Pid: 1532, comm: modprobe Not tainted 2.6.37-rc7+ #6 Eiger                          /Aspire 5930
    [   95.341908] EIP: 0060:[<c0776b2d>] EFLAGS: 00010246 CPU: 0
    [   95.341908] EIP is at klist_put+0x12/0x62
    [   95.341908] EAX: 00000000 EBX: eedc0c84 ECX: c09c21b4 EDX: 00000001
    [   95.341908] ESI: 00000000 EDI: efaa0c1c EBP: f214fe2c ESP: f214fe1c
    [   95.341908]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
    [   95.341908] Process modprobe (pid: 1532, ti=f214e000 task=efaaf080 task.ti=f214e000)
    [   95.341908] Stack:
    [   95.341908]  f214fe24 eedc0c84 efaaf080 efaa0c1c f214fe34 c0776ba8 f214fe5c c0776c76
    [   95.341908]  c09c21b4 c09c21b4 eedc0c84 efaaf080 00000000 c0634398 eafe2d1c f7b515f0
    [   95.341908]  f214fe6c c0631b5c eafe2d50 eafe2d1c f214fe7c c0631ba2 eafe2d1c eafe2c00
    [   95.341908] Call Trace:
    [   95.341908]  [<c0776ba8>] ? klist_del+0xd/0xf
    [   95.341908]  [<c0776c76>] ? klist_remove+0x48/0x74
    [   95.341908]  [<c0634398>] ? devres_release_all+0x49/0x51
    [   95.341908]  [<c0631b5c>] ? __device_release_driver+0x7b/0xa4
    [   95.341908]  [<c0631ba2>] ? device_release_driver+0x1d/0x28
    [   95.341908]  [<c06317c4>] ? bus_remove_device+0x92/0xa1
    [   95.341908]  [<c062f3d8>] ? device_del+0xf9/0x13e
    [   95.341908]  [<f7b06146>] ? usb_serial_disconnect+0xd9/0x116 [usbserial]
    [   95.341908]  [<c0681e3f>] ? usb_disable_interface+0x32/0x40
    [   95.341908]  [<c0683972>] ? usb_unbind_interface+0x48/0xfd
    [   95.341908]  [<c0631b43>] ? __device_release_driver+0x62/0xa4
    [   95.341908]  [<c06320b9>] ? driver_detach+0x62/0x81
    [   95.341908]  [<c0631a41>] ? bus_remove_driver+0x8f/0xae
    [   95.341908]  [<c063214c>] ? driver_unregister+0x50/0x57
    [   95.341908]  [<c0682f95>] ? usb_deregister+0x77/0x84
    [   95.341908]  [<f7b505b6>] ? ti_exit+0x26/0x28 [ti_usb_3410_5052]
    [   95.341908]  [<c046a307>] ? sys_delete_module+0x181/0x1de
    [   95.341908]  [<c04e2727>] ? path_put+0x1a/0x1d
    [   95.341908]  [<c047f4c5>] ? audit_syscall_entry+0x116/0x138
    [   95.341908]  [<c04094df>] ? sysenter_do_call+0x12/0x28
    [   95.341908] Code: 00 83 7d f0 00 74 09 85 f6 74 05 89 f0 ff 55 f0 8b 43 04 5a 5b 5e 5f 5d c3 55 89 e5 57 56 53 89 c3 83 ec 04 8b 30 83 e6 fe 89 f0 <8b> 7e 10 88 55 f0 e8 47 26 01 00 8a 55 f0 84 d2 74 17 f6 03 01
    [   95.341908] EIP: [<c0776b2d>] klist_put+0x12/0x62 SS:ESP 0068:f214fe1c
    [   95.341908] CR2: 0000000000000010
    [   95.342357] ---[ end trace 8124d00ad871ad18 ]---
    
    Signed-off-by: Ionut Nicu <ionut.nicu@mindbit.ro>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 2486a6e5f8fc141f66213999bfcc1283847c56aa
Author: Bjørn Mork <bjorn@mork.no>
Date:   Mon Jan 17 14:19:37 2011 +0100

    USB: io_edgeport: fix the reported firmware major and minor
    
    commit 271c1150b4f8e1685e5a8cbf76e329ec894481da upstream.
    
    The major and minor number saved in the product_info structure
    were copied from the address instead of the data, causing an
    inconsistency in the reported versions during firmware loading:
    
     usb 4-1: firmware: requesting edgeport/down.fw
     /usr/src/linux/drivers/usb/serial/io_edgeport.c: downloading firmware version (930) 1.16.4
     [..]
     /usr/src/linux/drivers/usb/serial/io_edgeport.c: edge_startup - time 3 4328191260
     /usr/src/linux/drivers/usb/serial/io_edgeport.c:   FirmwareMajorVersion  0.0.4
    
    This can cause some confusion whether firmware loaded successfully
    or not.
    
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 1569eab1b3b913d846145e3d90a40c234b3e5078
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Mon Jan 10 11:24:14 2011 -0500

    USB: g_printer: fix bug in module parameter definitions
    
    commit ad84e4a9efb7c8ed322bafb6ebdb9c3a49a3d3a8 upstream.
    
    This patch (as1442) fixes a bug in g_printer: Module parameters should
    not be marked "__initdata" if they are accessible in sysfs (i.e., if
    the mode value in the module_param() macro is nonzero).  Otherwise
    attempts to access the parameters will cause addressing violations.
    
    Character-string module parameters must not be marked "__initdata"
    if the module can be unloaded, because the kernel needs to access the
    parameter variable at unload time in order to free the
    dynamically-allocated string.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    CC: Roland Kletzing <devzero@web.de>
    CC: Craig W. Nadler <craig@nadler.us>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 58433a68ee1e403c9cf79ba15b3fca93f09b346b
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Thu Jan 6 10:17:09 2011 -0500

    USB: EHCI: fix DMA deallocation bug
    
    commit f75593ceaa08e6d27aec1a5de31cded19e850dd1 upstream.
    
    This patch (as1440) fixes a bug in ehci-hcd.  ehci->periodic_size is
    used to compute the size in a dma_alloc_coherent() call, but then it
    gets changed later on.  As a result, the corresponding call to
    dma_free_coherent() passes a different size from the original
    allocation.  Fix the problem by adjusting ehci->periodic_size before
    carrying out any of the memory allocations.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Tested-by: Larry Finger <Larry.Finger@lwfinger.net>
    CC: David Brownell <david-b@pacbell.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit eaeca4a0480ed6bc3f3a5af1478e7b56458f05ae
Author: Alex He <alex.he@amd.com>
Date:   Tue Dec 21 17:45:46 2010 +0800

    USB: EHCI: ASPM quirk of ISOC on AMD Hudson
    
    commit baab93afc2844b68d57b0dcca5e1d34c5d7cf411 upstream.
    
    AMD Hudson also needs the same ASPM quirk as SB800
    
    Signed-off-by: Alex He <alex.he@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit c7b6be3f203b079eb747e1154c88c7da92cbbbc3
Author: Nicolaus Colberg <nicolaus.colberg@cinterion.com>
Date:   Wed Jan 12 16:30:03 2011 +0100

    USB: adding USB support for Cinterion's HC2x, EU3 and PH8 products
    
    commit aa52b3a92918039b273fc9d1994bd34227c40269 upstream.
    
    /drivers/usb/serial/option.c: Adding support for Cinterion's HC25, HC28,
    HC28J, EU3-E, EU3-P and PH8 by correcting/adding Cinterion's and
    Siemens' Vendor IDs as well as Product IDs and USB_DEVICE tuples
    
    Signed-off-by: Nicolaus Colberg <nicolaus.colberg@cinterion.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 1bb27e3ab6d7db2c8c82e00f55067b052f5a851e
Author: Pieter Maes <maescool@gmail.com>
Date:   Tue Jan 18 00:26:16 2011 +0100

    USB: serial: Updated support for ICOM devices
    
    commit a9d61bc49188e32d2ae9cf0f683cde3e1744feef upstream.
    
    I found the original patch on the db0fhn repeater wiki (couldn't find the email
    of the origial author) I guess it was never commited.
    I updated and added some Icom HAM-radio devices to the ftdi driver.
    Added extra comments to make clear what devices it are.
    
    Signed-off-by: Pieter Maes <maescool@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 2768003781dc1ce04813a56c186b3b28b4357724
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Tue Jan 25 13:07:04 2011 -0500

    USB: usb-storage: unusual_devs entry for Coby MP3 player
    
    commit 3ea3c9b5a8464ec8223125f95e5dddb3bfd02a39 upstream.
    
    This patch (as1444) adds an unusual_devs entry for an MP3 player from
    Coby electronics.  The device has two nasty bugs.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Tested-by: Jasper Mackenzie <scarletpimpernal@hotmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 1c710dfa6f5670d916e396f2b74aa3731f1f3ad5
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Mon Jan 3 16:47:49 2011 -0500

    USB: usb-storage: unusual_devs entry for CamSport Evo
    
    commit 12f68c480c7155a66bd2a76ab2fef28dd5f93fa2 upstream.
    
    This patch (as1438) adds an unusual_devs entry for the MagicPixel
    FW_Omega2 chip, used in the CamSport Evo camera.  The firmware
    incorrectly reports a vendor-specific bDeviceClass.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Reported-by: <ttkspam@free.fr>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit b4db5d1e8095a9369bc256407a9a11a863b89248
Author: Richard Schütz <r.schtz@t-online.de>
Date:   Wed Dec 22 14:28:56 2010 +0100

    USB: usb-storage: unusual_devs update for TrekStor DataStation maxi g.u external hard drive enclosure
    
    commit 7e1e7bd9dbd469267b6e6de1bf8d71a7d65ce86a upstream.
    
    The TrekStor DataStation maxi g.u external hard drive enclosure uses a
    JMicron USB to SATA chip which needs the US_FL_IGNORE_RESIDUE flag to work
    properly.
    
    Signed-off-by: Richard Schütz <r.schtz@t-online.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 1aa5150d1ec0493d13261d98e93cac0df349896f
Author: Richard Schütz <r.schtz@t-online.de>
Date:   Sun Dec 19 21:18:38 2010 +0100

    USB: usb-storage: unusual_devs update for Cypress ATACB
    
    commit cae41118f50ef0c431e13159df6d7dd8bbd54004 upstream.
    
    New device ID added for unusual Cypress ATACB device.
    
    Signed-off-by: Richard Schütz <r.schtz@t-online.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit bb7404dd6a00288acdceee180323c1857fdba236
Author: Craig Shelley <craig@microtron.org.uk>
Date:   Sun Jan 2 21:59:08 2011 +0000

    USB: CP210x Removed incorrect device ID
    
    commit 9926c0df7b31b2128eebe92e0e2b052f380ea464 upstream.
    
    Device ID removed 0x10C4/0x8149 for West Mountain Radio Computerized
    Battery Analyzer.  This device is actually based on a SiLabs C8051Fxxx,
    see http://www.etheus.net/SiUSBXp_Linux_Driver for further info.
    
    Signed-off-by: Craig Shelley <craig@microtron.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 766172f1fcb9f1c9d3556a9ecf3ba69db5c21e3f
Author: Craig Shelley <craig@microtron.org.uk>
Date:   Sun Jan 2 21:51:46 2011 +0000

    USB: CP210x Add two device IDs
    
    commit faea63f7ccfddfb8fc19798799fcd38c58415172 upstream.
    
    Device Ids added for IRZ Automation Teleport SG-10 GSM/GPRS Modem and
    DekTec DTA Plus VHF/UHF Booster/Attenuator.
    
    Signed-off-by: Craig Shelley <craig@microtron.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit ee3c0087cd62cd7dd83410726c18bbec3803c8dc
Author: Libor Pechacek <lpechacek@suse.cz>
Date:   Fri Jan 14 14:30:21 2011 +0100

    USB: serial: handle Data Carrier Detect changes
    
    commit d14fc1a74e846d7851f24fc9519fe87dc12a1231 upstream.
    
    Alan's commit 335f8514f200e63d689113d29cb7253a5c282967 introduced
    .carrier_raised function in several drivers.  That also means
    tty_port_block_til_ready can now suspend the process trying to open the serial
    port when Carrier Detect is low and put it into tty_port.open_wait queue.  We
    need to wake up the process when Carrier Detect goes high and trigger TTY
    hangup when CD goes low.
    
    Some of the devices do not report modem status line changes, or at least we
    don't understand the status message, so for those we remove .carrier_raised
    again.
    
    Signed-off-by: Libor Pechacek <lpechacek@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit f1ae3bdce55f3f01f0509ffd88eba64b2294bcf0
Author: Jean Delvare <khali@linux-fr.org>
Date:   Wed Jan 12 21:55:09 2011 +0100

    hwmon: (via686a) Initialize fan_div values
    
    commit f790674d3f87df6390828ac21a7d1530f71b59c8 upstream.
    
    Functions set_fan_min() and set_fan_div() assume that the fan_div
    values have already been read from the register. The driver currently
    doesn't initialize them at load time, they are only set when function
    via686a_update_device() is called. This means that set_fan_min() and
    set_fan_div() misbehave if, for example, "sensors -s" is called
    before any monitoring application (e.g. "sensors") is has been run.
    
    Fix the problem by always initializing the fan_div values at device
    bind time.
    
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Acked-by: Guenter Roeck <guenter.roeck@ericsson.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit de754647c46436734c22c45772df377e664e919b
Author: Karsten Wiese <fzu@wemgehoertderstaat.de>
Date:   Tue Jan 4 01:20:37 2011 +0100

    ALSA: snd-usb-us122l: Fix missing NULL checks
    
    commit cdce2db74e156fbd9a2dc3c7b246166f8b70955b upstream.
    
    Fix missing NULL checks in usb_stream_hwdep_poll() and usb_stream_hwdep_ioctl().
    Wake up poll waiters before returning from usb_stream_hwdep_ioctl().
    
    Signed-off-by: Karsten Wiese <fzu@wemgehoertderstaat.de>
    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 68d6ff4e276aec35fbc068cab3e58eb3500dd476
Author: Greg Kroah-Hartman <gregkh@suse.de>
Date:   Tue Jan 25 17:42:29 2011 +0800

    rt2x00: add device id for windy31 usb device
    
    commit 9c4cf6d94fb362c27a24df5223ed6e327eb7279a upstream.
    
    This patch adds the device id for the windy31 USB device to the rt73usb
    driver.
    
    Thanks to Ralf Flaxa for reporting this and providing testing and a
    sample device.
    
    Reported-by: Ralf Flaxa <rf@suse.de>
    Tested-by: Ralf Flaxa <rf@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 66d3a1d691bc17083d7fe1f7745991426e4b1245
Author: Alex He <alex.he@amd.com>
Date:   Tue Dec 7 10:10:08 2010 +0800

    USB: EHCI: ASPM quirk of ISOC on AMD SB800
    
    commit 05570297ecbe834b1756b522412b68eaffb9ab11 upstream.
    
    When ASPM PM Feature is enabled on UMI link, devices that use ISOC stream of
    data transfer may be exposed to longer latency causing less than optimal per-
    formance of the device. The longer latencies are normal and are due to link
    wake time coming out of low power state which happens frequently to save
    power when the link is not active.
    The following code will make exception for certain features of ASPM to be by
    passed and keep the logic normal state only when the ISOC device is connected
    and active. This change will allow the device to run at optimal performance
    yet minimize the impact on overall power savings.
    
    Signed-off-by: Alex He <alex.he@amd.com>
    Acked-by: David Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 62d0105c0950d18f92d5c056d0ddb1ac55840c5a
Author: Márton Németh <nm127@freemail.hu>
Date:   Mon Dec 13 21:59:09 2010 +0100

    staging: usbip: remove double giveback of URB
    
    commit 7571f089d7522a95c103558faf313c7af8856ceb upstream.
    
    In the vhci_urb_dequeue() function the TCP connection is checked twice.
    Each time when the TCP connection is closed the URB is unlinked and given
    back. Remove the second attempt of unlinking and giving back of the URB completely.
    
    This patch fixes the bug described at https://bugzilla.kernel.org/show_bug.cgi?id=24872 .
    
    Signed-off-by: Márton Németh <nm127@freemail.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 48e6b121605512d87f8da1ccd014313489c19630
Author: David Howells <dhowells@redhat.com>
Date:   Thu Mar 31 11:57:36 2011 -0700

    Fix cred leak in AF_NETLINK
    
    Patch cab9e9848b9a8283b0504a2d7c435a9f5ba026de to the 2.6.35.y stable tree
    stored a ref to the current cred struct in struct scm_cookie.  This was fine
    with AF_UNIX as that calls scm_destroy() from its packet sending functions, but
    AF_NETLINK, which also uses scm_send(), does not call scm_destroy() - meaning
    that the copied credentials leak each time SCM data is sent over a netlink
    socket.
    
    This can be triggered quite simply on a Fedora 13 or 14 userspace with the
    2.6.35.11 kernel (or something based off of that) by calling:
    
    	#!/bin/bash
    	for ((i=0; i<100; i++))
    	do
    		su - -c /bin/true
    		cut -d: -f1 /proc/slabinfo | grep 'cred\|key\|task_struct'
    		cat /proc/keys | wc -l
    	done
    
    This leaks the session key that pam_keyinit creates for 'su -', which appears
    in /proc/keys as being revoked (has the R flag set against it) afterward su is
    called.
    
    Furthermore, if CONFIG_SLAB=y, then the cred and key slab object usage counts
    can be viewed and seen to increase.  The key slab increases by one object per
    loop, and this can be seen after the system has had a couple of minutes to
    stand after the script above has been run on it.
    
    If the system is working correctly, the key and cred counts should return to
    roughly what they were before.
    
    Signed-off-by: David Howells <dhowells@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit c556eedc001797517011d7e68a3be5dd437a2054
Author: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Date:   Fri Sep 17 21:53:41 2010 -0300

    thinkpad-acpi: avoid keymap pitfall
    
    [ upstream commit fc6e756894b703952fd277a1f98a5d93e7ba847a ]
    
    Change the code so that it will use the correct size for keymap entries.
    Do it in a way that makes it harder to screw it up in the future.
    
    Reported-by: Jaime Velasco Juan <jsagarribay@gmail.com>
    Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
    Signed-off-by: Matthew Garrett <mjg@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 41013dc84c7f72133d54a79c46c96bdf9c776191
Author: Jens Taprogge <jens.taprogge@taprogge.org>
Date:   Mon Aug 9 23:48:22 2010 -0300

    thinkpad-acpi: Add KEY_CAMERA (Fn-F6) for Lenovo keyboards
    
    [ upstream commit 2b75426282a8eb29d0a004ef0d289b0491c719be ]
    
    On the T410s and most likely other current models, Fn-F6 is labeled as
    Camera/Headphone key.  Report key presses as KEY_CAMERA.
    
    Signed-off-by: Jens Taprogge <jens.taprogge@taprogge.org>
    Acked-by: Jerone Young <jerone.young@canonical.com>
    Acked-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
    Signed-off-by: Matthew Garrett <mjg@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 27bfb47045fd180d635aea0ef704d591b7fd420f
Author: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Date:   Mon Aug 9 23:48:21 2010 -0300

    thinkpad-acpi: add support for model-specific keymaps
    
    [ upstream commit d1e14dca6a18aa40394316c872993ae3bc7e311a ]
    
    Use the quirks engine to select model-specific keymaps, which makes
    it much easier to extend should we need it.
    
    Keycodes are based on the tables at
    http://www.thinkwiki.org/wiki/Default_meanings_of_special_keys.
    
    Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
    Signed-off-by: Matthew Garrett <mjg@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 5ab76b295a4922e7331ad846c3828d5daf709f45
Author: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Date:   Mon Aug 9 23:48:20 2010 -0300

    thinkpad-acpi: lock down size of hotkey keymap
    
    [ upstream commit 34a656d22f5539f613b93e7a1d14b4bd53592505 ]
    
    Use a safer coding style for the hotkey keymap.  This does not fix any
    problems, as the current code is correct.  But it might help avoid
    mistakes in the future.
    
    Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
    Signed-off-by: Matthew Garrett <mjg@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

commit 04c0aca8ff980e0654d4b4f519cab8da7ede638e
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Mon Aug 2 18:59:28 2010 -0300

    perf session: Invalidate last_match when removing threads from rb_tree
    
    [ upstream commit 70597f21f128b7dd6a2490078bea99d704b6f8c3 ]
    
    If we receive two PERF_RECORD_EXIT for the same thread, we can end up
    reusing session->last_match and trying to remove the thread twice from
    the rb_tree, causing a segfault, so invalidade last_match in
    perf_session__remove_thread.
    
    Receiving two PERF_RECORD_EXIT for the same thread is a bug, but its a
    harmless one if we make the tool more robust, like this patch does.
    
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    LKML-Reference: <new-submission>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>