Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Odroidxu 3.4.y #63

Open
wants to merge 5,007 commits into
base: master
Choose a base branch
from
Open

Odroidxu 3.4.y #63

wants to merge 5,007 commits into from
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Jul 1, 2014

  1. genirq: Sanitize spurious interrupt detection of threaded irqs

    commit 1e77d0a upstream.
    
    Till reported that the spurious interrupt detection of threaded
    interrupts is broken in two ways:
    
    - note_interrupt() is called for each action thread of a shared
      interrupt line. That's wrong as we are only interested whether none
      of the device drivers felt responsible for the interrupt, but by
      calling multiple times for a single interrupt line we account
      IRQ_NONE even if one of the drivers felt responsible.
    
    - note_interrupt() when called from the thread handler is not
      serialized. That leaves the members of irq_desc which are used for
      the spurious detection unprotected.
    
    To solve this we need to defer the spurious detection of a threaded
    interrupt to the next hardware interrupt context where we have
    implicit serialization.
    
    If note_interrupt is called with action_ret == IRQ_WAKE_THREAD, we
    check whether the previous interrupt requested a deferred check. If
    not, we request a deferred check for the next hardware interrupt and
    return.
    
    If set, we check whether one of the interrupt threads signaled
    success. Depending on this information we feed the result into the
    spurious detector.
    
    If one primary handler of a shared interrupt returns IRQ_HANDLED we
    disable the deferred check of irq threads on the same line, as we have
    found at least one device driver who cared.
    
    Reported-by: Till Straumann <strauman@slac.stanford.edu>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Austin Schuh <austin@peloton-tech.com>
    Cc: Oliver Hartkopp <socketcan@hartkopp.net>
    Cc: Wolfgang Grandegger <wg@grandegger.com>
    Cc: Pavel Pisa <pisa@cmp.felk.cvut.cz>
    Cc: Marc Kleine-Budde <mkl@pengutronix.de>
    Cc: linux-can@vger.kernel.org
    Link: http://lkml.kernel.org/r/alpine.LFD.2.02.1303071450130.22263@ionos
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Thomas Gleixner authored and gregkh committed Jul 1, 2014
    Configuration menu
    Copy the full SHA
    a97df3f View commit details
    Browse the repository at this point in the history
  2. skbuff: add an api to orphan frags

    commit a353e0c upstream.
    
    Many places do
           if ((skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY))
    		skb_copy_ubufs(skb, gfp_mask);
    to copy and invoke frag destructors if necessary.
    Add an inline helper for this.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    mstsirkin authored and gregkh committed Jul 1, 2014
    Configuration menu
    Copy the full SHA
    1f29351 View commit details
    Browse the repository at this point in the history
  3. skbuff: export skb_copy_ubufs

    commit dcc0fb7 upstream.
    
    Export skb_copy_ubufs so that modules can orphan frags.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    mstsirkin authored and gregkh committed Jul 1, 2014
    Configuration menu
    Copy the full SHA
    2f3ca8e View commit details
    Browse the repository at this point in the history
  4. skbuff: skb_segment: orphan frags before copying

    commit 1fd819e upstream.
    
    skb_segment copies frags around, so we need
    to copy them carefully to avoid accessing
    user memory after reporting completion to userspace
    through a callback.
    
    skb_segment doesn't normally happen on datapath:
    TSO needs to be disabled - so disabling zero copy
    in this case does not look like a big deal.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    [bwh: Backported to 3.2.  As skb_segment() only supports page-frags *or* a
     frag list, there is no need for the additional frag_skb pointer or the
     preparatory renaming.]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    mstsirkin authored and gregkh committed Jul 1, 2014
    Configuration menu
    Copy the full SHA
    2edae61 View commit details
    Browse the repository at this point in the history
  5. Btrfs: fix double free in find_lock_delalloc_range

    commit 7d78874 upstream.
    
    We need to NULL the cached_state after freeing it, otherwise
    we might free it again if find_delalloc_range doesn't find anything.
    
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    masoncl authored and gregkh committed Jul 1, 2014
    Configuration menu
    Copy the full SHA
    a25ebe2 View commit details
    Browse the repository at this point in the history
  6. fs: btrfs: volumes.c: Fix for possible null pointer dereference

    commit 8321cf2 upstream.
    
    There is otherwise a risk of a possible null pointer dereference.
    
    Was largely found by using a static code analysis program called cppcheck.
    
    Signed-off-by: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Rickard Strandqvist authored and gregkh committed Jul 1, 2014
    Configuration menu
    Copy the full SHA
    8f1dd63 View commit details
    Browse the repository at this point in the history
  7. Btrfs: use right type to get real comparison

    commit cd857dd upstream.
    
    We want to make sure the point is still within the extent item, not to verify
    the memory it's pointing to.
    
    Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Liu Bo authored and gregkh committed Jul 1, 2014
    Configuration menu
    Copy the full SHA
    64b84ef View commit details
    Browse the repository at this point in the history
  8. btrfs: fix use of uninit "ret" in end_extent_writepage()

    commit 3e2426b upstream.
    
    If this condition in end_extent_writepage() is false:
    
    	if (tree->ops && tree->ops->writepage_end_io_hook)
    
    we will then test an uninitialized "ret" at:
    
    	ret = ret < 0 ? ret : -EIO;
    
    The test for ret is for the case where ->writepage_end_io_hook
    failed, and we'd choose that ret as the error; but if
    there is no ->writepage_end_io_hook, nothing sets ret.
    
    Initializing ret to 0 should be sufficient; if
    writepage_end_io_hook wasn't set, (!uptodate) means
    non-zero err was passed in, so we choose -EIO in that case.
    
    Signed-of-by: Eric Sandeen <sandeen@redhat.com>
    
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Eric Sandeen authored and gregkh committed Jul 1, 2014
    Configuration menu
    Copy the full SHA
    e18bac2 View commit details
    Browse the repository at this point in the history
  9. usb: usbtest: Add timetout to simple_io()

    commit e5e4746 upstream.
    
    Without a timetout some tests e.g. test_halt() can remain stuck forever.
    
    Signed-off-by: Roger Quadros <rogerq@ti.com>
    Reviewed-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Roger Quadros authored and gregkh committed Jul 1, 2014
    Configuration menu
    Copy the full SHA
    3b0d089 View commit details
    Browse the repository at this point in the history
  10. x86_32, entry: Do syscall exit work on badsys (CVE-2014-4508)

    commit 554086d upstream.
    
    The bad syscall nr paths are their own incomprehensible route
    through the entry control flow.  Rearrange them to work just like
    syscalls that return -ENOSYS.
    
    This fixes an OOPS in the audit code when fast-path auditing is
    enabled and sysenter gets a bad syscall nr (CVE-2014-4508).
    
    This has probably been broken since Linux 2.6.27:
    af0575b i386 syscall audit fast-path
    
    Cc: Roland McGrath <roland@redhat.com>
    Reported-by: Toralf Förster <toralf.foerster@gmx.de>
    Signed-off-by: Andy Lutomirski <luto@amacapital.net>
    Link: http://lkml.kernel.org/r/e09c499eade6fc321266dd6b54da7beb28d6991c.1403558229.git.luto@amacapital.net
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    amluto authored and gregkh committed Jul 1, 2014
    Configuration menu
    Copy the full SHA
    d300733 View commit details
    Browse the repository at this point in the history
  11. Linux 3.4.96

    gregkh committed Jul 1, 2014
    Configuration menu
    Copy the full SHA
    3e3d5f6 View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2014

  1. Input: elantech - deal with clickpads reporting right button events

    commit cd9e83e upstream.
    
    At least the Dell Vostro 5470 elantech *clickpad* reports right button
    clicks when clicked in the right bottom area:
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1103528
    
    This is different from how (elantech) clickpads normally operate, normally
    no matter where the user clicks on the pad the pad always reports a left
    button event, since there is only 1 hardware button beneath the path.
    
    It looks like Dell has put 2 buttons under the pad, one under each bottom
    corner, causing this.
    
    Since this however still clearly is a real clickpad hardware-wise, we still
    want to report it as such to userspace, so that things like finger movement
    in the bottom area can be properly ignored as it should be on clickpads.
    
    So deal with this weirdness by simply mapping a right click to a left click
    on elantech clickpads. As an added advantage this is something which we can
    simply do on all elantech clickpads, so no need to add special quirks for
    this weird model.
    
    Reported-and-tested-by: Elder Marco <eldermarco@gmail.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jwrdegoede authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    c80dcb8 View commit details
    Browse the repository at this point in the history
  2. PCI: Add new ID for Intel GPU "spurious interrupt" quirk

    commit 7c82126 upstream.
    
    After a CPU upgrade while keeping the same mainboard, we faced "spurious
    interrupt" problems again.
    
    It turned out that the new CPU also featured a new GPU with a different PCI
    ID.
    
    Add this PCI ID to the quirk table.  Probably all other Intel GPU PCI IDs
    are affected, too, but I don't want to add them without a test system.
    
    See f67fd55 ("PCI: Add quirk for still enabled interrupts on Intel
    Sandy Bridge GPUs") for some history.
    
    [bhelgaas: add f67fd55 reference, stable tag]
    Signed-off-by: Thomas Jarosch <thomas.jarosch@intra2net.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    thomasjfox authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    ade1407 View commit details
    Browse the repository at this point in the history
  3. PCI: Fix incorrect vgaarb conditional in WARN_ON()

    commit 67ebd81 upstream.
    
    3448a19 "vgaarb: use bridges to control VGA routing where possible"
    added the "flags & PCI_VGA_STATE_CHANGE_DECODES" condition to an existing
    WARN_ON(), but used bitwise AND (&) instead of logical AND (&&), so the
    condition is never true.  Replace with logical AND.
    
    Found by Coverity (CID 142811).
    
    Fixes: 3448a19 "vgaarb: use bridges to control VGA routing where possible"
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: Yinghai Lu <yinghai@kernel.org>
    Acked-by: David Airlie <airlied@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    bjorn-helgaas authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    5564b79 View commit details
    Browse the repository at this point in the history
  4. recordmcount/MIPS: Fix possible incorrect mcount_loc table entries in…

    … modules
    
    commit 91ad11d upstream.
    
    On MIPS calls to _mcount in modules generate 2 instructions to load
    the _mcount address (and therefore 2 relocations). The mcount_loc
    table should only reference the first of these, so the second is
    filtered out by checking the relocation offset and ignoring ones that
    immediately follow the previous one seen.
    
    However if a module has an _mcount call at offset 0, the second
    relocation would not be filtered out due to old_r_offset == 0
    being taken to mean that the current relocation is the first one
    seen, and both would end up in the mcount_loc table.
    
    This results in ftrace_make_nop() patching both (adjacent)
    instructions to branches over the _mcount call sequence like so:
    
      0xffffffffc08a8000:  04 00 00 10     b       0xffffffffc08a8014
      0xffffffffc08a8004:  04 00 00 10     b       0xffffffffc08a8018
      0xffffffffc08a8008:  2d 08 e0 03     move    at,ra
      ...
    
    The second branch is in the delay slot of the first, which is
    defined to be unpredictable - on the platform on which this bug was
    encountered, it triggers a reserved instruction exception.
    
    Fix by initializing old_r_offset to ~0 and using that instead of 0
    to determine whether the current relocation is the first seen.
    
    Signed-off-by: Alex Smith <alex.smith@imgtec.com>
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/7098/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Alex Smith authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    0e4c57c View commit details
    Browse the repository at this point in the history
  5. MIPS: MSC: Prevent out-of-bounds writes to MIPS SC ioremap'd region

    commit ab6c15b upstream.
    
    Previously, the lower limit for the MIPS SC initialization loop was
    set incorrectly allowing one extra loop leading to writes
    beyond the MSC ioremap'd space. More precisely, the value of the 'imp'
    in the last loop increased beyond the msc_irqmap_t boundaries and
    as a result of which, the 'n' variable was loaded with an incorrect
    value. This value was used later on to calculate the offset in the
    MSC01_IC_SUP which led to random crashes like the following one:
    
    CPU 0 Unable to handle kernel paging request at virtual address e75c0200,
    epc == 8058dba4, ra == 8058db90
    [...]
    Call Trace:
    [<8058dba4>] init_msc_irqs+0x104/0x154
    [<8058b5bc>] arch_init_irq+0xd8/0x154
    [<805897b0>] start_kernel+0x220/0x36c
    
    Kernel panic - not syncing: Attempted to kill the idle task!
    
    This patch fixes the problem
    
    Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
    Reviewed-by: James Hogan <james.hogan@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/7118/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Markos Chandras authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    df5c07b View commit details
    Browse the repository at this point in the history
  6. UBIFS: Remove incorrect assertion in shrink_tnc()

    commit 72abc8f upstream.
    
    I hit the same assert failed as Dolev Raviv reported in Kernel v3.10
    shows like this:
    
    [ 9641.164028] UBIFS assert failed in shrink_tnc at 131 (pid 13297)
    [ 9641.234078] CPU: 1 PID: 13297 Comm: mmap.test Tainted: G           O 3.10.40 #1
    [ 9641.234116] [<c0011a6c>] (unwind_backtrace+0x0/0x12c) from [<c000d0b0>] (show_stack+0x20/0x24)
    [ 9641.234137] [<c000d0b0>] (show_stack+0x20/0x24) from [<c0311134>] (dump_stack+0x20/0x28)
    [ 9641.234188] [<c0311134>] (dump_stack+0x20/0x28) from [<bf22425c>] (shrink_tnc_trees+0x25c/0x350 [ubifs])
    [ 9641.234265] [<bf22425c>] (shrink_tnc_trees+0x25c/0x350 [ubifs]) from [<bf2245ac>] (ubifs_shrinker+0x25c/0x310 [ubifs])
    [ 9641.234307] [<bf2245ac>] (ubifs_shrinker+0x25c/0x310 [ubifs]) from [<c00cdad8>] (shrink_slab+0x1d4/0x2f8)
    [ 9641.234327] [<c00cdad8>] (shrink_slab+0x1d4/0x2f8) from [<c00d03d0>] (do_try_to_free_pages+0x300/0x544)
    [ 9641.234344] [<c00d03d0>] (do_try_to_free_pages+0x300/0x544) from [<c00d0a44>] (try_to_free_pages+0x2d0/0x398)
    [ 9641.234363] [<c00d0a44>] (try_to_free_pages+0x2d0/0x398) from [<c00c6a60>] (__alloc_pages_nodemask+0x494/0x7e8)
    [ 9641.234382] [<c00c6a60>] (__alloc_pages_nodemask+0x494/0x7e8) from [<c00f62d8>] (new_slab+0x78/0x238)
    [ 9641.234400] [<c00f62d8>] (new_slab+0x78/0x238) from [<c031081c>] (__slab_alloc.constprop.42+0x1a4/0x50c)
    [ 9641.234419] [<c031081c>] (__slab_alloc.constprop.42+0x1a4/0x50c) from [<c00f80e8>] (kmem_cache_alloc_trace+0x54/0x188)
    [ 9641.234459] [<c00f80e8>] (kmem_cache_alloc_trace+0x54/0x188) from [<bf227908>] (do_readpage+0x168/0x468 [ubifs])
    [ 9641.234553] [<bf227908>] (do_readpage+0x168/0x468 [ubifs]) from [<bf2296a0>] (ubifs_readpage+0x424/0x464 [ubifs])
    [ 9641.234606] [<bf2296a0>] (ubifs_readpage+0x424/0x464 [ubifs]) from [<c00c17c0>] (filemap_fault+0x304/0x418)
    [ 9641.234638] [<c00c17c0>] (filemap_fault+0x304/0x418) from [<c00de694>] (__do_fault+0xd4/0x530)
    [ 9641.234665] [<c00de694>] (__do_fault+0xd4/0x530) from [<c00e10c0>] (handle_pte_fault+0x480/0xf54)
    [ 9641.234690] [<c00e10c0>] (handle_pte_fault+0x480/0xf54) from [<c00e2bf8>] (handle_mm_fault+0x140/0x184)
    [ 9641.234716] [<c00e2bf8>] (handle_mm_fault+0x140/0x184) from [<c0316688>] (do_page_fault+0x150/0x3ac)
    [ 9641.234737] [<c0316688>] (do_page_fault+0x150/0x3ac) from [<c000842c>] (do_DataAbort+0x3c/0xa0)
    [ 9641.234759] [<c000842c>] (do_DataAbort+0x3c/0xa0) from [<c0314e38>] (__dabt_usr+0x38/0x40)
    
    After analyzing the code, I found a condition that may cause this failed
    in correct operations. Thus, I think this assertion is wrong and should be
    removed.
    
    Suppose there are two clean znodes and one dirty znode in TNC. So the
    per-filesystem atomic_t @clean_zn_cnt is (2). If commit start, dirty_znode
    is set to COW_ZNODE in get_znodes_to_commit() in case of potentially ops
    on this znode. We clear COW bit and DIRTY bit in write_index() without
    @tnc_mutex locked. We don't increase @clean_zn_cnt in this place. As the
    comments in write_index() shows, if another process hold @tnc_mutex and
    dirty this znode after we clean it, @clean_zn_cnt would be decreased to (1).
    We will increase @clean_zn_cnt to (2) with @tnc_mutex locked in
    free_obsolete_znodes() to keep it right.
    
    If shrink_tnc() performs between decrease and increase, it will release
    other 2 clean znodes it holds and found @clean_zn_cnt is less than zero
    (1 - 2 = -1), then hit the assertion. Because free_obsolete_znodes() will
    soon correct @clean_zn_cnt and no harm to fs in this case, I think this
    assertion could be removed.
    
    2 clean zondes and 1 dirty znode, @clean_zn_cnt == 2
    
    Thread A (commit)         Thread B (write or others)       Thread C (shrinker)
    ->write_index
       ->clear_bit(DIRTY_NODE)
       ->clear_bit(COW_ZNODE)
    
                @clean_zn_cnt == 2
                              ->mutex_locked(&tnc_mutex)
                              ->dirty_cow_znode
                                  ->!ubifs_zn_cow(znode)
                                  ->!test_and_set_bit(DIRTY_NODE)
                                  ->atomic_dec(&clean_zn_cnt)
                              ->mutex_unlocked(&tnc_mutex)
    
                @clean_zn_cnt == 1
                                                               ->mutex_locked(&tnc_mutex)
                                                               ->shrink_tnc
                                                                 ->destroy_tnc_subtree
                                                                 ->atomic_sub(&clean_zn_cnt, 2)
                                                                 ->ubifs_assert  <- hit
                                                               ->mutex_unlocked(&tnc_mutex)
    
                @clean_zn_cnt == -1
    ->mutex_lock(&tnc_mutex)
    ->free_obsolete_znodes
       ->atomic_inc(&clean_zn_cnt)
    ->mutux_unlock(&tnc_mutex)
    
                @clean_zn_cnt == 0 (correct after shrink)
    
    Signed-off-by: hujianyang <hujianyang@huawei.com>
    Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    hujianyang authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    0834497 View commit details
    Browse the repository at this point in the history
  7. watchdog: sp805: Set watchdog_device->timeout from ->set_timeout()

    commit 938626d upstream.
    
    Implementation of ->set_timeout() is supposed to set 'timeout' field of 'struct
    watchdog_device' passed to it. sp805 was rather setting this in a local
    variable. Fix it.
    
    Reported-by: Arun Ramamurthy <arun.ramamurthy@broadcom.com>
    Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    vireshk authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    e8b6433 View commit details
    Browse the repository at this point in the history
  8. IB/qib: Fix port in pkey change event

    commit 911eccd upstream.
    
    The code used a literal 1 in dispatching an IB_EVENT_PKEY_CHANGE.
    
    As of the dual port qib QDR card, this is not necessarily correct.
    
    Change to use the port as specified in the call.
    
    Reported-by: Alex Estrin <alex.estrin@intel.com>
    Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    mmarcini authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    dd823fd View commit details
    Browse the repository at this point in the history
  9. IB/ipath: Translate legacy diagpkt into newer extended diagpkt

    commit 7e6d3e5 upstream.
    
    This patch addresses an issue where the legacy diagpacket is sent in
    from the user, but the driver operates on only the extended
    diagpkt. This patch specifically initializes the extended diagpkt
    based on the legacy packet.
    
    Reported-by: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
    Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Dennis Dalessandro authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    7517010 View commit details
    Browse the repository at this point in the history
  10. IB/srp: Fix a sporadic crash triggered by cable pulling

    commit 024ca90 upstream.
    
    Avoid that the loops that iterate over the request ring can encounter
    a pointer to a SCSI command in req->scmnd that is no longer associated
    with that request. If the function srp_unmap_data() is invoked twice
    for a SCSI command that is not in flight then that would cause
    ib_fmr_pool_unmap() to be invoked with an invalid pointer as argument,
    resulting in a kernel oops.
    
    Reported-by: Sagi Grimberg <sagig@mellanox.com>
    Reference: http://thread.gmane.org/gmane.linux.drivers.rdma/19068/focus=19069
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    bvanassche authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    c52be4c View commit details
    Browse the repository at this point in the history
  11. IB/umad: Fix error handling

    commit 8ec0a0e upstream.
    
    Avoid leaking a kref count in ib_umad_open() if port->ib_dev == NULL
    or if nonseekable_open() fails.
    
    Avoid leaking a kref count, that sm_sem is kept down and also that the
    IB_PORT_SM capability mask is not cleared in ib_umad_sm_open() if
    nonseekable_open() fails.
    
    Since container_of() never returns NULL, remove the code that tests
    whether container_of() returns NULL.
    
    Moving the kref_get() call from the start of ib_umad_*open() to the
    end is safe since it is the responsibility of the caller of these
    functions to ensure that the cdev pointer remains valid until at least
    when these functions return.
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    
    [ydroneaud@opteya.com: rework a bit to reduce the amount of code changed]
    
    Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
    
    [ nonseekable_open() can't actually fail, but....  - Roland ]
    
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    bvanassche authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    b6b405b View commit details
    Browse the repository at this point in the history
  12. IB/umad: Fix use-after-free on close

    commit 60e1751 upstream.
    
    Avoid that closing /dev/infiniband/umad<n> or /dev/infiniband/issm<n>
    triggers a use-after-free.  __fput() invokes f_op->release() before it
    invokes cdev_put().  Make sure that the ib_umad_device structure is
    freed by the cdev_put() call instead of f_op->release().  This avoids
    that changing the port mode from IB into Ethernet and back to IB
    followed by restarting opensmd triggers the following kernel oops:
    
        general protection fault: 0000 [#1] PREEMPT SMP
        RIP: 0010:[<ffffffff810cc65c>]  [<ffffffff810cc65c>] module_put+0x2c/0x170
        Call Trace:
         [<ffffffff81190f20>] cdev_put+0x20/0x30
         [<ffffffff8118e2ce>] __fput+0x1ae/0x1f0
         [<ffffffff8118e35e>] ____fput+0xe/0x10
         [<ffffffff810723bc>] task_work_run+0xac/0xe0
         [<ffffffff81002a9f>] do_notify_resume+0x9f/0xc0
         [<ffffffff814b8398>] int_signal+0x12/0x17
    
    Reference: https://bugzilla.kernel.org/show_bug.cgi?id=75051
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Reviewed-by: Yann Droneaud <ydroneaud@opteya.com>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    bvanassche authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    d0d9888 View commit details
    Browse the repository at this point in the history
  13. nfsd4: fix FREE_STATEID lockowner leak

    commit 4838540 upstream.
    
    27b1142 ("nfsd4: remove lockowner when removing lock stateid")
    introduced a memory leak.
    
    Reported-by: Jeff Layton <jeff.layton@primarydata.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    J. Bruce Fields authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    eb55ed0 View commit details
    Browse the repository at this point in the history
  14. nfsd: getattr for FATTR4_WORD0_FILES_AVAIL needs the statfs buffer

    commit 1233790 upstream.
    
    Note nobody's ever noticed because the typical client probably never
    requests FILES_AVAIL without also requesting something else on the list.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Christoph Hellwig authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    bdef830 View commit details
    Browse the repository at this point in the history
  15. powerpc/pseries: Fix overwritten PE state

    commit 54f112a upstream.
    
    In pseries_eeh_get_state(), EEH_STATE_UNAVAILABLE is always
    overwritten by EEH_STATE_NOT_SUPPORT because of the missed
    "break" there. The patch fixes the issue.
    
    Reported-by: Joe Perches <joe@perches.com>
    Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Gavin Shan authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    d5110f6 View commit details
    Browse the repository at this point in the history
  16. powerpc: fix typo 'CONFIG_PMAC'

    commit 6e0fdf9 upstream.
    
    Commit b0d278b ("powerpc/perf_event: Reduce latency of calling
    perf_event_do_pending") added a check for CONFIG_PMAC were a check for
    CONFIG_PPC_PMAC was clearly intended.
    
    Fixes: b0d278b ("powerpc/perf_event: Reduce latency of calling perf_event_do_pending")
    Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    pebolle authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    52cbee9 View commit details
    Browse the repository at this point in the history
  17. powerpc: fix typo 'CONFIG_PPC_CPU'

    commit b69a1da upstream.
    
    Commit cd64d16 ("powerpc: mtmsrd not defined") added a check for
    CONFIG_PPC_CPU were a check for CONFIG_PPC_FPU was clearly intended.
    
    Fixes: cd64d16 ("powerpc: mtmsrd not defined")
    Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    pebolle authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    60db341 View commit details
    Browse the repository at this point in the history
  18. ptrace,x86: force IRET path after a ptrace_stop()

    commit b9cd18d upstream.
    
    The 'sysret' fastpath does not correctly restore even all regular
    registers, much less any segment registers or reflags values.  That is
    very much part of why it's faster than 'iret'.
    
    Normally that isn't a problem, because the normal ptrace() interface
    catches the process using the signal handler infrastructure, which
    always returns with an iret.
    
    However, some paths can get caught using ptrace_event() instead of the
    signal path, and for those we need to make sure that we aren't going to
    return to user space using 'sysret'.  Otherwise the modifications that
    may have been done to the register set by the tracer wouldn't
    necessarily take effect.
    
    Fix it by forcing IRET path by setting TIF_NOTIFY_RESUME from
    arch_ptrace_stop_needed() which is invoked from ptrace_stop().
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Reported-by: Andy Lutomirski <luto@amacapital.net>
    Acked-by: Oleg Nesterov <oleg@redhat.com>
    Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    htejun authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    e3293b8 View commit details
    Browse the repository at this point in the history
  19. tracing: Fix syscall_*regfunc() vs copy_process() race

    commit 4af4206 upstream.
    
    syscall_regfunc() and syscall_unregfunc() should set/clear
    TIF_SYSCALL_TRACEPOINT system-wide, but do_each_thread() can race
    with copy_process() and miss the new child which was not added to
    the process/thread lists yet.
    
    Change copy_process() to update the child's TIF_SYSCALL_TRACEPOINT
    under tasklist.
    
    Link: http://lkml.kernel.org/p/20140413185854.GB20668@redhat.com
    
    Fixes: a871bd3 "tracing: Add syscall tracepoints"
    Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
    Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    oleg-nesterov authored and gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    0c3351a View commit details
    Browse the repository at this point in the history
  20. Linux 3.4.97

    gregkh committed Jul 7, 2014
    Configuration menu
    Copy the full SHA
    7913639 View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2014

  1. ibmvscsi: Abort init sequence during error recovery

    commit 9ee7559 upstream.
    
    If a CRQ reset is triggered for some reason while in the middle
    of performing VSCSI adapter initialization, we don't want to
    call the done function for the initialization MAD commands as
    this will only result in two threads attempting initialization
    at the same time, resulting in failures.
    
    Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
    Acked-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    bjking1 authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    7c4b5eb View commit details
    Browse the repository at this point in the history
  2. xhci: correct burst count field for isoc transfers on 1.0 xhci hosts

    commit 3213b15 upstream.
    
    The transfer burst count (TBC) field in xhci 1.0 hosts should be set
    to the number of bursts needed to transfer all packets in a isoc TD.
    Supported values are 0-2 (1 to 3 bursts per service interval).
    
    Formula for TBC calculation is given in xhci spec section 4.11.2.3:
    TBC = roundup( Transfer Descriptor Packet Count / Max Burst Size +1 ) - 1
    
    This patch should be applied to stable kernels since 3.0 that contain
    the commit 5cd43e3
    "xhci 1.0: Set transfer burst count field."
    
    Suggested-by: ShiChun Ma <masc2008@qq.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    matnyman authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    4d73119 View commit details
    Browse the repository at this point in the history
  3. xhci: Fix runtime suspended xhci from blocking system suspend.

    commit d6236f6 upstream.
    
    The system suspend flow as following:
    1, Freeze all user processes and kenrel threads.
    
    2, Try to suspend all devices.
    
    2.1, If pci device is in RPM suspended state, then pci driver will try
    to resume it to RPM active state in the prepare stage.
    
    2.2, xhci_resume function calls usb_hcd_resume_root_hub to queue two
    workqueue items to resume usb2&usb3 roothub devices.
    
    2.3, Call suspend callbacks of devices.
    
    2.3.1, All suspend callbacks of all hcd's children, including
    roothub devices are called.
    
    2.3.2, Finally, hcd_pci_suspend callback is called.
    
    Due to workqueue threads were already frozen in step 1, the workqueue
    items can't be scheduled, and the roothub devices can't be resumed in
    this flow. The HCD_FLAG_WAKEUP_PENDING flag which is set in
    usb_hcd_resume_root_hub won't be cleared. Finally,
    hcd_pci_suspend will return -EBUSY, and system suspend fails.
    
    The reason why this issue doesn't show up very often is due to that
    choose_wakeup will be called in step 2.3.1. In step 2.3.1, if
    udev->do_remote_wakeup is not equal to device_may_wakeup(&udev->dev), then
    udev will resume to RPM active for changing the wakeup settings. This
    has been a lucky hit which hides this issue.
    
    For some special xHCI controllers which have no USB2 port, then roothub
    will not match hub driver due to probe failed. Then its
    do_remote_wakeup will be set to zero, and we won't be as lucky.
    
    xhci driver doesn't need to resume roothub devices everytime like in
    the above case. It's only needed when there are pending event TRBs.
    
    This patch should be back-ported to kernels as old as 3.2, that
    contains the commit f69e312
    "USB: XHCI: resume root hubs when the controller resumes"
    
    Signed-off-by: Wang, Yu <yu.y.wang@intel.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    [use readl() instead of removed xhci_readl(), reword commit message -Mathias]
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Wang, Yu authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    939a3a4 View commit details
    Browse the repository at this point in the history
  4. USB: add USB_DEVICE_INTERFACE_CLASS macro

    commit 17b72fe upstream.
    
    Matching on device and interface class with with unspecified
    subclass and protocol is sometimes useful.  This is slightly
    different from USB_DEVICE_AND_INTERFACE_INFO which requires
    the full interface class/subclass/protocol triplet.
    
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    bmork authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    3943a08 View commit details
    Browse the repository at this point in the history
  5. USB: option: add device ID for SpeedUp SU9800 usb 3g modem

    commit 1cab4c6 upstream.
    
    Reported by Alif Mubarak Ahmad:
    
    This device vendor and product id is 1c9e:9800
    It is working as serial interface with generic usbserial driver.
    I thought it is more suitable to use usbserial option driver, which has
    better capability distinguishing between modem serial interface and
    micro sd storage interface.
    
    [ johan: style changes ]
    
    Signed-off-by: Oliver Neukum <oneukum@suse.de>
    Tested-by: Alif Mubarak Ahmad <alive4ever@live.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Oliver Neukum authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    1bd617e View commit details
    Browse the repository at this point in the history
  6. usb: option: add/modify Olivetti Olicard modems

    commit b0ebef3 upstream.
    
    Adding a couple of Olivetti modems and blacklisting the net
    function on a couple which are already supported.
    
    Reported-by: Lars Melin <larsm17@gmail.com>
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    bmork authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    1d4cd89 View commit details
    Browse the repository at this point in the history
  7. USB: ftdi_sio: fix null deref at port probe

    commit aea1ae8 upstream.
    
    Fix NULL-pointer dereference when probing an interface with no
    endpoints.
    
    These devices have two bulk endpoints per interface, but this avoids
    crashing the kernel if a user forces a non-FTDI device to be probed.
    
    Note that the iterator variable was made unsigned in order to avoid
    a maybe-uninitialized compiler warning for ep_desc after the loop.
    
    Fixes: 895f28b ("USB: ftdi_sio: fix hi-speed device packet size
    calculation")
    
    Reported-by: Mike Remski <mremski@mutualink.net>
    Tested-by: Mike Remski <mremski@mutualink.net>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jhovold authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    d539a05 View commit details
    Browse the repository at this point in the history
  8. usb: gadget: f_fs: fix NULL pointer dereference when there are no str…

    …ings
    
    commit f0688c8 upstream.
    
    If the descriptors do not need any strings and user space sends empty
    set of strings, the ffs->stringtabs field remains NULL.  Thus
    *ffs->stringtabs in functionfs_bind leads to a NULL pointer
    dereferenece.
    
    The bug was introduced by commit [fd7c9a0: “use usb_string_ids_n()”].
    
    While at it, remove double initialisation of lang local variable in
    that function.
    
    ffs->strings_count does not need to be checked in any way since in
    the above scenario it will remain zero and usb_string_ids_n() is
    a no-operation when colled with 0 argument.
    
    Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    mina86 authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    005564f View commit details
    Browse the repository at this point in the history
  9. rt2x00: disable TKIP on USB

    commit 8edcb0b upstream.
    
    On USB we can not get atomically TKIP key. We have to disable support
    for TKIP acceleration on USB hardware to avoid bug as showed bellow.
    
    [  860.827243] BUG: scheduling while atomic: hostapd/3397/0x00000002
    <snip>
    [  860.827280] Call Trace:
    [  860.827282]  [<ffffffff81682ea6>] dump_stack+0x4d/0x66
    [  860.827284]  [<ffffffff8167eb9b>] __schedule_bug+0x47/0x55
    [  860.827285]  [<ffffffff81685bb3>] __schedule+0x733/0x7b0
    [  860.827287]  [<ffffffff81685c59>] schedule+0x29/0x70
    [  860.827289]  [<ffffffff81684f8a>] schedule_timeout+0x15a/0x2b0
    [  860.827291]  [<ffffffff8105ac50>] ? ftrace_raw_event_tick_stop+0xc0/0xc0
    [  860.827294]  [<ffffffff810c13c2>] ? __module_text_address+0x12/0x70
    [  860.827296]  [<ffffffff81686823>] wait_for_completion_timeout+0xb3/0x140
    [  860.827298]  [<ffffffff81080fc0>] ? wake_up_state+0x20/0x20
    [  860.827301]  [<ffffffff814d5b3d>] usb_start_wait_urb+0x7d/0x150
    [  860.827303]  [<ffffffff814d5cd5>] usb_control_msg+0xc5/0x110
    [  860.827305]  [<ffffffffa02fb0c6>] rt2x00usb_vendor_request+0xc6/0x160  [rt2x00usb]
    [  860.827307]  [<ffffffffa02fb215>] rt2x00usb_vendor_req_buff_lock+0x75/0x150 [rt2x00usb]
    [  860.827309]  [<ffffffffa02fb393>] rt2x00usb_vendor_request_buff+0xa3/0xe0 [rt2x00usb]
    [  860.827311]  [<ffffffffa023d1a3>] rt2x00usb_register_multiread+0x33/0x40 [rt2800usb]
    [  860.827314]  [<ffffffffa05805f9>] rt2800_get_tkip_seq+0x39/0x50  [rt2800lib]
    [  860.827321]  [<ffffffffa0480f88>] ieee80211_get_key+0x218/0x2a0  [mac80211]
    [  860.827322]  [<ffffffff815cc68c>] ? __nlmsg_put+0x6c/0x80
    [  860.827329]  [<ffffffffa051b02e>] nl80211_get_key+0x22e/0x360 [cfg80211]
    
    Reported-and-tested-by: Peter Wu <lekensteyn@gmail.com>
    Reported-and-tested-by: Pontus Fuchs <pontus.fuchs@gmail.com>
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Stanislaw Gruszka authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    2160cad View commit details
    Browse the repository at this point in the history
  10. rt2x00: fix rfkill regression on rt2500pci

    commit 616a839 upstream.
    
    As reported by Niels, starting rfkill polling during device probe
    (commit e2bc7c5, generally sane change) broke rfkill on rt2500pci
    device. I considered that bug as some initalization issue, which
    should be fixed on rt2500pci specific code. But after several
    attempts (see bug report for details) we fail to find working solution.
    Hence I decided to revert to old behaviour on rt2500pci to fix
    regression.
    
    Additionally patch also unregister rfkill on device remove instead
    of ifconfig down, what was another issue introduced by bad commit.
    
    Bug report:
    https://bugzilla.kernel.org/show_bug.cgi?id=73821
    
    Fixes: e2bc7c5 ("rt2x00: Fix rfkill_polling register function.")
    Bisected-by: Niels <nille0386@googlemail.com>
    Reported-and-tested-by: Niels <nille0386@googlemail.com>
    Signed-off-by: Stanislaw Gruszka <stf_xl@wp.pl>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    sgruszka authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    53a7d50 View commit details
    Browse the repository at this point in the history
  11. mtd: pxa3xx_nand: make the driver work on big-endian systems

    commit b7e4606 upstream.
    
    The pxa3xx_nand driver currently uses __raw_writel() and __raw_readl()
    to access I/O registers. However, those functions do not do any
    endianness swapping, which means that they won't work when the CPU
    runs in big-endian but the I/O registers are little endian, which is
    the common situation for ARM systems running big endian.
    
    Since __raw_writel() and __raw_readl() do not include any memory
    barriers and the pxa3xx_nand driver can only be compiled for ARM
    platforms, the closest I/o accessors functions that do endianess
    swapping are writel_relaxed() and readl_relaxed().
    
    This patch has been verified to work on Armada XP GP: without the
    patch, the NAND is not detected when the kernel runs big endian while
    it is properly detected when the kernel runs little endian. With the
    patch applied, the NAND is properly detected in both situations
    (little and big endian).
    
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Signed-off-by: Brian Norris <computersforpeace@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    tpetazzoni authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    c27517d View commit details
    Browse the repository at this point in the history
  12. drm/radeon: only apply hdmi bpc pll flags when encoder mode is hdmi

    commit 7d5ab30 upstream.
    
    May fix display issues with non-HDMI displays.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    alexdeucher authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    b048370 View commit details
    Browse the repository at this point in the history
  13. drm/radeon: fix typo in radeon_connector_is_dp12_capable()

    commit af5d365 upstream.
    
    We were checking the ext clock rather than the display clock.
    
    Noticed by ArtForz on IRC.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    alexdeucher authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    91b75cb View commit details
    Browse the repository at this point in the history
  14. drm/radeon/atom: fix dithering on certain panels

    commit 6425283 upstream.
    
    We need to specify the encoder mode as LVDS for eDP
    when using the Crtc_Source atom table in order to properly
    set up the FMT hardware.
    
    bug:
    https://bugs.freedesktop.org/show_bug.cgi?id=73911
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    alexdeucher authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    822780c View commit details
    Browse the repository at this point in the history
  15. drm/vmwgfx: Fix incorrect write to read-only register v2:

    commit 4e57808 upstream.
    
    Commit "drm/vmwgfx: correct fb_fix_screeninfo.line_length", while fixing a
    vmwgfx fbdev bug, also writes the pitch to a supposedly read-only register:
    SVGA_REG_BYTES_PER_LINE, while it should be (and also in fact is) written to
    SVGA_REG_PITCHLOCK.
    
    This patch is Cc'd stable because of the unknown effects writing to this
    register might have, particularly on older device versions.
    
    v2: Updated log message.
    
    Cc: Christopher Friedt <chrisfriedt@gmail.com>
    Tested-by: Christopher Friedt <chrisfriedt@gmail.com>
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    thomashvmw authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    1dbae5d View commit details
    Browse the repository at this point in the history
  16. Bluetooth: Fix SSP acceptor just-works confirmation without MITM

    commit ba15a58 upstream.
    
    From the Bluetooth Core Specification 4.1 page 1958:
    
    "if both devices have set the Authentication_Requirements parameter to
    one of the MITM Protection Not Required options, authentication stage 1
    shall function as if both devices set their IO capabilities to
    DisplayOnly (e.g., Numeric comparison with automatic confirmation on
    both devices)"
    
    So far our implementation has done user confirmation for all just-works
    cases regardless of the MITM requirements, however following the
    specification to the word means that we should not be doing confirmation
    when neither side has the MITM flag set.
    
    Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
    Tested-by: Szymon Janc <szymon.janc@tieto.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jhedberg authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    bc96ff5 View commit details
    Browse the repository at this point in the history
  17. Bluetooth: Remove unused hci_le_ltk_reply()

    commit e10b996 upstream.
    
    In this API, we were using sizeof operator for an array
    given as function argument, which is invalid.
    However this API is not used anywhere.
    
    Signed-off-by: Syam Sidhardhan <s.syam@samsung.com>
    Signed-off-by: Gustavo Padovan <gustavo@padovan.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    syamsidhardh authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    eb688f6 View commit details
    Browse the repository at this point in the history
  18. mac80211: don't check netdev state for debugfs read/write

    commit 923eaf3 upstream.
    
    Doing so will lead to an oops for a p2p-dev interface, since it has
    no netdev.
    
    Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ariknem authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    dc0bfd6 View commit details
    Browse the repository at this point in the history
  19. ARM: OMAP2+: Fix parser-bug in platform muxing code

    commit c021f24 upstream.
    
    Fix a parser-bug in the omap2 muxing code where muxtable-entries will be
    wrongly selected if the requested muxname is a *prefix* of their
    m0-entry and they have a matching mN-entry. Fix by additionally checking
    that the length of the m0_entry is equal.
    
    For example muxing of "dss_data2.dss_data2" on omap32xx will fail
    because the prefix "dss_data2" will match the mux-entries "dss_data2" as
    well as "dss_data20", with the suffix "dss_data2" matching m0 (for
    dss_data2) and m4 (for dss_data20). Thus both are recognized as signal
    path candidates:
    
    Relevant muxentries from mux34xx.c:
            _OMAP3_MUXENTRY(DSS_DATA20, 90,
                    "dss_data20", NULL, "mcspi3_somi", "dss_data2",
                    "gpio_90", NULL, NULL, "safe_mode"),
            _OMAP3_MUXENTRY(DSS_DATA2, 72,
                    "dss_data2", NULL, NULL, NULL,
                    "gpio_72", NULL, NULL, "safe_mode"),
    
    This will result in a failure to mux the pin at all:
    
     _omap_mux_get_by_name: Multiple signal paths (2) for dss_data2.dss_data2
    
    Patch should apply to linus' latest master down to rather old linux-2.6
    trees.
    
    Signed-off-by: David R. Piegdon <lkml@p23q.org>
    Cc: stable@vger.kernel.org
    [tony@atomide.com: updated description to include full description]
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    David R. Piegdon authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    ba8f03a View commit details
    Browse the repository at this point in the history
  20. b43: fix frequency reported on G-PHY with /new/ firmware

    commit 2fc68eb upstream.
    
    Support for firmware rev 508+ was added years ago, but we never noticed
    it reports channel in a different way for G-PHY devices. Instead of
    offset from 2400 MHz it simply passes channel id (AKA hw_value).
    
    So far it was (most probably) affecting monitor mode users only, but
    the following recent commit made it noticeable for quite everybody:
    
    commit 3afc216
    Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Date:   Tue Mar 4 16:50:13 2014 +0200
    
        cfg80211/mac80211: ignore signal if the frame was heard on wrong channel
    
    Reported-by: Aaro Koskinen <aaro.koskinen@iki.fi>
    Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
    Tested-by: Aaro Koskinen <aaro.koskinen@iki.fi>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    rmilecki authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    74be85d View commit details
    Browse the repository at this point in the history
  21. CIFS: fix mount failure with broken pathnames when smb3 mount with ma…

    …pchars option
    
    commit ce36d9a upstream.
    
    When we SMB3 mounted with mapchars (to allow reserved characters : \ / > < * ?
    via the Unicode Windows to POSIX remap range) empty paths
    (eg when we open "" to query the root of the SMB3 directory on mount) were not
    null terminated so we sent garbarge as a path name on empty paths which caused
    SMB2/SMB2.1/SMB3 mounts to fail when mapchars was specified.  mapchars is
    particularly important since Unix Extensions for SMB3 are not supported (yet)
    
    Signed-off-by: Steve French <smfrench@gmail.com>
    Reviewed-by: David Disseldorp <ddiss@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    smfrench authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    6e44d31 View commit details
    Browse the repository at this point in the history
  22. KVM: x86: Increase the number of fixed MTRR regs to 10

    commit 682367c upstream.
    
    Recent Intel CPUs have 10 variable range MTRRs. Since operating systems
    sometime make assumptions on CPUs while they ignore capability MSRs, it is
    better for KVM to be consistent with recent CPUs. Reporting more MTRRs than
    actually supported has no functional implications.
    
    Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    anadav authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    80bbfba View commit details
    Browse the repository at this point in the history
  23. KVM: x86: preserve the high 32-bits of the PAT register

    commit 7cb060a upstream.
    
    KVM does not really do much with the PAT, so this went unnoticed for a
    long time.  It is exposed however if you try to do rdmsr on the PAT
    register.
    
    Reported-by: Valentine Sinitsyn <valentine.sinitsyn@gmail.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    bonzini authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    a96a557 View commit details
    Browse the repository at this point in the history
  24. nfsd: fix rare symlink decoding bug

    commit 76f4712 upstream.
    
    An NFS operation that creates a new symlink includes the symlink data,
    which is xdr-encoded as a length followed by the data plus 0 to 3 bytes
    of zero-padding as required to reach a 4-byte boundary.
    
    The vfs, on the other hand, wants null-terminated data.
    
    The simple way to handle this would be by copying the data into a newly
    allocated buffer with space for the final null.
    
    The current nfsd_symlink code tries to be more clever by skipping that
    step in the (likely) case where the byte following the string is already
    0.
    
    But that assumes that the byte following the string is ours to look at.
    In fact, it might be the first byte of a page that we can't read, or of
    some object that another task might modify.
    
    Worse, the NFSv4 code tries to fix the problem by actually writing to
    that byte.
    
    In the NFSv2/v3 cases this actually appears to be safe:
    
    	- nfs3svc_decode_symlinkargs explicitly null-terminates the data
    	  (after first checking its length and copying it to a new
    	  page).
    	- NFSv2 limits symlinks to 1k.  The buffer holding the rpc
    	  request is always at least a page, and the link data (and
    	  previous fields) have maximum lengths that prevent the request
    	  from reaching the end of a page.
    
    In the NFSv4 case the CREATE op is potentially just one part of a long
    compound so can end up on the end of a page if you're unlucky.
    
    The minimal fix here is to copy and null-terminate in the NFSv4 case.
    The nfsd_symlink() interface here seems too fragile, though.  It should
    really either do the copy itself every time or just require a
    null-terminated string.
    
    Reported-by: Jeff Layton <jlayton@primarydata.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    J. Bruce Fields authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    a22a7e7 View commit details
    Browse the repository at this point in the history
  25. tools: ffs-test: fix header values endianess

    commit f35f712 upstream.
    
    It appears that no one ever run ffs-test on a big-endian machine,
    since it used cpu-endianess for fs_count and hs_count fields which
    should be in little-endian format.  Fix by wrapping the numbers in
    cpu_to_le32.
    
    Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    mina86 authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    21057e4 View commit details
    Browse the repository at this point in the history
  26. md: flush writes before starting a recovery.

    commit 133d452 upstream.
    
    When we write to a degraded array which has a bitmap, we
    make sure the relevant bit in the bitmap remains set when
    the write completes (so a 're-add' can quickly rebuilt a
    temporarily-missing device).
    
    If, immediately after such a write starts, we incorporate a spare,
    commence recovery, and skip over the region where the write is
    happening (because the 'needs recovery' flag isn't set yet),
    then that write will not get to the new device.
    
    Once the recovery finishes the new device will be trusted, but will
    have incorrect data, leading to possible corruption.
    
    We cannot set the 'needs recovery' flag when we start the write as we
    do not know easily if the write will be "degraded" or not.  That
    depends on details of the particular raid level and particular write
    request.
    
    This patch fixes a corruption issue of long standing and so it
    suitable for any -stable kernel.  It applied correctly to 3.0 at
    least and will minor editing to earlier kernels.
    
    Reported-by: Bill <billstuff2001@sbcglobal.net>
    Tested-by: Bill <billstuff2001@sbcglobal.net>
    Link: http://lkml.kernel.org/r/53A518BB.60709@sbcglobal.net
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    neilbrown authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    d3ef655 View commit details
    Browse the repository at this point in the history
  27. sym53c8xx_2: Set DID_REQUEUE return code when aborting squeue

    commit fd1232b upstream.
    
    This patch fixes I/O errors with the sym53c8xx_2 driver when the disk
    returns QUEUE FULL status.
    
    When the controller encounters an error (including QUEUE FULL or BUSY
    status), it aborts all not yet submitted requests in the function
    sym_dequeue_from_squeue.
    
    This function aborts them with DID_SOFT_ERROR.
    
    If the disk has full tag queue, the request that caused the overflow is
    aborted with QUEUE FULL status (and the scsi midlayer properly retries
    it until it is accepted by the disk), but the sym53c8xx_2 driver aborts
    the following requests with DID_SOFT_ERROR --- for them, the midlayer
    does just a few retries and then signals the error up to sd.
    
    The result is that disk returning QUEUE FULL causes request failures.
    
    The error was reproduced on 53c895 with COMPAQ BD03685A24 disk
    (rebranded ST336607LC) with command queue 48 or 64 tags.  The disk has
    64 tags, but under some access patterns it return QUEUE FULL when there
    are less than 64 pending tags.  The SCSI specification allows returning
    QUEUE FULL anytime and it is up to the host to retry.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Cc: Matthew Wilcox <matthew@wil.cx>
    Cc: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Mikulas Patocka authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    8e51d5a View commit details
    Browse the repository at this point in the history
  28. acpi/video_detect: blacklist samsung x360

    commit 084940d upstream.
    
    On Samsung X360, the BIOS will set a flag (VDRV) if the generic
    ACPI backlight device is used. This flag will definitively break
    the backlight interface (even the vendor interface) untill next
    reboot. It's why we should prevent video.ko from being used here
    and we can't rely on a later call to acpi_video_unregister().
    
    Signed-off-by: Corentin Chary <corentin.chary@gmail.com>
    Signed-off-by: Matthew Garrett <mjg@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    iksaif authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    89c9afd View commit details
    Browse the repository at this point in the history
  29. ACPI / video: Add "Asus UL30VT" to ACPI video detect blacklist

    commit d0c2ce1 upstream.
    
    The ACPI video driver can't control backlight correctly on
    Asus UL30VT.  Vendor driver (asus-laptop) can work.  This patch is to
    add "Asus UL30VT" to ACPI video detect blacklist in order to use
    asus-laptop for video control on the "Asus UL30VT" rather than ACPI
    video driver.
    
    References: https://bugzilla.kernel.org/show_bug.cgi?id=32592
    Reported-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Lan Tianyu authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    622c5c1 View commit details
    Browse the repository at this point in the history
  30. ACPI / video: Add "Asus UL30A" to ACPI video detect blacklist

    commit c8f6d83 upstream.
    
    Like on UL30VT, the ACPI video driver can't control backlight correctly on
    Asus UL30A.  Vendor driver (asus-laptop) can work.  This patch is to
    add "Asus UL30A" to ACPI video detect blacklist in order to use
    asus-laptop for video control on the "Asus UL30A" rather than ACPI
    video driver.
    
    Signed-off-by: Bastian Triller <bastian.triller@gmail.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    btriller authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    047cce4 View commit details
    Browse the repository at this point in the history
  31. ACPI video: ignore BIOS initial backlight value for HP 1000

    commit 4ef366c upstream.
    
    On HP 1000 lapops, BIOS reports minimum backlight on boot and
    causes backlight to dim completely. This ignores the initial backlight
    values and set to max brightness.
    
    References:: https://bugs.launchpad.net/bugs/1167760
    Signed-off-by: Alex Hung <alex.hung@canonical.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Alex Hung authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    0e4337b View commit details
    Browse the repository at this point in the history
  32. staging: comedi: das08: Correct AI encoding for das08jr-16-ao

    commit e6391a1 upstream.
    
    The element of `das08_boards[]` for the 'das08jr-16-ao' board has the
    `ai_encoding` member set to `das08_encode12`.  It should be set to
    `das08_encode16` same as the 'das08jr/16' board.  After all, this board
    has 16-bit AI resolution.
    
    The description of the A/D LSB register at offset 0 seems incorrect in
    the user manual "cio-das08jr-16-ao.pdf" as it implies that the AI
    resolution is only 12 bits.  The diagrams of the A/D LSB and MSB
    registers show 15 data bits and a sign bit, which matches what the
    software expects for the `das08_encode16` AI encoding method.
    
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2: adjust indentation]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ian-abbott authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    2a6ae02 View commit details
    Browse the repository at this point in the history
  33. staging: comedi: fix a race between do_cmd_ioctl() and read/write

    commit 4b18f08 upstream.
    
    `do_cmd_ioctl()` is called with the comedi device's mutex locked to
    process the `COMEDI_CMD` ioctl to set up comedi's asynchronous command
    handling on a comedi subdevice.  `comedi_read()` and `comedi_write()`
    are the `read` and `write` handlers for the comedi device, but do not
    lock the mutex (for performance reasons, as some things can hold the
    mutex for quite a long time).
    
    There is a race condition if `comedi_read()` or `comedi_write()` is
    running at the same time and for the same file object and comedi
    subdevice as `do_cmd_ioctl()`.  `do_cmd_ioctl()` sets the subdevice's
    `busy` pointer to the file object way before it sets the `SRF_RUNNING` flag
    in the subdevice's `runflags` member.  `comedi_read() and
    `comedi_write()` check the subdevice's `busy` pointer is pointing to the
    current file object, then if the `SRF_RUNNING` flag is not set, will call
    `do_become_nonbusy()` to shut down the asyncronous command.  Bad things
    can happen if the asynchronous command is being shutdown and set up at
    the same time.
    
    To prevent the race, don't set the `busy` pointer until
    after the `SRF_RUNNING` flag has been set.  Also, make sure the mutex is
    held in `comedi_read()` and `comedi_write()` while calling
    `do_become_nonbusy()` in order to avoid moving the race condition to a
    point within that function.
    
    Change some error handling `goto cleanup` statements in `do_cmd_ioctl()`
    to simple `return -ERRFOO` statements as a result of changing when the
    `busy` pointer is set.
    
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ian-abbott authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    d4a64a9 View commit details
    Browse the repository at this point in the history
  34. staging: wlags49_h2: buffer overflow setting station name

    commit b5e2f33 upstream.
    
    We need to check the length parameter before doing the memcpy().  I've
    actually changed it to strlcpy() as well so that it's NUL terminated.
    
    You need CAP_NET_ADMIN to trigger these so it's not the end of the
    world.
    
    Reported-by: Nico Golde <nico@ngolde.de>
    Reported-by: Fabian Yamaguchi <fabs@goesec.de>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Dan Carpenter authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    8f668a0 View commit details
    Browse the repository at this point in the history
  35. Staging: bcm: Create and initialize new device id in InterfaceInit

    commit e66fc1f upstream.
    
    This patch create and initalizes a new device
    id of 0x172 as reported by Rinat Camalov
    <richman1000000d@gmail.com>. In addition, a
    comment is added to the potential invalid
    existing device id.
    
    Reported-by: Rinat Camalov <richman1000000d@gmail.com>
    Signed-off-by: Kevin McKinney <klmckinney1@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    bytefirst authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    f3e786c View commit details
    Browse the repository at this point in the history
  36. Staging: bcm: Add two products and remove an existing product.

    commit 4f29ef0 upstream.
    
    This patch adds two new products and modifies
    the device id table to include them. In addition,
    product of 0xbccd - BCM_USB_PRODUCT_ID_SM250 is
    removed because Beceem, ZTE, Sprint use this id
    for block devices.
    
    Reported-by: Muhammad Minhazul Haque <mdminhazulhaque@gmail.com>
    Signed-off-by: Kevin McKinney <klmckinney1@gmail.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    bytefirst authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    edc9d9a View commit details
    Browse the repository at this point in the history
  37. powerpc: Fix emulation of illegal instructions on PowerNV platform

    commit bf59390 upstream.
    
    Normally, the kernel emulates a few instructions that are unimplemented
    on some processors (e.g. the old dcba instruction), or privileged (e.g.
    mfpvr).  The emulation of unimplemented instructions is currently not
    working on the PowerNV platform.  The reason is that on these machines,
    unimplemented and illegal instructions cause a hypervisor emulation
    assist interrupt, rather than a program interrupt as on older CPUs.
    Our vector for the emulation assist interrupt just calls
    program_check_exception() directly, without setting the bit in SRR1
    that indicates an illegal instruction interrupt.  This fixes it by
    making the emulation assist interrupt set that bit before calling
    program_check_interrupt().  With this, old programs that use no-longer
    implemented instructions such as dcba now work again.
    
    Signed-off-by: Paul Mackerras <paulus@samba.org>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    paulusmack authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    1ee6596 View commit details
    Browse the repository at this point in the history
  38. powerpc/smp: Section mismatch from smp_release_cpus to __initdata spi…

    …nning_secondaries
    
    commit 8246aca upstream.
    
    the smp_release_cpus is a normal funciton and called in normal environments,
      but it calls the __initdata spinning_secondaries.
      need modify spinning_secondaries to match smp_release_cpus.
    
    the related warning:
      (the linker report boot_paca.33377, but it should be spinning_secondaries)
    
    -----------------------------------------------------------------------------
    
    WARNING: arch/powerpc/kernel/built-in.o(.text+0x23176): Section mismatch in reference from the function .smp_release_cpus() to the variable .init.data:boot_paca.33377
    The function .smp_release_cpus() references
    the variable __initdata boot_paca.33377.
    This is often because .smp_release_cpus lacks a __initdata
    annotation or the annotation of boot_paca.33377 is wrong.
    
    WARNING: arch/powerpc/kernel/built-in.o(.text+0x231fe): Section mismatch in reference from the function .smp_release_cpus() to the variable .init.data:boot_paca.33377
    The function .smp_release_cpus() references
    the variable __initdata boot_paca.33377.
    This is often because .smp_release_cpus lacks a __initdata
    annotation or the annotation of boot_paca.33377 is wrong.
    
    -----------------------------------------------------------------------------
    
    Signed-off-by: Chen Gang <gang.chen@asianux.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Chen Gang authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    1902a25 View commit details
    Browse the repository at this point in the history
  39. powerpc: Don't Oops when accessing /proc/powerpc/lparcfg without hype…

    …rvisor
    
    commit f5f6cbb upstream.
    
    /proc/powerpc/lparcfg is an ancient facility (though still actively used)
    which allows access to some informations relative to the partition when
    running underneath a PAPR compliant hypervisor.
    
    It makes no sense on non-pseries machines. However, currently, not only
    can it be created on these if the kernel has pseries support, but accessing
    it on such a machine will crash due to trying to do hypervisor calls.
    
    In fact, it should also not do HV calls on older pseries that didn't have
    an hypervisor either.
    
    Finally, it has the plumbing to be a module but is a "bool" Kconfig option.
    
    This fixes the whole lot by turning it into a machine_device_initcall
    that is only created on pseries, and adding the necessary hypervisor
    check before calling the H_GET_EM_PARMS hypercall
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    [bwh: Backported to 3.2: lparcfg_cleanup() was a bit different]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ozbenh authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    58b9385 View commit details
    Browse the repository at this point in the history
  40. powerpc: Restore registers on error exit from csum_partial_copy_gener…

    …ic()
    
    commit 8f21bd0 upstream.
    
    The csum_partial_copy_generic() function saves the PowerPC non-volatile
    r14, r15, and r16 registers for the main checksum-and-copy loop.
    Unfortunately, it fails to restore them upon error exit from this loop,
    which results in silent corruption of these registers in the presumably
    rare event of an access exception within that loop.
    
    This commit therefore restores these register on error exit from the loop.
    
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Signed-off-by: Anton Blanchard <anton@samba.org>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    [bwh: Backported to 3.2: register name macros use lower-case 'r']
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    paulmck authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    0b36b7f View commit details
    Browse the repository at this point in the history
  41. powerpc/pseries/lparcfg: Fix possible overflow are more than 1026

    commit 5676005 upstream.
    
    need set '\0' for 'local_buffer'.
    
    SPLPAR_MAXLENGTH is 1026, RTAS_DATA_BUF_SIZE is 4096. so the contents of
    rtas_data_buf may truncated in memcpy.
    
    if contents are really truncated.
      the splpar_strlen is more than 1026. the next while loop checking will
      not find the end of buffer. that will cause memory access violation.
    
    Signed-off-by: Chen Gang <gang.chen@asianux.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Chen Gang authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    a1ca0f8 View commit details
    Browse the repository at this point in the history
  42. powerpc/pseries: Duplicate dtl entries sometimes sent to userspace

    commit 84b0738 upstream.
    
    When reading from the dispatch trace log (dtl) userspace interface, I
    sometimes see duplicate entries. One example:
    
    # hexdump -C dtl.out
    
    00000000  07 04 00 0c 00 00 48 44  00 00 00 00 00 00 00 00
    00000010  00 0c a0 b4 16 83 6d 68  00 00 00 00 00 00 00 00
    00000020  00 00 00 00 10 00 13 50  80 00 00 00 00 00 d0 32
    
    00000030  07 04 00 0c 00 00 48 44  00 00 00 00 00 00 00 00
    00000040  00 0c a0 b4 16 83 6d 68  00 00 00 00 00 00 00 00
    00000050  00 00 00 00 10 00 13 50  80 00 00 00 00 00 d0 32
    
    The problem is in scan_dispatch_log() where we call dtl_consumer()
    but bail out before incrementing the index.
    
    To fix this I moved dtl_consumer() after the timebase comparison.
    
    Signed-off-by: Anton Blanchard <anton@samba.org>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    antonblanchard authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    9e1ba6f View commit details
    Browse the repository at this point in the history
  43. ACPI video: ignore BIOS backlight value for HP dm4

    commit 771d09b upstream.
    
    On a HP Pavilion dm4 laptop the BIOS sets minimum backlight on boot,
    completely dimming the screen. Ignore this initial value for this
    machine.
    
    Signed-off-by: Gustavo Maciel Dias Vieira <gustavo@sagui.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    [wyj: Backported to 3.4: adjust context]
    Signed-off-by: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    gmdvieira authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    badd9b7 View commit details
    Browse the repository at this point in the history
  44. powerpc/sysfs: Disable writing to PURR in guest mode

    commit d1211af upstream.
    
    arch/powerpc/kernel/sysfs.c exports PURR with write permission.
    This may be valid for kernel in phyp mode. But writing to
    the file in guest mode causes crash due to a priviledge violation
    
    Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    [Backported to 3.4: adjust context]
    Signed-off-by: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Madhavan Srinivasan authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    08ccce4 View commit details
    Browse the repository at this point in the history
  45. hugetlb: fix copy_hugetlb_page_range() to handle migration/hwpoisoned…

    … entry
    
    commit 4a705fe upstream.
    
    There's a race between fork() and hugepage migration, as a result we try
    to "dereference" a swap entry as a normal pte, causing kernel panic.
    The cause of the problem is that copy_hugetlb_page_range() can't handle
    "swap entry" family (migration entry and hwpoisoned entry) so let's fix
    it.
    
    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Acked-by: Hugh Dickins <hughd@google.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: <stable@vger.kernel.org>	[2.6.37+]
    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>
    Naoya Horiguchi authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    2bcdd49 View commit details
    Browse the repository at this point in the history
  46. mm: fix crashes from mbind() merging vmas

    commit d05f0cd upstream.
    
    In v2.6.34 commit 9d8cebd ("mm: fix mbind vma merge problem")
    introduced vma merging to mbind(), but it should have also changed the
    convention of passing start vma from queue_pages_range() (formerly
    check_range()) to new_vma_page(): vma merging may have already freed
    that structure, resulting in BUG at mm/mempolicy.c:1738 and probably
    worse crashes.
    
    Fixes: 9d8cebd ("mm: fix mbind vma merge problem")
    Reported-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Tested-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Acked-by: Christoph Lameter <cl@linux.com>
    Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: Minchan Kim <minchan.kim@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Hugh Dickins authored and gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    50a28ba View commit details
    Browse the repository at this point in the history
  47. Linux 3.4.98

    gregkh committed Jul 9, 2014
    Configuration menu
    Copy the full SHA
    0bbbf93 View commit details
    Browse the repository at this point in the history

Commits on Jul 13, 2014

  1. exynos5410 not support HS200-DDR

    ckkim authored and mdrjr committed Jul 13, 2014
    Configuration menu
    Copy the full SHA
    2293439 View commit details
    Browse the repository at this point in the history
  2. Merge tag 'v3.4.92' of git://git.kernel.org/pub/scm/linux/kernel/git/…

    …stable/linux-stable into odroidxu-3.4.y
    
    This is the 3.4.92 stable release
    mdrjr committed Jul 13, 2014
    Configuration menu
    Copy the full SHA
    07d1e46 View commit details
    Browse the repository at this point in the history
  3. Merge tag 'v3.4.93' of git://git.kernel.org/pub/scm/linux/kernel/git/…

    …stable/linux-stable into odroidxu-3.4.y
    
    This is the 3.4.93 stable release
    
    Conflicts:
    	drivers/usb/core/hub.c
    mdrjr committed Jul 13, 2014
    Configuration menu
    Copy the full SHA
    bdd10fc View commit details
    Browse the repository at this point in the history
  4. Revert "lib: Update RWSEM to Linux 3.10"

    This reverts commit 4f3c3c9.
    mdrjr committed Jul 13, 2014
    Configuration menu
    Copy the full SHA
    fd7a472 View commit details
    Browse the repository at this point in the history
  5. Revert "Optimized ARM RWSEM algorithm"

    This reverts commit 378d07f.
    mdrjr committed Jul 13, 2014
    Configuration menu
    Copy the full SHA
    afcc02f View commit details
    Browse the repository at this point in the history
  6. Merge tag 'v3.4.94' of git://git.kernel.org/pub/scm/linux/kernel/git/…

    …stable/linux-stable into odroidxu-3.4.y
    
    This is the 3.4.94 stable release
    mdrjr committed Jul 13, 2014
    Configuration menu
    Copy the full SHA
    582f7f5 View commit details
    Browse the repository at this point in the history
  7. Merge tag 'v3.4.95' of git://git.kernel.org/pub/scm/linux/kernel/git/…

    …stable/linux-stable into odroidxu-3.4.y
    
    This is the 3.4.95 stable release
    mdrjr committed Jul 13, 2014
    Configuration menu
    Copy the full SHA
    13991f8 View commit details
    Browse the repository at this point in the history
  8. Merge tag 'v3.4.96' of git://git.kernel.org/pub/scm/linux/kernel/git/…

    …stable/linux-stable into odroidxu-3.4.y
    
    This is the 3.4.96 stable release
    mdrjr committed Jul 13, 2014
    Configuration menu
    Copy the full SHA
    2760c39 View commit details
    Browse the repository at this point in the history
  9. Merge tag 'v3.4.97' of git://git.kernel.org/pub/scm/linux/kernel/git/…

    …stable/linux-stable into odroidxu-3.4.y
    
    This is the 3.4.97 stable release
    mdrjr committed Jul 13, 2014
    Configuration menu
    Copy the full SHA
    b48f142 View commit details
    Browse the repository at this point in the history
  10. Merge tag 'v3.4.98' of git://git.kernel.org/pub/scm/linux/kernel/git/…

    …stable/linux-stable into odroidxu-3.4.y
    
    This is the 3.4.98 stable release
    
    Conflicts:
    	net/bluetooth/hci_conn.c
    mdrjr committed Jul 13, 2014
    Configuration menu
    Copy the full SHA
    31c5b91 View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2014

  1. clk: exynos5410: Removed duplicate entry in the clock tree.

    This repeated entry was preventing the logic in arch/arm/plat-samsung/clock.c
    from creating a DebugFS representation of the clock tree under the
    directory /sys/kernel/debug/clock.
    hsnaves committed Jul 15, 2014
    Configuration menu
    Copy the full SHA
    8d92ab4 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #57 from hsnaves/odroidxu-3.4.y

    clk: exynos5410: Removed duplicate entry in the clock tree.
    mdrjr committed Jul 15, 2014
    Configuration menu
    Copy the full SHA
    b34f657 View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2014

  1. usb: option: Add ID for Telewell TW-LTE 4G v2

    commit 3d28bd8 upstream.
    
    Add ID of the Telewell 4G v2 hardware to option driver to get legacy
    serial interface working
    
    Signed-off-by: Bernd Wachter <bernd.wachter@jolla.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Bernd Wachter authored and gregkh committed Jul 17, 2014
    Configuration menu
    Copy the full SHA
    fd7afe2 View commit details
    Browse the repository at this point in the history
  2. USB: cp210x: add support for Corsair usb dongle

    commit b932605 upstream.
    
    Corsair USB Dongles are shipped with Corsair AXi series PSUs.
    These are cp210x serial usb devices, so make driver detect these.
    I have a program, that can get information from these PSUs.
    
    Tested with 2 different dongles shipped with Corsair AX860i and
    AX1200i units.
    
    Signed-off-by: Andras Kovacs <andras@sth.sze.hu>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ka87 authored and gregkh committed Jul 17, 2014
    Configuration menu
    Copy the full SHA
    d45a238 View commit details
    Browse the repository at this point in the history
  3. USB: ftdi_sio: Add extra PID.

    commit 5a7fbe7 upstream.
    
    This patch adds PID 0x0003 to the VID 0x128d (Testo). At least the
    Testo 435-4 uses this, likely other gear as well.
    
    Signed-off-by: Bert Vermeulen <bert@biot.com>
    Cc: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    biot authored and gregkh committed Jul 17, 2014
    Configuration menu
    Copy the full SHA
    d06191b View commit details
    Browse the repository at this point in the history
  4. cpuset,mempolicy: fix sleeping function called from invalid context

    commit 391acf9 upstream.
    
    When runing with the kernel(3.15-rc7+), the follow bug occurs:
    [ 9969.258987] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:586
    [ 9969.359906] in_atomic(): 1, irqs_disabled(): 0, pid: 160655, name: python
    [ 9969.441175] INFO: lockdep is turned off.
    [ 9969.488184] CPU: 26 PID: 160655 Comm: python Tainted: G       A      3.15.0-rc7+ #85
    [ 9969.581032] Hardware name: FUJITSU-SV PRIMEQUEST 1800E/SB, BIOS PRIMEQUEST 1000 Series BIOS Version 1.39 11/16/2012
    [ 9969.706052]  ffffffff81a20e60 ffff8803e941fbd0 ffffffff8162f523 ffff8803e941fd18
    [ 9969.795323]  ffff8803e941fbe0 ffffffff8109995a ffff8803e941fc58 ffffffff81633e6c
    [ 9969.884710]  ffffffff811ba5dc ffff880405c6b480 ffff88041fdd90a0 0000000000002000
    [ 9969.974071] Call Trace:
    [ 9970.003403]  [<ffffffff8162f523>] dump_stack+0x4d/0x66
    [ 9970.065074]  [<ffffffff8109995a>] __might_sleep+0xfa/0x130
    [ 9970.130743]  [<ffffffff81633e6c>] mutex_lock_nested+0x3c/0x4f0
    [ 9970.200638]  [<ffffffff811ba5dc>] ? kmem_cache_alloc+0x1bc/0x210
    [ 9970.272610]  [<ffffffff81105807>] cpuset_mems_allowed+0x27/0x140
    [ 9970.344584]  [<ffffffff811b1303>] ? __mpol_dup+0x63/0x150
    [ 9970.409282]  [<ffffffff811b1385>] __mpol_dup+0xe5/0x150
    [ 9970.471897]  [<ffffffff811b1303>] ? __mpol_dup+0x63/0x150
    [ 9970.536585]  [<ffffffff81068c86>] ? copy_process.part.23+0x606/0x1d40
    [ 9970.613763]  [<ffffffff810bf28d>] ? trace_hardirqs_on+0xd/0x10
    [ 9970.683660]  [<ffffffff810ddddf>] ? monotonic_to_bootbased+0x2f/0x50
    [ 9970.759795]  [<ffffffff81068cf0>] copy_process.part.23+0x670/0x1d40
    [ 9970.834885]  [<ffffffff8106a598>] do_fork+0xd8/0x380
    [ 9970.894375]  [<ffffffff81110e4c>] ? __audit_syscall_entry+0x9c/0xf0
    [ 9970.969470]  [<ffffffff8106a8c6>] SyS_clone+0x16/0x20
    [ 9971.030011]  [<ffffffff81642009>] stub_clone+0x69/0x90
    [ 9971.091573]  [<ffffffff81641c29>] ? system_call_fastpath+0x16/0x1b
    
    The cause is that cpuset_mems_allowed() try to take
    mutex_lock(&callback_mutex) under the rcu_read_lock(which was hold in
    __mpol_dup()). And in cpuset_mems_allowed(), the access to cpuset is
    under rcu_read_lock, so in __mpol_dup, we can reduce the rcu_read_lock
    protection region to protect the access to cpuset only in
    current_cpuset_is_being_rebound(). So that we can avoid this bug.
    
    This patch is a temporary solution that just addresses the bug
    mentioned above, can not fix the long-standing issue about cpuset.mems
    rebinding on fork():
    
    "When the forker's task_struct is duplicated (which includes
     ->mems_allowed) and it races with an update to cpuset_being_rebound
     in update_tasks_nodemask() then the task's mems_allowed doesn't get
     updated. And the child task's mems_allowed can be wrong if the
     cpuset's nodemask changes before the child has been added to the
     cgroup's tasklist."
    
    Signed-off-by: Gu Zheng <guz.fnst@cn.fujitsu.com>
    Acked-by: Li Zefan <lizefan@huawei.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Gu Zheng authored and gregkh committed Jul 17, 2014
    Configuration menu
    Copy the full SHA
    f54e041 View commit details
    Browse the repository at this point in the history
  5. hwmon: (amc6821) Fix permissions for temp2_input

    commit df86754 upstream.
    
    temp2_input should not be writable, fix it.
    
    Reported-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Axel Lin <axel.lin@ingics.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    AxelLin authored and gregkh committed Jul 17, 2014
    Configuration menu
    Copy the full SHA
    5cc80fb View commit details
    Browse the repository at this point in the history
  6. hwmon: (adm1029) Ensure the fan_div cache is updated in set_fan_div

    commit 1035a9e upstream.
    
    Writing to fanX_div does not clear the cache. As a result, reading
    from fanX_div may return the old value for up to two seconds
    after writing a new value.
    
    This patch ensures the fan_div cache is updated in set_fan_div().
    
    Reported-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Axel Lin <axel.lin@ingics.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    AxelLin authored and gregkh committed Jul 17, 2014
    Configuration menu
    Copy the full SHA
    30bbd39 View commit details
    Browse the repository at this point in the history
  7. powerpc/perf: Never program book3s PMCs with values >= 0x80000000

    commit f560294 upstream.
    
    We are seeing a lot of PMU warnings on POWER8:
    
        Can't find PMC that caused IRQ
    
    Looking closer, the active PMC is 0 at this point and we took a PMU
    exception on the transition from negative to 0. Some versions of POWER8
    have an issue where they edge detect and not level detect PMC overflows.
    
    A number of places program the PMC with (0x80000000 - period_left),
    where period_left can be negative. We can either fix all of these or
    just ensure that period_left is always >= 1.
    
    This patch takes the second option.
    
    Signed-off-by: Anton Blanchard <anton@samba.org>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    antonblanchard authored and gregkh committed Jul 17, 2014
    Configuration menu
    Copy the full SHA
    7b9eab8 View commit details
    Browse the repository at this point in the history
  8. ext4: clarify error count warning messages

    commit ae0f78d upstream.
    
    Make it clear that values printed are times, and that it is error
    since last fsck. Also add note about fsck version required.
    
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Reviewed-by: Andreas Dilger <adilger@dilger.ca>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    tytso authored and gregkh committed Jul 17, 2014
    Configuration menu
    Copy the full SHA
    ef01826 View commit details
    Browse the repository at this point in the history
  9. drm/radeon: stop poisoning the GART TLB

    commit 0986c1a upstream.
    
    When we set the valid bit on invalid GART entries they are
    loaded into the TLB when an adjacent entry is loaded. This
    poisons the TLB with invalid entries which are sometimes
    not correctly removed on TLB flush.
    
    For stable inclusion the patch probably needs to be modified a bit.
    
    Signed-off-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ChristianKoenigAMD authored and gregkh committed Jul 17, 2014
    Configuration menu
    Copy the full SHA
    fa1bd9b View commit details
    Browse the repository at this point in the history
  10. tracing: Remove ftrace_stop/start() from reading the trace file

    commit 099ed15 upstream.
    
    Disabling reading and writing to the trace file should not be able to
    disable all function tracing callbacks. There's other users today
    (like kprobes and perf). Reading a trace file should not stop those
    from happening.
    
    Reviewed-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    rostedt authored and gregkh committed Jul 17, 2014
    Configuration menu
    Copy the full SHA
    bf09db9 View commit details
    Browse the repository at this point in the history
  11. rtmutex: Fix deadlock detector for real

    commit 397335f upstream.
    
    The current deadlock detection logic does not work reliably due to the
    following early exit path:
    
    	/*
    	 * Drop out, when the task has no waiters. Note,
    	 * top_waiter can be NULL, when we are in the deboosting
    	 * mode!
    	 */
    	if (top_waiter && (!task_has_pi_waiters(task) ||
    			   top_waiter != task_top_pi_waiter(task)))
    		goto out_unlock_pi;
    
    So this not only exits when the task has no waiters, it also exits
    unconditionally when the current waiter is not the top priority waiter
    of the task.
    
    So in a nested locking scenario, it might abort the lock chain walk
    and therefor miss a potential deadlock.
    
    Simple fix: Continue the chain walk, when deadlock detection is
    enabled.
    
    We also avoid the whole enqueue, if we detect the deadlock right away
    (A-A). It's an optimization, but also prevents that another waiter who
    comes in after the detection and before the task has undone the damage
    observes the situation and detects the deadlock and returns
    -EDEADLOCK, which is wrong as the other task is not in a deadlock
    situation.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
    Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
    Link: http://lkml.kernel.org/r/20140522031949.725272460@linutronix.de
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Thomas Gleixner authored and gregkh committed Jul 17, 2014
    Configuration menu
    Copy the full SHA
    90b421b View commit details
    Browse the repository at this point in the history
  12. rtmutex: Detect changes in the pi lock chain

    commit 8208498 upstream.
    
    When we walk the lock chain, we drop all locks after each step. So the
    lock chain can change under us before we reacquire the locks. That's
    harmless in principle as we just follow the wrong lock path. But it
    can lead to a false positive in the dead lock detection logic:
    
    T0 holds L0
    T0 blocks on L1 held by T1
    T1 blocks on L2 held by T2
    T2 blocks on L3 held by T3
    T4 blocks on L4 held by T4
    
    Now we walk the chain
    
    lock T1 -> lock L2 -> adjust L2 -> unlock T1 ->
         lock T2 ->  adjust T2 ->  drop locks
    
    T2 times out and blocks on L0
    
    Now we continue:
    
    lock T2 -> lock L0 -> deadlock detected, but it's not a deadlock at all.
    
    Brad tried to work around that in the deadlock detection logic itself,
    but the more I looked at it the less I liked it, because it's crystal
    ball magic after the fact.
    
    We actually can detect a chain change very simple:
    
    lock T1 -> lock L2 -> adjust L2 -> unlock T1 -> lock T2 -> adjust T2 ->
    
         next_lock = T2->pi_blocked_on->lock;
    
    drop locks
    
    T2 times out and blocks on L0
    
    Now we continue:
    
    lock T2 ->
    
         if (next_lock != T2->pi_blocked_on->lock)
         	   return;
    
    So if we detect that T2 is now blocked on a different lock we stop the
    chain walk. That's also correct in the following scenario:
    
    lock T1 -> lock L2 -> adjust L2 -> unlock T1 -> lock T2 -> adjust T2 ->
    
         next_lock = T2->pi_blocked_on->lock;
    
    drop locks
    
    T3 times out and drops L3
    T2 acquires L3 and blocks on L4 now
    
    Now we continue:
    
    lock T2 ->
    
         if (next_lock != T2->pi_blocked_on->lock)
         	   return;
    
    We don't have to follow up the chain at that point, because T2
    propagated our priority up to T4 already.
    
    [ Folded a cleanup patch from peterz ]
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reported-by: Brad Mouring <bmouring@ni.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20140605152801.930031935@linutronix.de
    Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Thomas Gleixner authored and gregkh committed Jul 17, 2014
    Configuration menu
    Copy the full SHA
    307e2e0 View commit details
    Browse the repository at this point in the history
  13. rtmutex: Handle deadlock detection smarter

    commit 3d5c934 upstream.
    
    Even in the case when deadlock detection is not requested by the
    caller, we can detect deadlocks. Right now the code stops the lock
    chain walk and keeps the waiter enqueued, even on itself. Silly not to
    yell when such a scenario is detected and to keep the waiter enqueued.
    
    Return -EDEADLK unconditionally and handle it at the call sites.
    
    The futex calls return -EDEADLK. The non futex ones dequeue the
    waiter, throw a warning and put the task into a schedule loop.
    
    Tagged for stable as it makes the code more robust.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Brad Mouring <bmouring@ni.com>
    Link: http://lkml.kernel.org/r/20140605152801.836501969@linutronix.de
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Thomas Gleixner authored and gregkh committed Jul 17, 2014
    Configuration menu
    Copy the full SHA
    ea018da View commit details
    Browse the repository at this point in the history
  14. rtmutex: Plug slow unlock race

    commit 27e3571 upstream.
    
    When the rtmutex fast path is enabled the slow unlock function can
    create the following situation:
    
    spin_lock(foo->m->wait_lock);
    foo->m->owner = NULL;
    	    			rt_mutex_lock(foo->m); <-- fast path
    				free = atomic_dec_and_test(foo->refcnt);
    				rt_mutex_unlock(foo->m); <-- fast path
    				if (free)
    				   kfree(foo);
    
    spin_unlock(foo->m->wait_lock); <--- Use after free.
    
    Plug the race by changing the slow unlock to the following scheme:
    
         while (!rt_mutex_has_waiters(m)) {
         	    /* Clear the waiters bit in m->owner */
    	    clear_rt_mutex_waiters(m);
          	    owner = rt_mutex_owner(m);
          	    spin_unlock(m->wait_lock);
          	    if (cmpxchg(m->owner, owner, 0) == owner)
          	       return;
          	    spin_lock(m->wait_lock);
         }
    
    So in case of a new waiter incoming while the owner tries the slow
    path unlock we have two situations:
    
     unlock(wait_lock);
    					lock(wait_lock);
     cmpxchg(p, owner, 0) == owner
     	    	   			mark_rt_mutex_waiters(lock);
    	 				acquire(lock);
    
    Or:
    
     unlock(wait_lock);
    					lock(wait_lock);
    	 				mark_rt_mutex_waiters(lock);
     cmpxchg(p, owner, 0) != owner
    					enqueue_waiter();
    					unlock(wait_lock);
     lock(wait_lock);
     wakeup_next waiter();
     unlock(wait_lock);
    					lock(wait_lock);
    					acquire(lock);
    
    If the fast path is disabled, then the simple
    
       m->owner = NULL;
       unlock(m->wait_lock);
    
    is sufficient as all access to m->owner is serialized via
    m->wait_lock;
    
    Also document and clarify the wakeup_next_waiter function as suggested
    by Oleg Nesterov.
    
    Reported-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20140611183852.937945560@linutronix.de
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Thomas Gleixner authored and gregkh committed Jul 17, 2014
    Configuration menu
    Copy the full SHA
    2a77794 View commit details
    Browse the repository at this point in the history
  15. x86, ioremap: Speed up check for RAM pages

    commit c81c8a1 upstream.
    
    In __ioremap_caller() (the guts of ioremap), we loop over the range of
    pfns being remapped and checks each one individually with page_is_ram().
    For large ioremaps, this can be very slow.  For example, we have a
    device with a 256 GiB PCI BAR, and ioremapping this BAR can take 20+
    seconds -- sometimes long enough to trigger the soft lockup detector!
    
    Internally, page_is_ram() calls walk_system_ram_range() on a single
    page.  Instead, we can make a single call to walk_system_ram_range()
    from __ioremap_caller(), and do our further checks only for any RAM
    pages that we find.  For the common case of MMIO, this saves an enormous
    amount of work, since the range being ioremapped doesn't intersect
    system RAM at all.
    
    With this change, ioremap on our 256 GiB BAR takes less than 1 second.
    
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Link: http://lkml.kernel.org/r/1399054721-1331-1-git-send-email-roland@kernel.org
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    rolandd authored and gregkh committed Jul 17, 2014
    Configuration menu
    Copy the full SHA
    d824be9 View commit details
    Browse the repository at this point in the history
  16. ACPI / battery: Retry to get battery information if failed during pro…

    …bing
    
    commit 75646e7 upstream.
    
    Some machines (eg. Lenovo Z480) ECs are not stable during boot up
    and causes battery driver fails to be loaded due to failure of getting
    battery information from EC sometimes. After several retries, the
    operation will work. This patch is to retry to get battery information 5
    times if the first try fails.
    
    [ backport to 3.14.5: removed second parameter in acpi_battery_update(),
    introduced by the commit 9e50bc1 (ACPI /
    battery: Accelerate battery resume callback)]
    
    [naszar <naszar@ya.ru>: backport to 3.14.5]
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=75581
    Reported-and-tested-by: naszar <naszar@ya.ru>
    Cc: All applicable <stable@vger.kernel.org>
    Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Lan Tianyu authored and gregkh committed Jul 17, 2014
    Configuration menu
    Copy the full SHA
    cd0c28d View commit details
    Browse the repository at this point in the history
  17. Linux 3.4.99

    gregkh committed Jul 17, 2014
    Configuration menu
    Copy the full SHA
    0758142 View commit details
    Browse the repository at this point in the history

Commits on Jul 28, 2014

  1. crypto: testmgr - update LZO compression test vectors

    commit 0ec7382 upstream.
    
    Update the LZO compression test vectors according to the latest compressor
    version.
    
    Signed-off-by: Markus F.X.J. Oberhumer <markus@oberhumer.com>
    Cc: Derrick Pallas <pallas@meraki.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    markus-oberhumer authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    64fb4e2 View commit details
    Browse the repository at this point in the history
  2. shmem: fix faulting into a hole while it's punched

    commit f00cdc6 upstream.
    
    Trinity finds that mmap access to a hole while it's punched from shmem
    can prevent the madvise(MADV_REMOVE) or fallocate(FALLOC_FL_PUNCH_HOLE)
    from completing, until the reader chooses to stop; with the puncher's
    hold on i_mutex locking out all other writers until it can complete.
    
    It appears that the tmpfs fault path is too light in comparison with its
    hole-punching path, lacking an i_data_sem to obstruct it; but we don't
    want to slow down the common case.
    
    Extend shmem_fallocate()'s existing range notification mechanism, so
    shmem_fault() can refrain from faulting pages into the hole while it's
    punched, waiting instead on i_mutex (when safe to sleep; or repeatedly
    faulting when not).
    
    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Reported-by: Sasha Levin <sasha.levin@oracle.com>
    Tested-by: Sasha Levin <sasha.levin@oracle.com>
    Cc: Dave Jones <davej@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>
    Hugh Dickins authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    a62f374 View commit details
    Browse the repository at this point in the history
  3. shmem: fix faulting into a hole, not taking i_mutex

    commit 8e205f7 upstream.
    
    Commit f00cdc6 ("shmem: fix faulting into a hole while it's
    punched") was buggy: Sasha sent a lockdep report to remind us that
    grabbing i_mutex in the fault path is a no-no (write syscall may already
    hold i_mutex while faulting user buffer).
    
    We tried a completely different approach (see following patch) but that
    proved inadequate: good enough for a rational workload, but not good
    enough against trinity - which forks off so many mappings of the object
    that contention on i_mmap_mutex while hole-puncher holds i_mutex builds
    into serious starvation when concurrent faults force the puncher to fall
    back to single-page unmap_mapping_range() searches of the i_mmap tree.
    
    So return to the original umbrella approach, but keep away from i_mutex
    this time.  We really don't want to bloat every shmem inode with a new
    mutex or completion, just to protect this unlikely case from trinity.
    So extend the original with wait_queue_head on stack at the hole-punch
    end, and wait_queue item on the stack at the fault end.
    
    This involves further use of i_lock to guard against the races: lockdep
    has been happy so far, and I see fs/inode.c:unlock_new_inode() holds
    i_lock around wake_up_bit(), which is comparable to what we do here.
    i_lock is more convenient, but we could switch to shmem's info->lock.
    
    This issue has been tagged with CVE-2014-4171, which will require commit
    f00cdc6 and this and the following patch to be backported: we
    suggest to 3.1+, though in fact the trinity forkbomb effect might go
    back as far as 2.6.16, when madvise(,,MADV_REMOVE) came in - or might
    not, since much has changed, with i_mmap_mutex a spinlock before 3.0.
    Anyone running trinity on 3.0 and earlier? I don't think we need care.
    
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Reported-by: Sasha Levin <sasha.levin@oracle.com>
    Tested-by: Sasha Levin <sasha.levin@oracle.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Konstantin Khlebnikov <koct9i@gmail.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Lukas Czerner <lczerner@redhat.com>
    Cc: Dave Jones <davej@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>
    Hugh Dickins authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    0f5a4a0 View commit details
    Browse the repository at this point in the history
  4. shmem: fix splicing from a hole while it's punched

    commit b1a3665 upstream.
    
    shmem_fault() is the actual culprit in trinity's hole-punch starvation,
    and the most significant cause of such problems: since a page faulted is
    one that then appears page_mapped(), needing unmap_mapping_range() and
    i_mmap_mutex to be unmapped again.
    
    But it is not the only way in which a page can be brought into a hole in
    the radix_tree while that hole is being punched; and Vlastimil's testing
    implies that if enough other processors are busy filling in the hole,
    then shmem_undo_range() can be kept from completing indefinitely.
    
    shmem_file_splice_read() is the main other user of SGP_CACHE, which can
    instantiate shmem pagecache pages in the read-only case (without holding
    i_mutex, so perhaps concurrently with a hole-punch).  Probably it's
    silly not to use SGP_READ already (using the ZERO_PAGE for holes): which
    ought to be safe, but might bring surprises - not a change to be rushed.
    
    shmem_read_mapping_page_gfp() is an internal interface used by
    drivers/gpu/drm GEM (and next by uprobes): it should be okay.  And
    shmem_file_read_iter() uses the SGP_DIRTY variant of SGP_CACHE, when
    called internally by the kernel (perhaps for a stacking filesystem,
    which might rely on holes to be reserved): it's unclear whether it could
    be provoked to keep hole-punch busy or not.
    
    We could apply the same umbrella as now used in shmem_fault() to
    shmem_file_splice_read() and the others; but it looks ugly, and use over
    a range raises questions - should it actually be per page? can these get
    starved themselves?
    
    The origin of this part of the problem is my v3.1 commit d082357
    ("mm: pincer in truncate_inode_pages_range"), once it was duplicated
    into shmem.c.  It seemed like a nice idea at the time, to ensure
    (barring RCU lookup fuzziness) that there's an instant when the entire
    hole is empty; but the indefinitely repeated scans to ensure that make
    it vulnerable.
    
    Revert that "enhancement" to hole-punch from shmem_undo_range(), but
    retain the unproblematic rescanning when it's truncating; add a couple
    of comments there.
    
    Remove the "indices[0] >= end" test: that is now handled satisfactorily
    by the inner loop, and mem_cgroup_uncharge_start()/end() are too light
    to be worth avoiding here.
    
    But if we do not always loop indefinitely, we do need to handle the case
    of swap swizzled back to page before shmem_free_swap() gets it: add a
    retry for that case, as suggested by Konstantin Khlebnikov; and for the
    case of page swizzled back to swap, as suggested by Johannes Weiner.
    
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Reported-by: Sasha Levin <sasha.levin@oracle.com>
    Suggested-by: Vlastimil Babka <vbabka@suse.cz>
    Cc: Konstantin Khlebnikov <koct9i@gmail.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Lukas Czerner <lczerner@redhat.com>
    Cc: Dave Jones <davej@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>
    Hugh Dickins authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    21618a8 View commit details
    Browse the repository at this point in the history
  5. tcp: fix tcp_match_skb_to_sack() for unaligned SACK at end of an skb

    [ Upstream commit 2cd0d74 ]
    
    If there is an MSS change (or misbehaving receiver) that causes a SACK
    to arrive that covers the end of an skb but is less than one MSS, then
    tcp_match_skb_to_sack() was rounding up pkt_len to the full length of
    the skb ("Round if necessary..."), then chopping all bytes off the skb
    and creating a zero-byte skb in the write queue.
    
    This was visible now because the recently simplified TLP logic in
    bef1909 ("tcp: fixing TLP's FIN recovery") could find that 0-byte
    skb at the end of the write queue, and now that we do not check that
    skb's length we could send it as a TLP probe.
    
    Consider the following example scenario:
    
     mss: 1000
     skb: seq: 0 end_seq: 4000  len: 4000
     SACK: start_seq: 3999 end_seq: 4000
    
    The tcp_match_skb_to_sack() code will compute:
    
     in_sack = false
     pkt_len = start_seq - TCP_SKB_CB(skb)->seq = 3999 - 0 = 3999
     new_len = (pkt_len / mss) * mss = (3999/1000)*1000 = 3000
     new_len += mss = 4000
    
    Previously we would find the new_len > skb->len check failing, so we
    would fall through and set pkt_len = new_len = 4000 and chop off
    pkt_len of 4000 from the 4000-byte skb, leaving a 0-byte segment
    afterward in the write queue.
    
    With this new commit, we notice that the new new_len >= skb->len check
    succeeds, so that we return without trying to fragment.
    
    Fixes: adb92db ("tcp: Make SACK code to split only at mss boundaries")
    Reported-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Cc: Ilpo Jarvinen <ilpo.jarvinen@helsinki.fi>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    nealcardwell authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    06c84e9 View commit details
    Browse the repository at this point in the history
  6. 8021q: fix a potential memory leak

    [ Upstream commit 916c168 ]
    
    skb_cow called in vlan_reorder_header does not free the skb when it failed,
    and vlan_reorder_header returns NULL to reset original skb when it is called
    in vlan_untag, lead to a memory leak.
    
    Signed-off-by: Li RongQing <roy.qing.li@gmail.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Li RongQing authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    d7f5473 View commit details
    Browse the repository at this point in the history
  7. igmp: fix the problem when mc leave group

    [ Upstream commit 52ad353 ]
    
    The problem was triggered by these steps:
    
    1) create socket, bind and then setsockopt for add mc group.
       mreq.imr_multiaddr.s_addr = inet_addr("255.0.0.37");
       mreq.imr_interface.s_addr = inet_addr("192.168.1.2");
       setsockopt(sockfd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq));
    
    2) drop the mc group for this socket.
       mreq.imr_multiaddr.s_addr = inet_addr("255.0.0.37");
       mreq.imr_interface.s_addr = inet_addr("0.0.0.0");
       setsockopt(sockfd, IPPROTO_IP, IP_DROP_MEMBERSHIP, &mreq, sizeof(mreq));
    
    3) and then drop the socket, I found the mc group was still used by the dev:
    
       netstat -g
    
       Interface       RefCnt Group
       --------------- ------ ---------------------
       eth2		   1	  255.0.0.37
    
    Normally even though the IP_DROP_MEMBERSHIP return error, the mc group still need
    to be released for the netdev when drop the socket, but this process was broken when
    route default is NULL, the reason is that:
    
    The ip_mc_leave_group() will choose the in_dev by the imr_interface.s_addr, if input addr
    is NULL, the default route dev will be chosen, then the ifindex is got from the dev,
    then polling the inet->mc_list and return -ENODEV, but if the default route dev is NULL,
    the in_dev and ifIndex is both NULL, when polling the inet->mc_list, the mc group will be
    released from the mc_list, but the dev didn't dec the refcnt for this mc group, so
    when dropping the socket, the mc_list is NULL and the dev still keep this group.
    
    v1->v2: According Hideaki's suggestion, we should align with IPv6 (RFC3493) and BSDs,
    	so I add the checking for the in_dev before polling the mc_list, make sure when
    	we remove the mc group, dec the refcnt to the real dev which was using the mc address.
    	The problem would never happened again.
    
    Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    dingtianhong authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    fbaf3a0 View commit details
    Browse the repository at this point in the history
  8. tcp: fix false undo corner cases

    [ Upstream commit 6e08d5e ]
    
    The undo code assumes that, upon entering loss recovery, TCP
    1) always retransmit something
    2) the retransmission never fails locally (e.g., qdisc drop)
    
    so undo_marker is set in tcp_enter_recovery() and undo_retrans is
    incremented only when tcp_retransmit_skb() is successful.
    
    When the assumption is broken because TCP's cwnd is too small to
    retransmit or the retransmit fails locally. The next (DUP)ACK
    would incorrectly revert the cwnd and the congestion state in
    tcp_try_undo_dsack() or tcp_may_undo(). Subsequent (DUP)ACKs
    may enter the recovery state. The sender repeatedly enter and
    (incorrectly) exit recovery states if the retransmits continue to
    fail locally while receiving (DUP)ACKs.
    
    The fix is to initialize undo_retrans to -1 and start counting on
    the first retransmission. Always increment undo_retrans even if the
    retransmissions fail locally because they couldn't cause DSACKs to
    undo the cwnd reduction.
    
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    yuchungcheng authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    f37e491 View commit details
    Browse the repository at this point in the history
  9. appletalk: Fix socket referencing in skb

    [ Upstream commit 36beddc ]
    
    Setting just skb->sk without taking its reference and setting a
    destructor is invalid. However, in the places where this was done, skb
    is used in a way not requiring skb->sk setting. So dropping the setting
    of skb->sk.
    Thanks to Eric Dumazet <eric.dumazet@gmail.com> for correct solution.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=79441
    Reported-by: Ed Martin <edman007@edman007.com>
    Signed-off-by: Andrey Utkin <andrey.krieger.utkin@gmail.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Andrey Utkin authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    3fa1f50 View commit details
    Browse the repository at this point in the history
  10. be2net: set EQ DB clear-intr bit in be_open()

    [ Upstream commit 4cad9f3 ]
    
    On BE3, if the clear-interrupt bit of the EQ doorbell is not set the first
    time it is armed, ocassionally we have observed that the EQ doesn't raise
    anymore interrupts even if it is in armed state.
    This patch fixes this by setting the clear-interrupt bit when EQs are
    armed for the first time in be_open().
    
    Signed-off-by: Suresh Reddy <Suresh.Reddy@emulex.com>
    Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Suresh Reddy authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    3c656d4 View commit details
    Browse the repository at this point in the history
  11. tipc: clear 'next'-pointer of message fragments before reassembly

    [ Upstream commit 9994175 ]
    
    If the 'next' pointer of the last fragment buffer in a message is not
    zeroed before reassembly, we risk ending up with a corrupt message,
    since the reassembly function itself isn't doing this.
    
    Currently, when a buffer is retrieved from the deferred queue of the
    broadcast link, the next pointer is not cleared, with the result as
    described above.
    
    This commit corrects this, and thereby fixes a bug that may occur when
    long broadcast messages are transmitted across dual interfaces. The bug
    has been present since 40ba3cd ("tipc:
    message reassembly using fragment chain")
    
    This commit should be applied to both net and net-next.
    
    Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Jon Paul Maloy authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    d1558f7 View commit details
    Browse the repository at this point in the history
  12. net: sctp: fix information leaks in ulpevent layer

    [ Upstream commit 8f2e5ae ]
    
    While working on some other SCTP code, I noticed that some
    structures shared with user space are leaking uninitialized
    stack or heap buffer. In particular, struct sctp_sndrcvinfo
    has a 2 bytes hole between .sinfo_flags and .sinfo_ppid that
    remains unfilled by us in sctp_ulpevent_read_sndrcvinfo() when
    putting this into cmsg. But also struct sctp_remote_error
    contains a 2 bytes hole that we don't fill but place into a skb
    through skb_copy_expand() via sctp_ulpevent_make_remote_error().
    
    Both structures are defined by the IETF in RFC6458:
    
    * Section 5.3.2. SCTP Header Information Structure:
    
      The sctp_sndrcvinfo structure is defined below:
    
      struct sctp_sndrcvinfo {
        uint16_t sinfo_stream;
        uint16_t sinfo_ssn;
        uint16_t sinfo_flags;
        <-- 2 bytes hole  -->
        uint32_t sinfo_ppid;
        uint32_t sinfo_context;
        uint32_t sinfo_timetolive;
        uint32_t sinfo_tsn;
        uint32_t sinfo_cumtsn;
        sctp_assoc_t sinfo_assoc_id;
      };
    
    * 6.1.3. SCTP_REMOTE_ERROR:
    
      A remote peer may send an Operation Error message to its peer.
      This message indicates a variety of error conditions on an
      association. The entire ERROR chunk as it appears on the wire
      is included in an SCTP_REMOTE_ERROR event. Please refer to the
      SCTP specification [RFC4960] and any extensions for a list of
      possible error formats. An SCTP error notification has the
      following format:
    
      struct sctp_remote_error {
        uint16_t sre_type;
        uint16_t sre_flags;
        uint32_t sre_length;
        uint16_t sre_error;
        <-- 2 bytes hole  -->
        sctp_assoc_t sre_assoc_id;
        uint8_t  sre_data[];
      };
    
    Fix this by setting both to 0 before filling them out. We also
    have other structures shared between user and kernel space in
    SCTP that contains holes (e.g. struct sctp_paddrthlds), but we
    copy that buffer over from user space first and thus don't need
    to care about it in that cases.
    
    While at it, we can also remove lengthy comments copied from
    the draft, instead, we update the comment with the correct RFC
    number where one can look it up.
    
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    borkmann authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    9de2be6 View commit details
    Browse the repository at this point in the history
  13. net: pppoe: use correct channel MTU when using Multilink PPP

    [ Upstream commit a8a3e41 ]
    
    The PPP channel MTU is used with Multilink PPP when ppp_mp_explode() (see
    ppp_generic module) tries to determine how big a fragment might be. According
    to RFC 1661, the MTU excludes the 2-byte PPP protocol field, see the
    corresponding comment and code in ppp_mp_explode():
    
    		/*
    		 * hdrlen includes the 2-byte PPP protocol field, but the
    		 * MTU counts only the payload excluding the protocol field.
    		 * (RFC1661 Section 2)
    		 */
    		mtu = pch->chan->mtu - (hdrlen - 2);
    
    However, the pppoe module *does* include the PPP protocol field in the channel
    MTU, which is wrong as it causes the PPP payload to be 1-2 bytes too big under
    certain circumstances (one byte if PPP protocol compression is used, two
    otherwise), causing the generated Ethernet packets to be dropped. So the pppoe
    module has to subtract two bytes from the channel MTU. This error only
    manifests itself when using Multilink PPP, as otherwise the channel MTU is not
    used anywhere.
    
    In the following, I will describe how to reproduce this bug. We configure two
    pppd instances for multilink PPP over two PPPoE links, say eth2 and eth3, with
    a MTU of 1492 bytes for each link and a MRRU of 2976 bytes. (This MRRU is
    computed by adding the two link MTUs and subtracting the MP header twice, which
    is 4 bytes long.) The necessary pppd statements on both sides are "multilink
    mtu 1492 mru 1492 mrru 2976". On the client side, we additionally need "plugin
    rp-pppoe.so eth2" and "plugin rp-pppoe.so eth3", respectively; on the server
    side, we additionally need to start two pppoe-server instances to be able to
    establish two PPPoE sessions, one over eth2 and one over eth3. We set the MTU
    of the PPP network interface to the MRRU (2976) on both sides of the connection
    in order to make use of the higher bandwidth. (If we didn't do that, IP
    fragmentation would kick in, which we want to avoid.)
    
    Now we send a ICMPv4 echo request with a payload of 2948 bytes from client to
    server over the PPP link. This results in the following network packet:
    
       2948 (echo payload)
     +    8 (ICMPv4 header)
     +   20 (IPv4 header)
    ---------------------
       2976 (PPP payload)
    
    These 2976 bytes do not exceed the MTU of the PPP network interface, so the
    IP packet is not fragmented. Now the multilink PPP code in ppp_mp_explode()
    prepends one protocol byte (0x21 for IPv4), making the packet one byte bigger
    than the negotiated MRRU. So this packet would have to be divided in three
    fragments. But this does not happen as each link MTU is assumed to be two bytes
    larger. So this packet is diveded into two fragments only, one of size 1489 and
    one of size 1488. Now we have for that bigger fragment:
    
       1489 (PPP payload)
     +    4 (MP header)
     +    2 (PPP protocol field for the MP payload (0x3d))
     +    6 (PPPoE header)
    --------------------------
       1501 (Ethernet payload)
    
    This packet exceeds the link MTU and is discarded.
    
    If one configures the link MTU on the client side to 1501, one can see the
    discarded Ethernet frames with tcpdump running on the client. A
    
    ping -s 2948 -c 1 192.168.15.254
    
    leads to the smaller fragment that is correctly received on the server side:
    
    (tcpdump -vvvne -i eth3 pppoes and ppp proto 0x3d)
    52:54:00:ad:87:fd > 52:54:00:79:5c:d0, ethertype PPPoE S (0x8864),
      length 1514: PPPoE  [ses 0x3] MLPPP (0x003d), length 1494: seq 0x000,
      Flags [end], length 1492
    
    and to the bigger fragment that is not received on the server side:
    
    (tcpdump -vvvne -i eth2 pppoes and ppp proto 0x3d)
    52:54:00:70:9e:89 > 52:54:00:5d:6f:b0, ethertype PPPoE S (0x8864),
      length 1515: PPPoE  [ses 0x5] MLPPP (0x003d), length 1495: seq 0x000,
      Flags [begin], length 1493
    
    With the patch below, we correctly obtain three fragments:
    
    52:54:00:ad:87:fd > 52:54:00:79:5c:d0, ethertype PPPoE S (0x8864),
      length 1514: PPPoE  [ses 0x1] MLPPP (0x003d), length 1494: seq 0x000,
      Flags [begin], length 1492
    52:54:00:70:9e:89 > 52:54:00:5d:6f:b0, ethertype PPPoE S (0x8864),
      length 1514: PPPoE  [ses 0x1] MLPPP (0x003d), length 1494: seq 0x000,
      Flags [none], length 1492
    52:54:00:ad:87:fd > 52:54:00:79:5c:d0, ethertype PPPoE S (0x8864),
      length 27: PPPoE  [ses 0x1] MLPPP (0x003d), length 7: seq 0x000,
      Flags [end], length 5
    
    And the ICMPv4 echo request is successfully received at the server side:
    
    IP (tos 0x0, ttl 64, id 21925, offset 0, flags [DF], proto ICMP (1),
      length 2976)
        192.168.222.2 > 192.168.15.254: ICMP echo request, id 30530, seq 0,
          length 2956
    
    The bug was introduced in commit c9aa689
    ("[PPPOE]: Advertise PPPoE MTU") from the very beginning. This patch applies
    to 3.10 upwards but the fix can be applied (with minor modifications) to
    kernels as old as 2.6.32.
    
    Signed-off-by: Christoph Schulz <develop@kristov.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    kristovschulz authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    48b83df View commit details
    Browse the repository at this point in the history
  14. sunvnet: clean up objects created in vnet_new() on vnet_exit()

    [ Upstream commit a4b70a0 ]
    
    Nothing cleans up the objects created by
    vnet_new(), they are completely leaked.
    
    vnet_exit(), after doing the vio_unregister_driver() to clean
    up ports, should call a helper function that iterates over vnet_list
    and cleans up those objects. This includes unregister_netdevice()
    as well as free_netdev().
    
    Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
    Acked-by: Dave Kleikamp <dave.kleikamp@oracle.com>
    Reviewed-by: Karl Volz <karl.volz@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    sowminiv authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    7670d47 View commit details
    Browse the repository at this point in the history
  15. dns_resolver: assure that dns_query() result is null-terminated

    [ Upstream commit 84a7c0b ]
    
    dns_query() credulously assumes that keys are null-terminated and
    returns a copy of a memory block that is off by one.
    
    Signed-off-by: Manuel Schölling <manuel.schoelling@gmx.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    manuels authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    c304a23 View commit details
    Browse the repository at this point in the history
  16. dns_resolver: Null-terminate the right string

    [ Upstream commit 640d7ef ]
    
    *_result[len] is parsed as *(_result[len]) which is not at all what we
    want to touch here.
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Fixes: 84a7c0b ("dns_resolver: assure that dns_query() result is null-terminated")
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    bwhacks authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    4427f9a View commit details
    Browse the repository at this point in the history
  17. ipv4: fix buffer overflow in ip_options_compile()

    [ Upstream commit 10ec947 ]
    
    There is a benign buffer overflow in ip_options_compile spotted by
    AddressSanitizer[1] :
    
    Its benign because we always can access one extra byte in skb->head
    (because header is followed by struct skb_shared_info), and in this case
    this byte is not even used.
    
    [28504.910798] ==================================================================
    [28504.912046] AddressSanitizer: heap-buffer-overflow in ip_options_compile
    [28504.913170] Read of size 1 by thread T15843:
    [28504.914026]  [<ffffffff81802f91>] ip_options_compile+0x121/0x9c0
    [28504.915394]  [<ffffffff81804a0d>] ip_options_get_from_user+0xad/0x120
    [28504.916843]  [<ffffffff8180dedf>] do_ip_setsockopt.isra.15+0x8df/0x1630
    [28504.918175]  [<ffffffff8180ec60>] ip_setsockopt+0x30/0xa0
    [28504.919490]  [<ffffffff8181e59b>] tcp_setsockopt+0x5b/0x90
    [28504.920835]  [<ffffffff8177462f>] sock_common_setsockopt+0x5f/0x70
    [28504.922208]  [<ffffffff817729c2>] SyS_setsockopt+0xa2/0x140
    [28504.923459]  [<ffffffff818cfb69>] system_call_fastpath+0x16/0x1b
    [28504.924722]
    [28504.925106] Allocated by thread T15843:
    [28504.925815]  [<ffffffff81804995>] ip_options_get_from_user+0x35/0x120
    [28504.926884]  [<ffffffff8180dedf>] do_ip_setsockopt.isra.15+0x8df/0x1630
    [28504.927975]  [<ffffffff8180ec60>] ip_setsockopt+0x30/0xa0
    [28504.929175]  [<ffffffff8181e59b>] tcp_setsockopt+0x5b/0x90
    [28504.930400]  [<ffffffff8177462f>] sock_common_setsockopt+0x5f/0x70
    [28504.931677]  [<ffffffff817729c2>] SyS_setsockopt+0xa2/0x140
    [28504.932851]  [<ffffffff818cfb69>] system_call_fastpath+0x16/0x1b
    [28504.934018]
    [28504.934377] The buggy address ffff880026382828 is located 0 bytes to the right
    [28504.934377]  of 40-byte region [ffff880026382800, ffff880026382828)
    [28504.937144]
    [28504.937474] Memory state around the buggy address:
    [28504.938430]  ffff880026382300: ........ rrrrrrrr rrrrrrrr rrrrrrrr
    [28504.939884]  ffff880026382400: ffffffff rrrrrrrr rrrrrrrr rrrrrrrr
    [28504.941294]  ffff880026382500: .....rrr rrrrrrrr rrrrrrrr rrrrrrrr
    [28504.942504]  ffff880026382600: ffffffff rrrrrrrr rrrrrrrr rrrrrrrr
    [28504.943483]  ffff880026382700: ffffffff rrrrrrrr rrrrrrrr rrrrrrrr
    [28504.944511] >ffff880026382800: .....rrr rrrrrrrr rrrrrrrr rrrrrrrr
    [28504.945573]                         ^
    [28504.946277]  ffff880026382900: ffffffff rrrrrrrr rrrrrrrr rrrrrrrr
    [28505.094949]  ffff880026382a00: ffffffff rrrrrrrr rrrrrrrr rrrrrrrr
    [28505.096114]  ffff880026382b00: ffffffff rrrrrrrr rrrrrrrr rrrrrrrr
    [28505.097116]  ffff880026382c00: ffffffff rrrrrrrr rrrrrrrr rrrrrrrr
    [28505.098472]  ffff880026382d00: ffffffff rrrrrrrr rrrrrrrr rrrrrrrr
    [28505.099804] Legend:
    [28505.100269]  f - 8 freed bytes
    [28505.100884]  r - 8 redzone bytes
    [28505.101649]  . - 8 allocated bytes
    [28505.102406]  x=1..7 - x allocated bytes + (8-x) redzone bytes
    [28505.103637] ==================================================================
    
    [1] https://code.google.com/p/address-sanitizer/wiki/AddressSanitizerForKernel
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Eric Dumazet authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    26adeae View commit details
    Browse the repository at this point in the history
  18. perf/x86/intel: ignore CondChgd bit to avoid false NMI handling

    commit b292d7a upstream.
    
    Currently, any NMI is falsely handled by a NMI handler of NMI watchdog
    if CondChgd bit in MSR_CORE_PERF_GLOBAL_STATUS MSR is set.
    
    For example, we use external NMI to make system panic to get crash
    dump, but in this case, the external NMI is falsely handled do to the
    issue.
    
    This commit deals with the issue simply by ignoring CondChgd bit.
    
    Here is explanation in detail.
    
    On x86 NMI watchdog uses performance monitoring feature to
    periodically signal NMI each time performance counter gets overflowed.
    
    intel_pmu_handle_irq() is called as a NMI_LOCAL handler from a NMI
    handler of NMI watchdog, perf_event_nmi_handler(). It identifies an
    owner of a given NMI by looking at overflow status bits in
    MSR_CORE_PERF_GLOBAL_STATUS MSR. If some of the bits are set, then it
    handles the given NMI as its own NMI.
    
    The problem is that the intel_pmu_handle_irq() doesn't distinguish
    CondChgd bit from other bits. Unlike the other status bits, CondChgd
    bit doesn't represent overflow status for performance counters. Thus,
    CondChgd bit cannot be thought of as a mark indicating a given NMI is
    NMI watchdog's.
    
    As a result, if CondChgd bit is set, any NMI is falsely handled by the
    NMI handler of NMI watchdog. Also, if type of the falsely handled NMI
    is either NMI_UNKNOWN, NMI_SERR or NMI_IO_CHECK, the corresponding
    action is never performed until CondChgd bit is cleared.
    
    I noticed this behavior on systems with Ivy Bridge processors: Intel
    Xeon CPU E5-2630 v2 and Intel Xeon CPU E7-8890 v2. On both systems,
    CondChgd bit in MSR_CORE_PERF_GLOBAL_STATUS MSR has already been set
    in the beginning at boot. Then the CondChgd bit is immediately cleared
    by next wrmsr to MSR_CORE_PERF_GLOBAL_CTRL MSR and appears to remain
    0.
    
    On the other hand, on older processors such as Nehalem, Xeon E7540,
    CondChgd bit is not set in the beginning at boot.
    
    I'm not sure about exact behavior of CondChgd bit, in particular when
    this bit is set. Although I read Intel System Programmer's Manual to
    figure out that, the descriptions I found are:
    
      In 18.9.1:
    
      "The MSR_PERF_GLOBAL_STATUS MSR also provides a ¡sticky bit¢ to
       indicate changes to the state of performancmonitoring hardware"
    
      In Table 35-2 IA-32 Architectural MSRs
    
      63 CondChg: status bits of this register has changed.
    
    These are different from the bahviour I see on the actual system as I
    explained above.
    
    At least, I think ignoring CondChgd bit should be enough for NMI
    watchdog perspective.
    
    Signed-off-by: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com>
    Acked-by: Don Zickus <dzickus@redhat.com>
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: linux-kernel@vger.kernel.org
    Link: http://lkml.kernel.org/r/20140625.103503.409316067.d.hatayama@jp.fujitsu.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    HATAYAMA Daisuke authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    a2b2c03 View commit details
    Browse the repository at this point in the history
  19. mwifiex: fix Tx timeout issue

    commit d76744a upstream.
    
    https://bugzilla.kernel.org/show_bug.cgi?id=70191
    https://bugzilla.kernel.org/show_bug.cgi?id=77581
    
    It is observed that sometimes Tx packet is downloaded without
    adding driver's txpd header. This results in firmware parsing
    garbage data as packet length. Sometimes firmware is unable
    to read the packet if length comes out as invalid. This stops
    further traffic and timeout occurs.
    
    The root cause is uninitialized fields in tx_info(skb->cb) of
    packet used to get garbage values. In this case if
    MWIFIEX_BUF_FLAG_REQUEUED_PKT flag is mistakenly set, txpd
    header was skipped. This patch makes sure that tx_info is
    correctly initialized to fix the problem.
    
    Reported-by: Andrew Wiley <wiley.andrew.j@gmail.com>
    Reported-by: Linus Gasser <list@markas-al-nour.org>
    Reported-by: Michael Hirsch <hirsch@teufel.de>
    Tested-by: Xinming Hu <huxm@marvell.com>
    Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
    Signed-off-by: Maithili Hinge <maithili@marvell.com>
    Signed-off-by: Avinash Patil <patila@marvell.com>
    Signed-off-by: Bing Zhao <bzhao@marvell.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Amitkumar Karwar authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    ed37976 View commit details
    Browse the repository at this point in the history
  20. drm/radeon: avoid leaking edid data

    commit 0ac66ef upstream.
    
    In some cases we fetch the edid in the detect() callback
    in order to determine what sort of monitor is connected.
    If that happens, don't fetch the edid again in the get_modes()
    callback or we will leak the edid.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    alexdeucher authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    b63dd4c View commit details
    Browse the repository at this point in the history
  21. alarmtimer: Fix bug where relative alarm timers were treated as absolute

    commit 1692777 upstream.
    
    Sharvil noticed with the posix timer_settime interface, using the
    CLOCK_REALTIME_ALARM or CLOCK_BOOTTIME_ALARM clockid, if the users
    tried to specify a relative time timer, it would incorrectly be
    treated as absolute regardless of the state of the flags argument.
    
    This patch corrects this, properly checking the absolute/relative flag,
    as well as adds further error checking that no invalid flag bits are set.
    
    Reported-by: Sharvil Nanavati <sharvil@google.com>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Prarit Bhargava <prarit@redhat.com>
    Cc: Sharvil Nanavati <sharvil@google.com>
    Link: http://lkml.kernel.org/r/1404767171-6902-1-git-send-email-john.stultz@linaro.org
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    johnstultz-work authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    299e667 View commit details
    Browse the repository at this point in the history
  22. PM / sleep: Fix request_firmware() error at resume

    commit 4320f6b upstream.
    
    The commit [247bc037: PM / Sleep: Mitigate race between the freezer
    and request_firmware()] introduced the finer state control, but it
    also leads to a new bug; for example, a bug report regarding the
    firmware loading of intel BT device at suspend/resume:
      https://bugzilla.novell.com/show_bug.cgi?id=873790
    
    The root cause seems to be a small window between the process resume
    and the clear of usermodehelper lock.  The request_firmware() function
    checks the UMH lock and gives up when it's in UMH_DISABLE state.  This
    is for avoiding the invalid  f/w loading during suspend/resume phase.
    The problem is, however, that usermodehelper_enable() is called at the
    end of thaw_processes().  Thus, a thawed process in between can kick
    off the f/w loader code path (in this case, via btusb_setup_intel())
    even before the call of usermodehelper_enable().  Then
    usermodehelper_read_trylock() returns an error and request_firmware()
    spews WARN_ON() in the end.
    
    This oneliner patch fixes the issue just by setting to UMH_FREEZING
    state again before restarting tasks, so that the call of
    request_firmware() will be blocked until the end of this function
    instead of returning an error.
    
    Fixes: 247bc03 (PM / Sleep: Mitigate race between the freezer and request_firmware())
    Link: https://bugzilla.novell.com/show_bug.cgi?id=873790
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    tiwai authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    5dc1c88 View commit details
    Browse the repository at this point in the history
  23. iommu/vt-d: Disable translation if already enabled

    commit 3a93c84 upstream.
    
    This patch disables translation(dma-remapping) before its initialization
    if it is already enabled.
    
    This is needed for kexec/kdump boot. If dma-remapping is enabled in the
    first kernel, it need to be disabled before initializing its page table
    during second kernel boot. Wei Hu also reported that this is needed
    when second kernel boots with intel_iommu=off.
    
    Basically iommu->gcmd is used to know whether translation is enabled or
    disabled, but it is always zero at boot time even when translation is
    enabled since iommu->gcmd is initialized without considering such a
    case. Therefor this patch synchronizes iommu->gcmd value with global
    command register when iommu structure is allocated.
    
    Signed-off-by: Takao Indoh <indou.takao@jp.fujitsu.com>
    Signed-off-by: Joerg Roedel <joro@8bytes.org>
    [wyj: Backported to 3.4: adjust context]
    Signed-off-by: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Takao Indoh authored and gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    21870a3 View commit details
    Browse the repository at this point in the history
  24. Linux 3.4.100

    gregkh committed Jul 28, 2014
    Configuration menu
    Copy the full SHA
    82f9c4a View commit details
    Browse the repository at this point in the history

Commits on Jul 31, 2014

  1. patch to remove simlink in mali400 driver. Not needed in kernel but c…

    …auses problems if the yocto build toolchain is used.
    Markus Eich committed Jul 31, 2014
    Configuration menu
    Copy the full SHA
    0e68c57 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #60 from MarkusEich/odroidxu-3.4.y

    Fix for removing symlink in mali400 driver
    mdrjr committed Jul 31, 2014
    Configuration menu
    Copy the full SHA
    73056c9 View commit details
    Browse the repository at this point in the history
  3. block: don't assume last put of shared tags is for the host

    commit d45b327 upstream.
    
    There is no inherent reason why the last put of a tag structure must be
    the one for the Scsi_Host, as device model objects can be held for
    arbitrary periods.  Merge blk_free_tags and __blk_free_tags into a single
    funtion that just release a references and get rid of the BUG() when the
    host reference wasn't the last.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Christoph Hellwig authored and gregkh committed Jul 31, 2014
    Configuration menu
    Copy the full SHA
    696acd9 View commit details
    Browse the repository at this point in the history
  4. libata: support the ata host which implements a queue depth less than 32

    commit 1871ee1 upstream.
    
    The sata on fsl mpc8315e is broken after the commit 8a4aeec
    ("libata/ahci: accommodate tag ordered controllers"). The reason is
    that the ata controller on this SoC only implement a queue depth of
    16. When issuing the commands in tag order, all the commands in tag
    16 ~ 31 are mapped to tag 0 unconditionally and then causes the sata
    malfunction. It makes no senses to use a 32 queue in software while
    the hardware has less queue depth. So consider the queue depth
    implemented by the hardware when requesting a command tag.
    
    Fixes: 8a4aeec ("libata/ahci: accommodate tag ordered controllers")
    Signed-off-by: Kevin Hao <haokexin@gmail.com>
    Acked-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    haokexin authored and gregkh committed Jul 31, 2014
    Configuration menu
    Copy the full SHA
    6f0844c View commit details
    Browse the repository at this point in the history
  5. libata: introduce ata_host->n_tags to avoid oops on SAS controllers

    commit 1a112d1 upstream.
    
    1871ee1 ("libata: support the ata host which implements a queue
    depth less than 32") directly used ata_port->scsi_host->can_queue from
    ata_qc_new() to determine the number of tags supported by the host;
    unfortunately, SAS controllers doing SATA don't initialize ->scsi_host
    leading to the following oops.
    
     BUG: unable to handle kernel NULL pointer dereference at 0000000000000058
     IP: [<ffffffff814e0618>] ata_qc_new_init+0x188/0x1b0
     PGD 0
     Oops: 0002 [#1] SMP
     Modules linked in: isci libsas scsi_transport_sas mgag200 drm_kms_helper ttm
     CPU: 1 PID: 518 Comm: udevd Not tainted 3.16.0-rc6+ #62
     Hardware name: Intel Corporation S2600CO/S2600CO, BIOS SE5C600.86B.02.02.0002.122320131210 12/23/2013
     task: ffff880c1a00b280 ti: ffff88061a000000 task.ti: ffff88061a000000
     RIP: 0010:[<ffffffff814e0618>]  [<ffffffff814e0618>] ata_qc_new_init+0x188/0x1b0
     RSP: 0018:ffff88061a003ae8  EFLAGS: 00010012
     RAX: 0000000000000001 RBX: ffff88000241ca80 RCX: 00000000000000fa
     RDX: 0000000000000020 RSI: 0000000000000020 RDI: ffff8806194aa298
     RBP: ffff88061a003ae8 R08: ffff8806194a8000 R09: 0000000000000000
     R10: 0000000000000000 R11: ffff88000241ca80 R12: ffff88061ad58200
     R13: ffff8806194aa298 R14: ffffffff814e67a0 R15: ffff8806194a8000
     FS:  00007f3ad7fe3840(0000) GS:ffff880627620000(0000) knlGS:0000000000000000
     CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     CR2: 0000000000000058 CR3: 000000061a118000 CR4: 00000000001407e0
     Stack:
      ffff88061a003b20 ffffffff814e96e1 ffff88000241ca80 ffff88061ad58200
      ffff8800b6bf6000 ffff880c1c988000 ffff880619903850 ffff88061a003b68
      ffffffffa0056ce1 ffff88061a003b48 0000000013d6e6f8 ffff88000241ca80
     Call Trace:
      [<ffffffff814e96e1>] ata_sas_queuecmd+0xa1/0x430
      [<ffffffffa0056ce1>] sas_queuecommand+0x191/0x220 [libsas]
      [<ffffffff8149afee>] scsi_dispatch_cmd+0x10e/0x300 [<ffffffff814a3bc5>] scsi_request_fn+0x2f5/0x550
      [<ffffffff81317613>] __blk_run_queue+0x33/0x40
      [<ffffffff8131781a>] queue_unplugged+0x2a/0x90
      [<ffffffff8131ceb4>] blk_flush_plug_list+0x1b4/0x210
      [<ffffffff8131d274>] blk_finish_plug+0x14/0x50
      [<ffffffff8117eaa8>] __do_page_cache_readahead+0x198/0x1f0
      [<ffffffff8117ee21>] force_page_cache_readahead+0x31/0x50
      [<ffffffff8117ee7e>] page_cache_sync_readahead+0x3e/0x50
      [<ffffffff81172ac6>] generic_file_read_iter+0x496/0x5a0
      [<ffffffff81219897>] blkdev_read_iter+0x37/0x40
      [<ffffffff811e307e>] new_sync_read+0x7e/0xb0
      [<ffffffff811e3734>] vfs_read+0x94/0x170
      [<ffffffff811e43c6>] SyS_read+0x46/0xb0
      [<ffffffff811e33d1>] ? SyS_lseek+0x91/0xb0
      [<ffffffff8171ee29>] system_call_fastpath+0x16/0x1b
     Code: 00 00 00 88 50 29 83 7f 08 01 19 d2 83 e2 f0 83 ea 50 88 50 34 c6 81 1d 02 00 00 40 c6 81 17 02 00 00 00 5d c3 66 0f 1f 44 00 00 <89> 14 25 58 00 00 00
    
    Fix it by introducing ata_host->n_tags which is initialized to
    ATA_MAX_QUEUE - 1 in ata_host_init() for SAS controllers and set to
    scsi_host_template->can_queue in ata_host_register() for !SAS ones.
    As SAS hosts are never registered, this will give them the same
    ATA_MAX_QUEUE - 1 as before.  Note that we can't use
    scsi_host->can_queue directly for SAS hosts anyway as they can go
    higher than the libata maximum.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Reported-by: Mike Qiu <qiudayu@linux.vnet.ibm.com>
    Reported-by: Jesse Brandeburg <jesse.brandeburg@gmail.com>
    Reported-by: Peter Hurley <peter@hurleysoftware.com>
    Reported-by: Peter Zijlstra <peterz@infradead.org>
    Tested-by: Alexey Kardashevskiy <aik@ozlabs.ru>
    Fixes: 1871ee1 ("libata: support the ata host which implements a queue depth less than 32")
    Cc: Kevin Hao <haokexin@gmail.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    htejun authored and gregkh committed Jul 31, 2014
    Configuration menu
    Copy the full SHA
    80cd492 View commit details
    Browse the repository at this point in the history
  6. ahci: add support for the Promise FastTrak TX8660 SATA HBA (ahci mode)

    commit b32bfc0 upstream.
    
    Add support of the Promise FastTrak TX8660 SATA HBA in ahci mode by
    registering the board in the ahci_pci_tbl[].
    
    Note: this HBA also provide a hardware RAID mode when activated in
    BIOS but specific drivers from the manufacturer are required in this
    case.
    
    Signed-off-by: Romain Degez <romain.degez@gmail.com>
    Tested-by: Romain Degez <romain.degez@gmail.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    rdegez authored and gregkh committed Jul 31, 2014
    Configuration menu
    Copy the full SHA
    4600552 View commit details
    Browse the repository at this point in the history
  7. x86_32, entry: Store badsys error code in %eax

    commit 8142b21 upstream.
    
    Commit 554086d ("x86_32, entry: Do syscall exit work on badsys
    (CVE-2014-4508)") introduced a regression in the x86_32 syscall entry
    code, resulting in syscall() not returning proper errors for undefined
    syscalls on CPUs supporting the sysenter feature.
    
    The following code:
    
    > int result = syscall(666);
    > printf("result=%d errno=%d error=%s\n", result, errno, strerror(errno));
    
    results in:
    
    > result=666 errno=0 error=Success
    
    Obviously, the syscall return value is the called syscall number, but it
    should have been an ENOSYS error. When run under ptrace it behaves
    correctly, which makes it hard to debug in the wild:
    
    > result=-1 errno=38 error=Function not implemented
    
    The %eax register is the return value register. For debugging via ptrace
    the syscall entry code stores the complete register context on the
    stack. The badsys handlers only store the ENOSYS error code in the
    ptrace register set and do not set %eax like a regular syscall handler
    would. The old resume_userspace call chain contains code that clobbers
    %eax and it restores %eax from the ptrace registers afterwards. The same
    goes for the ptrace-enabled call chain. When ptrace is not used, the
    syscall return value is the passed-in syscall number from the untouched
    %eax register.
    
    Use %eax as the return value register in syscall_badsys and
    sysenter_badsys, like a real syscall handler does, and have the caller
    push the value onto the stack for ptrace access.
    
    Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
    Link: http://lkml.kernel.org/r/alpine.LNX.2.11.1407221022380.31021@titan.int.lan.stealer.net
    Reviewed-and-tested-by: Andy Lutomirski <luto@amacapital.net>
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    swegener authored and gregkh committed Jul 31, 2014
    Configuration menu
    Copy the full SHA
    4aedd4b View commit details
    Browse the repository at this point in the history
  8. mm: hugetlb: fix copy_hugetlb_page_range()

    commit 0253d63 upstream.
    
    Commit 4a705fe ("hugetlb: fix copy_hugetlb_page_range() to handle
    migration/hwpoisoned entry") changed the order of
    huge_ptep_set_wrprotect() and huge_ptep_get(), which leads to breakage
    in some workloads like hugepage-backed heap allocation via libhugetlbfs.
    This patch fixes it.
    
    The test program for the problem is shown below:
    
      $ cat heap.c
      #include <unistd.h>
      #include <stdlib.h>
      #include <string.h>
    
      #define HPS 0x200000
    
      int main() {
      	int i;
      	char *p = malloc(HPS);
      	memset(p, '1', HPS);
      	for (i = 0; i < 5; i++) {
      		if (!fork()) {
      			memset(p, '2', HPS);
      			p = malloc(HPS);
      			memset(p, '3', HPS);
      			free(p);
      			return 0;
      		}
      	}
      	sleep(1);
      	free(p);
      	return 0;
      }
    
      $ export HUGETLB_MORECORE=yes ; export HUGETLB_NO_PREFAULT= ; hugectl --heap ./heap
    
    Fixes 4a705fe ("hugetlb: fix copy_hugetlb_page_range() to handle
    migration/hwpoisoned entry"), so is applicable to -stable kernels which
    include it.
    
    Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Reported-by: Guillaume Morin <guillaume@morinfr.org>
    Suggested-by: Guillaume Morin <guillaume@morinfr.org>
    Acked-by: Hugh Dickins <hughd@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Naoya Horiguchi authored and gregkh committed Jul 31, 2014
    Configuration menu
    Copy the full SHA
    97f5dab View commit details
    Browse the repository at this point in the history
  9. Fix gcc-4.9.0 miscompilation of load_balance() in scheduler

    commit 2062afb upstream.
    
    Michel Dänzer and a couple of other people reported inexplicable random
    oopses in the scheduler, and the cause turns out to be gcc mis-compiling
    the load_balance() function when debugging is enabled.  The gcc bug
    apparently goes back to gcc-4.5, but slight optimization changes means
    that it now showed up as a problem in 4.9.0 and 4.9.1.
    
    The instruction scheduling problem causes gcc to schedule a spill
    operation to before the stack frame has been created, which in turn can
    corrupt the spilled value if an interrupt comes in.  There may be other
    effects of this bug too, but that's the code generation problem seen in
    Michel's case.
    
    This is fixed in current gcc HEAD, but the workaround as suggested by
    Markus Trippelsdorf is pretty simple: use -fno-var-tracking-assignments
    when compiling the kernel, which disables the gcc code that causes the
    problem.  This can result in slightly worse debug information for
    variable accesses, but that is infinitely preferable to actual code
    generation problems.
    
    Doing this unconditionally (not just for CONFIG_DEBUG_INFO) also allows
    non-debug builds to verify that the debug build would be identical: we
    can do
    
        export GCC_COMPARE_DEBUG=1
    
    to make gcc internally verify that the result of the build is
    independent of the "-g" flag (it will make the compiler build everything
    twice, toggling the debug flag, and compare the results).
    
    Without the "-fno-var-tracking-assignments" option, the build would fail
    (even with 4.8.3 that didn't show the actual stack frame bug) with a gcc
    compare failure.
    
    See also gcc bugzilla:
    
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801
    
    Reported-by: Michel Dänzer <michel@daenzer.net>
    Suggested-by: Markus Trippelsdorf <markus@trippelsdorf.de>
    Cc: Jakub Jelinek <jakub@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    torvalds authored and gregkh committed Jul 31, 2014
    Configuration menu
    Copy the full SHA
    e5c662d View commit details
    Browse the repository at this point in the history
  10. s390/ptrace: fix PSW mask check

    commit dab6cf5 upstream.
    
    The PSW mask check of the PTRACE_POKEUSR_AREA command is incorrect.
    The PSW_MASK_USER define contains the PSW_MASK_ASC bits, the ptrace
    interface accepts all combinations for the address-space-control
    bits. To protect the kernel space the PSW mask check in ptrace needs
    to reject the address-space-control bit combination for home space.
    
    Fixes CVE-2014-3534
    
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Martin Schwidefsky authored and gregkh committed Jul 31, 2014
    Configuration menu
    Copy the full SHA
    883ea13 View commit details
    Browse the repository at this point in the history
  11. introduce SIZE_MAX

    commit a3860c1 upstream.
    
    ULONG_MAX is often used to check for integer overflow when calculating
    allocation size.  While ULONG_MAX happens to work on most systems, there
    is no guarantee that `size_t' must be the same size as `long'.
    
    This patch introduces SIZE_MAX, the maximum value of `size_t', to improve
    portability and readability for allocation size validation.
    
    Signed-off-by: Xi Wang <xi.wang@gmail.com>
    Acked-by: Alex Elder <elder@dreamhost.com>
    Cc: David Airlie <airlied@linux.ie>
    Cc: Pekka Enberg <penberg@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Qiang Huang <h.huangqiang@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    xiw authored and gregkh committed Jul 31, 2014
    Configuration menu
    Copy the full SHA
    b06b5c6 View commit details
    Browse the repository at this point in the history
  12. mm: kmemleak: avoid false negatives on vmalloc'ed objects

    commit 7f88f88 upstream.
    
    Commit 248ac0e ("mm/vmalloc: remove guard page from between vmap
    blocks") had the side effect of making vmap_area.va_end member point to
    the next vmap_area.va_start.  This was creating an artificial reference
    to vmalloc'ed objects and kmemleak was rarely reporting vmalloc() leaks.
    
    This patch marks the vmap_area containing pointers explicitly and
    reduces the min ref_count to 2 as vm_struct still contains a reference
    to the vmalloc'ed object.  The kmemleak add_scan_area() function has
    been improved to allow a SIZE_MAX argument covering the rest of the
    object (for simpler calling sites).
    
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    [hq: Backported to 3.4: Adjust context]
    Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ctmarinas authored and gregkh committed Jul 31, 2014
    Configuration menu
    Copy the full SHA
    7e2e611 View commit details
    Browse the repository at this point in the history
  13. Linux 3.4.101

    gregkh committed Jul 31, 2014
    Configuration menu
    Copy the full SHA
    91f7c8c View commit details
    Browse the repository at this point in the history

Commits on Aug 7, 2014

  1. crypto: af_alg - properly label AF_ALG socket

    commit 4c63f83 upstream.
    
    Th AF_ALG socket was missing a security label (e.g. SELinux)
    which means that socket was in "unlabeled" state.
    
    This was recently demonstrated in the cryptsetup package
    (cryptsetup v1.6.5 and later.)
    See https://bugzilla.redhat.com/show_bug.cgi?id=1115120
    
    This patch clones the sock's label from the parent sock
    and resolves the issue (similar to AF_BLUETOOTH protocol family).
    
    Signed-off-by: Milan Broz <gmazyland@gmail.com>
    Acked-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    mbroz authored and gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    44ce8f8 View commit details
    Browse the repository at this point in the history
  2. ARM: 8115/1: LPAE: reduce damage caused by idmap to virtual memory la…

    …yout
    
    commit 811a240 upstream.
    
    On LPAE, each level 1 (pgd) page table entry maps 1GiB, and the level 2
    (pmd) entries map 2MiB.
    
    When the identity mapping is created on LPAE, the pgd pointers are copied
    from the swapper_pg_dir.  If we find that we need to modify the contents
    of a pmd, we allocate a new empty pmd table and insert it into the
    appropriate 1GB slot, before then filling it with the identity mapping.
    
    However, if the 1GB slot covers the kernel lowmem mappings, we obliterate
    those mappings.
    
    When replacing a PMD, first copy the old PMD contents to the new PMD, so
    that we preserve the existing mappings, particularly the mappings of the
    kernel itself.
    
    [rewrote commit message and added code comment -- rmk]
    
    Fixes: ae2de10 ("ARM: LPAE: Add identity mapping support for the 3-level page table format")
    Signed-off-by: Konstantin Khlebnikov <k.khlebnikov@samsung.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Konstantin Khlebnikov authored and gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    2e926a6 View commit details
    Browse the repository at this point in the history
  3. scsi: handle flush errors properly

    commit 89fb4cd upstream.
    
    Flush commands don't transfer data and thus need to be special cased
    in the I/O completion handler so that we can propagate errors to
    the block layer and filesystem.
    
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Reported-by: Steven Haber <steven@qumulo.com>
    Tested-by: Steven Haber <steven@qumulo.com>
    Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    James Bottomley authored and gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    0e04ec4 View commit details
    Browse the repository at this point in the history
  4. mm, thp: do not allow thp faults to avoid cpuset restrictions

    commit b104a35 upstream.
    
    The page allocator relies on __GFP_WAIT to determine if ALLOC_CPUSET
    should be set in allocflags.  ALLOC_CPUSET controls if a page allocation
    should be restricted only to the set of allowed cpuset mems.
    
    Transparent hugepages clears __GFP_WAIT when defrag is disabled to prevent
    the fault path from using memory compaction or direct reclaim.  Thus, it
    is unfairly able to allocate outside of its cpuset mems restriction as a
    side-effect.
    
    This patch ensures that ALLOC_CPUSET is only cleared when the gfp mask is
    truly GFP_ATOMIC by verifying it is also not a thp allocation.
    
    Signed-off-by: David Rientjes <rientjes@google.com>
    Reported-by: Alex Thorlton <athorlton@sgi.com>
    Tested-by: Alex Thorlton <athorlton@sgi.com>
    Cc: Bob Liu <lliubbo@gmail.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Hedi Berriche <hedi@sgi.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    rientjes authored and gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    7f6c1de View commit details
    Browse the repository at this point in the history
  5. printk: rename printk_sched to printk_deferred

    commit aac74dc upstream.
    
    After learning we'll need some sort of deferred printk functionality in
    the timekeeping core, Peter suggested we rename the printk_sched function
    so it can be reused by needed subsystems.
    
    This only changes the function name. No logic changes.
    
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Jiri Bohac <jbohac@suse.cz>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@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>
    johnstultz-work authored and gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    f73ff69 View commit details
    Browse the repository at this point in the history
  6. timer: Fix lock inversion between hrtimer_bases.lock and scheduler locks

    commit 504d587 upstream.
    
    clockevents_increase_min_delta() calls printk() from under
    hrtimer_bases.lock. That causes lock inversion on scheduler locks because
    printk() can call into the scheduler. Lockdep puts it as:
    
    ======================================================
    [ INFO: possible circular locking dependency detected ]
    3.15.0-rc8-06195-g939f04b #2 Not tainted
    -------------------------------------------------------
    trinity-main/74 is trying to acquire lock:
     (&port_lock_key){-.....}, at: [<811c60be>] serial8250_console_write+0x8c/0x10c
    
    but task is already holding lock:
     (hrtimer_bases.lock){-.-...}, at: [<8103caeb>] hrtimer_try_to_cancel+0x13/0x66
    
    which lock already depends on the new lock.
    
    the existing dependency chain (in reverse order) is:
    
    -> #5 (hrtimer_bases.lock){-.-...}:
           [<8104a942>] lock_acquire+0x92/0x101
           [<8142f11d>] _raw_spin_lock_irqsave+0x2e/0x3e
           [<8103c918>] __hrtimer_start_range_ns+0x1c/0x197
           [<8107ec20>] perf_swevent_start_hrtimer.part.41+0x7a/0x85
           [<81080792>] task_clock_event_start+0x3a/0x3f
           [<810807a4>] task_clock_event_add+0xd/0x14
           [<8108259a>] event_sched_in+0xb6/0x17a
           [<810826a2>] group_sched_in+0x44/0x122
           [<81082885>] ctx_sched_in.isra.67+0x105/0x11f
           [<810828e6>] perf_event_sched_in.isra.70+0x47/0x4b
           [<81082bf6>] __perf_install_in_context+0x8b/0xa3
           [<8107eb8e>] remote_function+0x12/0x2a
           [<8105f5af>] smp_call_function_single+0x2d/0x53
           [<8107e17d>] task_function_call+0x30/0x36
           [<8107fb82>] perf_install_in_context+0x87/0xbb
           [<810852c9>] SYSC_perf_event_open+0x5c6/0x701
           [<810856f9>] SyS_perf_event_open+0x17/0x19
           [<8142f8ee>] syscall_call+0x7/0xb
    
    -> #4 (&ctx->lock){......}:
           [<8104a942>] lock_acquire+0x92/0x101
           [<8142f04c>] _raw_spin_lock+0x21/0x30
           [<81081df3>] __perf_event_task_sched_out+0x1dc/0x34f
           [<8142cacc>] __schedule+0x4c6/0x4cb
           [<8142cae0>] schedule+0xf/0x11
           [<8142f9a6>] work_resched+0x5/0x30
    
    -> #3 (&rq->lock){-.-.-.}:
           [<8104a942>] lock_acquire+0x92/0x101
           [<8142f04c>] _raw_spin_lock+0x21/0x30
           [<81040873>] __task_rq_lock+0x33/0x3a
           [<8104184c>] wake_up_new_task+0x25/0xc2
           [<8102474b>] do_fork+0x15c/0x2a0
           [<810248a9>] kernel_thread+0x1a/0x1f
           [<814232a2>] rest_init+0x1a/0x10e
           [<817af949>] start_kernel+0x303/0x308
           [<817af2ab>] i386_start_kernel+0x79/0x7d
    
    -> #2 (&p->pi_lock){-.-...}:
           [<8104a942>] lock_acquire+0x92/0x101
           [<8142f11d>] _raw_spin_lock_irqsave+0x2e/0x3e
           [<810413dd>] try_to_wake_up+0x1d/0xd6
           [<810414cd>] default_wake_function+0xb/0xd
           [<810461f3>] __wake_up_common+0x39/0x59
           [<81046346>] __wake_up+0x29/0x3b
           [<811b8733>] tty_wakeup+0x49/0x51
           [<811c3568>] uart_write_wakeup+0x17/0x19
           [<811c5dc1>] serial8250_tx_chars+0xbc/0xfb
           [<811c5f28>] serial8250_handle_irq+0x54/0x6a
           [<811c5f57>] serial8250_default_handle_irq+0x19/0x1c
           [<811c56d8>] serial8250_interrupt+0x38/0x9e
           [<810510e7>] handle_irq_event_percpu+0x5f/0x1e2
           [<81051296>] handle_irq_event+0x2c/0x43
           [<81052cee>] handle_level_irq+0x57/0x80
           [<81002a72>] handle_irq+0x46/0x5c
           [<810027df>] do_IRQ+0x32/0x89
           [<8143036e>] common_interrupt+0x2e/0x33
           [<8142f23c>] _raw_spin_unlock_irqrestore+0x3f/0x49
           [<811c25a4>] uart_start+0x2d/0x32
           [<811c2c04>] uart_write+0xc7/0xd6
           [<811bc6f6>] n_tty_write+0xb8/0x35e
           [<811b9beb>] tty_write+0x163/0x1e4
           [<811b9cd9>] redirected_tty_write+0x6d/0x75
           [<810b6ed6>] vfs_write+0x75/0xb0
           [<810b7265>] SyS_write+0x44/0x77
           [<8142f8ee>] syscall_call+0x7/0xb
    
    -> #1 (&tty->write_wait){-.....}:
           [<8104a942>] lock_acquire+0x92/0x101
           [<8142f11d>] _raw_spin_lock_irqsave+0x2e/0x3e
           [<81046332>] __wake_up+0x15/0x3b
           [<811b8733>] tty_wakeup+0x49/0x51
           [<811c3568>] uart_write_wakeup+0x17/0x19
           [<811c5dc1>] serial8250_tx_chars+0xbc/0xfb
           [<811c5f28>] serial8250_handle_irq+0x54/0x6a
           [<811c5f57>] serial8250_default_handle_irq+0x19/0x1c
           [<811c56d8>] serial8250_interrupt+0x38/0x9e
           [<810510e7>] handle_irq_event_percpu+0x5f/0x1e2
           [<81051296>] handle_irq_event+0x2c/0x43
           [<81052cee>] handle_level_irq+0x57/0x80
           [<81002a72>] handle_irq+0x46/0x5c
           [<810027df>] do_IRQ+0x32/0x89
           [<8143036e>] common_interrupt+0x2e/0x33
           [<8142f23c>] _raw_spin_unlock_irqrestore+0x3f/0x49
           [<811c25a4>] uart_start+0x2d/0x32
           [<811c2c04>] uart_write+0xc7/0xd6
           [<811bc6f6>] n_tty_write+0xb8/0x35e
           [<811b9beb>] tty_write+0x163/0x1e4
           [<811b9cd9>] redirected_tty_write+0x6d/0x75
           [<810b6ed6>] vfs_write+0x75/0xb0
           [<810b7265>] SyS_write+0x44/0x77
           [<8142f8ee>] syscall_call+0x7/0xb
    
    -> #0 (&port_lock_key){-.....}:
           [<8104a62d>] __lock_acquire+0x9ea/0xc6d
           [<8104a942>] lock_acquire+0x92/0x101
           [<8142f11d>] _raw_spin_lock_irqsave+0x2e/0x3e
           [<811c60be>] serial8250_console_write+0x8c/0x10c
           [<8104e402>] call_console_drivers.constprop.31+0x87/0x118
           [<8104f5d5>] console_unlock+0x1d7/0x398
           [<8104fb70>] vprintk_emit+0x3da/0x3e4
           [<81425f76>] printk+0x17/0x19
           [<8105bfa0>] clockevents_program_min_delta+0x104/0x116
           [<8105c548>] clockevents_program_event+0xe7/0xf3
           [<8105cc1c>] tick_program_event+0x1e/0x23
           [<8103c43c>] hrtimer_force_reprogram+0x88/0x8f
           [<8103c49e>] __remove_hrtimer+0x5b/0x79
           [<8103cb21>] hrtimer_try_to_cancel+0x49/0x66
           [<8103cb4b>] hrtimer_cancel+0xd/0x18
           [<8107f102>] perf_swevent_cancel_hrtimer.part.60+0x2b/0x30
           [<81080705>] task_clock_event_stop+0x20/0x64
           [<81080756>] task_clock_event_del+0xd/0xf
           [<81081350>] event_sched_out+0xab/0x11e
           [<810813e0>] group_sched_out+0x1d/0x66
           [<81081682>] ctx_sched_out+0xaf/0xbf
           [<81081e04>] __perf_event_task_sched_out+0x1ed/0x34f
           [<8142cacc>] __schedule+0x4c6/0x4cb
           [<8142cae0>] schedule+0xf/0x11
           [<8142f9a6>] work_resched+0x5/0x30
    
    other info that might help us debug this:
    
    Chain exists of:
      &port_lock_key --> &ctx->lock --> hrtimer_bases.lock
    
     Possible unsafe locking scenario:
    
           CPU0                    CPU1
           ----                    ----
      lock(hrtimer_bases.lock);
                                   lock(&ctx->lock);
                                   lock(hrtimer_bases.lock);
      lock(&port_lock_key);
    
     *** DEADLOCK ***
    
    4 locks held by trinity-main/74:
     #0:  (&rq->lock){-.-.-.}, at: [<8142c6f3>] __schedule+0xed/0x4cb
     #1:  (&ctx->lock){......}, at: [<81081df3>] __perf_event_task_sched_out+0x1dc/0x34f
     #2:  (hrtimer_bases.lock){-.-...}, at: [<8103caeb>] hrtimer_try_to_cancel+0x13/0x66
     #3:  (console_lock){+.+...}, at: [<8104fb5d>] vprintk_emit+0x3c7/0x3e4
    
    stack backtrace:
    CPU: 0 PID: 74 Comm: trinity-main Not tainted 3.15.0-rc8-06195-g939f04b #2
     00000000 81c3a310 8b995c14 81426f69 8b995c44 81425a99 8161f671 8161f570
     8161f538 8161f559 8161f538 8b995c78 8b142bb0 00000004 8b142fdc 8b142bb0
     8b995ca8 8104a62d 8b142fac 000016f2 81c3a310 00000001 00000001 00000003
    Call Trace:
     [<81426f69>] dump_stack+0x16/0x18
     [<81425a99>] print_circular_bug+0x18f/0x19c
     [<8104a62d>] __lock_acquire+0x9ea/0xc6d
     [<8104a942>] lock_acquire+0x92/0x101
     [<811c60be>] ? serial8250_console_write+0x8c/0x10c
     [<811c6032>] ? wait_for_xmitr+0x76/0x76
     [<8142f11d>] _raw_spin_lock_irqsave+0x2e/0x3e
     [<811c60be>] ? serial8250_console_write+0x8c/0x10c
     [<811c60be>] serial8250_console_write+0x8c/0x10c
     [<8104af87>] ? lock_release+0x191/0x223
     [<811c6032>] ? wait_for_xmitr+0x76/0x76
     [<8104e402>] call_console_drivers.constprop.31+0x87/0x118
     [<8104f5d5>] console_unlock+0x1d7/0x398
     [<8104fb70>] vprintk_emit+0x3da/0x3e4
     [<81425f76>] printk+0x17/0x19
     [<8105bfa0>] clockevents_program_min_delta+0x104/0x116
     [<8105cc1c>] tick_program_event+0x1e/0x23
     [<8103c43c>] hrtimer_force_reprogram+0x88/0x8f
     [<8103c49e>] __remove_hrtimer+0x5b/0x79
     [<8103cb21>] hrtimer_try_to_cancel+0x49/0x66
     [<8103cb4b>] hrtimer_cancel+0xd/0x18
     [<8107f102>] perf_swevent_cancel_hrtimer.part.60+0x2b/0x30
     [<81080705>] task_clock_event_stop+0x20/0x64
     [<81080756>] task_clock_event_del+0xd/0xf
     [<81081350>] event_sched_out+0xab/0x11e
     [<810813e0>] group_sched_out+0x1d/0x66
     [<81081682>] ctx_sched_out+0xaf/0xbf
     [<81081e04>] __perf_event_task_sched_out+0x1ed/0x34f
     [<8104416d>] ? __dequeue_entity+0x23/0x27
     [<81044505>] ? pick_next_task_fair+0xb1/0x120
     [<8142cacc>] __schedule+0x4c6/0x4cb
     [<81047574>] ? trace_hardirqs_off_caller+0xd7/0x108
     [<810475b0>] ? trace_hardirqs_off+0xb/0xd
     [<81056346>] ? rcu_irq_exit+0x64/0x77
    
    Fix the problem by using printk_deferred() which does not call into the
    scheduler.
    
    Reported-by: Fengguang Wu <fengguang.wu@intel.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jankara authored and gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    fbbb720 View commit details
    Browse the repository at this point in the history
  7. Revert "x86-64, modify_ldt: Make support for 16-bit segments a runtim…

    …e option"
    
    commit 7ed6fb9 upstream.
    
    This reverts commit fa81511 in
    preparation of merging in the proper fix (espfix64).
    
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    H. Peter Anvin authored and gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    6c7e43a View commit details
    Browse the repository at this point in the history
  8. x86-64, espfix: Don't leak bits 31:16 of %esp returning to 16-bit stack

    commit 3891a04 upstream.
    
    The IRET instruction, when returning to a 16-bit segment, only
    restores the bottom 16 bits of the user space stack pointer.  This
    causes some 16-bit software to break, but it also leaks kernel state
    to user space.  We have a software workaround for that ("espfix") for
    the 32-bit kernel, but it relies on a nonzero stack segment base which
    is not available in 64-bit mode.
    
    In checkin:
    
        b3b42ac x86-64, modify_ldt: Ban 16-bit segments on 64-bit kernels
    
    we "solved" this by forbidding 16-bit segments on 64-bit kernels, with
    the logic that 16-bit support is crippled on 64-bit kernels anyway (no
    V86 support), but it turns out that people are doing stuff like
    running old Win16 binaries under Wine and expect it to work.
    
    This works around this by creating percpu "ministacks", each of which
    is mapped 2^16 times 64K apart.  When we detect that the return SS is
    on the LDT, we copy the IRET frame to the ministack and use the
    relevant alias to return to userspace.  The ministacks are mapped
    readonly, so if IRET faults we promote #GP to #DF which is an IST
    vector and thus has its own stack; we then do the fixup in the #DF
    handler.
    
    (Making #GP an IST exception would make the msr_safe functions unsafe
    in NMI/MC context, and quite possibly have other effects.)
    
    Special thanks to:
    
    - Andy Lutomirski, for the suggestion of using very small stack slots
      and copy (as opposed to map) the IRET frame there, and for the
      suggestion to mark them readonly and let the fault promote to #DF.
    - Konrad Wilk for paravirt fixup and testing.
    - Borislav Petkov for testing help and useful comments.
    
    Reported-by: Brian Gerst <brgerst@gmail.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Link: http://lkml.kernel.org/r/1398816946-3351-1-git-send-email-hpa@linux.intel.com
    Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Andrew Lutomriski <amluto@gmail.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Dirk Hohndel <dirk@hohndel.org>
    Cc: Arjan van de Ven <arjan.van.de.ven@intel.com>
    Cc: comex <comexk@gmail.com>
    Cc: Alexander van Heukelum <heukelum@fastmail.fm>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    H. Peter Anvin authored and gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    3989298 View commit details
    Browse the repository at this point in the history
  9. x86, espfix: Move espfix definitions into a separate header file

    commit e1fe9ed upstream.
    
    Sparse warns that the percpu variables aren't declared before they are
    defined.  Rather than hacking around it, move espfix definitions into
    a proper header file.
    
    Reported-by: Fengguang Wu <fengguang.wu@intel.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    H. Peter Anvin authored and gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    18e63ea View commit details
    Browse the repository at this point in the history
  10. x86, espfix: Fix broken header guard

    commit 20b6853 upstream.
    
    Header guard is #ifndef, not #ifdef...
    
    Reported-by: Fengguang Wu <fengguang.wu@intel.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    H. Peter Anvin authored and gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    111f0ce View commit details
    Browse the repository at this point in the history
  11. x86, espfix: Make espfix64 a Kconfig option, fix UML

    commit 197725d upstream.
    
    Make espfix64 a hidden Kconfig option.  This fixes the x86-64 UML
    build which had broken due to the non-existence of init_espfix_bsp()
    in UML: since UML uses its own Kconfig, this option does not appear in
    the UML build.
    
    This also makes it possible to make support for 16-bit segments a
    configuration option, for the people who want to minimize the size of
    the kernel.
    
    Reported-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Cc: Richard Weinberger <richard@nod.at>
    Link: http://lkml.kernel.org/r/1398816946-3351-1-git-send-email-hpa@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    H. Peter Anvin authored and gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    7b6354e View commit details
    Browse the repository at this point in the history
  12. x86, espfix: Make it possible to disable 16-bit support

    commit 34273f4 upstream.
    
    Embedded systems, which may be very memory-size-sensitive, are
    extremely unlikely to ever encounter any 16-bit software, so make it
    a CONFIG_EXPERT option to turn off support for any 16-bit software
    whatsoever.
    
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Link: http://lkml.kernel.org/r/1398816946-3351-1-git-send-email-hpa@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    H. Peter Anvin authored and gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    4a0db8a View commit details
    Browse the repository at this point in the history
  13. x86_64/entry/xen: Do not invoke espfix64 on Xen

    commit 7209a75 upstream.
    
    This moves the espfix64 logic into native_iret.  To make this work,
    it gets rid of the native patch for INTERRUPT_RETURN:
    INTERRUPT_RETURN on native kernels is now 'jmp native_iret'.
    
    This changes the 16-bit SS behavior on Xen from OOPSing to leaking
    some bits of the Xen hypervisor's RSP (I think).
    
    [ hpa: this is a nonzero cost on native, but probably not enough to
      measure. Xen needs to fix this in their own code, probably doing
      something equivalent to espfix64. ]
    
    Signed-off-by: Andy Lutomirski <luto@amacapital.net>
    Link: http://lkml.kernel.org/r/7b8f1d8ef6597cb16ae004a43c56980a7de3cf94.1406129132.git.luto@amacapital.net
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    amluto authored and gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    473d8a2 View commit details
    Browse the repository at this point in the history
  14. Revert: "net: ip, ipv6: handle gso skbs in forwarding path"

    This reverts commit 29a3cd4 which is
    commit fe6cc55 upstream.
    
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: Marcelo Ricardo Leitner <mleitner@redhat.com>
    Cc: Florian Westphal <fw@strlen.de>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: Thomas Jarosch <thomas.jarosch@intra2net.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    68199d6 View commit details
    Browse the repository at this point in the history
  15. net/l2tp: don't fall back on UDP [get|set]sockopt

    commit 3cf521f upstream.
    
    The l2tp [get|set]sockopt() code has fallen back to the UDP functions
    for socket option levels != SOL_PPPOL2TP since day one, but that has
    never actually worked, since the l2tp socket isn't an inet socket.
    
    As David Miller points out:
    
      "If we wanted this to work, it'd have to look up the tunnel and then
       use tunnel->sk, but I wonder how useful that would be"
    
    Since this can never have worked so nobody could possibly have depended
    on that functionality, just remove the broken code and return -EINVAL.
    
    Reported-by: Sasha Levin <sasha.levin@oracle.com>
    Acked-by: James Chapman <jchapman@katalix.com>
    Acked-by: David Miller <davem@davemloft.net>
    Cc: Phil Turnbull <phil.turnbull@oracle.com>
    Cc: Vegard Nossum <vegard.nossum@oracle.com>
    Cc: Willy Tarreau <w@1wt.eu>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    sashalevin authored and gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    56a2a6f View commit details
    Browse the repository at this point in the history
  16. lib/btree.c: fix leak of whole btree nodes

    commit c75b53a upstream.
    
    I use btree from 3.14-rc2 in my own module.  When the btree module is
    removed, a warning arises:
    
     kmem_cache_destroy btree_node: Slab cache still has objects
     CPU: 13 PID: 9150 Comm: rmmod Tainted: GF          O 3.14.0-rc2 #1
     Hardware name: Inspur NF5270M3/NF5270M3, BIOS CHEETAH_2.1.3 09/10/2013
     Call Trace:
       dump_stack+0x49/0x5d
       kmem_cache_destroy+0xcf/0xe0
       btree_module_exit+0x10/0x12 [btree]
       SyS_delete_module+0x198/0x1f0
       system_call_fastpath+0x16/0x1b
    
    The cause is that it doesn't release the last btree node, when height = 1
    and fill = 1.
    
    [akpm@linux-foundation.org: remove unneeded test of NULL]
    Signed-off-by: Minfei Huang <huangminfei@ucloud.cn>
    Cc: Joern Engel <joern@logfs.org>
    Cc: Johannes Berg <johannes@sipsolutions.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Minfei Huang authored and gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    cca6995 View commit details
    Browse the repository at this point in the history
  17. x86/espfix/xen: Fix allocation of pages for paravirt page tables

    commit 8762e50 upstream.
    
    init_espfix_ap() is currently off by one level when informing hypervisor
    that allocated pages will be used for ministacks' page tables.
    
    The most immediate effect of this on a PV guest is that if
    'stack_page = __get_free_page()' returns a non-zeroed-out page the hypervisor
    will refuse to use it for a page table (which it shouldn't be anyway). This will
    result in warnings by both Xen and Linux.
    
    More importantly, a subsequent write to that page (again, by a PV guest) is
    likely to result in fatal page fault.
    
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Link: http://lkml.kernel.org/r/1404926298-5565-1-git-send-email-boris.ostrovsky@oracle.com
    Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Boris Ostrovsky authored and gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    9c98268 View commit details
    Browse the repository at this point in the history
  18. mm: try_to_unmap_cluster() should lock_page() before mlocking

    commit 57e68e9 upstream.
    
    A BUG_ON(!PageLocked) was triggered in mlock_vma_page() by Sasha Levin
    fuzzing with trinity.  The call site try_to_unmap_cluster() does not lock
    the pages other than its check_page parameter (which is already locked).
    
    The BUG_ON in mlock_vma_page() is not documented and its purpose is
    somewhat unclear, but apparently it serializes against page migration,
    which could otherwise fail to transfer the PG_mlocked flag.  This would
    not be fatal, as the page would be eventually encountered again, but
    NR_MLOCK accounting would become distorted nevertheless.  This patch adds
    a comment to the BUG_ON in mlock_vma_page() and munlock_vma_page() to that
    effect.
    
    The call site try_to_unmap_cluster() is fixed so that for page !=
    check_page, trylock_page() is attempted (to avoid possible deadlocks as we
    already have check_page locked) and mlock_vma_page() is performed only
    upon success.  If the page lock cannot be obtained, the page is left
    without PG_mlocked, which is again not a problem in the whole unevictable
    memory design.
    
    Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
    Signed-off-by: Bob Liu <bob.liu@oracle.com>
    Reported-by: Sasha Levin <sasha.levin@oracle.com>
    Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
    Cc: Michel Lespinasse <walken@google.com>
    Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Acked-by: Rik van Riel <riel@redhat.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    tehcaster authored and gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    21dbd45 View commit details
    Browse the repository at this point in the history
  19. ipv6: reallocate addrconf router for ipv6 address when lo device up

    commit 33d9911 upstream.
    
    commit 25fb6ca
    "net IPv6 : Fix broken IPv6 routing table after loopback down-up"
    allocates addrconf router for ipv6 address when lo device up.
    but commit a881ae1
    "ipv6:don't call addrconf_dst_alloc again when enable lo" breaks
    this behavior.
    
    Since the addrconf router is moved to the garbage list when
    lo device down, we should release this router and rellocate
    a new one for ipv6 address when lo device up.
    
    This patch solves bug 67951 on bugzilla
    https://bugzilla.kernel.org/show_bug.cgi?id=67951
    
    change from v1:
    use ip6_rt_put to repleace ip6_del_rt, thanks Hannes!
    change code style, suggested by Sergei.
    
    CC: Sabrina Dubroca <sd@queasysnail.net>
    CC: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Reported-by: Weilong Chen <chenweilong@huawei.com>
    Signed-off-by: Weilong Chen <chenweilong@huawei.com>
    Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
    Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    [weilong: s/ip6_rt_put/dst_release]
    Signed-off-by: Chen Weilong <chenweilong@huawei.com>
    Signed-off-by: Li Zefan <lizefan@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Gao feng authored and gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    a066704 View commit details
    Browse the repository at this point in the history
  20. Linux 3.4.102

    gregkh committed Aug 7, 2014
    Configuration menu
    Copy the full SHA
    0a9d91d View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2014

  1. inetpeer: get rid of ip_id_count

    [ Upstream commit 73f156a ]
    
    Ideally, we would need to generate IP ID using a per destination IP
    generator.
    
    linux kernels used inet_peer cache for this purpose, but this had a huge
    cost on servers disabling MTU discovery.
    
    1) each inet_peer struct consumes 192 bytes
    
    2) inetpeer cache uses a binary tree of inet_peer structs,
       with a nominal size of ~66000 elements under load.
    
    3) lookups in this tree are hitting a lot of cache lines, as tree depth
       is about 20.
    
    4) If server deals with many tcp flows, we have a high probability of
       not finding the inet_peer, allocating a fresh one, inserting it in
       the tree with same initial ip_id_count, (cf secure_ip_id())
    
    5) We garbage collect inet_peer aggressively.
    
    IP ID generation do not have to be 'perfect'
    
    Goal is trying to avoid duplicates in a short period of time,
    so that reassembly units have a chance to complete reassembly of
    fragments belonging to one message before receiving other fragments
    with a recycled ID.
    
    We simply use an array of generators, and a Jenkin hash using the dst IP
    as a key.
    
    ipv6_select_ident() is put back into net/ipv6/ip6_output.c where it
    belongs (it is only used from this file)
    
    secure_ip_id() and secure_ipv6_id() no longer are needed.
    
    Rename ip_select_ident_more() to ip_select_ident_segs() to avoid
    unnecessary decrement/increment of the number of segments.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Eric Dumazet authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    ad52eef View commit details
    Browse the repository at this point in the history
  2. ip: make IP identifiers less predictable

    [ Upstream commit 04ca697 ]
    
    In "Counting Packets Sent Between Arbitrary Internet Hosts", Jeffrey and
    Jedidiah describe ways exploiting linux IP identifier generation to
    infer whether two machines are exchanging packets.
    
    With commit 73f156a ("inetpeer: get rid of ip_id_count"), we
    changed IP id generation, but this does not really prevent this
    side-channel technique.
    
    This patch adds a random amount of perturbation so that IP identifiers
    for a given destination [1] are no longer monotonically increasing after
    an idle period.
    
    Note that prandom_u32_max(1) returns 0, so if generator is used at most
    once per jiffy, this patch inserts no hole in the ID suite and do not
    increase collision probability.
    
    This is jiffies based, so in the worst case (HZ=1000), the id can
    rollover after ~65 seconds of idle time, which should be fine.
    
    We also change the hash used in __ip_select_ident() to not only hash
    on daddr, but also saddr and protocol, so that ICMP probes can not be
    used to infer information for other protocols.
    
    For IPv6, adds saddr into the hash as well, but not nexthdr.
    
    If I ping the patched target, we can see ID are now hard to predict.
    
    21:57:11.008086 IP (...)
        A > target: ICMP echo request, seq 1, length 64
    21:57:11.010752 IP (... id 2081 ...)
        target > A: ICMP echo reply, seq 1, length 64
    
    21:57:12.013133 IP (...)
        A > target: ICMP echo request, seq 2, length 64
    21:57:12.015737 IP (... id 3039 ...)
        target > A: ICMP echo reply, seq 2, length 64
    
    21:57:13.016580 IP (...)
        A > target: ICMP echo request, seq 3, length 64
    21:57:13.019251 IP (... id 3437 ...)
        target > A: ICMP echo reply, seq 3, length 64
    
    [1] TCP sessions uses a per flow ID generator not changed by this patch.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: Jeffrey Knockel <jeffk@cs.unm.edu>
    Reported-by: Jedidiah R. Crandall <crandall@cs.unm.edu>
    Cc: Willy Tarreau <w@1wt.eu>
    Cc: Hannes Frederic Sowa <hannes@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Eric Dumazet authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    509a15a View commit details
    Browse the repository at this point in the history
  3. net: sendmsg: fix NULL pointer dereference

    [ Upstream commit 40eea80 ]
    
    Sasha's report:
    	> While fuzzing with trinity inside a KVM tools guest running the latest -next
    	> kernel with the KASAN patchset, I've stumbled on the following spew:
    	>
    	> [ 4448.949424] ==================================================================
    	> [ 4448.951737] AddressSanitizer: user-memory-access on address 0
    	> [ 4448.952988] Read of size 2 by thread T19638:
    	> [ 4448.954510] CPU: 28 PID: 19638 Comm: trinity-c76 Not tainted 3.16.0-rc4-next-20140711-sasha-00046-g07d3099-dirty torvalds#813
    	> [ 4448.956823]  ffff88046d86ca40 0000000000000000 ffff880082f37e78 ffff880082f37a40
    	> [ 4448.958233]  ffffffffb6e47068 ffff880082f37a68 ffff880082f37a58 ffffffffb242708d
    	> [ 4448.959552]  0000000000000000 ffff880082f37a88 ffffffffb24255b1 0000000000000000
    	> [ 4448.961266] Call Trace:
    	> [ 4448.963158] dump_stack (lib/dump_stack.c:52)
    	> [ 4448.964244] kasan_report_user_access (mm/kasan/report.c:184)
    	> [ 4448.965507] __asan_load2 (mm/kasan/kasan.c:352)
    	> [ 4448.966482] ? netlink_sendmsg (net/netlink/af_netlink.c:2339)
    	> [ 4448.967541] netlink_sendmsg (net/netlink/af_netlink.c:2339)
    	> [ 4448.968537] ? get_parent_ip (kernel/sched/core.c:2555)
    	> [ 4448.970103] sock_sendmsg (net/socket.c:654)
    	> [ 4448.971584] ? might_fault (mm/memory.c:3741)
    	> [ 4448.972526] ? might_fault (./arch/x86/include/asm/current.h:14 mm/memory.c:3740)
    	> [ 4448.973596] ? verify_iovec (net/core/iovec.c:64)
    	> [ 4448.974522] ___sys_sendmsg (net/socket.c:2096)
    	> [ 4448.975797] ? put_lock_stats.isra.13 (./arch/x86/include/asm/preempt.h:98 kernel/locking/lockdep.c:254)
    	> [ 4448.977030] ? lock_release_holdtime (kernel/locking/lockdep.c:273)
    	> [ 4448.978197] ? lock_release_non_nested (kernel/locking/lockdep.c:3434 (discriminator 1))
    	> [ 4448.979346] ? check_chain_key (kernel/locking/lockdep.c:2188)
    	> [ 4448.980535] __sys_sendmmsg (net/socket.c:2181)
    	> [ 4448.981592] ? trace_hardirqs_on_caller (kernel/locking/lockdep.c:2600)
    	> [ 4448.982773] ? trace_hardirqs_on (kernel/locking/lockdep.c:2607)
    	> [ 4448.984458] ? syscall_trace_enter (arch/x86/kernel/ptrace.c:1500 (discriminator 2))
    	> [ 4448.985621] ? trace_hardirqs_on_caller (kernel/locking/lockdep.c:2600)
    	> [ 4448.986754] SyS_sendmmsg (net/socket.c:2201)
    	> [ 4448.987708] tracesys (arch/x86/kernel/entry_64.S:542)
    	> [ 4448.988929] ==================================================================
    
    This reports means that we've come to netlink_sendmsg() with msg->msg_name == NULL and msg->msg_namelen > 0.
    
    After this report there was no usual "Unable to handle kernel NULL pointer dereference"
    and this gave me a clue that address 0 is mapped and contains valid socket address structure in it.
    
    This bug was introduced in f3d3342
    (net: rework recvmsg handler msg_name and msg_namelen logic).
    Commit message states that:
    	"Set msg->msg_name = NULL if user specified a NULL in msg_name but had a
    	 non-null msg_namelen in verify_iovec/verify_compat_iovec. This doesn't
    	 affect sendto as it would bail out earlier while trying to copy-in the
    	 address."
    But in fact this affects sendto when address 0 is mapped and contains
    socket address structure in it. In such case copy-in address will succeed,
    verify_iovec() function will successfully exit with msg->msg_namelen > 0
    and msg->msg_name == NULL.
    
    This patch fixes it by setting msg_namelen to 0 if msg_name == NULL.
    
    Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: <stable@vger.kernel.org>
    Reported-by: Sasha Levin <sasha.levin@oracle.com>
    Signed-off-by: Andrey Ryabinin <a.ryabinin@samsung.com>
    Acked-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>
    aryabinin authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    c28d71c View commit details
    Browse the repository at this point in the history
  4. tcp: Fix integer-overflows in TCP veno

    [ Upstream commit 45a0769 ]
    
    In veno we do a multiplication of the cwnd and the rtt. This
    may overflow and thus their result is stored in a u64. However, we first
    need to cast the cwnd so that actually 64-bit arithmetic is done.
    
    A first attempt at fixing 76f1017 ([TCP]: TCP Veno congestion
    control) was made by 1591311 (tcp: Overflow bug in Vegas), but it
    failed to add the required cast in tcp_veno_cong_avoid().
    
    Fixes: 76f1017 ([TCP]: TCP Veno congestion control)
    Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Christoph Paasch authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    1f9480d View commit details
    Browse the repository at this point in the history
  5. tcp: Fix integer-overflow in TCP vegas

    [ Upstream commit 1f74e61 ]
    
    In vegas we do a multiplication of the cwnd and the rtt. This
    may overflow and thus their result is stored in a u64. However, we first
    need to cast the cwnd so that actually 64-bit arithmetic is done.
    
    Then, we need to do do_div to allow this to be used on 32-bit arches.
    
    Cc: Stephen Hemminger <stephen@networkplumber.org>
    Cc: Neal Cardwell <ncardwell@google.com>
    Cc: Eric Dumazet <eric.dumazet@gmail.com>
    Cc: David Laight <David.Laight@ACULAB.COM>
    Cc: Doug Leith <doug.leith@nuim.ie>
    Fixes: 8d3a564 (tcp: tcp_vegas cong avoid fix)
    Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Christoph Paasch authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    1d06a70 View commit details
    Browse the repository at this point in the history
  6. net: sctp: inherit auth_capable on INIT collisions

    [ Upstream commit 1be9a95 ]
    
    Jason reported an oops caused by SCTP on his ARM machine with
    SCTP authentication enabled:
    
    Internal error: Oops: 17 [#1] ARM
    CPU: 0 PID: 104 Comm: sctp-test Not tainted 3.13.0-68744-g3632f30c9b20-dirty #1
    task: c6eefa40 ti: c6f52000 task.ti: c6f52000
    PC is at sctp_auth_calculate_hmac+0xc4/0x10c
    LR is at sg_init_table+0x20/0x38
    pc : [<c024bb80>]    lr : [<c00f32dc>]    psr: 40000013
    sp : c6f538e8  ip : 00000000  fp : c6f53924
    r10: c6f50d80  r9 : 00000000  r8 : 00010000
    r7 : 00000000  r6 : c7be4000  r5 : 00000000  r4 : c6f56254
    r3 : c00c8170  r2 : 00000001  r1 : 00000008  r0 : c6f1e660
    Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
    Control: 0005397f  Table: 06f28000  DAC: 00000015
    Process sctp-test (pid: 104, stack limit = 0xc6f521c0)
    Stack: (0xc6f538e8 to 0xc6f54000)
    [...]
    Backtrace:
    [<c024babc>] (sctp_auth_calculate_hmac+0x0/0x10c) from [<c0249af8>] (sctp_packet_transmit+0x33c/0x5c8)
    [<c02497bc>] (sctp_packet_transmit+0x0/0x5c8) from [<c023e96c>] (sctp_outq_flush+0x7fc/0x844)
    [<c023e170>] (sctp_outq_flush+0x0/0x844) from [<c023ef78>] (sctp_outq_uncork+0x24/0x28)
    [<c023ef54>] (sctp_outq_uncork+0x0/0x28) from [<c0234364>] (sctp_side_effects+0x1134/0x1220)
    [<c0233230>] (sctp_side_effects+0x0/0x1220) from [<c02330b0>] (sctp_do_sm+0xac/0xd4)
    [<c0233004>] (sctp_do_sm+0x0/0xd4) from [<c023675c>] (sctp_assoc_bh_rcv+0x118/0x160)
    [<c0236644>] (sctp_assoc_bh_rcv+0x0/0x160) from [<c023d5bc>] (sctp_inq_push+0x6c/0x74)
    [<c023d550>] (sctp_inq_push+0x0/0x74) from [<c024a6b0>] (sctp_rcv+0x7d8/0x888)
    
    While we already had various kind of bugs in that area
    ec0223e ("net: sctp: fix sctp_sf_do_5_1D_ce to verify if
    we/peer is AUTH capable") and b14878c ("net: sctp: cache
    auth_enable per endpoint"), this one is a bit of a different
    kind.
    
    Giving a bit more background on why SCTP authentication is
    needed can be found in RFC4895:
    
      SCTP uses 32-bit verification tags to protect itself against
      blind attackers. These values are not changed during the
      lifetime of an SCTP association.
    
      Looking at new SCTP extensions, there is the need to have a
      method of proving that an SCTP chunk(s) was really sent by
      the original peer that started the association and not by a
      malicious attacker.
    
    To cause this bug, we're triggering an INIT collision between
    peers; normal SCTP handshake where both sides intent to
    authenticate packets contains RANDOM; CHUNKS; HMAC-ALGO
    parameters that are being negotiated among peers:
    
      ---------- INIT[RANDOM; CHUNKS; HMAC-ALGO] ---------->
      <------- INIT-ACK[RANDOM; CHUNKS; HMAC-ALGO] ---------
      -------------------- COOKIE-ECHO -------------------->
      <-------------------- COOKIE-ACK ---------------------
    
    RFC4895 says that each endpoint therefore knows its own random
    number and the peer's random number *after* the association
    has been established. The local and peer's random number along
    with the shared key are then part of the secret used for
    calculating the HMAC in the AUTH chunk.
    
    Now, in our scenario, we have 2 threads with 1 non-blocking
    SEQ_PACKET socket each, setting up common shared SCTP_AUTH_KEY
    and SCTP_AUTH_ACTIVE_KEY properly, and each of them calling
    sctp_bindx(3), listen(2) and connect(2) against each other,
    thus the handshake looks similar to this, e.g.:
    
      ---------- INIT[RANDOM; CHUNKS; HMAC-ALGO] ---------->
      <------- INIT-ACK[RANDOM; CHUNKS; HMAC-ALGO] ---------
      <--------- INIT[RANDOM; CHUNKS; HMAC-ALGO] -----------
      -------- INIT-ACK[RANDOM; CHUNKS; HMAC-ALGO] -------->
      ...
    
    Since such collisions can also happen with verification tags,
    the RFC4895 for AUTH rather vaguely says under section 6.1:
    
      In case of INIT collision, the rules governing the handling
      of this Random Number follow the same pattern as those for
      the Verification Tag, as explained in Section 5.2.4 of
      RFC 2960 [5]. Therefore, each endpoint knows its own Random
      Number and the peer's Random Number after the association
      has been established.
    
    In RFC2960, section 5.2.4, we're eventually hitting Action B:
    
      B) In this case, both sides may be attempting to start an
         association at about the same time but the peer endpoint
         started its INIT after responding to the local endpoint's
         INIT. Thus it may have picked a new Verification Tag not
         being aware of the previous Tag it had sent this endpoint.
         The endpoint should stay in or enter the ESTABLISHED
         state but it MUST update its peer's Verification Tag from
         the State Cookie, stop any init or cookie timers that may
         running and send a COOKIE ACK.
    
    In other words, the handling of the Random parameter is the
    same as behavior for the Verification Tag as described in
    Action B of section 5.2.4.
    
    Looking at the code, we exactly hit the sctp_sf_do_dupcook_b()
    case which triggers an SCTP_CMD_UPDATE_ASSOC command to the
    side effect interpreter, and in fact it properly copies over
    peer_{random, hmacs, chunks} parameters from the newly created
    association to update the existing one.
    
    Also, the old asoc_shared_key is being released and based on
    the new params, sctp_auth_asoc_init_active_key() updated.
    However, the issue observed in this case is that the previous
    asoc->peer.auth_capable was 0, and has *not* been updated, so
    that instead of creating a new secret, we're doing an early
    return from the function sctp_auth_asoc_init_active_key()
    leaving asoc->asoc_shared_key as NULL. However, we now have to
    authenticate chunks from the updated chunk list (e.g. COOKIE-ACK).
    
    That in fact causes the server side when responding with ...
    
      <------------------ AUTH; COOKIE-ACK -----------------
    
    ... to trigger a NULL pointer dereference, since in
    sctp_packet_transmit(), it discovers that an AUTH chunk is
    being queued for xmit, and thus it calls sctp_auth_calculate_hmac().
    
    Since the asoc->active_key_id is still inherited from the
    endpoint, and the same as encoded into the chunk, it uses
    asoc->asoc_shared_key, which is still NULL, as an asoc_key
    and dereferences it in ...
    
      crypto_hash_setkey(desc.tfm, &asoc_key->data[0], asoc_key->len)
    
    ... causing an oops. All this happens because sctp_make_cookie_ack()
    called with the *new* association has the peer.auth_capable=1
    and therefore marks the chunk with auth=1 after checking
    sctp_auth_send_cid(), but it is *actually* sent later on over
    the then *updated* association's transport that didn't initialize
    its shared key due to peer.auth_capable=0. Since control chunks
    in that case are not sent by the temporary association which
    are scheduled for deletion, they are issued for xmit via
    SCTP_CMD_REPLY in the interpreter with the context of the
    *updated* association. peer.auth_capable was 0 in the updated
    association (which went from COOKIE_WAIT into ESTABLISHED state),
    since all previous processing that performed sctp_process_init()
    was being done on temporary associations, that we eventually
    throw away each time.
    
    The correct fix is to update to the new peer.auth_capable
    value as well in the collision case via sctp_assoc_update(),
    so that in case the collision migrated from 0 -> 1,
    sctp_auth_asoc_init_active_key() can properly recalculate
    the secret. This therefore fixes the observed server panic.
    
    Fixes: 730fc3d ("[SCTP]: Implete SCTP-AUTH parameter processing")
    Reported-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Tested-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
    Cc: Vlad Yasevich <vyasevich@gmail.com>
    Acked-by: Vlad Yasevich <vyasevich@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    borkmann authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    0fd6471 View commit details
    Browse the repository at this point in the history
  7. macvlan: Initialize vlan_features to turn on offload support.

    [ Upstream commit 081e83a ]
    
    Macvlan devices do not initialize vlan_features.  As a result,
    any vlan devices configured on top of macvlans perform very poorly.
    Initialize vlan_features based on the vlan features of the lower-level
    device.
    
    Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Vlad Yasevich authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    e2a2802 View commit details
    Browse the repository at this point in the history
  8. net: Correctly set segment mac_len in skb_segment().

    [ Upstream commit fcdfe3a ]
    
    When performing segmentation, the mac_len value is copied right
    out of the original skb.  However, this value is not always set correctly
    (like when the packet is VLAN-tagged) and we'll end up copying a bad
    value.
    
    One way to demonstrate this is to configure a VM which tags
    packets internally and turn off VLAN acceleration on the forwarding
    bridge port.  The packets show up corrupt like this:
    16:18:24.985548 52:54:00:ab:be:25 > 52:54:00:26:ce:a3, ethertype 802.1Q
    (0x8100), length 1518: vlan 100, p 0, ethertype 0x05e0,
            0x0000:  8cdb 1c7c 8cdb 0064 4006 b59d 0a00 6402 ...|...d@.....d.
            0x0010:  0a00 6401 9e0d b441 0a5e 64ec 0330 14fa ..d....A.^d..0..
            0x0020:  29e3 01c9 f871 0000 0101 080a 000a e833)....q.........3
            0x0030:  000f 8c75 6e65 7470 6572 6600 6e65 7470 ...unetperf.netp
            0x0040:  6572 6600 6e65 7470 6572 6600 6e65 7470 erf.netperf.netp
            0x0050:  6572 6600 6e65 7470 6572 6600 6e65 7470 erf.netperf.netp
            0x0060:  6572 6600 6e65 7470 6572 6600 6e65 7470 erf.netperf.netp
            ...
    
    This also leads to awful throughput as GSO packets are dropped and
    cause retransmissions.
    
    The solution is to set the mac_len using the values already available
    in then new skb.  We've already adjusted all of the header offset, so we
    might as well correctly figure out the mac_len using skb_reset_mac_len().
    After this change, packets are segmented correctly and performance
    is restored.
    
    CC: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Vlad Yasevich authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    80db167 View commit details
    Browse the repository at this point in the history
  9. iovec: make sure the caller actually wants anything in memcpy_fromiov…

    …ecend
    
    [ Upstream commit 06ebb06 ]
    
    Check for cases when the caller requests 0 bytes instead of running off
    and dereferencing potentially invalid iovecs.
    
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    sashalevin authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    8fbbef0 View commit details
    Browse the repository at this point in the history
  10. sctp: fix possible seqlock seadlock in sctp_packet_transmit()

    [ Upstream commit 757efd3 ]
    
    Dave reported following splat, caused by improper use of
    IP_INC_STATS_BH() in process context.
    
    BUG: using __this_cpu_add() in preemptible [00000000] code: trinity-c117/14551
    caller is __this_cpu_preempt_check+0x13/0x20
    CPU: 3 PID: 14551 Comm: trinity-c117 Not tainted 3.16.0+ #33
     ffffffff9ec898f0 0000000047ea7e23 ffff88022d32f7f0 ffffffff9e7ee207
     0000000000000003 ffff88022d32f818 ffffffff9e397eaa ffff88023ee70b40
     ffff88022d32f970 ffff8801c026d580 ffff88022d32f828 ffffffff9e397ee3
    Call Trace:
     [<ffffffff9e7ee207>] dump_stack+0x4e/0x7a
     [<ffffffff9e397eaa>] check_preemption_disabled+0xfa/0x100
     [<ffffffff9e397ee3>] __this_cpu_preempt_check+0x13/0x20
     [<ffffffffc0839872>] sctp_packet_transmit+0x692/0x710 [sctp]
     [<ffffffffc082a7f2>] sctp_outq_flush+0x2a2/0xc30 [sctp]
     [<ffffffff9e0d985c>] ? mark_held_locks+0x7c/0xb0
     [<ffffffff9e7f8c6d>] ? _raw_spin_unlock_irqrestore+0x5d/0x80
     [<ffffffffc082b99a>] sctp_outq_uncork+0x1a/0x20 [sctp]
     [<ffffffffc081e112>] sctp_cmd_interpreter.isra.23+0x1142/0x13f0 [sctp]
     [<ffffffffc081c86b>] sctp_do_sm+0xdb/0x330 [sctp]
     [<ffffffff9e0b8f1b>] ? preempt_count_sub+0xab/0x100
     [<ffffffffc083b350>] ? sctp_cname+0x70/0x70 [sctp]
     [<ffffffffc08389ca>] sctp_primitive_ASSOCIATE+0x3a/0x50 [sctp]
     [<ffffffffc083358f>] sctp_sendmsg+0x88f/0xe30 [sctp]
     [<ffffffff9e0d673a>] ? lock_release_holdtime.part.28+0x9a/0x160
     [<ffffffff9e0d62ce>] ? put_lock_stats.isra.27+0xe/0x30
     [<ffffffff9e73b624>] inet_sendmsg+0x104/0x220
     [<ffffffff9e73b525>] ? inet_sendmsg+0x5/0x220
     [<ffffffff9e68ac4e>] sock_sendmsg+0x9e/0xe0
     [<ffffffff9e1c0c09>] ? might_fault+0xb9/0xc0
     [<ffffffff9e1c0bae>] ? might_fault+0x5e/0xc0
     [<ffffffff9e68b234>] SYSC_sendto+0x124/0x1c0
     [<ffffffff9e0136b0>] ? syscall_trace_enter+0x250/0x330
     [<ffffffff9e68c3ce>] SyS_sendto+0xe/0x10
     [<ffffffff9e7f9be4>] tracesys+0xdd/0xe2
    
    This is a followup of commits f1d8cba ("inet: fix possible
    seqlock deadlocks") and 7f88c6b ("ipv6: fix possible seqlock
    deadlock in ip6_finish_output2")
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Reported-by: Dave Jones <davej@redhat.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Acked-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>
    Eric Dumazet authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    5c19acc View commit details
    Browse the repository at this point in the history
  11. sparc64: Fix argument sign extension for compat_sys_futex().

    [ Upstream commit aa3449e ]
    
    Only the second argument, 'op', is signed.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    davem330 authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    0da9685 View commit details
    Browse the repository at this point in the history
  12. sparc64: Make itc_sync_lock raw

    [ Upstream commit 49b6c01 ]
    
    One more place where we must not be able
    to be preempted or to be interrupted in RT.
    
    Always actually disable interrupts during
    synchronization cycle.
    
    Signed-off-by: Kirill Tkhai <tkhai@yandex.ru>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    tkhai authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    4fdf73f View commit details
    Browse the repository at this point in the history
  13. sparc64: Handle 32-bit tasks properly in compute_effective_address().

    [ Upstream commit d037d16 ]
    
    If we have a 32-bit task we must chop off the top 32-bits of the
    64-bit value just as the cpu would.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    davem330 authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    d2671e6 View commit details
    Browse the repository at this point in the history
  14. sparc64: Fix top-level fault handling bugs.

    [ Upstream commit 70ffc6e ]
    
    Make get_user_insn() able to cope with huge PMDs.
    
    Next, make do_fault_siginfo() more robust when get_user_insn() can't
    actually fetch the instruction.  In particular, use the MMU announced
    fault address when that happens, instead of calling
    compute_effective_address() and computing garbage.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    davem330 authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    86982cf View commit details
    Browse the repository at this point in the history
  15. sparc64: Don't bark so loudly about 32-bit tasks generating 64-bit fa…

    …ult addresses.
    
    [ Upstream commit e5c460f ]
    
    This was found using Dave Jone's trinity tool.
    
    When a user process which is 32-bit performs a load or a store, the
    cpu chops off the top 32-bits of the effective address before
    translating it.
    
    This is because we run 32-bit tasks with the PSTATE_AM (address
    masking) bit set.
    
    We can't run the kernel with that bit set, so when the kernel accesses
    userspace no address masking occurs.
    
    Since a 32-bit process will have no mappings in that region we will
    properly fault, so we don't try to handle this using access_ok(),
    which can safely just be a NOP on sparc64.
    
    Real faults from 32-bit processes should never generate such addresses
    so a bug check was added long ago, and it barks in the logs if this
    happens.
    
    But it also barks when a kernel user access causes this condition, and
    that _can_ happen.  For example, if a pointer passed into a system call
    is "0xfffffffc" and the kernel access 4 bytes offset from that pointer.
    
    Just handle such faults normally via the exception entries.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    davem330 authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    0de4921 View commit details
    Browse the repository at this point in the history
  16. sparc64: Fix huge TSB mapping on pre-UltraSPARC-III cpus.

    [ Upstream commit b18eb2d ]
    
    Access to the TSB hash tables during TLB misses requires that there be
    an atomic 128-bit quad load available so that we fetch a matching TAG
    and DATA field at the same time.
    
    On cpus prior to UltraSPARC-III only virtual address based quad loads
    are available.  UltraSPARC-III and later provide physical address
    based variants which are easier to use.
    
    When we only have virtual address based quad loads available this
    means that we have to lock the TSB into the TLB at a fixed virtual
    address on each cpu when it runs that process.  We can't just access
    the PAGE_OFFSET based aliased mapping of these TSBs because we cannot
    take a recursive TLB miss inside of the TLB miss handler without
    risking running out of hardware trap levels (some trap combinations
    can be deep, such as those generated by register window spill and fill
    traps).
    
    Without huge pages it's working perfectly fine, but when the huge TSB
    got added another chunk of fixed virtual address space was not
    allocated for this second TSB mapping.
    
    So we were mapping both the 8K and 4MB TSBs to the same exact virtual
    address, causing multiple TLB matches which gives undefined behavior.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    davem330 authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    fdd8801 View commit details
    Browse the repository at this point in the history
  17. sparc64: Add membar to Niagara2 memcpy code.

    [ Upstream commit 5aa4ecf ]
    
    This is the prevent previous stores from overlapping the block stores
    done by the memcpy loop.
    
    Based upon a glibc patch by Jose E. Marchesi
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    davem330 authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    8e8955a View commit details
    Browse the repository at this point in the history
  18. sparc64: Do not insert non-valid PTEs into the TSB hash table.

    [ Upstream commit 18f3813 ]
    
    The assumption was that update_mmu_cache() (and the equivalent for PMDs) would
    only be called when the PTE being installed will be accessible by the user.
    
    This is not true for code paths originating from remove_migration_pte().
    
    There are dire consequences for placing a non-valid PTE into the TSB.  The TLB
    miss frramework assumes thatwhen a TSB entry matches we can just load it into
    the TLB and return from the TLB miss trap.
    
    So if a non-valid PTE is in there, we will deadlock taking the TLB miss over
    and over, never satisfying the miss.
    
    Just exit early from update_mmu_cache() and friends in this situation.
    
    Based upon a report and patch from Christopher Alexander Tobias Schulze.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    davem330 authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    afa9b04 View commit details
    Browse the repository at this point in the history
  19. sparc64: Guard against flushing openfirmware mappings.

    [ Upstream commit 4ca9a23 ]
    
    Based almost entirely upon a patch by Christopher Alexander Tobias
    Schulze.
    
    In commit db64fe0 ("mm: rewrite vmap
    layer") lazy VMAP tlb flushing was added to the vmalloc layer.  This
    causes problems on sparc64.
    
    Sparc64 has two VMAP mapped regions and they are not contiguous with
    eachother.  First we have the malloc mapping area, then another
    unrelated region, then the vmalloc region.
    
    This "another unrelated region" is where the firmware is mapped.
    
    If the lazy TLB flushing logic in the vmalloc code triggers after
    we've had both a module unload and a vfree or similar, it will pass an
    address range that goes from somewhere inside the malloc region to
    somewhere inside the vmalloc region, and thus covering the
    openfirmware area entirely.
    
    The sparc64 kernel learns about openfirmware's dynamic mappings in
    this region early in the boot, and then services TLB misses in this
    area.  But openfirmware has some locked TLB entries which are not
    mentioned in those dynamic mappings and we should thus not disturb
    them.
    
    These huge lazy TLB flush ranges causes those openfirmware locked TLB
    entries to be removed, resulting in all kinds of problems including
    hard hangs and crashes during reboot/reset.
    
    Besides causing problems like this, such huge TLB flush ranges are
    also incredibly inefficient.  A plea has been made with the author of
    the VMAP lazy TLB flushing code, but for now we'll put a safety guard
    into our flush_tlb_kernel_range() implementation.
    
    Since the implementation has become non-trivial, stop defining it as a
    macro and instead make it a function in a C source file.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    davem330 authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    d7bcdfe View commit details
    Browse the repository at this point in the history
  20. bbc-i2c: Fix BBC I2C envctrl on SunBlade 2000

    [ Upstream commit 5cdceab ]
    
    Fix regression in bbc i2c temperature and fan control on some Sun systems
    that causes the driver to refuse to load due to the bbc_i2c_bussel resource not
    being present on the (second) i2c bus where the temperature sensors and fan
    control are located. (The check for the number of resources was removed when
    the driver was ported to a pure OF driver in mid 2008.)
    
    Signed-off-by: Christopher Alexander Tobias Schulze <cat.schulze@alice-dsl.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    catschulze authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    7554c49 View commit details
    Browse the repository at this point in the history
  21. sunsab: Fix detection of BREAK on sunsab serial console

    [ Upstream commit fe41823 ]
    
    Fix detection of BREAK on sunsab serial console: BREAK detection was only
    performed when there were also serial characters received simultaneously.
    To handle all BREAKs correctly, the check for BREAK and the corresponding
    call to uart_handle_break() must also be done if count == 0, therefore
    duplicate this code fragment and pull it out of the loop over the received
    characters.
    
    Patch applies to 3.16-rc6.
    
    Signed-off-by: Christopher Alexander Tobias Schulze <cat.schulze@alice-dsl.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    catschulze authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    a46e945 View commit details
    Browse the repository at this point in the history
  22. sparc64: ldc_connect() should not return EINVAL when handshake is in …

    …progress.
    
    [ Upstream commit 4ec1b01 ]
    
    The LDC handshake could have been asynchronously triggered
    after ldc_bind() enables the ldc_rx() receive interrupt-handler
    (and thus intercepts incoming control packets)
    and before vio_port_up() calls ldc_connect(). If that is the case,
    ldc_connect() should return 0 and let the state-machine
    progress.
    
    Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
    Acked-by: Karl Volz <karl.volz@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    sowminiv authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    29fa649 View commit details
    Browse the repository at this point in the history
  23. arch/sparc/math-emu/math_32.c: drop stray break operator

    [ Upstream commit 093758e ]
    
    This commit is a guesswork, but it seems to make sense to drop this
    break, as otherwise the following line is never executed and becomes
    dead code. And that following line actually saves the result of
    local calculation by the pointer given in function argument. So the
    proposed change makes sense if this code in the whole makes sense (but I
    am unable to analyze it in the whole).
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=81641
    Reported-by: David Binderman <dcb314@hotmail.com>
    Signed-off-by: Andrey Utkin <andrey.krieger.utkin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Andrey Utkin authored and gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    0ace429 View commit details
    Browse the repository at this point in the history
  24. Linux 3.4.103

    gregkh committed Aug 14, 2014
    Configuration menu
    Copy the full SHA
    9f089cf View commit details
    Browse the repository at this point in the history

Commits on Aug 27, 2014

  1. Merge tag 'v3.4.99' of git://git.kernel.org/pub/scm/linux/kernel/git/…

    …stable/linux-stable into odroidxu-3.4.y
    
    This is the 3.4.99 stable release
    mdrjr committed Aug 27, 2014
    Configuration menu
    Copy the full SHA
    7111646 View commit details
    Browse the repository at this point in the history
  2. Merge tag 'v3.4.100' of git://git.kernel.org/pub/scm/linux/kernel/git…

    …/stable/linux-stable into odroidxu-3.4.y
    
    This is the 3.4.100 stable release
    mdrjr committed Aug 27, 2014
    Configuration menu
    Copy the full SHA
    87077f4 View commit details
    Browse the repository at this point in the history
  3. Merge tag 'v3.4.101' of git://git.kernel.org/pub/scm/linux/kernel/git…

    …/stable/linux-stable into odroidxu-3.4.y
    
    This is the 3.4.101 stable release
    mdrjr committed Aug 27, 2014
    Configuration menu
    Copy the full SHA
    7ebcf75 View commit details
    Browse the repository at this point in the history
  4. Merge tag 'v3.4.102' of git://git.kernel.org/pub/scm/linux/kernel/git…

    …/stable/linux-stable into odroidxu-3.4.y
    
    This is the 3.4.102 stable release
    mdrjr committed Aug 27, 2014
    Configuration menu
    Copy the full SHA
    fe00ea6 View commit details
    Browse the repository at this point in the history
  5. Merge tag 'v3.4.103' of git://git.kernel.org/pub/scm/linux/kernel/git…

    …/stable/linux-stable into odroidxu-3.4.y
    
    This is the 3.4.103 stable release
    mdrjr committed Aug 27, 2014
    Configuration menu
    Copy the full SHA
    7699466 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    4a4236f View commit details
    Browse the repository at this point in the history

Commits on Aug 29, 2014

  1. Configuration menu
    Copy the full SHA
    5e87789 View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2014

  1. defconfig: odroidxu: enable fhandle and xts

    Change-Id: I485924e3f667b28b3db2d2a37160d855f2ff1573
    mdrjr committed Sep 15, 2014
    Configuration menu
    Copy the full SHA
    488ed00 View commit details
    Browse the repository at this point in the history

Commits on Sep 25, 2014

  1. stable_kernel_rules: Add pointer to netdev-FAQ for network patches

    commit b76fc28 upstream.
    
    Stable_kernel_rules should point submitters of network stable patches to the
    netdev_FAQ.txt as requests for stable network patches should go to netdev
    first.
    
    Signed-off-by: Dave Chiluk <chiluk@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    Dave Chiluk authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    b402b72 View commit details
    Browse the repository at this point in the history
  2. ASoC: pxa-ssp: drop SNDRV_PCM_FMTBIT_S24_LE

    commit 9301503 upstream.
    
    This mode is unsupported, as the DMA controller can't do zero-padding
    of samples.
    
    Signed-off-by: Daniel Mack <zonque@gmail.com>
    Reported-by: Johannes Stezenbach <js@sig21.net>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    zonque authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    c27d3b5 View commit details
    Browse the repository at this point in the history
  3. ibmveth: Fix endian issues with rx_no_buffer statistic

    commit cbd5228 upstream.
    
    Hidden away in the last 8 bytes of the buffer_list page is a solitary
    statistic. It needs to be byte swapped or else ethtool -S will
    produce numbers that terrify the user.
    
    Since we do this in multiple places, create a helper function with a
    comment explaining what is going on.
    
    Signed-off-by: Anton Blanchard <anton@samba.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    antonblanchard authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    9220628 View commit details
    Browse the repository at this point in the history
  4. HID: fix a couple of off-by-ones

    commit 4ab2578 upstream.
    
    There are a few very theoretical off-by-one bugs in report descriptor size
    checking when performing a pre-parsing fixup. Fix those.
    
    Reported-by: Ben Hawkes <hawkes@google.com>
    Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    [lizf: Backported to 3.4: adjust context]
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    Jiri Kosina authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    dab2f9b View commit details
    Browse the repository at this point in the history
  5. HID: logitech: perform bounds checking on device_id early enough

    commit ad3e14d upstream.
    
    device_index is a char type and the size of paired_dj_deivces is 7
    elements, therefore proper bounds checking has to be applied to
    device_index before it is used.
    
    We are currently performing the bounds checking in
    logi_dj_recv_add_djhid_device(), which is too late, as malicious device
    could send REPORT_TYPE_NOTIF_DEVICE_UNPAIRED early enough and trigger the
    problem in one of the report forwarding functions called from
    logi_dj_raw_event().
    
    Fix this by performing the check at the earliest possible ocasion in
    logi_dj_raw_event().
    
    Reported-by: Ben Hawkes <hawkes@google.com>
    Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    Jiri Kosina authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    c945ed6 View commit details
    Browse the repository at this point in the history
  6. isofs: Fix unbounded recursion when processing relocated directories

    commit 410dd3c upstream.
    
    We did not check relocated directory in any way when processing Rock
    Ridge 'CL' tag. Thus a corrupted isofs image can possibly have a CL
    entry pointing to another CL entry leading to possibly unbounded
    recursion in kernel code and thus stack overflow or deadlocks (if there
    is a loop created from CL entries).
    
    Fix the problem by not allowing CL entry to point to a directory entry
    with CL entry (such use makes no good sense anyway) and by checking
    whether CL entry doesn't point to itself.
    
    Reported-by: Chris Evans <cevans@google.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    jankara authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    5ccd3e2 View commit details
    Browse the repository at this point in the history
  7. MIPS: OCTEON: make get_system_type() thread-safe

    commit 6083086 upstream.
    
    get_system_type() is not thread-safe on OCTEON. It uses static data,
    also more dangerous issue is that it's calling cvmx_fuse_read_byte()
    every time without any synchronization. Currently it's possible to get
    processes stuck looping forever in kernel simply by launching multiple
    readers of /proc/cpuinfo:
    
    	(while true; do cat /proc/cpuinfo > /dev/null; done) &
    	(while true; do cat /proc/cpuinfo > /dev/null; done) &
    	...
    
    Fix by initializing the system type string only once during the early
    boot.
    
    Signed-off-by: Aaro Koskinen <aaro.koskinen@nsn.com>
    Reviewed-by: Markos Chandras <markos.chandras@imgtec.com>
    Patchwork: http://patchwork.linux-mips.org/patch/7437/
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    [lizf: Backport to 3.x: adjust context]
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    Aaro Koskinen authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    33df36f View commit details
    Browse the repository at this point in the history
  8. kvm: iommu: fix the third parameter of kvm_iommu_put_pages (CVE-2014-…

    …3601)
    
    commit 350b8bd upstream.
    
    The third parameter of kvm_iommu_put_pages is wrong,
    It should be 'gfn - slot->base_gfn'.
    
    By making gfn very large, malicious guest or userspace can cause kvm to
    go to this error path, and subsequently to pass a huge value as size.
    Alternatively if gfn is small, then pages would be pinned but never
    unpinned, causing host memory leak and local DOS.
    
    Passing a reasonable but large value could be the most dangerous case,
    because it would unpin a page that should have stayed pinned, and thus
    allow the device to DMA into arbitrary memory.  However, this cannot
    happen because of the condition that can trigger the error:
    
    - out of memory (where you can't allocate even a single page)
      should not be possible for the attacker to trigger
    
    - when exceeding the iommu's address space, guest pages after gfn
      will also exceed the iommu's address space, and inside
      kvm_iommu_put_pages() the iommu_iova_to_phys() will fail.  The
      page thus would not be unpinned at all.
    
    Reported-by: Jack Morgenstein <jackm@mellanox.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    mstsirkin authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    f0634a3 View commit details
    Browse the repository at this point in the history
  9. pata_scc: propagate return value of scc_wait_after_reset

    commit 4dc7c76 upstream.
    
    scc_bus_softreset not necessarily should return zero.
    Propagate the error code.
    
    Signed-off-by: Arjun Sreedharan <arjun024@gmail.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    arjun024 authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    db83744 View commit details
    Browse the repository at this point in the history
  10. iommu/amd: Fix cleanup_domain for mass device removal

    commit 9b29d3c upstream.
    
    When multiple devices are detached in __detach_device, they
    are also removed from the domains dev_list. This makes it
    unsafe to use list_for_each_entry_safe, as the next pointer
    might also not be in the list anymore after __detach_device
    returns. So just repeatedly remove the first element of the
    list until it is empty.
    
    Tested-by: Marti Raudsepp <marti@juffo.org>
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    joergroedel authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    77e5657 View commit details
    Browse the repository at this point in the history
  11. md/raid6: avoid data corruption during recovery of double-degraded RAID6

    commit 9c4bdf6 upstream.
    
    During recovery of a double-degraded RAID6 it is possible for
    some blocks not to be recovered properly, leading to corruption.
    
    If a write happens to one block in a stripe that would be written to a
    missing device, and at the same time that stripe is recovering data
    to the other missing device, then that recovered data may not be written.
    
    This patch skips, in the double-degraded case, an optimisation that is
    only safe for single-degraded arrays.
    
    Bug was introduced in 2.6.32 and fix is suitable for any kernel since
    then.  In an older kernel with separate handle_stripe5() and
    handle_stripe6() functions the patch must change handle_stripe6().
    
    Fixes: 6c0069c
    Cc: Yuri Tikhonov <yur@emcraft.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Reported-by: "Manibalan P" <pmanibalan@amiindia.co.in>
    Tested-by: "Manibalan P" <pmanibalan@amiindia.co.in>
    Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1090423
    Signed-off-by: NeilBrown <neilb@suse.de>
    Acked-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    neilbrown authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    a0e5b9d View commit details
    Browse the repository at this point in the history
  12. CIFS: Fix wrong directory attributes after rename

    commit b46799a upstream.
    
    When we requests rename we also need to update attributes
    of both source and target parent directories. Not doing it
    causes generic/309 xfstest to fail on SMB2 mounts. Fix this
    by marking these directories for force revalidating.
    
    Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    piastry authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    d06e4b0 View commit details
    Browse the repository at this point in the history
  13. ALSA: hda/realtek - Avoid setting wrong COEF on ALC269 & co

    commit f3ee07d upstream.
    
    ALC269 & co have many vendor-specific setups with COEF verbs.
    However, some verbs seem specific to some codec versions and they
    result in the codec stalling.  Typically, such a case can be avoided
    by checking the return value from reading a COEF.  If the return value
    is -1, it implies that the COEF is invalid, thus it shouldn't be
    written.
    
    This patch adds the invalid COEF checks in appropriate places
    accessing ALC269 and its variants.  The patch actually fixes the
    resume problem on Acer AO725 laptop.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=52181
    Tested-by: Francesco Muzio <muziofg@gmail.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    tiwai authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    483320c View commit details
    Browse the repository at this point in the history
  14. xtensa: replace IOCTL code definitions with constants

    commit f61bf8e upstream.
    
    This fixes userspace code that builds on other architectures but fails
    on xtensa due to references to structures that other architectures don't
    refer to. E.g. this fixes the following issue with python-2.7.8:
    
      python-2.7.8/Modules/termios.c:861:25: error: invalid application
         of 'sizeof' to incomplete type 'struct serial_multiport_struct'
         {"TIOCSERGETMULTI", TIOCSERGETMULTI},
      python-2.7.8/Modules/termios.c:870:25: error: invalid application
         of 'sizeof' to incomplete type 'struct serial_multiport_struct'
         {"TIOCSERSETMULTI", TIOCSERSETMULTI},
      python-2.7.8/Modules/termios.c:900:24: error: invalid application
         of 'sizeof' to incomplete type 'struct tty_struct'
         {"TIOCTTYGSTRUCT", TIOCTTYGSTRUCT},
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    [lizf: Backported to 3.4: adjust filename]
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    jcmvbkbc authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    2297927 View commit details
    Browse the repository at this point in the history
  15. xtensa: fix address checks in dma_{alloc,free}_coherent

    commit 1ca4946 upstream.
    
    Virtual address is translated to the XCHAL_KSEG_CACHED region in the
    dma_free_coherent, but is checked to be in the 0...XCHAL_KSEG_SIZE
    range.
    
    Change check for end of the range from 'addr >= X' to 'addr > X - 1' to
    handle the case of X == 0.
    
    Replace 'if (C) BUG();' construct with 'BUG_ON(C);'.
    
    Signed-off-by: Alan Douglas <adouglas@cadence.com>
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    Alan Douglas authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    fb2ae73 View commit details
    Browse the repository at this point in the history
  16. xtensa: fix TLBTEMP_BASE_2 region handling in fast_second_level_miss

    commit 7128039 upstream.
    
    Current definition of TLBTEMP_BASE_2 is always 32K above the
    TLBTEMP_BASE_1, whereas fast_second_level_miss handler for the TLBTEMP
    region analyzes virtual address bit (PAGE_SHIFT + DCACHE_ALIAS_ORDER)
    to determine TLBTEMP region where the fault happened. The size of the
    TLBTEMP region is also checked incorrectly: not 64K, but twice data
    cache way size (whicht may as well be less than the instruction cache
    way size).
    
    Fix TLBTEMP_BASE_2 to be TLBTEMP_BASE_1 + data cache way size.
    Provide TLBTEMP_SIZE that is a greater of doubled data cache way size or
    the instruction cache way size, and use it to determine if the second
    level TLB miss occured in the TLBTEMP region.
    
    Practical occurence of page faults in the TLBTEMP area is extremely
    rare, this code can be tested by deletion of all w[di]tlb instructions
    in the tlbtemp_mapping region.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    jcmvbkbc authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    bcf20fd View commit details
    Browse the repository at this point in the history
  17. xtensa: fix a6 and a7 handling in fast_syscall_xtensa

    commit d1b6ba8 upstream.
    
    Remove restoring a6 on some return paths and instead modify and restore
    it in a single place, using symbolic name.
    Correctly restore a7 from PT_AREG7 in case of illegal a6 value.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    jcmvbkbc authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    f40751b View commit details
    Browse the repository at this point in the history
  18. staging: et131x: Fix errors caused by phydev->addr accesses before in…

    …itialisation
    
    commit ec0a38b upstream.
    
    Fix two reported bugs, caused by et131x_adapter->phydev->addr being accessed
    before it is initialised, by:
    
    - letting et131x_mii_write() take a phydev address, instead of using the one
      stored in adapter by default. This is so et131x_mdio_write() can use it's own
      addr value.
    - removing implementation of et131x_mdio_reset(), as it's not needed.
    - moving a call to et131x_disable_phy_coma() in et131x_pci_setup(), which uses
      phydev->addr, until after the mdiobus has been registered.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=80751
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=77121
    Signed-off-by: Mark Einon <mark.einon@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [lizf: Backported to 3.4:
    - adjust context
    - update more update more et131x_mii_write() calls in 
      et1310_phy_access_mii_bit() and et131x_xcvr_init()]
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    einonm authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    c2aa9b7 View commit details
    Browse the repository at this point in the history
  19. USB: option: add VIA Telecom CDS7 chipset device id

    commit d773027 upstream.
    
    This VIA Telecom baseband processor is used is used by by u-blox in both the
    FW2770 and FW2760 products and may be used in others as well.
    
    This patch has been tested on both of these modem versions.
    
    Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    btashton authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    78aea3a View commit details
    Browse the repository at this point in the history
  20. USB: ftdi_sio: add Basic Micro ATOM Nano USB2Serial PID

    commit 6552cc7 upstream.
    
    Add device id for Basic Micro ATOM Nano USB2Serial adapters.
    
    Reported-by: Nicolas Alt <n.alt@mytum.de>
    Tested-by: Nicolas Alt <n.alt@mytum.de>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    jhovold authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    262548e View commit details
    Browse the repository at this point in the history
  21. USB: serial: pl2303: add device id for ztek device

    commit 91fcb1c upstream.
    
    This adds a new device id to the pl2303 driver for the ZTEK device.
    
    Reported-by: Mike Chu <Mike-Chu@prolific.com.tw>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    gregkh authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    68e9929 View commit details
    Browse the repository at this point in the history
  22. USB: ftdi_sio: Added PID for new ekey device

    commit 646907f upstream.
    
    Added support to the ftdi_sio driver for ekey Converter USB which
    uses an FT232BM chip.
    
    Signed-off-by: Jaša Bartelj <jasa.bartelj@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    [lizf: Backported to 3.4: adjust context]
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    bartmanus authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    d232e2c View commit details
    Browse the repository at this point in the history
  23. xhci: Treat not finding the event_seg on COMP_STOP the same as COMP_S…

    …TOP_INVAL
    
    commit 9a54886 upstream.
    
    When using a Renesas uPD720231 chipset usb-3 uas to sata bridge with a 120G
    Crucial M500 ssd, model string: Crucial_ CT120M500SSD1, together with a
    the integrated Intel xhci controller on a Haswell laptop:
    
    00:14.0 USB controller [0c03]: Intel Corporation 8 Series USB xHCI HC [8086:9c31] (rev 04)
    
    The following error gets logged to dmesg:
    
    xhci error: Transfer event TRB DMA ptr not part of current TD
    
    Treating COMP_STOP the same as COMP_STOP_INVAL when no event_seg gets found
    fixes this.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    jwrdegoede authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    42494f0 View commit details
    Browse the repository at this point in the history
  24. usb: xhci: amd chipset also needs short TX quirk

    commit 2597fe9 upstream.
    
    AMD xHC also needs short tx quirk after tested on most of chipset
    generations. That's because there is the same incorrect behavior like
    Fresco Logic host. Please see below message with on USB webcam
    attached on xHC host:
    
    [  139.262944] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [  139.266934] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [  139.270913] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [  139.274937] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [  139.278914] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [  139.282936] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [  139.286915] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [  139.290938] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [  139.294913] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [  139.298917] xhci_hcd 0000:00:10.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    
    Reported-by: Arindam Nath <arindam.nath@amd.com>
    Tested-by: Shriraj-Rai P <shriraj-rai.p@amd.com>
    Signed-off-by: Huang Rui <ray.huang@amd.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [lizf: Backported to 3.4: adjust context]
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    huangrui authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    1d37c3e View commit details
    Browse the repository at this point in the history
  25. USB: whiteheat: Added bounds checking for bulk command response

    commit 6817ae2 upstream.
    
    This patch fixes a potential security issue in the whiteheat USB driver
    which might allow a local attacker to cause kernel memory corrpution. This
    is due to an unchecked memcpy into a fixed size buffer (of 64 bytes). On
    EHCI and XHCI busses it's possible to craft responses greater than 64
    bytes leading a buffer overflow.
    
    Signed-off-by: James Forshaw <forshaw@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [lizf: Backported to 3.4: adjust context]
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    James Forshaw authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    2f2c704 View commit details
    Browse the repository at this point in the history
  26. HID: logitech-dj: prevent false errors to be shown

    commit 5abfe85 upstream.
    
    Commit "HID: logitech: perform bounds checking on device_id early
    enough" unfortunately leaks some errors to dmesg which are not real
    ones:
    - if the report is not a DJ one, then there is not point in checking
      the device_id
    - the receiver (index 0) can also receive some notifications which
      can be safely ignored given the current implementation
    
    Move out the test regarding the report_id and also discards
    printing errors when the receiver got notified.
    
    Fixes: ad3e14d
    
    Reported-and-tested-by: Markus Trippelsdorf <markus@trippelsdorf.de>
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    bentiss authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    86d165e View commit details
    Browse the repository at this point in the history
  27. USB: sisusb: add device id for Magic Control USB video

    commit 5b6b80a upstream.
    
    I have a j5 create (JUA210) USB 2 video device and adding it device id
    to SIS USB video gets it to work.
    
    Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    shemminger authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    818ee41 View commit details
    Browse the repository at this point in the history
  28. NFSv4: Fix problems with close in the presence of a delegation

    commit aee7af3 upstream.
    
    In the presence of delegations, we can no longer assume that the
    state->n_rdwr, state->n_rdonly, state->n_wronly reflect the open
    stateid share mode, and so we need to calculate the initial value
    for calldata->arg.fmode using the state->flags.
    
    Reported-by: James Drews <drews@engr.wisc.edu>
    Fixes: 88069f7 (NFSv41: Fix a potential state leakage when...)
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    [lizf: Backport to 3.4: adjust context]
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    trondmypd authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    0bfb000 View commit details
    Browse the repository at this point in the history
  29. HID: magicmouse: sanity check report size in raw_event() callback

    commit c54def7 upstream.
    
    The report passed to us from transport driver could potentially be
    arbitrarily large, therefore we better sanity-check it so that
    magicmouse_emit_touch() gets only valid values of raw_id.
    
    Reported-by: Steven Vittitoe <scvitti@google.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    Jiri Kosina authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    e115f02 View commit details
    Browse the repository at this point in the history
  30. HID: picolcd: sanity check report size in raw_event() callback

    commit 844817e upstream.
    
    The report passed to us from transport driver could potentially be
    arbitrarily large, therefore we better sanity-check it so that raw_data
    that we hold in picolcd_pending structure are always kept within proper
    bounds.
    
    Reported-by: Steven Vittitoe <scvitti@google.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    [lizf: Backported to 3.4: adjust filename]
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    Jiri Kosina authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    e78c127 View commit details
    Browse the repository at this point in the history
  31. ARM: 8128/1: abort: don't clear the exclusive monitors

    commit 8586831 upstream.
    
    The ARMv6 and ARMv7 early abort handlers clear the exclusive monitors
    upon entry to the kernel, but this is redundant:
    
      - We clear the monitors on every exception return since commit
        200b812 ("Clear the exclusive monitor when returning from an
        exception"), so this is not necessary to ensure the monitors are
        cleared before returning from a fault handler.
    
      - Any dummy STREX will target a temporary scratch area in memory, and
        may succeed or fail without corrupting useful data. Its status value
        will not be used.
    
      - Any other STREX in the kernel must be preceded by an LDREX, which
        will initialise the monitors consistently and will not depend on the
        earlier state of the monitors.
    
    Therefore we have no reason to care about the initial state of the
    exclusive monitors when a data abort is taken, and clearing the monitors
    prior to exception return (as we already do) is sufficient.
    
    This patch removes the redundant clearing of the exclusive monitors from
    the early abort handlers.
    
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Acked-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    Mark Rutland authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    5624bb3 View commit details
    Browse the repository at this point in the history
  32. ARM: 8129/1: errata: work around Cortex-A15 erratum 830321 using dumm…

    …y strex
    
    commit 2c32c65 upstream.
    
    On revisions of Cortex-A15 prior to r3p3, a CLREX instruction at PL1 may
    falsely trigger a watchpoint exception, leading to potential data aborts
    during exception return and/or livelock.
    
    This patch resolves the issue in the following ways:
    
      - Replacing our uses of CLREX with a dummy STREX sequence instead (as
        we did for v6 CPUs).
    
      - Removing the clrex code from v7_exit_coherency_flush and derivatives,
        since this only exists as a minor performance improvement when
        non-cached exclusives are in use (Linux doesn't use these).
    
    Benchmarking on a variety of ARM cores revealed no measurable
    performance difference with this change applied, so the change is
    performed unconditionally and no new Kconfig entry is added.
    
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    [lizf: Backported to 3.4:
     - Drop changes to arch/arm/include/asm/cacheflush.h and
       arch/arm/mach-exynos/mcpm-exynos.c]
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    Mark Rutland authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    2f3e285 View commit details
    Browse the repository at this point in the history
  33. USB: serial: fix potential stack buffer overflow

    commit d979e9f upstream.
    
    Make sure to verify the maximum number of endpoints per type to avoid
    writing beyond the end of a stack-allocated array.
    
    The current usb-serial implementation is limited to eight ports per
    interface but failed to verify that the number of endpoints of a certain
    type reported by a device did not exceed this limit.
    
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [lizf: Backported to 3.4: adjust context]
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    jhovold authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    62148f7 View commit details
    Browse the repository at this point in the history
  34. USB: serial: fix potential heap buffer overflow

    commit 5654699 upstream.
    
    Make sure to verify the number of ports requested by subdriver to avoid
    writing beyond the end of fixed-size array in interface data.
    
    The current usb-serial implementation is limited to eight ports per
    interface but failed to verify that the number of ports requested by a
    subdriver (which could have been determined from device descriptors) did
    not exceed this limit.
    
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [lizf: Backported to 3.4: s/ddev/\&interface->dev/]
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    jhovold authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    c804743 View commit details
    Browse the repository at this point in the history
  35. MIPS: perf: Fix build error caused by unused counters_per_cpu_to_total()

    commit 6c37c95 upstream.
    
    cc1: warnings being treated as errors
    arch/mips/kernel/perf_event_mipsxx.c:166: error: 'counters_per_cpu_to_total' defined but not used
    make[2]: *** [arch/mips/kernel/perf_event_mipsxx.o] Error 1
    make[2]: *** Waiting for unfinished jobs....
    
    It was first introduced by 8209156 [MIPS:
    perf: Add support for 64-bit perf counters.] in 3.2.
    
    Signed-off-by: Florian Fainelli <florian@openwrt.org>
    Cc: linux-mips@linux-mips.org
    Cc: david.daney@cavium.com
    Patchwork: https://patchwork.linux-mips.org/patch/3357/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    ffainelli authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    9a8fa93 View commit details
    Browse the repository at this point in the history
  36. MIPS: Fix accessing to per-cpu data when flushing the cache

    commit ff52205 upstream.
    
    This fixes the following issue
    
    BUG: using smp_processor_id() in preemptible [00000000] code: kjournald/1761
    caller is blast_dcache32+0x30/0x254
    Call Trace:
    [<8047f02c>] dump_stack+0x8/0x34
    [<802e7e40>] debug_smp_processor_id+0xe0/0xf0
    [<80114d94>] blast_dcache32+0x30/0x254
    [<80118484>] r4k_dma_cache_wback_inv+0x200/0x288
    [<80110ff0>] mips_dma_map_sg+0x108/0x180
    [<80355098>] ide_dma_prepare+0xf0/0x1b8
    [<8034eaa4>] do_rw_taskfile+0x1e8/0x33c
    [<8035951c>] ide_do_rw_disk+0x298/0x3e4
    [<8034a3c4>] do_ide_request+0x2e0/0x704
    [<802bb0dc>] __blk_run_queue+0x44/0x64
    [<802be000>] queue_unplugged.isra.36+0x1c/0x54
    [<802beb94>] blk_flush_plug_list+0x18c/0x24c
    [<802bec6c>] blk_finish_plug+0x18/0x48
    [<8026554c>] journal_commit_transaction+0x3b8/0x151c
    [<80269648>] kjournald+0xec/0x238
    [<8014ac00>] kthread+0xb8/0xc0
    [<8010268c>] ret_from_kernel_thread+0x14/0x1c
    
    Caches in most systems are identical - but not always, so we can't avoid
    the use of smp_call_function() by just looking at the boot CPU's data,
    have to fiddle with preemption instead.
    
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Cc: Markos Chandras <markos.chandras@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/5835
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    ralfbaechle authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    c1bc007 View commit details
    Browse the repository at this point in the history
  37. openrisc: add missing header inclusion

    commit 160d837 upstream.
    
    Prevents build issue with updated toolchain
    
    Reported-by: Jack Thomasson <jkt@moonlitsw.com>
    Tested-by: Christian Svensson <blue@cmd.nu>
    Signed-off-by: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
    Signed-off-by: Jonas Bonn <jonas@southpole.se>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    skristiansson authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    ab22539 View commit details
    Browse the repository at this point in the history
  38. slab/mempolicy: always use local policy from interrupt context

    commit e7b691b upstream.
    
    slab_node() could access current->mempolicy from interrupt context.
    However there's a race condition during exit where the mempolicy
    is first freed and then the pointer zeroed.
    
    Using this from interrupts seems bogus anyways. The interrupt
    will interrupt a random process and therefore get a random
    mempolicy. Many times, this will be idle's, which noone can change.
    
    Just disable this here and always use local for slab
    from interrupts. I also cleaned up the callers of slab_node a bit
    which always passed the same argument.
    
    I believe the original mempolicy code did that in fact,
    so it's likely a regression.
    
    v2: send version with correct logic
    v3: simplify. fix typo.
    Reported-by: Arun Sharma <asharma@fb.com>
    Cc: penberg@kernel.org
    Cc: cl@linux.com
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    [tdmackey@twitter.com: Rework control flow based on feedback from
    cl@linux.com, fix logic, and cleanup current task_struct reference]
    Acked-by: David Rientjes <rientjes@google.com>
    Acked-by: Christoph Lameter <cl@linux.com>
    Acked-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Signed-off-by: David Mackey <tdmackey@twitter.com>
    Signed-off-by: Pekka Enberg <penberg@kernel.org>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    Andi Kleen authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    69db2d4 View commit details
    Browse the repository at this point in the history
  39. 8250_pci: fix warnings in backport of Broadcom TruManage support

    commit 7400ce7 (v3.4.92-76-g7400ce7ee959)
    was a backport of commit ebebd49 upstream
    ("8250/16?50: Add support for Broadcom TruManage redirected serial port")
    
    However, in the context of 3.4.x kernels, the pci setup code was
    expecting a struct uart_port and not a struct uart_8250_port, leading to
    the following concerning warnings:
    
    drivers/tty/serial/8250/8250_pci.c: In function ‘pci_brcm_trumanage_setup’:
    drivers/tty/serial/8250/8250_pci.c:1086:2: warning: passing argument 3 of ‘pci_default_setup’ from incompatible pointer type [enabled by default]
      int ret = pci_default_setup(priv, board, port, idx);
      ^
    drivers/tty/serial/8250/8250_pci.c:1036:1: note: expected ‘struct uart_port *’ but argument is of type ‘struct uart_8250_port *’
     pci_default_setup(struct serial_private *priv,
     ^
    drivers/tty/serial/8250/8250_pci.c: At top level:
    drivers/tty/serial/8250/8250_pci.c:1746:3: warning: initialization from incompatible pointer type [enabled by default]
       .setup  = pci_brcm_trumanage_setup,
       ^
    drivers/tty/serial/8250/8250_pci.c:1746:3: warning: (near initialization for ‘pci_serial_quirks[56].setup’) [enabled by default]
    
    I'd also expect the initialization to not function correctly, and
    perhaps dereference random garbage due to this.  Since the uart_port
    is a field within the uart_8250_port, the adaptation to fix these
    warnings is a straightforward removal of a layer of indirection.
    
    Cc: Stephen Hurd <shurd@broadcom.com>
    Cc: Michael Chan <mchan@broadcom.com>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    Cc: Rui Xiang <rui.xiang@huawei.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    paulgortmaker authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    82a938a View commit details
    Browse the repository at this point in the history
  40. unicore32: select generic atomic64_t support

    commit 82e54a6 upstream.
    
    It's required for the core fs/namespace.c and many other basic features.
    
    Signed-off-by: Guan Xuetao <gxt@mprc.pku.edu.cn>
    Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    Fengguang Wu authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    62cdcce View commit details
    Browse the repository at this point in the history
  41. UniCore32-bugfix: Remove definitions in asm/bug.h to solve difference…

    … between native and cross compiler
    
    commit 10e1e99 upstream.
    
    For kernel/bound.c being compiled by native compiler, it will generate following errors in gcc 4.4.3:
      CC      kernel/bounds.s
    In file included from include/linux/bug.h:4,
                     from include/linux/page-flags.h:9,
                     from kernel/bounds.c:9:
    arch/unicore32/include/asm/bug.h:22: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
    arch/unicore32/include/asm/bug.h:23: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
    
    So, we moved definitions in asm/bug.h to arch/unicore32/kernel/setup.h to solve the problem.
    
    Signed-off-by: Guan Xuetao <gxt@mprc.pku.edu.cn>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    gxt authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    4e36063 View commit details
    Browse the repository at this point in the history
  42. UniCore32-bugfix: fix mismatch return value of __xchg_bad_pointer

    commit 195d457 upstream.
    
    When disintegrate system.h, I left an error in asm/cmpxchg.h, which
    will result in following error:
    
    arch/unicore32/include/asm/cmpxchg.h: In function '__xchg':
    arch/unicore32/include/asm/cmpxchg.h:38: error: void value not ignored as it ought to be
    
    Signed-off-by: Guan Xuetao <gxt@mprc.pku.edu.cn>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    gxt authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    92a6e26 View commit details
    Browse the repository at this point in the history
  43. alpha: Fix fall-out from disintegrating asm/system.h

    commit d1b5153 upstream.
    
    Commit ec22120 ("Disintegrate asm/system.h for Alpha") removed
    asm/system.h however arch/alpha/oprofile/common.c requires definitions
    that were shifted from asm/system.h to asm/special_insns.h.  Include
    that.
    
    Signed-off-by: Michael Cree <mcree@orcon.net.nz>
    Acked-by: Matt Turner <mattst88@gmail.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    Michael Cree authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    f79bb94 View commit details
    Browse the repository at this point in the history
  44. ext2: Fix fs corruption in ext2_get_xip_mem()

    commit 7ba3ec5 upstream.
    
    Commit 8e3dffc "Ext2: mark inode dirty after the function
    dquot_free_block_nodirty is called" unveiled a bug in __ext2_get_block()
    called from ext2_get_xip_mem(). That function called ext2_get_block()
    mistakenly asking it to map 0 blocks while 1 was intended. Before the
    above mentioned commit things worked out fine by luck but after that commit
    we started returning that we allocated 0 blocks while we in fact
    allocated 1 block and thus allocation was looping until all blocks in
    the filesystem were exhausted.
    
    Fix the problem by properly asking for one block and also add assertion
    in ext2_get_blocks() to catch similar problems.
    
    Reported-and-tested-by: Andiry Xu <andiry.xu@gmail.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Cc: Wang Nan <wangnan0@huawei.com>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    jankara authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    3a8f613 View commit details
    Browse the repository at this point in the history
  45. alpha: add io{read,write}{16,32}be functions

    commit 25534eb upstream.
    
    These functions are used in some PCI drivers with big-endian
    MMIO space.
    
    Admittedly it is almost certain that no one this side of the
    Moon would use such a card in an Alpha but it does get us
    closer to being able to build allyesconfig or allmodconfig,
    and it enables the Debian default generic config to build.
    
    Tested-by: Raúl Porcel <armin76@gentoo.org>
    Signed-off-by: Michael Cree <mcree@orcon.net.nz>
    Signed-off-by: Matt Turner <mattst88@gmail.com>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    Michael Cree authored and lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    618dea4 View commit details
    Browse the repository at this point in the history
  46. Linux 3.4.104

    lizf-os committed Sep 25, 2014
    Configuration menu
    Copy the full SHA
    bb4a05a View commit details
    Browse the repository at this point in the history

Commits on Oct 22, 2014

  1. Merge tag 'v3.4.104' of git://git.kernel.org/pub/scm/linux/kernel/git…

    …/stable/linux-stable into odroidxu-3.4.y
    
    This is the 3.4.104 stable release
    mdrjr committed Oct 22, 2014
    Configuration menu
    Copy the full SHA
    41199e4 View commit details
    Browse the repository at this point in the history

Commits on Nov 5, 2014

  1. defconfig: enable multitouch support

    Change-Id: Ie1650caf070d44a15b57e974ae752bc0107354e3
    mdrjr committed Nov 5, 2014
    Configuration menu
    Copy the full SHA
    713fe56 View commit details
    Browse the repository at this point in the history
  2. hid: add IRMTouch support

    Change-Id: I7c92739336e2d935b9202cb567f5bfb8b1ad4da1
    mdrjr committed Nov 5, 2014
    Configuration menu
    Copy the full SHA
    9f6364d View commit details
    Browse the repository at this point in the history

Commits on Nov 18, 2014

  1. defconfig: enabling dvb usb adapters

    Change-Id: I8dab2a55b7ddce97be0f3fc08b37cfa036e89cc9
    mdrjr committed Nov 18, 2014
    Configuration menu
    Copy the full SHA
    f9ff5aa View commit details
    Browse the repository at this point in the history

Commits on Jan 15, 2015

  1. RTL2832U driver from http://forums.openpli.org/topic/20899-rtl2832u-c…

    …hipset-support-proposal/page-6?p=329670#entry329670 - adds support for multiple frontends not supported in kernel 3.4. Disable old rtl28xx driver and enable the new rtl2832
    root committed Jan 15, 2015
    Configuration menu
    Copy the full SHA
    2199d1d View commit details
    Browse the repository at this point in the history

Commits on Jan 16, 2015

  1. Merge pull request #74 from catalinii/odroidxu-3.4.y

    RTL2832U driver containing new tuners (fc0011, fc0012, fc0013, r820t, e4000, ... ) not available in the 3.4 kernel
    mdrjr committed Jan 16, 2015
    Configuration menu
    Copy the full SHA
    1295533 View commit details
    Browse the repository at this point in the history

Commits on Nov 30, 2015

  1. Fix a typo in odroidxu_ubuntu_defconfig

    'is not set' has a different behavior
    cottsay committed Nov 30, 2015
    Configuration menu
    Copy the full SHA
    375e2ce View commit details
    Browse the repository at this point in the history

Commits on Dec 3, 2015

  1. Merge pull request #148 from cottsay/odroidxu-3.4.y

    Fix a typo in odroidxu_ubuntu_defconfig
    mdrjr committed Dec 3, 2015
    Configuration menu
    Copy the full SHA
    fe53380 View commit details
    Browse the repository at this point in the history