commit 2fc3fd44850e68f21ce1746c2e94470cab44ffab
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon Nov 26 11:35:36 2012 -0800

    Linux 3.0.53

commit b87c48d774bd12f6cb08ad8e5d2671d72bcfd4b4
Author: Ram Pai <linuxram@us.ibm.com>
Date:   Thu Sep 22 15:48:58 2011 +0800

    Resource: fix wrong resource window calculation
    
    commit 47ea91b4052d9e94b9dca5d7a3d947fbebd07ba9 upstream.
    
    __find_resource() incorrectly returns a resource window which overlaps
    an existing allocated window.  This happens when the parent's
    resource-window spans 0x00000000 to 0xffffffff and is entirely allocated
    to all its children resource-windows.
    
    __find_resource() looks for gaps in resource allocation among the
    children resource windows.  When it encounters the last child window it
    blindly tries the range next to one allocated to the last child.  Since
    the last child's window ends at 0xffffffff the calculation overflows,
    leading the algorithm to believe that any window in the range 0x0000000
    to 0xfffffff is available for allocation.  This leads to a conflicting
    window allocation.
    
    Michal Ludvig reported this issue seen on his platform.  The following
    patch fixes the problem and has been verified by Michal.  I believe this
    bug has been there for ages.  It got exposed by git commit 2bbc6942273b
    ("PCI : ability to relocate assigned pci-resources")
    
    Signed-off-by: Ram Pai <linuxram@us.ibm.com>
    Tested-by: Michal Ludvig <mludvig@logix.net.nz>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8515be67754c94ec193a936b5a9bbaf88d4dae90
Author: Yinghai Lu <yinghai@kernel.org>
Date:   Sat Jan 21 02:08:17 2012 -0800

    PCI : Calculate right add_size
    
    commit a4ac9fea016fc5c09227eb479bd35e34978323a4 upstream.
    
    During debug of one SRIOV enabled hotplug device, we found found that
    add_size is not passed properly.
    
    The device has devices under two level bridges:
    
     +-[0000:80]-+-00.0-[81-8f]--
     |           +-01.0-[90-9f]--
     |           +-02.0-[a0-af]----00.0-[a1-a3]--+-02.0-[a2]--+-00.0  Oracle Corporation Device
     |           |                               \-03.0-[a3]--+-00.0  Oracle Corporation Device
    
    Which means later the parent bridge will not try to add a big enough range:
    
    [  557.455077] pci 0000:a0:00.0: BAR 14: assigned [mem 0xf9000000-0xf93fffff]
    [  557.461974] pci 0000:a0:00.0: BAR 15: assigned [mem 0xf6000000-0xf61fffff pref]
    [  557.469340] pci 0000:a1:02.0: BAR 14: assigned [mem 0xf9000000-0xf91fffff]
    [  557.476231] pci 0000:a1:02.0: BAR 15: assigned [mem 0xf6000000-0xf60fffff pref]
    [  557.483582] pci 0000:a1:03.0: BAR 14: assigned [mem 0xf9200000-0xf93fffff]
    [  557.490468] pci 0000:a1:03.0: BAR 15: assigned [mem 0xf6100000-0xf61fffff pref]
    [  557.497833] pci 0000:a1:03.0: BAR 14: can't assign mem (size 0x200000)
    [  557.504378] pci 0000:a1:03.0: failed to add optional resources res=[mem 0xf9200000-0xf93fffff]
    [  557.513026] pci 0000:a1:02.0: BAR 14: can't assign mem (size 0x200000)
    [  557.519578] pci 0000:a1:02.0: failed to add optional resources res=[mem 0xf9000000-0xf91fffff]
    
    It turns out we did not calculate size1 properly.
    
    static resource_size_t calculate_memsize(resource_size_t size,
                    resource_size_t min_size,
                    resource_size_t size1,
                    resource_size_t old_size,
                    resource_size_t align)
    {
            if (size < min_size)
                    size = min_size;
            if (old_size == 1 )
                    old_size = 0;
            if (size < old_size)
                    size = old_size;
            size = ALIGN(size + size1, align);
            return size;
    }
    
    We should not pass add_size with min_size in calculate_memsize since
    that will make add_size not contribute final add_size.
    
    So just pass add_size with size1 to calculate_memsize().
    
    With this change, we should have chance to remove extra addon in
    pci_reassign_resource.
    
    Signed-off-by: Yinghai Lu <yinghai@kernel.org>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Cc: Andrew Worsley <amworsley@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 36720ae8b37c324a1c2e8ad9652f08b180081861
Author: Ram Pai <linuxram@us.ibm.com>
Date:   Mon Jul 25 13:08:39 2011 -0700

    PCI : ability to relocate assigned pci-resources
    
    commit 2bbc6942273b5b3097bd265d82227bdd84b351b2 upstream.
    
    Currently pci-bridges are allocated enough resources to satisfy their immediate
    requirements.  Any additional resource-requests fail if additional free space,
    contiguous to the one already allocated, is not available. This behavior is not
    reasonable since sufficient contiguous resources, that can satisfy the request,
    are available at a different location.
    
    This patch provides the ability to expand and relocate a allocated resource.
    
    	v2: Changelog: Fixed size calculation in pci_reassign_resource()
    	v3: Changelog : Split this patch. The resource.c changes are already
    			upstream. All the pci driver changes are in here.
    
    Signed-off-by: Ram Pai <linuxram@us.ibm.com>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Cc: Andrew Worsley <amworsley@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 95eb6d3d6ea9d8788c1268be35a8e70db2025f07
Author: Dave Jones <davej@redhat.com>
Date:   Thu Nov 8 16:09:27 2012 -0800

    selinux: fix sel_netnode_insert() suspicious rcu dereference
    
    commit 88a693b5c1287be4da937699cb82068ce9db0135 upstream.
    
    ===============================
    [ INFO: suspicious RCU usage. ]
    3.5.0-rc1+ #63 Not tainted
    -------------------------------
    security/selinux/netnode.c:178 suspicious rcu_dereference_check() usage!
    
    other info that might help us debug this:
    
    rcu_scheduler_active = 1, debug_locks = 0
    1 lock held by trinity-child1/8750:
     #0:  (sel_netnode_lock){+.....}, at: [<ffffffff812d8f8a>] sel_netnode_sid+0x16a/0x3e0
    
    stack backtrace:
    Pid: 8750, comm: trinity-child1 Not tainted 3.5.0-rc1+ #63
    Call Trace:
     [<ffffffff810cec2d>] lockdep_rcu_suspicious+0xfd/0x130
     [<ffffffff812d91d1>] sel_netnode_sid+0x3b1/0x3e0
     [<ffffffff812d8e20>] ? sel_netnode_find+0x1a0/0x1a0
     [<ffffffff812d24a6>] selinux_socket_bind+0xf6/0x2c0
     [<ffffffff810cd1dd>] ? trace_hardirqs_off+0xd/0x10
     [<ffffffff810cdb55>] ? lock_release_holdtime.part.9+0x15/0x1a0
     [<ffffffff81093841>] ? lock_hrtimer_base+0x31/0x60
     [<ffffffff812c9536>] security_socket_bind+0x16/0x20
     [<ffffffff815550ca>] sys_bind+0x7a/0x100
     [<ffffffff816c03d5>] ? sysret_check+0x22/0x5d
     [<ffffffff810d392d>] ? trace_hardirqs_on_caller+0x10d/0x1a0
     [<ffffffff8133b09e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
     [<ffffffff816c03a9>] system_call_fastpath+0x16/0x1b
    
    This patch below does what Paul McKenney suggested in the previous thread.
    
    Signed-off-by: Dave Jones <davej@redhat.com>
    Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Acked-by: Paul Moore <paul@paul-moore.com>
    Cc: Eric Paris <eparis@parisplace.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: James Morris <james.l.morris@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7eebd4fb8bac3b4b69783e9333cf6e383376702d
Author: Jan Kara <jack@suse.cz>
Date:   Tue Nov 13 18:25:38 2012 +0100

    reiserfs: Protect reiserfs_quota_write() with write lock
    
    commit 361d94a338a3fd0cee6a4ea32bbc427ba228e628 upstream.
    
    Calls into reiserfs journalling code and reiserfs_get_block() need to
    be protected with write lock. We remove write lock around calls to high
    level quota code in the next patch so these paths would suddently become
    unprotected.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2f21676d17f0c67263e87f13859682712b643323
Author: Jan Kara <jack@suse.cz>
Date:   Tue Nov 13 17:05:14 2012 +0100

    reiserfs: Move quota calls out of write lock
    
    commit 7af11686933726e99af22901d622f9e161404e6b upstream.
    
    Calls into highlevel quota code cannot happen under the write lock. These
    calls take dqio_mutex which ranks above write lock. So drop write lock
    before calling back into quota code.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a7b8408f3c42adc601513bb7b8dae9ef05a1719e
Author: Jan Kara <jack@suse.cz>
Date:   Tue Nov 13 16:34:17 2012 +0100

    reiserfs: Protect reiserfs_quota_on() with write lock
    
    commit b9e06ef2e8706fe669b51f4364e3aeed58639eb2 upstream.
    
    In reiserfs_quota_on() we do quite some work - for example unpacking
    tail of a quota file. Thus we have to hold write lock until a moment
    we call back into the quota code.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit daa88cb107f76cf9b563a2c0c25bbf2f47c67abf
Author: Jan Kara <jack@suse.cz>
Date:   Tue Nov 13 14:55:52 2012 +0100

    reiserfs: Fix lock ordering during remount
    
    commit 3bb3e1fc47aca554e7e2cc4deeddc24750987ac2 upstream.
    
    When remounting reiserfs dquot_suspend() or dquot_resume() can be called.
    These functions take dqonoff_mutex which ranks above write lock so we have
    to drop it before calling into quota code.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 31fcdd0d4e11b4fe065277932ab7e3fe60a9ed6e
Author: Bryan Schumaker <bjschuma@netapp.com>
Date:   Tue Oct 30 16:06:35 2012 -0400

    NFS: Wait for session recovery to finish before returning
    
    commit 399f11c3d872bd748e1575574de265a6304c7c43 upstream.
    
    Currently, we will schedule session recovery and then return to the
    caller of nfs4_handle_exception.  This works for most cases, but causes
    a hang on the following test case:
    
    	Client				Server
    	------				------
    	Open file over NFS v4.1
    	Write to file
    					Expire client
    	Try to lock file
    
    The server will return NFS4ERR_BADSESSION, prompting the client to
    schedule recovery.  However, the client will continue placing lock
    attempts and the open recovery never seems to be scheduled.  The
    simplest solution is to wait for session recovery to run before retrying
    the lock.
    
    Signed-off-by: Bryan Schumaker <bjschuma@netapp.com>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c76fbefaf9e4505a3d9024be2643cbb2f95e3c83
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Mon Oct 22 12:55:55 2012 +0200

    drm/i915: fix overlay on i830M
    
    commit a9193983f4f292a82a00c72971c17ec0ee8c6c15 upstream.
    
    The overlay on the i830M has a peculiar failure mode: It works the
    first time around after boot-up, but consistenly hangs the second time
    it's used.
    
    Chris Wilson has dug out a nice errata:
    
    "1.5.12 Clock Gating Disable for Display Register
    Address Offset:	06200h–06203h
    
    "Bit 3
    Ovrunit Clock Gating Disable.
    0 = Clock gating controlled by unit enabling logic
    1 = Disable clock gating function
    DevALM Errata ALM049: Overlay Clock Gating Must be Disabled:  Overlay
    & L2 Cache clock gating must be disabled in order to prevent device
    hangs when turning off overlay.SW must turn off Ovrunit clock gating
    (6200h) and L2 Cache clock gating (C8h)."
    
    Now I've nowhere found that 0xc8 register and hence couldn't apply the
    l2 cache workaround. But I've remembered that part of the magic that
    the OVERLAY_ON/OFF commands are supposed to do is to rearrange cache
    allocations so that the overlay scaler has some scratch space.
    
    And while pondering how that could explain the hang the 2nd time we
    enable the overlay, I've remembered that the old ums overlay code did
    _not_ issue the OVERLAY_OFF cmd.
    
    And indeed, disabling the OFF cmd results in the overlay working
    flawlessly, so I guess we can workaround the lack of the above
    workaround by simply never disabling the overlay engine once it's
    enabled.
    
    Note that we have the first part of the above w/a already implemented
    in i830_init_clock_gating - leave that as-is to avoid surprises.
    
    v2: Add a comment in the code.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47827
    Tested-by: Rhys <rhyspuk@gmail.com>
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    [bwh: Backported to 3.2:
     - Adjust context
     - s/intel_ring_emit(ring, /OUT_RING(/]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bb9583e497687ff3dd9ccc5185ca1d4d7eb7bea5
Author: Mirko Lindner <mlindner@marvell.com>
Date:   Tue Jul 3 23:38:46 2012 +0000

    sky2: Fix for interrupt handler
    
    commit d663d181b9e92d80c2455e460e932d34e7a2a7ae upstream.
    
    Re-enable interrupts if it is not our interrupt
    
    Signed-off-by: Mirko Lindner <mlindner@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: Jonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6c0e7633180a62ae295075e044e0a821c0a934b5
Author: Tim Sally <tsally@atomicpeace.com>
Date:   Thu Jul 12 19:10:24 2012 -0400

    eCryptfs: check for eCryptfs cipher support at mount
    
    commit 5f5b331d5c21228a6519dcb793fc1629646c51a6 upstream.
    
    The issue occurs when eCryptfs is mounted with a cipher supported by
    the crypto subsystem but not by eCryptfs. The mount succeeds and an
    error does not occur until a write. This change checks for eCryptfs
    cipher support at mount time.
    
    Resolves Launchpad issue #338914, reported by Tyler Hicks in 03/2009.
    https://bugs.launchpad.net/ecryptfs/+bug/338914
    
    Signed-off-by: Tim Sally <tsally@atomicpeace.com>
    Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
    Cc: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 34396c6b75ce93cf1ee38ddd492b542a6c8c63eb
Author: Tyler Hicks <tyhicks@canonical.com>
Date:   Mon Jun 11 15:42:32 2012 -0700

    eCryptfs: Copy up POSIX ACL and read-only flags from lower mount
    
    commit 069ddcda37b2cf5bb4b6031a944c0e9359213262 upstream.
    
    When the eCryptfs mount options do not include '-o acl', but the lower
    filesystem's mount options do include 'acl', the MS_POSIXACL flag is not
    flipped on in the eCryptfs super block flags. This flag is what the VFS
    checks in do_last() when deciding if the current umask should be applied
    to a newly created inode's mode or not. When a default POSIX ACL mask is
    set on a directory, the current umask is incorrectly applied to new
    inodes created in the directory. This patch ignores the MS_POSIXACL flag
    passed into ecryptfs_mount() and sets the flag on the eCryptfs super
    block depending on the flag's presence on the lower super block.
    
    Additionally, it is incorrect to allow a writeable eCryptfs mount on top
    of a read-only lower mount. This missing check did not allow writes to
    the read-only lower mount because permissions checks are still performed
    on the lower filesystem's objects but it is best to simply not allow a
    rw mount on top of ro mount. However, a ro eCryptfs mount on top of a rw
    mount is valid and still allowed.
    
    https://launchpad.net/bugs/1009207
    
    Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
    Reported-by: Stefan Beller <stefanbeller@googlemail.com>
    Cc: John Johansen <john.johansen@canonical.com>
    Cc: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 40ebcb89e6c84b5a5aca74d8df26705663a24598
Author: Jan Safrata <jan.nikitenko@gmail.com>
Date:   Tue May 22 14:04:50 2012 +0200

    usb: use usb_serial_put in usb_serial_probe errors
    
    commit 0658a3366db7e27fa32c12e886230bb58c414c92 upstream.
    
    The use of kfree(serial) in error cases of usb_serial_probe
    was invalid - usb_serial structure allocated in create_serial()
    gets reference of usb_device that needs to be put, so we need
    to use usb_serial_put() instead of simple kfree().
    
    Signed-off-by: Jan Safrata <jan.nikitenko@gmail.com>
    Acked-by: Johan Hovold <jhovold@gmail.com>
    Cc: Richard Retanubun <richardretanubun@ruggedcom.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 328325bf4fe39db557c2ea012a69b764734f27e5
Author: Ulrich Weber <ulrich.weber@sophos.com>
Date:   Thu Oct 25 05:34:45 2012 +0000

    netfilter: nf_nat: don't check for port change on ICMP tuples
    
    commit 38fe36a248ec3228f8e6507955d7ceb0432d2000 upstream.
    
    ICMP tuples have id in src and type/code in dst.
    So comparing src.u.all with dst.u.all will always fail here
    and ip_xfrm_me_harder() is called for every ICMP packet,
    even if there was no NAT.
    
    Signed-off-by: Ulrich Weber <ulrich.weber@sophos.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e8b32b0a0e7981f157b2073dd4c6f354340c3e6
Author: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Date:   Fri Aug 31 09:55:53 2012 +0000

    netfilter: Mark SYN/ACK packets as invalid from original direction
    
    commit 64f509ce71b08d037998e93dd51180c19b2f464c upstream.
    
    Clients should not send such packets. By accepting them, we open
    up a hole by wich ephemeral ports can be discovered in an off-path
    attack.
    
    See: "Reflection scan: an Off-Path Attack on TCP" by Jan Wrobel,
    http://arxiv.org/abs/1201.2074
    
    Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d87b26d50da9eca1be14216c9f7dac5b9b0ae3f9
Author: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Date:   Fri Aug 31 09:55:54 2012 +0000

    netfilter: Validate the sequence number of dataless ACK packets as well
    
    commit 4a70bbfaef0361d27272629d1a250a937edcafe4 upstream.
    
    We spare nothing by not validating the sequence number of dataless
    ACK packets and enabling it makes harder off-path attacks.
    
    See: "Reflection scan: an Off-Path Attack on TCP" by Jan Wrobel,
    http://arxiv.org/abs/1201.2074
    
    Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 02f7a0df82b15ceee37e2e24caa5dd68a2585682
Author: Jean Delvare <jdelvare@suse.de>
Date:   Tue Oct 2 16:42:36 2012 +0200

    kbuild: Fix gcc -x syntax
    
    commit b1e0d8b70fa31821ebca3965f2ef8619d7c5e316 upstream.
    
    The correct syntax for gcc -x is "gcc -x assembler", not
    "gcc -xassembler". Even though the latter happens to work, the former
    is what is documented in the manual page and thus what gcc wrappers
    such as icecream do expect.
    
    This isn't a cosmetic change. The missing space prevents icecream from
    recognizing compilation tasks it can't handle, leading to silent kernel
    miscompilations.
    
    Besides me, credits go to Michael Matz and Dirk Mueller for
    investigating the miscompilation issue and tracking it down to this
    incorrect -x parameter syntax.
    
    Signed-off-by: Jean Delvare <jdelvare@suse.de>
    Acked-by: Ingo Molnar <mingo@kernel.org>
    Cc: Bernhard Walle <bernhard@bwalle.de>
    Cc: Michal Marek <mmarek@suse.cz>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Michal Marek <mmarek@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bb976b0ffd080a738ac323b962ed99287b476ab5
Author: Michal Schmidt <mschmidt@redhat.com>
Date:   Sun Sep 9 13:55:26 2012 +0000

    r8169: use unlimited DMA burst for TX
    
    commit aee77e4accbeb2c86b1d294cd84fec4a12dde3bd upstream.
    
    The r8169 driver currently limits the DMA burst for TX to 1024 bytes. I have
    a box where this prevents the interface from using the gigabit line to its full
    potential. This patch solves the problem by setting TX_DMA_BURST to unlimited.
    
    The box has an ASRock B75M motherboard with on-board RTL8168evl/8111evl
    (XID 0c900880). TSO is enabled.
    
    I used netperf (TCP_STREAM test) to measure the dependency of TX throughput
    on MTU. I did it for three different values of TX_DMA_BURST ('5'=512, '6'=1024,
    '7'=unlimited). This chart shows the results:
    http://michich.fedorapeople.org/r8169/r8169-effects-of-TX_DMA_BURST.png
    
    Interesting points:
     - With the current DMA burst limit (1024):
       - at the default MTU=1500 I get only 842 Mbit/s.
       - when going from small MTU, the performance rises monotonically with
         increasing MTU only up to a peak at MTU=1076 (908 MBit/s). Then there's
         a sudden drop to 762 MBit/s from which the throughput rises monotonically
         again with further MTU increases.
     - With a smaller DMA burst limit (512):
       - there's a similar peak at MTU=1076 and another one at MTU=564.
     - With unlimited DMA burst:
       - at the default MTU=1500 I get nice 940 Mbit/s.
       - the throughput rises monotonically with increasing MTU with no strange
         peaks.
    
    Notice that the peaks occur at MTU sizes that are multiples of the DMA burst
    limit plus 52. Why 52? Because:
      20 (IP header) + 20 (TCP header) + 12 (TCP options) = 52
    
    The Realtek-provided r8168 driver (v8.032.00) uses unlimited TX DMA burst too,
    except for CFG_METHOD_1 where the TX DMA burst is set to 512 bytes.
    CFG_METHOD_1 appears to be the oldest MAC version of "RTL8168B/8111B",
    i.e. RTL_GIGA_MAC_VER_11 in r8169. Not sure if this MAC version really needs
    the smaller burst limit, or if any other versions have similar requirements.
    
    Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
    Acked-by: Francois Romieu <romieu@fr.zoreil.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3cc4eadd5674d1f00be32e5e4bdc74fbb3714185
Author: Tom Herbert <therbert@google.com>
Date:   Fri Nov 16 09:04:15 2012 +0000

    net-rps: Fix brokeness causing OOO packets
    
    [ Upstream commit baefa31db2f2b13a05d1b81bdf2d20d487f58b0a ]
    
    In commit c445477d74ab3779 which adds aRFS to the kernel, the CPU
    selected for RFS is not set correctly when CPU is changing.
    This is causing OOO packets and probably other issues.
    
    Signed-off-by: Tom Herbert <therbert@google.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Acked-by: Ben Hutchings <bhutchings@solarflare.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c5d6a966762eb5bac5960235461fd6893aaa8498
Author: Jiri Pirko <jiri@resnulli.us>
Date:   Wed Nov 14 02:51:04 2012 +0000

    net: correct check in dev_addr_del()
    
    [ Upstream commit a652208e0b52c190e57f2a075ffb5e897fe31c3b ]
    
    Check (ha->addr == dev->dev_addr) is always true because dev_addr_init()
    sets this. Correct the check to behave properly on addr removal.
    
    Signed-off-by: Jiri Pirko <jiri@resnulli.us>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db4bf38b4bb475c4d149410f56e79012980f3331
Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date:   Sat Nov 10 19:52:34 2012 +0000

    ipv6: setsockopt(IPIPPROTO_IPV6, IPV6_MINHOPCOUNT) forgot to set return value
    
    [ Upstream commit d4596bad2a713fcd0def492b1960e6d899d5baa8 ]
    
    Cc: Stephen Hemminger <shemminger@vyatta.com>
    Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 26aeb8bdda7619453e0958e8c38a84c7add3643b
Author: Xi Wang <xi.wang@gmail.com>
Date:   Sun Nov 11 11:20:01 2012 +0000

    ipv4: avoid undefined behavior in do_ip_setsockopt()
    
    [ Upstream commit 0c9f79be295c99ac7e4b569ca493d75fdcc19e4e ]
    
    (1<<optname) is undefined behavior in C with a negative optname or
    optname larger than 31.  In those cases the result of the shift is
    not necessarily zero (e.g., on x86).
    
    This patch simplifies the code with a switch statement on optname.
    It also allows the compiler to generate better code (e.g., using a
    64-bit mask).
    
    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@linuxfoundation.org>

commit 345d88cfbdd56cab94faf80554fe000f19a51576
Author: Andreas Schwab <schwab@linux-m68k.org>
Date:   Sat Nov 17 22:27:04 2012 +0100

    m68k: fix sigset_t accessor functions
    
    commit 34fa78b59c52d1db3513db4c1a999db26b2e9ac2 upstream.
    
    The sigaddset/sigdelset/sigismember functions that are implemented with
    bitfield insn cannot allow the sigset argument to be placed in a data
    register since the sigset is wider than 32 bits.  Remove the "d"
    constraint from the asm statements.
    
    The effect of the bug is that sending RT signals does not work, the signal
    number is truncated modulo 32.
    
    Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7e2c753a06883b35bf627c13211785b15002de0f
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon Nov 12 10:51:34 2012 +0100

    wireless: allow 40 MHz on world roaming channels 12/13
    
    commit 43c771a1963ab461a2f194e3c97fded1d5fe262f upstream.
    
    When in world roaming mode, allow 40 MHz to be used
    on channels 12 and 13 so that an AP that is, e.g.,
    using HT40+ on channel 9 (in the UK) can be used.
    
    Reported-by: Eddie Chapman <eddie@ehuk.net>
    Tested-by: Eddie Chapman <eddie@ehuk.net>
    Acked-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b67793df3809f589e8cbd2c1a277d29c60e7dd1d
Author: Dan Williams <dcbw@redhat.com>
Date:   Thu Nov 8 11:56:53 2012 -0600

    USB: option: add Alcatel X220/X500D USB IDs
    
    commit c0bc3098871dd9b964f6b45ec1e4d70d87811744 upstream.
    
    Signed-off-by: Dan Williams <dcbw@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5ff767d5028b16f0e9707c9180bb385a24137bd7
Author: Dan Williams <dcbw@redhat.com>
Date:   Thu Nov 8 11:56:42 2012 -0600

    USB: option: add Novatel E362 and Dell Wireless 5800 USB IDs
    
    commit fcb21645f1bd86d2be29baf48aa1b298de52ccc7 upstream.
    
    The Dell 5800 appears to be a simple rebrand of the Novatel E362.
    
    Signed-off-by: Dan Williams <dcbw@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 55d60ef31a8c7172ca8ad2dc275cbd0b9eda7b97
Author: Heiko Carstens <heiko.carstens@de.ibm.com>
Date:   Mon Oct 22 15:49:02 2012 +0200

    s390/gup: add missing TASK_SIZE check to get_user_pages_fast()
    
    commit d55c4c613fc4d4ad2ba0fc6fa2b57176d420f7e4 upstream.
    
    When walking page tables we need to make sure that everything
    is within bounds of the ASCE limit of the task's address space.
    Otherwise we might calculate e.g. a pud pointer which is not
    within a pud and dereference it.
    So check against TASK_SIZE (which is the ASCE limit) before
    walking page tables.
    
    Reviewed-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f174b32dc1a6912576d75d77afd00096f44878d4
Author: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Date:   Wed Oct 10 10:55:28 2012 +0300

    UBIFS: introduce categorized lprops counter
    
    commit 98a1eebda3cb2a84ecf1f219bb3a95769033d1bf upstream.
    
    This commit is a preparation for a subsequent bugfix. We introduce a
    counter for categorized lprops.
    
    Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ad33dc05bfe7c600d898e1f7857d1fd51308ba09
Author: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Date:   Tue Oct 9 16:20:15 2012 +0300

    UBIFS: fix mounting problems after power cuts
    
    commit a28ad42a4a0c6f302f488f26488b8b37c9b30024 upstream.
    
    This is a bugfix for a problem with the following symptoms:
    
    1. A power cut happens
    2. After reboot, we try to mount UBIFS
    3. Mount fails with "No space left on device" error message
    
    UBIFS complains like this:
    
    UBIFS error (pid 28225): grab_empty_leb: could not find an empty LEB
    
    The root cause of this problem is that when we mount, not all LEBs are
    categorized. Only those which were read are. However, the
    'ubifs_find_free_leb_for_idx()' function assumes that all LEBs were
    categorized and 'c->freeable_cnt' is valid, which is a false assumption.
    
    This patch fixes the problem by teaching 'ubifs_find_free_leb_for_idx()'
    to always fall back to LPT scanning if no freeable LEBs were found.
    
    This problem was reported by few people in the past, but Brent Taylor
    was able to reproduce it and send me a flash image which cannot be mounted,
    which made it easy to hunt the bug. Kudos to Brent.
    
    Reported-by: Brent Taylor <motobud@gmail.com>
    Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bb71076311ea0990cf8989aa13909191801acea2
Author: Misael Lopez Cruz <misael.lopez@ti.com>
Date:   Thu Nov 8 12:03:12 2012 -0600

    ASoC: dapm: Use card_list during DAPM shutdown
    
    commit 445632ad6dda42f4d3f9df2569a852ca0d4ea608 upstream.
    
    DAPM shutdown incorrectly uses "list" field of codec struct while
    iterating over probed components (codec_dev_list). "list" field
    refers to codecs registered in the system, "card_list" field is
    used for probed components.
    
    Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
    Signed-off-by: Liam Girdwood <lrg@ti.com>
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd5df62c48044800a9a1e0d783b024f3c6654548
Author: Eric Millbrandt <emillbrandt@dekaresearch.com>
Date:   Fri Nov 2 17:05:44 2012 -0400

    ASoC: wm8978: pll incorrectly configured when codec is master
    
    commit 55c6f4cb6ef49afbb86222c6a3ff85329199c729 upstream.
    
    When MCLK is supplied externally and BCLK and LRC are configured as outputs
    (codec is master), the PLL values are only calculated correctly on the first
    transmission.  On subsequent transmissions, at differenct sample rates, the
    wrong PLL values are used.  Test for f_opclk instead of f_pllout to determine
    if the PLL values are needed.
    
    Signed-off-by: Eric Millbrandt <emillbrandt@dekaresearch.com>
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 174aad546c3a40d117360a5bfce9c0a15e212a77
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Nov 5 12:32:46 2012 +0100

    ALSA: hda - Force to reset IEC958 status bits for AD codecs
    
    commit ae24c3191ba2ab03ec6b4be323e730e00404b4b6 upstream.
    
    Several bug reports suggest that the forcibly resetting IEC958 status
    bits is required for AD codecs to get the SPDIF output working
    properly after changing streams.
    
    Original fix credit to Javeed Shaikh.
    
    BugLink: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/359361
    
    Reported-by: Robin Kreis <r.kreis@uni-bremen.de>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 57ecc1fc79b75c348a9fc7887903bcf4f66041fc
Author: Alexander Stein <alexander.stein@systec-electronic.com>
Date:   Thu Nov 1 13:42:37 2012 +0100

    ALSA: hda: Cirrus: Fix coefficient index for beep configuration
    
    commit 5a83b4b5a391f07141b157ac9daa51c409e71ab5 upstream.
    
    Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8493a233c5ef25d64ed2d84e4b14c4ca45929708
Author: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Date:   Sun Oct 21 20:42:28 2012 +0300

    crypto: cryptd - disable softirqs in cryptd_queue_worker to prevent data corruption
    
    commit 9efade1b3e981f5064f9db9ca971b4dc7557ae42 upstream.
    
    cryptd_queue_worker attempts to prevent simultaneous accesses to crypto
    workqueue by cryptd_enqueue_request using preempt_disable/preempt_enable.
    However cryptd_enqueue_request might be called from softirq context,
    so add local_bh_disable/local_bh_enable to prevent data corruption and
    panics.
    
    Bug report at http://marc.info/?l=linux-crypto-vger&m=134858649616319&w=2
    
    v2:
     - Disable software interrupts instead of hardware interrupts
    
    Reported-by: Gurucharan Shetty <gurucharan.shetty@gmail.com>
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a5ffbe9623739953af7cbec40ae8d33472cb638
Author: Eric Paris <eparis@redhat.com>
Date:   Thu Nov 8 15:53:37 2012 -0800

    fanotify: fix missing break
    
    commit 848561d368751a1c0f679b9f045a02944506a801 upstream.
    
    Anders Blomdell noted in 2010 that Fanotify lost events and provided a
    test case.  Eric Paris confirmed it was a bug and posted a fix to the
    list
    
      https://groups.google.com/forum/?fromgroups=#!topic/linux.kernel/RrJfTfyW2BE
    
    but never applied it.  Repeated attempts over time to actually get him
    to apply it have never had a reply from anyone who has raised it
    
    So apply it anyway
    
    Signed-off-by: Alan Cox <alan@linux.intel.com>
    Reported-by: Anders Blomdell <anders.blomdell@control.lth.se>
    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@linuxfoundation.org>

commit 218440d541517f1c8c6c5349e105dbf23b371b26
Author: Takamori Yamaguchi <takamori.yamaguchi@jp.sony.com>
Date:   Thu Nov 8 15:53:39 2012 -0800

    mm: bugfix: set current->reclaim_state to NULL while returning from kswapd()
    
    commit b0a8cc58e6b9aaae3045752059e5e6260c0b94bc upstream.
    
    In kswapd(), set current->reclaim_state to NULL before returning, as
    current->reclaim_state holds reference to variable on kswapd()'s stack.
    
    In rare cases, while returning from kswapd() during memory offlining,
    __free_slab() and freepages() can access the dangling pointer of
    current->reclaim_state.
    
    Signed-off-by: Takamori Yamaguchi <takamori.yamaguchi@jp.sony.com>
    Signed-off-by: Aaditya Kumar <aaditya.kumar@ap.sony.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@linuxfoundation.org>