commit a91990493d107dfa6b21ae3f28665b5ea8987dac
Author: Greg Kroah-Hartman <gregkh@suse.de>
Date:   Fri Jan 6 14:19:58 2012 -0800

    Linux 3.1.8

commit 3cd9332f9e8fc79020b34c3f8cfb1a1a5f8a9bf4
Author: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Date:   Mon Dec 26 10:42:15 2011 +0530

    ath9k: Fix kernel panic in AR2427 in AP mode
    
    commit b25bfda38236f349cde0d1b28952f4eea2148d3f upstream.
    
    don't do aggregation related stuff for 'AP mode client power save
    handling' if aggregation is not enabled in the driver, otherwise it
    will lead to panic because those data structures won't be never
    intialized in 'ath_tx_node_init' if aggregation is disabled
    
    	EIP is at ath_tx_aggr_wakeup+0x37/0x80 [ath9k]
    	EAX: e8c09a20 EBX: f2a304e8 ECX: 00000001 EDX: 00000000
    	ESI: e8c085e0 EDI: f2a304ac EBP: f40e1ca4 ESP: f40e1c8c
    	DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
    	Process swapper/1 (pid: 0, ti=f40e0000 task=f408e860
    	task.ti=f40dc000)
    	Stack:
    	0001e966 e8c09a20 00000000 f2a304ac e8c085e0 f2a304ac
    	f40e1cb0 f8186741
    	f8186700 f40e1d2c f922988d f2a304ac 00000202 00000001
    	c0b4ba43 00000000
    	0000000f e8eb75c0 e8c085e0 205b0001 34383220 f2a304ac
    	f2a30000 00010020
    	Call Trace:
    	[<f8186741>] ath9k_sta_notify+0x41/0x50 [ath9k]
    	[<f8186700>] ? ath9k_get_survey+0x110/0x110 [ath9k]
    	[<f922988d>] ieee80211_sta_ps_deliver_wakeup+0x9d/0x350
    	[mac80211]
    	[<c018dc75>] ? __module_address+0x95/0xb0
    	[<f92465b3>] ap_sta_ps_end+0x63/0xa0 [mac80211]
    	[<f9246746>] ieee80211_rx_h_sta_process+0x156/0x2b0
    	[mac80211]
    	[<f9247d1e>] ieee80211_rx_handlers+0xce/0x510 [mac80211]
    	[<c018440b>] ? trace_hardirqs_on+0xb/0x10
    	[<c056936e>] ? skb_queue_tail+0x3e/0x50
    	[<f9248271>] ieee80211_prepare_and_rx_handle+0x111/0x750
    	[mac80211]
    	[<f9248bf9>] ieee80211_rx+0x349/0xb20 [mac80211]
    	[<f9248949>] ? ieee80211_rx+0x99/0xb20 [mac80211]
    	[<f818b0b8>] ath_rx_tasklet+0x818/0x1d00 [ath9k]
    	[<f8187a75>] ? ath9k_tasklet+0x35/0x1c0 [ath9k]
    	[<f8187a75>] ? ath9k_tasklet+0x35/0x1c0 [ath9k]
    	[<f8187b33>] ath9k_tasklet+0xf3/0x1c0 [ath9k]
    	[<c0151b7e>] tasklet_action+0xbe/0x180
    
    Cc: Senthil Balasubramanian <senthilb@qca.qualcomm.com>
    Cc: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
    Reported-by: Ashwin Mendonca <ashwinloyal@gmail.com>
    Tested-by: Ashwin Mendonca <ashwinloyal@gmail.com>
    Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 2c60e18b07e8e08c7e3b6cc8288b0e04e18844f7
Author: Oleg Nesterov <oleg@redhat.com>
Date:   Wed Jan 4 17:29:20 2012 +0100

    ptrace: ensure JOBCTL_STOP_SIGMASK is not zero after detach
    
    commit 8a88951b5878dc475dcd841cefc767e36397d14e upstream.
    
    This is the temporary simple fix for 3.2, we need more changes in this
    area.
    
    1. do_signal_stop() assumes that the running untraced thread in the
       stopped thread group is not possible. This was our goal but it is
       not yet achieved: a stopped-but-resumed tracee can clone the running
       thread which can initiate another group-stop.
    
       Remove WARN_ON_ONCE(!current->ptrace).
    
    2. A new thread always starts with ->jobctl = 0. If it is auto-attached
       and this group is stopped, __ptrace_unlink() sets JOBCTL_STOP_PENDING
       but JOBCTL_STOP_SIGMASK part is zero, this triggers WANR_ON(!signr)
       in do_jobctl_trap() if another debugger attaches.
    
       Change __ptrace_unlink() to set the artificial SIGSTOP for report.
    
       Alternatively we could change ptrace_init_task() to copy signr from
       current, but this means we can copy it for no reason and hide the
       possible similar problems.
    
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 9e83ca1fcff0eee2ea7ef2508de95691a0cdeb0c
Author: Oleg Nesterov <oleg@redhat.com>
Date:   Wed Jan 4 17:29:02 2012 +0100

    ptrace: partially fix the do_wait(WEXITED) vs EXIT_DEAD->EXIT_ZOMBIE race
    
    commit 50b8d257486a45cba7b65ca978986ed216bbcc10 upstream.
    
    Test-case:
    
    	int main(void)
    	{
    		int pid, status;
    
    		pid = fork();
    		if (!pid) {
    			for (;;) {
    				if (!fork())
    					return 0;
    				if (waitpid(-1, &status, 0) < 0) {
    					printf("ERR!! wait: %m\n");
    					return 0;
    				}
    			}
    		}
    
    		assert(ptrace(PTRACE_ATTACH, pid, 0,0) == 0);
    		assert(waitpid(-1, NULL, 0) == pid);
    
    		assert(ptrace(PTRACE_SETOPTIONS, pid, 0,
    					PTRACE_O_TRACEFORK) == 0);
    
    		do {
    			ptrace(PTRACE_CONT, pid, 0, 0);
    			pid = waitpid(-1, NULL, 0);
    		} while (pid > 0);
    
    		return 1;
    	}
    
    It fails because ->real_parent sees its child in EXIT_DEAD state
    while the tracer is going to change the state back to EXIT_ZOMBIE
    in wait_task_zombie().
    
    The offending commit is 823b018e which moved the EXIT_DEAD check,
    but in fact we should not blame it. The original code was not
    correct as well because it didn't take ptrace_reparented() into
    account and because we can't really trust ->ptrace.
    
    This patch adds the additional check to close this particular
    race but it doesn't solve the whole problem. We simply can't
    rely on ->ptrace in this case, it can be cleared if the tracer
    is multithreaded by the exiting ->parent.
    
    I think we should kill EXIT_DEAD altogether, we should always
    remove the soon-to-be-reaped child from ->children or at least
    we should never do the DEAD->ZOMBIE transition. But this is too
    complex for 3.2.
    
    Reported-and-tested-by: Denys Vlasenko <vda.linux@googlemail.com>
    Tested-by: Lukasz Michalik <lmi@ift.uni.wroc.pl>
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit f63f475a7edbe389ceb01cd430efb2d2a127eb6e
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Jan 3 17:32:13 2012 -0800

    Revert "rtc: Disable the alarm in the hardware"
    
    commit 157e8bf8b4823bfcdefa6c1548002374b61f61df upstream.
    
    This reverts commit c0afabd3d553c521e003779c127143ffde55a16f.
    
    It causes failures on Toshiba laptops - instead of disabling the alarm,
    it actually seems to enable it on the affected laptops, resulting in
    (for example) the laptop powering on automatically five minutes after
    shutdown.
    
    There's a patch for it that appears to work for at least some people,
    but it's too late to play around with this, so revert for now and try
    again in the next merge window.
    
    See for example
    
    	http://bugs.debian.org/652869
    
    Reported-and-bisected-by: Andreas Friedrich <afrie@gmx.net> (Toshiba Tecra)
    Reported-by: Antonio-M. Corbi Bellot <antonio.corbi@ua.es> (Toshiba Portege R500)
    Reported-by: Marco Santos <marco.santos@waynext.com> (Toshiba Portege Z830)
    Reported-by: Christophe Vu-Brugier <cvubrugier@yahoo.fr>  (Toshiba Portege R830)
    Cc: Jonathan Nieder <jrnieder@gmail.com>
    Requested-by: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 12ed227da1fb7099978c73b65a756caf51a95553
Author: Mandeep Singh Baines <msb@chromium.org>
Date:   Tue Jan 3 14:41:13 2012 -0800

    hung_task: fix false positive during vfork
    
    commit f9fab10bbd768b0e5254e53a4a8477a94bfc4b96 upstream.
    
    vfork parent uninterruptibly and unkillably waits for its child to
    exec/exit. This wait is of unbounded length. Ignore such waits
    in the hung_task detector.
    
    Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
    Reported-by: Sasha Levin <levinsasha928@gmail.com>
    LKML-Reference: <1325344394.28904.43.camel@lappy>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: John Kacur <jkacur@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit e5697e5158f562e3e7130e2880a5d0abea6cd4cd
Author: Alexander Müller <serveralex@gmail.com>
Date:   Fri Dec 30 12:55:48 2011 -0500

    drm/radeon/kms/atom: fix possible segfault in pm setup
    
    commit 4376eee92e5a8332b470040e672ea99cd44c826a upstream.
    
    If we end up with no power states, don't look up
    current vddc.
    
    fixes:
    https://bugs.freedesktop.org/show_bug.cgi?id=44130
    
    agd5f: fix patch formatting
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit b7ef0c519dd78c3bbd2e9903675c2ec16e38831e
Author: Kyle Manna <kyle@kylemanna.com>
Date:   Thu Aug 11 22:33:13 2011 -0500

    mfd: Turn on the twl4030-madc MADC clock
    
    commit 3d6271f92e98094584fd1e609a9969cd33e61122 upstream.
    
    Without turning the MADC clock on, no MADC conversions occur.
    
    $ cat /sys/class/hwmon/hwmon0/device/in8_input
    [   53.428436] twl4030_madc twl4030_madc: conversion timeout!
    cat: read error: Resource temporarily unavailable
    
    Signed-off-by: Kyle Manna <kyle@kylemanna.com>
    Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit d5700ae8cfc1b3243ca9f96f6dd0bbf95b05b5e6
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Mon Dec 26 08:47:34 2011 +0200

    iwlwifi: update SCD BC table for all SCD queues
    
    commit 96f1f05af76b601ab21a7dc603ae0a1cea4efc3d upstream.
    
    Since we configure all the queues as CHAINABLE, we need to update the
    byte count for all the queues, not only the AGGREGATABLE ones.
    
    Not doing so can confuse the SCD and make the fw assert.
    
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@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>

commit e3b22a8ecc595fd80bc3cd84d32e7d4ee7fe9ad8
Author: Stephen Rothwell <sfr@canb.auug.org.au>
Date:   Thu Dec 22 17:03:29 2011 +1100

    ipv4: using prefetch requires including prefetch.h
    
    [ Upstream commit b9eda06f80b0db61a73bd87c6b0eb67d8aca55ad ]
    
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
    Acked-by: David Miller <davem@davemloft.net>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 44f6d7e64fc76fe710b95afee4fee984c19d0e64
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Wed Dec 21 15:47:16 2011 -0500

    ipv4: reintroduce route cache garbage collector
    
    [ Upstream commit 9f28a2fc0bd77511f649c0a788c7bf9a5fd04edb ]
    
    Commit 2c8cec5c10b (ipv4: Cache learned PMTU information in inetpeer)
    removed IP route cache garbage collector a bit too soon, as this gc was
    responsible for expired routes cleanup, releasing their neighbour
    reference.
    
    As pointed out by Robert Gladewitz, recent kernels can fill and exhaust
    their neighbour cache.
    
    Reintroduce the garbage collection, since we'll have to wait our
    neighbour lookups become refcount-less to not depend on this stuff.
    
    Reported-by: Robert Gladewitz <gladewitz@gmx.de>
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit d23270aae3214c26691f95922a63c70549232c22
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Thu Dec 22 04:15:53 2011 +0000

    net: introduce DST_NOPEER dst flag
    
    [ Upstream commit e688a604807647c9450f9c12a7cb6d027150a895 ]
    
    Chris Boot reported crashes occurring in ipv6_select_ident().
    
    [  461.457562] RIP: 0010:[<ffffffff812dde61>]  [<ffffffff812dde61>]
    ipv6_select_ident+0x31/0xa7
    
    [  461.578229] Call Trace:
    [  461.580742] <IRQ>
    [  461.582870]  [<ffffffff812efa7f>] ? udp6_ufo_fragment+0x124/0x1a2
    [  461.589054]  [<ffffffff812dbfe0>] ? ipv6_gso_segment+0xc0/0x155
    [  461.595140]  [<ffffffff812700c6>] ? skb_gso_segment+0x208/0x28b
    [  461.601198]  [<ffffffffa03f236b>] ? ipv6_confirm+0x146/0x15e
    [nf_conntrack_ipv6]
    [  461.608786]  [<ffffffff81291c4d>] ? nf_iterate+0x41/0x77
    [  461.614227]  [<ffffffff81271d64>] ? dev_hard_start_xmit+0x357/0x543
    [  461.620659]  [<ffffffff81291cf6>] ? nf_hook_slow+0x73/0x111
    [  461.626440]  [<ffffffffa0379745>] ? br_parse_ip_options+0x19a/0x19a
    [bridge]
    [  461.633581]  [<ffffffff812722ff>] ? dev_queue_xmit+0x3af/0x459
    [  461.639577]  [<ffffffffa03747d2>] ? br_dev_queue_push_xmit+0x72/0x76
    [bridge]
    [  461.646887]  [<ffffffffa03791e3>] ? br_nf_post_routing+0x17d/0x18f
    [bridge]
    [  461.653997]  [<ffffffff81291c4d>] ? nf_iterate+0x41/0x77
    [  461.659473]  [<ffffffffa0374760>] ? br_flood+0xfa/0xfa [bridge]
    [  461.665485]  [<ffffffff81291cf6>] ? nf_hook_slow+0x73/0x111
    [  461.671234]  [<ffffffffa0374760>] ? br_flood+0xfa/0xfa [bridge]
    [  461.677299]  [<ffffffffa0379215>] ?
    nf_bridge_update_protocol+0x20/0x20 [bridge]
    [  461.684891]  [<ffffffffa03bb0e5>] ? nf_ct_zone+0xa/0x17 [nf_conntrack]
    [  461.691520]  [<ffffffffa0374760>] ? br_flood+0xfa/0xfa [bridge]
    [  461.697572]  [<ffffffffa0374812>] ? NF_HOOK.constprop.8+0x3c/0x56
    [bridge]
    [  461.704616]  [<ffffffffa0379031>] ?
    nf_bridge_push_encap_header+0x1c/0x26 [bridge]
    [  461.712329]  [<ffffffffa037929f>] ? br_nf_forward_finish+0x8a/0x95
    [bridge]
    [  461.719490]  [<ffffffffa037900a>] ?
    nf_bridge_pull_encap_header+0x1c/0x27 [bridge]
    [  461.727223]  [<ffffffffa0379974>] ? br_nf_forward_ip+0x1c0/0x1d4 [bridge]
    [  461.734292]  [<ffffffff81291c4d>] ? nf_iterate+0x41/0x77
    [  461.739758]  [<ffffffffa03748cc>] ? __br_deliver+0xa0/0xa0 [bridge]
    [  461.746203]  [<ffffffff81291cf6>] ? nf_hook_slow+0x73/0x111
    [  461.751950]  [<ffffffffa03748cc>] ? __br_deliver+0xa0/0xa0 [bridge]
    [  461.758378]  [<ffffffffa037533a>] ? NF_HOOK.constprop.4+0x56/0x56
    [bridge]
    
    This is caused by bridge netfilter special dst_entry (fake_rtable), a
    special shared entry, where attaching an inetpeer makes no sense.
    
    Problem is present since commit 87c48fa3b46 (ipv6: make fragment
    identifications less predictable)
    
    Introduce DST_NOPEER dst flag and make sure ipv6_select_ident() and
    __ip_select_ident() fallback to the 'no peer attached' handling.
    
    Reported-by: Chris Boot <bootc@bootc.net>
    Tested-by: Chris Boot <bootc@bootc.net>
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit ea67f1fb5976ad72d27e45dff42017894f30b563
Author: David S. Miller <davem@davemloft.net>
Date:   Tue Dec 13 17:35:06 2011 -0500

    ipv6: Check dest prefix length on original route not copied one in rt6_alloc_cow().
    
    [ Upstream commit bb3c36863e8001fc21a88bebfdead4da4c23e848 ]
    
    After commit 8e2ec639173f325977818c45011ee176ef2b11f6 ("ipv6: don't
    use inetpeer to store metrics for routes.") the test in rt6_alloc_cow()
    for setting the ANYCAST flag is now wrong.
    
    'rt' will always now have a plen of 128, because it is set explicitly
    to 128 by ip6_rt_copy.
    
    So to restore the semantics of the test, check the destination prefix
    length of 'ort'.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 4e1a937bf13f758c7be089f614e7e84bdafcc0af
Author: Weiping Pan <panweiping3@gmail.com>
Date:   Thu Dec 1 15:47:06 2011 +0000

    ipv4: flush route cache after change accept_local
    
    [ Upstream commit d01ff0a049f749e0bf10a35bb23edd012718c8c2 ]
    
    After reset ipv4_devconf->data[IPV4_DEVCONF_ACCEPT_LOCAL] to 0,
    we should flush route cache, or it will continue receive packets with local
    source address, which should be dropped.
    
    Signed-off-by: Weiping Pan <panweiping3@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 6561c4fa576a9e83f4e2faf7b62dbd1d9b598c39
Author: Steffen Klassert <steffen.klassert@secunet.com>
Date:   Wed Dec 21 16:48:08 2011 -0500

    net: Add a flow_cache_flush_deferred function
    
    [ Upstream commit c0ed1c14a72ca9ebacd51fb94a8aca488b0d361e ]
    
    flow_cach_flush() might sleep but can be called from
    atomic context via the xfrm garbage collector. So add
    a flow_cache_flush_deferred() function and use this if
    the xfrm garbage colector is invoked from within the
    packet path.
    
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Acked-by: Timo Teräs <timo.teras@iki.fi>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit fd4199603bbc8851051b45299b7cf73b07b4daac
Author: Thomas Graf <tgraf@redhat.com>
Date:   Mon Dec 19 04:11:40 2011 +0000

    sctp: Do not account for sizeof(struct sk_buff) in estimated rwnd
    
    [ Upstream commit a76c0adf60f6ca5ff3481992e4ea0383776b24d2 ]
    
    When checking whether a DATA chunk fits into the estimated rwnd a
    full sizeof(struct sk_buff) is added to the needed chunk size. This
    quickly exhausts the available rwnd space and leads to packets being
    sent which are much below the PMTU limit. This can lead to much worse
    performance.
    
    The reason for this behaviour was to avoid putting too much memory
    pressure on the receiver. The concept is not completely irational
    because a Linux receiver does in fact clone an skb for each DATA chunk
    delivered. However, Linux also reserves half the available socket
    buffer space for data structures therefore usage of it is already
    accounted for.
    
    When proposing to change this the last time it was noted that this
    behaviour was introduced to solve a performance issue caused by rwnd
    overusage in combination with small DATA chunks.
    
    Trying to reproduce this I found that with the sk_buff overhead removed,
    the performance would improve significantly unless socket buffer limits
    are increased.
    
    The following numbers have been gathered using a patched iperf
    supporting SCTP over a live 1 Gbit ethernet network. The -l option
    was used to limit DATA chunk sizes. The numbers listed are based on
    the average of 3 test runs each. Default values have been used for
    sk_(r|w)mem.
    
    Chunk
    Size    Unpatched     No Overhead
    -------------------------------------
       4    15.2 Kbit [!]   12.2 Mbit [!]
       8    35.8 Kbit [!]   26.0 Mbit [!]
      16    95.5 Kbit [!]   54.4 Mbit [!]
      32   106.7 Mbit      102.3 Mbit
      64   189.2 Mbit      188.3 Mbit
     128   331.2 Mbit      334.8 Mbit
     256   537.7 Mbit      536.0 Mbit
     512   766.9 Mbit      766.6 Mbit
    1024   810.1 Mbit      808.6 Mbit
    
    Signed-off-by: Thomas Graf <tgraf@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 74631fca684d7a475f1eed5f6823c11b62bbd2bc
Author: Xi Wang <xi.wang@gmail.com>
Date:   Fri Dec 16 12:44:15 2011 +0000

    sctp: fix incorrect overflow check on autoclose
    
    [ Upstream commit 2692ba61a82203404abd7dd2a027bda962861f74 ]
    
    Commit 8ffd3208 voids the previous patches f6778aab and 810c0719 for
    limiting the autoclose value.  If userspace passes in -1 on 32-bit
    platform, the overflow check didn't work and autoclose would be set
    to 0xffffffff.
    
    This patch defines a max_autoclose (in seconds) for limiting the value
    and exposes it through sysctl, with the following intentions.
    
    1) Avoid overflowing autoclose * HZ.
    
    2) Keep the default autoclose bound consistent across 32- and 64-bit
       platforms (INT_MAX / HZ in this patch).
    
    3) Keep the autoclose value consistent between setsockopt() and
       getsockopt() calls.
    
    Suggested-by: Vlad Yasevich <vladislav.yasevich@hp.com>
    Signed-off-by: Xi Wang <xi.wang@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 79a25778ca9fbc4ea2bd8c1f32d73bd73a1a3817
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Sun Dec 11 23:42:53 2011 +0000

    sch_gred: should not use GFP_KERNEL while holding a spinlock
    
    [ Upstream commit 3f1e6d3fd37bd4f25e5b19f1c7ca21850426c33f ]
    
    gred_change_vq() is called under sch_tree_lock(sch).
    
    This means a spinlock is held, and we are not allowed to sleep in this
    context.
    
    We might pre-allocate memory using GFP_KERNEL before taking spinlock,
    but this is not suitable for stable material.
    
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 77fe0b97b750a3064e67330b131811edeebbc29b
Author: Gerlando Falauto <gerlando.falauto@keymile.com>
Date:   Mon Dec 19 22:58:04 2011 +0000

    net: have ipconfig not wait if no dev is available
    
    [ Upstream commit cd7816d14953c8af910af5bb92f488b0b277e29d ]
    
    previous commit 3fb72f1e6e6165c5f495e8dc11c5bbd14c73385c
    makes IP-Config wait for carrier on at least one network device.
    
    Before waiting (predefined value 120s), check that at least one device
    was successfully brought up. Otherwise (e.g. buggy bootloader
    which does not set the MAC address) there is no point in waiting
    for carrier.
    
    Cc: Micha Nelissen <micha@neli.hopto.org>
    Cc: Holger Brunck <holger.brunck@keymile.com>
    Signed-off-by: Gerlando Falauto <gerlando.falauto@keymile.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit ad24a5287dd16619b31b9c30917615ab1fcb56b0
Author: Thomas Graf <tgraf@redhat.com>
Date:   Thu Dec 22 02:05:07 2011 +0000

    mqprio: Avoid panic if no options are provided
    
    [ Upstream commit 7838f2ce36b6ab5c13ef20b1857e3bbd567f1759 ]
    
    Userspace may not provide TCA_OPTIONS, in fact tc currently does
    so not do so if no arguments are specified on the command line.
    Return EINVAL instead of panicing.
    
    Signed-off-by: Thomas Graf <tgraf@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 3515cb57df914810fc5c0cca5037e2ad3663c6ad
Author: Alex Juncu <ajuncu@ixiacom.com>
Date:   Thu Dec 15 23:01:25 2011 +0000

    llc: llc_cmsg_rcv was getting called after sk_eat_skb.
    
    [ Upstream commit 9cef310fcdee12b49b8b4c96fd8f611c8873d284 ]
    
    Received non stream protocol packets were calling llc_cmsg_rcv that used a
    skb after that skb was released by sk_eat_skb. This caused received STP
    packets to generate kernel panics.
    
    Signed-off-by: Alexandru Juncu <ajuncu@ixiacom.com>
    Signed-off-by: Kunjan Naik <knaik@ixiacom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 9bf78b2e47083ebf3363c7017cbcda8bb9ceb30b
Author: Djalal Harouni <tixxdz@opendz.org>
Date:   Tue Dec 6 15:47:12 2011 +0000

    ppp: fix pptp double release_sock in pptp_bind()
    
    [ Upstream commit a454daceb78844a09c08b6e2d8badcb76a5d73b9 ]
    
    Signed-off-by: Djalal Harouni <tixxdz@opendz.org>
    Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit b8b7320109c5fc492688d63fc3089fd0868a0aa1
Author: Markus Kötter <nepenthesdev@gmail.com>
Date:   Sat Dec 17 11:39:08 2011 +0000

    net: bpf_jit: fix an off-one bug in x86_64 cond jump target
    
    [ Upstream commit a03ffcf873fe0f2565386ca8ef832144c42e67fa ]
    
    x86 jump instruction size is 2 or 5 bytes (near/long jump), not 2 or 6
    bytes.
    
    In case a conditional jump is followed by a long jump, conditional jump
    target is one byte past the start of target instruction.
    
    Signed-off-by: Markus Kötter <nepenthesdev@gmail.com>
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 904bc58192c45c132938a97629578a954f26478d
Author: David S. Miller <davem@davemloft.net>
Date:   Mon Dec 26 12:30:13 2011 -0500

    sparc: Fix handling of orig_i0 wrt. debugging when restarting syscalls.
    
    [ A combination of upstream commits 1d299bc7732c34d85bd43ac1a8745f5a2fed2078 and
      e88d2468718b0789b4c33da2f7e1cef2a1eee279 ]
    
    Although we provide a proper way for a debugger to control whether
    syscall restart occurs, we run into problems because orig_i0 is not
    saved and restored properly.
    
    Luckily we can solve this problem without having to make debuggers
    aware of the issue.  Across system calls, several registers are
    considered volatile and can be safely clobbered.
    
    Therefore we use the pt_regs save area of one of those registers, %g6,
    as a place to save and restore orig_i0.
    
    Debuggers transparently will do the right thing because they save and
    restore this register already.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit d8e8670b16cd66ceb1ac5c42a0f784a657f069e3
Author: David S. Miller <davem@davemloft.net>
Date:   Mon Oct 31 01:05:49 2011 -0700

    sparc64: Fix masking and shifting in VIS fpcmp emulation.
    
    [ Upstream commit 2e8ecdc008a16b9a6c4b9628bb64d0d1c05f9f92 ]
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 382ae5b35768be56473c8e92d68e2f3c74bf1422
Author: David S. Miller <davem@davemloft.net>
Date:   Wed Oct 19 15:31:55 2011 -0700

    sparc32: Correct the return value of memcpy.
    
    [ Upstream commit a52312b88c8103e965979a79a07f6b34af82ca4b ]
    
    Properly return the original destination buffer pointer.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Tested-by: Kjetil Oftedal <oftedal@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 1515c20b1bcb29e9d32fedaa7fc2af3bfea265cb
Author: David S. Miller <davem@davemloft.net>
Date:   Wed Oct 19 15:30:14 2011 -0700

    sparc32: Remove uses of %g7 in memcpy implementation.
    
    [ Upstream commit 21f74d361dfd6a7d0e47574e315f780d8172084a ]
    
    This is setting things up so that we can correct the return
    value, so that it properly returns the original destination
    buffer pointer.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Tested-by: Kjetil Oftedal <oftedal@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 469c7a79eaa35d3b5dcc1e6c1468174aa96dd87f
Author: David S. Miller <davem@davemloft.net>
Date:   Wed Oct 19 15:15:58 2011 -0700

    sparc32: Remove non-kernel code from memcpy implementation.
    
    [ Upstream commit 045b7de9ca0cf09f1adc3efa467f668b89238390 ]
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Tested-by: Kjetil Oftedal <oftedal@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 6817a588d5422f96a100466db56d11c33aa39ec4
Author: David S. Miller <davem@davemloft.net>
Date:   Thu Nov 17 18:17:59 2011 -0800

    sparc: Kill custom io_remap_pfn_range().
    
    [ Upstream commit 3e37fd3153ac95088a74f5e7c569f7567e9f993a ]
    
    To handle the large physical addresses, just make a simple wrapper
    around remap_pfn_range() like MIPS does.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 52459596488560825f22a9eb4c4afb3c0e2b3428
Author: David S. Miller <davem@davemloft.net>
Date:   Thu Nov 17 22:44:58 2011 -0800

    sparc64: Patch sun4v code sequences properly on module load.
    
    [ Upstream commit 0b64120cceb86e93cb1bda0dc055f13016646907 ]
    
    Some of the sun4v code patching occurs in inline functions visible
    to, and usable by, modules.
    
    Therefore we have to patch them up during module load.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 588195deba991fe368241abdc4f270d6d3792e7d
Author: David S. Miller <davem@davemloft.net>
Date:   Wed Dec 14 10:05:22 2011 -0800

    sparc32: Be less strict in matching %lo part of relocation.
    
    [ Upstream commit b1f44e13a525d2ffb7d5afe2273b7169d6f2222e ]
    
    The "(insn & 0x01800000) != 0x01800000" test matches 'restore'
    but that is a legitimate place to see the %lo() part of a 32-bit
    symbol relocation, particularly in tail calls.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Tested-by: Sergei Trofimovich <slyfox@gentoo.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 6c1c9cf6f1336fc332d2e1fc0453e2bc16a7089b
Author: David S. Miller <davem@davemloft.net>
Date:   Thu Dec 22 13:23:59 2011 -0800

    sparc64: Fix MSIQ HV call ordering in pci_sun4v_msiq_build_irq().
    
    [ Upstream commit 7cc8583372a21d98a23b703ad96cab03180b5030 ]
    
    This silently was working for many years and stopped working on
    Niagara-T3 machines.
    
    We need to set the MSIQ to VALID before we can set it's state to IDLE.
    
    On Niagara-T3, setting the state to IDLE first was causing HV_EINVAL
    errors.  The hypervisor documentation says, rather ambiguously, that
    the MSIQ must be "initialized" before one can set the state.
    
    I previously understood this to mean merely that a successful setconf()
    operation has been performed on the MSIQ, which we have done at this
    point.  But it seems to also mean that it has been set VALID too.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit ec89dadb52f3dee5e49588613ad3bf66cf140141
Author: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
Date:   Wed Jan 4 09:25:13 2012 -0600

    mpt2sas: fix non-x86 crash on shutdown
    
    Upstrem commit: 911ae9434f83e7355d343f6c2be3ef5b00ea7aed
    
    There's a bug in the MSIX backup and restore routines that cause a crash on
    non-x86 (direct access to PCI space not via read/write).  These routines are
    unnecessary and were removed by the above commit, so also remove them from
    stable to fix the crash.
    
    Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 43dc85715b04c36ba118d6e63c96786c634e2eea
Author: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Date:   Wed Dec 28 15:57:11 2011 -0800

    mm/mempolicy.c: refix mbind_range() vma issue
    
    commit e26a51148f3ebd859bca8bf2e0f212839b447f62 upstream.
    
    commit 8aacc9f550 ("mm/mempolicy.c: fix pgoff in mbind vma merge") is the
    slightly incorrect fix.
    
    Why? Think following case.
    
    1. map 4 pages of a file at offset 0
    
       [0123]
    
    2. map 2 pages just after the first mapping of the same file but with
       page offset 2
    
       [0123][23]
    
    3. mbind() 2 pages from the first mapping at offset 2.
       mbind_range() should treat new vma is,
    
       [0123][23]
         |23|
         mbind vma
    
       but it does
    
       [0123][23]
         |01|
         mbind vma
    
       Oops. then, it makes wrong vma merge and splitting ([01][0123] or similar).
    
    This patch fixes it.
    
    [testcase]
      test result - before the patch
    
    	case4: 126: test failed. expect '2,4', actual '2,2,2'
           	case5: passed
    	case6: passed
    	case7: passed
    	case8: passed
    	case_n: 246: test failed. expect '4,2', actual '1,4'
    
    	------------[ cut here ]------------
    	kernel BUG at mm/filemap.c:135!
    	invalid opcode: 0000 [#4] SMP DEBUG_PAGEALLOC
    
    	(snip long bug on messages)
    
      test result - after the patch
    
    	case4: passed
           	case5: passed
    	case6: passed
    	case7: passed
    	case8: passed
    	case_n: passed
    
      source:  mbind_vma_test.c
    ============================================================
     #include <numaif.h>
     #include <numa.h>
     #include <sys/mman.h>
     #include <stdio.h>
     #include <unistd.h>
     #include <stdlib.h>
     #include <string.h>
    
    static unsigned long pagesize;
    void* mmap_addr;
    struct bitmask *nmask;
    char buf[1024];
    FILE *file;
    char retbuf[10240] = "";
    int mapped_fd;
    
    char *rubysrc = "ruby -e '\
      pid = %d; \
      vstart = 0x%llx; \
      vend = 0x%llx; \
      s = `pmap -q #{pid}`; \
      rary = []; \
      s.each_line {|line|; \
        ary=line.split(\" \"); \
        addr = ary[0].to_i(16); \
        if(vstart <= addr && addr < vend) then \
          rary.push(ary[1].to_i()/4); \
        end; \
      }; \
      print rary.join(\",\"); \
    '";
    
    void init(void)
    {
    	void* addr;
    	char buf[128];
    
    	nmask = numa_allocate_nodemask();
    	numa_bitmask_setbit(nmask, 0);
    
    	pagesize = getpagesize();
    
    	sprintf(buf, "%s", "mbind_vma_XXXXXX");
    	mapped_fd = mkstemp(buf);
    	if (mapped_fd == -1)
    		perror("mkstemp "), exit(1);
    	unlink(buf);
    
    	if (lseek(mapped_fd, pagesize*8, SEEK_SET) < 0)
    		perror("lseek "), exit(1);
    	if (write(mapped_fd, "\0", 1) < 0)
    		perror("write "), exit(1);
    
    	addr = mmap(NULL, pagesize*8, PROT_NONE,
    		    MAP_SHARED, mapped_fd, 0);
    	if (addr == MAP_FAILED)
    		perror("mmap "), exit(1);
    
    	if (mprotect(addr+pagesize, pagesize*6, PROT_READ|PROT_WRITE) < 0)
    		perror("mprotect "), exit(1);
    
    	mmap_addr = addr + pagesize;
    
    	/* make page populate */
    	memset(mmap_addr, 0, pagesize*6);
    }
    
    void fin(void)
    {
    	void* addr = mmap_addr - pagesize;
    	munmap(addr, pagesize*8);
    
    	memset(buf, 0, sizeof(buf));
    	memset(retbuf, 0, sizeof(retbuf));
    }
    
    void mem_bind(int index, int len)
    {
    	int err;
    
    	err = mbind(mmap_addr+pagesize*index, pagesize*len,
    		    MPOL_BIND, nmask->maskp, nmask->size, 0);
    	if (err)
    		perror("mbind "), exit(err);
    }
    
    void mem_interleave(int index, int len)
    {
    	int err;
    
    	err = mbind(mmap_addr+pagesize*index, pagesize*len,
    		    MPOL_INTERLEAVE, nmask->maskp, nmask->size, 0);
    	if (err)
    		perror("mbind "), exit(err);
    }
    
    void mem_unbind(int index, int len)
    {
    	int err;
    
    	err = mbind(mmap_addr+pagesize*index, pagesize*len,
    		    MPOL_DEFAULT, NULL, 0, 0);
    	if (err)
    		perror("mbind "), exit(err);
    }
    
    void Assert(char *expected, char *value, char *name, int line)
    {
    	if (strcmp(expected, value) == 0) {
    		fprintf(stderr, "%s: passed\n", name);
    		return;
    	}
    	else {
    		fprintf(stderr, "%s: %d: test failed. expect '%s', actual '%s'\n",
    			name, line,
    			expected, value);
    //		exit(1);
    	}
    }
    
    /*
          AAAA
        PPPPPPNNNNNN
        might become
        PPNNNNNNNNNN
        case 4 below
    */
    void case4(void)
    {
    	init();
    	sprintf(buf, rubysrc, getpid(), mmap_addr, mmap_addr+pagesize*6);
    
    	mem_bind(0, 4);
    	mem_unbind(2, 2);
    
    	file = popen(buf, "r");
    	fread(retbuf, sizeof(retbuf), 1, file);
    	Assert("2,4", retbuf, "case4", __LINE__);
    
    	fin();
    }
    
    /*
           AAAA
     PPPPPPNNNNNN
     might become
     PPPPPPPPPPNN
     case 5 below
    */
    void case5(void)
    {
    	init();
    	sprintf(buf, rubysrc, getpid(), mmap_addr, mmap_addr+pagesize*6);
    
    	mem_bind(0, 2);
    	mem_bind(2, 2);
    
    	file = popen(buf, "r");
    	fread(retbuf, sizeof(retbuf), 1, file);
    	Assert("4,2", retbuf, "case5", __LINE__);
    
    	fin();
    }
    
    /*
    	    AAAA
    	PPPPNNNNXXXX
    	might become
    	PPPPPPPPPPPP 6
    */
    void case6(void)
    {
    	init();
    	sprintf(buf, rubysrc, getpid(), mmap_addr, mmap_addr+pagesize*6);
    
    	mem_bind(0, 2);
    	mem_bind(4, 2);
    	mem_bind(2, 2);
    
    	file = popen(buf, "r");
    	fread(retbuf, sizeof(retbuf), 1, file);
    	Assert("6", retbuf, "case6", __LINE__);
    
    	fin();
    }
    
    /*
        AAAA
    PPPPNNNNXXXX
    might become
    PPPPPPPPXXXX 7
    */
    void case7(void)
    {
    	init();
    	sprintf(buf, rubysrc, getpid(), mmap_addr, mmap_addr+pagesize*6);
    
    	mem_bind(0, 2);
    	mem_interleave(4, 2);
    	mem_bind(2, 2);
    
    	file = popen(buf, "r");
    	fread(retbuf, sizeof(retbuf), 1, file);
    	Assert("4,2", retbuf, "case7", __LINE__);
    
    	fin();
    }
    
    /*
        AAAA
    PPPPNNNNXXXX
    might become
    PPPPNNNNNNNN 8
    */
    void case8(void)
    {
    	init();
    	sprintf(buf, rubysrc, getpid(), mmap_addr, mmap_addr+pagesize*6);
    
    	mem_bind(0, 2);
    	mem_interleave(4, 2);
    	mem_interleave(2, 2);
    
    	file = popen(buf, "r");
    	fread(retbuf, sizeof(retbuf), 1, file);
    	Assert("2,4", retbuf, "case8", __LINE__);
    
    	fin();
    }
    
    void case_n(void)
    {
    	init();
    	sprintf(buf, rubysrc, getpid(), mmap_addr, mmap_addr+pagesize*6);
    
    	/* make redundunt mappings [0][1234][34][7] */
    	mmap(mmap_addr + pagesize*4, pagesize*2, PROT_READ|PROT_WRITE,
    	     MAP_FIXED|MAP_SHARED, mapped_fd, pagesize*3);
    
    	/* Expect to do nothing. */
    	mem_unbind(2, 2);
    
    	file = popen(buf, "r");
    	fread(retbuf, sizeof(retbuf), 1, file);
    	Assert("4,2", retbuf, "case_n", __LINE__);
    
    	fin();
    }
    
    int main(int argc, char** argv)
    {
    	case4();
    	case5();
    	case6();
    	case7();
    	case8();
    	case_n();
    
    	return 0;
    }
    =============================================================
    
    Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Acked-by: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Minchan Kim <minchan.kim@gmail.com>
    Cc: Caspar Zhang <caspar@casparzhang.com>
    Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Hugh Dickins <hugh.dickins@tiscali.co.uk>
    Cc: Mel Gorman <mel@csn.ul.ie>
    Cc: Lee Schermerhorn <lee.schermerhorn@hp.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 82b34c64333393dc83d2c892114c9fb5cf432ea4
Author: Hillf Danton <dhillf@gmail.com>
Date:   Wed Dec 28 15:57:16 2011 -0800

    mm: hugetlb: fix non-atomic enqueue of huge page
    
    commit b0365c8d0cb6e79eb5f21418ae61ab511f31b575 upstream.
    
    If a huge page is enqueued under the protection of hugetlb_lock, then the
    operation is atomic and safe.
    
    Signed-off-by: Hillf Danton <dhillf@gmail.com>
    Reviewed-by: Michal Hocko <mhocko@suse.cz>
    Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@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 f40c06e7f41a1489e9c75619d2e4d40a23d915b4
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Wed Dec 21 11:58:17 2011 -0500

    drm/radeon/kms: bail on BTC parts if MC ucode is missing
    
    commit 77e00f2ea94abee1ad13bdfde19cf7aa25992b0e upstream.
    
    We already do this for cayman, need to also do it for
    BTC parts.  The default memory and voltage setup is not
    adequate for advanced operation.  Continuing will
    result in an unusable display.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: Jean Delvare <khali@linux-fr.org>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 118282df5d0a473c72f5609a71a5cb25e86ea416
Author: Mingarelli, Thomas <Thomas.Mingarelli@hp.com>
Date:   Mon Nov 7 10:59:00 2011 +0100

    watchdog: hpwdt: Changes to handle NX secure bit in 32bit path
    
    commit e67d668e147c3b4fec638c9e0ace04319f5ceccd upstream.
    
    This patch makes use of the set_memory_x() kernel API in order
    to make necessary BIOS calls to source NMIs.
    
    This is needed for SLES11 SP2 and the latest upstream kernel as it appears
    the NX Execute Disable has grown in its control.
    
    Signed-off by: Thomas Mingarelli <thomas.mingarelli@hp.com>
    Signed-off by: Wim Van Sebroeck <wim@iguana.be>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 04a763aed3c611460ef4888d14a1f5101e8373bc
Author: Hugh Dickins <hughd@google.com>
Date:   Sat Dec 31 11:44:01 2011 -0800

    futex: Fix uninterruptible loop due to gate_area
    
    commit e6780f7243eddb133cc20ec37fa69317c218b709 upstream.
    
    It was found (by Sasha) that if you use a futex located in the gate
    area we get stuck in an uninterruptible infinite loop, much like the
    ZERO_PAGE issue.
    
    While looking at this problem, PeterZ realized you'll get into similar
    trouble when hitting any install_special_pages() mapping.  And are there
    still drivers setting up their own special mmaps without page->mapping,
    and without special VM or pte flags to make get_user_pages fail?
    
    In most cases, if page->mapping is NULL, we do not need to retry at all:
    Linus points out that even /proc/sys/vm/drop_caches poses no problem,
    because it ends up using remove_mapping(), which takes care not to
    interfere when the page reference count is raised.
    
    But there is still one case which does need a retry: if memory pressure
    called shmem_writepage in between get_user_pages_fast dropping page
    table lock and our acquiring page lock, then the page gets switched from
    filecache to swapcache (and ->mapping set to NULL) whatever the refcount.
    Fault it back in to get the page->mapping needed for key->shared.inode.
    
    Reported-by: Sasha Levin <levinsasha928@gmail.com>
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 6a8f198e5d3573276fba8efa3d2e006da5f02e1f
Author: Vladimir Zapolskiy <vladimir.zapolskiy@nokia.com>
Date:   Thu Dec 22 16:15:40 2011 +0100

    oprofile, arm/sh: Fix oprofile_arch_exit() linkage issue
    
    commit 55205c916e179e09773d98d290334d319f45ac6b upstream.
    
    This change fixes a linking problem, which happens if oprofile
    is selected to be compiled as built-in:
    
      `oprofile_arch_exit' referenced in section `.init.text' of
      arch/arm/oprofile/built-in.o: defined in discarded section
      `.exit.text' of arch/arm/oprofile/built-in.o
    
    The problem is appeared after commit 87121ca504, which
    introduced oprofile_arch_exit() calls from __init function. Note
    that the aforementioned commit has been backported to stable
    branches, and the problem is known to be reproduced at least
    with 3.0.13 and 3.1.5 kernels.
    
    Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@nokia.com>
    Signed-off-by: Robert Richter <robert.richter@amd.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: oprofile-list <oprofile-list@lists.sourceforge.net>
    Link: http://lkml.kernel.org/r/20111222151540.GB16765@erda.amd.com
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit d2b0cc97b7da31bb0e2bad0653bc387dbe760134
Author: Ulf Hansson <ulf.hansson@stericsson.com>
Date:   Tue Dec 13 16:58:43 2011 +0100

    ARM: 7220/1: mmc: mmci: Fixup error handling for dma
    
    commit 3b6e3c73851a9a4b0e6ed9d378206341dd65e8a5 upstream.
    
    When getting a cmd irq during an ongoing data transfer
    with dma, the dma job were never terminated. This is now
    corrected.
    
    Tested-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Per Forlin <per.forlin@stericsson.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@stericsson.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 62f75a5704eb27b1e67d28235f6aa6a8d3798662
Author: Ulf Hansson <ulf.hansson@stericsson.com>
Date:   Tue Dec 13 16:51:04 2011 +0100

    ARM: 7214/1: mmc: mmci: Fixup handling of MCI_STARTBITERR
    
    commit b63038d6f4ca5d1849ce01d9fc5bb9cb426dec73 upstream.
    
    The interrupt was previously enabled and then correctly cleared.
    Now we also handle it correctly.
    
    Tested-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Ulf Hansson <ulf.hansson@stericsson.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 2afb2920cb25c74bbb16a6b60c6316fb02f434c0
Author: Jason Chen <jason.chen@linaro.org>
Date:   Mon Dec 19 11:23:28 2011 +0800

    ARM:imx:fix pwm period value
    
    commit 5776ac2eb33164c77cdb4d2b48feee15616eaba3 upstream.
    
    According to imx pwm RM, the real period value should be
    PERIOD value in PWMPR plus 2.
    
    PWMO (Hz) = PCLK(Hz) / (period +2)
    
    Signed-off-by: Jason Chen <jason.chen@linaro.org>
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 27c57858531c4829a1446ebb5fd606d07846b2e5
Author: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Date:   Thu Dec 22 02:45:29 2011 +0530

    VFS: Fix race between CPU hotplug and lglocks
    
    commit e30e2fdfe56288576ee9e04dbb06b4bd5f282203 upstream.
    
    Currently, the *_global_[un]lock_online() routines are not at all synchronized
    with CPU hotplug. Soft-lockups detected as a consequence of this race was
    reported earlier at https://lkml.org/lkml/2011/8/24/185. (Thanks to Cong Meng
    for finding out that the root-cause of this issue is the race condition
    between br_write_[un]lock() and CPU hotplug, which results in the lock states
    getting messed up).
    
    Fixing this race by just adding {get,put}_online_cpus() at appropriate places
    in *_global_[un]lock_online() is not a good option, because, then suddenly
    br_write_[un]lock() would become blocking, whereas they have been kept as
    non-blocking all this time, and we would want to keep them that way.
    
    So, overall, we want to ensure 3 things:
    1. br_write_lock() and br_write_unlock() must remain as non-blocking.
    2. The corresponding lock and unlock of the per-cpu spinlocks must not happen
       for different sets of CPUs.
    3. Either prevent any new CPU online operation in between this lock-unlock, or
       ensure that the newly onlined CPU does not proceed with its corresponding
       per-cpu spinlock unlocked.
    
    To achieve all this:
    (a) We introduce a new spinlock that is taken by the *_global_lock_online()
        routine and released by the *_global_unlock_online() routine.
    (b) We register a callback for CPU hotplug notifications, and this callback
        takes the same spinlock as above.
    (c) We maintain a bitmap which is close to the cpu_online_mask, and once it is
        initialized in the lock_init() code, all future updates to it are done in
        the callback, under the above spinlock.
    (d) The above bitmap is used (instead of cpu_online_mask) while locking and
        unlocking the per-cpu locks.
    
    The callback takes the spinlock upon the CPU_UP_PREPARE event. So, if the
    br_write_lock-unlock sequence is in progress, the callback keeps spinning,
    thus preventing the CPU online operation till the lock-unlock sequence is
    complete. This takes care of requirement (3).
    
    The bitmap that we maintain remains unmodified throughout the lock-unlock
    sequence, since all updates to it are managed by the callback, which takes
    the same spinlock as the one taken by the lock code and released only by the
    unlock routine. Combining this with (d) above, satisfies requirement (2).
    
    Overall, since we use a spinlock (mentioned in (a)) to prevent CPU hotplug
    operations from racing with br_write_lock-unlock, requirement (1) is also
    taken care of.
    
    By the way, it is to be noted that a CPU offline operation can actually run
    in parallel with our lock-unlock sequence, because our callback doesn't react
    to notifications earlier than CPU_DEAD (in order to maintain our bitmap
    properly). And this means, since we use our own bitmap (which is stale, on
    purpose) during the lock-unlock sequence, we could end up unlocking the
    per-cpu lock of an offline CPU (because we had locked it earlier, when the
    CPU was online), in order to satisfy requirement (2). But this is harmless,
    though it looks a bit awkward.
    
    Debugged-by: Cong Meng <mc@linux.vnet.ibm.com>
    Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit b38fb531508f5c250e9e52f6dc3432db32c315ad
Author: Hillf Danton <dhillf@gmail.com>
Date:   Mon Dec 19 17:11:57 2011 -0800

    memcg: keep root group unchanged if creation fails
    
    commit a41c58a6665cc995e237303b05db42100b71b65e upstream.
    
    If the request is to create non-root group and we fail to meet it, we
    should leave the root unchanged.
    
    Signed-off-by: Hillf Danton <dhillf@gmail.com>
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Acked-by: Michal Hocko <mhocko@suse.cz>
    Cc: Balbir Singh <bsingharora@gmail.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit db3be35a9693545112a3d22f35efe31bc6efab06
Author: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Date:   Wed Dec 14 08:22:36 2011 -0800

    iwlwifi: allow to switch to HT40 if not associated
    
    commit 78feb35b8161acd95c33a703ed6ab6f554d29387 upstream.
    
    My previous patch
    34a5b4b6af104cf18eb50748509528b9bdbc4036 iwlwifi: do not re-configure
    HT40 after associated
    
    Fix the case of HT40 after association on specified AP, but it break the
    association for some APs and cause not able to establish connection.
    We need to address HT40 before and after addociation.
    
    Reported-by: Andrej Gelenberg <andrej.gelenberg@udo.edu>
    Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
    Tested-by: Andrej Gelenberg <andrej.gelenberg@udo.edu>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 3b610f6383fc35467b8451621b7ce4d154196e4a
Author: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Date:   Thu Dec 8 15:52:00 2011 -0800

    iwlwifi: do not set the sequence control bit is not needed
    
    commit 123877b80ed62c3b897c53357b622574c023b642 upstream.
    
    Check the IEEE80211_TX_CTL_ASSIGN_SEQ flag from mac80211, then decide how to
    set the TX_CMD_FLG_SEQ_CTL_MSK bit. Setting the wrong bit in BAR frame whill
    make the firmware to increment the sequence number which is incorrect and
    cause unknown behavior.
    
    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>

commit 240606b385bb9d0a5c4dec19dfd364289bf478ab
Author: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Date:   Sat Dec 10 18:59:43 2011 +0530

    ath9k: fix max phy rate at rate control init
    
    commit 10636bc2d60942254bda149827b922c41f4cb4af upstream.
    
    The stations always chooses 1Mbps for all trasmitting frames,
    whenever the AP is configured to lock the supported rates.
    As the max phy rate is always set with the 4th from highest phy rate,
    this assumption might be wrong if we have less than that. Fix that.
    
    Cc: Paul Stewart <pstew@google.com>
    Reported-by: Ajay Gummalla <agummalla@google.com>
    Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 192b2a0d9c24c2906af52aa69c7c386b9c505a82
Author: Sylwester Nawrocki <s.nawrocki@samsung.com>
Date:   Fri Nov 4 10:07:06 2011 -0300

    media: s5p-fimc: Use correct fourcc for RGB565 colour format
    
    commit f83f71fda27650ae43558633be93652577dbc38c upstream.
    
    With 16-bit RGB565 colour format pixels are stored by the device in memory
    in the following order:
    
        | b3  | b2  | b1  | b0  |
       ~+-----+-----+-----+-----+
        | R5 G6 B5  | R5 G6 B5  |
    
    This corresponds to V4L2_PIX_FMT_RGB565 fourcc, not V4L2_PIX_FMT_RGB565X.
    This change is required to avoid trouble when setting up video pipeline
    with the s5p-tv devices, so the colour formats at both devices can be
    properly matched.
    
    Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
    Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 200c86387cc650dbfb33c8a22ae943ed6996648a
Author: Dave Kleikamp <dave.kleikamp@oracle.com>
Date:   Wed Dec 21 11:05:48 2011 -0600

    vfs: __read_cache_page should use gfp argument rather than GFP_KERNEL
    
    commit e6f67b8c05f5e129e126f4409ddac6f25f58ffcb upstream.
    
    lockdep reports a deadlock in jfs because a special inode's rw semaphore
    is taken recursively.  The mapping's gfp mask is GFP_NOFS, but is not
    used when __read_cache_page() calls add_to_page_cache_lru().
    
    Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
    Acked-by: Hugh Dickins <hughd@google.com>
    Acked-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 5518e7a8f7964cb79760b2ca6736e8997a6e388b
Author: Ilya Yanok <yanok@emcraft.com>
Date:   Mon Aug 1 23:00:28 2011 +0200

    mfd: Fix twl-core oops while calling twl_i2c_* for unbound driver
    
    commit 8653be1afd60d6e8c36139b487e375b70357d9ef upstream.
    
    Check inuse variable before trying to access twl_map to prevent
    dereferencing of uninitialized variable.
    
    Signed-off-by: Ilya Yanok <yanok@emcraft.com>
    Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 61bf2d48574d6ce5418b988e9547937c2efdd084
Author: Mandeep Singh Baines <msb@chromium.org>
Date:   Thu Dec 15 11:36:43 2011 -0800

    cgroups: fix a css_set not found bug in cgroup_attach_proc
    
    commit e0197aae59e55c06db172bfbe1a1cdb8c0e1cab3 upstream.
    
    There is a BUG when migrating a PF_EXITING proc. Since css_set_prefetch()
    is not called for the PF_EXITING case, find_existing_css_set() will return
    NULL inside cgroup_task_migrate() causing a BUG.
    
    This bug is easy to reproduce. Create a zombie and echo its pid to
    cgroup.procs.
    
    $ cat zombie.c
    \#include <unistd.h>
    
    int main()
    {
      if (fork())
          pause();
      return 0;
    }
    $
    
    We are hitting this bug pretty regularly on ChromeOS.
    
    This bug is already fixed by Tejun Heo's cgroup patchset which is
    targetted for the next merge window:
    
    https://lkml.org/lkml/2011/11/1/356
    
    I've create a smaller patch here which just fixes this bug so that a
    fix can be merged into the current release and stable.
    
    Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
    Downstream-Bug-Report: http://crosbug.com/23953
    Reviewed-by: Li Zefan <lizf@cn.fujitsu.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Cc: containers@lists.linux-foundation.org
    Cc: cgroups@vger.kernel.org
    Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Paul Menage <paul@paulmenage.org>
    Cc: Olof Johansson <olofj@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit e1bf69d93f497cb12740c85f9271e154d34bbb89
Author: Rusty Russell <rusty@rustcorp.com.au>
Date:   Thu Dec 15 13:34:50 2011 +1030

    mmc: vub300: fix type of firmware_rom_wait_states module parameter
    
    commit 61074287c2965edf0fc75b54ae8f4ce99f182669 upstream.
    
    You didn't mean this to be a bool.
    
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Acked-by: Tony Olech <tony.olech@elandigitalsystems.com>
    Signed-off-by: Chris Ball <cjb@laptop.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 125655948842b824d2c0c0032578e41071d952b6
Author: Thomas Meyer <thomas@m3y3r.de>
Date:   Mon Dec 19 17:11:55 2011 -0800

    nilfs2: unbreak compat ioctl
    
    commit 695c60f21c69e525a89279a5f35bae4ff237afbc upstream.
    
    commit 828b1c50ae ("nilfs2: add compat ioctl") incidentally broke all
    other NILFS compat ioctls.  Make them work again.
    
    Signed-off-by: Thomas Meyer <thomas@m3y3r.de>
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
    Tested-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
    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 ef9a3646b41226da3aa5b7681e42a6e25a46e08b
Author: Gary Thomas <gary@mlbassoc.com>
Date:   Thu Dec 1 08:51:09 2011 -0300

    media: omap_vout: Fix compile error in 3.1
    
    commit d1ee8878a142f81ea1b40d602c6360b752829437 upstream.
    
    This patch is against the mainline v3.1 release (c3b92c8) and
    fixes a compile error when building for OMAP3+DSS+VOUT
    
    Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Gary Thomas <gary@mlbassoc.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 82e2cbd2370e6339bac6d125dc2c016cdcce193f
Author: David Howells <dhowells@redhat.com>
Date:   Tue Dec 13 14:49:04 2011 +0000

    SELinux: Fix RCU deref check warning in sel_netport_insert()
    
    commit 50345f1ea9cda4618d9c26e590a97ecd4bc7ac75 upstream.
    
    Fix the following bug in sel_netport_insert() where rcu_dereference() should
    be rcu_dereference_protected() as sel_netport_lock is held.
    
    ===================================================
    [ INFO: suspicious rcu_dereference_check() usage. ]
    ---------------------------------------------------
    security/selinux/netport.c:127 invoked rcu_dereference_check() without protection!
    
    other info that might help us debug this:
    
    rcu_scheduler_active = 1, debug_locks = 0
    1 lock held by ossec-rootcheck/3323:
     #0:  (sel_netport_lock){+.....}, at: [<ffffffff8117d775>] sel_netport_sid+0xbb/0x226
    
    stack backtrace:
    Pid: 3323, comm: ossec-rootcheck Not tainted 3.1.0-rc8-fsdevel+ #1095
    Call Trace:
     [<ffffffff8105cfb7>] lockdep_rcu_dereference+0xa7/0xb0
     [<ffffffff8117d871>] sel_netport_sid+0x1b7/0x226
     [<ffffffff8117d6ba>] ? sel_netport_avc_callback+0xbc/0xbc
     [<ffffffff8117556c>] selinux_socket_bind+0x115/0x230
     [<ffffffff810a5388>] ? might_fault+0x4e/0x9e
     [<ffffffff810a53d1>] ? might_fault+0x97/0x9e
     [<ffffffff81171cf4>] security_socket_bind+0x11/0x13
     [<ffffffff812ba967>] sys_bind+0x56/0x95
     [<ffffffff81380dac>] ? sysret_check+0x27/0x62
     [<ffffffff8105b767>] ? trace_hardirqs_on_caller+0x11e/0x155
     [<ffffffff81076fcd>] ? audit_syscall_entry+0x17b/0x1ae
     [<ffffffff811b5eae>] ? trace_hardirqs_on_thunk+0x3a/0x3f
     [<ffffffff81380d7b>] system_call_fastpath+0x16/0x1b
    
    Signed-off-by: David Howells <dhowells@redhat.com>
    Acked-by: Paul Moore <paul@paul-moore.com>
    Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: James Morris <jmorris@namei.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit dd21b5590495d004dd965433df6a089f46f682bd
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Thu Dec 1 16:37:42 2011 -0500

    NFSv4.1: Ensure that we handle _all_ SEQUENCE status bits.
    
    commit 111d489f0fb431f4ae85d96851fbf8d3248c09d8 upstream.
    
    Currently, the code assumes that the SEQUENCE status bits are mutually
    exclusive. They are not...
    
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 4030564c1503d782139279e6741c819acbb0fb8f
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Thu Dec 15 18:38:10 2011 -0500

    NFS: Fix a regression in nfs_file_llseek()
    
    commit 6c52961743f38747401b47127b82159ab6d8a7a4 upstream.
    
    After commit 06222e491e663dac939f04b125c9dc52126a75c4 (fs: handle
    SEEK_HOLE/SEEK_DATA properly in all fs's that define their own llseek)
    the behaviour of llseek() was changed so that it always revalidates
    the file size. The bug appears to be due to a logic error in the
    afore-mentioned commit, which always evaluates to 'true'.
    
    Reported-by: Roel Kluin <roel.kluin@gmail.com>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 9aeeebb28c4bd8c3a2382ff909e82989d22b97a1
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Thu Dec 1 14:16:17 2011 -0500

    SUNRPC: Ensure we always bump the backlog queue in xprt_free_slot
    
    commit c25573b5134294c0be82bfaecc6d08136835b271 upstream.
    
    Whenever we free a slot, we know that the resulting xprt->num_reqs will
    be less than xprt->max_reqs, so we know that we can release at least one
    backlogged rpc_task.
    
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit c9b5dd12ec6e93b609b0e61acd02944352cd436d
Author: Robert Richter <robert.richter@amd.com>
Date:   Mon Dec 19 16:38:30 2011 +0100

    oprofile: Fix uninitialized memory access when writing to writing to oprofilefs
    
    commit 913050b91eb94f194392dd797b1ff3779f606ac0 upstream.
    
    If oprofilefs_ulong_from_user() is called with count equals
    zero, *val remains unchanged. Depending on the implementation it
    might be uninitialized.
    
    Change oprofilefs_ulong_from_user()'s interface to return count
    on success. Thus, we are able to return early if count equals
    zero which avoids using *val uninitialized. Fixing all users of
    oprofilefs_ulong_ from_user().
    
    This follows write syscall implementation when count is zero:
    "If count is zero ... [and if] no errors are detected, 0 will be
    returned without causing any other effect." (man 2 write)
    
    Reported-By: Mike Waychison <mikew@google.com>
    Signed-off-by: Robert Richter <robert.richter@amd.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: oprofile-list <oprofile-list@lists.sourceforge.net>
    Link: http://lkml.kernel.org/r/20111219153830.GH16765@erda.amd.com
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 56c6a8a4aadca809e04276eabe5552935c51387f
Author: Frantisek Hrbata <fhrbata@redhat.com>
Date:   Mon Dec 19 17:11:59 2011 -0800

    oom: fix integer overflow of points in oom_badness
    
    commit ff05b6f7ae762b6eb464183eec994b28ea09f6dd upstream.
    
    An integer overflow will happen on 64bit archs if task's sum of rss,
    swapents and nr_ptes exceeds (2^31)/1000 value.  This was introduced by
    commit
    
    f755a04 oom: use pte pages in OOM score
    
    where the oom score computation was divided into several steps and it's no
    longer computed as one expression in unsigned long(rss, swapents, nr_pte
    are unsigned long), where the result value assigned to points(int) is in
    range(1..1000).  So there could be an int overflow while computing
    
    176          points *= 1000;
    
    and points may have negative value. Meaning the oom score for a mem hog task
    will be one.
    
    196          if (points <= 0)
    197                  return 1;
    
    For example:
    [ 3366]     0  3366 35390480 24303939   5       0             0 oom01
    Out of memory: Kill process 3366 (oom01) score 1 or sacrifice child
    
    Here the oom1 process consumes more than 24303939(rss)*4096~=92GB physical
    memory, but it's oom score is one.
    
    In this situation the mem hog task is skipped and oom killer kills another and
    most probably innocent task with oom score greater than one.
    
    The points variable should be of type long instead of int to prevent the
    int overflow.
    
    Signed-off-by: Frantisek Hrbata <fhrbata@redhat.com>
    Acked-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Acked-by: Oleg Nesterov <oleg@redhat.com>
    Acked-by: David Rientjes <rientjes@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>

commit a6c066b0703eeafc61eafdd5addf157ee671bd68
Author: Michel Lespinasse <walken@google.com>
Date:   Mon Dec 19 17:12:06 2011 -0800

    binary_sysctl(): fix memory leak
    
    commit 3d3c8f93a237b64580c5c5e138edeb1377e98230 upstream.
    
    binary_sysctl() calls sysctl_getname() which allocates from names_cache
    slab usin __getname()
    
    The matching function to free the name is __putname(), and not putname()
    which should be used only to match getname() allocations.
    
    This is because when auditing is enabled, putname() calls audit_putname
    *instead* (not in addition) to __putname().  Then, if a syscall is in
    progress, audit_putname does not release the name - instead, it expects
    the name to get released when the syscall completes, but that will happen
    only if audit_getname() was called previously, i.e.  if the name was
    allocated with getname() rather than the naked __getname().  So,
    __getname() followed by putname() ends up leaking memory.
    
    Signed-off-by: Michel Lespinasse <walken@google.com>
    Acked-by: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Christoph Hellwig <hch@infradead.org>
    Cc: Eric Paris <eparis@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 8b6984422659dd49fdbf9ef3c829bd2bb3798053
Author: Roland Dreier <roland@purestorage.com>
Date:   Tue Dec 6 10:47:37 2011 -0800

    IB/mlx4: Fix shutdown crash accessing a non-existent bitmap
    
    commit 4af3ce0de0c12e5c17811eaefad36ab8e146c0fd upstream.
    
    Commit cfcde11c3d7a ("IB/mlx4: Use flow counters on IBoE ports") added
    code that sets elements of counters[] to -1 if no counter is allocated,
    but then goes ahead and passes every entry to mlx4_counter_free() on
    shutdown.  This is a bad idea, especially if MLX4_DEV_CAP_FLAG_COUNTERS
    isn't set so there isn't even an underlying bitmap to free from.
    
    Tested-by: Sean Hefty <sean.hefty@intel.com>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 2c141bbe1ddfb7f91749af4411f884125ea6e14e
Author: Eugene Surovegin <ebs@ebshome.net>
Date:   Thu Dec 15 11:25:59 2011 -0800

    percpu: fix per_cpu_ptr_to_phys() handling of non-page-aligned addresses
    
    commit 9f57bd4d6dc69a4e3bf43044fa00fcd24dd363e3 upstream.
    
    per_cpu_ptr_to_phys() incorrectly rounds up its result for non-kmalloc
    case to the page boundary, which is bogus for any non-page-aligned
    address.
    
    This affects the only in-tree user of this function - sysfs handler
    for per-cpu 'crash_notes' physical address.  The trouble is that the
    crash_notes per-cpu variable is not page-aligned:
    
    crash_notes = 0xc08e8ed4
    PER-CPU OFFSET VALUES:
     CPU 0: 3711f000
     CPU 1: 37129000
     CPU 2: 37133000
     CPU 3: 3713d000
    
    So, the per-cpu addresses are:
     crash_notes on CPU 0: f7a07ed4 => phys 36b57ed4
     crash_notes on CPU 1: f7a11ed4 => phys 36b4ded4
     crash_notes on CPU 2: f7a1bed4 => phys 36b43ed4
     crash_notes on CPU 3: f7a25ed4 => phys 36b39ed4
    
    However, /sys/devices/system/cpu/cpu*/crash_notes says:
     /sys/devices/system/cpu/cpu0/crash_notes: 36b57000
     /sys/devices/system/cpu/cpu1/crash_notes: 36b4d000
     /sys/devices/system/cpu/cpu2/crash_notes: 36b43000
     /sys/devices/system/cpu/cpu3/crash_notes: 36b39000
    
    As you can see, all values are rounded down to a page
    boundary. Consequently, this is where kexec sets up the NOTE segments,
    and thus where the secondary kernel is looking for them. However, when
    the first kernel crashes, it saves the notes to the unaligned
    addresses, where they are not found.
    
    Fix it by adding offset_in_page() to the translated page address.
    
    -tj: Combined Eugene's and Petr's commit messages.
    
    Signed-off-by: Eugene Surovegin <ebs@ebshome.net>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Reported-by: Petr Tesarik <ptesarik@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 8246905d452b12e1ce535705c746c3ff66660e09
Author: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date:   Mon Dec 12 00:05:53 2011 -0800

    Input: synaptics - fix touchpad not working after S2R on Vostro V13
    
    commit 8521478f67e95ada4e87970c7b41e504c724b2cf upstream.
    
    Synaptics touchpads on several Dell laptops, particularly Vostro V13
    systems, may not respond properly to PS/2 commands and queries immediately
    after resuming from suspend to RAM. This leads to unresponsive touchpad
    after suspend/resume cycle.
    
    Adding a 1-second delay after resetting the device allows touchpad to
    finish initializing (calibrating?) and start reacting properly.
    
    Reported-by: Daniel Manrique <daniel.manrique@canonical.com>
    Tested-by: Daniel Manrique <daniel.manrique@canonical.com>
    Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit cc9894300313f95acc1f44580d96f7b4cb81afa3
Author: Jason Chen <jason.chen@linaro.org>
Date:   Wed Nov 30 11:34:27 2011 +0800

    MXC PWM: should active during DOZE/WAIT/DBG mode
    
    commit c0d96aed8c6dd925afe9ea35491a0cd458642a86 upstream.
    
    Signed-off-by: Jason Chen <jason.chen@linaro.org>
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 4244546343a9d37d6302373d8a1cbb57e1be4334
Author: Philipp Dreimann <philipp@dreimann.net>
Date:   Wed Dec 7 13:43:31 2011 -0600

    rtl8192{ce,cu,de,se}: avoid problems because of possible ERFOFF -> ERFSLEEP transition
    
    commit 91ddff8a3b9cc7ac2252aca138220939cf6cc2cf upstream.
    
    In drivers rtl8192ce, rtl8192cu, rtl8192se, and rtl8192de, break
    statements would allow ppsc->rfpwr_state to be changed to ERFSLEEP
    even though the device is actually in ERFOFF.
    
    Signed-off-by: Philipp Dreimann <philipp@dreimann.net>
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Cc: Chaoming Li <chaoming_li@realsil.com.cn>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 105bad88a8944eac1e9652f6473b0ae5853b8985
Author: Hauke Mehrtens <hauke@hauke-m.de>
Date:   Mon Dec 5 23:19:51 2011 +0100

    ssb: fix init regression with SoCs
    
    commit 329456d1ffb416c220813725b7363cda9975c9aa upstream.
    
    This fixes a Data bus error on some SoCs. The first fix for this
    problem did not solve it on all devices.
        commit 6ae8ec27868bfdbb815287bee8146acbefaee867
        Author: Rafał Miłecki <zajec5@gmail.com>
        Date:   Tue Jul 5 17:25:32 2011 +0200
            ssb: fix init regression of hostmode PCI core
    
    In ssb_pcicore_fix_sprom_core_index() the sprom on the PCI core is
    accessed, but the sprom only exists when the ssb bus is connected over
    a PCI bus to the rest of the system and not when the SSB Bus is the
    main system bus. SoCs sometimes have a PCI host controller and there
    this code will not be executed, but there are some old SoCs with an PCI
    controller in client mode around and ssb_pcicore_fix_sprom_core_index()
    should not be called on these devices too. The PCI controller on these
    devices are unused, but without this fix it results in an Data bus
    error when it gets initialized.
    
    Cc: Michael Buesch <m@bues.ch>
    Cc: Rafał Miłecki <zajec5@gmail.com>
    Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 24b14588aef6226f3bcdf37e78af61cbe9a31fd2
Author: Mike Snitzer <snitzer@redhat.com>
Date:   Wed Nov 23 10:59:13 2011 +0100

    block: initialize request_queue's numa node during
    
    commit 5151412dd4338b273afdb107c3772528e9e67d92 upstream.
    
    struct request_queue is allocated with __GFP_ZERO so its "node" field is
    zero before initialization.  This causes an oops if node 0 is offline in
    the page allocator because its zonelists are not initialized.  From Dave
    Young's dmesg:
    
    	SRAT: Node 1 PXM 2 0-d0000000
    	SRAT: Node 1 PXM 2 100000000-330000000
    	SRAT: Node 0 PXM 1 330000000-630000000
    	Initmem setup node 1 0000000000000000-000000000affb000
    	...
    	Built 1 zonelists in Node order, mobility grouping on.
    	...
    	BUG: unable to handle kernel paging request at 0000000000001c08
    	IP: [<ffffffff8111c355>] __alloc_pages_nodemask+0xb5/0x870
    
    and __alloc_pages_nodemask+0xb5 translates to a NULL pointer on
    zonelist->_zonerefs.
    
    The fix is to initialize q->node at the time of allocation so the correct
    node is passed to the slab allocator later.
    
    Since blk_init_allocated_queue_node() is no longer needed, merge it with
    blk_init_allocated_queue().
    
    [rientjes@google.com: changelog, initializing q->node]
    Reported-by: Dave Young <dyoung@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: David Rientjes <rientjes@google.com>
    Tested-by: Dave Young <dyoung@redhat.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit fd4d1165bc59b4cb35a3d30e43ebba442c67a68c
Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
Date:   Sat Dec 10 20:38:32 2011 +0800

    ASoC: Fix WM8996 24.576MHz clock operation
    
    commit 37d5993c5cc9bc83762ae1b5bd287438022e8afe upstream.
    
    Record the clock after the divider as that is what all SYSCLK users see.
    Without this the other clock configuration in the device comes out at
    half rate.
    
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit c5bebbd132f1d56ef3d99143f5386d58b4da318e
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Dec 7 09:02:21 2011 +0100

    mac80211: fix another race in aggregation start
    
    commit 15062e6a8524f5977f2cbdf6e3eb2f144262f74e upstream.
    
    Emmanuel noticed that when mac80211 stops the queues
    for aggregation that can leave a packet pending. This
    packet will be given to the driver after the AMPDU
    callback, but as a non-aggregated packet which messes
    up the sequence number etc.
    
    I also noticed by looking at the code that if packets
    are being processed while we clear the WANT_START bit,
    they might see it cleared already and queue up on
    tid_tx->pending. If the driver then rejects the new
    aggregation session we leak the packet.
    
    Fix both of these issues by changing this code to not
    stop the queues at all. Instead, let packets queue up
    on the tid_tx->pending queue instead of letting them
    get to the driver, and add code to recover properly
    in case the driver rejects the session.
    
    (The patch looks large because it has to move two
    functions to before their new use.)
    
    Reported-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 7533e9cb9ce687424e344cf07a815ffc08734825
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Fri Nov 11 20:52:01 2011 +0100

    SCSI: fcoe: Fix preempt count leak in fcoe_filter_frames()
    
    commit 7e1e7ead88dff75b11b86ee0d5232c4591be1326 upstream.
    
    The error exit path leaks preempt count. Add the missing put_cpu().
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Yi Zou <yi.zou@intel.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 4c9ddbf69e5d6ea938804af78df524ea08535c63
Author: Anton Blanchard <anton@samba.org>
Date:   Mon Nov 7 22:05:21 2011 +1100

    SCSI: mpt2sas: _scsih_smart_predicted_fault uses GFP_KERNEL in interrupt context
    
    commit f6a290b419a2675c4b77a6b0731cd2a64332365e upstream.
    
    _scsih_smart_predicted_fault is called in an interrupt and therefore
    must allocate memory using GFP_ATOMIC.
    
    Signed-off-by: Anton Blanchard <anton@samba.org>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 4e8a616faeb24d919c5249039394fcfa78365986
Author: Steffen Maier <maier@linux.vnet.ibm.com>
Date:   Fri Nov 18 20:00:40 2011 +0100

    SCSI: zfcp: return early from slave_destroy if slave_alloc returned early
    
    commit 44f747fff6e9f027a4866c1a6864e26ae7c510c8 upstream.
    
    zfcp_scsi_slave_destroy erroneously always tried to finish its task
    even if the corresponding previous zfcp_scsi_slave_alloc returned
    early. This can lead to kernel page faults on accessing uninitialized
    fields of struct zfcp_scsi_dev in zfcp_erp_lun_shutdown_wait. Take the
    port field of the struct to determine if slave_alloc returned early.
    
    This zfcp bug is exposed by 4e6c82b (in turn fixing f7c9c6b to be
    compatible with 21208ae) which can call slave_destroy for a
    corresponding previous slave_alloc that did not finish.
    
    This patch is based on James Bottomley's fix suggestion in
    http://www.spinics.net/lists/linux-scsi/msg55449.html.
    
    Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 679b98b517dcddd7c3568081b50948a786884ad1
Author: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
Date:   Fri Dec 2 10:07:07 2011 +0100

    cfq-iosched: fix cfq_cic_link() race confition
    
    commit 5eb46851de3904cd1be9192fdacb8d34deadc1fc upstream.
    
    cfq_cic_link() has race condition. When some processes which shared ioc
    issue I/O to same block device simultaneously, cfq_cic_link() returns -EEXIST
    sometimes. The race condition might stop I/O by following steps:
    
    step  1: Process A: Issue an I/O to /dev/sda
    step  2: Process A: Get an ioc (iocA here) in get_io_context() which does not
    		    linked with a cic for the device
    step  3: Process A: Get a new cic for the device (cicA here) in
    		    cfq_alloc_io_context()
    
    step  4: Process B: Issue an I/O to /dev/sda
    step  5: Process B: Get iocA in get_io_context() since process A and B share the
    		    same ioc
    step  6: Process B: Get a new cic for the device (cicB here) in
    		    cfq_alloc_io_context() since iocA has not been linked with a
    		    cic for the device yet
    
    step  7: Process A: Link cicA to iocA in cfq_cic_link()
    step  8: Process A: Dispatch I/O to driver and finish it
    
    step  9: Process B: Try to link cicB to iocA in cfq_cic_link()
    		    But it fails with showing "cfq: cic link failed!" kernel
    		    message, since iocA has already linked with cicA at step 7.
    step 10: Process B: Wait for finishig I/O in get_request_wait()
    		    The function does not wake up, when there is no I/O to the
    		    device.
    
    When cfq_cic_link() returns -EEXIST, it means ioc has already linked with cic.
    So when cfq_cic_link() return -EEXIST, retry cfq_cic_lookup().
    
    Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit e0b58526fabbd53e2343f9ee0474f2070d717967
Author: majianpeng <majianpeng@gmail.com>
Date:   Wed Nov 30 15:47:48 2011 +0100

    cfq-iosched: free cic_index if blkio_alloc_blkg_stats fails
    
    commit 2984ff38ccf6cbc02a7a996a36c7d6f69f3c6146 upstream.
    
    If we fail allocating the blkpg stats, we free cfqd and cfgq.
    But we need to free the IDA cfqd->cic_index as well.
    
    Signed-off-by: majianpeng <majianpeng@gmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit c86534499300b66168ad29ac08ab1e1f987de909
Author: Eugeni Dodonov <eugeni.dodonov@intel.com>
Date:   Thu Nov 10 13:55:15 2011 -0200

    drm/i915: prevent division by zero when asking for chipset power
    
    commit 4ed0b577457eb6aeb7cdc7e7316576e63d15abb2 upstream.
    
    This prevents an in-kernel division by zero which happens when we are
    asking for i915_chipset_val too quickly, or within a race condition
    between the power monitoring thread and userspace accesses via debugfs.
    
    The issue can be reproduced easily via the following command:
    while ``; do cat /sys/kernel/debug/dri/0/i915_emon_status; done
    
    This is particularly dangerous because it can be triggered by
    a non-privileged user by just reading the debugfs entry.
    
    This issue was also found independently by Konstantin Belousov
    <kostikbel@gmail.com>, who proposed a similar patch.
    
    Reported-by: Konstantin Belousov <kostikbel@gmail.com>
    Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Acked-by: Keith Packard <keithp@keithp.com>
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
    Signed-off-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit bebaa677dcb502f900d3571e7a65eafed3796418
Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
Date:   Fri Oct 14 18:16:22 2011 -0300

    drm/i915: set the right SDVO transcoder for CPT
    
    commit 3573c4103f7a486838bb6b5b8353788103f91802 upstream.
    
    v2: add a CPT-specific macro, make code cleaner
    v3: fix commit message
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41272
    Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 3ea268b8e7550106ed98b87299394d13e36ff537
Author: David Henningsson <david.henningsson@canonical.com>
Date:   Mon Dec 12 14:01:17 2011 +0800

    ALSA: HDA: Set position fix to LPIB for an Atom/Poulsbo based device
    
    commit 1c89fe3b51a2f8068f2f9faa9c48584151416583 upstream.
    
    For the Asus 1101HA, reporting position by reading the DMA position
    buffer map seems unstable and often wrong. The reporter says that
    position_fix=LPIB works much better (although not 100%, but this is
    probably due to other issues).
    
    The controller chip is an Intel Poulsbo 8086:811b (rev 07) controller,
    and complete alsa-info is available here:
    https://launchpadlibrarian.net/86691768/alsa-info.txt.1TNwyE5Ea7
    
    BugLink: http://bugs.launchpad.net/bugs/825709
    Tested-by: Stefano Lodi
    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>

commit dbb49a2b153a9da2a281e927f14e4a15a676987d
Author: John Stultz <john.stultz@linaro.org>
Date:   Mon Dec 12 13:57:52 2011 -0800

    rtc: m41t80: Workaround broken alarm functionality
    
    commit c3b79770e51ab1fd4201f3b54edf30113b9ce74f upstream.
    
    The m41t80 driver can read and set the alarm, but it doesn't
    seem to have a functional alarm irq.
    
    This causes failures when the generic core sees alarm functions,
    but then cannot use them properly for things like UIE mode.
    
    Disabling the alarm functions allows proper error reporting,
    and possible fallback to emulated modes. Once someone fixes
    the alarm irq functionality, this can be restored.
    
    CC: Matt Turner <mattst88@gmail.com>
    CC: Nico Macrionitis <acrux@cruxppc.org>
    CC: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
    Reported-by: Matt Turner <mattst88@gmail.com>
    Reported-by: Nico Macrionitis <acrux@cruxppc.org>
    Tested-by: Nico Macrionitis <acrux@cruxppc.org>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit d853ba9cde9afd951d9bc8a86c7e90dfed2ad60b
Author: Ted Feng <artisdom@gmail.com>
Date:   Thu Dec 8 00:46:21 2011 +0000

    ipip, sit: copy parms.name after register_netdevice
    
    commit 72b36015ba43a3cca5303f5534d2c3e1899eae29 upstream.
    
    Same fix as 731abb9cb2 for ipip and sit tunnel.
    Commit 1c5cae815d removed an explicit call to dev_alloc_name in
    ipip_tunnel_locate and ipip6_tunnel_locate, because register_netdevice
    will now create a valid name, however the tunnel keeps a copy of the
    name in the private parms structure. Fix this by copying the name back
    after register_netdevice has successfully returned.
    
    This shows up if you do a simple tunnel add, followed by a tunnel show:
    
    $ sudo ip tunnel add mode ipip remote 10.2.20.211
    $ ip tunnel
    tunl0: ip/ip  remote any  local any  ttl inherit  nopmtudisc
    tunl%d: ip/ip  remote 10.2.20.211  local any  ttl inherit
    $ sudo ip tunnel add mode sit remote 10.2.20.212
    $ ip tunnel
    sit0: ipv6/ip  remote any  local any  ttl 64  nopmtudisc 6rd-prefix 2002::/16
    sit%d: ioctl 89f8 failed: No such device
    sit%d: ipv6/ip  remote 10.2.20.212  local any  ttl inherit
    
    Signed-off-by: Ted Feng <artisdom@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 3d121b72126c37320b1485ba98a67f3a132e22cc
Author: Felipe Contreras <felipe.contreras@gmail.com>
Date:   Thu Dec 8 22:23:00 2011 +0200

    ARM: OMAP: rx51: fix USB
    
    commit e5fe29c7198a1f6616286dfc8602a69da165cb3f upstream.
    
    Commit 10299e2e4e3ed3b16503d4e04edd48b33083f4e2 (ARM: RX-51:
    Enable isp1704 power on/off) added power management for isp1704.
    
    However, the transceiver should be powered on by default,
    otherwise USB doesn't work at all for networking during
    boot.
    
    All kernels after v3.0 are affected.
    
    Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
    Reviewed-by: Sebastian Reichel <sre@debian.org>
    [tony@atomide.com: updated comments]
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>