Skip to content

Commit

Permalink
origin
Browse files Browse the repository at this point in the history
GIT d528ae0d3dfedea553812c957a6ed1e87feeed8a

commit 15c9e10d9ad4d41d076148bbff1de7f659f68852
Author: Heiko Carstens <heiko.carstens@de.ibm.com>
Date:   Thu Mar 16 16:40:33 2017 -0700

    drivers core: remove assert_held_device_hotplug()
    
    The last caller of assert_held_device_hotplug() is gone, so remove it again.
    
    Link: http://lkml.kernel.org/r/20170314125226.16779-3-heiko.carstens@de.ibm.com
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Acked-by: Dan Williams <dan.j.williams@intel.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
    Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    Cc: Gerald Schaefer <gerald.schaefer@de.ibm.com>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Sebastian Ott <sebott@linux.vnet.ibm.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 55adc1d05dca9e949cdf46c747cb1e91c0e9143d
Author: Heiko Carstens <heiko.carstens@de.ibm.com>
Date:   Thu Mar 16 16:40:30 2017 -0700

    mm: add private lock to serialize memory hotplug operations
    
    Commit bfc8c90139eb ("mem-hotplug: implement get/put_online_mems")
    introduced new functions get/put_online_mems() and mem_hotplug_begin/end()
    in order to allow similar semantics for memory hotplug like for cpu
    hotplug.
    
    The corresponding functions for cpu hotplug are get/put_online_cpus()
    and cpu_hotplug_begin/done() for cpu hotplug.
    
    The commit however missed to introduce functions that would serialize
    memory hotplug operations like they are done for cpu hotplug with
    cpu_maps_update_begin/done().
    
    This basically leaves mem_hotplug.active_writer unprotected and allows
    concurrent writers to modify it, which may lead to problems as outlined
    by commit f931ab479dd2 ("mm: fix devm_memremap_pages crash, use
    mem_hotplug_{begin, done}").
    
    That commit was extended again with commit b5d24fda9c3d ("mm,
    devm_memremap_pages: hold device_hotplug lock over mem_hotplug_{begin,
    done}") which serializes memory hotplug operations for some call sites
    by using the device_hotplug lock.
    
    In addition with commit 3fc21924100b ("mm: validate device_hotplug is held
    for memory hotplug") a sanity check was added to mem_hotplug_begin() to
    verify that the device_hotplug lock is held.
    
    This in turn triggers the following warning on s390:
    
    WARNING: CPU: 6 PID: 1 at drivers/base/core.c:643 assert_held_device_hotplug+0x4a/0x58
     Call Trace:
      assert_held_device_hotplug+0x40/0x58)
      mem_hotplug_begin+0x34/0xc8
      add_memory_resource+0x7e/0x1f8
      add_memory+0xda/0x130
      add_memory_merged+0x15c/0x178
      sclp_detect_standby_memory+0x2ae/0x2f8
      do_one_initcall+0xa2/0x150
      kernel_init_freeable+0x228/0x2d8
      kernel_init+0x2a/0x140
      kernel_thread_starter+0x6/0xc
    
    One possible fix would be to add more lock_device_hotplug() and
    unlock_device_hotplug() calls around each call site of
    mem_hotplug_begin/end().  But that would give the device_hotplug lock
    additional semantics it better should not have (serialize memory hotplug
    operations).
    
    Instead add a new memory_add_remove_lock which has the similar semantics
    like cpu_add_remove_lock for cpu hotplug.
    
    To keep things hopefully a bit easier the lock will be locked and unlocked
    within the mem_hotplug_begin/end() functions.
    
    Link: http://lkml.kernel.org/r/20170314125226.16779-2-heiko.carstens@de.ibm.com
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Reported-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
    Acked-by: Dan Williams <dan.j.williams@intel.com>
    Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    Cc: Gerald Schaefer <gerald.schaefer@de.ibm.com>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 171012f561274784160f666f8398af8b42216e1f
Author: Dmitry Vyukov <dvyukov@google.com>
Date:   Thu Mar 16 16:40:27 2017 -0700

    mm: don't warn when vmalloc() fails due to a fatal signal
    
    When vmalloc() fails it prints a very lengthy message with all the
    details about memory consumption assuming that it happened due to OOM.
    
    However, vmalloc() can also fail due to fatal signal pending.  In such
    case the message is quite confusing because it suggests that it is OOM
    but the numbers suggest otherwise.  The messages can also pollute
    console considerably.
    
    Don't warn when vmalloc() fails due to fatal signal pending.
    
    Link: http://lkml.kernel.org/r/20170313114425.72724-1-dvyukov@google.com
    Signed-off-by: Dmitry Vyukov <dvyukov@google.com>
    Reviewed-by: Matthew Wilcox <mawilcox@microsoft.com>
    Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit d0f33ac9ae7b2a727fb678235ae37baf1d0608d5
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Thu Mar 16 16:40:24 2017 -0700

    mm, x86: fix native_pud_clear build error
    
    We still get a build error in random configurations, after this has been
    modified a few times:
    
      In file included from include/linux/mm.h:68:0,
                       from include/linux/suspend.h:8,
                       from arch/x86/kernel/asm-offsets.c:12:
      arch/x86/include/asm/pgtable.h:66:26: error: redefinition of 'native_pud_clear'
       #define pud_clear(pud)   native_pud_clear(pud)
    
    My interpretation is that the build error comes from a typo in
    __PAGETABLE_PUD_FOLDED, so fix that typo now, and remove the incorrect
    #ifdef around the native_pud_clear definition.
    
    Fixes: 3e761a42e19c ("mm, x86: fix HIGHMEM64 && PARAVIRT build config for native_pud_clear()")
    Fixes: a00cc7d9dd93 ("mm, x86: add support for PUD-sized transparent hugepages")
    Link: http://lkml.kernel.org/r/20170314121330.182155-1-arnd@arndb.de
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Ackedy-by: Dave Jiang <dave.jiang@intel.com>
    Cc: Matthew Wilcox <mawilcox@microsoft.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Thomas Garnier <thgarnie@google.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Borislav Petkov <bp@suse.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 5be9b730b09c45c358bbfe7f51d254e306cccc07
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Thu Mar 16 16:40:21 2017 -0700

    kasan: add a prototype of task_struct to avoid warning
    
    Add a prototype of task_struct to fix below warning on arm64.
    
      In file included from arch/arm64/kernel/probes/kprobes.c:19:0:
      include/linux/kasan.h:81:132: error: 'struct task_struct' declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
       static inline void kasan_unpoison_task_stack(struct task_struct *task) {}
    
    As same as other types (kmem_cache, page, and vm_struct) this adds a
    prototype of task_struct data structure on top of kasan.h.
    
    [arnd] A related warning was fixed before, but now appears in a
    different line in the same file in v4.11-rc2.  The patch from Masami
    Hiramatsu still seems appropriate, so let's take his version.
    
    Fixes: 71af2ed5eeea ("kasan, sched/headers: Remove <linux/sched.h> from <linux/kasan.h>")
    Link: https://patchwork.kernel.org/patch/9569839/
    Link: http://lkml.kernel.org/r/20170313141517.3397802-1-arnd@arndb.de
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Acked-by: Alexander Potapenko <glider@google.com>
    Acked-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 271df90e4e530c17f237b27034d6341cb2c2f536
Author: Vitaly Wool <vitalywool@gmail.com>
Date:   Thu Mar 16 16:40:19 2017 -0700

    z3fold: fix spinlock unlocking in page reclaim
    
    Commmit 5a27aa822029 ("z3fold: add kref refcounting") introduced a bug
    in z3fold_reclaim_page() with function exit that may leave pool->lock
    spinlock held.  Here comes the trivial fix.
    
    Fixes: 5a27aa822029 ("z3fold: add kref refcounting")
    Link: http://lkml.kernel.org/r/20170311222239.7b83d8e7ef1914e05497649f@gmail.com
    Reported-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Signed-off-by: Vitaly Wool <vitalywool@gmail.com>
    Cc: Dan Streetman <ddstreet@ieee.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 28ea06c46fbcab63fd9a55531387b7928a18a590
Author: Andreas Gruenbacher <agruenba@redhat.com>
Date:   Mon Mar 6 12:58:42 2017 -0500

    gfs2: Avoid alignment hole in struct lm_lockname
    
    Commit 88ffbf3e03 switches to using rhashtables for glocks, hashing over
    the entire struct lm_lockname instead of its individual fields.  On some
    architectures, struct lm_lockname contains a hole of uninitialized
    memory due to alignment rules, which now leads to incorrect hash values.
    Get rid of that hole.
    
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: Bob Peterson <rpeterso@redhat.com>
    CC: <stable@vger.kernel.org> #v4.3+

commit 630a04e79dd41ff746b545d4fc052e0abb836120
Author: Darrick J. Wong <darrick.wong@oracle.com>
Date:   Wed Mar 15 00:24:25 2017 -0700

    xfs: verify inline directory data forks
    
    When we're reading or writing the data fork of an inline directory,
    check the contents to make sure we're not overflowing buffers or eating
    garbage data.  xfs/348 corrupts an inline symlink into an inline
    directory, triggering a buffer overflow bug.
    
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Reviewed-by: Brian Foster <bfoster@redhat.com>
    ---
    v2: add more checks consistent with _dir2_sf_check and make the verifier
    usable from anywhere.

commit 6b116b1d6a521a1907b3c18cb7a8592a655f660c
Author: Mintz, Yuval <Yuval.Mintz@cavium.com>
Date:   Tue Mar 14 15:26:04 2017 +0200

    qed: Enable iSCSI Out-of-Order
    
    Missing in the initial submission, qed fails to propagate qedi's
    request to enable OOO to firmware.
    
    Fixes: fc831825f99e ("qed: Add support for hardware offloaded iSCSI")
    Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit db31d330e8b0ad8926725eb2af6f6422c07ca7ab
Author: Mintz, Yuval <Yuval.Mintz@cavium.com>
Date:   Tue Mar 14 15:26:03 2017 +0200

    qed: Correct out-of-bound access in OOO history
    
    Need to set the number of entries in database, otherwise the logic
    would quickly surpass the array.
    
    Fixes: 1d6cff4fca43 ("qed: Add iSCSI out of order packet handling")
    Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1df2adedcce17ad4a39fba74f0e2b611f797fe10
Author: Ram Amrani <Ram.Amrani@cavium.com>
Date:   Tue Mar 14 15:26:02 2017 +0200

    qed: Fix interrupt flags on Rx LL2
    
    Before iterating over the the LL2 Rx ring, the ring's
    spinlock is taken via spin_lock_irqsave().
    The actual processing of the packet [including handling
    by the protocol driver] is done without said lock,
    so qed releases the spinlock and re-claims it afterwards.
    
    Problem is that the final spin_lock_irqrestore() at the end
    of the iteration uses the original flags saved from the
    initial irqsave() instead of the flags from the most recent
    irqsave(). So it's possible that the interrupt status would
    be incorrect at the end of the processing.
    
    Fixes: 0a7fb11c23c0 ("qed: Add Light L2 support");
    CC: Ram Amrani <Ram.Amrani@cavium.com>
    Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4621ceb279d065151eb940ce8a4728b10c0646c7
Author: Mintz, Yuval <Yuval.Mintz@cavium.com>
Date:   Tue Mar 14 15:26:01 2017 +0200

    qed: Free previous connections when releasing iSCSI
    
    Fixes: fc831825f99e ("qed: Add support for hardware offloaded iSCSI")
    Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 752ecb2da11124a948567076b60767dc8034cfa5
Author: Mintz, Yuval <Yuval.Mintz@cavium.com>
Date:   Tue Mar 14 15:26:00 2017 +0200

    qed: Fix mapping leak on LL2 rx flow
    
    When receiving an Rx LL2 packet, qed fails to unmap the previous buffer.
    
    Fixes: 0a7fb11c23c0 ("qed: Add Light L2 support");
    Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 3ef310a7d99216e0fbdff29f0cb13bc54180373a
Author: Tomer Tayar <Tomer.Tayar@cavium.com>
Date:   Tue Mar 14 15:25:59 2017 +0200

    qed: Prevent creation of too-big u32-chains
    
    Current Logic would allow the creation of a chain with U32_MAX + 1
    elements, when the actual maximum supported by the driver infrastructure
    is U32_MAX.
    
    Fixes: a91eb52abb50 ("qed: Revisit chain implementation")
    Signed-off-by: Tomer Tayar <Tomer.Tayar@cavium.com>
    Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f3e48119b97f56fb09310c95d49da122a27003d7
Author: Ram Amrani <Ram.Amrani@cavium.com>
Date:   Tue Mar 14 15:25:58 2017 +0200

    qed: Align CIDs according to DORQ requirement
    
    The Doorbell HW block can be configured at a granularity
    of 16 x CIDs, so we need to make sure that the actual number
    of CIDs configured would be a multiplication of 16.
    
    Today, when RoCE is enabled - given that the number is unaligned,
    doorbelling the higher CIDs would fail to reach the firmware and
    would eventually timeout.
    
    Fixes: dbb799c39717 ("qed: Initialize hardware for new protocols")
    Signed-off-by: Ram Amrani <Ram.Amrani@cavium.com>
    Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e9093b1183bbac462d2caef3eac165778c0b1bf1
Author: Jiri Pirko <jiri@mellanox.com>
Date:   Tue Mar 14 14:00:01 2017 +0100

    mlxsw: reg: Fix SPVMLR max record count
    
    The num_rec field is 8 bit, so the maximal count number is 255.
    This fixes vlans learning not being enabled for wider ranges than 255.
    
    Fixes: a4feea74cd7a ("mlxsw: reg: Add Switch Port VLAN MAC Learning register definition")
    Signed-off-by: Jiri Pirko <jiri@mellanox.com>
    Reviewed-by: Ido Schimmel <idosch@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f004ec065b4879d6bc9ba0211af2169b3ce3097f
Author: Jiri Pirko <jiri@mellanox.com>
Date:   Tue Mar 14 14:00:00 2017 +0100

    mlxsw: reg: Fix SPVM max record count
    
    The num_rec field is 8 bit, so the maximal count number is 255. This
    fixes vlans not being enabled for wider ranges than 255.
    
    Fixes: b2e345f9a454 ("mlxsw: reg: Add Switch Port VID and Switch Port VLAN Membership registers definitions")
    Signed-off-by: Jiri Pirko <jiri@mellanox.com>
    Reviewed-by: Ido Schimmel <idosch@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 37c343b4f4e70e9dc328ab04903c0ec8d154c1a4
Author: Vlad Yasevich <vyasevich@gmail.com>
Date:   Tue Mar 14 08:58:08 2017 -0400

    net: Resend IGMP memberships upon peer notification.
    
    When we notify peers of potential changes,  it's also good to update
    IGMP memberships.  For example, during VM migration, updating IGMP
    memberships will redirect existing multicast streams to the VM at the
    new location.
    
    Signed-off-by: Vladislav Yasevich <vyasevic@redhat.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 11353b9d10392e79e32603d2178e75feb25eaf0d
Author: Zhilong Liu <zlliu@suse.com>
Date:   Tue Mar 14 15:52:26 2017 +0800

    md/raid1: fix a trivial typo in comments
    
    raid1.c: fix a trivial typo in comments of freeze_array().
    
    Cc: Jack Wang <jack.wang.usish@gmail.com>
    Cc: Guoqing Jiang <gqjiang@suse.com>
    Cc: John Stoffel <john@stoffel.org>
    Acked-by: Coly Li <colyli@suse.de>
    Signed-off-by: Zhilong Liu <zlliu@suse.com>
    Signed-off-by: Shaohua Li <shli@fb.com>

commit 9c62110454b088b4914ffe375c2dbc19643eac34
Author: Jens Axboe <axboe@fb.com>
Date:   Tue Mar 14 11:51:59 2017 -0600

    blk-mq-sched: don't run the queue async from blk_mq_try_issue_directly()
    
    If we have scheduling enabled, we jump directly to insert-and-run.
    That's fine, but we run the queue async and we don't pass in information
    on whether we can block from this context or not. Fixup both these
    cases.
    
    Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com>
    Reviewed-by: Omar Sandoval <osandov@fb.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>

commit 0977762f6d15f13caccc20d71a5dec47d098907d
Author: Song Liu <songliubraving@fb.com>
Date:   Mon Mar 13 13:44:35 2017 -0700

    md/r5cache: fix set_syndrome_sources() for data in cache
    
    Before this patch, device InJournal will be included in prexor
    (SYNDROME_SRC_WANT_DRAIN) but not in reconstruct (SYNDROME_SRC_WRITTEN). So it
    will break parity calculation. With srctype == SYNDROME_SRC_WRITTEN, we need
    include both dev with non-null ->written and dev with R5_InJournal. This fixes
    logic in 1e6d690(md/r5cache: caching phase of r5cache)
    
    Cc: stable@vger.kernel.org (v4.10+)
    Signed-off-by: Song Liu <songliubraving@fb.com>
    Signed-off-by: Shaohua Li <shli@fb.com>

commit 72ef9c4125c7b257e3a714d62d778ab46583d6a3
Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date:   Mon Mar 13 00:01:30 2017 +0100

    dccp: fix memory leak during tear-down of unsuccessful connection request
    
    This patch fixes a memory leak, which happens if the connection request
    is not fulfilled between parsing the DCCP options and handling the SYN
    (because e.g. the backlog is full), because we forgot to free the
    list of ack vectors.
    
    Reported-by: Jianwen Ji <jiji@redhat.com>
    Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b20e2d54789c6acbf6bd0efdbec2cf5fa4d90ef1
Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date:   Mon Mar 13 00:00:26 2017 +0100

    tun: fix premature POLLOUT notification on tun devices
    
    aszlig observed failing ssh tunnels (-w) during initialization since
    commit cc9da6cc4f56e0 ("ipv6: addrconf: use stable address generator for
    ARPHRD_NONE"). We already had reports that the mentioned commit breaks
    Juniper VPN connections. I can't clearly say that the Juniper VPN client
    has the same problem, but it is worth a try to hint to this patch.
    
    Because of the early generation of link local addresses, the kernel now
    can start asking for routers on the local subnet much earlier than usual.
    Those router solicitation packets arrive inside the ssh channels and
    should be transmitted to the tun fd before the configuration scripts
    might have upped the interface and made it ready for transmission.
    
    ssh polls on the interface and receives back a POLL_OUT. It tries to send
    the earily router solicitation packet to the tun interface.  Unfortunately
    it hasn't been up'ed yet by config scripts, thus failing with -EIO. ssh
    doesn't retry again and considers the tun interface broken forever.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=121131
    Fixes: cc9da6cc4f56 ("ipv6: addrconf: use stable address generator for ARPHRD_NONE")
    Cc: Bjørn Mork <bjorn@mork.no>
    Reported-by: Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
    Cc: Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
    Reported-by: Jonas Lippuner <jonas@lippuner.ca>
    Cc: Jonas Lippuner <jonas@lippuner.ca>
    Reported-by: aszlig <aszlig@redmoonstudios.org>
    Cc: aszlig <aszlig@redmoonstudios.org>
    Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 45caeaa5ac0b4b11784ac6f932c0ad4c6b67cda0
Author: Jon Maxwell <jmaxwell37@gmail.com>
Date:   Fri Mar 10 16:40:33 2017 +1100

    dccp/tcp: fix routing redirect race
    
    As Eric Dumazet pointed out this also needs to be fixed in IPv6.
    v2: Contains the IPv6 tcp/Ipv6 dccp patches as well.
    
    We have seen a few incidents lately where a dst_enty has been freed
    with a dangling TCP socket reference (sk->sk_dst_cache) pointing to that
    dst_entry. If the conditions/timings are right a crash then ensues when the
    freed dst_entry is referenced later on. A Common crashing back trace is:
    
     #8 [] page_fault at ffffffff8163e648
        [exception RIP: __tcp_ack_snd_check+74]
    .
    .
     #9 [] tcp_rcv_established at ffffffff81580b64
    #10 [] tcp_v4_do_rcv at ffffffff8158b54a
    #11 [] tcp_v4_rcv at ffffffff8158cd02
    #12 [] ip_local_deliver_finish at ffffffff815668f4
    #13 [] ip_local_deliver at ffffffff81566bd9
    #14 [] ip_rcv_finish at ffffffff8156656d
    #15 [] ip_rcv at ffffffff81566f06
    #16 [] __netif_receive_skb_core at ffffffff8152b3a2
    #17 [] __netif_receive_skb at ffffffff8152b608
    #18 [] netif_receive_skb at ffffffff8152b690
    #19 [] vmxnet3_rq_rx_complete at ffffffffa015eeaf [vmxnet3]
    #20 [] vmxnet3_poll_rx_only at ffffffffa015f32a [vmxnet3]
    #21 [] net_rx_action at ffffffff8152bac2
    #22 [] __do_softirq at ffffffff81084b4f
    #23 [] call_softirq at ffffffff8164845c
    #24 [] do_softirq at ffffffff81016fc5
    #25 [] irq_exit at ffffffff81084ee5
    #26 [] do_IRQ at ffffffff81648ff8
    
    Of course it may happen with other NIC drivers as well.
    
    It's found the freed dst_entry here:
    
     224 static bool tcp_in_quickack_mode(struct sock *sk)↩
     225 {↩
     226 ▹       const struct inet_connection_sock *icsk = inet_csk(sk);↩
     227 ▹       const struct dst_entry *dst = __sk_dst_get(sk);↩
     228 ↩
     229 ▹       return (dst && dst_metric(dst, RTAX_QUICKACK)) ||↩
     230 ▹       ▹       (icsk->icsk_ack.quick && !icsk->icsk_ack.pingpong);↩
     231 }↩
    
    But there are other backtraces attributed to the same freed dst_entry in
    netfilter code as well.
    
    All the vmcores showed 2 significant clues:
    
    - Remote hosts behind the default gateway had always been redirected to a
    different gateway. A rtable/dst_entry will be added for that host. Making
    more dst_entrys with lower reference counts. Making this more probable.
    
    - All vmcores showed a postitive LockDroppedIcmps value, e.g:
    
    LockDroppedIcmps                  267
    
    A closer look at the tcp_v4_err() handler revealed that do_redirect() will run
    regardless of whether user space has the socket locked. This can result in a
    race condition where the same dst_entry cached in sk->sk_dst_entry can be
    decremented twice for the same socket via:
    
    do_redirect()->__sk_dst_check()-> dst_release().
    
    Which leads to the dst_entry being prematurely freed with another socket
    pointing to it via sk->sk_dst_cache and a subsequent crash.
    
    To fix this skip do_redirect() if usespace has the socket locked. Instead let
    the redirect take place later when user space does not have the socket
    locked.
    
    The dccp/IPv6 code is very similar in this respect, so fixing it there too.
    
    As Eric Garver pointed out the following commit now invalidates routes. Which
    can set the dst->obsolete flag so that ipv4_dst_check() returns null and
    triggers the dst_release().
    
    Fixes: ceb3320610d6 ("ipv4: Kill routes during PMTU/redirect updates.")
    Cc: Eric Garver <egarver@redhat.com>
    Cc: Hannes Sowa <hsowa@redhat.com>
    Signed-off-by: Jon Maxwell <jmaxwell37@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 02bb56ddc6711639c549d81c7b9f6d845da243a9
Author: Zhao Qiang <qiang.zhao@nxp.com>
Date:   Tue Mar 14 09:38:33 2017 +0800

    ucc/hdlc: fix two little issue
    
    1. modify bd_status from u32 to u16 in function hdlc_rx_done,
    because bd_status register is 16bits
    2. write bd_length register before writing bd_status register
    
    Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c80498e36d4ef3e24599d363c622fbf22a1293cc
Author: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Date:   Mon Mar 13 16:24:03 2017 +0100

    vxlan: fix ovs support
    
    The required changes in the function vxlan_dev_create() were missing
    in commit 8bcdc4f3a20b.
    The vxlan device is not registered anymore after this patch and the error
    path causes an stack dump:
     WARNING: CPU: 3 PID: 1498 at net/core/dev.c:6713 rollback_registered_many+0x9d/0x3f0
    
    Fixes: 8bcdc4f3a20b ("vxlan: add changelink support")
    CC: Roopa Prabhu <roopa@cumulusnetworks.com>
    Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
    Acked-by: Roopa Prabhu <roopa@cumulusnetworks.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 91864f5852f9996210fad400cf70fb85af091243
Author: Andrey Vagin <avagin@openvz.org>
Date:   Sun Mar 12 21:36:18 2017 -0700

    net: use net->count to check whether a netns is alive or not
    
    The previous idea was to check whether a net namespace is in
    net_exit_list or not. It doesn't work, because net->exit_list is used in
    __register_pernet_operations and __unregister_pernet_operations where
    all namespaces are added to a temporary list to make cleanup in a error
    case, so list_empty(&net->exit_list) always returns false.
    
    Reported-by: Mantas Mikulėnas <grawity@gmail.com>
    Fixes: 002d8a1a6c11 ("net: skip genenerating uevents for network namespaces that are exiting")
    Signed-off-by: Andrei Vagin <avagin@openvz.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a13b2082ece95247779b9995c4e91b4246bed023
Author: Florian Westphal <fw@strlen.de>
Date:   Mon Mar 13 17:38:17 2017 +0100

    bridge: drop netfilter fake rtable unconditionally
    
    Andreas reports kernel oops during rmmod of the br_netfilter module.
    Hannes debugged the oops down to a NULL rt6info->rt6i_indev.
    
    Problem is that br_netfilter has the nasty concept of adding a fake
    rtable to skb->dst; this happens in a br_netfilter prerouting hook.
    
    A second hook (in bridge LOCAL_IN) is supposed to remove these again
    before the skb is handed up the stack.
    
    However, on module unload hooks get unregistered which means an
    skb could traverse the prerouting hook that attaches the fake_rtable,
    while the 'fake rtable remove' hook gets removed from the hooklist
    immediately after.
    
    Fixes: 34666d467cbf1e2e3c7 ("netfilter: bridge: move br_netfilter out of the core")
    Reported-by: Andreas Karis <akaris@redhat.com>
    Debugged-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 79e49503efe53a8c51d8b695bedc8a346c5e4a87
Author: Florian Westphal <fw@strlen.de>
Date:   Mon Mar 13 16:24:28 2017 +0100

    ipv6: avoid write to a possibly cloned skb
    
    ip6_fragment, in case skb has a fraglist, checks if the
    skb is cloned.  If it is, it will move to the 'slow path' and allocates
    new skbs for each fragment.
    
    However, right before entering the slowpath loop, it updates the
    nexthdr value of the last ipv6 extension header to NEXTHDR_FRAGMENT,
    to account for the fragment header that will be inserted in the new
    ipv6-fragment skbs.
    
    In case original skb is cloned this munges nexthdr value of another
    skb.  Avoid this by doing the nexthdr update for each of the new fragment
    skbs separately.
    
    This was observed with tcpdump on a bridge device where netfilter ipv6
    reassembly is active:  tcpdump shows malformed fragment headers as
    the l4 header (icmpv6, tcp, etc). is decoded as a fragment header.
    
    Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Reported-by: Andreas Karis <akaris@redhat.com>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6e526fdff7be4f13b24f929a04c0e9ae6761291e
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Mar 13 13:42:03 2017 +0100

    net: wimax/i2400m: fix NULL-deref at probe
    
    Make sure to check the number of endpoints to avoid dereferencing a
    NULL-pointer or accessing memory beyond the endpoint array should a
    malicious device lack the expected endpoints.
    
    The endpoints are specifically dereferenced in the i2400m_bootrom_init
    path during probe (e.g. in i2400mu_tx_bulk_out).
    
    Fixes: f398e4240fce ("i2400m/USB: probe/disconnect, dev init/shutdown
    and reset backends")
    Cc: Inaky Perez-Gonzalez <inaky@linux.intel.com>
    
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 68c32f9c2a36d410aa242e661506e5b2c2764179
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Mar 13 13:39:01 2017 +0100

    isdn/gigaset: fix NULL-deref at probe
    
    Make sure to check the number of endpoints to avoid dereferencing a
    NULL-pointer should a malicious device lack endpoints.
    
    Fixes: cf7776dc05b8 ("[PATCH] isdn4linux: Siemens Gigaset drivers -
    direct USB connection")
    Cc: stable <stable@vger.kernel.org>	# 2.6.17
    Cc: Hansjoerg Lipp <hjlipp@web.de>
    
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 67e194007be08d071294456274dd53e0a04fdf90
Author: Sabrina Dubroca <sd@queasysnail.net>
Date:   Mon Mar 13 13:28:09 2017 +0100

    ipv6: make ECMP route replacement less greedy
    
    Commit 27596472473a ("ipv6: fix ECMP route replacement") introduced a
    loop that removes all siblings of an ECMP route that is being
    replaced. However, this loop doesn't stop when it has replaced
    siblings, and keeps removing other routes with a higher metric.
    We also end up triggering the WARN_ON after the loop, because after
    this nsiblings < 0.
    
    Instead, stop the loop when we have taken care of all routes with the
    same metric as the route being replaced.
    
      Reproducer:
      ===========
        #!/bin/sh
    
        ip netns add ns1
        ip netns add ns2
        ip -net ns1 link set lo up
    
        for x in 0 1 2 ; do
            ip link add veth$x netns ns2 type veth peer name eth$x netns ns1
            ip -net ns1 link set eth$x up
            ip -net ns2 link set veth$x up
        done
    
        ip -net ns1 -6 r a 2000::/64 nexthop via fe80::0 dev eth0 \
                nexthop via fe80::1 dev eth1 nexthop via fe80::2 dev eth2
        ip -net ns1 -6 r a 2000::/64 via fe80::42 dev eth0 metric 256
        ip -net ns1 -6 r a 2000::/64 via fe80::43 dev eth0 metric 2048
    
        echo "before replace, 3 routes"
        ip -net ns1 -6 r | grep -v '^fe80\|^ff00'
        echo
    
        ip -net ns1 -6 r c 2000::/64 nexthop via fe80::4 dev eth0 \
                nexthop via fe80::5 dev eth1 nexthop via fe80::6 dev eth2
    
        echo "after replace, only 2 routes, metric 2048 is gone"
        ip -net ns1 -6 r | grep -v '^fe80\|^ff00'
    
    Fixes: 27596472473a ("ipv6: fix ECMP route replacement")
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Acked-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
    Reviewed-by: Xin Long <lucien.xin@gmail.com>
    Reviewed-by: Michal Kubecek <mkubecek@suse.cz>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ce70df089143c49385b4f32f39d41fb50fbf6a7c
Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Date:   Mon Mar 13 08:22:13 2017 +0300

    mm, gup: fix typo in gup_p4d_range()
    
    gup_p4d_range() should call gup_pud_range(), not itself.
    
    [ This was not noticed on x86: this is the HAVE_GENERIC_RCU_GUP code
      used by arm[64] and powerpc    - Linus ]
    
    Fixes: c2febafc6773 ("mm: convert generic code to 5-level paging")
    Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Reported-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
    Reported-by: Anton Blanchard <anton@samba.org>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Acked-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 4a3a485b1ed0e109718cc8c9d094fa0f552de9b2
Author: Tahsin Erdogan <tahsin@google.com>
Date:   Fri Mar 10 12:09:49 2017 -0800

    writeback: fix memory leak in wb_queue_work()
    
    When WB_registered flag is not set, wb_queue_work() skips queuing the
    work, but does not perform the necessary clean up. In particular, if
    work->auto_free is true, it should free the memory.
    
    The leak condition can be reprouced by following these steps:
    
       mount /dev/sdb /mnt/sdb
       /* In qemu console: device_del sdb */
       umount /dev/sdb
    
    Above will result in a wb_queue_work() call on an unregistered wb and
    thus leak memory.
    
    Reported-by: John Sperbeck <jsperbeck@google.com>
    Signed-off-by: Tahsin Erdogan <tahsin@google.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Jens Axboe <axboe@fb.com>

commit 0067d4b020ea07a58540acb2c5fcd3364bf326e0
Author: Sagi Grimberg <sagi@grimberg.me>
Date:   Mon Mar 13 16:10:11 2017 +0200

    blk-mq: Fix tagset reinit in the presence of cpu hot-unplug
    
    In case cpu was unplugged, we need to make sure not to assume
    that the tags for that cpu are still allocated. so check
    for null tags when reinitializing a tagset.
    
    Reported-by: Yi Zhang <yizhan@redhat.com>
    Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Jens Axboe <axboe@fb.com>

commit 65869a47f3488253f5fd88cc4f14e0a4e2601a55
Author: Daniel Borkmann <daniel@iogearbox.net>
Date:   Sat Mar 11 16:55:49 2017 +0100

    bpf: improve read-only handling
    
    Improve bpf_{prog,jit_binary}_{un,}lock_ro() by throwing a
    one-time warning in case of an error when the image couldn't
    be set read-only, and also mark struct bpf_prog as locked when
    bpf_prog_lock_ro() was called.
    
    Reason for the latter is that bpf_prog_unlock_ro() is called from
    various places including error paths, and we shouldn't mess with
    page attributes when really not needed.
    
    For bpf_jit_binary_unlock_ro() this is not needed as jited flag
    implicitly indicates this, thus for archs with ARCH_HAS_SET_MEMORY
    we're guaranteed to have a previously locked image. Overall, this
    should also help us to identify any further potential issues with
    set_memory_*() helpers.
    
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1da8ac7c49fb2879ba95006d8bd1095e6870ea1a
Author: Alexei Starovoitov <ast@fb.com>
Date:   Fri Mar 10 22:05:55 2017 -0800

    selftests/bpf: fix broken build
    
    Recent merge of 'linux-kselftest-4.11-rc1' tree broke bpf test build.
    None of the tests were building and test_verifier.c had tons of compiler errors.
    Fix it and add #ifdef CAP_IS_SUPPORTED to support old versions of libcap.
    Tested on centos 6.8 and 7
    
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Acked-by: Daniel Borkmann <daniel@iogearbox.net>
    Tested-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 79099aab38c8f5c746748b066ae74ba984fe2cc8
Author: David Ahern <dsa@cumulusnetworks.com>
Date:   Fri Mar 10 14:11:39 2017 -0800

    mpls: Do not decrement alive counter for unregister events
    
    Multipath routes can be rendered usesless when a device in one of the
    paths is deleted. For example:
    
    $ ip -f mpls ro ls
    100
    	nexthop as to 200 via inet 172.16.2.2  dev virt12
    	nexthop as to 300 via inet 172.16.3.2  dev br0
    101
    	nexthop as to 201 via inet6 2000:2::2  dev virt12
    	nexthop as to 301 via inet6 2000:3::2  dev br0
    
    $ ip li del br0
    
    When br0 is deleted the other hop is not considered in
    mpls_select_multipath because of the alive check -- rt_nhn_alive
    is 0.
    
    rt_nhn_alive is decremented once in mpls_ifdown when the device is taken
    down (NETDEV_DOWN) and again when it is deleted (NETDEV_UNREGISTER). For
    a 2 hop route, deleting one device drops the alive count to 0. Since
    devices are taken down before unregistering, the decrement on
    NETDEV_UNREGISTER is redundant.
    
    Fixes: c89359a42e2a4 ("mpls: support for dead routes")
    Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b17075d5c1988b83f840d272c795ac17d57ce804
Author: Igor Druzhinin <igor.druzhinin@citrix.com>
Date:   Fri Mar 10 21:36:22 2017 +0000

    xen-netback: fix race condition on XenBus disconnect
    
    In some cases during XenBus disconnect event handling and subsequent
    queue resource release there may be some TX handlers active on
    other processors. Use RCU in order to synchronize with them.
    
    Signed-off-by: Igor Druzhinin <igor.druzhinin@citrix.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e37791ec1ad785b59022ae211f63a16189bacebf
Author: David Ahern <dsa@cumulusnetworks.com>
Date:   Fri Mar 10 09:46:15 2017 -0800

    mpls: Send route delete notifications when router module is unloaded
    
    When the mpls_router module is unloaded, mpls routes are deleted but
    notifications are not sent to userspace leaving userspace caches
    out of sync. Add the call to mpls_notify_route in mpls_net_exit as
    routes are freed.
    
    Fixes: 0189197f44160 ("mpls: Basic routing support")
    Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 52491c7607c5527138095edf44c53169dc1ddb82
Author: Etienne Noss <etienne.noss@wifirst.fr>
Date:   Fri Mar 10 16:55:32 2017 +0100

    act_connmark: avoid crashing on malformed nlattrs with null parms
    
    tcf_connmark_init does not check in its configuration if TCA_CONNMARK_PARMS
    is set, resulting in a null pointer dereference when trying to access it.
    
    [501099.043007] BUG: unable to handle kernel NULL pointer dereference at 0000000000000004
    [501099.043039] IP: [<ffffffffc10c60fb>] tcf_connmark_init+0x8b/0x180 [act_connmark]
    ...
    [501099.044334] Call Trace:
    [501099.044345]  [<ffffffffa47270e8>] ? tcf_action_init_1+0x198/0x1b0
    [501099.044363]  [<ffffffffa47271b0>] ? tcf_action_init+0xb0/0x120
    [501099.044380]  [<ffffffffa47250a4>] ? tcf_exts_validate+0xc4/0x110
    [501099.044398]  [<ffffffffc0f5fa97>] ? u32_set_parms+0xa7/0x270 [cls_u32]
    [501099.044417]  [<ffffffffc0f60bf0>] ? u32_change+0x680/0x87b [cls_u32]
    [501099.044436]  [<ffffffffa4725d1d>] ? tc_ctl_tfilter+0x4dd/0x8a0
    [501099.044454]  [<ffffffffa44a23a1>] ? security_capable+0x41/0x60
    [501099.044471]  [<ffffffffa470ca01>] ? rtnetlink_rcv_msg+0xe1/0x220
    [501099.044490]  [<ffffffffa470c920>] ? rtnl_newlink+0x870/0x870
    [501099.044507]  [<ffffffffa472cc61>] ? netlink_rcv_skb+0xa1/0xc0
    [501099.044524]  [<ffffffffa47073f4>] ? rtnetlink_rcv+0x24/0x30
    [501099.044541]  [<ffffffffa472c634>] ? netlink_unicast+0x184/0x230
    [501099.044558]  [<ffffffffa472c9d8>] ? netlink_sendmsg+0x2f8/0x3b0
    [501099.044576]  [<ffffffffa46d8880>] ? sock_sendmsg+0x30/0x40
    [501099.044592]  [<ffffffffa46d8e03>] ? SYSC_sendto+0xd3/0x150
    [501099.044608]  [<ffffffffa425fda1>] ? __do_page_fault+0x2d1/0x510
    [501099.044626]  [<ffffffffa47fbd7b>] ? system_call_fast_compare_end+0xc/0x9b
    
    Fixes: 22a5dc0e5e3e ("net: sched: Introduce connmark action")
    Signed-off-by: Étienne Noss <etienne.noss@wifirst.fr>
    Signed-off-by: Victorien Molle <victorien.molle@wifirst.fr>
    Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 88a7cddce2506b0b6c06a9f6e51379d0d275353b
Author: Neil Jerram <neil@tigera.io>
Date:   Fri Mar 10 12:24:57 2017 +0000

    Make IP 'forwarding' doc more precise
    
    It wasn't clear if the 'forwarding' setting needs to be enabled on the
    interface that packets are received from, or on the interface that
    packets are forwarded to, or both.
    
    In fact (according to my code reading) the setting is relevant on the
    interface that packets are received from, so this change updates the doc
    to say that.
    
    Signed-off-by: Neil Jerram <neil@tigera.io>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7ce101246655935b014b11d81f815342921f5654
Author: stephen hemminger <stephen@networkplumber.org>
Date:   Thu Mar 9 14:58:29 2017 -0800

    netvsc: handle select_queue when device is being removed
    
    Move the send indirection table from the inner device (netvsc)
    to the network device context.
    
    It is possible that netvsc_device is not present (remove in progress).
    This solves potential use after free issues when packet is being
    created during MTU change, shutdown, or queue count changes.
    
    Fixes: d8e18ee0fa96 ("netvsc: enhance transmit select_queue")
    Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ecd052250b51c8cee4d9720adea05690dfc77c64
Author: David Arcari <darcari@redhat.com>
Date:   Thu Mar 9 13:28:33 2017 -0500

    net: ethernet: aquantia: call set_irq_affinity_hint before free_irq
    
    When a network interface controlled by the aquantia ethernet driver is brought
    down a warning is output in dmesg (see below).
    
    The problem is that aq_pci_func_free_irqs() is calling free_irq() before it is
    calling irq_set_affinity_hint().
    
    WARNING: CPU: 4 PID: 10068 at kernel/irq/manage.c:1503 __free_irq+0x24d/0x2b0
    <snip>
    Call Trace:
     dump_stack+0x63/0x87
     __warn+0xd1/0xf0
     warn_slowpath_null+0x1d/0x20
     __free_irq+0x24d/0x2b0
     free_irq+0x39/0x90
     aq_pci_func_free_irqs+0x52/0xa0 [atlantic]
     aq_nic_stop+0xca/0xd0 [atlantic]
     aq_ndev_close+0x1d/0x40 [atlantic]
     __dev_close_many+0x99/0x100
     __dev_close+0x67/0xb0
    <snip>
    
    Fixes: 36a4a50f4048 ("net: ethernet: aquantia: switch to pci_alloc_irq_vectors")
    
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Pavel Belous <pavel.belous@aquantia.com>
    Signed-off-by: David Arcari <darcari@redhat.com>
    Tested-by: Pavel Belous <pavel.belous@aquantia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d1c4e9bf73e739b937ddd9dc4cf0f6de2e6117da
Author: João Paulo Rechi Vita <jprvita@gmail.com>
Date:   Mon Feb 20 14:50:23 2017 -0500

    platform/x86: asus-wmi: Remove quirk_no_rfkill
    
    With the detection introduced in the previous patches, we don't need
    these static DMI-based quirks anymore.
    
    This reverts the following commits:
    56a37a72002b "asus-wmi: Add quirk_no_rfkill_wapf4 for the Asus X456UA"
    a961a285b479 "asus-wmi: Add quirk_no_rfkill_wapf4 for the Asus X456UF"
    6b7ff2af5286 "asus-wmi: Add quirk_no_rfkill for the Asus Z550MA"
    02db9ff7af18 "asus-wmi: Add quirk_no_rfkill for the Asus U303LB"
    2d735244b798 "asus-wmi: Add quirk_no_rfkill for the Asus N552VW"
    a977e59c0c67 "asus-wmi: Create quirk for airplane_mode LED"
    
    Signed-off-by: João Paulo Rechi Vita <jprvita@endlessm.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    [dvhart: minor commit message corrections]
    Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>

commit f5fe1b51905df7cfe4fdfd85c5fb7bc5b71a094f
Author: NeilBrown <neilb@suse.com>
Date:   Fri Mar 10 17:00:47 2017 +1100

    blk: Ensure users for current->bio_list can see the full list.
    
    Commit 79bd99596b73 ("blk: improve order of bio handling in generic_make_request()")
    changed current->bio_list so that it did not contain *all* of the
    queued bios, but only those submitted by the currently running
    make_request_fn.
    
    There are two places which walk the list and requeue selected bios,
    and others that check if the list is empty.  These are no longer
    correct.
    
    So redefine current->bio_list to point to an array of two lists, which
    contain all queued bios, and adjust various code to test or walk both
    lists.
    
    Signed-off-by: NeilBrown <neilb@suse.com>
    Fixes: 79bd99596b73 ("blk: improve order of bio handling in generic_make_request()")
    Signed-off-by: Jens Axboe <axboe@fb.com>

commit 1345921393ba23b60d3fcf15933e699232ad25ae
Author: Jason Yan <yanaijie@huawei.com>
Date:   Fri Mar 10 11:49:12 2017 +0800

    md: fix incorrect use of lexx_to_cpu in does_sb_need_changing
    
    The sb->layout is of type __le32, so we shoud use le32_to_cpu.
    
    Signed-off-by: Jason Yan <yanaijie@huawei.com>
    Signed-off-by: Shaohua Li <shli@fb.com>

commit 3fb632e40d7667d8bedfabc28850ac06d5493f54
Author: Jason Yan <yanaijie@huawei.com>
Date:   Fri Mar 10 11:27:23 2017 +0800

    md: fix super_offset endianness in super_1_rdev_size_change
    
    The sb->super_offset should be big-endian, but the rdev->sb_start is in
    host byte order, so fix this by adding cpu_to_le64.
    
    Signed-off-by: Jason Yan <yanaijie@huawei.com>
    Signed-off-by: Shaohua Li <shli@fb.com>

commit 0e4c0e6ea7d4a988a5ae2791c7cb5769b5256dad
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Fri Feb 17 15:25:08 2017 +0100

    arm64: kernel: Update kerneldoc for cpu_suspend() rename
    
    Commit af391b15f7b56ce1 ("arm64: kernel: rename __cpu_suspend to keep it
    aligned with arm") renamed cpu_suspend() to arm_cpuidle_suspend(), but
    forgot to update the kerneldoc header.
    
    Fixes: af391b15f7b56ce1 ("arm64: kernel: rename __cpu_suspend to keep it aligned with arm")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Will Deacon <will.deacon@arm.com>

commit ea29bd304d7b522f6162a36f394e690c579b5a63
Author: Eugenia Emantayev <eugenia@mellanox.com>
Date:   Fri Mar 10 14:33:05 2017 +0200

    net/mlx5e: Fix loopback selftest
    
    Change packet type handler to ETH_P_IP instead of ETH_P_ALL
    since we are already expecting an IP packet.
    
    Also, using ETH_P_ALL will cause the loopback test packet type handler
    to be called on all outgoing packets, especially our own self loopback
    test SKB, which will be validated on xmit as well, and we don't want that.
    
    Tested with:
    ethtool -t ethX
    validated that the loopback test passes.
    
    Fixes: 0952da791c97 ('net/mlx5e: Add support for loopback selftest')
    Signed-off-by: Eugenia Emantayev <eugenia@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 65ba8fb7d5c6803ec236bb8d6650465fed7f9769
Author: Or Gerlitz <ogerlitz@mellanox.com>
Date:   Fri Mar 10 14:33:04 2017 +0200

    net/mlx5e: Avoid wrong identification of rules on deletion
    
    When deleting offloaded TC flows, we must correctly identify E-switch
    rules. The current check could get us wrong w.r.t to rules set on the
    PF. Since it's possible to set NIC rules on the PF, switch to SRIOV
    offloads mode and then attempt to delete a NIC rule.
    
    To solve that, we add a flags field to offloaded rules, set it on
    creation time and use that over the code where currently needed.
    
    Fixes: 8b32580df1cb ('net/mlx5e: Add TC vlan action for SRIOV offloads')
    Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
    Reviewed-by: Roi Dayan <roid@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 33e21c59526e9147d7c68913995298f10c35cd6f
Author: Huy Nguyen <huyn@mellanox.com>
Date:   Fri Mar 10 14:33:03 2017 +0200

    net/mlx5e: remove IEEE/CEE mode check when setting DCBX mode
    
    Currently, the function setdcbx fails if the request dcbx mode
    is either IEEE or CEE. We remove the IEEE/CEE mode check because
    we support both IEEE and CEE interfaces.
    
    Fixes: 3a6a931dfb8e ("net/mlx5e: Support DCBX CEE API")
    Signed-off-by: Huy Nguyen <huyn@mellanox.com>
    Reviewed-by: Daniel Jurgens <danielj@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5d47f6c89d568ab61712d8c40676fbb020b68752
Author: Daniel Jurgens <danielj@mellanox.com>
Date:   Fri Mar 10 14:33:02 2017 +0200

    net/mlx5: Don't save PCI state when PCI error is detected
    
    When a PCI error is detected the PCI state could be corrupt, don't save
    it in that flow. Save the state after initialization. After restoring the
    PCI state during slot reset save it again, restoring the state destroys
    the previously saved state info.
    
    Fixes: 05ac2c0b7438 ('net/mlx5: Fix race between PCI error handlers and
    health work')
    Signed-off-by: Daniel Jurgens <danielj@mellanox.com>
    
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit af36370569eb37420e1e78a2e60c277b781fcd00
Author: Paul Blakey <paulb@mellanox.com>
Date:   Fri Mar 10 14:33:01 2017 +0200

    net/mlx5: Fix create autogroup prev initializer
    
    The autogroups list is a list of non overlapping group boundaries
    sorted by their start index. If the autogroups list wasn't empty
    and an empty group slot was found at the start of the list,
    the new group was added to the end of the list instead of the
    beginning, as the prev initializer was incorrect.
    When this was repeated, it caused multiple groups to have
    overlapping boundaries.
    
    Fixed that by correctly initializing the prev pointer to the
    start of the list.
    
    Fixes: eccec8da3b4e ('net/mlx5: Keep autogroups list ordered')
    Signed-off-by: Paul Blakey <paulb@mellanox.com>
    Reviewed-by: Mark Bloch <markb@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 14088540ad63c648e5cdf490412033f792d16b6b
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Fri Mar 10 17:44:18 2017 +0000

    arm64: use const cap for system_uses_ttbr0_pan()
    
    Since commit 4b65a5db362783ab ("arm64: Introduce
    uaccess_{disable,enable} functionality based on TTBR0_EL1"),
    system_uses_ttbr0_pan() has used cpus_have_cap() to determine whether
    PAN is present.
    
    Since commit a4023f682739439b ("arm64: Add hypervisor safe helper for
    checking constant capabilities"), which was introduced around the same
    time, cpus_have_cap() doesn't try to use a static key, and must always
    perform a load, test, and consitional branch (likely a tbnz for the
    latter two).
    
    Elsewhere, we moved to using cpus_have_const_cap(), which can use a
    static key (i.e. a non-conditional branch), which is patched at runtime
    when the feature is detected.
    
    This patch makes system_uses_ttbr0_pan() use cpus_have_const_cap(). The
    static key is likely a win for hot-paths like the uacccess primitives,
    and this makes our usage consistent regardless.
    
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>

commit 5c2a625937ba49bc691089370638223d310cda9a
Author: Eric Biggers <ebiggers@google.com>
Date:   Wed Mar 8 16:27:04 2017 -0800

    arm64: support keyctl() system call in 32-bit mode
    
    As is the case for a number of other architectures that have a 32-bit
    compat mode, enable KEYS_COMPAT if both COMPAT and KEYS are enabled.
    This allows AArch32 programs to use the keyctl() system call when
    running on an AArch64 kernel.
    
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>

commit b0de0ccc8b9edd8846828e0ecdc35deacdf186b0
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Mon Mar 6 19:06:40 2017 +0000

    arm64: kasan: avoid bad virt_to_pfn()
    
    Booting a v4.11-rc1 kernel with DEBUG_VIRTUAL and KASAN enabled produces
    the following splat (trimmed for brevity):
    
    [    0.000000] virt_to_phys used for non-linear address: ffff200008080000 (0xffff200008080000)
    [    0.000000] WARNING: CPU: 0 PID: 0 at arch/arm64/mm/physaddr.c:14 __virt_to_phys+0x48/0x70
    [    0.000000] PC is at __virt_to_phys+0x48/0x70
    [    0.000000] LR is at __virt_to_phys+0x48/0x70
    [    0.000000] Call trace:
    [    0.000000] [<ffff2000080b1ac0>] __virt_to_phys+0x48/0x70
    [    0.000000] [<ffff20000a03b86c>] kasan_init+0x1c0/0x498
    [    0.000000] [<ffff20000a034018>] setup_arch+0x2fc/0x948
    [    0.000000] [<ffff20000a030c68>] start_kernel+0xb8/0x570
    [    0.000000] [<ffff20000a0301e8>] __primary_switched+0x6c/0x74
    
    This is because we use virt_to_pfn() on a kernel image address when
    trying to figure out its nid, so that we can allocate its shadow from
    the same node.
    
    As with other recent changes, this patch uses lm_alias() to solve this.
    
    We could instead use NUMA_NO_NODE, as x86 does for all shadow
    allocations, though we'll likely want the "real" memory shadow to be
    backed from its corresponding nid anyway, so we may as well be
    consistent and find the nid for the image shadow.
    
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Acked-by: Laura Abbott <labbott@redhat.com>
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>

commit cb6950b7152fb3760942f9cb16bd2a35e5a1bfd1
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date:   Tue Mar 7 00:34:57 2017 +0530

    arm64: kprobes: remove kprobe_exceptions_notify
    
    Commit fc62d0207ae0 ("kprobes: Introduce weak variant of
    kprobe_exceptions_notify()") introduces a generic empty version of the
    function for architectures that don't need special handling, like arm64.
    As such, remove the arch/arm64/ specific handler.
    
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>

commit 702f2ac87a9a8da23bf8506466bc70175fc970b2
Author: David Howells <dhowells@redhat.com>
Date:   Fri Mar 10 07:48:49 2017 +0000

    rxrpc: Wake up the transmitter if Rx window size increases on the peer
    
    The RxRPC ACK packet may contain an extension that includes the peer's
    current Rx window size for this call.  We adjust the local Tx window size
    to match.  However, the transmitter can stall if the receive window is
    reduced to 0 by the peer and then reopened.
    
    This is because the normal way that the transmitter is re-energised is by
    dropping something out of our Tx queue and thus making space.  When a
    single gap is made, the transmitter is woken up.  However, because there's
    nothing in the Tx queue at this point, this doesn't happen.
    
    To fix this, perform a wake_up() any time we see the peer's Rx window size
    increasing.
    
    The observable symptom is that calls start failing on ETIMEDOUT and the
    following:
    
    	kAFS: SERVER DEAD state=-62
    
    appears in dmesg.
    
    Signed-off-by: David Howells <dhowells@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 296739839fa2851e6badc77dcfc45050094cb102
Author: Andrew Lunn <andrew@lunn.ch>
Date:   Thu Mar 9 20:53:31 2017 +0100

    net: phy: marvell: Fix double free of hwmon device
    
    The hwmon temperature sensor devices is registered using a devm_hwmon
    API call.  The marvell_release() would then manually free the device,
    not using a devm_hmon API, resulting in the device being removed
    twice, leading to a crash in kernfs_find_ns() during the second
    removal.
    
    Remove the manual removal, which makes marvell_release() empty, so
    remove it as well.
    
    Signed-off-by: Andrew Lunn <andrew@lunn.ch>
    Fixes: 0b04680fdae4 ("phy: marvell: Add support for temperature sensor")
    Acked-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7b9f71f974a12740e79e918cfd58c2fce0b5b580
Author: Nicholas Piggin <npiggin@gmail.com>
Date:   Tue Feb 28 12:00:48 2017 +1000

    powerpc/64s: POWER9 machine check handler
    
    Add POWER9 machine check handler. There are several new types of errors
    added, so logging messages for those are also added.
    
    This doesn't attempt to reuse any of the P7/8 defines or functions,
    because that becomes too complex. The better option in future is to use
    a table driven approach.
    
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>

commit c1bbf387d6191e6e18f3adc4db45b922822c2ba4
Author: Nicholas Piggin <npiggin@gmail.com>
Date:   Tue Feb 28 12:00:47 2017 +1000

    powerpc/64s: allow machine check handler to set severity and initiator
    
    Currently severity and initiator are always set to MCE_SEV_ERROR_SYNC and
    MCE_INITIATOR_CPU in the core mce code. Allow them to be set by the
    machine specific mce handlers.
    
    No functional change for existing handlers.
    
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>

commit 1363875bdb6317a2d0798284d7aaf320f0782f6d
Author: Nicholas Piggin <npiggin@gmail.com>
Date:   Tue Feb 28 12:00:46 2017 +1000

    powerpc/64s: fix handling of non-synchronous machine checks
    
    A synchronous machine check is an exception raised by the attempt to
    execute the current instruction. If the error can't be corrected, it
    can make sense to SIGBUS the currently running process.
    
    In other cases, the error condition is not related to the current
    instruction, so killing the current process is not the right thing to
    do.
    
    Today, all machine checks are MCE_SEV_ERROR_SYNC, so this has no
    practical change. It will be used to handle POWER9 asynchronous
    machine checks.
    
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>

commit 46f401c4297a2232a037ad8801b6c83c90414cf7
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Thu Mar 9 20:33:51 2017 -0600

    powerpc/pmac: Fix crash in dma-mapping.h with NULL dma_ops
    
    Commit 5657933dbb6e ("treewide: Move dma_ops from struct dev_archdata
    into struct device") introduced a crash for macio devices, an example
    backtrace being:
    
      kernel BUG at ./include/linux/dma-mapping.h:465!
      Oops: Exception in kernel mode, sig: 5 [#1]
      ...
      NIP [c031ddb0] dmam_alloc_coherent+0x74/0x140
      LR [c031de70] dmam_alloc_coherent+0x134/0x140
      Call Trace:
       dmam_alloc_coherent+0x134/0x140 (unreliable)
       pata_macio_port_start+0x3c/0x8c
       ata_host_start.part.5+0xfc/0x208
       ata_host_activate+0x128/0x154
       pata_macio_common_init+0x2f0/0x538
       pata_macio_attach+0xd8/0x180
       macio_device_probe+0x5c/0xec
       driver_probe_device+0x21c/0x314
       __driver_attach+0xcc/0xd0
       bus_for_each_dev+0x68/0xb4
       bus_add_driver+0x1dc/0x244
       driver_register+0x88/0x130
       pata_macio_init+0x5c/0x88
       do_one_initcall+0x40/0x170
       kernel_init_freeable+0x134/0x1d0
       kernel_init+0x18/0x110
       ret_from_kernel_thread+0x5c/0x64
    
    This was caused by the device having NULL dma_ops, triggering the
    BUG_ON(). Previously the device inherited its dma_ops via the assignment
    to dev->ofdev.dev.archdata. However after commit 5657933dbb6e the
    dma_ops are moved into dev->ofdev.dev, and so they need to be explicitly
    copied.
    
    Fixes: 5657933dbb6e ("treewide: Move dma_ops from struct dev_archdata into struct device")
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Suggested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    [mpe: Rewrite change log, add backtrace]
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>

commit 6d22fe14005ce66d1a120495ac16499b944feb95
Author: Doug Berger <opendmb@gmail.com>
Date:   Thu Mar 9 16:58:50 2017 -0800

    net: bcmgenet: decouple flow control from bcmgenet_tx_reclaim
    
    The bcmgenet_tx_reclaim() function is used to reclaim transmit
    resources in different places within the driver.  Most of them
    should not affect the state of the transmit flow control.
    
    This commit relocates the logic for waking tx queues based on
    freed resources to the napi polling function where it is more
    appropriate.
    
    Fixes: 1c1008c793fa ("net: bcmgenet: add main driver file")
    Signed-off-by: Doug Berger <opendmb@gmail.com>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 89316fa34ab8afac8d693f41a5bc268673f1da15
Author: Edwin Chan <edwin.chan@broadcom.com>
Date:   Thu Mar 9 16:58:49 2017 -0800

    net: bcmgenet: add begin/complete ethtool ops
    
    Make sure clock is enabled for ethtool ops.
    
    Fixes: 1c1008c793fa ("net: bcmgenet: add main driver file")
    Signed-off-by: Edwin Chan <edwin.chan@broadcom.com>
    Signed-off-by: Doug Berger <opendmb@gmail.com>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6be371b053dc86f11465cc1abce2e99bda0a0574
Author: Doug Berger <opendmb@gmail.com>
Date:   Thu Mar 9 16:58:48 2017 -0800

    net: bcmgenet: Power up the internal PHY before probing the MII
    
    When using the internal PHY it must be powered up when the MII is probed
    or the PHY will not be detected.  Since the PHY is powered up at reset
    this has not been a problem.  However, when the kernel is restarted with
    kexec the PHY will likely be powered down when the kernel starts so it
    will not be detected and the Ethernet link will not be established.
    
    This commit explicitly powers up the internal PHY when the GENET driver
    is probed to correct this behavior.
    
    Fixes: 1c1008c793fa ("net: bcmgenet: add main driver file")
    Signed-off-by: Doug Berger <opendmb@gmail.com>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 07c52d6a0b955a8a28834f9354793cfc4b81d0e9
Author: Doug Berger <opendmb@gmail.com>
Date:   Thu Mar 9 16:58:47 2017 -0800

    net: bcmgenet: synchronize irq0 status between the isr and task
    
    Add a spinlock to ensure that irq0_stat is not unintentionally altered
    as the result of preemption.  Also removed unserviced irq0 interrupts
    and removed irq1_stat since there is no bottom half service for those
    interrupts.
    
    Fixes: 1c1008c793fa ("net: bcmgenet: add main driver file")
    Signed-off-by: Doug Berger <opendmb@gmail.com>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7627409cc4970e8c8b9de6945ad86a575290a94e
Author: Doug Berger <opendmb@gmail.com>
Date:   Thu Mar 9 16:58:46 2017 -0800

    net: bcmgenet: power down internal phy if open or resume fails
    
    Since the internal PHY is powered up during the open and resume
    functions it should be powered back down if the functions fail.
    
    Fixes: 1c1008c793fa ("net: bcmgenet: add main driver file")
    Signed-off-by: Doug Berger <opendmb@gmail.com>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit eca4bad73409aedc6ff22f823c18b67a4f08c851
Author: Doug Berger <opendmb@gmail.com>
Date:   Thu Mar 9 16:58:45 2017 -0800

    net: bcmgenet: reserved phy revisions must be checked first
    
    The reserved gphy_rev value of 0x01ff must be tested before the old
    or new scheme for GPHY major versioning are tested, otherwise it will
    be treated as 0xff00 according to the old schem…
  • Loading branch information
mmotm auto import authored and hnaz committed Mar 17, 2017
1 parent 4495c08 commit 6bbfbff
Show file tree
Hide file tree
Showing 244 changed files with 3,266 additions and 1,648 deletions.
11 changes: 6 additions & 5 deletions Documentation/cgroup-v2.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1142,16 +1142,17 @@ used by the kernel.

pids.max

A read-write single value file which exists on non-root cgroups. The
default is "max".
A read-write single value file which exists on non-root
cgroups. The default is "max".

Hard limit of number of processes.
Hard limit of number of processes.

pids.current

A read-only single value file which exists on all cgroups.
A read-only single value file which exists on all cgroups.

The number of processes currently in the cgroup and its descendants.
The number of processes currently in the cgroup and its
descendants.

Organisational operations are not blocked by cgroup policies, so it is
possible to have pids.current > pids.max. This can be done by either
Expand Down
62 changes: 60 additions & 2 deletions Documentation/devicetree/bindings/powerpc/4xx/emac.txt
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,9 @@
For Axon it can be absent, though my current driver
doesn't handle phy-address yet so for now, keep
0x00ffffff in it.
- phy-handle : Used to describe configurations where a external PHY
is used. Please refer to:
Documentation/devicetree/bindings/net/ethernet.txt
- rx-fifo-size-gige : 1 cell, Rx fifo size in bytes for 1000 Mb/sec
operations (if absent the value is the same as
rx-fifo-size). For Axon, either absent or 2048.
Expand All @@ -81,8 +84,22 @@
offload, phandle of the TAH device node.
- tah-channel : 1 cell, optional. If appropriate, channel used on the
TAH engine.
- fixed-link : Fixed-link subnode describing a link to a non-MDIO
managed entity. See
Documentation/devicetree/bindings/net/fixed-link.txt
for details.
- mdio subnode : When the EMAC has a phy connected to its local
mdio, which us supported by the kernel's network
PHY library in drivers/net/phy, there must be device
tree subnode with the following required properties:
- #address-cells: Must be <1>.
- #size-cells: Must be <0>.

Example:
For PHY definitions: Please refer to
Documentation/devicetree/bindings/net/phy.txt and
Documentation/devicetree/bindings/net/ethernet.txt

Examples:

EMAC0: ethernet@40000800 {
device_type = "network";
Expand All @@ -104,6 +121,48 @@
zmii-channel = <0>;
};

EMAC1: ethernet@ef600c00 {
device_type = "network";
compatible = "ibm,emac-apm821xx", "ibm,emac4sync";
interrupt-parent = <&EMAC1>;
interrupts = <0 1>;
#interrupt-cells = <1>;
#address-cells = <0>;
#size-cells = <0>;
interrupt-map = <0 &UIC2 0x10 IRQ_TYPE_LEVEL_HIGH /* Status */
1 &UIC2 0x14 IRQ_TYPE_LEVEL_HIGH /* Wake */>;
reg = <0xef600c00 0x000000c4>;
local-mac-address = [000000000000]; /* Filled in by U-Boot */
mal-device = <&MAL0>;
mal-tx-channel = <0>;
mal-rx-channel = <0>;
cell-index = <0>;
max-frame-size = <9000>;
rx-fifo-size = <16384>;
tx-fifo-size = <2048>;
fifo-entry-size = <10>;
phy-mode = "rgmii";
phy-handle = <&phy0>;
phy-map = <0x00000000>;
rgmii-device = <&RGMII0>;
rgmii-channel = <0>;
tah-device = <&TAH0>;
tah-channel = <0>;
has-inverted-stacr-oc;
has-new-stacr-staopc;

mdio {
#address-cells = <1>;
#size-cells = <0>;

phy0: ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <0>;
};
};
};


ii) McMAL node

Required properties:
Expand Down Expand Up @@ -145,4 +204,3 @@
- revision : as provided by the RGMII new version register if
available.
For Axon: 0x0000012a

3 changes: 2 additions & 1 deletion Documentation/networking/ip-sysctl.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1006,7 +1006,8 @@ accept_redirects - BOOLEAN
FALSE (router)

forwarding - BOOLEAN
Enable IP forwarding on this interface.
Enable IP forwarding on this interface. This controls whether packets
received _on_ this interface can be forwarded.

mc_forwarding - BOOLEAN
Do multicast routing. The kernel needs to be compiled with CONFIG_MROUTE
Expand Down
4 changes: 4 additions & 0 deletions arch/arm64/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1073,6 +1073,10 @@ config SYSVIPC_COMPAT
def_bool y
depends on COMPAT && SYSVIPC

config KEYS_COMPAT
def_bool y
depends on COMPAT && KEYS

endmenu

menu "Power management options"
Expand Down
2 changes: 1 addition & 1 deletion arch/arm64/include/asm/cpufeature.h
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ static inline bool system_supports_fpsimd(void)
static inline bool system_uses_ttbr0_pan(void)
{
return IS_ENABLED(CONFIG_ARM64_SW_TTBR0_PAN) &&
!cpus_have_cap(ARM64_HAS_PAN);
!cpus_have_const_cap(ARM64_HAS_PAN);
}

#endif /* __ASSEMBLY__ */
Expand Down
2 changes: 1 addition & 1 deletion arch/arm64/kernel/cpuidle.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ int arm_cpuidle_init(unsigned int cpu)
}

/**
* cpu_suspend() - function to enter a low-power idle state
* arm_cpuidle_suspend() - function to enter a low-power idle state
* @arg: argument to pass to CPU suspend operations
*
* Return: 0 on success, -EOPNOTSUPP if CPU suspend hook not initialized, CPU
Expand Down
6 changes: 0 additions & 6 deletions arch/arm64/kernel/probes/kprobes.c
Original file line number Diff line number Diff line change
Expand Up @@ -372,12 +372,6 @@ int __kprobes kprobe_fault_handler(struct pt_regs *regs, unsigned int fsr)
return 0;
}

int __kprobes kprobe_exceptions_notify(struct notifier_block *self,
unsigned long val, void *data)
{
return NOTIFY_DONE;
}

static void __kprobes kprobe_handler(struct pt_regs *regs)
{
struct kprobe *p, *cur_kprobe;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm64/mm/kasan_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ void __init kasan_init(void)
clear_pgds(KASAN_SHADOW_START, KASAN_SHADOW_END);

vmemmap_populate(kimg_shadow_start, kimg_shadow_end,
pfn_to_nid(virt_to_pfn(_text)));
pfn_to_nid(virt_to_pfn(lm_alias(_text))));

/*
* vmemmap_populate() has populated the shadow region that covers the
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/boot/zImage.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ SECTIONS
}

#ifdef CONFIG_PPC64_BOOT_WRAPPER
. = ALIGN(256);
.got :
{
__toc_start = .;
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/crypto/crc32c-vpmsum_glue.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ static int crc32c_vpmsum_cra_init(struct crypto_tfm *tfm)
{
u32 *key = crypto_tfm_ctx(tfm);

*key = 0;
*key = ~0;

return 0;
}
Expand Down
4 changes: 4 additions & 0 deletions arch/powerpc/include/asm/bitops.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@
#define PPC_BIT(bit) (1UL << PPC_BITLSHIFT(bit))
#define PPC_BITMASK(bs, be) ((PPC_BIT(bs) - PPC_BIT(be)) | PPC_BIT(bs))

/* Put a PPC bit into a "normal" bit position */
#define PPC_BITEXTRACT(bits, ppc_bit, dst_bit) \
((((bits) >> PPC_BITLSHIFT(ppc_bit)) & 1) << (dst_bit))

#include <asm/barrier.h>

/* Macro for generating the ***_bits() functions */
Expand Down
108 changes: 107 additions & 1 deletion arch/powerpc/include/asm/mce.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,55 @@

#define P8_DSISR_MC_SLB_ERRORS (P7_DSISR_MC_SLB_ERRORS | \
P8_DSISR_MC_ERAT_MULTIHIT_SEC)

/*
* Machine Check bits on power9
*/
#define P9_SRR1_MC_LOADSTORE(srr1) (((srr1) >> PPC_BITLSHIFT(42)) & 1)

#define P9_SRR1_MC_IFETCH(srr1) ( \
PPC_BITEXTRACT(srr1, 45, 0) | \
PPC_BITEXTRACT(srr1, 44, 1) | \
PPC_BITEXTRACT(srr1, 43, 2) | \
PPC_BITEXTRACT(srr1, 36, 3) )

/* 0 is reserved */
#define P9_SRR1_MC_IFETCH_UE 1
#define P9_SRR1_MC_IFETCH_SLB_PARITY 2
#define P9_SRR1_MC_IFETCH_SLB_MULTIHIT 3
#define P9_SRR1_MC_IFETCH_ERAT_MULTIHIT 4
#define P9_SRR1_MC_IFETCH_TLB_MULTIHIT 5
#define P9_SRR1_MC_IFETCH_UE_TLB_RELOAD 6
/* 7 is reserved */
#define P9_SRR1_MC_IFETCH_LINK_TIMEOUT 8
#define P9_SRR1_MC_IFETCH_LINK_TABLEWALK_TIMEOUT 9
/* 10 ? */
#define P9_SRR1_MC_IFETCH_RA 11
#define P9_SRR1_MC_IFETCH_RA_TABLEWALK 12
#define P9_SRR1_MC_IFETCH_RA_ASYNC_STORE 13
#define P9_SRR1_MC_IFETCH_LINK_ASYNC_STORE_TIMEOUT 14
#define P9_SRR1_MC_IFETCH_RA_TABLEWALK_FOREIGN 15

/* DSISR bits for machine check (On Power9) */
#define P9_DSISR_MC_UE (PPC_BIT(48))
#define P9_DSISR_MC_UE_TABLEWALK (PPC_BIT(49))
#define P9_DSISR_MC_LINK_LOAD_TIMEOUT (PPC_BIT(50))
#define P9_DSISR_MC_LINK_TABLEWALK_TIMEOUT (PPC_BIT(51))
#define P9_DSISR_MC_ERAT_MULTIHIT (PPC_BIT(52))
#define P9_DSISR_MC_TLB_MULTIHIT_MFTLB (PPC_BIT(53))
#define P9_DSISR_MC_USER_TLBIE (PPC_BIT(54))
#define P9_DSISR_MC_SLB_PARITY_MFSLB (PPC_BIT(55))
#define P9_DSISR_MC_SLB_MULTIHIT_MFSLB (PPC_BIT(56))
#define P9_DSISR_MC_RA_LOAD (PPC_BIT(57))
#define P9_DSISR_MC_RA_TABLEWALK (PPC_BIT(58))
#define P9_DSISR_MC_RA_TABLEWALK_FOREIGN (PPC_BIT(59))
#define P9_DSISR_MC_RA_FOREIGN (PPC_BIT(60))

/* SLB error bits */
#define P9_DSISR_MC_SLB_ERRORS (P9_DSISR_MC_ERAT_MULTIHIT | \
P9_DSISR_MC_SLB_PARITY_MFSLB | \
P9_DSISR_MC_SLB_MULTIHIT_MFSLB)

enum MCE_Version {
MCE_V1 = 1,
};
Expand Down Expand Up @@ -93,6 +142,9 @@ enum MCE_ErrorType {
MCE_ERROR_TYPE_SLB = 2,
MCE_ERROR_TYPE_ERAT = 3,
MCE_ERROR_TYPE_TLB = 4,
MCE_ERROR_TYPE_USER = 5,
MCE_ERROR_TYPE_RA = 6,
MCE_ERROR_TYPE_LINK = 7,
};

enum MCE_UeErrorType {
Expand Down Expand Up @@ -121,6 +173,32 @@ enum MCE_TlbErrorType {
MCE_TLB_ERROR_MULTIHIT = 2,
};

enum MCE_UserErrorType {
MCE_USER_ERROR_INDETERMINATE = 0,
MCE_USER_ERROR_TLBIE = 1,
};

enum MCE_RaErrorType {
MCE_RA_ERROR_INDETERMINATE = 0,
MCE_RA_ERROR_IFETCH = 1,
MCE_RA_ERROR_PAGE_TABLE_WALK_IFETCH = 2,
MCE_RA_ERROR_PAGE_TABLE_WALK_IFETCH_FOREIGN = 3,
MCE_RA_ERROR_LOAD = 4,
MCE_RA_ERROR_STORE = 5,
MCE_RA_ERROR_PAGE_TABLE_WALK_LOAD_STORE = 6,
MCE_RA_ERROR_PAGE_TABLE_WALK_LOAD_STORE_FOREIGN = 7,
MCE_RA_ERROR_LOAD_STORE_FOREIGN = 8,
};

enum MCE_LinkErrorType {
MCE_LINK_ERROR_INDETERMINATE = 0,
MCE_LINK_ERROR_IFETCH_TIMEOUT = 1,
MCE_LINK_ERROR_PAGE_TABLE_WALK_IFETCH_TIMEOUT = 2,
MCE_LINK_ERROR_LOAD_TIMEOUT = 3,
MCE_LINK_ERROR_STORE_TIMEOUT = 4,
MCE_LINK_ERROR_PAGE_TABLE_WALK_LOAD_STORE_TIMEOUT = 5,
};

struct machine_check_event {
enum MCE_Version version:8; /* 0x00 */
uint8_t in_use; /* 0x01 */
Expand Down Expand Up @@ -166,6 +244,30 @@ struct machine_check_event {
uint64_t effective_address;
uint8_t reserved_2[16];
} tlb_error;

struct {
enum MCE_UserErrorType user_error_type:8;
uint8_t effective_address_provided;
uint8_t reserved_1[6];
uint64_t effective_address;
uint8_t reserved_2[16];
} user_error;

struct {
enum MCE_RaErrorType ra_error_type:8;
uint8_t effective_address_provided;
uint8_t reserved_1[6];
uint64_t effective_address;
uint8_t reserved_2[16];
} ra_error;

struct {
enum MCE_LinkErrorType link_error_type:8;
uint8_t effective_address_provided;
uint8_t reserved_1[6];
uint64_t effective_address;
uint8_t reserved_2[16];
} link_error;
} u;
};

Expand All @@ -176,8 +278,12 @@ struct mce_error_info {
enum MCE_SlbErrorType slb_error_type:8;
enum MCE_EratErrorType erat_error_type:8;
enum MCE_TlbErrorType tlb_error_type:8;
enum MCE_UserErrorType user_error_type:8;
enum MCE_RaErrorType ra_error_type:8;
enum MCE_LinkErrorType link_error_type:8;
} u;
uint8_t reserved[2];
enum MCE_Severity severity:8;
enum MCE_Initiator initiator:8;
};

#define MAX_MC_EVT 100
Expand Down
3 changes: 3 additions & 0 deletions arch/powerpc/kernel/cputable.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ extern void __flush_tlb_power8(unsigned int action);
extern void __flush_tlb_power9(unsigned int action);
extern long __machine_check_early_realmode_p7(struct pt_regs *regs);
extern long __machine_check_early_realmode_p8(struct pt_regs *regs);
extern long __machine_check_early_realmode_p9(struct pt_regs *regs);
#endif /* CONFIG_PPC64 */
#if defined(CONFIG_E500)
extern void __setup_cpu_e5500(unsigned long offset, struct cpu_spec* spec);
Expand Down Expand Up @@ -540,6 +541,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
.cpu_setup = __setup_cpu_power9,
.cpu_restore = __restore_cpu_power9,
.flush_tlb = __flush_tlb_power9,
.machine_check_early = __machine_check_early_realmode_p9,
.platform = "power9",
},
{ /* Power9 */
Expand All @@ -559,6 +561,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
.cpu_setup = __setup_cpu_power9,
.cpu_restore = __restore_cpu_power9,
.flush_tlb = __flush_tlb_power9,
.machine_check_early = __machine_check_early_realmode_p9,
.platform = "power9",
},
{ /* Cell Broadband Engine */
Expand Down
Loading

0 comments on commit 6bbfbff

Please sign in to comment.