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

Merge latest 4.9.y stable patches (4.9.43) #11

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

Commits on Jul 27, 2017

  1. Input: i8042 - fix crash at boot time

    commit 340d394 upstream.
    
    The driver checks port->exists twice in i8042_interrupt(), first when
    trying to assign temporary "serio" variable, and second time when deciding
    whether it should call serio_interrupt(). The value of port->exists may
    change between the 2 checks, and we may end up calling serio_interrupt()
    with a NULL pointer:
    
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000050
    IP: [<ffffffff8150feaf>] _spin_lock_irqsave+0x1f/0x40
    PGD 0
    Oops: 0002 [Freescale#1] SMP
    last sysfs file:
    CPU 0
    Modules linked in:
    
    Pid: 1, comm: swapper Not tainted 2.6.32-358.el6.x86_64 Freescale#1 QEMU Standard PC (i440FX + PIIX, 1996)
    RIP: 0010:[<ffffffff8150feaf>]  [<ffffffff8150feaf>] _spin_lock_irqsave+0x1f/0x40
    RSP: 0018:ffff880028203cc0  EFLAGS: 00010082
    RAX: 0000000000010000 RBX: 0000000000000000 RCX: 0000000000000000
    RDX: 0000000000000282 RSI: 0000000000000098 RDI: 0000000000000050
    RBP: ffff880028203cc0 R08: ffff88013e79c000 R09: ffff880028203ee0
    R10: 0000000000000298 R11: 0000000000000282 R12: 0000000000000050
    R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000098
    FS:  0000000000000000(0000) GS:ffff880028200000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
    CR2: 0000000000000050 CR3: 0000000001a85000 CR4: 00000000001407f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Process swapper (pid: 1, threadinfo ffff88013e79c000, task ffff88013e79b500)
    Stack:
    ffff880028203d00 ffffffff813de186 ffffffffffffff02 0000000000000000
    <d> 0000000000000000 0000000000000000 0000000000000000 0000000000000098
    <d> ffff880028203d70 ffffffff813e0162 ffff880028203d20 ffffffff8103b8ac
    Call Trace:
    <IRQ>
     [<ffffffff813de186>] serio_interrupt+0x36/0xa0
    [<ffffffff813e0162>] i8042_interrupt+0x132/0x3a0
    [<ffffffff8103b8ac>] ? kvm_clock_read+0x1c/0x20
    [<ffffffff8103b8b9>] ? kvm_clock_get_cycles+0x9/0x10
    [<ffffffff810e1640>] handle_IRQ_event+0x60/0x170
    [<ffffffff8103b154>] ? kvm_guest_apic_eoi_write+0x44/0x50
    [<ffffffff810e3d8e>] handle_edge_irq+0xde/0x180
    [<ffffffff8100de89>] handle_irq+0x49/0xa0
    [<ffffffff81516c8c>] do_IRQ+0x6c/0xf0
    [<ffffffff8100b9d3>] ret_from_intr+0x0/0x11
    [<ffffffff81076f63>] ? __do_softirq+0x73/0x1e0
    [<ffffffff8109b75b>] ? hrtimer_interrupt+0x14b/0x260
    [<ffffffff8100c1cc>] ? call_softirq+0x1c/0x30
    [<ffffffff8100de05>] ? do_softirq+0x65/0xa0
    [<ffffffff81076d95>] ? irq_exit+0x85/0x90
    [<ffffffff81516d80>] ? smp_apic_timer_interrupt+0x70/0x9b
    [<ffffffff8100bb93>] ? apic_timer_interrupt+0x13/0x20
    
    To avoid the issue let's change the second check to test whether serio is
    NULL or not.
    
    Also, let's take i8042_lock in i8042_start() and i8042_stop() instead of
    trying to be overly smart and using memory barriers.
    
    Signed-off-by: Chen Hong <[email protected]>
    [dtor: take lock in i8042_start()/i8042_stop()]
    Signed-off-by: Dmitry Torokhov <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    kedi1982 authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    5b50e0e View commit details
    Browse the repository at this point in the history
  2. IB/iser: Fix connection teardown race condition

    commit c8c16d3 upstream.
    
    Under heavy iser target(scst) start/stop stress during login/logout
    on iser intitiator side happened trace call provided below.
    
    The function iscsi_iser_slave_alloc iser_conn pointer could be NULL,
    due to the fact that function iscsi_iser_conn_stop can be called before
    and free iser connection. Let's protect that flow by introducing global mutex.
    
    BUG: unable to handle kernel paging request at 0000000000001018
    IP: [<ffffffffc0426f7e>] iscsi_iser_slave_alloc+0x1e/0x50 [ib_iser]
    Call Trace:
    ? scsi_alloc_sdev+0x242/0x300
    scsi_probe_and_add_lun+0x9e1/0xea0
    ? kfree_const+0x21/0x30
    ? kobject_set_name_vargs+0x76/0x90
    ? __pm_runtime_resume+0x5b/0x70
    __scsi_scan_target+0xf6/0x250
    scsi_scan_target+0xea/0x100
    iscsi_user_scan_session.part.13+0x101/0x130 [scsi_transport_iscsi]
    ? iscsi_user_scan_session.part.13+0x130/0x130 [scsi_transport_iscsi]
    iscsi_user_scan_session+0x1e/0x30 [scsi_transport_iscsi]
    device_for_each_child+0x50/0x90
    iscsi_user_scan+0x44/0x60 [scsi_transport_iscsi]
    store_scan+0xa8/0x100
    ? common_file_perm+0x5d/0x1c0
    dev_attr_store+0x18/0x30
    sysfs_kf_write+0x37/0x40
    kernfs_fop_write+0x12c/0x1c0
    __vfs_write+0x18/0x40
    vfs_write+0xb5/0x1a0
    SyS_write+0x55/0xc0
    
    Fixes: 318d311 ("iser: Accept arbitrary sg lists mapping if the device supports it")
    Signed-off-by: Vladimir Neyelov <[email protected]>
    Signed-off-by: Leon Romanovsky <[email protected]>
    Reviewed-by: Sagi Grimberg <[email protected]>
    Signed-off-by: Doug Ledford <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    VladimirNey authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    5c2717f View commit details
    Browse the repository at this point in the history
  3. IB/core: Namespace is mandatory input for address resolution

    commit bebb2a4 upstream.
    
    In function addr_resolve() the namespace is a required input parameter
    and not an output. It is passed later for searching the routing table
    and device addresses. Also, it shouldn't be copied back to the caller.
    
    Fixes: 565edd1 ('IB/addr: Pass network namespace as a parameter')
    Signed-off-by: Moni Shoua <[email protected]>
    Signed-off-by: Leon Romanovsky <[email protected]>
    Signed-off-by: Doug Ledford <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    monis410 authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    dd0d650 View commit details
    Browse the repository at this point in the history
  4. sunrpc: use constant time memory comparison for mac

    commit 15a8b93 upstream.
    
    Otherwise, we enable a MAC forgery via timing attack.
    
    Signed-off-by: Jason A. Donenfeld <[email protected]>
    Cc: "J. Bruce Fields" <[email protected]>
    Cc: Jeff Layton <[email protected]>
    Cc: Trond Myklebust <[email protected]>
    Cc: Anna Schumaker <[email protected]>
    Cc: [email protected]
    Signed-off-by: Anna Schumaker <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    zx2c4 authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    4dd0aa9 View commit details
    Browse the repository at this point in the history
  5. NFS: only invalidate dentrys that are clearly invalid.

    commit cc89684 upstream.
    
    Since commit bafc9b7 ("vfs: More precise tests in d_invalidate")
    in v3.18, a return of '0' from ->d_revalidate() will cause the dentry
    to be invalidated even if it has filesystems mounted on or it or on a
    descendant.  The mounted filesystem is unmounted.
    
    This means we need to be careful not to return 0 unless the directory
    referred to truly is invalid.  So -ESTALE or -ENOENT should invalidate
    the directory.  Other errors such a -EPERM or -ERESTARTSYS should be
    returned from ->d_revalidate() so they are propagated to the caller.
    
    A particular problem can be demonstrated by:
    
    1/ mount an NFS filesystem using NFSv3 on /mnt
    2/ mount any other filesystem on /mnt/foo
    3/ ls /mnt/foo
    4/ turn off network, or otherwise make the server unable to respond
    5/ ls /mnt/foo &
    6/ cat /proc/$!/stack # note that nfs_lookup_revalidate is in the call stack
    7/ kill -9 $! # this results in -ERESTARTSYS being returned
    8/ observe that /mnt/foo has been unmounted.
    
    This patch changes nfs_lookup_revalidate() to only treat
      -ESTALE from nfs_lookup_verify_inode() and
      -ESTALE or -ENOENT from ->lookup()
    as indicating an invalid inode.  Other errors are returned.
    
    Also nfs_check_inode_attributes() is changed to return -ESTALE rather
    than -EIO.  This is consistent with the error returned in similar
    circumstances from nfs_update_inode().
    
    As this bug allows any user to unmount a filesystem mounted on an NFS
    filesystem, this fix is suitable for stable kernels.
    
    Fixes: bafc9b7 ("vfs: More precise tests in d_invalidate")
    Signed-off-by: NeilBrown <[email protected]>
    Signed-off-by: Anna Schumaker <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    NeilBrown authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    9ebfb4f View commit details
    Browse the repository at this point in the history
  6. udf: Fix deadlock between writeback and udf_setsize()

    commit f2e9535 upstream.
    
    udf_setsize() called truncate_setsize() with i_data_sem held. Thus
    truncate_pagecache() called from truncate_setsize() could lock a page
    under i_data_sem which can deadlock as page lock ranks below
    i_data_sem - e. g. writeback can hold page lock and try to acquire
    i_data_sem to map a block.
    
    Fix the problem by moving truncate_setsize() calls from under
    i_data_sem. It is safe for us to change i_size without holding
    i_data_sem as all the places that depend on i_size being stable already
    hold inode_lock.
    
    Fixes: 7e49b6f
    Signed-off-by: Jan Kara <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jankara authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    fa67ac1 View commit details
    Browse the repository at this point in the history
  7. target: Fix COMPARE_AND_WRITE caw_sem leak during se_cmd quiesce

    commit 1d6ef27 upstream.
    
    This patch addresses a COMPARE_AND_WRITE se_device->caw_sem leak,
    that would be triggered during normal se_cmd shutdown or abort
    via __transport_wait_for_tasks().
    
    This would occur because target_complete_cmd() would catch this
    early and do complete_all(&cmd->t_transport_stop_comp), but since
    target_complete_ok_work() or target_complete_failure_work() are
    never called to invoke se_cmd->transport_complete_callback(),
    the COMPARE_AND_WRITE specific callbacks never release caw_sem.
    
    To address this special case, go ahead and release caw_sem
    directly from target_complete_cmd().
    
    (Remove '&& success' from check, to release caw_sem regardless
     of scsi_status - nab)
    
    Signed-off-by: Jiang Yi <[email protected]>
    Signed-off-by: Nicholas Bellinger <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jiangyilism authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    672145d View commit details
    Browse the repository at this point in the history
  8. iser-target: Avoid isert_conn->cm_id dereference in isert_login_recv_…

    …done
    
    commit fce50a2 upstream.
    
    This patch fixes a NULL pointer dereference in isert_login_recv_done()
    of isert_conn->cm_id due to isert_cma_handler() -> isert_connect_error()
    resetting isert_conn->cm_id = NULL during a failed login attempt.
    
    As per Sagi, we will always see the completion of all recv wrs posted
    on the qp (given that we assigned a ->done handler), this is a FLUSH
    error completion, we just don't get to verify that because we deref
    NULL before.
    
    The issue here, was the assumption that dereferencing the connection
    cm_id is always safe, which is not true since:
    
        commit 4a579da
        Author: Sagi Grimberg <[email protected]>
        Date:   Sun Mar 29 15:52:04 2015 +0300
    
             iser-target: Fix possible deadlock in RDMA_CM connection error
    
    As I see it, we have a direct reference to the isert_device from
    isert_conn which is the one-liner fix that we actually need like
    we do in isert_rdma_read_done() and isert_rdma_write_done().
    
    Reported-by: Andrea Righi <[email protected]>
    Tested-by: Andrea Righi <[email protected]>
    Reviewed-by: Sagi Grimberg <[email protected]>
    Signed-off-by: Nicholas Bellinger <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Nicholas Bellinger authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    d5f9cd0 View commit details
    Browse the repository at this point in the history
  9. perf annotate: Fix broken arrow at row 0 connecting jmp instruction t…

    …o its target
    
    commit 80f6258 upstream.
    
    When the jump instruction is displayed at the row 0 in annotate view,
    the arrow is broken. An example:
    
     16.86 │   ┌──je     82
      0.01 │      movsd  (%rsp),%xmm0
           │      movsd  0x8(%rsp),%xmm4
           │      movsd  0x8(%rsp),%xmm1
           │      movsd  (%rsp),%xmm3
           │      divsd  %xmm4,%xmm0
           │      divsd  %xmm3,%xmm1
           │      movsd  (%rsp),%xmm2
           │      addsd  %xmm1,%xmm0
           │      addsd  %xmm2,%xmm0
           │      movsd  %xmm0,(%rsp)
           │82:   sub    $0x1,%ebx
     83.03 │    ↑ jne    38
           │      add    $0x10,%rsp
           │      xor    %eax,%eax
           │      pop    %rbx
           │    ← retq
    
    The patch increments the row number before checking with 0.
    
    Signed-off-by: Yao Jin <[email protected]>
    Tested-by: Arnaldo Carvalho de Melo <[email protected]>
    Cc: Alexander Shishkin <[email protected]>
    Cc: Andi Kleen <[email protected]>
    Cc: Jiri Olsa <[email protected]>
    Cc: Kan Liang <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Fixes: 944e1ab ("perf ui browser: Add method to draw up/down arrow line")
    Link: http://lkml.kernel.org/r/[email protected]
    Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Jin Yao authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    6141541 View commit details
    Browse the repository at this point in the history
  10. Revert "perf/core: Drop kernel samples even though :u is specified"

    commit 6a8a75f upstream.
    
    This reverts commit cc1582c.
    
    This commit introduced a regression that broke rr-project, which uses sampling
    events to receive a signal on overflow (but does not care about the contents
    of the sample). These signals are critical to the correct operation of rr.
    
    There's been some back and forth about how to fix it - but to not keep
    applications in limbo queue up a revert.
    
    Reported-by: Kyle Huey <[email protected]>
    Acked-by: Kyle Huey <[email protected]>
    Acked-by: Peter Zijlstra <[email protected]>
    Cc: Jin Yao <[email protected]>
    Cc: Vince Weaver <[email protected]>
    Cc: Linus Torvalds <[email protected]>
    Cc: Will Deacon <[email protected]>
    Cc: Arnaldo Carvalho de Melo <[email protected]>
    Cc: Alexander Shishkin <[email protected]>
    Cc: Stephane Eranian <[email protected]>
    Cc: Namhyung Kim <[email protected]>
    Cc: Jiri Olsa <[email protected]>
    Link: http://lkml.kernel.org/r/20170628105600.GC5981@leverpostej
    Signed-off-by: Ingo Molnar <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Ingo Molnar authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    a76a032 View commit details
    Browse the repository at this point in the history
  11. staging: rtl8188eu: add TL-WN722N v2 support

    commit 5a1d4c5 upstream.
    
    Add support for USB Device TP-Link TL-WN722N v2.
    VendorID: 0x2357, ProductID: 0x010c
    
    Signed-off-by: Michael Gugino <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Michael Gugino authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    964a21a View commit details
    Browse the repository at this point in the history
  12. staging: comedi: ni_mio_common: fix AO timer off-by-one regression

    commit 15d5193 upstream.
    
    As reported by Éric Piel on the Comedi mailing list (see
    <https://groups.google.com/forum/#!topic/comedi_list/ueZiR7vTLOU/discussion>),
    the analog output asynchronous commands are running too fast with a
    period 50 ns shorter than it should be.  This affects all boards with AO
    command support that are supported by the "ni_pcimio", "ni_atmio", and
    "ni_mio_cs" drivers.
    
    This is a regression bug introduced by commit 080e679 ("staging:
    comedi: ni_mio_common: Cleans up/clarifies ni_ao_cmd"), specifically,
    this line in `ni_ao_cmd_set_update()`:
    
    		/* following line: N-1 per STC */
    		ni_stc_writel(dev, trigvar - 1, NISTC_AO_UI_LOADA_REG);
    
    The `trigvar` variable value comes from a call to `ni_ns_to_timer()`
    which converts a timer period in nanoseconds to a hardware divisor
    value. The function already reduces the divisor by 1 as required by the
    hardware, so the above line should not reduce it further by 1.  Fix it
    by replacing `trigvar` by `trigvar - 1` in the above line, and remove
    the misleading comment.
    
    Reported-by: Éric Piel <[email protected]>
    Fixes: 080e679 ("staging: comedi: ni_mio_common: Cleans up/clarifies ni_ao_cmd")
    Cc: Éric Piel <[email protected]>
    Cc: Spencer E. Olson <[email protected]>
    Signed-off-by: Ian Abbott <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ian-abbott authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    2bc5240 View commit details
    Browse the repository at this point in the history
  13. staging: sm750fb: avoid conflicting vesafb

    commit 740c433 upstream.
    
    If vesafb is enabled in the config then /dev/fb0 is created by vesa
    and this sm750 driver gets fb1, fb2. But we need to be fb0 and fb1 to
    effectively work with xorg.
    So if it has been alloted fb1, then try to remove the other fb0.
    
    In the previous send, why #ifdef is used was asked.
    https://lkml.org/lkml/2017/6/25/57
    
    Answered at: https://lkml.org/lkml/2017/6/25/69
    Also pasting here for reference.
    
    'Did a quick research into "why".
    The patch d8801e4 ("x86/PCI: Set IORESOURCE_ROM_SHADOW only for the
    default VGA device") has started setting IORESOURCE_ROM_SHADOW in flags
    for a default VGA device and that is being done only for x86.
    And so, we will need that #ifdef to check IORESOURCE_ROM_SHADOW as that
    needs to be checked only for a x86 and not for other arch.'
    
    Signed-off-by: Teddy Wang <[email protected]>
    Signed-off-by: Sudip Mukherjee <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    teddywlq authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    85643f6 View commit details
    Browse the repository at this point in the history
  14. staging: lustre: ko2iblnd: check copy_from_iter/copy_to_iter return code

    commit 566e1ce upstream.
    
    We now get a helpful warning for code that calls copy_{from,to}_iter
    without checking the return value, introduced by commit aa28de2
    ("iov_iter/hardening: move object size checks to inlined part").
    
    drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_send':
    drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1643:2: error: ignoring return value of 'copy_from_iter', declared with attribute warn_unused_result [-Werror=unused-result]
    drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_recv':
    drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1744:3: error: ignoring return value of 'copy_to_iter', declared with attribute warn_unused_result [-Werror=unused-result]
    
    In case we get short copies here, we may get incorrect behavior.
    I've added failure handling for both rx and tx now, returning
    -EFAULT as expected.
    
    Signed-off-by: Arnd Bergmann <[email protected]>
    Signed-off-by: James Simmons <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    arndb authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    d42f9c7 View commit details
    Browse the repository at this point in the history
  15. ceph: fix race in concurrent readdir

    commit 84583cf upstream.
    
    For a large directory, program needs to issue multiple readdir
    syscalls to get all dentries. When there are multiple programs
    read the directory concurrently. Following sequence of events
    can happen.
    
     - program calls readdir with pos = 2. ceph sends readdir request
       to mds. The reply contains N1 entries. ceph adds these N1 entries
       to readdir cache.
     - program calls readdir with pos = N1+2. The readdir is satisfied
       by the readdir cache, N2 entries are returned. (Other program
       calls readdir in the middle, which fills the cache)
     - program calls readdir with pos = N1+N2+2. ceph sends readdir
       request to mds. The reply contains N3 entries and it reaches
       directory end. ceph adds these N3 entries to the readdir cache
       and marks directory complete.
    
    The second readdir call does not update fi->readdir_cache_idx.
    ceph add the last N3 entries to wrong places.
    
    Signed-off-by: "Yan, Zheng" <[email protected]>
    Signed-off-by: Ilya Dryomov <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ukernel authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    acccf01 View commit details
    Browse the repository at this point in the history
  16. RDMA/core: Initialize port_num in qp_attr

    commit a62ab66 upstream.
    
    Initialize the port_num for iWARP in rdma_init_qp_attr.
    
    Fixes: 5ecce4c("Check port number supplied by user verbs cmds")
    Reviewed-by: Steve Wise <[email protected]>
    Signed-off-by: Mustafa Ismail <[email protected]>
    Tested-by: Mike Marciniszyn <[email protected]>
    Signed-off-by: Doug Ledford <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    mustafakismail authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    db29753 View commit details
    Browse the repository at this point in the history
  17. drm/mst: Fix error handling during MST sideband message reception

    commit 448421b upstream.
    
    Handle any error due to partial reads, timeouts etc. to avoid parsing
    uninitialized data subsequently. Also bail out if the parsing itself
    fails.
    
    Cc: Dave Airlie <[email protected]>
    Cc: Lyude <[email protected]>
    Cc: Daniel Vetter <[email protected]>
    Signed-off-by: Imre Deak <[email protected]>
    Reviewed-by: Lyude <[email protected]>
    Signed-off-by: Daniel Vetter <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ideak authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    bc3bd64 View commit details
    Browse the repository at this point in the history
  18. drm/mst: Avoid dereferencing a NULL mstb in drm_dp_mst_handle_up_req()

    commit 7f8b398 upstream.
    
    In case of an unknown broadcast message is sent mstb will remain unset,
    so check for this.
    
    Cc: Dave Airlie <[email protected]>
    Cc: Lyude <[email protected]>
    Cc: Daniel Vetter <[email protected]>
    Signed-off-by: Imre Deak <[email protected]>
    Reviewed-by: Lyude <[email protected]>
    Signed-off-by: Daniel Vetter <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ideak authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    48376e6 View commit details
    Browse the repository at this point in the history
  19. drm/mst: Avoid processing partially received up/down message transact…

    …ions
    
    commit 636c4c3 upstream.
    
    Currently we may process up/down message transactions containing
    uninitialized data. This can happen if there was an error during the
    reception of any message in the transaction, but we happened to receive
    the last message correctly with the end-of-message flag set.
    
    To avoid this abort the reception of the transaction when the first
    error is detected, rejecting any messages until a message with the
    start-of-message flag is received (which will start a new transaction).
    This is also what the DP 1.4 spec 2.11.8.2 calls for in this case.
    
    In addtion this also prevents receiving bogus transactions without the
    first message with the the start-of-message flag set.
    
    v2:
    - unchanged
    v3:
    - git add the part that actually skips messages after an error in
      drm_dp_sideband_msg_build()
    
    Cc: Dave Airlie <[email protected]>
    Cc: Lyude <[email protected]>
    Cc: Daniel Vetter <[email protected]>
    Signed-off-by: Imre Deak <[email protected]>
    Reviewed-by: Lyude <[email protected]>
    Signed-off-by: Daniel Vetter <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ideak authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    a440425 View commit details
    Browse the repository at this point in the history
  20. mlx5: Avoid that mlx5_ib_sg_to_klms() overflows the klms[] array

    commit 99975cd upstream.
    
    ib_map_mr_sg() can pass an SG-list to .map_mr_sg() that is larger
    than what fits into a single MR. .map_mr_sg() must not attempt to
    map more SG-list elements than what fits into a single MR.
    Hence make sure that mlx5_ib_sg_to_klms() does not write outside
    the MR klms[] array.
    
    Fixes: b005d31 ("mlx5: Add arbitrary sg list support")
    Signed-off-by: Bart Van Assche <[email protected]>
    Reviewed-by: Max Gurtovoy <[email protected]>
    Cc: Sagi Grimberg <[email protected]>
    Cc: Leon Romanovsky <[email protected]>
    Cc: Israel Rukshin <[email protected]>
    Acked-by: Leon Romanovsky <[email protected]>
    Reviewed-by: Sagi Grimberg <[email protected]>
    Signed-off-by: Doug Ledford <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Bart Van Assche authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    b33da55 View commit details
    Browse the repository at this point in the history
  21. hfsplus: Don't clear SGID when inheriting ACLs

    commit 8496946 upstream.
    
    When new directory 'DIR1' is created in a directory 'DIR0' with SGID bit
    set, DIR1 is expected to have SGID bit set (and owning group equal to
    the owning group of 'DIR0'). However when 'DIR0' also has some default
    ACLs that 'DIR1' inherits, setting these ACLs will result in SGID bit on
    'DIR1' to get cleared if user is not member of the owning group.
    
    Fix the problem by creating __hfsplus_set_posix_acl() function that does
    not call posix_acl_update_mode() and use it when inheriting ACLs. That
    prevents SGID bit clearing and the mode has been properly set by
    posix_acl_create() anyway.
    
    Fixes: 0739310
    Signed-off-by: Jan Kara <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jankara authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    5cf8443 View commit details
    Browse the repository at this point in the history
  22. ovl: fix random return value on mount

    commit 8fc646b upstream.
    
    On failure to prepare_creds(), mount fails with a random
    return value, as err was last set to an integer cast of
    a valid lower mnt pointer or set to 0 if inodes index feature
    is enabled.
    
    Reported-by: Dan Carpenter <[email protected]>
    Fixes: 3fe6e52 ("ovl: override creds with the ones from ...")
    Signed-off-by: Amir Goldstein <[email protected]>
    Signed-off-by: Miklos Szeredi <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    amir73il authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    97de6f3 View commit details
    Browse the repository at this point in the history
  23. acpi/nfit: Fix memory corruption/Unregister mce decoder on failure

    commit 7e700d2 upstream.
    
    nfit_init() calls nfit_mce_register() on module load.  When the module
    load fails the nfit mce decoder is not unregistered.  The module's
    memory is freed leaving the decoder chain referencing junk.  This will
    cause panics as future registrations will reference the free'd memory.
    
    Unregister the nfit mce decoder on module init failure.
    
    [v2]: register and then unregister mce handler to avoid losing mce events
    [v3]: also cleanup nfit workqueue
    
    Fixes: 6839a6d ("nfit: do an ARS scrub on hitting a latent media error")
    Cc: "Rafael J. Wysocki" <[email protected]>
    Cc: Len Brown <[email protected]>
    Cc: Vishal Verma <[email protected]>
    Cc: "Lee, Chun-Yi" <[email protected]>
    Cc: Linda Knippers <[email protected]>
    Cc: [email protected]
    Acked-by: Jeff Moyer <[email protected]>
    Signed-off-by: Prarit Bhargava <[email protected]>
    Reviewed-by: Vishal Verma <[email protected]>
    Signed-off-by: Dan Williams <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    prarit authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    6b50bca View commit details
    Browse the repository at this point in the history
  24. of: device: Export of_device_{get_modalias, uvent_modalias} to modules

    commit 7a3b7cd upstream.
    
    The ULPI bus can be built as a module, and it will soon be
    calling these functions when it supports probing devices from DT.
    Export them so they can be used by the ULPI module.
    
    Acked-by: Rob Herring <[email protected]>
    Cc: <[email protected]>
    Signed-off-by: Stephen Boyd <[email protected]>
    Signed-off-by: Peter Chen <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    bebarino authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    a18935b View commit details
    Browse the repository at this point in the history
  25. spmi: Include OF based modalias in device uevent

    commit d50daa2 upstream.
    
    Include the OF-based modalias in the uevent sent when registering SPMI
    devices, so that user space has a chance to autoload the kernel module
    for the device.
    
    Tested-by: Rob Clark <[email protected]>
    Reported-by: Rob Clark <[email protected]>
    Reviewed-by: Stephen Boyd <[email protected]>
    Signed-off-by: Bjorn Andersson <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    andersson authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    1c7e5ca View commit details
    Browse the repository at this point in the history
  26. reiserfs: Don't clear SGID when inheriting ACLs

    commit 6883cd7 upstream.
    
    When new directory 'DIR1' is created in a directory 'DIR0' with SGID bit
    set, DIR1 is expected to have SGID bit set (and owning group equal to
    the owning group of 'DIR0'). However when 'DIR0' also has some default
    ACLs that 'DIR1' inherits, setting these ACLs will result in SGID bit on
    'DIR1' to get cleared if user is not member of the owning group.
    
    Fix the problem by moving posix_acl_update_mode() out of
    __reiserfs_set_acl() into reiserfs_set_acl(). That way the function will
    not be called when inheriting ACLs which is what we want as it prevents
    SGID bit clearing and the mode has been properly set by
    posix_acl_create() anyway.
    
    Fixes: 0739310
    CC: [email protected]
    Signed-off-by: Jan Kara <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jankara authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    69fbb44 View commit details
    Browse the repository at this point in the history
  27. PM / Domains: defer dev_pm_domain_set() until genpd->attach_dev succe…

    …eds if present
    
    commit 975e83c upstream.
    
    If the genpd->attach_dev or genpd->power_on fails, genpd_dev_pm_attach
    may return -EPROBE_DEFER initially. However genpd_alloc_dev_data sets
    the PM domain for the device unconditionally.
    
    When subsequent attempts are made to call genpd_dev_pm_attach, it may
    return -EEXISTS checking dev->pm_domain without re-attempting to call
    attach_dev or power_on.
    
    platform_drv_probe then attempts to call drv->probe as the return value
    -EEXIST != -EPROBE_DEFER, which may end up in a situation where the
    device is accessed without it's power domain switched on.
    
    Fixes: f104e1e (PM / Domains: Re-order initialization of generic_pm_domain_data)
    Signed-off-by: Sudeep Holla <[email protected]>
    Acked-by: Ulf Hansson <[email protected]>
    Signed-off-by: Rafael J. Wysocki <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    sudeep-holla authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    7bd804a View commit details
    Browse the repository at this point in the history
  28. tracing: Fix kmemleak in instance_rmdir

    commit db9108e upstream.
    
    Hit the kmemleak when executing instance_rmdir, it forgot releasing
    mem of tracing_cpumask. With this fix, the warn does not appear any
    more.
    
    unreferenced object 0xffff93a8dfaa7c18 (size 8):
      comm "mkdir", pid 1436, jiffies 4294763622 (age 9134.308s)
      hex dump (first 8 bytes):
        ff ff ff ff ff ff ff ff                          ........
      backtrace:
        [<ffffffff88b6567a>] kmemleak_alloc+0x4a/0xa0
        [<ffffffff8861ea41>] __kmalloc_node+0xf1/0x280
        [<ffffffff88b505d3>] alloc_cpumask_var_node+0x23/0x30
        [<ffffffff88b5060e>] alloc_cpumask_var+0xe/0x10
        [<ffffffff88571ab0>] instance_mkdir+0x90/0x240
        [<ffffffff886e5100>] tracefs_syscall_mkdir+0x40/0x70
        [<ffffffff886565c9>] vfs_mkdir+0x109/0x1b0
        [<ffffffff8865b1d0>] SyS_mkdir+0xd0/0x100
        [<ffffffff88403857>] do_syscall_64+0x67/0x150
        [<ffffffff88b710e7>] return_from_SYSCALL_64+0x0/0x6a
        [<ffffffffffffffff>] 0xffffffffffffffff
    
    Link: http://lkml.kernel.org/r/[email protected]
    
    Fixes: ccfe9e4 ("tracing: Make tracing_cpumask available for all instances")
    Signed-off-by: Chunyu Hu <[email protected]>
    Signed-off-by: Steven Rostedt (VMware) <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Chunyu-Hu authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    919e481 View commit details
    Browse the repository at this point in the history
  29. alarmtimer: don't rate limit one-shot timers

    Commit ff86bf0 ("alarmtimer: Rate limit periodic intervals") sets a
    minimum bound on the alarm timer interval.  This minimum bound shouldn't
    be applied if the interval is 0.  Otherwise, one-shot timers will be
    converted into periodic ones.
    
    Fixes: ff86bf0 ("alarmtimer: Rate limit periodic intervals")
    Reported-by: Ben Fennema <[email protected]>
    Signed-off-by: Greg Hackmann <[email protected]>
    Cc: [email protected]
    Cc: John Stultz <[email protected]>
    Reviewed-by: Thomas Gleixner <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    greghackmann authored and gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    91af5f0 View commit details
    Browse the repository at this point in the history
  30. Linux 4.9.40

    gregkh committed Jul 27, 2017
    Configuration menu
    Copy the full SHA
    efcfbfb View commit details
    Browse the repository at this point in the history

Commits on Aug 7, 2017

  1. af_key: Add lock to key dump

    commit 89e357d upstream.
    
    A dump may come in the middle of another dump, modifying its dump
    structure members. This race condition will result in NULL pointer
    dereference in kernel. So add a lock to prevent that race.
    
    Fixes: 83321d6 ("[AF_KEY]: Dump SA/SP entries non-atomically")
    Signed-off-by: Yuejie Shi <[email protected]>
    Signed-off-by: Steffen Klassert <[email protected]>
    Signed-off-by: Mark Salyzyn <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    syjcnss authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    0f94b36 View commit details
    Browse the repository at this point in the history
  2. pstore: Make spinlock per zone instead of global

    commit 1097044 upstream.
    
    Currently pstore has a global spinlock for all zones. Since the zones
    are independent and modify different areas of memory, there's no need
    to have a global lock, so we should use a per-zone lock as introduced
    here. Also, when ramoops's ftrace use-case has a FTRACE_PER_CPU flag
    introduced later, which splits the ftrace memory area into a single zone
    per CPU, it will eliminate the need for locking. In preparation for this,
    make the locking optional.
    
    Signed-off-by: Joel Fernandes <[email protected]>
    [kees: updated commit message]
    Signed-off-by: Kees Cook <[email protected]>
    Cc: Leo Yan <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Joel Fernandes authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    d97aff4 View commit details
    Browse the repository at this point in the history
  3. net: reduce skb_warn_bad_offload() noise

    commit b2504a5 upstream.
    
    Dmitry reported warnings occurring in __skb_gso_segment() [1]
    
    All SKB_GSO_DODGY producers can allow user space to feed
    packets that trigger the current check.
    
    We could prevent them from doing so, rejecting packets, but
    this might add regressions to existing programs.
    
    It turns out our SKB_GSO_DODGY handlers properly set up checksum
    information that is needed anyway when packets needs to be segmented.
    
    By checking again skb_needs_check() after skb_mac_gso_segment(),
    we should remove these pesky warnings, at a very minor cost.
    
    With help from Willem de Bruijn
    
    [1]
    WARNING: CPU: 1 PID: 6768 at net/core/dev.c:2439 skb_warn_bad_offload+0x2af/0x390 net/core/dev.c:2434
    lo: caps=(0x000000a2803b7c69, 0x0000000000000000) len=138 data_len=0 gso_size=15883 gso_type=4 ip_summed=0
    Kernel panic - not syncing: panic_on_warn set ...
    
    CPU: 1 PID: 6768 Comm: syz-executor1 Not tainted 4.9.0 Freescale#5
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
     ffff8801c063ecd8 ffffffff82346bdf ffffffff00000001 1ffff100380c7d2e
     ffffed00380c7d26 0000000041b58ab3 ffffffff84b37e38 ffffffff823468f1
     ffffffff84820740 ffffffff84f289c0 dffffc0000000000 ffff8801c063ee20
    Call Trace:
     [<ffffffff82346bdf>] __dump_stack lib/dump_stack.c:15 [inline]
     [<ffffffff82346bdf>] dump_stack+0x2ee/0x3ef lib/dump_stack.c:51
     [<ffffffff81827e34>] panic+0x1fb/0x412 kernel/panic.c:179
     [<ffffffff8141f704>] __warn+0x1c4/0x1e0 kernel/panic.c:542
     [<ffffffff8141f7e5>] warn_slowpath_fmt+0xc5/0x100 kernel/panic.c:565
     [<ffffffff8356cbaf>] skb_warn_bad_offload+0x2af/0x390 net/core/dev.c:2434
     [<ffffffff83585cd2>] __skb_gso_segment+0x482/0x780 net/core/dev.c:2706
     [<ffffffff83586f19>] skb_gso_segment include/linux/netdevice.h:3985 [inline]
     [<ffffffff83586f19>] validate_xmit_skb+0x5c9/0xc20 net/core/dev.c:2969
     [<ffffffff835892bb>] __dev_queue_xmit+0xe6b/0x1e70 net/core/dev.c:3383
     [<ffffffff8358a2d7>] dev_queue_xmit+0x17/0x20 net/core/dev.c:3424
     [<ffffffff83ad161d>] packet_snd net/packet/af_packet.c:2930 [inline]
     [<ffffffff83ad161d>] packet_sendmsg+0x32ed/0x4d30 net/packet/af_packet.c:2955
     [<ffffffff834f0aaa>] sock_sendmsg_nosec net/socket.c:621 [inline]
     [<ffffffff834f0aaa>] sock_sendmsg+0xca/0x110 net/socket.c:631
     [<ffffffff834f329a>] ___sys_sendmsg+0x8fa/0x9f0 net/socket.c:1954
     [<ffffffff834f5e58>] __sys_sendmsg+0x138/0x300 net/socket.c:1988
     [<ffffffff834f604d>] SYSC_sendmsg net/socket.c:1999 [inline]
     [<ffffffff834f604d>] SyS_sendmsg+0x2d/0x50 net/socket.c:1995
     [<ffffffff84371941>] entry_SYSCALL_64_fastpath+0x1f/0xc2
    
    Signed-off-by: Eric Dumazet <[email protected]>
    Reported-by: Dmitry Vyukov  <[email protected]>
    Cc: Willem de Bruijn <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Cc: Mark Salyzyn <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Eric Dumazet authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    26d01aa View commit details
    Browse the repository at this point in the history
  4. jfs: Don't clear SGID when inheriting ACLs

    commit 9bcf66c upstream.
    
    When new directory 'DIR1' is created in a directory 'DIR0' with SGID bit
    set, DIR1 is expected to have SGID bit set (and owning group equal to
    the owning group of 'DIR0'). However when 'DIR0' also has some default
    ACLs that 'DIR1' inherits, setting these ACLs will result in SGID bit on
    'DIR1' to get cleared if user is not member of the owning group.
    
    Fix the problem by moving posix_acl_update_mode() out of
    __jfs_set_acl() into jfs_set_acl(). That way the function will not be
    called when inheriting ACLs which is what we want as it prevents SGID
    bit clearing and the mode has been properly set by posix_acl_create()
    anyway.
    
    Fixes: 0739310
    CC: [email protected]
    Signed-off-by: Jan Kara <[email protected]>
    Signed-off-by: Dave Kleikamp <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jankara authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    3a79e1c View commit details
    Browse the repository at this point in the history
  5. ALSA: fm801: Initialize chip after IRQ handler is registered

    commit 610e1ae upstream.
    
    The commit b56fa68 ("ALSA: fm801: detect FM-only card earlier")
    rearranged initialization calls, i.e. it makes snd_fm801_chip_init() to
    be called before we register interrupt handler and set PCI bus
    mastering.
    
    Somehow it prevents FM801-AU to work properly. Thus, partially revert
    initialization order changed by commit mentioned above.
    
    Fixes: b56fa68 ("ALSA: fm801: detect FM-only card earlier")
    Reported-by: Émeric MASCHINO <[email protected]>
    Tested-by: Émeric MASCHINO <[email protected]>
    Signed-off-by: Andy Shevchenko <[email protected]>
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    andy-shev authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    3d95509 View commit details
    Browse the repository at this point in the history
  6. ALSA: hda - Add missing NVIDIA GPU codec IDs to patch table

    commit 74ec118 upstream.
    
    Add codec IDs for several recently released, pending, and historical
    NVIDIA GPU audio controllers to the patch table, to allow the correct
    patch functions to be selected for them.
    
    Signed-off-by: Daniel Dadap <[email protected]>
    Reviewed-by: Andy Ritger <[email protected]>
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    dadap authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    5f8bdd5 View commit details
    Browse the repository at this point in the history
  7. parisc: Prevent TLB speculation on flushed pages on CPUs that only su…

    …pport equivalent aliases
    
    commit ae7a609 upstream.
    
    Helge noticed that we flush the TLB page in flush_cache_page but not in
    flush_cache_range or flush_cache_mm.
    
    For a long time, we have had random segmentation faults building
    packages on machines with PA8800/8900 processors.  These machines only
    support equivalent aliases.  We don't see these faults on machines that
    don't require strict coherency.  So, it appears TLB speculation
    sometimes leads to cache corruption on machines that require coherency.
    
    This patch adds TLB flushes to flush_cache_range and flush_cache_mm when
    coherency is required.  We only flush the TLB in flush_cache_page when
    coherency is required.
    
    The patch also optimizes flush_cache_range.  It turns out we always have
    the right context to use flush_user_dcache_range_asm and
    flush_user_icache_range_asm.
    
    The patch has been tested for some time on rp3440, rp3410 and A500-44.
    It's been boot tested on c8000.  No random segmentation faults were
    observed during testing.
    
    Signed-off-by: John David Anglin <[email protected]>
    Signed-off-by: Helge Deller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    danglin44 authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    afe9fc0 View commit details
    Browse the repository at this point in the history
  8. parisc: Extend disabled preemption in copy_user_page

    commit 56008c0 upstream.
    
    It's always bothered me that we only disable preemption in
    copy_user_page around the call to flush_dcache_page_asm.
    This patch extends this to after the copy.
    
    Signed-off-by: John David Anglin <[email protected]>
    Signed-off-by: Helge Deller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    danglin44 authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    f0d23fa View commit details
    Browse the repository at this point in the history
  9. parisc: Suspend lockup detectors before system halt

    commit 5618883 upstream.
    
    Some machines can't power off the machine, so disable the lockup detectors to
    avoid this watchdog BUG to show up every few seconds:
    watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [systemd-shutdow:1]
    
    Signed-off-by: Helge Deller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    hdeller authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    fa2aa76 View commit details
    Browse the repository at this point in the history
  10. powerpc/pseries: Fix of_node_put() underflow during reconfig remove

    commit 4fd1bd4 upstream.
    
    As for commit 68baf69 ("powerpc/pseries: Fix of_node_put()
    underflow during DLPAR remove"), the call to of_node_put() must be
    removed from pSeries_reconfig_remove_node().
    
    dlpar_detach_node() and pSeries_reconfig_remove_node() both call
    of_detach_node(), and thus the node should not be released in both
    cases.
    
    Fixes: 0829f6d ("of: device_node kobject lifecycle fixes")
    Signed-off-by: Laurent Vivier <[email protected]>
    Reviewed-by: David Gibson <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    vivier authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    6d3d93c View commit details
    Browse the repository at this point in the history
  11. NFS: invalidate file size when taking a lock.

    commit 442ce04 upstream.
    
    Prior to commit ca0daa2 ("NFS: Cache aggressively when file is open
    for writing"), NFS would revalidate, or invalidate, the file size when
    taking a lock.  Since that commit it only invalidates the file content.
    
    If the file size is changed on the server while wait for the lock, the
    client will have an incorrect understanding of the file size and could
    corrupt data.  This particularly happens when writing beyond the
    (supposed) end of file and can be easily be demonstrated with
    posix_fallocate().
    
    If an application opens an empty file, waits for a write lock, and then
    calls posix_fallocate(), glibc will determine that the underlying
    filesystem doesn't support fallocate (assuming version 4.1 or earlier)
    and will write out a '0' byte at the end of each 4K page in the region
    being fallocated that is after the end of the file.
    NFS will (usually) detect that these writes are beyond EOF and will
    expand them to cover the whole page, and then will merge the pages.
    Consequently, NFS will write out large blocks of zeroes beyond where it
    thought EOF was.  If EOF had moved, the pre-existing part of the file
    will be over-written.  Locking should have protected against this,
    but it doesn't.
    
    This patch restores the use of nfs_zap_caches() which invalidated the
    cached attributes.  When posix_fallocate() asks for the file size, the
    request will go to the server and get a correct answer.
    
    Fixes: ca0daa2 ("NFS: Cache aggressively when file is open for writing")
    Signed-off-by: NeilBrown <[email protected]>
    Signed-off-by: Anna Schumaker <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    NeilBrown authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    b087b8b View commit details
    Browse the repository at this point in the history
  12. NFSv4.1: Fix a race where CB_NOTIFY_LOCK fails to wake a waiter

    commit b7dbcc0 upstream.
    
    nfs4_retry_setlk() sets the task's state to TASK_INTERRUPTIBLE within the
    same region protected by the wait_queue's lock after checking for a
    notification from CB_NOTIFY_LOCK callback.  However, after releasing that
    lock, a wakeup for that task may race in before the call to
    freezable_schedule_timeout_interruptible() and set TASK_WAKING, then
    freezable_schedule_timeout_interruptible() will set the state back to
    TASK_INTERRUPTIBLE before the task will sleep.  The result is that the task
    will sleep for the entire duration of the timeout.
    
    Since we've already set TASK_INTERRUPTIBLE in the locked section, just use
    freezable_schedule_timout() instead.
    
    Fixes: a1d617d ("nfs: allow blocking locks to be awoken by lock callbacks")
    Signed-off-by: Benjamin Coddington <[email protected]>
    Reviewed-by: Jeff Layton <[email protected]>
    Signed-off-by: Anna Schumaker <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Benjamin Coddington authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    7d2a354 View commit details
    Browse the repository at this point in the history
  13. crypto: authencesn - Fix digest_null crash

    commit 41cdf7a upstream.
    
    When authencesn is used together with digest_null a crash will
    occur on the decrypt path.  This is because normally we perform
    a special setup to preserve the ESN, but this is skipped if there
    is no authentication.  However, on the post-authentication path
    it always expects the preservation to be in place, thus causing
    a crash when digest_null is used.
    
    This patch fixes this by also skipping the post-processing when
    there is no authentication.
    
    Fixes: 104880a ("crypto: authencesn - Convert to new AEAD...")
    Reported-by: Jan Tluka <[email protected]>
    Signed-off-by: Herbert Xu <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    herbertx authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    9eb088e View commit details
    Browse the repository at this point in the history
  14. KVM: PPC: Book3S HV: Enable TM before accessing TM registers

    commit e470571 upstream.
    
    Commit 46a704f ("KVM: PPC: Book3S HV: Preserve userspace HTM state
    properly", 2017-06-15) added code to read transactional memory (TM)
    registers but forgot to enable TM before doing so.  The result is
    that if userspace does have live values in the TM registers, a KVM_RUN
    ioctl will cause a host kernel crash like this:
    
    [  181.328511] Unrecoverable TM Unavailable Exception f60 at d00000001e7d9980
    [  181.328605] Oops: Unrecoverable TM Unavailable Exception, sig: 6 [Freescale#1]
    [  181.328613] SMP NR_CPUS=2048
    [  181.328613] NUMA
    [  181.328618] PowerNV
    [  181.328646] Modules linked in: vhost_net vhost tap nfs_layout_nfsv41_files rpcsec_gss_krb5 nfsv4 dns_resolver nfs
    +fscache xt_CHECKSUM iptable_mangle ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat
    +nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack ipt_REJECT nf_reject_ipv4 tun ebtable_filter ebtables
    +ip6table_filter ip6_tables iptable_filter bridge stp llc kvm_hv kvm nfsd ses enclosure scsi_transport_sas ghash_generic
    +auth_rpcgss gf128mul xts sg ctr nfs_acl lockd vmx_crypto shpchp ipmi_powernv i2c_opal grace ipmi_devintf i2c_core
    +powernv_rng sunrpc ipmi_msghandler ibmpowernv uio_pdrv_genirq uio leds_powernv powernv_op_panel ip_tables xfs sd_mod
    +lpfc ipr bnx2x libata mdio ptp pps_core scsi_transport_fc libcrc32c dm_mirror dm_region_hash dm_log dm_mod
    [  181.329278] CPU: 40 PID: 9926 Comm: CPU 0/KVM Not tainted 4.12.0+ Freescale#1
    [  181.329337] task: c000003fc6980000 task.stack: c000003fe4d80000
    [  181.329396] NIP: d00000001e7d9980 LR: d00000001e77381c CTR: d00000001e7d98f0
    [  181.329465] REGS: c000003fe4d837e0 TRAP: 0f60   Not tainted  (4.12.0+)
    [  181.329523] MSR: 9000000000009033 <SF,HV,EE,ME,IR,DR,RI,LE>
    [  181.329527]   CR: 24022448  XER: 00000000
    [  181.329608] CFAR: d00000001e773818 SOFTE: 1
    [  181.329608] GPR00: d00000001e77381c c000003fe4d83a60 d00000001e7ef410 c000003fdcfe0000
    [  181.329608] GPR04: c000003fe4f00000 0000000000000000 0000000000000000 c000003fd7954800
    [  181.329608] GPR08: 0000000000000001 c000003fc6980000 0000000000000000 d00000001e7e2880
    [  181.329608] GPR12: d00000001e7d98f0 c000000007b19000 00000001295220e0 00007fffc0ce2090
    [  181.329608] GPR16: 0000010011886608 00007fff8c89f260 0000000000000001 00007fff8c080028
    [  181.329608] GPR20: 0000000000000000 00000100118500a6 0000010011850000 0000010011850000
    [  181.329608] GPR24: 00007fffc0ce1b48 0000010011850000 00000000d673b901 0000000000000000
    [  181.329608] GPR28: 0000000000000000 c000003fdcfe0000 c000003fdcfe0000 c000003fe4f00000
    [  181.330199] NIP [d00000001e7d9980] kvmppc_vcpu_run_hv+0x90/0x6b0 [kvm_hv]
    [  181.330264] LR [d00000001e77381c] kvmppc_vcpu_run+0x2c/0x40 [kvm]
    [  181.330322] Call Trace:
    [  181.330351] [c000003fe4d83a60] [d00000001e773478] kvmppc_set_one_reg+0x48/0x340 [kvm] (unreliable)
    [  181.330437] [c000003fe4d83b30] [d00000001e77381c] kvmppc_vcpu_run+0x2c/0x40 [kvm]
    [  181.330513] [c000003fe4d83b50] [d00000001e7700b4] kvm_arch_vcpu_ioctl_run+0x114/0x2a0 [kvm]
    [  181.330586] [c000003fe4d83bd0] [d00000001e7642f8] kvm_vcpu_ioctl+0x598/0x7a0 [kvm]
    [  181.330658] [c000003fe4d83d40] [c0000000003451b8] do_vfs_ioctl+0xc8/0x8b0
    [  181.330717] [c000003fe4d83de0] [c000000000345a64] SyS_ioctl+0xc4/0x120
    [  181.330776] [c000003fe4d83e30] [c00000000000b004] system_call+0x58/0x6c
    [  181.330833] Instruction dump:
    [  181.330869] e92d0260 e9290b50 e9290108 792807e3 41820058 e92d0260 e9290b50 e9290108
    [  181.330941] 792ae8a4 794a1f87 408204f4 e92d0260 <7d4022a6> f9490ff0 e92d0260 7d4122a6
    [  181.331013] ---[ end trace 6f6ddeb4bfe92a92 ]---
    
    The fix is just to turn on the TM bit in the MSR before accessing the
    registers.
    
    Fixes: 46a704f ("KVM: PPC: Book3S HV: Preserve userspace HTM state properly")
    Reported-by: Jan Stancek <[email protected]>
    Tested-by: Jan Stancek <[email protected]>
    Signed-off-by: Paul Mackerras <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    paulusmack authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    d745f0f View commit details
    Browse the repository at this point in the history
  15. md/raid5: add thread_group worker async_tx_issue_pending_all

    commit 7e96d55 upstream.
    
    Since thread_group worker and raid5d kthread are not in sync, if
    worker writes stripe before raid5d then requests will be waiting
    for issue_pendig.
    
    Issue observed when building raid5 with ext4, in some build runs
    jbd2 would get hung and requests were waiting in the HW engine
    waiting to be issued.
    
    Fix this by adding a call to async_tx_issue_pending_all in the
    raid5_do_work.
    
    Signed-off-by: Ofer Heifetz <[email protected]>
    Signed-off-by: Shaohua Li <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    oferhz authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    fabc7df View commit details
    Browse the repository at this point in the history
  16. drm/vmwgfx: Fix gcc-7.1.1 warning

    commit fcfffdd upstream.
    
    The current code does not look correct, and the reason for it is
    probably lost.  Since this now generates a compiler warning,
    fix it to what makes sense.
    
    Reported-by: Arnd Bergmann <[email protected]>
    Reported-by: Linus Torvalds <[email protected]>
    Signed-off-by: Sinclair Yeh <[email protected]>
    Reviewed-by: Brian Paul <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Sinclair Yeh authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    e417798 View commit details
    Browse the repository at this point in the history
  17. drm/nouveau/disp/nv50-: bump max chans to 21

    commit a90e049 upstream.
    
    GP102's cursors go from chan 17..20. Increase the array size to hold
    their data properly.
    
    Fixes: e50fcff ("drm/nouveau/disp/gp102: fix cursor/overlay immediate channel indices")
    Signed-off-by: Ilia Mirkin <[email protected]>
    Signed-off-by: Ben Skeggs <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    imirkin authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    34da5f7 View commit details
    Browse the repository at this point in the history
  18. drm/nouveau/bar/gf100: fix access to upper half of BAR2

    commit 38bcb20 upstream.
    
    Bit 30 being set causes the upper half of BAR2 to stay in physical mode,
    mapped over the end of VRAM, even when the rest of the BAR has been set
    to virtual mode.
    
    We inherited our initial value from RM, but I'm not aware of any reason
    we need to keep it that way.
    
    This fixes severe GPU hang/lockup issues revealed by Wayland on F26.
    
    Shout-out to NVIDIA for the quick response with the potential cause!
    
    Signed-off-by: Ben Skeggs <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Ben Skeggs authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    ae8faca View commit details
    Browse the repository at this point in the history
  19. KVM: PPC: Book3S HV: Restore critical SPRs to host values on guest exit

    commit 4c3bb4c upstream.
    
    This restores several special-purpose registers (SPRs) to sane values
    on guest exit that were missed before.
    
    TAR and VRSAVE are readable and writable by userspace, and we need to
    save and restore them to prevent the guest from potentially affecting
    userspace execution (not that TAR or VRSAVE are used by any known
    program that run uses the KVM_RUN ioctl).  We save/restore these
    in kvmppc_vcpu_run_hv() rather than on every guest entry/exit.
    
    FSCR affects userspace execution in that it can prohibit access to
    certain facilities by userspace.  We restore it to the normal value
    for the task on exit from the KVM_RUN ioctl.
    
    IAMR is normally 0, and is restored to 0 on guest exit.  However,
    with a radix host on POWER9, it is set to a value that prevents the
    kernel from executing user-accessible memory.  On POWER9, we save
    IAMR on guest entry and restore it on guest exit to the saved value
    rather than 0.  On POWER8 we continue to set it to 0 on guest exit.
    
    PSPB is normally 0.  We restore it to 0 on guest exit to prevent
    userspace taking advantage of the guest having set it non-zero
    (which would allow userspace to set its SMT priority to high).
    
    UAMOR is normally 0.  We restore it to 0 on guest exit to prevent
    the AMR from being used as a covert channel between userspace
    processes, since the AMR is not context-switched at present.
    
    [[email protected] - removed IAMR bits that are only needed on POWER9]
    
    Fixes: b005255 ("KVM: PPC: Book3S HV: Context-switch new POWER8 SPRs", 2014-01-08)
    Signed-off-by: Paul Mackerras <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    paulusmack authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    e5cd34d View commit details
    Browse the repository at this point in the history
  20. KVM: PPC: Book3S HV: Save/restore host values of debug registers

    commit 7ceaa6d upstream.
    
    At present, HV KVM on POWER8 and POWER9 machines loses any instruction
    or data breakpoint set in the host whenever a guest is run.
    Instruction breakpoints are currently only used by xmon, but ptrace
    and the perf_event subsystem can set data breakpoints as well as xmon.
    
    To fix this, we save the host values of the debug registers (CIABR,
    DAWR and DAWRX) before entering the guest and restore them on exit.
    To provide space to save them in the stack frame, we expand the stack
    frame allocated by kvmppc_hv_entry() from 112 to 144 bytes.
    
    [[email protected] - Adjusted stack offsets since we aren't saving
     POWER9-specific registers.]
    
    Fixes: b005255 ("KVM: PPC: Book3S HV: Context-switch new POWER8 SPRs", 2014-01-08)
    Signed-off-by: Paul Mackerras <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    paulusmack authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    c39c3ae View commit details
    Browse the repository at this point in the history
  21. Revert "powerpc/numa: Fix percpu allocations to be NUMA aware"

    This reverts commit b4624ff which is
    commit ba4a648 upstream.
    
    Michal Hocko writes:
    
    JFYI. We have encountered a regression after applying this patch on a
    large ppc machine. While the patch is the right thing to do it doesn't
    work well with the current vmalloc area size on ppc and large machines
    where NUMA nodes are very far from each other. Just for the reference
    the boot fails on such a machine with bunch of warning preceeding it.
    See http://lkml.kernel.org/r/[email protected]
    
    It seems the right thing to do is to enlarge the vmalloc space on ppc
    but this is not the case in the upstream kernel yet AFAIK. It is also
    questionable whether that is a stable material but I will decision on
    you here.
    
    We have reverted this patch from our 4.4 based kernel.
    
    Newer kernels do not have enlarged vmalloc space yet AFAIK so they won't
    work properly eiter. This bug is quite rare though because you need a
    specific HW configuration to trigger the issue - namely NUMA nodes have
    to be far away from each other in the physical memory space.
    
    Cc: Michal Hocko <[email protected]>
    Cc: Michael Ellerman <[email protected]>
    Cc: Nicholas Piggin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    0f31691 View commit details
    Browse the repository at this point in the history
  22. Staging: comedi: comedi_fops: Avoid orphaned proc entry

    commit bf279ec upstream.
    
    Move comedi_proc_init to the end to avoid orphaned proc entry
    if module loading failed.
    
    Signed-off-by: Cheah Kok Cheong <[email protected]>
    Reviewed-by: Ian Abbott <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Cheah Kok Cheong authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    9bf0d78 View commit details
    Browse the repository at this point in the history
  23. drm: rcar-du: Simplify and fix probe error handling

    commit 4f7b0d2 upstream.
    
    It isn't safe to call drm_dev_unregister() without first initializing
    mode setting with drm_mode_config_init(). This leads to a crash if
    either IO memory can't be remapped or vblank initialization fails.
    
    Fix this by reordering the initialization sequence. Move vblank
    initialization after the drm_mode_config_init() call, and move IO
    remapping before drm_dev_alloc() to avoid the need to perform clean up
    in case of failure.
    
    While at it remove the explicit drm_vblank_cleanup() call from
    rcar_du_remove() as the drm_dev_unregister() function already cleans up
    vblank.
    
    Signed-off-by: Laurent Pinchart <[email protected]>
    Signed-off-by: thongsyho <[email protected]>
    Signed-off-by: Nhan Nguyen <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Laurent Pinchart authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    755f655 View commit details
    Browse the repository at this point in the history
  24. smp/hotplug: Move unparking of percpu threads to the control CPU

    commit 9cd4f1a upstream.
    
    Vikram reported the following backtrace:
    
       BUG: scheduling while atomic: swapper/7/0/0x00000002
       CPU: 7 PID: 0 Comm: swapper/7 Not tainted 4.9.32-perf+ Freescale#680
       schedule
       schedule_hrtimeout_range_clock
       schedule_hrtimeout
       wait_task_inactive
       __kthread_bind_mask
       __kthread_bind
       __kthread_unpark
       kthread_unpark
       cpuhp_online_idle
       cpu_startup_entry
       secondary_start_kernel
    
    He analyzed correctly that a parked cpu hotplug thread of an offlined CPU
    was still on the runqueue when the CPU came back online and tried to unpark
    it. This causes the thread which invoked kthread_unpark() to call
    wait_task_inactive() and subsequently schedule() with preemption disabled.
    His proposed workaround was to "make sure" that a parked thread has
    scheduled out when the CPU goes offline, so the situation cannot happen.
    
    But that's still wrong because the root cause is not the fact that the
    percpu thread is still on the runqueue and neither that preemption is
    disabled, which could be simply solved by enabling preemption before
    calling kthread_unpark().
    
    The real issue is that the calling thread is the idle task of the upcoming
    CPU, which is not supposed to call anything which might sleep.  The moron,
    who wrote that code, missed completely that kthread_unpark() might end up
    in schedule().
    
    The solution is simpler than expected. The thread which controls the
    hotplug operation is waiting for the CPU to call complete() on the hotplug
    state completion. So the idle task of the upcoming CPU can set its state to
    CPUHP_AP_ONLINE_IDLE and invoke complete(). This in turn wakes the control
    task on a different CPU, which then can safely do the unpark and kick the
    now unparked hotplug thread of the upcoming CPU to complete the bringup to
    the final target state.
    
    Control CPU                     AP
    
    bringup_cpu();
      __cpu_up()  ------------>
    				bringup_ap();
      bringup_wait_for_ap()
        wait_for_completion();
                                    cpuhp_online_idle();
                    <------------    complete();
        unpark(AP->stopper);
        unpark(AP->hotplugthread);
                                    while(1)
                                      do_idle();
        kick(AP->hotplugthread);
        wait_for_completion();	hotplug_thread()
    				  run_online_callbacks();
    				  complete();
    
    Fixes: 8df3e07 ("cpu/hotplug: Let upcoming cpu bring itself fully up")
    Reported-by: Vikram Mulukutla <[email protected]>
    Signed-off-by: Thomas Gleixner <[email protected]>
    Acked-by: Peter Zijlstra <[email protected]>
    Cc: Sebastian Sewior <[email protected]>
    Cc: Rusty Russell <[email protected]>
    Cc: Tejun Heo <[email protected]>
    Cc: Andrew Morton <[email protected]>
    Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1707042218020.2131@nanos
    Signed-off-by: Thomas Gleixner <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    KAGA-KOKO authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    7b4e4b1 View commit details
    Browse the repository at this point in the history
  25. smp/hotplug: Replace BUG_ON and react useful

    commit dea1d0f upstream.
    
    The move of the unpark functions to the control thread moved the BUG_ON()
    there as well. While it made some sense in the idle thread of the upcoming
    CPU, it's bogus to crash the control thread on the already online CPU,
    especially as the function has a return value and the callsite is prepared
    to handle an error return.
    
    Replace it with a WARN_ON_ONCE() and return a proper error code.
    
    Fixes: 9cd4f1a ("smp/hotplug: Move unparking of percpu threads to the control CPU")
    Rightfully-ranted-at-by: Linux Torvalds <[email protected]>
    Signed-off-by: Thomas Gleixner <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    KAGA-KOKO authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    6b3d13f View commit details
    Browse the repository at this point in the history
  26. nfc: Fix hangup of RC-S380* in port100_send_ack()

    commit 2497128 upstream.
    
    If port100_send_ack() was called twice or more, it has race to hangup.
    
      port100_send_ack()          port100_send_ack()
        init_completion()
        [...]
        dev->cmd_cancel = true
                                    /* this removes previous from completion */
                                    init_completion()
    				[...]
                                    dev->cmd_cancel = true
                                    wait_for_completion()
        /* never be waked up */
        wait_for_completion()
    
    Like above race, this code is not assuming port100_send_ack() is
    called twice or more.
    
    To fix, this checks dev->cmd_cancel to know if prior cancel is
    in-flight or not. And never be remove prior task from completion by
    using reinit_completion(), so this guarantees to be waked up properly
    soon or later.
    
    Signed-off-by: OGAWA Hirofumi <[email protected]>
    Signed-off-by: Samuel Ortiz <[email protected]>
    Signed-off-by: Amit Pundir <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    OGAWAHirofumi authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    35bdf9a View commit details
    Browse the repository at this point in the history
  27. nfc: fdp: fix NULL pointer dereference

    commit b6355fb upstream.
    
    We are checking phy after dereferencing it. We can print the debug
    information after checking it. If phy is NULL then we will get a good
    stack trace to tell us that we are in this irq handler.
    
    Signed-off-by: Sudip Mukherjee <[email protected]>
    Signed-off-by: Samuel Ortiz <[email protected]>
    Signed-off-by: Amit Pundir <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    sudipm-mukherjee authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    57154f0 View commit details
    Browse the repository at this point in the history
  28. net: phy: Do not perform software reset for Generic PHY

    commit 0878fff upstream.
    
    The Generic PHY driver is a catch-all PHY driver and it should preserve
    whatever prior initialization has been done by boot loader or firmware
    agents. For specific PHY device configuration it is expected that a
    specialized PHY driver would take over that role.
    
    Resetting the generic PHY was a bad idea that has lead to several
    complaints and downstream workarounds e.g: in OpenWrt/LEDE so restore
    the behavior prior to 87aa9f9 ("net: phy: consolidate PHY
    reset in phy_init_hw()").
    
    Reported-by: Felix Fietkau <[email protected]>
    Fixes: 87aa9f9 ("net: phy: consolidate PHY reset in phy_init_hw()")
    Signed-off-by: Florian Fainelli <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Amit Pundir <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ffainelli authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    6c78197 View commit details
    Browse the repository at this point in the history
  29. isdn: Fix a sleep-in-atomic bug

    commit e8f4ae8 upstream.
    
    The driver may sleep under a spin lock, the function call path is:
    isdn_ppp_mp_receive (acquire the lock)
      isdn_ppp_mp_reassembly
        isdn_ppp_push_higher
          isdn_ppp_decompress
            isdn_ppp_ccp_reset_trans
              isdn_ppp_ccp_reset_alloc_state
                kzalloc(GFP_KERNEL) --> may sleep
    
    To fixed it, the "GFP_KERNEL" is replaced with "GFP_ATOMIC".
    
    Signed-off-by: Jia-Ju Bai <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Amit Pundir <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    XidianGeneral authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    b756862 View commit details
    Browse the repository at this point in the history
  30. isdn/i4l: fix buffer overflow

    commit 9f5af54 upstream.
    
    This fixes a potential buffer overflow in isdn_net.c caused by an
    unbounded strcpy.
    
    [ ISDN seems to be effectively unmaintained, and the I4L driver in
      particular is long deprecated, but in case somebody uses this..
        - Linus ]
    
    Signed-off-by: Jiten Thakkar <[email protected]>
    Signed-off-by: Annie Cherkaev <[email protected]>
    Cc: Karsten Keil <[email protected]>
    Cc: Kees Cook <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    anniecherk authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    7b3a667 View commit details
    Browse the repository at this point in the history
  31. ath10k: fix null deref on wmi-tlv when trying spectral scan

    commit 18ae68f upstream.
    
    WMI ops wrappers did not properly check for null
    function pointers for spectral scan. This caused
    null dereference crash with WMI-TLV based firmware
    which doesn't implement spectral scan.
    
    The crash could be triggered with:
    
      ip link set dev wlan0 up
      echo background > /sys/kernel/debug/ieee80211/phy0/ath10k/spectral_scan_ctl
    
    The crash looked like this:
    
      [  168.031989] BUG: unable to handle kernel NULL pointer dereference at           (null)
      [  168.037406] IP: [<          (null)>]           (null)
      [  168.040395] PGD cdd4067 PUD fa0f067 PMD 0
      [  168.043303] Oops: 0010 [Freescale#1] SMP
      [  168.045377] Modules linked in: ath10k_pci(O) ath10k_core(O) ath mac80211 cfg80211 [last unloaded: cfg80211]
      [  168.051560] CPU: 1 PID: 1380 Comm: bash Tainted: G        W  O    4.8.0 Freescale#78
      [  168.054336] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014
      [  168.059183] task: ffff88000c460c00 task.stack: ffff88000d4bc000
      [  168.061736] RIP: 0010:[<0000000000000000>]  [<          (null)>]           (null)
      ...
      [  168.100620] Call Trace:
      [  168.101910]  [<ffffffffa03b9566>] ? ath10k_spectral_scan_config+0x96/0x200 [ath10k_core]
      [  168.104871]  [<ffffffff811386e2>] ? filemap_fault+0xb2/0x4a0
      [  168.106696]  [<ffffffffa03b97e6>] write_file_spec_scan_ctl+0x116/0x280 [ath10k_core]
      [  168.109618]  [<ffffffff812da3a1>] full_proxy_write+0x51/0x80
      [  168.111443]  [<ffffffff811957b8>] __vfs_write+0x28/0x120
      [  168.113090]  [<ffffffff812f1a2d>] ? security_file_permission+0x3d/0xc0
      [  168.114932]  [<ffffffff8109b912>] ? percpu_down_read+0x12/0x60
      [  168.116680]  [<ffffffff811965f8>] vfs_write+0xb8/0x1a0
      [  168.118293]  [<ffffffff81197966>] SyS_write+0x46/0xa0
      [  168.119912]  [<ffffffff818f2972>] entry_SYSCALL_64_fastpath+0x1a/0xa4
      [  168.121737] Code:  Bad RIP value.
      [  168.123318] RIP  [<          (null)>]           (null)
    
    Signed-off-by: Michal Kazior <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Signed-off-by: Amit Pundir <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Michal Kazior authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    59153e6 View commit details
    Browse the repository at this point in the history
  32. wil6210: fix deadlock when using fw_no_recovery option

    commit dfb5b09 upstream.
    
    When FW crashes with no_fw_recovery option, driver
    waits for manual recovery with wil->mutex held, this
    can easily create deadlocks.
    Fix the problem by moving the wait outside the lock.
    
    Signed-off-by: Lior David <[email protected]>
    Signed-off-by: Maya Erez <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Signed-off-by: Amit Pundir <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Lior David authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    2f16bcd View commit details
    Browse the repository at this point in the history
  33. mailbox: always wait in mbox_send_message for blocking Tx mode

    commit c61b781 upstream.
    
    There exists a race when msg_submit return immediately as there was an
    active request being processed which may have completed just before it's
    checked again in mbox_send_message. This will result in return to the
    caller without waiting in mbox_send_message even when it's blocking Tx.
    
    This patch fixes the issue by waiting for the completion always if Tx
    is in blocking mode.
    
    Fixes: 2b6d83e ("mailbox: Introduce framework for mailbox")
    Reported-by: Alexey Klimov <[email protected]>
    Signed-off-by: Sudeep Holla <[email protected]>
    Reviewed-by: Alexey Klimov <[email protected]>
    Signed-off-by: Jassi Brar <[email protected]>
    Signed-off-by: Amit Pundir <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    sudeep-holla authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    a23fba8 View commit details
    Browse the repository at this point in the history
  34. mailbox: skip complete wait event if timer expired

    commit cc6eeaa upstream.
    
    If a wait_for_completion_timeout() call returns due to a timeout,
    complete() can get called after returning from the wait which is
    incorrect and can cause subsequent transmissions on a channel to fail.
    Since the wait_for_completion_timeout() sees the completion variable
    is non-zero caused by the erroneous/spurious complete() call, and
    it immediately returns without waiting for the time as expected by the
    client.
    
    This patch fixes the issue by skipping complete() call for the timer
    expiry.
    
    Fixes: 2b6d83e ("mailbox: Introduce framework for mailbox")
    Reported-by: Alexey Klimov <[email protected]>
    Signed-off-by: Sudeep Holla <[email protected]>
    Signed-off-by: Jassi Brar <[email protected]>
    Signed-off-by: Amit Pundir <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    sudeep-holla authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    abe9090 View commit details
    Browse the repository at this point in the history
  35. mailbox: handle empty message in tx_tick

    commit cb710ab upstream.
    
    We already check if the message is empty before calling the client
    tx_done callback. Calling completion on a wait event is also invalid
    if the message is empty.
    
    This patch moves the existing empty message check earlier.
    
    Fixes: 2b6d83e ("mailbox: Introduce framework for mailbox")
    Signed-off-by: Sudeep Holla <[email protected]>
    Signed-off-by: Jassi Brar <[email protected]>
    Signed-off-by: Amit Pundir <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    sudeep-holla authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    016a638 View commit details
    Browse the repository at this point in the history
  36. sched/cgroup: Move sched_online_group() back into css_online() to fix…

    … crash
    
    commit 96b7774 upstream.
    
    Commit:
    
      2f5177f ("sched/cgroup: Fix/cleanup cgroup teardown/init")
    
    .. moved sched_online_group() from css_online() to css_alloc().
    It exposes half-baked task group into global lists before initializing
    generic cgroup stuff.
    
    LTP testcase (third in cgroup_regression_test) written for testing
    similar race in kernels 2.6.26-2.6.28 easily triggers this oops:
    
      BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
      IP: kernfs_path_from_node_locked+0x260/0x320
      CPU: 1 PID: 30346 Comm: cat Not tainted 4.10.0-rc5-test Freescale#4
      Call Trace:
      ? kernfs_path_from_node+0x4f/0x60
      kernfs_path_from_node+0x3e/0x60
      print_rt_rq+0x44/0x2b0
      print_rt_stats+0x7a/0xd0
      print_cpu+0x2fc/0xe80
      ? __might_sleep+0x4a/0x80
      sched_debug_show+0x17/0x30
      seq_read+0xf2/0x3b0
      proc_reg_read+0x42/0x70
      __vfs_read+0x28/0x130
      ? security_file_permission+0x9b/0xc0
      ? rw_verify_area+0x4e/0xb0
      vfs_read+0xa5/0x170
      SyS_read+0x46/0xa0
      entry_SYSCALL_64_fastpath+0x1e/0xad
    
    Here the task group is already linked into the global RCU-protected 'task_groups'
    list, but the css->cgroup pointer is still NULL.
    
    This patch reverts this chunk and moves online back to css_online().
    
    Signed-off-by: Konstantin Khlebnikov <[email protected]>
    Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
    Cc: Linus Torvalds <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Cc: Tejun Heo <[email protected]>
    Cc: Thomas Gleixner <[email protected]>
    Fixes: 2f5177f ("sched/cgroup: Fix/cleanup cgroup teardown/init")
    Link: http://lkml.kernel.org/r/148655324740.424917.5302984537258726349.stgit@buzz
    Signed-off-by: Ingo Molnar <[email protected]>
    Signed-off-by: Matt Fleming <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    koct9i authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    62b5776 View commit details
    Browse the repository at this point in the history
  37. RDMA/uverbs: Fix the check for port number

    commit 5a7a88f upstream.
    
    The port number is only valid if IB_QP_PORT is set in the mask.
    So only check port number if it is valid to prevent modify_qp from
    failing due to an invalid port number.
    
    Fixes: 5ecce4c("Check port number supplied by user verbs cmds")
    Reviewed-by: Steve Wise <[email protected]>
    Signed-off-by: Mustafa Ismail <[email protected]>
    Tested-by: Mike Marciniszyn <[email protected]>
    Signed-off-by: Doug Ledford <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    mustafakismail authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    1965536 View commit details
    Browse the repository at this point in the history
  38. ipmi/watchdog: fix watchdog timeout set on reboot

    commit 860f01e upstream.
    
    systemd by default starts watchdog on reboot and sets the timer to
    ShutdownWatchdogSec=10min.  Reboot handler in ipmi_watchdog than reduces
    the timer to 120s which is not enough time to boot a Xen machine with
    a lot of RAM.  As a result the machine is rebooted the second time
    during the long run of (XEN) Scrubbing Free RAM.....
    
    Fix this by setting the timer to 120s only if it was previously
    set to a low value.
    
    Signed-off-by: Valentin Vidic <[email protected]>
    Signed-off-by: Corey Minyard <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Valentin Vidic authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    d933777 View commit details
    Browse the repository at this point in the history
  39. dentry name snapshots

    commit 49d31c2 upstream.
    
    take_dentry_name_snapshot() takes a safe snapshot of dentry name;
    if the name is a short one, it gets copied into caller-supplied
    structure, otherwise an extra reference to external name is grabbed
    (those are never modified).  In either case the pointer to stable
    string is stored into the same structure.
    
    dentry must be held by the caller of take_dentry_name_snapshot(),
    but may be freely dropped afterwards - the snapshot will stay
    until destroyed by release_dentry_name_snapshot().
    
    Intended use:
    	struct name_snapshot s;
    
    	take_dentry_name_snapshot(&s, dentry);
    	...
    	access s.name
    	...
    	release_dentry_name_snapshot(&s);
    
    Replaces fsnotify_oldname_...(), gets used in fsnotify to obtain the name
    to pass down with event.
    
    Signed-off-by: Al Viro <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Al Viro authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    ad25f11 View commit details
    Browse the repository at this point in the history
  40. v4l: s5c73m3: fix negation operator

    commit a2370ba upstream.
    
    Bool values should be negated using logical operators. Using bitwise operators
    results in unexpected and possibly incorrect results.
    
    Reported-by: David Binderman <[email protected]>
    Signed-off-by: Andrzej Hajda <[email protected]>
    Signed-off-by: Hans Verkuil <[email protected]>
    Signed-off-by: Mauro Carvalho Chehab <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Andrzej Hajda authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    5463a3d View commit details
    Browse the repository at this point in the history
  41. pstore: Allow prz to control need for locking

    commit 663deb4 upstream.
    
    In preparation of not locking at all for certain buffers depending on if
    there's contention, make locking optional depending on the initialization
    of the prz.
    
    Signed-off-by: Joel Fernandes <[email protected]>
    [kees: moved locking flag into prz instead of via caller arguments]
    Signed-off-by: Kees Cook <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Joel Fernandes authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    4693080 View commit details
    Browse the repository at this point in the history
  42. pstore: Correctly initialize spinlock and flags

    commit 76d5692 upstream.
    
    The ram backend wasn't always initializing its spinlock correctly. Since
    it was coming from kzalloc memory, though, it was harmless on
    architectures that initialize unlocked spinlocks to 0 (at least x86 and
    ARM). This also fixes a possibly ignored flag setting too.
    
    When running under CONFIG_DEBUG_SPINLOCK, the following Oops was visible:
    
    [    0.760836] persistent_ram: found existing buffer, size 29988, start 29988
    [    0.765112] persistent_ram: found existing buffer, size 30105, start 30105
    [    0.769435] persistent_ram: found existing buffer, size 118542, start 118542
    [    0.785960] persistent_ram: found existing buffer, size 0, start 0
    [    0.786098] persistent_ram: found existing buffer, size 0, start 0
    [    0.786131] pstore: using zlib compression
    [    0.790716] BUG: spinlock bad magic on CPU#0, swapper/0/1
    [    0.790729]  lock: 0xffffffc0d1ca9bb0, .magic: 00000000, .owner: <none>/-1, .owner_cpu: 0
    [    0.790742] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.10.0-rc2+ torvalds#913
    [    0.790747] Hardware name: Google Kevin (DT)
    [    0.790750] Call trace:
    [    0.790768] [<ffffff900808ae88>] dump_backtrace+0x0/0x2bc
    [    0.790780] [<ffffff900808b164>] show_stack+0x20/0x28
    [    0.790794] [<ffffff9008460ee0>] dump_stack+0xa4/0xcc
    [    0.790809] [<ffffff9008113cfc>] spin_dump+0xe0/0xf0
    [    0.790821] [<ffffff9008113d3c>] spin_bug+0x30/0x3c
    [    0.790834] [<ffffff9008113e28>] do_raw_spin_lock+0x50/0x1b8
    [    0.790846] [<ffffff9008a2d2ec>] _raw_spin_lock_irqsave+0x54/0x6c
    [    0.790862] [<ffffff90083ac3b4>] buffer_size_add+0x48/0xcc
    [    0.790875] [<ffffff90083acb34>] persistent_ram_write+0x60/0x11c
    [    0.790888] [<ffffff90083aab1c>] ramoops_pstore_write_buf+0xd4/0x2a4
    [    0.790900] [<ffffff90083a9d3c>] pstore_console_write+0xf0/0x134
    [    0.790912] [<ffffff900811c304>] console_unlock+0x48c/0x5e8
    [    0.790923] [<ffffff900811da18>] register_console+0x3b0/0x4d4
    [    0.790935] [<ffffff90083aa7d0>] pstore_register+0x1a8/0x234
    [    0.790947] [<ffffff90083ac250>] ramoops_probe+0x6b8/0x7d4
    [    0.790961] [<ffffff90085ca548>] platform_drv_probe+0x7c/0xd0
    [    0.790972] [<ffffff90085c76ac>] driver_probe_device+0x1b4/0x3bc
    [    0.790982] [<ffffff90085c7ac8>] __device_attach_driver+0xc8/0xf4
    [    0.790996] [<ffffff90085c4bfc>] bus_for_each_drv+0xb4/0xe4
    [    0.791006] [<ffffff90085c7414>] __device_attach+0xd0/0x158
    [    0.791016] [<ffffff90085c7b18>] device_initial_probe+0x24/0x30
    [    0.791026] [<ffffff90085c648c>] bus_probe_device+0x50/0xe4
    [    0.791038] [<ffffff90085c35b8>] device_add+0x3a4/0x76c
    [    0.791051] [<ffffff90087d0e84>] of_device_add+0x74/0x84
    [    0.791062] [<ffffff90087d19b8>] of_platform_device_create_pdata+0xc0/0x100
    [    0.791073] [<ffffff90087d1a2c>] of_platform_device_create+0x34/0x40
    [    0.791086] [<ffffff900903c910>] of_platform_default_populate_init+0x58/0x78
    [    0.791097] [<ffffff90080831fc>] do_one_initcall+0x88/0x160
    [    0.791109] [<ffffff90090010ac>] kernel_init_freeable+0x264/0x31c
    [    0.791123] [<ffffff9008a25bd0>] kernel_init+0x18/0x11c
    [    0.791133] [<ffffff9008082ec0>] ret_from_fork+0x10/0x50
    [    0.793717] console [pstore-1] enabled
    [    0.797845] pstore: Registered ramoops as persistent store backend
    [    0.804647] ramoops: attached 0x100000@0xf7edc000, ecc: 0/0
    
    Fixes: 663deb4 ("pstore: Allow prz to control need for locking")
    Fixes: 1097044 ("pstore: Make spinlock per zone instead of global")
    Reported-by: Brian Norris <[email protected]>
    Signed-off-by: Kees Cook <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    kees authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    a084027 View commit details
    Browse the repository at this point in the history
  43. pstore: Use dynamic spinlock initializer

    commit e9a330c upstream.
    
    The per-prz spinlock should be using the dynamic initializer so that
    lockdep can correctly track it. Without this, under lockdep, we get a
    warning at boot that the lock is in non-static memory.
    
    Fixes: 1097044 ("pstore: Make spinlock per zone instead of global")
    Fixes: 76d5692 ("pstore: Correctly initialize spinlock and flags")
    Signed-off-by: Kees Cook <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    kees authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    e10f7bd View commit details
    Browse the repository at this point in the history
  44. net: skb_needs_check() accepts CHECKSUM_NONE for tx

    commit 6e7bc47 upstream.
    
    My recent change missed fact that UFO would perform a complete
    UDP checksum before segmenting in frags.
    
    In this case skb->ip_summed is set to CHECKSUM_NONE.
    
    We need to add this valid case to skb_needs_check()
    
    Fixes: b2504a5 ("net: reduce skb_warn_bad_offload() noise")
    Signed-off-by: Eric Dumazet <[email protected]>
    Cc: Willem de Bruijn <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Eric Dumazet authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    48a70be View commit details
    Browse the repository at this point in the history
  45. device-dax: fix sysfs duplicate warnings

    commit bbb3be1 upstream.
    
    Fix warnings of the form...
    
         WARNING: CPU: 10 PID: 4983 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x62/0x80
         sysfs: cannot create duplicate filename '/class/dax/dax12.0'
         Call Trace:
          dump_stack+0x63/0x86
          __warn+0xcb/0xf0
          warn_slowpath_fmt+0x5a/0x80
          ? kernfs_path_from_node+0x4f/0x60
          sysfs_warn_dup+0x62/0x80
          sysfs_do_create_link_sd.isra.2+0x97/0xb0
          sysfs_create_link+0x25/0x40
          device_add+0x266/0x630
          devm_create_dax_dev+0x2cf/0x340 [dax]
          dax_pmem_probe+0x1f5/0x26e [dax_pmem]
          nvdimm_bus_probe+0x71/0x120
    
    ...by reusing the namespace id for the device-dax instance name.
    
    Now that we have decided that there will never by more than one
    device-dax instance per libnvdimm-namespace parent device [1], we can
    directly reuse the namepace ids. There are some possible follow-on
    cleanups, but those are saved for a later patch to simplify the -stable
    backport.
    
    [1]: https://lists.01.org/pipermail/linux-nvdimm/2016-December/008266.html
    
    Fixes: 98a29c3 ("libnvdimm, namespace: allow creation of multiple pmem...")
    Cc: Jeff Moyer <[email protected]>
    Reported-by: Dariusz Dokupil <[email protected]>
    Signed-off-by: Dan Williams <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    djbw authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    a3ff460 View commit details
    Browse the repository at this point in the history
  46. x86/mce/AMD: Make the init code more robust

    [ Upstream commit 0dad3a3 ]
    
    If mce_device_init() fails then the mce device pointer is NULL and the
    AMD mce code happily dereferences it.
    
    Add a sanity check.
    
    Reported-by: Markus Trippelsdorf <[email protected]>
    Reported-by: Boris Ostrovsky <[email protected]>
    Signed-off-by: Thomas Gleixner <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    KAGA-KOKO authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    34fae9c View commit details
    Browse the repository at this point in the history
  47. r8169: add support for RTL8168 series add-on card.

    [ Upstream commit 610c908 ]
    
    This chip is the same as RTL8168, but its device id is 0x8161.
    
    Signed-off-by: Chun-Hao Lin <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Chun-Hao Lin authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    82338e9 View commit details
    Browse the repository at this point in the history
  48. ARM: omap2+: fixing wrong strcat for Non-NULL terminated string

    [ Upstream commit 5066d52 ]
    
    Issue caught with static analysis tool:
    "Dangerous usage of 'name' (strncpy doesn't always 0-terminate it)"
    
    Use strlcpy _includes_ the NUL terminator, and  strlcat() which ensures
    that it won't overflow the buffer.
    
    Reported-by: Maninder Singh <[email protected]>
    Signed-off-by: Vaneet Narang <[email protected]>
    CC: Russell King <[email protected]>
    Signed-off-by: Tony Lindgren <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    maninder42 authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    0686a9b View commit details
    Browse the repository at this point in the history
  49. dt-bindings: power/supply: Update TPS65217 properties

    [ Upstream commit 81d7358 ]
    
    Add interrupt specifiers for USB and AC charger input. Interrupt numbers
    are from the datasheet.
    Fix wrong property for compatible string.
    
    Signed-off-by: Milo Kim <[email protected]>
    Acked-by: Rob Herring <[email protected]>
    Signed-off-by: Tony Lindgren <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    woogyom authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    b116469 View commit details
    Browse the repository at this point in the history
  50. dt-bindings: input: Specify the interrupt number of TPS65217 power bu…

    …tton
    
    [ Upstream commit 8203815 ]
    
    Specify the power button interrupt number which is from the datasheet.
    
    Signed-off-by: Milo Kim <[email protected]>
    Acked-by: Rob Herring <[email protected]>
    Signed-off-by: Tony Lindgren <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    woogyom authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    2bc4d1c View commit details
    Browse the repository at this point in the history
  51. ARM: dts: am57xx-idk: Put USB2 port in peripheral mode

    [ Upstream commit 5acd016 ]
    
    USB2 port can be operated in dual-role mode but till we
    have dual-role support in dwc3 driver let's limit this
    port to peripheral mode.
    
    If we don't do so it defaults to host mode. USB1 port
    is meant for host only operation and we don't want
    both ports in host only mode.
    
    Signed-off-by: Roger Quadros <[email protected]>
    Signed-off-by: Tony Lindgren <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Roger Quadros authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    0ce84ef View commit details
    Browse the repository at this point in the history
  52. ARM: dts: n900: Mark eMMC slot with no-sdio and no-sd flags

    [ Upstream commit 4cf48f1 ]
    
    Trying to initialize eMMC slot as SDIO or SD cause failure in n900 port of
    qemu. eMMC itself is not detected and is not working.
    
    Real Nokia N900 harware does not have this problem. As eMMC is really not
    SDIO or SD based such change is harmless and will fix support for qemu.
    
    Signed-off-by: Pali Rohár <[email protected]>
    Acked-by: Pavel Machek <[email protected]>
    Signed-off-by: Tony Lindgren <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    pali authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    a0a4dd4 View commit details
    Browse the repository at this point in the history
  53. net/mlx5: Disable RoCE on the e-switch management port under switchde…

    …v mode
    
    [ Upstream commit 9da34cd ]
    
    Under the switchdev/offloads mode, packets that don't match any
    e-switch steering rule are sent towards the e-switch management
    port. We use a NIC HW steering rule set per vport (uplink and VFs)
    to make them be received into the host OS through the respective
    vport representor netdevice.
    
    Currnetly such missed RoCE packets will not get to this NIC steering
    rule, and hence VF RoCE will not work over the slow path of the offloads
    mode. This is b/c these packets will be matched by a steering rule added
    by the firmware that serves RoCE traffic set on the PF NIC vport which
    is also the e-switch management port under SRIOV.
    
    Disabling RoCE on the e-switch management vport when we are in the offloads
    mode, will signal to the firmware to remove their RoCE rule, and then the
    missed RoCE packets will be matched by the representor NIC steering rule
    as any other missed packets.
    
    To achieve that, we disable RoCE on the PF vport. We do that by removing
    (hot-unplugging) the IB device instance associated with the PF. This is
    also required by our current model where the PF serves as the uplink
    representor and hence only SW switching (TC, bridge, OVS) applications
    and slow path vport mlx5e net-device should be running over that vport.
    
    Fixes: c930a3a ('net/mlx5e: Add devlink based SRIOV mode changes')
    Signed-off-by: Or Gerlitz <[email protected]>
    Reviewed-by: Hadar Hen Zion <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ogerlitz authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    ea703cb View commit details
    Browse the repository at this point in the history
  54. ipv6: Should use consistent conditional judgement for ip6 fragment be…

    …tween __ip6_append_data and ip6_finish_output
    
    [ Upstream commit e4c5e13 ]
    
    There is an inconsistent conditional judgement between __ip6_append_data
    and ip6_finish_output functions, the variable length in __ip6_append_data
    just include the length of application's payload and udp6 header, don't
    include the length of ipv6 header, but in ip6_finish_output use
    (skb->len > ip6_skb_dst_mtu(skb)) as judgement, and skb->len include the
    length of ipv6 header.
    
    That causes some particular application's udp6 payloads whose length are
    between (MTU - IPv6 Header) and MTU were fragmented by ip6_fragment even
    though the rst->dev support UFO feature.
    
    Add the length of ipv6 header to length in __ip6_append_data to keep
    consistent conditional judgement as ip6_finish_output for ip6 fragment.
    
    Signed-off-by: Zheng Li <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Zheng Li authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    aeb2303 View commit details
    Browse the repository at this point in the history
  55. net/mlx4_core: Use-after-free causes a resource leak in flow-steering…

    … detach
    
    [ Upstream commit 3b01fe7 ]
    
    mlx4_QP_FLOW_STEERING_DETACH_wrapper first removes the steering
    rule (which results in freeing the rule structure), and then
    references a field in this struct (the qp number) when releasing the
    busy-status on the rule's qp.
    
    Since this memory was freed, it could reallocated and changed.
    Therefore, the qp number in the struct may be incorrect,
    so that we are releasing the incorrect qp. This leaves the rule's qp
    in the busy state (and could possibly release an incorrect qp as well).
    
    Fix this by saving the qp number in a local variable, for use after
    removing the steering rule.
    
    Fixes: 2c473ae ("net/mlx4_core: Disallow releasing VF QPs which have steering rules")
    Signed-off-by: Jack Morgenstein <[email protected]>
    Signed-off-by: Tariq Toukan <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Jack Morgenstein authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    a882067 View commit details
    Browse the repository at this point in the history
  56. net/mlx4: Remove BUG_ON from ICM allocation routine

    [ Upstream commit c1d5f8f ]
    
    This patch removes BUG_ON() macro from mlx4_alloc_icm_coherent()
    by checking DMA address alignment in advance and performing proper
    folding in case of error.
    
    Fixes: 5b0bf5e ("mlx4_core: Support ICM tables in coherent memory")
    Reported-by: Ozgur Karatas <[email protected]>
    Signed-off-by: Leon Romanovsky <[email protected]>
    Signed-off-by: Tariq Toukan <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Leon Romanovsky authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    7e150f7 View commit details
    Browse the repository at this point in the history
  57. net/mlx4_core: Fix raw qp flow steering rules under SRIOV

    [ Upstream commit 10b1c04 ]
    
    Demoting simple flow steering rule priority (for DPDK) was achieved by
    wrapping FW commands MLX4_QP_FLOW_STEERING_ATTACH/DETACH for the PF
    as well, and forcing the priority to MLX4_DOMAIN_NIC in the wrapper
    function for the PF and all VFs.
    
    In function mlx4_ib_create_flow(), this change caused the main rule
    creation for the PF to be wrapped, while it left the associated
    tunnel steering rule creation unwrapped for the PF.
    
    This mismatch caused rule deletion failures in mlx4_ib_destroy_flow()
    for the PF when the detach wrapper function did not find the associated
    tunnel-steering rule (since creation of that rule for the PF did not
    go through the wrapper function).
    
    Fix this by setting MLX4_QP_FLOW_STEERING_ATTACH/DETACH to be "native"
    (so that the PF invocation does not go through the wrapper), and perform
    the required priority demotion for the PF in the mlx4_ib_create_flow()
    code path.
    
    Fixes: 4856413 ("net/mlx4_core: Demote simple multicast and broadcast flow steering rules")
    Signed-off-by: Jack Morgenstein <[email protected]>
    Signed-off-by: Tariq Toukan <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Jack Morgenstein authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    237652f View commit details
    Browse the repository at this point in the history
  58. drm/msm: Ensure that the hardware write pointer is valid

    [ Upstream commit 88b333b ]
    
    Currently the value written to CP_RB_WPTR is calculated on the fly as
    (rb->next - rb->start). But as the code is designed rb->next is wrapped
    before writing the commands so if a series of commands happened to
    fit perfectly in the ringbuffer, rb->next would end up being equal to
    rb->size / 4 and thus result in an out of bounds address to CP_RB_WPTR.
    
    The easiest way to fix this is to mask WPTR when writing it to the
    hardware; it makes the hardware happy and the rest of the ringbuffer
    math appears to work and there isn't any point in upsetting anything.
    
    Signed-off-by: Jordan Crouse <[email protected]>
    [squash in is_power_of_2() check]
    Signed-off-by: Rob Clark <[email protected]>
    
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Jordan Crouse authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    e0d5bb9 View commit details
    Browse the repository at this point in the history
  59. drm/msm: Put back the vaddr in submit_reloc()

    [ Upstream commit 6490abc ]
    
    The error cases in submit_reloc() need to put back the virtual
    address of the bo before failling. Add a single failure path
    for the function.
    
    Signed-off-by: Jordan Crouse <[email protected]>
    Signed-off-by: Rob Clark <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Jordan Crouse authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    50e3950 View commit details
    Browse the repository at this point in the history
  60. drm/msm: Verify that MSM_SUBMIT_BO_FLAGS are set

    [ Upstream commit a6cb3b8 ]
    
    For every submission buffer object one of MSM_SUBMIT_BO_WRITE
    and MSM_SUBMIT_BO_READ must be set (and nothing else). If we
    allowed zero then the buffer object would never get queued to
    be unreferenced.
    
    Signed-off-by: Jordan Crouse <[email protected]>
    Signed-off-by: Rob Clark <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Jordan Crouse authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    7d33b41 View commit details
    Browse the repository at this point in the history
  61. vfio-pci: use 32-bit comparisons for register address for gcc-4.5

    [ Upstream commit 45e8697 ]
    
    Using ancient compilers (gcc-4.5 or older) on ARM, we get a link
    failure with the vfio-pci driver:
    
    ERROR: "__aeabi_lcmp" [drivers/vfio/pci/vfio-pci.ko] undefined!
    
    The reason is that the compiler tries to do a comparison of
    a 64-bit range. This changes it to convert to a 32-bit number
    explicitly first, as newer compilers do for themselves.
    
    Signed-off-by: Arnd Bergmann <[email protected]>
    Signed-off-by: Alex Williamson <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    arndb authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    c7d0c0d View commit details
    Browse the repository at this point in the history
  62. irqchip/keystone: Fix "scheduling while atomic" on rt

    [ Upstream commit 2f884e6 ]
    
    The below call chain generates "scheduling while atomic" backtrace and
    causes system crash when Keystone 2 IRQ chip driver is used with RT-kernel:
    
    gic_handle_irq()
     |-__handle_domain_irq()
      |-generic_handle_irq()
       |-keystone_irq_handler()
        |-regmap_read()
         |-regmap_lock_spinlock()
          |-rt_spin_lock()
    
    The reason is that Keystone driver dispatches IRQ using chained IRQ handler
    and accesses I/O memory through syscon->regmap(mmio) which is implemented
    as fast_io regmap and uses regular spinlocks for synchronization, but
    spinlocks transformed to rt_mutexes on RT.
    
    Hence, convert Keystone 2 IRQ driver to use generic irq handler instead of
    chained IRQ handler. This way it will be compatible with RT kernel where it
    will be forced thread IRQ handler while in non-RT kernel it still will be
    executed in HW IRQ context.
    
    Cc: Suman Anna <[email protected]>
    Signed-off-by: Grygorii Strashko <[email protected]>
    Tested-by: Suman Anna <[email protected]>
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Jason Cooper <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    grygoriyS authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    ca40b2d View commit details
    Browse the repository at this point in the history
  63. ASoC: tlv320aic3x: Mark the RESET register as volatile

    [ Upstream commit 63c3194 ]
    
    The RESET register only have one self clearing bit and it should not be
    cached. If it is cached, when we sync the registers back to the chip we
    will initiate a software reset as well, which is not desirable.
    
    Signed-off-by: Peter Ujfalusi <[email protected]>
    Reviewed-by: Jarkko Nikula <[email protected]>
    Signed-off-by: Mark Brown <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Peter Ujfalusi authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    ed788dc View commit details
    Browse the repository at this point in the history
  64. spi: dw: Make debugfs name unique between instances

    [ Upstream commit 13288bd ]
    
    Some system have multiple dw devices. Currently the driver uses a
    fixed name for the debugfs dir. Append dev name to the debugfs dir
    name to make it unique.
    
    Signed-off-by: Phil Reid <[email protected]>
    Signed-off-by: Mark Brown <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    reid-p authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    14e5c8c View commit details
    Browse the repository at this point in the history
  65. ASoC: nau8825: fix invalid configuration in Pre-Scalar of FLL

    [ Upstream commit a1792cd ]
    
    The clk_ref_div is not configured in the correct position of the
    register. The patch fixes that clk_ref_div, Pre-Scalar, is assigned
    the wrong value.
    
    Signed-off-by: John Hsu <[email protected]>
    Signed-off-by: Mark Brown <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    John-Hsu authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    c612bba View commit details
    Browse the repository at this point in the history
  66. irqchip/mxs: Enable SKIP_SET_WAKE and MASK_ON_SUSPEND

    [ Upstream commit 88e20c7 ]
    
    The ICOLL controller doesn't provide any facility to configure the
    wakeup sources. That's the reason why this implementation lacks
    the irq_set_wake implementation. But this prevent us from properly
    entering power management states like "suspend to idle".
    
    So enable the flags IRQCHIP_SKIP_SET_WAKE and
    IRQCHIP_MASK_ON_SUSPEND to let the irqchip core allows and handles
    the power management.
    
    Signed-off-by: Stefan Wahren <[email protected]>
    Reviewed-by: Fabio Estevam <[email protected]>
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Jason Cooper <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    lategoodbye authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    033d5ce View commit details
    Browse the repository at this point in the history
  67. openrisc: Add _text symbol to fix ksym build error

    [ Upstream commit 086cc1c ]
    
    The build robot reports:
    
       .tmp_kallsyms1.o: In function `kallsyms_relative_base':
    >> (.rodata+0x8a18): undefined reference to `_text'
    
    This is when using 'make alldefconfig'. Adding this _text symbol to mark
    the start of the kernel as in other architecture fixes this.
    
    Signed-off-by: Stafford Horne <[email protected]>
    Acked-by: Jonas Bonn <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    stffrdhrn authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    88a86f8 View commit details
    Browse the repository at this point in the history
  68. dmaengine: ioatdma: Add Skylake PCI Dev ID

    [ Upstream commit 1594c18 ]
    
    Adding Skylake Xeon PCI device ids for ioatdma and related bits.
    
    Signed-off-by: Dave Jiang <[email protected]>
    Signed-off-by: Vinod Koul <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    davejiang authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    2987ce1 View commit details
    Browse the repository at this point in the history
  69. dmaengine: ioatdma: workaround SKX ioatdma version

    [ Upstream commit 34a31f0 ]
    
    The Skylake ioatdma is technically CBDMA 3.2+ and contains the same hardware
    bits with some additional 3.3 features, but it's not really 3.3 where the
    driver is concerned.
    
    Signed-off-by: Dave Jiang <[email protected]>
    Signed-off-by: Vinod Koul <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    davejiang authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    c2804b2 View commit details
    Browse the repository at this point in the history
  70. l2tp: consider '::' as wildcard address in l2tp_ip6 socket lookup

    [ Upstream commit 97b84fd ]
    
    An L2TP socket bound to the unspecified address should match with any
    address. If not, it can't receive any packet and __l2tp_ip6_bind_lookup()
    can't prevent another socket from binding on the same device/tunnel ID.
    
    While there, rename the 'addr' variable to 'sk_laddr' (local addr), to
    make following patch clearer.
    
    Signed-off-by: Guillaume Nault <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Guillaume Nault authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    000224c View commit details
    Browse the repository at this point in the history
  71. dmaengine: ti-dma-crossbar: Add some 'of_node_put()' in error path.

    [ Upstream commit 75bdc7f ]
    
    Add some missing 'of_node_put()' in early exit error path.
    
    Signed-off-by: Christophe JAILLET <[email protected]>
    Signed-off-by: Vinod Koul <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    tititiou36 authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    29e0adf View commit details
    Browse the repository at this point in the history
  72. usb: dwc3: omap: fix race of pm runtime with irq handler in probe

    [ Upstream commit 12a7f17 ]
    
    Now races can happen between interrupt handler execution and PM runtime in
    error handling code path in probe and in dwc3_omap_remove() which will lead
    to system crash:
    
    in probe:
    ...
     err1:
    	pm_runtime_put_sync(dev);
    ^^ PM runtime can race with IRQ handler when deferred probing happening
       due to extcon
    	pm_runtime_disable(dev);
    
    	return ret;
    
    in dwc3_omap_remove:
    ...
    	dwc3_omap_disable_irqs(omap);
    ^^ IRQs are disabled in HW, but handler may still run
    	of_platform_depopulate(omap->dev);
    	pm_runtime_put_sync(&pdev->dev);
    ^^ PM runtime can race with IRQ handler
    	pm_runtime_disable(&pdev->dev);
    
    	return 0;
    
    So, OMAP DWC3 IRQ need to be disabled before calling
    pm_runtime_put() in probe and in dwc3_omap_remove().
    
    Acked-by: Tony Lindgren <[email protected]>
    Signed-off-by: Grygorii Strashko <[email protected]>
    Signed-off-by: Felipe Balbi <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    grygoriyS authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    8af0937 View commit details
    Browse the repository at this point in the history
  73. ARM64: zynqmp: Fix W=1 dtc 1.4 warnings

    [ Upstream commit 4ea2a6b ]
    
    The patch removes these warnings reported by dtc 1.4:
    Warning (unit_address_vs_reg): Node /amba_apu has a reg or ranges
    property, but no unit name
    Warning (unit_address_vs_reg): Node /memory has a reg or ranges
    property, but no unit name
    
    Signed-off-by: Michal Simek <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Michal Simek authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    e360353 View commit details
    Browse the repository at this point in the history
  74. ARM64: zynqmp: Fix i2c node's compatible string

    [ Upstream commit c415f9e ]
    
    The Zynq Ultrascale MP uses version 1.4 of the Cadence IP core
    which fixes some silicon bugs that needed software workarounds
    in Version 1.0 that was used on Zynq systems.
    
    Signed-off-by: Moritz Fischer <[email protected]>
    Cc: Michal Simek <[email protected]>
    Cc: Sören Brinkmann <[email protected]>
    Cc: Rob Herring <[email protected]>
    Acked-by: Sören Brinkmann <[email protected]>
    Signed-off-by: Michal Simek <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    mfischer authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    3209f3f View commit details
    Browse the repository at this point in the history
  75. perf probe: Fix to get correct modname from elf header

    [ Upstream commit 1f2ed15 ]
    
    Since 'perf probe' supports cross-arch probes, it is possible to analyze
    different arch kernel image which has different bits-per-long.
    
    In that case, it fails to get the module name because it uses the
    MOD_NAME_OFFSET macro based on the host machine bits-per-long, instead
    of the target arch bits-per-long.
    
    This fixes above issue by changing modname-offset based on the target
    archs bit width. This is ok because linux kernel uses LP64 model on
    64bit arch.
    
    E.g. without this (on x86_64, and target module is arm32):
    
      $ perf probe -m build-arm/fs/configfs/configfs.ko -D configfs_lookup
      p:probe/configfs_lookup :configfs_lookup+0
                              ^-Here is an empty module name.
    
    With this fix, you can see correct module name:
    
      $ perf probe -m build-arm/fs/configfs/configfs.ko -D configfs_lookup
      p:probe/configfs_lookup configfs:configfs_lookup+0
    
    Signed-off-by: Masami Hiramatsu <[email protected]>
    Cc: Jiri Olsa <[email protected]>
    Cc: Namhyung Kim <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Link: http://lkml.kernel.org/r/148337043836.6752.383495516397005695.stgit@devbox
    Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    mhiramat authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    69f3df1 View commit details
    Browse the repository at this point in the history
  76. ARM: s3c2410_defconfig: Fix invalid values for NF_CT_PROTO_*

    [ Upstream commit 3ef01c9 ]
    
    NF_CT_PROTO_DCCP/SCTP/UDPLITE were switched from tristate to boolean so
    defconfig needs to be adjusted to silence warnings:
    	warning: symbol value 'm' invalid for NF_CT_PROTO_DCCP
    	warning: symbol value 'm' invalid for NF_CT_PROTO_SCTP
    	warning: symbol value 'm' invalid for NF_CT_PROTO_UDPLITE
    
    Signed-off-by: Krzysztof Kozlowski <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    krzk authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    ebd4642 View commit details
    Browse the repository at this point in the history
  77. ACPI / scan: Prefer devices without _HID/_CID for _ADR matching

    [ Upstream commit c2a6bba ]
    
    The way acpi_find_child_device() works currently is that, if there
    are two (or more) devices with the same _ADR value in the same
    namespace scope (which is not specifically allowed by the spec and
    the OS behavior in that case is not defined), the first one of them
    found to be present (with the help of _STA) will be returned.
    
    This covers the majority of cases, but is not sufficient if some of
    the devices in question have a _HID (or _CID) returning some valid
    ACPI/PNP device IDs (which is disallowed by the spec) and the
    ASL writers' expectation appears to be that the OS will match
    devices without a valid ACPI/PNP device ID against a given bus
    address first.
    
    To cover this special case as well, modify find_child_checks()
    to prefer devices without ACPI/PNP device IDs over devices that
    have them.
    
    Suggested-by: Mika Westerberg <[email protected]>
    Signed-off-by: Rafael J. Wysocki <[email protected]>
    Tested-by: Hans de Goede <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    rafaeljw authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    a15a3d9 View commit details
    Browse the repository at this point in the history
  78. usb: gadget: Fix copy/pasted error message

    [ Upstream commit 43aef5c ]
    
    This fixes an error message that was probably copied and pasted. The same
    message is used for both the in and out endpoints, so it makes it impossible
    to know which one actually failed because both cases say "IN".
    
    Make the out endpoint error message say "OUT".
    
    Signed-off-by: David Lechner <[email protected]>
    Signed-off-by: Felipe Balbi <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    dlech authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    92d6a81 View commit details
    Browse the repository at this point in the history
  79. Btrfs: use down_read_nested to make lockdep silent

    [ Upstream commit e321f8a ]
    
    If @block_group is not @used_bg, it'll try to get @used_bg's lock without
    droping @block_group 's lock and lockdep has throwed a scary deadlock warning
    about it.
    Fix it by using down_read_nested.
    
    Signed-off-by: Liu Bo <[email protected]>
    Reviewed-by: David Sterba <[email protected]>
    Signed-off-by: David Sterba <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Liu Bo authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    78418b8 View commit details
    Browse the repository at this point in the history
  80. Btrfs: fix lockdep warning about log_mutex

    [ Upstream commit 781feef ]
    
    While checking INODE_REF/INODE_EXTREF for a corner case, we may acquire a
    different inode's log_mutex with holding the current inode's log_mutex, and
    lockdep has complained this with a possilble deadlock warning.
    
    Fix this by using mutex_lock_nested() when processing the other inode's
    log_mutex.
    
    Reviewed-by: Filipe Manana <[email protected]>
    Signed-off-by: Liu Bo <[email protected]>
    Signed-off-by: David Sterba <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Liu Bo authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    6731212 View commit details
    Browse the repository at this point in the history
  81. benet: stricter vxlan offloading check in be_features_check

    [ Upstream commit 096de2f ]
    
    When VXLAN offloading is enabled, be_features_check() tries to check if
    an encapsulated packet is indeed a VXLAN packet. The check is not strict
    enough, and considers any UDP-encapsulated ethernet frame with a 8-byte
    tunnel header as being VXLAN. Unfortunately, both GENEVE and VXLAN-GPE
    have a 8-byte header, so they get through this check.
    
    Force the UDP destination port to be the one that has been offloaded to
    hardware.
    
    Without this, GENEVE-encapsulated packets can end up having an incorrect
    checksum when both a GENEVE and a VXLAN (offloaded) tunnel are
    configured.
    
    This is similar to commit a547224 ("mlx4e: Do not attempt to
    offload VXLAN ports that are unrecognized").
    
    Signed-off-by: Sabrina Dubroca <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    qsn authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    49fc90b View commit details
    Browse the repository at this point in the history
  82. Btrfs: adjust outstanding_extents counter properly when dio write is …

    …split
    
    [ Upstream commit c293166 ]
    
    Currently how btrfs dio deals with split dio write is not good
    enough if dio write is split into several segments due to the
    lack of contiguous space, a large dio write like 'dd bs=1G count=1'
    can end up with incorrect outstanding_extents counter and endio
    would complain loudly with an assertion.
    
    This fixes the problem by compensating the outstanding_extents
    counter in inode if a large dio write gets split.
    
    Reported-by: Anand Jain <[email protected]>
    Tested-by: Anand Jain <[email protected]>
    Signed-off-by: Liu Bo <[email protected]>
    Signed-off-by: David Sterba <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Liu Bo authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    f76ddff View commit details
    Browse the repository at this point in the history
  83. Xen: ARM: Zero reserved fields of xatp before making hypervisor call

    [ Upstream commit 0b47a6b ]
    
    Ensure all reserved fields of xatp are zero before making
    hypervisor call to XEN in xen_map_device_mmio().
    xenmem_add_to_physmap_one() in XEN fails the mapping request if
    extra.res reserved field in xatp is not zero for XENMAPSPACE_dev_mmio
    request.
    
    Signed-off-by: Jiandi An <[email protected]>
    Reviewed-by: Stefano Stabellini <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Jiandi An authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    704a6d7 View commit details
    Browse the repository at this point in the history
  84. tools lib traceevent: Fix prev/next_prio for deadline tasks

    [ Upstream commit 0748591 ]
    
    Currently, the sched:sched_switch tracepoint reports deadline tasks with
    priority -1. But when reading the trace via perf script I've got the
    following output:
    
      # ./d & # (d is a deadline task, see [1])
      # perf record -e sched:sched_switch -a sleep 1
      # perf script
          ...
             swapper     0 [000]  2146.962441: sched:sched_switch: swapper/0:0 [120] R ==> d:2593 [4294967295]
                   d  2593 [000]  2146.972472: sched:sched_switch: d:2593 [4294967295] R ==> g:2590 [4294967295]
    
    The task d reports the wrong priority [4294967295]. This happens because
    the "int prio" is stored in an unsigned long long val. Although it is
    set as a %lld, as int is shorter than unsigned long long,
    trace_seq_printf prints it as a positive number.
    
    The fix is just to cast the val as an int, and print it as a %d,
    as in the sched:sched_switch tracepoint's "format".
    
    The output with the fix is:
    
      # ./d &
      # perf record -e sched:sched_switch -a sleep 1
      # perf script
          ...
             swapper     0 [000]  4306.374037: sched:sched_switch: swapper/0:0 [120] R ==> d:10941 [-1]
                   d 10941 [000]  4306.383823: sched:sched_switch: d:10941 [-1] R ==> swapper/0:0 [120]
    
    [1] d.c
    
     ---
      #include <stdio.h>
      #include <unistd.h>
      #include <sys/syscall.h>
      #include <linux/types.h>
      #include <linux/sched.h>
    
      struct sched_attr {
    	__u32 size, sched_policy;
    	__u64 sched_flags;
    	__s32 sched_nice;
    	__u32 sched_priority;
    	__u64 sched_runtime, sched_deadline, sched_period;
      };
    
      int sched_setattr(pid_t pid, const struct sched_attr *attr, unsigned int flags)
      {
    	return syscall(__NR_sched_setattr, pid, attr, flags);
      }
    
      int main(void)
      {
    	struct sched_attr attr = {
    		.size		= sizeof(attr),
    		.sched_policy	= SCHED_DEADLINE, /* This creates a 10ms/30ms reservation */
    		.sched_runtime	= 10 * 1000 * 1000,
    		.sched_period	= attr.sched_deadline = 30 * 1000 * 1000,
    	};
    
    	if (sched_setattr(0, &attr, 0) < 0) {
    		perror("sched_setattr");
    		return -1;
    	}
    
    	for(;;);
      }
     ---
    
    Committer notes:
    
    Got the program from the provided URL, http://bristot.me/lkml/d.c,
    trimmed it and included in the cset log above, so that we have
    everything needed to test it in one place.
    
    Signed-off-by: Daniel Bristot de Oliveira <[email protected]>
    Acked-by: Steven Rostedt <[email protected]>
    Tested-by: Arnaldo Carvalho de Melo <[email protected]>
    Cc: Alexander Shishkin <[email protected]>
    Cc: Daniel Bristot de Oliveira <[email protected]>
    Cc: Jiri Olsa <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Link: http://lkml.kernel.org/r/866ef75bcebf670ae91c6a96daa63597ba981f0d.1483443552.git.bristot@redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Daniel Bristot de Oliveira authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    ab5e7df View commit details
    Browse the repository at this point in the history
  85. xfrm: Don't use sk_family for socket policy lookups

    commit 4c86d77 upstream.
    
    On IPv4-mapped IPv6 addresses sk_family is AF_INET6,
    but the flow informations are created based on AF_INET.
    So the routing set up 'struct flowi4' but we try to
    access 'struct flowi6' what leads to an out of bounds
    access. Fix this by using the family we get with the
    dst_entry, like we do it for the standard policy lookup.
    
    Reported-by: Dmitry Vyukov <[email protected]>
    Tested-by: Dmitry Vyukov <[email protected]>
    Signed-off-by: Steffen Klassert <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    klassert authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    0b86564 View commit details
    Browse the repository at this point in the history
  86. perf tools: Install tools/lib/traceevent plugins with install-bin

    [ Upstream commit 30a9c64 ]
    
    Those are binaries as well, so should be installed by:
    
      make -C tools/perf install-bin'
    
    too.
    
    Cc: Alexander Shishkin <[email protected]>
    Cc: Daniel Bristot de Oliveira <[email protected]>
    Cc: Jiri Olsa <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Cc: Steven Rostedt <[email protected]>
    Link: http://lkml.kernel.org/n/[email protected]
    Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    acmel authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    d8086c3 View commit details
    Browse the repository at this point in the history
  87. perf symbols: Robustify reading of build-id from sysfs

    [ Upstream commit 7934c98 ]
    
    Markus reported that perf segfaults when reading /sys/kernel/notes from
    a kernel linked with GNU gold, due to what looks like a gold bug, so do
    some bounds checking to avoid crashing in that case.
    
    Reported-by: Markus Trippelsdorf <[email protected]>
    Report-Link: http://lkml.kernel.org/r/20161219161821.GA294@x4
    Cc: Adrian Hunter <[email protected]>
    Cc: David Ahern <[email protected]>
    Cc: Jiri Olsa <[email protected]>
    Cc: Namhyung Kim <[email protected]>
    Cc: Wang Nan <[email protected]>
    Link: http://lkml.kernel.org/n/[email protected]
    Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    acmel authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    ddc0ec3 View commit details
    Browse the repository at this point in the history
  88. video: fbdev: cobalt_lcdfb: Handle return NULL error from devm_ioremap

    [ Upstream commit 4dcd19b ]
    
    Here, If devm_ioremap will fail. It will return NULL.
    Kernel can run into a NULL-pointer dereference.
    This error check will avoid NULL pointer dereference.
    
    Signed-off-by: Arvind Yadav <[email protected]>
    Acked-by: Yoichi Yuasa <[email protected]>
    Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ArvindYadavCs authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    a417ea5 View commit details
    Browse the repository at this point in the history
  89. vfio-pci: Handle error from pci_iomap

    [ Upstream commit e19f32d ]
    
    Here, pci_iomap can fail, handle this case release selected
    pci regions and return -ENOMEM.
    
    Signed-off-by: Arvind Yadav <[email protected]>
    Signed-off-by: Alex Williamson <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ArvindYadavCs authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    812a7df View commit details
    Browse the repository at this point in the history
  90. arm64: mm: fix show_pte KERN_CONT fallout

    [ Upstream commit 6ef4fb3 ]
    
    Recent changes made KERN_CONT mandatory for continued lines. In the
    absence of KERN_CONT, a newline may be implicit inserted by the core
    printk code.
    
    In show_pte, we (erroneously) use printk without KERN_CONT for continued
    prints, resulting in output being split across a number of lines, and
    not matching the intended output, e.g.
    
    [ff000000000000] *pgd=00000009f511b003
    , *pud=00000009f4a80003
    , *pmd=0000000000000000
    
    Fix this by using pr_cont() for all the continuations.
    
    Acked-by: Will Deacon <[email protected]>
    Signed-off-by: Mark Rutland <[email protected]>
    Signed-off-by: Catalin Marinas <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Mark Rutland authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    e95ec35 View commit details
    Browse the repository at this point in the history
  91. nvmem: imx-ocotp: Fix wrong register size

    [ Upstream commit 14ba972 ]
    
    All i.MX6 SoCs have an OCOTP Controller with 4kbit fuses. The i.MX6SL is
    an exception and has only 2kbit fuses.
    
    In the TRM for the i.MX6DQ (IMX6QDRM - Rev 2, 06/2014) the fuses size is
    described in chapter 46.1.1 with:
    "32-bit word restricted program and read to 4Kbits of eFuse OTP(512x8)."
    
    In the TRM for the i.MX6SL (IMX6SLRM - Rev 2, 06/2015) the fuses size is
    described in chapter 34.1.1 with:
    "32-bit word restricted program and read to 2 kbit of eFuse OTP(128x8)."
    
    Since the Freescale Linux kernel OCOTP driver works with a fuses size of
    2 kbit for the i.MX6SL, it looks like the TRM is wrong and the formula
    to calculate the correct fuses size has to be 256x8.
    
    Signed-off-by: Daniel Schultz <[email protected]>
    Signed-off-by: Srinivas Kandagatla <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    dnltz authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    a752672 View commit details
    Browse the repository at this point in the history
  92. net: usb: asix_devices: add .reset_resume for USB PM

    [ Upstream commit 63dfb0d ]
    
    The USB core may call reset_resume when it fails to resume asix device.
    And USB core can recovery this abnormal resume at low level driver,
    the same .resume at asix driver can work too. Add .reset_resume can
    avoid disconnecting after backing from system resume, and NFS can
    still be mounted after this commit.
    
    Signed-off-by: Peter Chen <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Peter Chen authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    2548d89 View commit details
    Browse the repository at this point in the history
  93. ASoC: fsl_ssi: set fifo watermark to more reliable value

    [ Upstream commit 4ee437f ]
    
    The fsl_ssi fifo watermark is by default set to 2 free spaces (i.e.
    activate DMA on FIFO when only 2 spaces are left.)  This means the
    DMA must service the fifo within 2 audio samples, which is just not
    enough time  for many use cases with high data rate.  In many
    configurations the audio channel slips (causing l/r swap in stereo
    configurations, or channel slipping in multi-channel configurations).
    
    This patch gives more breathing room and allows the SSI to operate
    reliably by changing the fifio refill watermark to 8.
    
    There is no change in behavior for older chips (with an 8-deep fifo).
    Only the newer chips with a 15-deep fifo get the new behavior. I
    suspect a new fifo depth setting could be optimized on the older
    chips too, but I have not tested.
    
    Signed-off-by: Caleb Crome <[email protected]>
    Reviewed-by: Fabio Estevam <[email protected]>
    Signed-off-by: Mark Brown <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ccrome authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    2909c9c View commit details
    Browse the repository at this point in the history
  94. sh_eth: enable RX descriptor word 0 shift on SH7734

    [ Upstream commit 71eae1c ]
    
    The RX descriptor word 0 on SH7734 has the RFS[9:0] field in bits 16-25
    (bits  0-15 usually used for that are occupied by the packet checksum).
    Thus  we need to set the 'shift_rd0'  field in the SH7734 SoC data...
    
    Fixes: f0e81fe ("net: sh_eth: Add support SH7734")
    Signed-off-by: Sergei Shtylyov <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Sergei Shtylyov authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    f10e206 View commit details
    Browse the repository at this point in the history
  95. ARCv2: IRQ: Call entry/exit functions for chained handlers in MCIP

    [ Upstream commit e51d5d0 ]
    
    It is necessary to call entry/exit functions for parent interrupt
    controllers for proper masking/unmasking of interrupt lines.
    
    Signed-off-by: Yuriy Kolerov <[email protected]>
    Signed-off-by: Vineet Gupta <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    kolerov authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    301681d View commit details
    Browse the repository at this point in the history
  96. ALSA: usb-audio: test EP_FLAG_RUNNING at urb completion

    [ Upstream commit 13a6c83 ]
    
    Testing EP_FLAG_RUNNING in snd_complete_urb() before running the completion
    logic allows us to save a few cpu cycles by returning early, skipping the
    pending urb in case the stream was stopped; the stop logic handles the urb
    and sets the completion callbacks to NULL.
    
    Signed-off-by: Ioan-Adrian Ratiu <[email protected]>
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    10ne1 authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    12dac5f View commit details
    Browse the repository at this point in the history
  97. x86/platform/intel-mid: Rename 'spidev' to 'mrfld_spidev'

    [ Upstream commit 159d372 ]
    
    The current implementation supports only Intel Merrifield platforms. Don't mess
    with the rest of the Intel MID family by not registering device with wrong
    properties.
    
    Signed-off-by: Andy Shevchenko <[email protected]>
    Cc: Linus Torvalds <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Cc: Thomas Gleixner <[email protected]>
    Link: http://lkml.kernel.org/r/[email protected]
    Signed-off-by: Ingo Molnar <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    andy-shev authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    efa2252 View commit details
    Browse the repository at this point in the history
  98. perf/x86: Set pmu->module in Intel PMU modules

    [ Upstream commit 74545f6 ]
    
    The conversion of Intel PMU drivers into modules did not include reference
    counting. The machine will crash when attempting to  access deleted code
    if an event from a module PMU is started and the module removed before the
    event is destroyed.
    
    i.e. this crashes the machine:
    
    	$ insmod intel-rapl-perf.ko
    	$ perf stat -e power/energy-cores/ -C 0 &
    	$ rmmod intel-rapl-perf.ko
    
    Set THIS_MODULE to pmu->module in Intel module PMUs so that generic code
    can handle reference counting and deny rmmod while an event still exists.
    
    Signed-off-by: David Carrillo-Cisneros <[email protected]>
    Cc: Alexander Shishkin <[email protected]>
    Cc: Arnaldo Carvalho de Melo <[email protected]>
    Cc: Borislav Petkov <[email protected]>
    Cc: Dave Hansen <[email protected]>
    Cc: Jiri Olsa <[email protected]>
    Cc: Kan Liang <[email protected]>
    Cc: Linus Torvalds <[email protected]>
    Cc: Paul Turner <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Cc: Srinivas Pandruvada <[email protected]>
    Cc: Stephane Eranian <[email protected]>
    Cc: Thomas Gleixner <[email protected]>
    Link: http://lkml.kernel.org/r/[email protected]
    Signed-off-by: Ingo Molnar <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    David Carrillo-Cisneros authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    b899142 View commit details
    Browse the repository at this point in the history
  99. ASoC: Intel: bytcr-rt5640: fix settings in internal clock mode

    [ Upstream commit 60448b0 ]
    
    Frequency value of zero did not make sense, use same 24.576MHz
    setting and only change the clock source in idle mode
    
    Suggested-by: Bard Liao <[email protected]>
    Signed-off-by: Pierre-Louis Bossart <[email protected]>
    Signed-off-by: Mark Brown <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    plbossart authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    3f0dfa1 View commit details
    Browse the repository at this point in the history
  100. HID: ignore Petzl USB headlamp

    [ Upstream commit 08f9572 ]
    
    This headlamp contains a dummy HID descriptor which pretends to be
    a mouse-like device, but can't be used as a mouse at all.
    
    Reported-by: Lukas Ocilka <[email protected]>
    Signed-off-by: Jiri Kosina <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Jiri Kosina authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    3b6f4e2 View commit details
    Browse the repository at this point in the history
  101. scsi: fnic: Avoid sending reset to firmware when another reset is in …

    …progress
    
    [ Upstream commit 9698b6f ]
    
    This fix is to avoid calling fnic_fw_reset_handler through
    fnic_host_reset when a finc reset is alreay in progress.
    
    Signed-off-by: Satish Kharat <[email protected]>
    Signed-off-by: Sesidhar Baddela <[email protected]>
    Signed-off-by: Martin K. Petersen <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Satish Kharat authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    2803ea7 View commit details
    Browse the repository at this point in the history
  102. scsi: snic: Return error code on memory allocation failure

    [ Upstream commit 0371adc ]
    
    If a call to mempool_create_slab_pool() in snic_probe() returns NULL,
    return -ENOMEM to indicate failure. mempool_creat_slab_pool() only fails
    if it cannot allocate memory.
    
    https://bugzilla.kernel.org/show_bug.cgi?id=189061
    
    Reported-by: [email protected]
    Signed-off-by: Burak Ok <[email protected]>
    Signed-off-by: Andreas Schaertl <[email protected]>
    Acked-by: Narsimhulu Musini <[email protected]>
    Reviewed-by: Ewan D. Milne <[email protected]>
    Signed-off-by: Martin K. Petersen <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Burak Ok authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    5f70407 View commit details
    Browse the repository at this point in the history
  103. scsi: bfa: Increase requested firmware version to 3.2.5.1

    [ Upstream commit 2d1148f ]
    
    bna & bfa firmware version 3.2.5.1 was submitted to linux-firmware on
    Feb 17 19:10:20 2015 -0500 in 0ab54ff ("linux-firmware: Add QLogic BR
    Series Adapter Firmware").
    
    bna was updated to use the newer firmware on Feb 19 16:02:32 2015 -0500 in
    3f307c3 ("bna: Update the Driver and Firmware Version")
    
    bfa was not updated. I presume this was an oversight but it broke support
    for bfa+bna cards such as the following
    	04:00.0 Fibre Channel [0c04]: Brocade Communications Systems, Inc.
    		1010/1020/1007/1741 10Gbps CNA [1657:0014] (rev 01)
    	04:00.1 Fibre Channel [0c04]: Brocade Communications Systems, Inc.
    		1010/1020/1007/1741 10Gbps CNA [1657:0014] (rev 01)
    	04:00.2 Ethernet controller [0200]: Brocade Communications Systems,
    		Inc. 1010/1020/1007/1741 10Gbps CNA [1657:0014] (rev 01)
    	04:00.3 Ethernet controller [0200]: Brocade Communications Systems,
    		Inc. 1010/1020/1007/1741 10Gbps CNA [1657:0014] (rev 01)
    
    Currently, if the bfa module is loaded first, bna fails to probe the
    respective devices with
    [  215.026787] bna: QLogic BR-series 10G Ethernet driver - version: 3.2.25.1
    [  215.043707] bna 0000:04:00.2: bar0 mapped to ffffc90001fc0000, len 262144
    [  215.060656] bna 0000:04:00.2: initialization failed err=1
    [  215.073893] bna 0000:04:00.3: bar0 mapped to ffffc90002040000, len 262144
    [  215.090644] bna 0000:04:00.3: initialization failed err=1
    
    Whereas if bna is loaded first, bfa fails with
    [  249.592109] QLogic BR-series BFA FC/FCOE SCSI driver - version: 3.2.25.0
    [  249.610738] bfa 0000:04:00.0: Running firmware version is incompatible with the driver version
    [  249.833513] bfa 0000:04:00.0: bfa init failed
    [  249.833919] scsi host6: QLogic BR-series FC/FCOE Adapter, hwpath: 0000:04:00.0 driver: 3.2.25.0
    [  249.841446] bfa 0000:04:00.1: Running firmware version is incompatible with the driver version
    [  250.045449] bfa 0000:04:00.1: bfa init failed
    [  250.045962] scsi host7: QLogic BR-series FC/FCOE Adapter, hwpath: 0000:04:00.1 driver: 3.2.25.0
    
    Increase bfa's requested firmware version. Also increase the driver
    version.  I only tested that all of the devices probe without error.
    
    Reported-by: Tim Ehlers <[email protected]>
    Signed-off-by: Benjamin Poirier <[email protected]>
    Acked-by: Rasesh Mody <[email protected]>
    Signed-off-by: Martin K. Petersen <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    gobenji authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    23ab274 View commit details
    Browse the repository at this point in the history
  104. ASoC: Intel: Skylake: Release FW ctx in cleanup

    [ Upstream commit bc65a32 ]
    
    Saved firmware ctx was not never released, so release Firmware
    ctx in cleanup routine.
    
    Signed-off-by: Jeeja KP <[email protected]>
    Acked-by: Vinod Koul <[email protected]>
    Signed-off-by: Mark Brown <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    kpjeeja authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    27ef028 View commit details
    Browse the repository at this point in the history
  105. ASoC: dpcm: Avoid putting stream state to STOP when FE stream is paused

    [ Upstream commit 9f169b9 ]
    
    When multiple front-ends are using the same back-end, putting state of a
    front-end to STOP state upon receiving pause command will result in backend
    stream getting released by DPCM framework unintentionally. In order to
    avoid backend to be released when another active front-end stream is
    present, put the stream state to PAUSED state instead of STOP state.
    
    Signed-off-by: Patrick Lai <[email protected]>
    Signed-off-by: Mark Brown <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Patrick Lai authored and gregkh committed Aug 7, 2017
    Configuration menu
    Copy the full SHA
    007dffc View commit details
    Browse the repository at this point in the history
  106. Linux 4.9.41

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

Commits on Aug 11, 2017

  1. parisc: Handle vma's whose context is not current in flush_cache_range

    commit 13d5709 upstream.
    
    In testing James' patch to drivers/parisc/pdc_stable.c, I hit the BUG
    statement in flush_cache_range() during a system shutdown:
    
    kernel BUG at arch/parisc/kernel/cache.c:595!
    CPU: 2 PID: 6532 Comm: kworker/2:0 Not tainted 4.13.0-rc2+ Freescale#1
    Workqueue: events free_ioctx
    
     IAOQ[0]: flush_cache_range+0x144/0x148
     IAOQ[1]: flush_cache_page+0x0/0x1a8
     RP(r2): flush_cache_range+0xec/0x148
    Backtrace:
     [<00000000402910ac>] unmap_page_range+0x84/0x880
     [<00000000402918f4>] unmap_single_vma+0x4c/0x60
     [<0000000040291a18>] zap_page_range_single+0x110/0x160
     [<0000000040291c34>] unmap_mapping_range+0x174/0x1a8
     [<000000004026ccd8>] truncate_pagecache+0x50/0xa8
     [<000000004026cd84>] truncate_setsize+0x54/0x70
     [<000000004033d534>] put_aio_ring_file+0x44/0xb0
     [<000000004033d5d8>] aio_free_ring+0x38/0x140
     [<000000004033d714>] free_ioctx+0x34/0xa8
     [<00000000401b0028>] process_one_work+0x1b8/0x4d0
     [<00000000401b04f4>] worker_thread+0x1b4/0x648
     [<00000000401b9128>] kthread+0x1b0/0x208
     [<0000000040150020>] end_fault_vector+0x20/0x28
     [<0000000040639518>] nf_ip_reroute+0x50/0xa8
     [<0000000040638ed0>] nf_ip_route+0x10/0x78
     [<0000000040638c90>] xfrm4_mode_tunnel_input+0x180/0x1f8
    
    CPU: 2 PID: 6532 Comm: kworker/2:0 Not tainted 4.13.0-rc2+ Freescale#1
    Workqueue: events free_ioctx
    Backtrace:
     [<0000000040163bf0>] show_stack+0x20/0x38
     [<0000000040688480>] dump_stack+0xa8/0x120
     [<0000000040163dc4>] die_if_kernel+0x19c/0x2b0
     [<0000000040164d0c>] handle_interruption+0xa24/0xa48
    
    This patch modifies flush_cache_range() to handle non current contexts.
    In as much as this occurs infrequently, the simplest approach is to
    flush the entire cache when this happens.
    
    Signed-off-by: John David Anglin <[email protected]>
    Signed-off-by: Helge Deller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    danglin44 authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    5d23e4f View commit details
    Browse the repository at this point in the history
  2. cgroup: create dfl_root files on subsys registration

    commit 7af608e upstream.
    
    On subsystem registration, css_populate_dir() is not called on the new
    root css, so the interface files for the subsystem on cgrp_dfl_root
    aren't created on registration.  This is a residue from the days when
    cgrp_dfl_root was used only as the parking spot for unused subsystems,
    which no longer is true as it's used as the root for cgroup2.
    
    This is often fine as later operations tend to create them as a part
    of mount (cgroup1) or subtree_control operations (cgroup2); however,
    it's not difficult to mount cgroup2 with the controller interface
    files missing as Waiman found out.
    
    Fix it by invoking css_populate_dir() on the root css on subsys
    registration.
    
    Signed-off-by: Tejun Heo <[email protected]>
    Reported-and-tested-by: Waiman Long <[email protected]>
    Signed-off-by: Tejun Heo <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    htejun authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    4a99eac View commit details
    Browse the repository at this point in the history
  3. cgroup: fix error return value from cgroup_subtree_control()

    commit 3c74541 upstream.
    
    While refactoring, f7b2814 ("cgroup: factor out
    cgroup_{apply|finalize}_control() from
    cgroup_subtree_control_write()") broke error return value from the
    function.  The return value from the last operation is always
    overridden to zero.  Fix it.
    
    Signed-off-by: Tejun Heo <[email protected]>
    Signed-off-by: Tejun Heo <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    htejun authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    445ee6c View commit details
    Browse the repository at this point in the history
  4. libata: array underflow in ata_find_dev()

    commit 59a5e26 upstream.
    
    My static checker complains that "devno" can be negative, meaning that
    we read before the start of the loop.  I've looked at the code, and I
    think the warning is right.  This come from /proc so it's root only or
    it would be quite a quite a serious bug.  The call tree looks like this:
    
    proc_scsi_write() <- gets id and channel from simple_strtoul()
    -> scsi_add_single_device() <- calls shost->transportt->user_scan()
       -> ata_scsi_user_scan()
          -> ata_find_dev()
    
    Signed-off-by: Dan Carpenter <[email protected]>
    Signed-off-by: Tejun Heo <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Dan Carpenter authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    804b1a9 View commit details
    Browse the repository at this point in the history
  5. workqueue: restore WQ_UNBOUND/max_active==1 to be ordered

    commit 5c0338c upstream.
    
    The combination of WQ_UNBOUND and max_active == 1 used to imply
    ordered execution.  After NUMA affinity 4c16bd3 ("workqueue:
    implement NUMA affinity for unbound workqueues"), this is no longer
    true due to per-node worker pools.
    
    While the right way to create an ordered workqueue is
    alloc_ordered_workqueue(), the documentation has been misleading for a
    long time and people do use WQ_UNBOUND and max_active == 1 for ordered
    workqueues which can lead to subtle bugs which are very difficult to
    trigger.
    
    It's unlikely that we'd see noticeable performance impact by enforcing
    ordering on WQ_UNBOUND / max_active == 1 workqueues.  Let's
    automatically set __WQ_ORDERED for those workqueues.
    
    Signed-off-by: Tejun Heo <[email protected]>
    Reported-by: Christoph Hellwig <[email protected]>
    Reported-by: Alexei Potashnik <[email protected]>
    Fixes: 4c16bd3 ("workqueue: implement NUMA affinity for unbound workqueues")
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    htejun authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    61a0adb View commit details
    Browse the repository at this point in the history
  6. iwlwifi: dvm: prevent an out of bounds access

    commit 0b0f934 upstream.
    
    iwlagn_check_ratid_empty takes the tid as a parameter, but
    it doesn't check that it is not IWL_TID_NON_QOS.
    Since IWL_TID_NON_QOS = 8 and iwl_priv::tid_data is an array
    with 8 entries, accessing iwl_priv::tid_data[IWL_TID_NON_QOS]
    is a bad idea.
    This happened in iwlagn_rx_reply_tx. Since
    iwlagn_check_ratid_empty is relevant only to check whether
    we can open A-MPDU, this flow is irrelevant if tid is
    IWL_TID_NON_QOS. Call iwlagn_check_ratid_empty only inside
    the
    	if (tid != IWL_TID_NON_QOS)
    
    a few lines earlier in the function.
    
    Reported-by: Seraphime Kirkovski <[email protected]>
    Tested-by: Seraphime Kirkovski <[email protected]>
    Signed-off-by: Emmanuel Grumbach <[email protected]>
    Signed-off-by: Luca Coelho <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    egrumbach authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    de8c332 View commit details
    Browse the repository at this point in the history
  7. brcmfmac: fix memleak due to calling brcmf_sdiod_sgtable_alloc() twice

    commit 5f5d031 upstream.
    
    Due to a bugfix in wireless tree and the commit mentioned below a merge
    was needed which went haywire. So the submitted change resulted in the
    function brcmf_sdiod_sgtable_alloc() being called twice during the probe
    thus leaking the memory of the first call.
    
    Fixes: 4d79289 ("brcmfmac: switch to new platform data")
    Reported-by: Stefan Wahren <[email protected]>
    Tested-by: Stefan Wahren <[email protected]>
    Reviewed-by: Hante Meuleman <[email protected]>
    Signed-off-by: Arend van Spriel <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Arend Van Spriel authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    f5214eb View commit details
    Browse the repository at this point in the history
  8. NFSv4: Fix EXCHANGE_ID corrupt verifier issue

    commit fd40559 upstream.
    
    The verifier is allocated on the stack, but the EXCHANGE_ID RPC call was
    changed to be asynchronous by commit 8d89bd7. If we interrrupt
    the call to rpc_wait_for_completion_task(), we can therefore end up
    transmitting random stack contents in lieu of the verifier.
    
    Fixes: 8d89bd7 ("NFS setup async exchange_id")
    Signed-off-by: Trond Myklebust <[email protected]>
    Signed-off-by: Anna Schumaker <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    trondmypd authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    f7d3e54 View commit details
    Browse the repository at this point in the history
  9. mmc: sdhci-of-at91: force card detect value for non removable devices

    commit 7a1e3f1 upstream.
    
    When the device is non removable, the card detect signal is often used
    for another purpose i.e. muxed to another SoC peripheral or used as a
    GPIO. It could lead to wrong behaviors depending the default value of
    this signal if not muxed to the SDHCI controller.
    
    Fixes: bb5f8ea ("mmc: sdhci-of-at91: introduce driver for the Atmel SDMMC")
    Signed-off-by: Ludovic Desroches <[email protected]>
    Acked-by: Adrian Hunter <[email protected]>
    Signed-off-by: Ulf Hansson <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ldesroches authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    347be00 View commit details
    Browse the repository at this point in the history
  10. device property: Make dev_fwnode() public

    commit e44bb0c upstream.
    
    The function to obtain a fwnode related to a struct device is useful for
    drivers that use the fwnode property API: it allows not being aware of the
    underlying firmware implementation.
    
    Signed-off-by: Sakari Ailus <[email protected]>
    Reviewed-by: Mika Westerberg <[email protected]>
    Signed-off-by: Rafael J. Wysocki <[email protected]>
    Cc: Chris Metcalf <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Sakari Ailus authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    1f32e67 View commit details
    Browse the repository at this point in the history
  11. mmc: core: Fix access to HS400-ES devices

    commit 773dc11 upstream.
    
    HS400-ES devices fail to initialize with the following error messages.
    
    mmc1: power class selection to bus width 8 ddr 0 failed
    mmc1: error -110 whilst initialising MMC card
    
    This was seen on Samsung Chromebook Plus. Code analysis points to
    commit 3d4ef32 ("mmc: core: fix multi-bit bus width without
    high-speed mode"), which attempts to set the bus width for all but
    HS200 devices unconditionally. However, for HS400-ES, the bus width
    is already selected.
    
    Cc: Anssi Hannula <[email protected]>
    Cc: Douglas Anderson <[email protected]>
    Cc: Brian Norris <[email protected]>
    Fixes: 3d4ef32 ("mmc: core: fix multi-bit bus width ...")
    Signed-off-by: Guenter Roeck <[email protected]>
    Reviewed-by: Douglas Anderson <[email protected]>
    Reviewed-by: Shawn Lin <[email protected]>
    Tested-by: Heiko Stuebner <[email protected]>
    Signed-off-by: Ulf Hansson <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    groeck authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    943281e View commit details
    Browse the repository at this point in the history
  12. mm, mprotect: flush TLB if potentially racing with a parallel reclaim…

    … leaving stale TLB entries
    
    commit 3ea2771 upstream.
    
    Nadav Amit identified a theoritical race between page reclaim and
    mprotect due to TLB flushes being batched outside of the PTL being held.
    
    He described the race as follows:
    
            CPU0                            CPU1
            ----                            ----
                                            user accesses memory using RW PTE
                                            [PTE now cached in TLB]
            try_to_unmap_one()
            ==> ptep_get_and_clear()
            ==> set_tlb_ubc_flush_pending()
                                            mprotect(addr, PROT_READ)
                                            ==> change_pte_range()
                                            ==> [ PTE non-present - no flush ]
    
                                            user writes using cached RW PTE
            ...
    
            try_to_unmap_flush()
    
    The same type of race exists for reads when protecting for PROT_NONE and
    also exists for operations that can leave an old TLB entry behind such
    as munmap, mremap and madvise.
    
    For some operations like mprotect, it's not necessarily a data integrity
    issue but it is a correctness issue as there is a window where an
    mprotect that limits access still allows access.  For munmap, it's
    potentially a data integrity issue although the race is massive as an
    munmap, mmap and return to userspace must all complete between the
    window when reclaim drops the PTL and flushes the TLB.  However, it's
    theoritically possible so handle this issue by flushing the mm if
    reclaim is potentially currently batching TLB flushes.
    
    Other instances where a flush is required for a present pte should be ok
    as either the page lock is held preventing parallel reclaim or a page
    reference count is elevated preventing a parallel free leading to
    corruption.  In the case of page_mkclean there isn't an obvious path
    that userspace could take advantage of without using the operations that
    are guarded by this patch.  Other users such as gup as a race with
    reclaim looks just at PTEs.  huge page variants should be ok as they
    don't race with reclaim.  mincore only looks at PTEs.  userfault also
    should be ok as if a parallel reclaim takes place, it will either fault
    the page back in or read some of the data before the flush occurs
    triggering a fault.
    
    Note that a variant of this patch was acked by Andy Lutomirski but this
    was for the x86 parts on top of his PCID work which didn't make the 4.13
    merge window as expected.  His ack is dropped from this version and
    there will be a follow-on patch on top of PCID that will include his
    ack.
    
    [[email protected]: tweak comments]
    [[email protected]: fix spello]
    Link: http://lkml.kernel.org/r/[email protected]
    Reported-by: Nadav Amit <[email protected]>
    Signed-off-by: Mel Gorman <[email protected]>
    Cc: Andy Lutomirski <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Mel Gorman authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    5a1eef7 View commit details
    Browse the repository at this point in the history
  13. cpuset: fix a deadlock due to incomplete patching of cpusets_enabled()

    commit 89affbf upstream.
    
    In codepaths that use the begin/retry interface for reading
    mems_allowed_seq with irqs disabled, there exists a race condition that
    stalls the patch process after only modifying a subset of the
    static_branch call sites.
    
    This problem manifested itself as a deadlock in the slub allocator,
    inside get_any_partial.  The loop reads mems_allowed_seq value (via
    read_mems_allowed_begin), performs the defrag operation, and then
    verifies the consistency of mem_allowed via the read_mems_allowed_retry
    and the cookie returned by xxx_begin.
    
    The issue here is that both begin and retry first check if cpusets are
    enabled via cpusets_enabled() static branch.  This branch can be
    rewritted dynamically (via cpuset_inc) if a new cpuset is created.  The
    x86 jump label code fully synchronizes across all CPUs for every entry
    it rewrites.  If it rewrites only one of the callsites (specifically the
    one in read_mems_allowed_retry) and then waits for the
    smp_call_function(do_sync_core) to complete while a CPU is inside the
    begin/retry section with IRQs off and the mems_allowed value is changed,
    we can hang.
    
    This is because begin() will always return 0 (since it wasn't patched
    yet) while retry() will test the 0 against the actual value of the seq
    counter.
    
    The fix is to use two different static keys: one for begin
    (pre_enable_key) and one for retry (enable_key).  In cpuset_inc(), we
    first bump the pre_enable key to ensure that cpuset_mems_allowed_begin()
    always return a valid seqcount if are enabling cpusets.  Similarly, when
    disabling cpusets via cpuset_dec(), we first ensure that callers of
    cpuset_mems_allowed_retry() will start ignoring the seqcount value
    before we let cpuset_mems_allowed_begin() return 0.
    
    The relevant stack traces of the two stuck threads:
    
      CPU: 1 PID: 1415 Comm: mkdir Tainted: G L  4.9.36-00104-g540c51286237 Freescale#4
      Hardware name: Default string Default string/Hardware, BIOS 4.29.1-20170526215256 05/26/2017
      task: ffff8817f9c28000 task.stack: ffffc9000ffa4000
      RIP: smp_call_function_many+0x1f9/0x260
      Call Trace:
        smp_call_function+0x3b/0x70
        on_each_cpu+0x2f/0x90
        text_poke_bp+0x87/0xd0
        arch_jump_label_transform+0x93/0x100
        __jump_label_update+0x77/0x90
        jump_label_update+0xaa/0xc0
        static_key_slow_inc+0x9e/0xb0
        cpuset_css_online+0x70/0x2e0
        online_css+0x2c/0xa0
        cgroup_apply_control_enable+0x27f/0x3d0
        cgroup_mkdir+0x2b7/0x420
        kernfs_iop_mkdir+0x5a/0x80
        vfs_mkdir+0xf6/0x1a0
        SyS_mkdir+0xb7/0xe0
        entry_SYSCALL_64_fastpath+0x18/0xad
    
      ...
    
      CPU: 2 PID: 1 Comm: init Tainted: G L  4.9.36-00104-g540c51286237 Freescale#4
      Hardware name: Default string Default string/Hardware, BIOS 4.29.1-20170526215256 05/26/2017
      task: ffff8818087c0000 task.stack: ffffc90000030000
      RIP: int3+0x39/0x70
      Call Trace:
        <#DB> ? ___slab_alloc+0x28b/0x5a0
        <EOE> ? copy_process.part.40+0xf7/0x1de0
        __slab_alloc.isra.80+0x54/0x90
        copy_process.part.40+0xf7/0x1de0
        copy_process.part.40+0xf7/0x1de0
        kmem_cache_alloc_node+0x8a/0x280
        copy_process.part.40+0xf7/0x1de0
        _do_fork+0xe7/0x6c0
        _raw_spin_unlock_irq+0x2d/0x60
        trace_hardirqs_on_caller+0x136/0x1d0
        entry_SYSCALL_64_fastpath+0x5/0xad
        do_syscall_64+0x27/0x350
        SyS_clone+0x19/0x20
        do_syscall_64+0x60/0x350
        entry_SYSCALL64_slow_path+0x25/0x25
    
    Link: http://lkml.kernel.org/r/[email protected]
    Fixes: 46e700a ("mm, page_alloc: remove unnecessary taking of a seqlock when cpusets are disabled")
    Signed-off-by: Dima Zavin <[email protected]>
    Reported-by: Cliff Spradlin <[email protected]>
    Acked-by: Vlastimil Babka <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Cc: Christopher Lameter <[email protected]>
    Cc: Li Zefan <[email protected]>
    Cc: Pekka Enberg <[email protected]>
    Cc: David Rientjes <[email protected]>
    Cc: Joonsoo Kim <[email protected]>
    Cc: Mel Gorman <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    dimaz-waymo authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    45a636e View commit details
    Browse the repository at this point in the history
  14. ALSA: hda - Fix speaker output from VAIO VPCL14M1R

    commit 3f3c371 upstream.
    
    Sony VAIO VPCL14M1R needs the quirk to make the speaker working properly.
    
    Tested-by: Dmitriy <[email protected]>
    Signed-off-by: Sergei A. Trusov <[email protected]>
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    STrusov authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    c531a24 View commit details
    Browse the repository at this point in the history
  15. drm/amdgpu: Fix undue fallthroughs in golden registers initialization

    commit 5694785 upstream.
    
    As I was staring at the si_init_golden_registers code, I noticed that
    the Pitcairn initialization silently falls through the Cape Verde
    initialization, and the Oland initialization falls through the Hainan
    initialization. However there is no comment stating that this is
    intentional, and the radeon driver doesn't have any such fallthrough,
    so I suspect this is not supposed to happen.
    
    Signed-off-by: Jean Delvare <[email protected]>
    Fixes: 62a3755 ("drm/amdgpu: add si implementation v10")
    Cc: Ken Wang <[email protected]>
    Cc: Alex Deucher <[email protected]>
    Cc: "Marek Olšák" <[email protected]>
    Cc: "Christian König" <[email protected]>
    Cc: Flora Cui <[email protected]>
    Reviewed-by: Marek Olšák <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jdelvare authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    69f15ff View commit details
    Browse the repository at this point in the history
  16. ASoC: do not close shared backend dailink

    commit b1cd2e3 upstream.
    
    Multiple frontend dailinks may be connected to a backend
    dailink at the same time. When one of frontend dailinks is
    closed, the associated backend dailink should not be closed
    if it is connected to other active frontend dailinks. Change
    ensures that backend dailink is closed only after all
    connected frontend dailinks are closed.
    
    Signed-off-by: Gopikrishnaiah Anandan <[email protected]>
    Signed-off-by: Banajit Goswami <[email protected]>
    Signed-off-by: Patrick Lai <[email protected]>
    Signed-off-by: Mark Brown <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Banajit Goswami authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    650c763 View commit details
    Browse the repository at this point in the history
  17. KVM: async_pf: make rcu irq exit if not triggered from idle task

    commit 337c017 upstream.
    
     WARNING: CPU: 5 PID: 1242 at kernel/rcu/tree_plugin.h:323 rcu_note_context_switch+0x207/0x6b0
     CPU: 5 PID: 1242 Comm: unity-settings- Not tainted 4.13.0-rc2+ Freescale#1
     RIP: 0010:rcu_note_context_switch+0x207/0x6b0
     Call Trace:
      __schedule+0xda/0xba0
      ? kvm_async_pf_task_wait+0x1b2/0x270
      schedule+0x40/0x90
      kvm_async_pf_task_wait+0x1cc/0x270
      ? prepare_to_swait+0x22/0x70
      do_async_page_fault+0x77/0xb0
      ? do_async_page_fault+0x77/0xb0
      async_page_fault+0x28/0x30
     RIP: 0010:__d_lookup_rcu+0x90/0x1e0
    
    I encounter this when trying to stress the async page fault in L1 guest w/
    L2 guests running.
    
    Commit 9b132fb (Add rcu user eqs exception hooks for async page
    fault) adds rcu_irq_enter/exit() to kvm_async_pf_task_wait() to exit cpu
    idle eqs when needed, to protect the code that needs use rcu.  However,
    we need to call the pair even if the function calls schedule(), as seen
    from the above backtrace.
    
    This patch fixes it by informing the RCU subsystem exit/enter the irq
    towards/away from idle for both n.halted and !n.halted.
    
    Cc: Paolo Bonzini <[email protected]>
    Cc: Radim Krčmář <[email protected]>
    Cc: Paul E. McKenney <[email protected]>
    Signed-off-by: Wanpeng Li <[email protected]>
    Reviewed-by: Paolo Bonzini <[email protected]>
    Signed-off-by: Radim Krčmář <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Wanpeng Li authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    0c609d3 View commit details
    Browse the repository at this point in the history
  18. mm/page_alloc: Remove kernel address exposure in free_reserved_area()

    commit adb1fe9 upstream.
    
    Linus suggested we try to remove some of the low-hanging fruit related
    to kernel address exposure in dmesg.  The only leaks I see on my local
    system are:
    
      Freeing SMP alternatives memory: 32K (ffffffff9e309000 - ffffffff9e311000)
      Freeing initrd memory: 10588K (ffffa0b736b42000 - ffffa0b737599000)
      Freeing unused kernel memory: 3592K (ffffffff9df87000 - ffffffff9e309000)
      Freeing unused kernel memory: 1352K (ffffa0b7288ae000 - ffffa0b728a00000)
      Freeing unused kernel memory: 632K (ffffa0b728d62000 - ffffa0b728e00000)
    
    Linus says:
    
      "I suspect we should just remove [the addresses in the 'Freeing'
       messages]. I'm sure they are useful in theory, but I suspect they
       were more useful back when the whole "free init memory" was
       originally done.
    
       These days, if we have a use-after-free, I suspect the init-mem
       situation is the easiest situation by far. Compared to all the dynamic
       allocations which are much more likely to show it anyway. So having
       debug output for that case is likely not all that productive."
    
    With this patch the freeing messages now look like this:
    
      Freeing SMP alternatives memory: 32K
      Freeing initrd memory: 10588K
      Freeing unused kernel memory: 3592K
      Freeing unused kernel memory: 1352K
      Freeing unused kernel memory: 632K
    
    Suggested-by: Linus Torvalds <[email protected]>
    Signed-off-by: Josh Poimboeuf <[email protected]>
    Cc: Andy Lutomirski <[email protected]>
    Cc: Borislav Petkov <[email protected]>
    Cc: Brian Gerst <[email protected]>
    Cc: Denys Vlasenko <[email protected]>
    Cc: H. Peter Anvin <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Cc: Thomas Gleixner <[email protected]>
    Cc: [email protected]
    Link: http://lkml.kernel.org/r/6836ff90c45b71d38e5d4405aec56fa9e5d1d4b2.1477405374.git.jpoimboe@redhat.com
    Signed-off-by: Ingo Molnar <[email protected]>
    Cc: Kees Cook <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jpoimboe authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    7b95b74 View commit details
    Browse the repository at this point in the history
  19. timers: Fix overflow in get_next_timer_interrupt

    commit 34f41c0 upstream.
    
    For e.g. HZ=100, timer being 430 jiffies in the future, and 32 bit
    unsigned int, there is an overflow on unsigned int right-hand side
    of the expression which results with wrong values being returned.
    
    Type cast the multiplier to 64bit to avoid that issue.
    
    Fixes: 46c8f0b ("timers: Fix get_next_timer_interrupt() computation")
    Signed-off-by: Matija Glavinic Pecotic <[email protected]>
    Signed-off-by: Thomas Gleixner <[email protected]>
    Reviewed-by: Alexander Sverdlin <[email protected]>
    Cc: [email protected]
    Cc: [email protected]
    Link: http://lkml.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    matijaGP authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    9ef8b23 View commit details
    Browse the repository at this point in the history
  20. powerpc/tm: Fix saving of TM SPRs in core dump

    commit cd63f3c upstream.
    
    Currently flush_tmregs_to_thread() does not save the TM SPRs (TFHAR,
    TFIAR, TEXASR) to the thread struct, unless the process is currently
    inside a suspended transaction.
    
    If the process is core dumping, and the TM SPRs have changed since the
    last time the process was context switched, then we will save stale
    values of the TM SPRs to the core dump.
    
    Fix it by saving the live register state to the thread struct in that
    case.
    
    Fixes: 08e1c01 ("powerpc/ptrace: Enable support for TM SPR state")
    Signed-off-by: Gustavo Romero <[email protected]>
    Reviewed-by: Cyril Bur <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Gustavo Romero authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    8164692 View commit details
    Browse the repository at this point in the history
  21. powerpc/64: Fix __check_irq_replay missing decrementer interrupt

    commit 3db40c3 upstream.
    
    If the decrementer wraps again and de-asserts the decrementer
    exception while hard-disabled, __check_irq_replay() has a test to
    notice the wrap when interrupts are re-enabled.
    
    The decrementer check must be done when clearing the PACA_IRQ_HARD_DIS
    flag, not when the PACA_IRQ_DEC flag is tested. Previously this worked
    because the decrementer interrupt was always the first one checked
    after clearing the hard disable flag, but HMI check was moved ahead of
    that, which introduced this bug.
    
    This can cause a missed decrementer interrupt if we soft-disable
    interrupts then take an HMI which is recorded in irq_happened, then
    hard-disable interrupts for > 4s to wrap the decrementer.
    
    Fixes: e0e0d6b ("powerpc/64: Replay hypervisor maintenance interrupt first")
    Signed-off-by: Nicholas Piggin <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    npiggin authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    03ebdd1 View commit details
    Browse the repository at this point in the history
  22. iommu/amd: Enable ga_log_intr when enabling guest_mode

    commit efe6f24 upstream.
    
    IRTE[GALogIntr] bit should set when enabling guest_mode, which enables
    IOMMU to generate entry in GALog when IRTE[IsRun] is not set, and send
    an interrupt to notify IOMMU driver.
    
    Signed-off-by: Suravee Suthikulpanit <[email protected]>
    Cc: Joerg Roedel <[email protected]>
    Fixes: d98de49 ('iommu/amd: Enable vAPIC interrupt remapping mode by default')
    Signed-off-by: Joerg Roedel <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ssuthiku-amd authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    be5c6ef View commit details
    Browse the repository at this point in the history
  23. gpiolib: skip unwanted events, don't convert them to opposite edge

    commit df1e76f upstream.
    
    The previous fix for filtering out of unwatched events was not entirely
    correct. Instead of skipping the events we don't want, they are now
    interpreted as events with opposing edge.
    
    In order to fix it: always read the GPIO line value on interrupt and
    only emit the event if it corresponds with the event type we requested.
    
    Fixes: ad537b8 ("gpiolib: fix filtering out unwanted events")
    Signed-off-by: Bartosz Golaszewski <[email protected]>
    Signed-off-by: Linus Walleij <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    brgl authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    b680e22 View commit details
    Browse the repository at this point in the history
  24. ext4: fix SEEK_HOLE/SEEK_DATA for blocksize < pagesize

    commit fcf5ea1 upstream.
    
    ext4_find_unwritten_pgoff() does not properly handle a situation when
    starting index is in the middle of a page and blocksize < pagesize. The
    following command shows the bug on filesystem with 1k blocksize:
    
      xfs_io -f -c "falloc 0 4k" \
                -c "pwrite 1k 1k" \
                -c "pwrite 3k 1k" \
                -c "seek -a -r 0" foo
    
    In this example, neither lseek(fd, 1024, SEEK_HOLE) nor lseek(fd, 2048,
    SEEK_DATA) will return the correct result.
    
    Fix the problem by neglecting buffers in a page before starting offset.
    
    Reported-by: Andreas Gruenbacher <[email protected]>
    Signed-off-by: Theodore Ts'o <[email protected]>
    Signed-off-by: Jan Kara <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jankara authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    0814c3a View commit details
    Browse the repository at this point in the history
  25. ext4: fix overflow caused by missing cast in ext4_resize_fs()

    commit aec5175 upstream.
    
    On a 32-bit platform, the value of n_blcoks_count may be wrong during
    the file system is resized to size larger than 2^32 blocks.  This may
    caused the superblock being corrupted with zero blocks count.
    
    Fixes: 1c6bd71
    Signed-off-by: Jerry Lee <[email protected]>
    Signed-off-by: Theodore Ts'o <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Jerry Lee authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    12353a0 View commit details
    Browse the repository at this point in the history
  26. ARM: dts: armada-38x: Fix irq type for pca955

    commit 8d45141 upstream.
    
    As written in the datasheet the PCA955 can only handle low level irq and
    not edge irq.
    
    Without this fix the interrupt is not usable for pca955: the gpio-pca953x
    driver already set the irq type as low level which is incompatible with
    edge type, then the kernel prevents using the interrupt:
    
    "irq: type mismatch, failed to map hwirq-18 for
    /soc/internal-regs/gpio@18100!"
    
    Fixes: 928413b ("ARM: mvebu: Add Armada 388 General Purpose
    Development Board support")
    Signed-off-by: Gregory CLEMENT <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    gclement authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    ff603e0 View commit details
    Browse the repository at this point in the history
  27. ARM: dts: tango4: Request RGMII RX and TX clock delays

    commit 985333b upstream.
    
    RX and TX clock delays are required. Request them explicitly.
    
    Fixes: cad008b ("ARM: dts: tango4: Initial device trees")
    Signed-off-by: Marc Gonzalez <[email protected]>
    Signed-off-by: Arnd Bergmann <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Marc Gonzalez authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    4f35448 View commit details
    Browse the repository at this point in the history
  28. media: platform: davinci: return -EINVAL for VPFE_CMD_S_CCDC_RAW_PARA…

    …MS ioctl
    
    commit da05d52 upstream.
    
    this patch makes sure VPFE_CMD_S_CCDC_RAW_PARAMS ioctl no longer works
    for vpfe_capture driver with a minimal patch suitable for backporting.
    
    - This ioctl was never in public api and was only defined in kernel header.
    - The function set_params constantly mixes up pointers and phys_addr_t
      numbers.
    - This is part of a 'VPFE_CMD_S_CCDC_RAW_PARAMS' ioctl command that is
      described as an 'experimental ioctl that will change in future kernels'.
    - The code to allocate the table never gets called after we copy_from_user
      the user input over the kernel settings, and then compare them
      for inequality.
    - We then go on to use an address provided by user space as both the
      __user pointer for input and pass it through phys_to_virt to come up
      with a kernel pointer to copy the data to. This looks like a trivially
      exploitable root hole.
    
    Due to these reasons we make sure this ioctl now returns -EINVAL and backport
    this patch as far as possible.
    
    Fixes: 5f15fbb ("V4L/DVB (12251): v4l: dm644x ccdc module for vpfe capture driver")
    
    Signed-off-by: Lad, Prabhakar <[email protected]>
    Signed-off-by: Hans Verkuil <[email protected]>
    Signed-off-by: Mauro Carvalho Chehab <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    prabhakarlad authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    733d7ab View commit details
    Browse the repository at this point in the history
  29. iscsi-target: Fix initial login PDU asynchronous socket close OOPs

    commit 25cdda9 upstream.
    
    This patch fixes a OOPs originally introduced by:
    
       commit bb04835
       Author: Nicholas Bellinger <[email protected]>
       Date:   Thu Sep 5 14:54:04 2013 -0700
    
       iscsi-target: Add sk->sk_state_change to cleanup after TCP failure
    
    which would trigger a NULL pointer dereference when a TCP connection
    was closed asynchronously via iscsi_target_sk_state_change(), but only
    when the initial PDU processing in iscsi_target_do_login() from iscsi_np
    process context was blocked waiting for backend I/O to complete.
    
    To address this issue, this patch makes the following changes.
    
    First, it introduces some common helper functions used for checking
    socket closing state, checking login_flags, and atomically checking
    socket closing state + setting login_flags.
    
    Second, it introduces a LOGIN_FLAGS_INITIAL_PDU bit to know when a TCP
    connection has dropped via iscsi_target_sk_state_change(), but the
    initial PDU processing within iscsi_target_do_login() in iscsi_np
    context is still running.  For this case, it sets LOGIN_FLAGS_CLOSED,
    but doesn't invoke schedule_delayed_work().
    
    The original NULL pointer dereference case reported by MNC is now handled
    by iscsi_target_do_login() doing a iscsi_target_sk_check_close() before
    transitioning to FFP to determine when the socket has already closed,
    or iscsi_target_start_negotiation() if the login needs to exchange
    more PDUs (eg: iscsi_target_do_login returned 0) but the socket has
    closed.  For both of these cases, the cleanup up of remaining connection
    resources will occur in iscsi_target_start_negotiation() from iscsi_np
    process context once the failure is detected.
    
    Finally, to handle to case where iscsi_target_sk_state_change() is
    called after the initial PDU procesing is complete, it now invokes
    conn->login_work -> iscsi_target_do_login_rx() to perform cleanup once
    existing iscsi_target_sk_check_close() checks detect connection failure.
    For this case, the cleanup of remaining connection resources will occur
    in iscsi_target_do_login_rx() from delayed workqueue process context
    once the failure is detected.
    
    Reported-by: Mike Christie <[email protected]>
    Reviewed-by: Mike Christie <[email protected]>
    Tested-by: Mike Christie <[email protected]>
    Cc: Mike Christie <[email protected]>
    Reported-by: Hannes Reinecke <[email protected]>
    Cc: Hannes Reinecke <[email protected]>
    Cc: Sagi Grimberg <[email protected]>
    Cc: Varun Prakash <[email protected]>
    Signed-off-by: Nicholas Bellinger <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Nicholas Bellinger authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    bdabf09 View commit details
    Browse the repository at this point in the history
  30. mmc: dw_mmc: Use device_property_read instead of of_property_read

    commit 852ff5f upstream.
    
    Using the device_property interfaces allows the dw_mmc driver to work
    on platforms which run on either device tree or ACPI.
    
    Signed-off-by: David Woods <[email protected]>
    Reviewed-by: Chris Metcalf <[email protected]>
    Acked-by: Jaehoon Chung <[email protected]>
    Signed-off-by: Ulf Hansson <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    dwoods2 authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    baf4ad0 View commit details
    Browse the repository at this point in the history
  31. mmc: core: Use device_property_read instead of of_property_read

    commit 73a47a9 upstream.
    
    Using the device_property interfaces allows mmc drivers to work
    on platforms which run on either device tree or ACPI.
    
    Signed-off-by: David Woods <[email protected]>
    Reviewed-by: Chris Metcalf <[email protected]>
    Signed-off-by: Ulf Hansson <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    dwoods2 authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    e92add2 View commit details
    Browse the repository at this point in the history
  32. media: lirc: LIRC_GET_REC_RESOLUTION should return microseconds

    commit 9f5039b upstream.
    
    Since commit e8f4818 ("[media] lirc: advertise
    LIRC_CAN_GET_REC_RESOLUTION and improve") lircd uses the ioctl
    LIRC_GET_REC_RESOLUTION to determine the shortest pulse or space that
    the hardware can detect. This breaks decoding in lirc because lircd
    expects the answer in microseconds, but nanoseconds is returned.
    
    Reported-by: Derek <[email protected]>
    Tested-by: Derek <[email protected]>
    Signed-off-by: Sean Young <[email protected]>
    Signed-off-by: Mauro Carvalho Chehab <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    seanyoung authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    c14e327 View commit details
    Browse the repository at this point in the history
  33. f2fs: sanity check checkpoint segno and blkoff

    commit 15d3042 upstream.
    
    Make sure segno and blkoff read from raw image are valid.
    
    Cc: [email protected]
    Signed-off-by: Jin Qian <[email protected]>
    [Jaegeuk Kim: adjust minor coding style]
    Signed-off-by: Jaegeuk Kim <[email protected]>
    [AmitP: Found in Android Security bulletin for Aug'17, fixes CVE-2017-10663]
    Signed-off-by: Amit Pundir <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Jin Qian authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    0f442c5 View commit details
    Browse the repository at this point in the history
  34. Btrfs: fix early ENOSPC due to delalloc

    commit 17024ad upstream.
    
    If a lot of metadata is reserved for outstanding delayed allocations, we
    rely on shrink_delalloc() to reclaim metadata space in order to fulfill
    reservation tickets. However, shrink_delalloc() has a shortcut where if
    it determines that space can be overcommitted, it will stop early. This
    made sense before the ticketed enospc system, but now it means that
    shrink_delalloc() will often not reclaim enough space to fulfill any
    tickets, leading to an early ENOSPC. (Reservation tickets don't care
    about being able to overcommit, they need every byte accounted for.)
    
    Fix it by getting rid of the shortcut so that shrink_delalloc() reclaims
    all of the metadata it is supposed to. This fixes early ENOSPCs we were
    seeing when doing a btrfs receive to populate a new filesystem, as well
    as early ENOSPCs Christoph saw when doing a big cp -r onto Btrfs.
    
    Fixes: 957780e ("Btrfs: introduce ticketed enospc infrastructure")
    Tested-by: Christoph Anton Mitterer <[email protected]>
    Reviewed-by: Josef Bacik <[email protected]>
    Signed-off-by: Omar Sandoval <[email protected]>
    Signed-off-by: David Sterba <[email protected]>
    Signed-off-by: Nikolay Borisov <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    osandov authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    3a63729 View commit details
    Browse the repository at this point in the history
  35. saa7164: fix double fetch PCIe access condition

    commit 6fb05e0 upstream.
    
    Avoid a double fetch by reusing the values from the prior transfer.
    
    Originally reported via https://bugzilla.kernel.org/show_bug.cgi?id=195559
    
    Thanks to Pengfei Wang <[email protected]> for reporting.
    
    Signed-off-by: Steven Toth <[email protected]>
    Reported-by: Pengfei Wang <[email protected]>
    Signed-off-by: Mauro Carvalho Chehab <[email protected]>
    Cc: Eduardo Valentin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    stoth68000 authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    12d17d7 View commit details
    Browse the repository at this point in the history
  36. tcp_bbr: cut pacing rate only if filled pipe

    [ Upstream commit 4aea287 ]
    
    In bbr_set_pacing_rate(), which decides whether to cut the pacing
    rate, there was some code that considered exiting STARTUP to be
    equivalent to the notion of filling the pipe (i.e.,
    bbr_full_bw_reached()). Specifically, as the code was structured,
    exiting STARTUP and going into PROBE_RTT could cause us to cut the
    pacing rate down to something silly and low, based on whatever
    bandwidth samples we've had so far, when it's possible that all of
    them have been small app-limited bandwidth samples that are not
    representative of the bandwidth available in the path. (The code was
    correct at the time it was written, but the state machine changed
    without this spot being adjusted correspondingly.)
    
    Fixes: 0f8782e ("tcp_bbr: add BBR congestion control")
    Signed-off-by: Neal Cardwell <[email protected]>
    Signed-off-by: Yuchung Cheng <[email protected]>
    Signed-off-by: Soheil Hassas Yeganeh <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    nealcardwell authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    73520d3 View commit details
    Browse the repository at this point in the history
  37. tcp_bbr: introduce bbr_bw_to_pacing_rate() helper

    [ Upstream commit f19fd62 ]
    
    Introduce a helper to convert a BBR bandwidth and gain factor to a
    pacing rate in bytes per second. This is a pure refactor, but is
    needed for two following fixes.
    
    Fixes: 0f8782e ("tcp_bbr: add BBR congestion control")
    Signed-off-by: Neal Cardwell <[email protected]>
    Signed-off-by: Yuchung Cheng <[email protected]>
    Signed-off-by: Soheil Hassas Yeganeh <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    nealcardwell authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    ec78968 View commit details
    Browse the repository at this point in the history
  38. tcp_bbr: introduce bbr_init_pacing_rate_from_rtt() helper

    [ Upstream commit 79135b8 ]
    
    Introduce a helper to initialize the BBR pacing rate unconditionally,
    based on the current cwnd and RTT estimate. This is a pure refactor,
    but is needed for two following fixes.
    
    Fixes: 0f8782e ("tcp_bbr: add BBR congestion control")
    Signed-off-by: Neal Cardwell <[email protected]>
    Signed-off-by: Yuchung Cheng <[email protected]>
    Signed-off-by: Soheil Hassas Yeganeh <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    nealcardwell authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    0c0ede3 View commit details
    Browse the repository at this point in the history
  39. tcp_bbr: remove sk_pacing_rate=0 transient during init

    [ Upstream commit 1d3648e ]
    
    Fix a corner case noticed by Eric Dumazet, where BBR's setting
    sk->sk_pacing_rate to 0 during initialization could theoretically
    cause packets in the sending host to hang if there were packets "in
    flight" in the pacing infrastructure at the time the BBR congestion
    control state is initialized. This could occur if the pacing
    infrastructure happened to race with bbr_init() in a way such that the
    pacer read the 0 rather than the immediately following non-zero pacing
    rate.
    
    Fixes: 0f8782e ("tcp_bbr: add BBR congestion control")
    Reported-by: Eric Dumazet <[email protected]>
    Signed-off-by: Neal Cardwell <[email protected]>
    Signed-off-by: Yuchung Cheng <[email protected]>
    Signed-off-by: Soheil Hassas Yeganeh <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    nealcardwell authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    2e6b237 View commit details
    Browse the repository at this point in the history
  40. tcp_bbr: init pacing rate on first RTT sample

    [ Upstream commit 3298456 ]
    
    Fixes the following behavior: for connections that had no RTT sample
    at the time of initializing congestion control, BBR was initializing
    the pacing rate to a high nominal rate (based an a guess of RTT=1ms,
    in case this is LAN traffic). Then BBR never adjusted the pacing rate
    downward upon obtaining an actual RTT sample, if the connection never
    filled the pipe (e.g. all sends were small app-limited writes()).
    
    This fix adjusts the pacing rate upon obtaining the first RTT sample.
    
    Fixes: 0f8782e ("tcp_bbr: add BBR congestion control")
    Signed-off-by: Neal Cardwell <[email protected]>
    Signed-off-by: Yuchung Cheng <[email protected]>
    Signed-off-by: Soheil Hassas Yeganeh <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    nealcardwell authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    0cd73c4 View commit details
    Browse the repository at this point in the history
  41. ipv4: ipv6: initialize treq->txhash in cookie_v[46]_check()

    [ Upstream commit 18bcf29 ]
    
    KMSAN reported use of uninitialized memory in skb_set_hash_from_sk(),
    which originated from the TCP request socket created in
    cookie_v6_check():
    
     ==================================================================
     BUG: KMSAN: use of uninitialized memory in tcp_transmit_skb+0xf77/0x3ec0
     CPU: 1 PID: 2949 Comm: syz-execprog Not tainted 4.11.0-rc5+ #2931
     Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
     TCP: request_sock_TCPv6: Possible SYN flooding on port 20028. Sending cookies.  Check SNMP counters.
     Call Trace:
      <IRQ>
      __dump_stack lib/dump_stack.c:16
      dump_stack+0x172/0x1c0 lib/dump_stack.c:52
      kmsan_report+0x12a/0x180 mm/kmsan/kmsan.c:927
      __msan_warning_32+0x61/0xb0 mm/kmsan/kmsan_instr.c:469
      skb_set_hash_from_sk ./include/net/sock.h:2011
      tcp_transmit_skb+0xf77/0x3ec0 net/ipv4/tcp_output.c:983
      tcp_send_ack+0x75b/0x830 net/ipv4/tcp_output.c:3493
      tcp_delack_timer_handler+0x9a6/0xb90 net/ipv4/tcp_timer.c:284
      tcp_delack_timer+0x1b0/0x310 net/ipv4/tcp_timer.c:309
      call_timer_fn+0x240/0x520 kernel/time/timer.c:1268
      expire_timers kernel/time/timer.c:1307
      __run_timers+0xc13/0xf10 kernel/time/timer.c:1601
      run_timer_softirq+0x36/0xa0 kernel/time/timer.c:1614
      __do_softirq+0x485/0x942 kernel/softirq.c:284
      invoke_softirq kernel/softirq.c:364
      irq_exit+0x1fa/0x230 kernel/softirq.c:405
      exiting_irq+0xe/0x10 ./arch/x86/include/asm/apic.h:657
      smp_apic_timer_interrupt+0x5a/0x80 arch/x86/kernel/apic/apic.c:966
      apic_timer_interrupt+0x86/0x90 arch/x86/entry/entry_64.S:489
     RIP: 0010:native_restore_fl ./arch/x86/include/asm/irqflags.h:36
     RIP: 0010:arch_local_irq_restore ./arch/x86/include/asm/irqflags.h:77
     RIP: 0010:__msan_poison_alloca+0xed/0x120 mm/kmsan/kmsan_instr.c:440
     RSP: 0018:ffff880024917cd8 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff10
     RAX: 0000000000000246 RBX: ffff8800224c0000 RCX: 0000000000000005
     RDX: 0000000000000004 RSI: ffff880000000000 RDI: ffffea0000b6d770
     RBP: ffff880024917d58 R08: 0000000000000dd8 R09: 0000000000000004
     R10: 0000160000000000 R11: 0000000000000000 R12: ffffffff85abf810
     R13: ffff880024917dd8 R14: 0000000000000010 R15: ffffffff81cabde4
      </IRQ>
      poll_select_copy_remaining+0xac/0x6b0 fs/select.c:293
      SYSC_select+0x4b4/0x4e0 fs/select.c:653
      SyS_select+0x76/0xa0 fs/select.c:634
      entry_SYSCALL_64_fastpath+0x13/0x94 arch/x86/entry/entry_64.S:204
     RIP: 0033:0x4597e7
     RSP: 002b:000000c420037ee0 EFLAGS: 00000246 ORIG_RAX: 0000000000000017
     RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00000000004597e7
     RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
     RBP: 000000c420037ef0 R08: 000000c420037ee0 R09: 0000000000000059
     R10: 0000000000000000 R11: 0000000000000246 R12: 000000000042dc20
     R13: 00000000000000f3 R14: 0000000000000030 R15: 0000000000000003
     chained origin:
      save_stack_trace+0x37/0x40 arch/x86/kernel/stacktrace.c:59
      kmsan_save_stack_with_flags mm/kmsan/kmsan.c:302
      kmsan_save_stack mm/kmsan/kmsan.c:317
      kmsan_internal_chain_origin+0x12a/0x1f0 mm/kmsan/kmsan.c:547
      __msan_store_shadow_origin_4+0xac/0x110 mm/kmsan/kmsan_instr.c:259
      tcp_create_openreq_child+0x709/0x1ae0 net/ipv4/tcp_minisocks.c:472
      tcp_v6_syn_recv_sock+0x7eb/0x2a30 net/ipv6/tcp_ipv6.c:1103
      tcp_get_cookie_sock+0x136/0x5f0 net/ipv4/syncookies.c:212
      cookie_v6_check+0x17a9/0x1b50 net/ipv6/syncookies.c:245
      tcp_v6_cookie_check net/ipv6/tcp_ipv6.c:989
      tcp_v6_do_rcv+0xdd8/0x1c60 net/ipv6/tcp_ipv6.c:1298
      tcp_v6_rcv+0x41a3/0x4f00 net/ipv6/tcp_ipv6.c:1487
      ip6_input_finish+0x82f/0x1ee0 net/ipv6/ip6_input.c:279
      NF_HOOK ./include/linux/netfilter.h:257
      ip6_input+0x239/0x290 net/ipv6/ip6_input.c:322
      dst_input ./include/net/dst.h:492
      ip6_rcv_finish net/ipv6/ip6_input.c:69
      NF_HOOK ./include/linux/netfilter.h:257
      ipv6_rcv+0x1dbd/0x22e0 net/ipv6/ip6_input.c:203
      __netif_receive_skb_core+0x2f6f/0x3a20 net/core/dev.c:4208
      __netif_receive_skb net/core/dev.c:4246
      process_backlog+0x667/0xba0 net/core/dev.c:4866
      napi_poll net/core/dev.c:5268
      net_rx_action+0xc95/0x1590 net/core/dev.c:5333
      __do_softirq+0x485/0x942 kernel/softirq.c:284
     origin:
      save_stack_trace+0x37/0x40 arch/x86/kernel/stacktrace.c:59
      kmsan_save_stack_with_flags mm/kmsan/kmsan.c:302
      kmsan_internal_poison_shadow+0xb1/0x1a0 mm/kmsan/kmsan.c:198
      kmsan_kmalloc+0x7f/0xe0 mm/kmsan/kmsan.c:337
      kmem_cache_alloc+0x1c2/0x1e0 mm/slub.c:2766
      reqsk_alloc ./include/net/request_sock.h:87
      inet_reqsk_alloc+0xa4/0x5b0 net/ipv4/tcp_input.c:6200
      cookie_v6_check+0x4f4/0x1b50 net/ipv6/syncookies.c:169
      tcp_v6_cookie_check net/ipv6/tcp_ipv6.c:989
      tcp_v6_do_rcv+0xdd8/0x1c60 net/ipv6/tcp_ipv6.c:1298
      tcp_v6_rcv+0x41a3/0x4f00 net/ipv6/tcp_ipv6.c:1487
      ip6_input_finish+0x82f/0x1ee0 net/ipv6/ip6_input.c:279
      NF_HOOK ./include/linux/netfilter.h:257
      ip6_input+0x239/0x290 net/ipv6/ip6_input.c:322
      dst_input ./include/net/dst.h:492
      ip6_rcv_finish net/ipv6/ip6_input.c:69
      NF_HOOK ./include/linux/netfilter.h:257
      ipv6_rcv+0x1dbd/0x22e0 net/ipv6/ip6_input.c:203
      __netif_receive_skb_core+0x2f6f/0x3a20 net/core/dev.c:4208
      __netif_receive_skb net/core/dev.c:4246
      process_backlog+0x667/0xba0 net/core/dev.c:4866
      napi_poll net/core/dev.c:5268
      net_rx_action+0xc95/0x1590 net/core/dev.c:5333
      __do_softirq+0x485/0x942 kernel/softirq.c:284
     ==================================================================
    
    Similar error is reported for cookie_v4_check().
    
    Fixes: 58d607d ("tcp: provide skb->hash to synack packets")
    Signed-off-by: Alexander Potapenko <[email protected]>
    Acked-by: Eric Dumazet <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ramosian-glider authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    a62bc8d View commit details
    Browse the repository at this point in the history
  42. net: Zero terminate ifr_name in dev_ifname().

    [ Upstream commit 6367911 ]
    
    The ifr.ifr_name is passed around and assumed to be NULL terminated.
    
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    davem330 authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    0b83249 View commit details
    Browse the repository at this point in the history
  43. ipv6: avoid overflow of offset in ip6_find_1stfragopt

    [ Upstream commit 6399f1f ]
    
    In some cases, offset can overflow and can cause an infinite loop in
    ip6_find_1stfragopt(). Make it unsigned int to prevent the overflow, and
    cap it at IPV6_MAXPLEN, since packets larger than that should be invalid.
    
    This problem has been here since before the beginning of git history.
    
    Signed-off-by: Sabrina Dubroca <[email protected]>
    Acked-by: Hannes Frederic Sowa <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    qsn authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    4a2ffe1 View commit details
    Browse the repository at this point in the history
  44. net: dsa: b53: Add missing ARL entries for BCM53125

    [ Upstream commit be35e8c ]
    
    The BCM53125 entry was missing an arl_entries member which would
    basically prevent the ARL search from terminating properly. This switch
    has 4 ARL entries, so add that.
    
    Fixes: 1da6df8 ("net: dsa: b53: Implement ARL add/del/dump operations")
    Signed-off-by: Florian Fainelli <[email protected]>
    Reviewed-by: Vivien Didelot <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ffainelli authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    5a2d511 View commit details
    Browse the repository at this point in the history
  45. ipv4: initialize fib_trie prior to register_netdev_notifier call.

    [ Upstream commit 8799a22 ]
    
    Net stack initialization currently initializes fib-trie after the
    first call to netdevice_notifier() call. In fact fib_trie initialization
    needs to happen before first rtnl_register(). It does not cause any problem
    since there are no devices UP at this moment, but trying to bring 'lo'
    UP at initialization would make this assumption wrong and exposes the issue.
    
    Fixes following crash
    
     Call Trace:
      ? alternate_node_alloc+0x76/0xa0
      fib_table_insert+0x1b7/0x4b0
      fib_magic.isra.17+0xea/0x120
      fib_add_ifaddr+0x7b/0x190
      fib_netdev_event+0xc0/0x130
      register_netdevice_notifier+0x1c1/0x1d0
      ip_fib_init+0x72/0x85
      ip_rt_init+0x187/0x1e9
      ip_init+0xe/0x1a
      inet_init+0x171/0x26c
      ? ipv4_offload_init+0x66/0x66
      do_one_initcall+0x43/0x160
      kernel_init_freeable+0x191/0x219
      ? rest_init+0x80/0x80
      kernel_init+0xe/0x150
      ret_from_fork+0x22/0x30
     Code: f6 46 23 04 74 86 4c 89 f7 e8 ae 45 01 00 49 89 c7 4d 85 ff 0f 85 7b ff ff ff 31 db eb 08 4c 89 ff e8 16 47 01 00 48 8b 44 24 38 <45> 8b 6e 14 4d 63 76 74 48 89 04 24 0f 1f 44 00 00 48 83 c4 08
     RIP: kmem_cache_alloc+0xcf/0x1c0 RSP: ffff9b1500017c28
     CR2: 0000000000000014
    
    Fixes: 7b1a74f ("[NETNS]: Refactor fib initialization so it can handle multiple namespaces.")
    Fixes: 7f9b805 ("[IPV4]: fib hash|trie initialization")
    
    Signed-off-by: Mahesh Bandewar <[email protected]>
    Acked-by: "Eric W. Biederman" <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Mahesh Bandewar authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    0c47f11 View commit details
    Browse the repository at this point in the history
  46. rtnetlink: allocate more memory for dev_set_mac_address()

    [ Upstream commit 153711f ]
    
    virtnet_set_mac_address() interprets mac address as struct
    sockaddr, but upper layer only allocates dev->addr_len
    which is ETH_ALEN + sizeof(sa_family_t) in this case.
    
    We lack a unified definition for mac address, so just fix
    the upper layer, this also allows drivers to interpret it
    to struct sockaddr freely.
    
    Reported-by: David Ahern <[email protected]>
    Signed-off-by: Cong Wang <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    congwang authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    cda2bc9 View commit details
    Browse the repository at this point in the history
  47. mcs7780: Fix initialization when CONFIG_VMAP_STACK is enabled

    [ Upstream commit 9476d39 ]
    
    DMA transfers are not allowed to buffers that are on the stack.
    Therefore allocate a buffer to store the result of usb_control_message().
    
    Fixes these bugreports:
    https://bugzilla.kernel.org/show_bug.cgi?id=195217
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1421387
    https://bugzilla.redhat.com/show_bug.cgi?id=1427398
    
    Shortened kernel backtrace from 4.11.9-200.fc25.x86_64:
    kernel: ------------[ cut here ]------------
    kernel: WARNING: CPU: 3 PID: 2957 at drivers/usb/core/hcd.c:1587
    kernel: transfer buffer not dma capable
    kernel: Call Trace:
    kernel: dump_stack+0x63/0x86
    kernel: __warn+0xcb/0xf0
    kernel: warn_slowpath_fmt+0x5a/0x80
    kernel: usb_hcd_map_urb_for_dma+0x37f/0x570
    kernel: ? try_to_del_timer_sync+0x53/0x80
    kernel: usb_hcd_submit_urb+0x34e/0xb90
    kernel: ? schedule_timeout+0x17e/0x300
    kernel: ? del_timer_sync+0x50/0x50
    kernel: ? __slab_free+0xa9/0x300
    kernel: usb_submit_urb+0x2f4/0x560
    kernel: ? urb_destroy+0x24/0x30
    kernel: usb_start_wait_urb+0x6e/0x170
    kernel: usb_control_msg+0xdc/0x120
    kernel: mcs_get_reg+0x36/0x40 [mcs7780]
    kernel: mcs_net_open+0xb5/0x5c0 [mcs7780]
    ...
    
    Regression goes back to 4.9, so it's a good candidate for -stable.
    Though it's the decision of the maintainer.
    
    Thanks to Dan Williams for adding the "transfer buffer not dma capable"
    warning in the first place. It instantly pointed me in the right direction.
    
    Patch has been tested with transferring data from a Polar watch.
    
    Signed-off-by: Thomas Jarosch <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    thomasjfox authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    59e76ed View commit details
    Browse the repository at this point in the history
  48. openvswitch: fix potential out of bound access in parse_ct

    [ Upstream commit 69ec932 ]
    
    Before the 'type' is validated, we shouldn't use it to fetch the
    ovs_ct_attr_lens's minlen and maxlen, else, out of bound access
    may happen.
    
    Fixes: 7f8a436 ("openvswitch: Add conntrack action")
    Signed-off-by: Liping Zhang <[email protected]>
    Acked-by: Pravin B Shelar <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Liping Zhang authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    d53ff38 View commit details
    Browse the repository at this point in the history
  49. packet: fix use-after-free in prb_retire_rx_blk_timer_expired()

    [ Upstream commit c800aaf ]
    
    There are multiple reports showing we have a use-after-free in
    the timer prb_retire_rx_blk_timer_expired(), where we use struct
    tpacket_kbdq_core::pkbdq, a pg_vec, after it gets freed by
    free_pg_vec().
    
    The interesting part is it is not freed via packet_release() but
    via packet_setsockopt(), which means we are not closing the socket.
    Looking into the big and fat function packet_set_ring(), this could
    happen if we satisfy the following conditions:
    
    1. closing == 0, not on packet_release() path
    2. req->tp_block_nr == 0, we don't allocate a new pg_vec
    3. rx_ring->pg_vec is already set as V3, which means we already called
       packet_set_ring() wtih req->tp_block_nr > 0 previously
    4. req->tp_frame_nr == 0, pass sanity check
    5. po->mapped == 0, never called mmap()
    
    In this scenario we are clearing the old rx_ring->pg_vec, so we need
    to free this pg_vec, but we don't stop the timer on this path because
    of closing==0.
    
    The timer has to be stopped as long as we need to free pg_vec, therefore
    the check on closing!=0 is wrong, we should check pg_vec!=NULL instead.
    
    Thanks to liujian for testing different fixes.
    
    Reported-by: [email protected]
    Reported-by: Dave Jones <[email protected]>
    Reported-by: liujian (CE) <[email protected]>
    Tested-by: liujian (CE) <[email protected]>
    Cc: Ding Tianhong <[email protected]>
    Cc: Willem de Bruijn <[email protected]>
    Signed-off-by: Cong Wang <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    congwang authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    47f3bf6 View commit details
    Browse the repository at this point in the history
  50. ipv6: Don't increase IPSTATS_MIB_FRAGFAILS twice in ip6_fragment()

    [ Upstream commit afce615 ]
    
    RFC 2465 defines ipv6IfStatsOutFragFails as:
    
    	"The number of IPv6 datagrams that have been discarded
    	 because they needed to be fragmented at this output
    	 interface but could not be."
    
    The existing implementation, instead, would increase the counter
    twice in case we fail to allocate room for single fragments:
    once for the fragment, once for the datagram.
    
    This didn't look intentional though. In one of the two affected
    affected failure paths, the double increase was simply a result
    of a new 'goto fail' statement, introduced to avoid a skb leak.
    The other path appears to be affected since at least 2.6.12-rc2.
    
    Reported-by: Sabrina Dubroca <[email protected]>
    Fixes: 1d325d2 ("ipv6: ip6_fragment: fix headroom tests and skb leak")
    Signed-off-by: Stefano Brivio <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    sbrivio-rh authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    23a91c8 View commit details
    Browse the repository at this point in the history
  51. net: ethernet: nb8800: Handle all 4 RGMII modes identically

    [ Upstream commit 4813497 ]
    
    Before commit bf8f695 ("Add blurb about RGMII") it was unclear
    whose responsibility it was to insert the required clock skew, and
    in hindsight, some PHY drivers got it wrong. The solution forward
    is to introduce a new property, explicitly requiring skew from the
    node to which it is attached. In the interim, this driver will handle
    all 4 RGMII modes identically (no skew).
    
    Fixes: 52dfc83 ("net: ethernet: add driver for Aurora VLSI NB8800 Ethernet controller")
    Signed-off-by: Marc Gonzalez <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Marc Gonzalez authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    c0c8688 View commit details
    Browse the repository at this point in the history
  52. dccp: fix a memleak that dccp_ipv6 doesn't put reqsk properly

    [ Upstream commit 0c2232b ]
    
    In dccp_v6_conn_request, after reqsk gets alloced and hashed into
    ehash table, reqsk's refcnt is set 3. one is for req->rsk_timer,
    one is for hlist, and the other one is for current using.
    
    The problem is when dccp_v6_conn_request returns and finishes using
    reqsk, it doesn't put reqsk. This will cause reqsk refcnt leaks and
    reqsk obj never gets freed.
    
    Jianlin found this issue when running dccp_memleak.c in a loop, the
    system memory would run out.
    
    dccp_memleak.c:
      int s1 = socket(PF_INET6, 6, IPPROTO_IP);
      bind(s1, &sa1, 0x20);
      listen(s1, 0x9);
      int s2 = socket(PF_INET6, 6, IPPROTO_IP);
      connect(s2, &sa1, 0x20);
      close(s1);
      close(s2);
    
    This patch is to put the reqsk before dccp_v6_conn_request returns,
    just as what tcp_conn_request does.
    
    Reported-by: Jianlin Shi <[email protected]>
    Signed-off-by: Xin Long <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    lxin authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    9ffa672 View commit details
    Browse the repository at this point in the history
  53. dccp: fix a memleak that dccp_ipv4 doesn't put reqsk properly

    [ Upstream commit b7953d3 ]
    
    The patch "dccp: fix a memleak that dccp_ipv6 doesn't put reqsk
    properly" fixed reqsk refcnt leak for dccp_ipv6. The same issue
    exists on dccp_ipv4.
    
    This patch is to fix it for dccp_ipv4.
    
    Signed-off-by: Xin Long <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    lxin authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    4d938b6 View commit details
    Browse the repository at this point in the history
  54. dccp: fix a memleak for dccp_feat_init err process

    [ Upstream commit e90ce2f ]
    
    In dccp_feat_init, when ccid_get_builtin_ccids failsto alloc
    memory for rx.val, it should free tx.val before returning an
    error.
    
    Signed-off-by: Xin Long <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    lxin authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    bb21d2e View commit details
    Browse the repository at this point in the history
  55. sctp: don't dereference ptr before leaving _sctp_walk_{params, errors}()

    [ Upstream commit b1f5bfc ]
    
    If the length field of the iterator (|pos.p| or |err|) is past the end
    of the chunk, we shouldn't access it.
    
    This bug has been detected by KMSAN. For the following pair of system
    calls:
    
      socket(PF_INET6, SOCK_STREAM, 0x84 /* IPPROTO_??? */) = 3
      sendto(3, "A", 1, MSG_OOB, {sa_family=AF_INET6, sin6_port=htons(0),
             inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0,
             sin6_scope_id=0}, 28) = 1
    
    the tool has reported a use of uninitialized memory:
    
      ==================================================================
      BUG: KMSAN: use of uninitialized memory in sctp_rcv+0x17b8/0x43b0
      CPU: 1 PID: 2940 Comm: probe Not tainted 4.11.0-rc5+ #2926
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs
      01/01/2011
      Call Trace:
       <IRQ>
       __dump_stack lib/dump_stack.c:16
       dump_stack+0x172/0x1c0 lib/dump_stack.c:52
       kmsan_report+0x12a/0x180 mm/kmsan/kmsan.c:927
       __msan_warning_32+0x61/0xb0 mm/kmsan/kmsan_instr.c:469
       __sctp_rcv_init_lookup net/sctp/input.c:1074
       __sctp_rcv_lookup_harder net/sctp/input.c:1233
       __sctp_rcv_lookup net/sctp/input.c:1255
       sctp_rcv+0x17b8/0x43b0 net/sctp/input.c:170
       sctp6_rcv+0x32/0x70 net/sctp/ipv6.c:984
       ip6_input_finish+0x82f/0x1ee0 net/ipv6/ip6_input.c:279
       NF_HOOK ./include/linux/netfilter.h:257
       ip6_input+0x239/0x290 net/ipv6/ip6_input.c:322
       dst_input ./include/net/dst.h:492
       ip6_rcv_finish net/ipv6/ip6_input.c:69
       NF_HOOK ./include/linux/netfilter.h:257
       ipv6_rcv+0x1dbd/0x22e0 net/ipv6/ip6_input.c:203
       __netif_receive_skb_core+0x2f6f/0x3a20 net/core/dev.c:4208
       __netif_receive_skb net/core/dev.c:4246
       process_backlog+0x667/0xba0 net/core/dev.c:4866
       napi_poll net/core/dev.c:5268
       net_rx_action+0xc95/0x1590 net/core/dev.c:5333
       __do_softirq+0x485/0x942 kernel/softirq.c:284
       do_softirq_own_stack+0x1c/0x30 arch/x86/entry/entry_64.S:902
       </IRQ>
       do_softirq kernel/softirq.c:328
       __local_bh_enable_ip+0x25b/0x290 kernel/softirq.c:181
       local_bh_enable+0x37/0x40 ./include/linux/bottom_half.h:31
       rcu_read_unlock_bh ./include/linux/rcupdate.h:931
       ip6_finish_output2+0x19b2/0x1cf0 net/ipv6/ip6_output.c:124
       ip6_finish_output+0x764/0x970 net/ipv6/ip6_output.c:149
       NF_HOOK_COND ./include/linux/netfilter.h:246
       ip6_output+0x456/0x520 net/ipv6/ip6_output.c:163
       dst_output ./include/net/dst.h:486
       NF_HOOK ./include/linux/netfilter.h:257
       ip6_xmit+0x1841/0x1c00 net/ipv6/ip6_output.c:261
       sctp_v6_xmit+0x3b7/0x470 net/sctp/ipv6.c:225
       sctp_packet_transmit+0x38cb/0x3a20 net/sctp/output.c:632
       sctp_outq_flush+0xeb3/0x46e0 net/sctp/outqueue.c:885
       sctp_outq_uncork+0xb2/0xd0 net/sctp/outqueue.c:750
       sctp_side_effects net/sctp/sm_sideeffect.c:1773
       sctp_do_sm+0x6962/0x6ec0 net/sctp/sm_sideeffect.c:1147
       sctp_primitive_ASSOCIATE+0x12c/0x160 net/sctp/primitive.c:88
       sctp_sendmsg+0x43e5/0x4f90 net/sctp/socket.c:1954
       inet_sendmsg+0x498/0x670 net/ipv4/af_inet.c:762
       sock_sendmsg_nosec net/socket.c:633
       sock_sendmsg net/socket.c:643
       SYSC_sendto+0x608/0x710 net/socket.c:1696
       SyS_sendto+0x8a/0xb0 net/socket.c:1664
       do_syscall_64+0xe6/0x130 arch/x86/entry/common.c:285
       entry_SYSCALL64_slow_path+0x25/0x25 arch/x86/entry/entry_64.S:246
      RIP: 0033:0x401133
      RSP: 002b:00007fff6d99cd38 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
      RAX: ffffffffffffffda RBX: 00000000004002b0 RCX: 0000000000401133
      RDX: 0000000000000001 RSI: 0000000000494088 RDI: 0000000000000003
      RBP: 00007fff6d99cd90 R08: 00007fff6d99cd50 R09: 000000000000001c
      R10: 0000000000000001 R11: 0000000000000246 R12: 0000000000000000
      R13: 00000000004063d0 R14: 0000000000406460 R15: 0000000000000000
      origin:
       save_stack_trace+0x37/0x40 arch/x86/kernel/stacktrace.c:59
       kmsan_save_stack_with_flags mm/kmsan/kmsan.c:302
       kmsan_internal_poison_shadow+0xb1/0x1a0 mm/kmsan/kmsan.c:198
       kmsan_poison_shadow+0x6d/0xc0 mm/kmsan/kmsan.c:211
       slab_alloc_node mm/slub.c:2743
       __kmalloc_node_track_caller+0x200/0x360 mm/slub.c:4351
       __kmalloc_reserve net/core/skbuff.c:138
       __alloc_skb+0x26b/0x840 net/core/skbuff.c:231
       alloc_skb ./include/linux/skbuff.h:933
       sctp_packet_transmit+0x31e/0x3a20 net/sctp/output.c:570
       sctp_outq_flush+0xeb3/0x46e0 net/sctp/outqueue.c:885
       sctp_outq_uncork+0xb2/0xd0 net/sctp/outqueue.c:750
       sctp_side_effects net/sctp/sm_sideeffect.c:1773
       sctp_do_sm+0x6962/0x6ec0 net/sctp/sm_sideeffect.c:1147
       sctp_primitive_ASSOCIATE+0x12c/0x160 net/sctp/primitive.c:88
       sctp_sendmsg+0x43e5/0x4f90 net/sctp/socket.c:1954
       inet_sendmsg+0x498/0x670 net/ipv4/af_inet.c:762
       sock_sendmsg_nosec net/socket.c:633
       sock_sendmsg net/socket.c:643
       SYSC_sendto+0x608/0x710 net/socket.c:1696
       SyS_sendto+0x8a/0xb0 net/socket.c:1664
       do_syscall_64+0xe6/0x130 arch/x86/entry/common.c:285
       return_from_SYSCALL_64+0x0/0x6a arch/x86/entry/entry_64.S:246
      ==================================================================
    
    Signed-off-by: Alexander Potapenko <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ramosian-glider authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    cc6f148 View commit details
    Browse the repository at this point in the history
  56. sctp: fix the check for _sctp_walk_params and _sctp_walk_errors

    [ Upstream commit 6b84202 ]
    
    Commit b1f5bfc ("sctp: don't dereference ptr before leaving
    _sctp_walk_{params, errors}()") tried to fix the issue that it
    may overstep the chunk end for _sctp_walk_{params, errors} with
    'chunk_end > offset(length) + sizeof(length)'.
    
    But it introduced a side effect: When processing INIT, it verifies
    the chunks with 'param.v == chunk_end' after iterating all params
    by sctp_walk_params(). With the check 'chunk_end > offset(length)
    + sizeof(length)', it would return when the last param is not yet
    accessed. Because the last param usually is fwdtsn supported param
    whose size is 4 and 'chunk_end == offset(length) + sizeof(length)'
    
    This is a badly issue even causing sctp couldn't process 4-shakes.
    Client would always get abort when connecting to server, due to
    the failure of INIT chunk verification on server.
    
    The patch is to use 'chunk_end <= offset(length) + sizeof(length)'
    instead of 'chunk_end < offset(length) + sizeof(length)' for both
    _sctp_walk_params and _sctp_walk_errors.
    
    Fixes: b1f5bfc ("sctp: don't dereference ptr before leaving _sctp_walk_{params, errors}()")
    Signed-off-by: Xin Long <[email protected]>
    Acked-by: Neil Horman <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    lxin authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    df32d08 View commit details
    Browse the repository at this point in the history
  57. net/mlx5: Consider tx_enabled in all modes on remap

    [ Upstream commit dc798b4 ]
    
    The tx_enabled lag event field is used to determine whether a slave is
    active.
    Current logic uses this value only if the mode is active-backup.
    
    However, LACP mode, although considered a load balancing mode, can mark
    a slave as inactive in certain situations (e.g., LACP timeout).
    
    This fix takes the tx_enabled value into account when remapping, with
    no respect to the LAG mode (this should not affect the behavior in XOR
    mode, since in this mode both slaves are marked as active).
    
    Fixes: 7907f23 (net/mlx5: Implement RoCE LAG feature)
    Signed-off-by: Aviv Heller <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Aviv Heller authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    fca84d6 View commit details
    Browse the repository at this point in the history
  58. net/mlx5: Fix command bad flow on command entry allocation failure

    [ Upstream commit 219c81f ]
    
    When driver fail to allocate an entry to send command to FW, it must
    notify the calling function and release the memory allocated for
    this command.
    
    Fixes: e126ba9 ('mlx5: Add driver for Mellanox Connect-IB adapters')
    Signed-off-by: Moshe Shemesh <[email protected]>
    Cc: [email protected]
    Signed-off-by: Saeed Mahameed <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Moshe Shemesh authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    d19d0ac View commit details
    Browse the repository at this point in the history
  59. net/mlx5e: Fix outer_header_zero() check size

    [ Upstream commit 0242f4a ]
    
    outer_header_zero() routine checks if the outer_headers match of a
    flow-table entry are all zero.
    
    This function uses the size of whole fte_match_param, instead of just
    the outer_headers member, causing failure to detect all-zeros if
    any other members of the fte_match_param are non-zero.
    
    Use the correct size for zero check.
    
    Fixes: 6dc6071 ("net/mlx5e: Add ethtool flow steering support")
    Signed-off-by: Ilan Tayari <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ilantayari authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    d704979 View commit details
    Browse the repository at this point in the history
  60. net/mlx5e: Fix wrong delay calculation for overflow check scheduling

    [ Upstream commit d439c84 ]
    
    The overflow_period is calculated in seconds. In order to use it
    for delayed work scheduling translation to jiffies is needed.
    
    Fixes: ef9814d ('net/mlx5e: Add HW timestamping (TS) support')
    Signed-off-by: Eugenia Emantayev <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Eugenia Emantayev authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    862ade9 View commit details
    Browse the repository at this point in the history
  61. net/mlx5e: Schedule overflow check work to mlx5e workqueue

    [ Upstream commit f08c39e ]
    
    This is done in order to ensure that work will not run after the cleanup.
    
    Fixes: ef9814d ('net/mlx5e: Add HW timestamping (TS) support')
    Signed-off-by: Eugenia Emantayev <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Eugenia Emantayev authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    33e25b2 View commit details
    Browse the repository at this point in the history
  62. net: phy: Correctly process PHY_HALTED in phy_stop_machine()

    [ Upstream commit 7ad813f ]
    
    Marc reported that he was not getting the PHY library adjust_link()
    callback function to run when calling phy_stop() + phy_disconnect()
    which does not indeed happen because we set the state machine to
    PHY_HALTED but we don't get to run it to process this state past that
    point.
    
    Fix this with a synchronous call to phy_state_machine() in order to have
    the state machine actually act on PHY_HALTED, set the PHY device's link
    down, turn the network device's carrier off and finally call the
    adjust_link() function.
    
    Reported-by: Marc Gonzalez <[email protected]>
    Fixes: a390d1f ("phylib: convert state_queue work to delayed_work")
    Signed-off-by: Florian Fainelli <[email protected]>
    Signed-off-by: Marc Gonzalez <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ffainelli authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    38e71ea View commit details
    Browse the repository at this point in the history
  63. xen-netback: correctly schedule rate-limited queues

    [ Upstream commit dfa523a ]
    
    Add a flag to indicate if a queue is rate-limited. Test the flag in
    NAPI poll handler and avoid rescheduling the queue if true, otherwise
    we risk locking up the host. The rescheduling will be done in the
    timer callback function.
    
    Reported-by: Jean-Louis Dupond <[email protected]>
    Signed-off-by: Wei Liu <[email protected]>
    Tested-by: Jean-Louis Dupond <[email protected]>
    Reviewed-by: Paul Durrant <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Wei Liu authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    816843a View commit details
    Browse the repository at this point in the history
  64. sparc64: Measure receiver forward progress to avoid send mondo timeout

    [ Upstream commit 9d53cae ]
    
    A large sun4v SPARC system may have moments of intensive xcall activities,
    usually caused by unmapping many pages on many CPUs concurrently. This can
    flood receivers with CPU mondo interrupts for an extended period, causing
    some unlucky senders to hit send-mondo timeout. This problem gets worse
    as cpu count increases because sometimes mappings must be invalidated on
    all CPUs, and sometimes all CPUs may gang up on a single CPU.
    
    But a busy system is not a broken system. In the above scenario, as long
    as the receiver is making forward progress processing mondo interrupts,
    the sender should continue to retry.
    
    This patch implements the receiver's forward progress meter by introducing
    a per cpu counter 'cpu_mondo_counter[cpu]' where 'cpu' is in the range
    of 0..NR_CPUS. The receiver increments its counter as soon as it receives
    a mondo and the sender tracks the receiver's counter. If the receiver has
    stopped making forward progress when the retry limit is reached, the sender
    declares send-mondo-timeout and panic; otherwise, the receiver is allowed
    to keep making forward progress.
    
    In addition, it's been observed that PCIe hotplug events generate Correctable
    Errors that are handled by hypervisor and then OS. Hypervisor 'borrows'
    a guest cpu strand briefly to provide the service. If the cpu strand is
    simultaneously the only cpu targeted by a mondo, it may not be available
    for the mondo in 20msec, causing SUN4V mondo timeout. It appears that 1 second
    is the agreed wait time between hypervisor and guest OS, this patch makes
    the adjustment.
    
    Orabug: 25476541
    Orabug: 26417466
    
    Signed-off-by: Jane Chu <[email protected]>
    Reviewed-by: Steve Sistare <[email protected]>
    Reviewed-by: Anthony Yznaga <[email protected]>
    Reviewed-by: Rob Gardner <[email protected]>
    Reviewed-by: Thomas Tai <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jchu314atgithub authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    bfafa56 View commit details
    Browse the repository at this point in the history
  65. sparc64: Fix exception handling in UltraSPARC-III memcpy.

    [ Upstream commit 0ede1c4 ]
    
    Mikael Pettersson reported that some test programs in the strace-4.18
    testsuite cause an OOPS.
    
    After some debugging it turns out that garbage values are returned
    when an exception occurs, causing the fixup memset() to be run with
    bogus arguments.
    
    The problem is that two of the exception handler stubs write the
    successfully copied length into the wrong register.
    
    Fixes: ee841d0 ("sparc64: Convert U3copy_{from,to}_user to accurate exception reporting.")
    Reported-by: Mikael Pettersson <[email protected]>
    Tested-by: Mikael Pettersson <[email protected]>
    Reviewed-by: Sam Ravnborg <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    davem330 authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    b9d68cd View commit details
    Browse the repository at this point in the history
  66. wext: handle NULL extra data in iwe_stream_add_point better

    commit 93be2b7 upstream.
    
    gcc-7 complains that wl3501_cs passes NULL into a function that
    then uses the argument as the input for memcpy:
    
    drivers/net/wireless/wl3501_cs.c: In function 'wl3501_get_scan':
    include/net/iw_handler.h:559:3: error: argument 2 null where non-null expected [-Werror=nonnull]
       memcpy(stream + point_len, extra, iwe->u.data.length);
    
    This works fine here because iwe->u.data.length is guaranteed to be 0
    and the memcpy doesn't actually have an effect.
    
    Making the length check explicit avoids the warning and should have
    no other effect here.
    
    Also check the pointer itself, since otherwise we get warnings
    elsewhere in the code.
    
    Signed-off-by: Arnd Bergmann <[email protected]>
    Signed-off-by: Johannes Berg <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    arndb authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    b871452 View commit details
    Browse the repository at this point in the history
  67. sh_eth: fix EESIPR values for SH77{34|63}

    [ Upstream commit 978d363 ]
    
    As the SH77{34|63} manuals are freely available,  I've checked the EESIPR
    values written against the manuals, and they appeared to set the reserved
    bits 11-15 (which should be 0 on write). Fix those EESIPR values.
    
    Fixes: 380af9e ("net: sh_eth: CPU dependency code collect to "struct sh_eth_cpu_data"")
    Fixes: f5d1276 ("sh_eth: get SH77{34|63} support out of #ifdef")
    Signed-off-by: Sergei Shtylyov <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Sergei Shtylyov authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    2d4fef7 View commit details
    Browse the repository at this point in the history
  68. sh_eth: R8A7740 supports packet shecksumming

    [ Upstream commit 0f1f9cb ]
    
    The R8A7740 GEther controller supports the packet checksum offloading
    but the 'hw_crc' (bad name, I'll fix it) flag isn't set in the R8A7740
    data,  thus CSMR isn't cleared...
    
    Fixes: 73a0d90 ("net: sh_eth: add support R8A7740")
    Signed-off-by: Sergei Shtylyov <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Sergei Shtylyov authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    bfe384e View commit details
    Browse the repository at this point in the history
  69. net: phy: dp83867: fix irq generation

    [ Upstream commit 5ca7d1c ]
    
    For proper IRQ generation by DP83867 phy the INT/PWDN pin has to be
    programmed as an interrupt output instead of a Powerdown input in
    Configuration Register 3 (CFG3), Address 0x001E, bit 7 INT_OE = 1. The
    current driver doesn't do this and as result IRQs will not be generated by
    DP83867 phy even if they are properly configured in DT.
    
    Hence, fix IRQ generation by properly configuring CFG3.INT_OE bit and
    ensure that Link Status Change (LINK_STATUS_CHNG_INT) and Auto-Negotiation
    Complete (AUTONEG_COMP_INT) interrupt are enabled. After this the DP83867
    driver will work properly in interrupt enabled mode.
    
    Signed-off-by: Grygorii Strashko <[email protected]>
    Reviewed-by: Florian Fainelli <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    grygoriyS authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    5f7eeee View commit details
    Browse the repository at this point in the history
  70. tg3: Fix race condition in tg3_get_stats64().

    [ Upstream commit f5992b7 ]
    
    The driver's ndo_get_stats64() method is not always called under RTNL.
    So it can race with driver close or ethtool reconfigurations.  Fix the
    race condition by taking tp->lock spinlock in tg3_free_consistent()
    when freeing the tp->hw_stats memory block.  tg3_get_stats64() is
    already taking tp->lock.
    
    Reported-by: Wang Yufen <[email protected]>
    Signed-off-by: Michael Chan <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Michael Chan authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    1042bd4 View commit details
    Browse the repository at this point in the history
  71. x86/boot: Add missing declaration of string functions

    [ Upstream commit fac69d0 ]
    
    Add the missing declarations of basic string functions to string.h to allow
    a clean build.
    
    Fixes: 5be8656 ("String-handling functions for the new x86 setup code.")
    Signed-off-by: Nicholas Mc Guire <[email protected]>
    Link: http://lkml.kernel.org/r/[email protected]
    Signed-off-by: Thomas Gleixner <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Nicholas Mc Guire authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    f897e9a View commit details
    Browse the repository at this point in the history
  72. spi: spi-axi: Free resources on error path

    [ Upstream commit 9620ca9 ]
    
    We should go to 'err_put_master' here instead of returning directly.
    Otherwise a call to 'spi_master_put' is missing.
    
    Signed-off-by: Christophe JAILLET <[email protected]>
    Acked-by: Lars-Peter Clausen <[email protected]>
    Signed-off-by: Mark Brown <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    tititiou36 authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    c77512d View commit details
    Browse the repository at this point in the history
  73. ASoC: rt5645: set sel_i2s_pre_div1 to 2

    [ Upstream commit 02c5c03 ]
    
    The i2s clock pre-divider 1 is used for both i2s1 and sysclk.
    The i2s1 is usually used for the main i2s and the pre-divider
    will be set in hw_params function.
    
    However, if i2s2 is used, the pre-divider is not set in the hw_params
    function and the default value of i2s clock pre-divider 1 is too high
    for sysclk and DMIC usage. Fix by overriding default divider value to 2.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=95681
    Tested-by: Pierre-Louis Bossart <[email protected]>
    Signed-off-by: Bard Liao <[email protected]>
    Signed-off-by: Mark Brown <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Bard Liao authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    2e2a390 View commit details
    Browse the repository at this point in the history
  74. netfilter: use fwmark_reflect in nf_send_reset

    [ Upstream commit cc31d43 ]
    
    Otherwise, RST packets generated by ipt_REJECT always have mark 0 when
    the routing is checked later in the same code path.
    
    Fixes: e110861 ("net: add a sysctl to reflect the fwmark on replies")
    Cc: Lorenzo Colitti <[email protected]>
    Signed-off-by: Pau Espin Pedrol <[email protected]>
    Signed-off-by: Pablo Neira Ayuso <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    pespin authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    9acfb31 View commit details
    Browse the repository at this point in the history
  75. phy state machine: failsafe leave invalid RUNNING state

    [ Upstream commit 811a919 ]
    
    While in RUNNING state, phy_state_machine() checks for link changes by
    comparing phydev->link before and after calling phy_read_status().
    This works as long as it is guaranteed that phydev->link is never
    changed outside the phy_state_machine().
    
    If in some setups this happens, it causes the state machine to miss
    a link loss and remain RUNNING despite phydev->link being 0.
    
    This has been observed running a dsa setup with a process continuously
    polling the link states over ethtool each second (SNMPD RFC-1213
    agent). Disconnecting the link on a phy followed by a ETHTOOL_GSET
    causes dsa_slave_get_settings() / dsa_slave_get_link_ksettings() to
    call phy_read_status() and with that modify the link status - and
    with that bricking the phy state machine.
    
    This patch adds a fail-safe check while in RUNNING, which causes to
    move to CHANGELINK when the link is gone and we are still RUNNING.
    
    Signed-off-by: Zefir Kurtisi <[email protected]>
    Reviewed-by: Florian Fainelli <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    zefir-kurtisi authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    0bbbbae View commit details
    Browse the repository at this point in the history
  76. ipv4: make tcp_notsent_lowat sysctl knob behave as true unsigned int

    [ Upstream commit b007f09 ]
    
    > cat /proc/sys/net/ipv4/tcp_notsent_lowat
    -1
    > echo 4294967295 > /proc/sys/net/ipv4/tcp_notsent_lowat
    -bash: echo: write error: Invalid argument
    > echo -2147483648 > /proc/sys/net/ipv4/tcp_notsent_lowat
    > cat /proc/sys/net/ipv4/tcp_notsent_lowat
    -2147483648
    
    but in documentation we have "tcp_notsent_lowat - UNSIGNED INTEGER"
    
    v2: simplify to just proc_douintvec
    Signed-off-by: Pavel Tikhomirov <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Snorch authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    ee96797 View commit details
    Browse the repository at this point in the history
  77. clk/samsung: exynos542x: mark some clocks as critical

    [ Upstream commit 318fa46 ]
    
    Some parent clocks of the Exynos542x clock blocks, which have separate
    power domains (like DISP, MFC, MSC, GSC, FSYS and G2D) must be always
    enabled to access any register related to power management unit or devices
    connected to it. For the time being, until a proper solution based on
    runtime PM is applied, mark those clocks as critical (instead of ignore
    unused or even no flags) to prevent disabling them.
    
    Signed-off-by: Marek Szyprowski <[email protected]>
    Acked-by: Sylwester Nawrocki <[email protected]>
    Reviewed-by: Chanwoo Choi <[email protected]>
    Reviewed-by: Javier Martinez Canillas <[email protected]>
    Tested-by: Javier Martinez Canillas <[email protected]> [Exynos5800 Peach Pi Chromebook]
    Signed-off-by: Stephen Boyd <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    mszyprow authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    99eb27d View commit details
    Browse the repository at this point in the history
  78. scsi: qla2xxx: Get mutex lock before checking optrom_state

    [ Upstream commit c7702b8 ]
    
    There is a race condition with qla2xxx optrom functions where one thread
    might modify optrom buffer, optrom_state while other thread is still
    reading from it.
    
    In couple of crashes, it was found that we had successfully passed the
    following 'if' check where we confirm optrom_state to be
    QLA_SREADING. But by the time we acquired mutex lock to proceed with
    memory_read_from_buffer function, some other thread/process had already
    modified that option rom buffer and optrom_state from QLA_SREADING to
    QLA_SWAITING. Then we got ha->optrom_buffer 0x0 and crashed the system:
    
            if (ha->optrom_state != QLA_SREADING)
                    return 0;
    
            mutex_lock(&ha->optrom_mutex);
            rval = memory_read_from_buffer(buf, count, &off, ha->optrom_buffer,
                ha->optrom_region_size);
            mutex_unlock(&ha->optrom_mutex);
    
    With current optrom function we get following crash due to a race
    condition:
    
    [ 1479.466679] BUG: unable to handle kernel NULL pointer dereference at           (null)
    [ 1479.466707] IP: [<ffffffff81326756>] memcpy+0x6/0x110
    [...]
    [ 1479.473673] Call Trace:
    [ 1479.474296]  [<ffffffff81225cbc>] ? memory_read_from_buffer+0x3c/0x60
    [ 1479.474941]  [<ffffffffa01574dc>] qla2x00_sysfs_read_optrom+0x9c/0xc0 [qla2xxx]
    [ 1479.475571]  [<ffffffff8127e76b>] read+0xdb/0x1f0
    [ 1479.476206]  [<ffffffff811fdf9e>] vfs_read+0x9e/0x170
    [ 1479.476839]  [<ffffffff811feb6f>] SyS_read+0x7f/0xe0
    [ 1479.477466]  [<ffffffff816964c9>] system_call_fastpath+0x16/0x1b
    
    Below patch modifies qla2x00_sysfs_read_optrom,
    qla2x00_sysfs_write_optrom functions to get the mutex_lock before
    checking ha->optrom_state to avoid similar crashes.
    
    The patch was applied and tested and same crashes were no longer
    observed again.
    
    Tested-by: Milan P. Gandhi <[email protected]>
    Signed-off-by: Milan P. Gandhi <[email protected]>
    Reviewed-by: Laurence Oberman <[email protected]>
    Acked-by: Himanshu Madhani <[email protected]>
    Signed-off-by: Martin K. Petersen <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    mpg-rh authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    2a60965 View commit details
    Browse the repository at this point in the history
  79. drm/virtio: fix framebuffer sparse warning

    [ Upstream commit 71d3f6e ]
    
    virtio uses normal ram as backing storage for the framebuffer, so we
    should assign the address to new screen_buffer (added by commit
    17a7b0b) instead of screen_base.
    
    Reported-by: Michael S. Tsirkin <[email protected]>
    Signed-off-by: Gerd Hoffmann <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    kraxel authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    61cf0af View commit details
    Browse the repository at this point in the history
  80. ARM: dts: sun8i: Support DTB build for NanoPi M1

    [ Upstream commit 661ccdc ]
    
    The commit 10efbf5 ("ARM: dts: sun8i: Add dts file for NanoPi M1 SBC")
    introduced NanoPi M1 board but it's missing in Allwinner H3 DTB build.
    
    Signed-off-by: Milo Kim <[email protected]>
    Signed-off-by: Maxime Ripard <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    woogyom authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    1e9e717 View commit details
    Browse the repository at this point in the history
  81. ARM: dts: sunxi: Change node name for pwrseq pin on Olinuxino-lime2-emmc

    [ Upstream commit 3116d37 ]
    
    The node name for the power seq pin is mmc2@0 like the mmc2_pins_a one.
    This makes the original node (mmc2_pins_a) scrapped out of the dtb and
    result in a unusable eMMC if U-Boot didn't configured the pins to the
    correct functions.
    
    Signed-off-by: Emmanuel Vadot <[email protected]>
    Signed-off-by: Maxime Ripard <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    evadot authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    984922f View commit details
    Browse the repository at this point in the history
  82. iw_cxgb4: do not send RX_DATA_ACK CPLs after close/abort

    [ Upstream commit 3bcf96e ]
    
    Function rx_data(), which handles ingress CPL_RX_DATA messages, was
    always sending an RX_DATA_ACK with the goal of updating the credits.
    However, if the RDMA connection is moved out of FPDU mode abruptly,
    then it is possible for iw_cxgb4 to process queued RX_DATA CPLs after HW
    has aborted the connection.  These CPLs should not trigger RX_DATA_ACKS.
    If they do, HW can see a READ after DELETE of the DB_LE hash entry for
    the tid and post a LE_DB HashTblMemCrcError.
    
    Signed-off-by: Steve Wise <[email protected]>
    Signed-off-by: Doug Ledford <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Steve Wise authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    44d5283 View commit details
    Browse the repository at this point in the history
  83. nbd: blk_mq_init_queue returns an error code on failure, not NULL

    [ Upstream commit 25b4acf ]
    
    Additionally, don't assign directly to disk->queue, otherwise
    blk_put_queue (called via put_disk) will choke (panic) on the errno
    stored there.
    
    Bug found by code inspection after Omar found a similar issue in
    virtio_blk.  Compile-tested only.
    
    Signed-off-by: Jeff Moyer <[email protected]>
    Reviewed-by: Omar Sandoval <[email protected]>
    Reviewed-by: Josef Bacik <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    JeffMoyer authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    952d07a View commit details
    Browse the repository at this point in the history
  84. virtio_blk: fix panic in initialization error path

    [ Upstream commit 6bf6b0a ]
    
    If blk_mq_init_queue() returns an error, it gets assigned to
    vblk->disk->queue. Then, when we call put_disk(), we end up calling
    blk_put_queue() with the ERR_PTR, causing a bad dereference. Fix it by
    only assigning to vblk->disk->queue on success.
    
    Signed-off-by: Omar Sandoval <[email protected]>
    Reviewed-by: Jeff Moyer <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    osandov authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    e6d53f5 View commit details
    Browse the repository at this point in the history
  85. ARM: 8632/1: ftrace: fix syscall name matching

    [ Upstream commit 270c8cf ]
    
    ARM has a few system calls (most notably mmap) for which the names of
    the functions which are referenced in the syscall table do not match the
    names of the syscall tracepoints.  As a consequence of this, these
    tracepoints are not made available.  Implement
    arch_syscall_match_sym_name to fix this and allow tracing even these
    system calls.
    
    Signed-off-by: Rabin Vincent <[email protected]>
    Signed-off-by: Russell King <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    vwax authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    bebbe84 View commit details
    Browse the repository at this point in the history
  86. mm, slab: make sure that KMALLOC_MAX_SIZE will fit into MAX_ORDER

    [ Upstream commit bb1107f ]
    
    Andrey Konovalov has reported the following warning triggered by the
    syzkaller fuzzer.
    
      WARNING: CPU: 1 PID: 9935 at mm/page_alloc.c:3511 __alloc_pages_nodemask+0x159c/0x1e20
      Kernel panic - not syncing: panic_on_warn set ...
      CPU: 1 PID: 9935 Comm: syz-executor0 Not tainted 4.9.0-rc7+ Freescale#34
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
      Call Trace:
        __alloc_pages_slowpath mm/page_alloc.c:3511
        __alloc_pages_nodemask+0x159c/0x1e20 mm/page_alloc.c:3781
        alloc_pages_current+0x1c7/0x6b0 mm/mempolicy.c:2072
        alloc_pages include/linux/gfp.h:469
        kmalloc_order+0x1f/0x70 mm/slab_common.c:1015
        kmalloc_order_trace+0x1f/0x160 mm/slab_common.c:1026
        kmalloc_large include/linux/slab.h:422
        __kmalloc+0x210/0x2d0 mm/slub.c:3723
        kmalloc include/linux/slab.h:495
        ep_write_iter+0x167/0xb50 drivers/usb/gadget/legacy/inode.c:664
        new_sync_write fs/read_write.c:499
        __vfs_write+0x483/0x760 fs/read_write.c:512
        vfs_write+0x170/0x4e0 fs/read_write.c:560
        SYSC_write fs/read_write.c:607
        SyS_write+0xfb/0x230 fs/read_write.c:599
        entry_SYSCALL_64_fastpath+0x1f/0xc2
    
    The issue is caused by a lack of size check for the request size in
    ep_write_iter which should be fixed.  It, however, points to another
    problem, that SLUB defines KMALLOC_MAX_SIZE too large because the its
    KMALLOC_SHIFT_MAX is (MAX_ORDER + PAGE_SHIFT) which means that the
    resulting page allocator request might be MAX_ORDER which is too large
    (see __alloc_pages_slowpath).
    
    The same applies to the SLOB allocator which allows even larger sizes.
    Make sure that they are capped properly and never request more than
    MAX_ORDER order.
    
    Link: http://lkml.kernel.org/r/[email protected]
    Signed-off-by: Michal Hocko <[email protected]>
    Reported-by: Andrey Konovalov <[email protected]>
    Acked-by: Christoph Lameter <[email protected]>
    Cc: Alexei Starovoitov <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Michal Hocko authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    c736011 View commit details
    Browse the repository at this point in the history
  87. lib/Kconfig.debug: fix frv build failure

    [ Upstream commit da0510c ]
    
    The build of frv allmodconfig was failing with the errors like:
    
      /tmp/cc0JSPc3.s: Assembler messages:
      /tmp/cc0JSPc3.s:1839: Error: symbol `.LSLT0' is already defined
      /tmp/cc0JSPc3.s:1842: Error: symbol `.LASLTP0' is already defined
      /tmp/cc0JSPc3.s:1969: Error: symbol `.LELTP0' is already defined
      /tmp/cc0JSPc3.s:1970: Error: symbol `.LELT0' is already defined
    
    Commit 866ced9 ("kbuild: Support split debug info v4") introduced
    splitting the debug info and keeping that in a separate file.  Somehow,
    the frv-linux gcc did not like that and I am guessing that instead of
    splitting it started copying.  The first report about this is at:
    
      https://lists.01.org/pipermail/kbuild-all/2015-July/010527.html.
    
    I will try and see if this can work with frv and if still fails I will
    open a bug report with gcc.  But meanwhile this is the easiest option to
    solve build failure of frv.
    
    Fixes: 866ced9 ("kbuild: Support split debug info v4")
    Link: http://lkml.kernel.org/r/[email protected]
    Signed-off-by: Sudip Mukherjee <[email protected]>
    Reported-by: Fengguang Wu <[email protected]>
    Cc: Andi Kleen <[email protected]>
    Cc: David Howells <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    sudipm-mukherjee authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    d12824c View commit details
    Browse the repository at this point in the history
  88. signal: protect SIGNAL_UNKILLABLE from unintentional clearing.

    [ Upstream commit 2d39b3c ]
    
    Since commit 00cd5c3 ("ptrace: permit ptracing of /sbin/init") we
    can now trace init processes.  init is initially protected with
    SIGNAL_UNKILLABLE which will prevent fatal signals such as SIGSTOP, but
    there are a number of paths during tracing where SIGNAL_UNKILLABLE can
    be implicitly cleared.
    
    This can result in init becoming stoppable/killable after tracing.  For
    example, running:
    
      while true; do kill -STOP 1; done &
      strace -p 1
    
    and then stopping strace and the kill loop will result in init being
    left in state TASK_STOPPED.  Sending SIGCONT to init will resume it, but
    init will now respond to future SIGSTOP signals rather than ignoring
    them.
    
    Make sure that when setting SIGNAL_STOP_CONTINUED/SIGNAL_STOP_STOPPED
    that we don't clear SIGNAL_UNKILLABLE.
    
    Link: http://lkml.kernel.org/r/[email protected]
    Signed-off-by: Jamie Iles <[email protected]>
    Acked-by: Oleg Nesterov <[email protected]>
    Cc: Alexander Viro <[email protected]>
    Cc: Ingo Molnar <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jamieiles authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    916a05b View commit details
    Browse the repository at this point in the history
  89. mm: don't dereference struct page fields of invalid pages

    [ Upstream commit f073bdc ]
    
    The VM_BUG_ON() check in move_freepages() checks whether the node id of
    a page matches the node id of its zone.  However, it does this before
    having checked whether the struct page pointer refers to a valid struct
    page to begin with.  This is guaranteed in most cases, but may not be
    the case if CONFIG_HOLES_IN_ZONE=y.
    
    So reorder the VM_BUG_ON() with the pfn_valid_within() check.
    
    Link: http://lkml.kernel.org/r/[email protected]
    Signed-off-by: Ard Biesheuvel <[email protected]>
    Acked-by: Will Deacon <[email protected]>
    Cc: Catalin Marinas <[email protected]>
    Cc: Hanjun Guo <[email protected]>
    Cc: Yisheng Xie <[email protected]>
    Cc: Robert Richter <[email protected]>
    Cc: James Morse <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Ard Biesheuvel authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    22cccef View commit details
    Browse the repository at this point in the history
  90. net/mlx5: E-Switch, Re-enable RoCE on mode change only after FDB destroy

    [ Upstream commit 5bae8c0 ]
    
    We must re-enable RoCE on the e-switch management port (PF) only after destroying
    the FDB in its switchdev/offloaded mode. Otherwise, when encapsulation is supported,
    this re-enablement will fail.
    
    Also, it's more natural and symmetric to disable RoCE on the PF before we create
    the FDB under switchdev mode, so do that as well and revert if getting into error
    during the mode change later.
    
    Fixes: 9da34cd ('net/mlx5: Disable RoCE on the e-switch management [..]')
    Signed-off-by: Or Gerlitz <[email protected]>
    Reviewed-by: Hadar Hen Zion <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ogerlitz authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    a69f0d5 View commit details
    Browse the repository at this point in the history
  91. ipv4: Should use consistent conditional judgement for ip fragment in …

    …__ip_append_data and ip_finish_output
    
    [ Upstream commit 0a28cfd ]
    
    There is an inconsistent conditional judgement in __ip_append_data and
    ip_finish_output functions, the variable length in __ip_append_data just
    include the length of application's payload and udp header, don't include
    the length of ip header, but in ip_finish_output use
    (skb->len > ip_skb_dst_mtu(skb)) as judgement, and skb->len include the
    length of ip header.
    
    That causes some particular application's udp payload whose length is
    between (MTU - IP Header) and MTU were fragmented by ip_fragment even
    though the rst->dev support UFO feature.
    
    Add the length of ip header to length in __ip_append_data to keep
    consistent conditional judgement as ip_finish_output for ip fragment.
    
    Signed-off-by: Zheng Li <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    zheng li authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    f102bb7 View commit details
    Browse the repository at this point in the history
  92. net: account for current skb length when deciding about UFO

    [ Upstream commit a5cb659 ]
    
    Our customer encountered stuck NFS writes for blocks starting at specific
    offsets w.r.t. page boundary caused by networking stack sending packets via
    UFO enabled device with wrong checksum. The problem can be reproduced by
    composing a long UDP datagram from multiple parts using MSG_MORE flag:
    
      sendto(sd, buff, 1000, MSG_MORE, ...);
      sendto(sd, buff, 1000, MSG_MORE, ...);
      sendto(sd, buff, 3000, 0, ...);
    
    Assume this packet is to be routed via a device with MTU 1500 and
    NETIF_F_UFO enabled. When second sendto() gets into __ip_append_data(),
    this condition is tested (among others) to decide whether to call
    ip_ufo_append_data():
    
      ((length + fragheaderlen) > mtu) || (skb && skb_is_gso(skb))
    
    At the moment, we already have skb with 1028 bytes of data which is not
    marked for GSO so that the test is false (fragheaderlen is usually 20).
    Thus we append second 1000 bytes to this skb without invoking UFO. Third
    sendto(), however, has sufficient length to trigger the UFO path so that we
    end up with non-UFO skb followed by a UFO one. Later on, udp_send_skb()
    uses udp_csum() to calculate the checksum but that assumes all fragments
    have correct checksum in skb->csum which is not true for UFO fragments.
    
    When checking against MTU, we need to add skb->len to length of new segment
    if we already have a partially filled skb and fragheaderlen only if there
    isn't one.
    
    In the IPv6 case, skb can only be null if this is the first segment so that
    we have to use headersize (length of the first IPv6 header) rather than
    fragheaderlen (length of IPv6 header of further fragments) for skb == NULL.
    
    Fixes: e89e9cf ("[IPv4/IPv6]: UFO Scatter-gather approach")
    Fixes: e4c5e13 ("ipv6: Should use consistent conditional judgement for
    	ip6 fragment between __ip6_append_data and ip6_finish_output")
    Signed-off-by: Michal Kubecek <[email protected]>
    Acked-by: Vlad Yasevich <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    mkubecek authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    ef09c9f View commit details
    Browse the repository at this point in the history
  93. net: phy: Fix PHY unbind crash

    commit 7b9a88a upstream.
    
    The PHY library does not deal very well with bind and unbind events. The first
    thing we would see is that we were not properly canceling the PHY state machine
    workqueue, so we would be crashing while dereferencing phydev->drv since there
    is no driver attached anymore.
    
    Suggested-by: Russell King <[email protected]>
    Signed-off-by: Florian Fainelli <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Cc: Guenter Roeck <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ffainelli authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    c3c9471 View commit details
    Browse the repository at this point in the history
  94. workqueue: implicit ordered attribute should be overridable

    commit 0a94efb upstream.
    
    5c0338c ("workqueue: restore WQ_UNBOUND/max_active==1 to be
    ordered") automatically enabled ordered attribute for unbound
    workqueues w/ max_active == 1.  Because ordered workqueues reject
    max_active and some attribute changes, this implicit ordered mode
    broke cases where the user creates an unbound workqueue w/ max_active
    == 1 and later explicitly changes the related attributes.
    
    This patch distinguishes explicit and implicit ordered setting and
    overrides from attribute changes if implict.
    
    Signed-off-by: Tejun Heo <[email protected]>
    Fixes: 5c0338c ("workqueue: restore WQ_UNBOUND/max_active==1 to be ordered")
    Cc: Holger Hoffstätte <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    htejun authored and gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    f9636c9 View commit details
    Browse the repository at this point in the history
  95. Linux 4.9.42

    gregkh committed Aug 11, 2017
    Configuration menu
    Copy the full SHA
    4c666b0 View commit details
    Browse the repository at this point in the history

Commits on Aug 13, 2017

  1. ppp: Fix false xmit recursion detect with two ppp devices

    [ Upstream commit e5dadc6 ]
    
    The global percpu variable ppp_xmit_recursion is used to detect the ppp
    xmit recursion to avoid the deadlock, which is caused by one CPU tries to
    lock the xmit lock twice. But it would report false recursion when one CPU
    wants to send the skb from two different PPP devices, like one L2TP on the
    PPPoE. It is a normal case actually.
    
    Now use one percpu member of struct ppp instead of the gloable variable to
    detect the xmit recursion of one ppp device.
    
    Fixes: 55454a5 ("ppp: avoid dealock on recursive xmit")
    Signed-off-by: Gao Feng <[email protected]>
    Signed-off-by: Liu Jianying <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    gfreewind authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    3b25bfc View commit details
    Browse the repository at this point in the history
  2. ppp: fix xmit recursion detection on ppp channels

    [ Upstream commit 0a0e1a8 ]
    
    Commit e5dadc6 ("ppp: Fix false xmit recursion detect with two ppp
    devices") dropped the xmit_recursion counter incrementation in
    ppp_channel_push() and relied on ppp_xmit_process() for this task.
    But __ppp_channel_push() can also send packets directly (using the
    .start_xmit() channel callback), in which case the xmit_recursion
    counter isn't incremented anymore. If such packets get routed back to
    the parent ppp unit, ppp_xmit_process() won't notice the recursion and
    will call ppp_channel_push() on the same channel, effectively creating
    the deadlock situation that the xmit_recursion mechanism was supposed
    to prevent.
    
    This patch re-introduces the xmit_recursion counter incrementation in
    ppp_channel_push(). Since the xmit_recursion variable is now part of
    the parent ppp unit, incrementation is skipped if the channel doesn't
    have any. This is fine because only packets routed through the parent
    unit may enter the channel recursively.
    
    Finally, we have to ensure that pch->ppp is not going to be modified
    while executing ppp_channel_push(). Instead of taking this lock only
    while calling ppp_xmit_process(), we now have to hold it for the full
    ppp_channel_push() execution. This respects the ppp locks ordering
    which requires locking ->upl before ->downl.
    
    Fixes: e5dadc6 ("ppp: Fix false xmit recursion detect with two ppp devices")
    Signed-off-by: Guillaume Nault <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Guillaume Nault authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    6ec6ec3 View commit details
    Browse the repository at this point in the history
  3. tcp: avoid setting cwnd to invalid ssthresh after cwnd reduction states

    [ Upstream commit ed25497 ]
    
    If the sender switches the congestion control during ECN-triggered
    cwnd-reduction state (CA_CWR), upon exiting recovery cwnd is set to
    the ssthresh value calculated by the previous congestion control. If
    the previous congestion control is BBR that always keep ssthresh
    to TCP_INIFINITE_SSTHRESH, cwnd ends up being infinite. The safe
    step is to avoid assigning invalid ssthresh value when recovery ends.
    
    Signed-off-by: Yuchung Cheng <[email protected]>
    Signed-off-by: Neal Cardwell <[email protected]>
    Acked-by: Eric Dumazet <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    yuchungcheng authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    3914a7e View commit details
    Browse the repository at this point in the history
  4. net: fix keepalive code vs TCP_FASTOPEN_CONNECT

    [ Upstream commit 2dda640 ]
    
    syzkaller was able to trigger a divide by 0 in TCP stack [1]
    
    Issue here is that keepalive timer needs to be updated to not attempt
    to send a probe if the connection setup was deferred using
    TCP_FASTOPEN_CONNECT socket option added in linux-4.11
    
    [1]
     divide error: 0000 [Freescale#1] SMP
     CPU: 18 PID: 0 Comm: swapper/18 Not tainted
     task: ffff986f62f4b040 ti: ffff986f62fa2000 task.ti: ffff986f62fa2000
     RIP: 0010:[<ffffffff8409cc0d>]  [<ffffffff8409cc0d>] __tcp_select_window+0x8d/0x160
     Call Trace:
      <IRQ>
      [<ffffffff8409d951>] tcp_transmit_skb+0x11/0x20
      [<ffffffff8409da21>] tcp_xmit_probe_skb+0xc1/0xe0
      [<ffffffff840a0ee8>] tcp_write_wakeup+0x68/0x160
      [<ffffffff840a151b>] tcp_keepalive_timer+0x17b/0x230
      [<ffffffff83b3f799>] call_timer_fn+0x39/0xf0
      [<ffffffff83b40797>] run_timer_softirq+0x1d7/0x280
      [<ffffffff83a04ddb>] __do_softirq+0xcb/0x257
      [<ffffffff83ae03ac>] irq_exit+0x9c/0xb0
      [<ffffffff83a04c1a>] smp_apic_timer_interrupt+0x6a/0x80
      [<ffffffff83a03eaf>] apic_timer_interrupt+0x7f/0x90
      <EOI>
      [<ffffffff83fed2ea>] ? cpuidle_enter_state+0x13a/0x3b0
      [<ffffffff83fed2cd>] ? cpuidle_enter_state+0x11d/0x3b0
    
    Tested:
    
    Following packetdrill no longer crashes the kernel
    
    `echo 0 >/proc/sys/net/ipv4/tcp_timestamps`
    
    // Cache warmup: send a Fast Open cookie request
        0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
       +0 fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
       +0 setsockopt(3, SOL_TCP, TCP_FASTOPEN_CONNECT, [1], 4) = 0
       +0 connect(3, ..., ...) = -1 EINPROGRESS (Operation is now in progress)
       +0 > S 0:0(0) <mss 1460,nop,nop,sackOK,nop,wscale 8,FO,nop,nop>
     +.01 < S. 123:123(0) ack 1 win 14600 <mss 1460,nop,nop,sackOK,nop,wscale 6,FO abcd1234,nop,nop>
       +0 > . 1:1(0) ack 1
       +0 close(3) = 0
       +0 > F. 1:1(0) ack 1
       +0 < F. 1:1(0) ack 2 win 92
       +0 > .  2:2(0) ack 2
    
       +0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 4
       +0 fcntl(4, F_SETFL, O_RDWR|O_NONBLOCK) = 0
       +0 setsockopt(4, SOL_TCP, TCP_FASTOPEN_CONNECT, [1], 4) = 0
       +0 setsockopt(4, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
     +.01 connect(4, ..., ...) = 0
       +0 setsockopt(4, SOL_TCP, TCP_KEEPIDLE, [5], 4) = 0
       +10 close(4) = 0
    
    `echo 1 >/proc/sys/net/ipv4/tcp_timestamps`
    
    Fixes: 19f6d3f ("net/tcp-fastopen: Add new API support")
    Signed-off-by: Eric Dumazet <[email protected]>
    Reported-by: Dmitry Vyukov <[email protected]>
    Cc: Wei Wang <[email protected]>
    Cc: Yuchung Cheng <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Eric Dumazet authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    05046af View commit details
    Browse the repository at this point in the history
  5. bpf, s390: fix jit branch offset related to ldimm64

    [ Upstream commit b0a0c25 ]
    
    While testing some other work that required JIT modifications, I
    run into test_bpf causing a hang when JIT enabled on s390. The
    problematic test case was the one from ddc665a (bpf, arm64:
    fix jit branch offset related to ldimm64), and turns out that we
    do have a similar issue on s390 as well. In bpf_jit_prog() we
    update next instruction address after returning from bpf_jit_insn()
    with an insn_count. bpf_jit_insn() returns either -1 in case of
    error (e.g. unsupported insn), 1 or 2. The latter is only the
    case for ldimm64 due to spanning 2 insns, however, next address
    is only set to i + 1 not taking actual insn_count into account,
    thus fix is to use insn_count instead of 1. bpf_jit_enable in
    mode 2 provides also disasm on s390:
    
    Before fix:
    
      000003ff800349b6: a7f40003   brc     15,3ff800349bc                 ; target
      000003ff800349ba: 0000               unknown
      000003ff800349bc: e3b0f0700024       stg     %r11,112(%r15)
      000003ff800349c2: e3e0f0880024       stg     %r14,136(%r15)
      000003ff800349c8: 0db0               basr    %r11,%r0
      000003ff800349ca: c0ef00000000       llilf   %r14,0
      000003ff800349d0: e320b0360004       lg      %r2,54(%r11)
      000003ff800349d6: e330b03e0004       lg      %r3,62(%r11)
      000003ff800349dc: ec23ffeda065       clgrj   %r2,%r3,10,3ff800349b6 ; jmp
      000003ff800349e2: e3e0b0460004       lg      %r14,70(%r11)
      000003ff800349e8: e3e0b04e0004       lg      %r14,78(%r11)
      000003ff800349ee: b904002e   lgr     %r2,%r14
      000003ff800349f2: e3b0f0700004       lg      %r11,112(%r15)
      000003ff800349f8: e3e0f0880004       lg      %r14,136(%r15)
      000003ff800349fe: 07fe               bcr     15,%r14
    
    After fix:
    
      000003ff80ef3db4: a7f40003   brc     15,3ff80ef3dba
      000003ff80ef3db8: 0000               unknown
      000003ff80ef3dba: e3b0f0700024       stg     %r11,112(%r15)
      000003ff80ef3dc0: e3e0f0880024       stg     %r14,136(%r15)
      000003ff80ef3dc6: 0db0               basr    %r11,%r0
      000003ff80ef3dc8: c0ef00000000       llilf   %r14,0
      000003ff80ef3dce: e320b0360004       lg      %r2,54(%r11)
      000003ff80ef3dd4: e330b03e0004       lg      %r3,62(%r11)
      000003ff80ef3dda: ec230006a065       clgrj   %r2,%r3,10,3ff80ef3de6 ; jmp
      000003ff80ef3de0: e3e0b0460004       lg      %r14,70(%r11)
      000003ff80ef3de6: e3e0b04e0004       lg      %r14,78(%r11)          ; target
      000003ff80ef3dec: b904002e   lgr     %r2,%r14
      000003ff80ef3df0: e3b0f0700004       lg      %r11,112(%r15)
      000003ff80ef3df6: e3e0f0880004       lg      %r14,136(%r15)
      000003ff80ef3dfc: 07fe               bcr     15,%r14
    
    test_bpf.ko suite runs fine after the fix.
    
    Fixes: 0546231 ("s390/bpf: Add s390x eBPF JIT compiler backend")
    Signed-off-by: Daniel Borkmann <[email protected]>
    Tested-by: Michael Holzheu <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    borkmann authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    1b582a2 View commit details
    Browse the repository at this point in the history
  6. net/mlx4_en: don't set CHECKSUM_COMPLETE on SCTP packets

    [ Upstream commit e718fe4 ]
    
    if the NIC fails to validate the checksum on TCP/UDP, and validation of IP
    checksum is successful, the driver subtracts the pseudo-header checksum
    from the value obtained by the hardware and sets CHECKSUM_COMPLETE. Don't
    do that if protocol is IPPROTO_SCTP, otherwise CRC32c validation fails.
    
    V2: don't test MLX4_CQE_STATUS_IPV6 if MLX4_CQE_STATUS_IPV4 is set
    
    Reported-by: Shuang Li <[email protected]>
    Fixes: f8c6455 ("net/mlx4_en: Extend checksum offloading by CHECKSUM COMPLETE")
    Signed-off-by: Davide Caratti <[email protected]>
    Acked-by: Saeed Mahameed <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    dcaratti authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    35d9014 View commit details
    Browse the repository at this point in the history
  7. net: sched: set xt_tgchk_param par.nft_compat as 0 in ipt_init_target

    [ Upstream commit 96d9703 ]
    
    Commit 55917a2 ("netfilter: x_tables: add context to know if
    extension runs from nft_compat") introduced a member nft_compat to
    xt_tgchk_param structure.
    
    But it didn't set it's value for ipt_init_target. With unexpected
    value in par.nft_compat, it may return unexpected result in some
    target's checkentry.
    
    This patch is to set all it's fields as 0 and only initialize the
    non-zero fields in ipt_init_target.
    
    v1->v2:
      As Wang Cong's suggestion, fix it by setting all it's fields as
      0 and only initializing the non-zero fields.
    
    Fixes: 55917a2 ("netfilter: x_tables: add context to know if extension runs from nft_compat")
    Suggested-by: Cong Wang <[email protected]>
    Signed-off-by: Xin Long <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    lxin authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    e392e30 View commit details
    Browse the repository at this point in the history
  8. tcp: fastopen: tcp_connect() must refresh the route

    [ Upstream commit 8ba6092 ]
    
    With new TCP_FASTOPEN_CONNECT socket option, there is a possibility
    to call tcp_connect() while socket sk_dst_cache is either NULL
    or invalid.
    
     +0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 4
     +0 fcntl(4, F_SETFL, O_RDWR|O_NONBLOCK) = 0
     +0 setsockopt(4, SOL_TCP, TCP_FASTOPEN_CONNECT, [1], 4) = 0
     +0 connect(4, ..., ...) = 0
    
    << sk->sk_dst_cache becomes obsolete, or even set to NULL >>
    
     +1 sendto(4, ..., 1000, MSG_FASTOPEN, ..., ...) = 1000
    
    We need to refresh the route otherwise bad things can happen,
    especially when syzkaller is running on the host :/
    
    Fixes: 19f6d3f ("net/tcp-fastopen: Add new API support")
    Reported-by: Dmitry Vyukov <[email protected]>
    Signed-off-by: Eric Dumazet <[email protected]>
    Cc: Wei Wang <[email protected]>
    Cc: Yuchung Cheng <[email protected]>
    Acked-by: Wei Wang <[email protected]>
    Acked-by: Yuchung Cheng <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Eric Dumazet authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    87fdcfe View commit details
    Browse the repository at this point in the history
  9. net: avoid skb_warn_bad_offload false positives on UFO

    [ Upstream commit 8d63bee ]
    
    skb_warn_bad_offload triggers a warning when an skb enters the GSO
    stack at __skb_gso_segment that does not have CHECKSUM_PARTIAL
    checksum offload set.
    
    Commit b2504a5 ("net: reduce skb_warn_bad_offload() noise")
    observed that SKB_GSO_DODGY producers can trigger the check and
    that passing those packets through the GSO handlers will fix it
    up. But, the software UFO handler will set ip_summed to
    CHECKSUM_NONE.
    
    When __skb_gso_segment is called from the receive path, this
    triggers the warning again.
    
    Make UFO set CHECKSUM_UNNECESSARY instead of CHECKSUM_NONE. On
    Tx these two are equivalent. On Rx, this better matches the
    skb state (checksum computed), as CHECKSUM_NONE here means no
    checksum computed.
    
    See also this thread for context:
    http://patchwork.ozlabs.org/patch/799015/
    
    Fixes: b2504a5 ("net: reduce skb_warn_bad_offload() noise")
    Signed-off-by: Willem de Bruijn <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    wdebruij authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    69ffc96 View commit details
    Browse the repository at this point in the history
  10. igmp: Fix regression caused by igmp sysctl namespace code.

    [ Upstream commit 1714020 ]
    
    Commit dcd8799 ("igmp: net: Move igmp namespace init to correct file")
    moved the igmp sysctls initialization from tcp_sk_init to igmp_net_init. This
    function is only called as part of per-namespace initialization, only if
    CONFIG_IP_MULTICAST is defined, otherwise igmp_mc_init() call in ip_init is
    compiled out, casuing the igmp pernet ops to not be registerd and those sysctl
    being left initialized with 0. However, there are certain functions, such as
    ip_mc_join_group which are always compiled and make use of some of those
    sysctls. Let's do a partial revert of the aforementioned commit and move the
    sysctl initialization into inet_init_net, that way they will always have
    sane values.
    
    Fixes: dcd8799 ("igmp: net: Move igmp namespace init to correct file")
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=196595
    Reported-by: Gerardo Exequiel Pozzi <[email protected]>
    Signed-off-by: Nikolay Borisov <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    lorddoskias authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    f628c9d View commit details
    Browse the repository at this point in the history
  11. packet: fix tp_reserve race in packet_set_ring

    [ Upstream commit c27927e ]
    
    Updates to tp_reserve can race with reads of the field in
    packet_set_ring. Avoid this by holding the socket lock during
    updates in setsockopt PACKET_RESERVE.
    
    This bug was discovered by syzkaller.
    
    Fixes: 8913336 ("packet: add PACKET_RESERVE sockopt")
    Reported-by: Andrey Konovalov <[email protected]>
    Signed-off-by: Willem de Bruijn <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    wdebruij authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    e584135 View commit details
    Browse the repository at this point in the history
  12. revert "net: account for current skb length when deciding about UFO"

    This reverts commit ef09c9f which is
    commit a5cb659 upstream as it causes
    merge issues with later patches that are much more important...
    
    Cc: Michal Kubecek <[email protected]>
    Cc: Vlad Yasevich <[email protected]>
    Cc: David S. Miller <[email protected]>
    Cc: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    53eed8a View commit details
    Browse the repository at this point in the history
  13. revert "ipv4: Should use consistent conditional judgement for ip frag…

    …ment in __ip_append_data and ip_finish_output"
    
    This reverts commit f102bb7 which is
    commit 0a28cfd upstream as there is
    another patch that needs to be applied instead of this one.
    
    Cc: Zheng Li <[email protected]>
    Cc: David S. Miller <[email protected]>
    Cc: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    4688f04 View commit details
    Browse the repository at this point in the history
  14. udp: consistently apply ufo or fragmentation

    [ Upstream commit 85f1bd9 ]
    
    When iteratively building a UDP datagram with MSG_MORE and that
    datagram exceeds MTU, consistently choose UFO or fragmentation.
    
    Once skb_is_gso, always apply ufo. Conversely, once a datagram is
    split across multiple skbs, do not consider ufo.
    
    Sendpage already maintains the first invariant, only add the second.
    IPv6 does not have a sendpage implementation to modify.
    
    A gso skb must have a partial checksum, do not follow sk_no_check_tx
    in udp_send_skb.
    
    Found by syzkaller.
    
    Fixes: e89e9cf ("[IPv4/IPv6]: UFO Scatter-gather approach")
    Reported-by: Andrey Konovalov <[email protected]>
    Signed-off-by: Willem de Bruijn <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    wdebruij authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    33dc6a6 View commit details
    Browse the repository at this point in the history
  15. sparc64: Prevent perf from running during super critical sections

    commit fc290a1 upstream.
    
    This fixes another cause of random segfaults and bus errors that may
    occur while running perf with the callgraph option.
    
    Critical sections beginning with spin_lock_irqsave() raise the interrupt
    level to PIL_NORMAL_MAX (14) and intentionally do not block performance
    counter interrupts, which arrive at PIL_NMI (15).
    
    But some sections of code are "super critical" with respect to perf
    because the perf_callchain_user() path accesses user space and may cause
    TLB activity as well as faults as it unwinds the user stack.
    
    One particular critical section occurs in switch_mm:
    
            spin_lock_irqsave(&mm->context.lock, flags);
            ...
            load_secondary_context(mm);
            tsb_context_switch(mm);
            ...
            spin_unlock_irqrestore(&mm->context.lock, flags);
    
    If a perf interrupt arrives in between load_secondary_context() and
    tsb_context_switch(), then perf_callchain_user() could execute with
    the context ID of one process, but with an active TSB for a different
    process. When the user stack is accessed, it is very likely to
    incur a TLB miss, since the h/w context ID has been changed. The TLB
    will then be reloaded with a translation from the TSB for one process,
    but using a context ID for another process. This exposes memory from
    one process to another, and since it is a mapping for stack memory,
    this usually causes the new process to crash quickly.
    
    This super critical section needs more protection than is provided
    by spin_lock_irqsave() since perf interrupts must not be allowed in.
    
    Since __tsb_context_switch already goes through the trouble of
    disabling interrupts completely, we fix this by moving the secondary
    context load down into this better protected region.
    
    Orabug: 25577560
    
    Signed-off-by: Dave Aldridge <[email protected]>
    Signed-off-by: Rob Gardner <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Rob Gardner authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    6309eb7 View commit details
    Browse the repository at this point in the history
  16. KVM: arm/arm64: Handle hva aging while destroying the vm

    commit 7e5a672 upstream.
    
    The mmu_notifier_release() callback of KVM triggers cleaning up
    the stage2 page table on kvm-arm. However there could be other
    notifier callbacks in parallel with the mmu_notifier_release(),
    which could cause the call backs ending up in an empty stage2
    page table. Make sure we check it for all the notifier callbacks.
    
    Fixes: commit 293f293 ("kvm-arm: Unmap shadow pagetables properly")
    Reported-by: Alex Graf <[email protected]>
    Reviewed-by: Christoffer Dall <[email protected]>
    Signed-off-by: Suzuki K Poulose <[email protected]>
    Signed-off-by: Marc Zyngier <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Suzuki K Poulose authored and gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    3f0075c View commit details
    Browse the repository at this point in the history
  17. Revert "ARM: dts: sun8i: Support DTB build for NanoPi M1"

    This reverts commit 1e9e717 which is
    commit 661ccdc upstream.
    
    It's not needed in 4.9, and it breaks the build.
    
    Reported-by: Guenter Roeck <[email protected]>
    Cc: Milo Kim <[email protected]>
    Cc: Maxime Ripard <[email protected]>
    Cc: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    1166e3e View commit details
    Browse the repository at this point in the history
  18. Linux 4.9.43

    gregkh committed Aug 13, 2017
    Configuration menu
    Copy the full SHA
    6da35f4 View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2017

  1. Merge tag 'v4.9.43' into 4.9.x+fslc

    This is the 4.9.43 stable release
    gibsson committed Aug 14, 2017
    Configuration menu
    Copy the full SHA
    dcccd72 View commit details
    Browse the repository at this point in the history