24 May, 2019

5 commits

  • Based on 1 normalized pattern(s):

    released under the gpl version 2 or later

    and 1 additional normalized pattern(s):

    this program is free software you can redistribute it and or
    modify it under the terms of the gnu general public license
    as published by the free software foundation either version
    2 of the license or at your option any later version

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 1 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Richard Fontana
    Reviewed-by: Kate Stewart
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190520071858.828691433@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details you
    should have received a copy of the gnu general public license along
    with this program if not write to the free software foundation inc
    675 mass ave cambridge ma 02139 usa

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 441 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Michael Ellerman (powerpc)
    Reviewed-by: Richard Fontana
    Reviewed-by: Allison Randal
    Reviewed-by: Kate Stewart
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190520071858.739733335@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Based on 1 normalized pattern(s):

    this code may be copied under the gpl v 2 or at your option any
    later version

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 1 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Richard Fontana
    Reviewed-by: Kate Stewart
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190520071858.029737698@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Based on 1 normalized pattern(s):

    this module is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 18 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190520170858.008906948@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public licence as published by
    the free software foundation either version 2 of the licence or at
    your option any later version

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 114 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Kate Stewart
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190520170857.552531963@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

22 May, 2019

1 commit

  • Pull SPDX update from Greg KH:
    "Here is a series of patches that add SPDX tags to different kernel
    files, based on two different things:

    - SPDX entries are added to a bunch of files that we missed a year
    ago that do not have any license information at all.

    These were either missed because the tool saw the MODULE_LICENSE()
    tag, or some EXPORT_SYMBOL tags, and got confused and thought the
    file had a real license, or the files have been added since the
    last big sweep, or they were Makefile/Kconfig files, which we
    didn't touch last time.

    - Add GPL-2.0-only or GPL-2.0-or-later tags to files where our scan
    tools can determine the license text in the file itself. Where this
    happens, the license text is removed, in order to cut down on the
    700+ different ways we have in the kernel today, in a quest to get
    rid of all of these.

    These patches have been out for review on the linux-spdx@vger mailing
    list, and while they were created by automatic tools, they were
    hand-verified by a bunch of different people, all whom names are on
    the patches are reviewers.

    The reason for these "large" patches is if we were to continue to
    progress at the current rate of change in the kernel, adding license
    tags to individual files in different subsystems, we would be finished
    in about 10 years at the earliest.

    There will be more series of these types of patches coming over the
    next few weeks as the tools and reviewers crunch through the more
    "odd" variants of how to say "GPLv2" that developers have come up with
    over the years, combined with other fun oddities (GPL + a BSD
    disclaimer?) that are being unearthed, with the goal for the whole
    kernel to be cleaned up.

    These diffstats are not small, 3840 files are touched, over 10k lines
    removed in just 24 patches"

    * tag 'spdx-5.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (24 commits)
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 25
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 23
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 22
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 21
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 20
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 19
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 17
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 15
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 14
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 12
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 11
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 10
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 9
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 7
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 5
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 4
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 3
    ...

    Linus Torvalds
     

21 May, 2019

8 commits

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or any
    later version this program is distributed in the hope that it will
    be useful but without any warranty without even the implied warranty
    of merchantability or fitness for a particular purpose see the gnu
    general public license for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 50 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Jilayne Lovejoy
    Reviewed-by: Kate Stewart
    Reviewed-by: Steve Winslow
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190519154042.917228456@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Based on 2 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details you
    should have received a copy of the gnu general public license along
    with this program if not see http www gnu org licenses

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details [based]
    [from] [clk] [highbank] [c] you should have received a copy of the
    gnu general public license along with this program if not see http
    www gnu org licenses

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 355 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Kate Stewart
    Reviewed-by: Jilayne Lovejoy
    Reviewed-by: Steve Winslow
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190519154041.837383322@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Based on 1 normalized pattern(s):

    this program is free software you can distribute it and or modify it
    under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 1 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Steve Winslow
    Reviewed-by: Jilayne Lovejoy
    Reviewed-by: Kate Stewart
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190519154041.622608495@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 or
    later as published by the free software foundation

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 9 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Steve Winslow
    Reviewed-by: Jilayne Lovejoy
    Reviewed-by: Allison Randal
    Reviewed-by: Kate Stewart
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190519154040.848507137@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Based on 2 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details you
    should have received a copy of the gnu general public license along
    with this program if not write to the free software foundation inc
    51 franklin street fifth floor boston ma 02110 1301 usa

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option [no]_[pad]_[ctrl] any later version this program is
    distributed in the hope that it will be useful but without any
    warranty without even the implied warranty of merchantability or
    fitness for a particular purpose see the gnu general public license
    for more details you should have received a copy of the gnu general
    public license along with this program if not write to the free
    software foundation inc 51 franklin street fifth floor boston ma
    02110 1301 usa

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 176 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Jilayne Lovejoy
    Reviewed-by: Steve Winslow
    Reviewed-by: Allison Randal
    Reviewed-by: Kate Stewart
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190519154040.652910950@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Add SPDX license identifiers to all Make/Kconfig files which:

    - Have no license information of any form

    These files fall under the project license, GPL v2 only. The resulting SPDX
    license identifier is:

    GPL-2.0-only

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Add SPDX license identifiers to all files which:

    - Have no license information of any form

    - Have MODULE_LICENCE("GPL*") inside which was used in the initial
    scan/conversion to ignore the file

    These files fall under the project license, GPL v2 only. The resulting SPDX
    license identifier is:

    GPL-2.0-only

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Add SPDX license identifiers to all files which:

    - Have no license information of any form

    - Have EXPORT_.*_SYMBOL_GPL inside which was used in the
    initial scan/conversion to ignore the file

    These files fall under the project license, GPL v2 only. The resulting SPDX
    license identifier is:

    GPL-2.0-only

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

20 May, 2019

3 commits

  • Pull networking fixes from David Miller:1) Use after free in __dev_map_entry_free(), from Eric Dumazet.

    1) Use after free in __dev_map_entry_free(), from Eric Dumazet.

    2) Fix TCP retransmission timestamps on passive Fast Open, from Yuchung
    Cheng.

    3) Orphan NFC, we'll take the patches directly into my tree. From
    Johannes Berg.

    4) We can't recycle cloned TCP skbs, from Eric Dumazet.

    5) Some flow dissector bpf test fixes, from Stanislav Fomichev.

    6) Fix RCU marking and warnings in rhashtable, from Herbert Xu.

    7) Fix some potential fib6 leaks, from Eric Dumazet.

    8) Fix a _decode_session4 uninitialized memory read bug fix that got
    lost in a merge. From Florian Westphal.

    9) Fix ipv6 source address routing wrt. exception route entries, from
    Wei Wang.

    10) The netdev_xmit_more() conversion was not done %100 properly in mlx5
    driver, fix from Tariq Toukan.

    11) Clean up botched merge on netfilter kselftest, from Florian
    Westphal.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (74 commits)
    of_net: fix of_get_mac_address retval if compiled without CONFIG_OF
    net: fix kernel-doc warnings for socket.c
    net: Treat sock->sk_drops as an unsigned int when printing
    kselftests: netfilter: fix leftover net/net-next merge conflict
    mlxsw: core: Prevent reading unsupported slave address from SFP EEPROM
    mlxsw: core: Prevent QSFP module initialization for old hardware
    vsock/virtio: Initialize core virtio vsock before registering the driver
    net/mlx5e: Fix possible modify header actions memory leak
    net/mlx5e: Fix no rewrite fields with the same match
    net/mlx5e: Additional check for flow destination comparison
    net/mlx5e: Add missing ethtool driver info for representors
    net/mlx5e: Fix number of vports for ingress ACL configuration
    net/mlx5e: Fix ethtool rxfh commands when CONFIG_MLX5_EN_RXNFC is disabled
    net/mlx5e: Fix wrong xmit_more application
    net/mlx5: Fix peer pf disable hca command
    net/mlx5: E-Switch, Correct type to u16 for vport_num and int for vport_index
    net/mlx5: Add meaningful return codes to status_to_err function
    net/mlx5: Imply MLXFW in mlx5_core
    Revert "tipc: fix modprobe tipc failed after switch order of device registration"
    vsock/virtio: free packets during the socket release
    ...

    Linus Torvalds
     
  • Fix kernel-doc warnings by moving the kernel-doc notation to be
    immediately above the functions that it describes.

    Fixes these warnings for sock_sendmsg() and sock_recvmsg():

    ../net/socket.c:658: warning: Excess function parameter 'sock' description in 'INDIRECT_CALLABLE_DECLARE'
    ../net/socket.c:658: warning: Excess function parameter 'msg' description in 'INDIRECT_CALLABLE_DECLARE'
    ../net/socket.c:889: warning: Excess function parameter 'sock' description in 'INDIRECT_CALLABLE_DECLARE'
    ../net/socket.c:889: warning: Excess function parameter 'msg' description in 'INDIRECT_CALLABLE_DECLARE'
    ../net/socket.c:889: warning: Excess function parameter 'flags' description in 'INDIRECT_CALLABLE_DECLARE'

    Signed-off-by: Randy Dunlap
    Signed-off-by: David S. Miller

    Randy Dunlap
     
  • Currently, procfs socket stats format sk_drops as a signed int (%d). For large
    values this will cause a negative number to be printed.

    We know the drop count can never be a negative so change the format specifier to
    %u.

    Signed-off-by: Patrick Talbert
    Signed-off-by: David S. Miller

    Patrick Talbert
     

19 May, 2019

1 commit

  • Avoid a race in which static variables in net/vmw_vsock/af_vsock.c are
    accessed (while handling interrupts) before they are initialized.

    [ 4.201410] BUG: unable to handle kernel paging request at ffffffffffffffe8
    [ 4.207829] IP: vsock_addr_equals_addr+0x3/0x20
    [ 4.211379] PGD 28210067 P4D 28210067 PUD 28212067 PMD 0
    [ 4.211379] Oops: 0000 [#1] PREEMPT SMP PTI
    [ 4.211379] Modules linked in:
    [ 4.211379] CPU: 1 PID: 30 Comm: kworker/1:1 Not tainted 4.14.106-419297-gd7e28cc1f241 #1
    [ 4.211379] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014
    [ 4.211379] Workqueue: virtio_vsock virtio_transport_rx_work
    [ 4.211379] task: ffffa3273d175280 task.stack: ffffaea1800e8000
    [ 4.211379] RIP: 0010:vsock_addr_equals_addr+0x3/0x20
    [ 4.211379] RSP: 0000:ffffaea1800ebd28 EFLAGS: 00010286
    [ 4.211379] RAX: 0000000000000002 RBX: 0000000000000000 RCX: ffffffffb94e42f0
    [ 4.211379] RDX: 0000000000000400 RSI: ffffffffffffffe0 RDI: ffffaea1800ebdd0
    [ 4.211379] RBP: ffffaea1800ebd58 R08: 0000000000000001 R09: 0000000000000001
    [ 4.211379] R10: 0000000000000000 R11: ffffffffb89d5d60 R12: ffffaea1800ebdd0
    [ 4.211379] R13: 00000000828cbfbf R14: 0000000000000000 R15: ffffaea1800ebdc0
    [ 4.211379] FS: 0000000000000000(0000) GS:ffffa3273fd00000(0000) knlGS:0000000000000000
    [ 4.211379] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 4.211379] CR2: ffffffffffffffe8 CR3: 000000002820e001 CR4: 00000000001606e0
    [ 4.211379] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [ 4.211379] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [ 4.211379] Call Trace:
    [ 4.211379] ? vsock_find_connected_socket+0x6c/0xe0
    [ 4.211379] virtio_transport_recv_pkt+0x15f/0x740
    [ 4.211379] ? detach_buf+0x1b5/0x210
    [ 4.211379] virtio_transport_rx_work+0xb7/0x140
    [ 4.211379] process_one_work+0x1ef/0x480
    [ 4.211379] worker_thread+0x312/0x460
    [ 4.211379] kthread+0x132/0x140
    [ 4.211379] ? process_one_work+0x480/0x480
    [ 4.211379] ? kthread_destroy_worker+0xd0/0xd0
    [ 4.211379] ret_from_fork+0x35/0x40
    [ 4.211379] Code: c7 47 08 00 00 00 00 66 c7 07 28 00 c7 47 08 ff ff ff ff c7 47 04 ff ff ff ff c3 0f 1f 00 66 2e 0f 1f 84 00 00 00 00 00 8b 47 08 46 08 75 0a 8b 47 04 3b 46 04 0f 94 c0 c3 31 c0 c3 90 66 2e
    [ 4.211379] RIP: vsock_addr_equals_addr+0x3/0x20 RSP: ffffaea1800ebd28
    [ 4.211379] CR2: ffffffffffffffe8
    [ 4.211379] ---[ end trace f31cc4a2e6df3689 ]---
    [ 4.211379] Kernel panic - not syncing: Fatal exception in interrupt
    [ 4.211379] Kernel Offset: 0x37000000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
    [ 4.211379] Rebooting in 5 seconds..

    Fixes: 22b5c0b63f32 ("vsock/virtio: fix kernel panic after device hot-unplug")
    Cc: Stefan Hajnoczi
    Cc: Stefano Garzarella
    Cc: "David S. Miller"
    Cc: kvm@vger.kernel.org
    Cc: virtualization@lists.linux-foundation.org
    Cc: netdev@vger.kernel.org
    Cc: kernel-team@android.com
    Cc: stable@vger.kernel.org [4.9+]
    Signed-off-by: Jorge E. Moreira
    Reviewed-by: Stefano Garzarella
    Reviewed-by: Stefan Hajnoczi
    Acked-by: Stefan Hajnoczi
    Signed-off-by: David S. Miller

    Jorge E. Moreira
     

18 May, 2019

5 commits

  • Currently, the Kbuild core manipulates header search paths in a crazy
    way [1].

    To fix this mess, I want all Makefiles to add explicit $(srctree)/ to
    the search paths in the srctree. Some Makefiles are already written in
    that way, but not all. The goal of this work is to make the notation
    consistent, and finally get rid of the gross hacks.

    Having whitespaces after -I does not matter since commit 48f6e3cf5bc6
    ("kbuild: do not drop -I without parameter").

    [1]: https://patchwork.kernel.org/patch/9632347/

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • This reverts commit 532b0f7ece4cb2ffd24dc723ddf55242d1188e5e.

    More revisions coming up.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • When the socket is released, we should free all packets
    queued in the per-socket list in order to avoid a memory
    leak.

    Signed-off-by: Stefano Garzarella
    Signed-off-by: David S. Miller

    Stefano Garzarella
     
  • Error message printed:
    modprobe: ERROR: could not insert 'tipc': Address family not
    supported by protocol.
    when modprobe tipc after the following patch: switch order of
    device registration, commit 7e27e8d6130c
    ("tipc: switch order of device registration to fix a crash")

    Because sock_create_kern(net, AF_TIPC, ...) is called by
    tipc_topsrv_create_listener() in the initialization process
    of tipc_net_ops, tipc_socket_init() must be execute before that.

    I move tipc_socket_init() into function tipc_init_net().

    Fixes: 7e27e8d6130c
    ("tipc: switch order of device registration to fix a crash")
    Signed-off-by: Junwei Hu
    Reported-by: Wang Wang
    Reviewed-by: Kang Zhou
    Reviewed-by: Suanming Mou
    Signed-off-by: David S. Miller

    Junwei Hu
     
  • Because the function snprintf write at most size bytes(including the
    null byte).So the value of the argument size need not to minus one.

    Signed-off-by: swkhack
    Signed-off-by: David S. Miller

    swkhack
     

17 May, 2019

10 commits

  • Pull misc AFS fixes from David Howells:
    "This fixes a set of miscellaneous issues in the afs filesystem,
    including:

    - leak of keys on file close.

    - broken error handling in xattr functions.

    - missing locking when updating VL server list.

    - volume location server DNS lookup whereby preloaded cells may not
    ever get a lookup and regular DNS lookups to maintain server lists
    consume power unnecessarily.

    - incorrect error propagation and handling in the fileserver
    iteration code causes operations to sometimes apparently succeed.

    - interruption of server record check/update side op during
    fileserver iteration causes uninterruptible main operations to fail
    unexpectedly.

    - callback promise expiry time miscalculation.

    - over invalidation of the callback promise on directories.

    - double locking on callback break waking up file locking waiters.

    - double increment of the vnode callback break counter.

    Note that it makes some changes outside of the afs code, including:

    - an extra parameter to dns_query() to allow the dns_resolver key
    just accessed to be immediately invalidated. AFS is caching the
    results itself, so the key can be discarded.

    - an interruptible version of wait_var_event().

    - an rxrpc function to allow the maximum lifespan to be set on a
    call.

    - a way for an rxrpc call to be marked as non-interruptible"

    * tag 'afs-fixes-20190516' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
    afs: Fix double inc of vnode->cb_break
    afs: Fix lock-wait/callback-break double locking
    afs: Don't invalidate callback if AFS_VNODE_DIR_VALID not set
    afs: Fix calculation of callback expiry time
    afs: Make dynamic root population wait uninterruptibly for proc_cells_lock
    afs: Make some RPC operations non-interruptible
    rxrpc: Allow the kernel to mark a call as being non-interruptible
    afs: Fix error propagation from server record check/update
    afs: Fix the maximum lifespan of VL and probe calls
    rxrpc: Provide kernel interface to set max lifespan on a call
    afs: Fix "kAFS: AFS vnode with undefined type 0"
    afs: Fix cell DNS lookup
    Add wait_var_event_interruptible()
    dns_resolver: Allow used keys to be invalidated
    afs: Fix afs_cell records to always have a VL server list record
    afs: Fix missing lock when replacing VL server list
    afs: Fix afs_xattr_get_yfs() to not try freeing an error value
    afs: Fix incorrect error handling in afs_xattr_get_acl()
    afs: Fix key leak in afs_release() and afs_evict_inode()

    Linus Torvalds
     
  • Pull ceph updates from Ilya Dryomov:
    "On the filesystem side we have:

    - a fix to enforce quotas set above the mount point (Luis Henriques)

    - support for exporting snapshots through NFS (Zheng Yan)

    - proper statx implementation (Jeff Layton). statx flags are mapped
    to MDS caps, with AT_STATX_{DONT,FORCE}_SYNC taken into account.

    - some follow-up dentry name handling fixes, in particular
    elimination of our hand-rolled helper and the switch to __getname()
    as suggested by Al (Jeff Layton)

    - a set of MDS client cleanups in preparation for async MDS requests
    in the future (Jeff Layton)

    - a fix to sync the filesystem before remounting (Jeff Layton)

    On the rbd side, work is on-going on object-map and fast-diff image
    features"

    * tag 'ceph-for-5.2-rc1' of git://github.com/ceph/ceph-client: (29 commits)
    ceph: flush dirty inodes before proceeding with remount
    ceph: fix unaligned access in ceph_send_cap_releases
    libceph: make ceph_pr_addr take an struct ceph_entity_addr pointer
    libceph: fix unaligned accesses in ceph_entity_addr handling
    rbd: don't assert on writes to snapshots
    rbd: client_mutex is never nested
    ceph: print inode number in __caps_issued_mask debugging messages
    ceph: just call get_session in __ceph_lookup_mds_session
    ceph: simplify arguments and return semantics of try_get_cap_refs
    ceph: fix comment over ceph_drop_caps_for_unlink
    ceph: move wait for mds request into helper function
    ceph: have ceph_mdsc_do_request call ceph_mdsc_submit_request
    ceph: after an MDS request, do callback and completions
    ceph: use pathlen values returned by set_request_path_attr
    ceph: use __getname/__putname in ceph_mdsc_build_path
    ceph: use ceph_mdsc_build_path instead of clone_dentry_name
    ceph: fix potential use-after-free in ceph_mdsc_build_path
    ceph: dump granular cap info in "caps" debugfs file
    ceph: make iterate_session_caps a public symbol
    ceph: fix NULL pointer deref when debugging is enabled
    ...

    Linus Torvalds
     
  • When inserting route cache into the exception table, the key is
    generated with both src_addr and dest_addr with src addr routing.
    However, current logic always assumes the src_addr used to generate the
    key is a /128 host address. This is not true in the following scenarios:
    1. When the route is a gateway route or does not have next hop.
    (rt6_is_gw_or_nonexthop() == false)
    2. When calling ip6_rt_cache_alloc(), saddr is passed in as NULL.
    This means, when looking for a route cache in the exception table, we
    have to do the lookup twice: first time with the passed in /128 host
    address, second time with the src_addr stored in fib6_info.

    This solves the pmtu discovery issue reported by Mikael Magnusson where
    a route cache with a lower mtu info is created for a gateway route with
    src addr. However, the lookup code is not able to find this route cache.

    Fixes: 2b760fcf5cfb ("ipv6: hook up exception table to store dst cache")
    Reported-by: Mikael Magnusson
    Bisected-by: David Ahern
    Signed-off-by: Wei Wang
    Cc: Martin Lau
    Cc: Eric Dumazet
    Acked-by: Martin KaFai Lau
    Signed-off-by: David S. Miller

    Wei Wang
     
  • When host is under high stress, it is very possible thread
    running netdev_wait_allrefs() returns from msleep(250)
    10 seconds late.

    This leads to these messages in the syslog :

    [...] unregister_netdevice: waiting for syz_tun to become free. Usage count = 0

    If the device refcount is zero, the wait is over.

    Signed-off-by: Eric Dumazet
    Reported-by: syzbot
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • This resurrects commit 8742dc86d0c7a9628
    ("xfrm4: Fix uninitialized memory read in _decode_session4"),
    which got lost during a merge conflict resolution between ipsec-next
    and net-next tree.

    c53ac41e3720 ("xfrm: remove decode_session indirection from afinfo_policy")
    in ipsec-next moved the (buggy) _decode_session4 from
    net/ipv4/xfrm4_policy.c to net/xfrm/xfrm_policy.c.
    In mean time, 8742dc86d0c7a was applied to ipsec.git and fixed the
    problem in the "old" location.

    When the trees got merged, the moved, old function was kept.
    This applies the "lost" commit again, to the new location.

    Fixes: a658a3f2ecbab ("Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next")
    Reported-by: Stephen Rothwell
    Signed-off-by: Florian Westphal
    Signed-off-by: David S. Miller

    Florian Westphal
     
  • When tipc is loaded while many processes try to create a TIPC socket,
    a crash occurs:
    PANIC: Unable to handle kernel paging request at virtual
    address "dfff20000000021d"
    pc : tipc_sk_create+0x374/0x1180 [tipc]
    lr : tipc_sk_create+0x374/0x1180 [tipc]
    Exception class = DABT (current EL), IL = 32 bits
    Call trace:
    tipc_sk_create+0x374/0x1180 [tipc]
    __sock_create+0x1cc/0x408
    __sys_socket+0xec/0x1f0
    __arm64_sys_socket+0x74/0xa8
    ...

    This is due to race between sock_create and unfinished
    register_pernet_device. tipc_sk_insert tries to do
    "net_generic(net, tipc_net_id)".
    but tipc_net_id is not initialized yet.

    So switch the order of the two to close the race.

    This can be reproduced with multiple processes doing socket(AF_TIPC, ...)
    and one process doing module removal.

    Fixes: a62fbccecd62 ("tipc: make subscriber server support net namespace")
    Signed-off-by: Junwei Hu
    Reported-by: Wang Wang
    Reviewed-by: Xiaogang Wang
    Signed-off-by: David S. Miller

    Junwei Hu
     
  • At ipv6 route dismantle, fib6_drop_pcpu_from() is responsible
    for finding all percpu routes and set their ->from pointer
    to NULL, so that fib6_ref can reach its expected value (1).

    The problem right now is that other cpus can still catch the
    route being deleted, since there is no rcu grace period
    between the route deletion and call to fib6_drop_pcpu_from()

    This can leak the fib6 and associated resources, since no
    notifier will take care of removing the last reference(s).

    I decided to add another boolean (fib6_destroying) instead
    of reusing/renaming exception_bucket_flushed to ease stable backports,
    and properly document the memory barriers used to implement this fix.

    This patch has been co-developped with Wei Wang.

    Fixes: 93531c674315 ("net/ipv6: separate handling of FIB entries from dst based routes")
    Signed-off-by: Eric Dumazet
    Reported-by: syzbot
    Cc: Wei Wang
    Cc: David Ahern
    Cc: Martin Lau
    Acked-by: Wei Wang
    Acked-by: Martin KaFai Lau
    Reviewed-by: David Ahern
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • If bpfilter is not available return ENOPROTOOPT to fallback to netfilter.

    Function request_module() returns both errors and userspace exit codes.
    Just ignore them. Rechecking bpfilter_ops is enough.

    Fixes: d2ba09c17a06 ("net: add skeleton of bpfilter kernel module")
    Signed-off-by: Konstantin Khlebnikov
    Signed-off-by: David S. Miller

    Konstantin Khlebnikov
     
  • Currently, hvsock does not implement any delayed or background close
    logic. Whenever the hvsock socket is closed, a FIN is sent to the peer, and
    the last reference to the socket is dropped, which leads to a call to
    .destruct where the socket can hang indefinitely waiting for the peer to
    close it's side. The can cause the user application to hang in the close()
    call.

    This change implements proper STREAM(TCP) closing handshake mechanism by
    sending the FIN to the peer and the waiting for the peer's FIN to arrive
    for a given timeout. On timeout, it will try to terminate the connection
    (i.e. a RST). This is in-line with other socket providers such as virtio.

    This change does not address the hang in the vmbus_hvsock_device_unregister
    where it waits indefinitely for the host to rescind the channel. That
    should be taken up as a separate fix.

    Signed-off-by: Sunil Muthuswamy
    Reviewed-by: Dexuan Cui
    Signed-off-by: David S. Miller

    Sunil Muthuswamy
     
  • Plumb it through from the flow_dissector.

    Signed-off-by: Edward Cree
    Signed-off-by: David S. Miller

    Edward Cree
     

16 May, 2019

7 commits

  • Allow kernel services using AF_RXRPC to indicate that a call should be
    non-interruptible. This allows kafs to make things like lock-extension and
    writeback data storage calls non-interruptible.

    If this is set, signals will be ignored for operations on that call where
    possible - such as waiting to get a call channel on an rxrpc connection.

    It doesn't prevent UDP sendmsg from being interrupted, but that will be
    handled by packet retransmission.

    rxrpc_kernel_recv_data() isn't affected by this since that never waits,
    preferring instead to return -EAGAIN and leave the waiting to the caller.

    Userspace initiated calls can't be set to be uninterruptible at this time.

    Signed-off-by: David Howells

    David Howells
     
  • Provide an interface to set max lifespan on a call from inside of the
    kernel without having to call kernel_sendmsg().

    Signed-off-by: David Howells

    David Howells
     
  • Daniel Borkmann says:

    ====================
    pull-request: bpf 2019-05-16

    The following pull-request contains BPF updates for your *net* tree.

    The main changes are:

    1) Fix a use after free in __dev_map_entry_free(), from Eric.

    2) Several sockmap related bug fixes: a splat in strparser if
    it was never initialized, remove duplicate ingress msg list
    purging which can race, fix msg->sg.size accounting upon
    skb to msg conversion, and last but not least fix a timeout
    bug in tcp_bpf_wait_data(), from John.

    3) Fix LRU map to avoid messing with eviction heuristics upon
    syscall lookup, e.g. map walks from user space side will
    then lead to eviction of just recently created entries on
    updates as it would mark all map entries, from Daniel.

    4) Don't bail out when libbpf feature probing fails. Also
    various smaller fixes to flow_dissector test, from Stanislav.

    5) Fix missing brackets for BTF_INT_OFFSET() in UAPI, from Gary.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Pull nfsd updates from Bruce Fields:
    "This consists mostly of nfsd container work:

    Scott Mayhew revived an old api that communicates with a userspace
    daemon to manage some on-disk state that's used to track clients
    across server reboots. We've been using a usermode_helper upcall for
    that, but it's tough to run those with the right namespaces, so a
    daemon is much friendlier to container use cases.

    Trond fixed nfsd's handling of user credentials in user namespaces. He
    also contributed patches that allow containers to support different
    sets of NFS protocol versions.

    The only remaining container bug I'm aware of is that the NFS reply
    cache is shared between all containers. If anyone's aware of other
    gaps in our container support, let me know.

    The rest of this is miscellaneous bugfixes"

    * tag 'nfsd-5.2' of git://linux-nfs.org/~bfields/linux: (23 commits)
    nfsd: update callback done processing
    locks: move checks from locks_free_lock() to locks_release_private()
    nfsd: fh_drop_write in nfsd_unlink
    nfsd: allow fh_want_write to be called twice
    nfsd: knfsd must use the container user namespace
    SUNRPC: rsi_parse() should use the current user namespace
    SUNRPC: Fix the server AUTH_UNIX userspace mappings
    lockd: Pass the user cred from knfsd when starting the lockd server
    SUNRPC: Temporary sockets should inherit the cred from their parent
    SUNRPC: Cache the process user cred in the RPC server listener
    nfsd: Allow containers to set supported nfs versions
    nfsd: Add custom rpcbind callbacks for knfsd
    SUNRPC: Allow further customisation of RPC program registration
    SUNRPC: Clean up generic dispatcher code
    SUNRPC: Add a callback to initialise server requests
    SUNRPC/nfs: Fix return value for nfs4_callback_compound()
    nfsd: handle legacy client tracking records sent by nfsdcld
    nfsd: re-order client tracking method selection
    nfsd: keep a tally of RECLAIM_COMPLETE operations when using nfsdcld
    nfsd: un-deprecate nfsdcld
    ...

    Linus Torvalds
     
  • The tcp_bpf_wait_data() routine needs to check timeo != 0 before
    calling sk_wait_event() otherwise we may see unexpected stalls
    on receiver.

    Arika did all the leg work here I just formatted, posted and ran
    a few tests.

    Fixes: 604326b41a6fb ("bpf, sockmap: convert to generic sk_msg interface")
    Reported-by: Arika Chen
    Suggested-by: Arika Chen
    Signed-off-by: John Fastabend
    Signed-off-by: Daniel Borkmann

    John Fastabend
     
  • Allow used DNS resolver keys to be invalidated after use if the caller is
    doing its own caching of the results. This reduces the amount of resources
    required.

    Fix AFS to invalidate DNS results to kill off permanent failure records
    that get lodged in the resolver keyring and prevent future lookups from
    happening.

    Fixes: 0a5143f2f89c ("afs: Implement VL server rotation")
    Signed-off-by: David Howells

    David Howells
     
  • It is illegal to change arbitrary fields in skb_shared_info if the
    skb is cloned.

    Before calling skb_zcopy_clear() we need to ensure this rule,
    therefore we need to move the test from sk_stream_alloc_skb()
    to sk_wmem_free_skb()

    Fixes: 4f661542a402 ("tcp: fix zerocopy and notsent_lowat issues")
    Signed-off-by: Eric Dumazet
    Diagnosed-by: Willem de Bruijn
    Signed-off-by: David S. Miller

    Eric Dumazet