28 Nov, 2019

5 commits

  • This patch corrects the SPDX License Identifier style in
    header files related to PHY Layer for Ethernet drivers.
    For C header files Documentation/process/license-rules.rst
    mandates C-like comments (opposed to C source files where
    C++ style should be used). This patch also gives an explicit
    block comment to the SPDX License Identifier.

    Changes made by using a script provided by Joe Perches here:
    https://lkml.org/lkml/2019/2/7/46.

    Suggested-by: Joe Perches
    Signed-off-by: Nishad Kamdar
    Signed-off-by: David S. Miller

    Nishad Kamdar
     
  • Commit 6570bc79c0df ("net: core: use listified Rx for GRO_NORMAL in
    napi_gro_receive()") has applied batched GRO_NORMAL packets processing
    to all napi_gro_receive() users, including mac80211-based drivers.

    However, this change has led to a regression in iwlwifi driver [1][2] as
    it is required for NAPI users to call napi_complete_done() or
    napi_complete() and the end of every polling iteration, whilst iwlwifi
    doesn't use NAPI scheduling at all and just calls napi_gro_flush().
    In that particular case, packets which have not been already flushed
    from napi->rx_list stall in it until at least next Rx cycle.

    Fix this by adding a manual flushing of the list to iwlwifi driver right
    before napi_gro_flush() call to mimic napi_complete() logics.

    I prefer to open-code gro_normal_list() rather than exporting it for 2
    reasons:
    * to prevent from using it and napi_gro_flush() in any new drivers,
    as it is the *really* bad way to use NAPI that should be avoided;
    * to keep gro_normal_list() static and don't lose any CC optimizations.

    I also don't add the "Fixes:" tag as the mentioned commit was only a
    trigger that only exposed an improper usage of NAPI in this particular
    driver.

    [1] https://lore.kernel.org/netdev/PSXP216MB04388962C411CD0B17A86F47804A0@PSXP216MB0438.KORP216.PROD.OUTLOOK.COM
    [2] https://bugzilla.kernel.org/show_bug.cgi?id=205647

    Signed-off-by: Alexander Lobakin
    Acked-by: Luca Coelho
    Reported-by: Nicholas Johnson
    Tested-by: Nicholas Johnson
    Reviewed-by: Edward Cree
    Signed-off-by: David S. Miller

    Alexander Lobakin
     
  • Yangbo Lu says:

    ====================
    net: mscc: ocelot: fix potential issues accessing skbs list

    Fix two prtential issues accessing skbs list.
    - Break the matching loop when find the matching skb to avoid
    consuming more skbs incorrectly. The timestamp ID is only
    from 0 to 3 while the FIFO supports 128 timestamps at most.
    - Convert to use skb queue instead of the list of skbs to provide
    protect with lock.

    Changes for v2:
    - Split into two patches.
    - Converted to use skb queue.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Convert to use skb queue instead of the list of skbs.
    The skb queue could provide protection with lock.

    Signed-off-by: Yangbo Lu
    Signed-off-by: David S. Miller

    Yangbo Lu
     
  • Break the matching loop when find the matching skb for TX timestamp.
    This is to avoid consuming more skbs incorrectly. The timestamp ID
    is from 0 to 3 while the FIFO could support 128 timestamps at most.

    Signed-off-by: Yangbo Lu
    Signed-off-by: David S. Miller

    Yangbo Lu
     

27 Nov, 2019

17 commits

  • In gve_alloc_queue_page_list(), when a page allocation fails,
    qpl->num_entries will be wrong. In this case priv->num_registered_pages
    can underflow in gve_free_queue_page_list(), causing subsequent calls
    to gve_alloc_queue_page_list() to fail.

    Fixes: f5cedc84a30d ("gve: Add transmit and receive support")
    Signed-off-by: Jeroen de Borst
    Reviewed-by: Catherine Sullivan
    Signed-off-by: David S. Miller

    Jeroen de Borst
     
  • Any argument outside of that range would result in an out of bound
    memory access, since the accessed array is 65536 bits long.

    Signed-off-by: Maciej Żenczykowski
    Signed-off-by: David S. Miller

    Maciej Żenczykowski
     
  • When user-space sets the OVS_UFID_F_OMIT_* flags, and the relevant
    flow has no UFID, we can exceed the computed size, as
    ovs_nla_put_identifier() will always dump an OVS_FLOW_ATTR_KEY
    attribute.
    Take the above in account when computing the flow command message
    size.

    Fixes: 74ed7ab9264c ("openvswitch: Add support for unique flow IDs.")
    Reported-by: Qi Jun Ding
    Signed-off-by: Paolo Abeni
    Signed-off-by: David S. Miller

    Paolo Abeni
     
  • Fix the return paths for all I/O operations to ensure
    that the I/O completed successfully. Then pass the return
    to the caller for further processing

    Fixes: 01db923e8377 ("net: phy: dp83869: Add TI dp83869 phy")
    Reported-by: Andrew Lunn
    Signed-off-by: Dan Murphy
    Signed-off-by: David S. Miller

    Dan Murphy
     
  • We need to calculate the skb size correctly otherwise we risk triggering
    skb_over_panic[1]. The issue is that data_len is added to the skb in a
    nl attribute, but we don't account for its header size (nlattr 4 bytes)
    and alignment. We account for it when calculating the total size in
    the > PSAMPLE_MAX_PACKET_SIZE comparison correctly, but not when
    allocating after that. The fix is simple - use nla_total_size() for
    data_len when allocating.

    To reproduce:
    $ tc qdisc add dev eth1 clsact
    $ tc filter add dev eth1 egress matchall action sample rate 1 group 1 trunc 129
    $ mausezahn eth1 -b bcast -a rand -c 1 -p 129
    < skb_over_panic BUG(), tail is 4 bytes past skb->end >

    [1] Trace:
    [ 50.459526][ T3480] skbuff: skb_over_panic: text:(____ptrval____) len:196 put:136 head:(____ptrval____) data:(____ptrval____) tail:0xc4 end:0xc0 dev:
    [ 50.474339][ T3480] ------------[ cut here ]------------
    [ 50.481132][ T3480] kernel BUG at net/core/skbuff.c:108!
    [ 50.486059][ T3480] invalid opcode: 0000 [#1] PREEMPT SMP
    [ 50.489463][ T3480] CPU: 3 PID: 3480 Comm: mausezahn Not tainted 5.4.0-rc7 #108
    [ 50.492844][ T3480] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-2.fc30 04/01/2014
    [ 50.496551][ T3480] RIP: 0010:skb_panic+0x79/0x7b
    [ 50.498261][ T3480] Code: bc 00 00 00 41 57 4c 89 e6 48 c7 c7 90 29 9a 83 4c 8b 8b c0 00 00 00 50 8b 83 b8 00 00 00 50 ff b3 c8 00 00 00 e8 ae ef c0 fe 0b e8 2f df c8 fe 48 8b 55 08 44 89 f6 4c 89 e7 48 c7 c1 a0 22
    [ 50.504111][ T3480] RSP: 0018:ffffc90000447a10 EFLAGS: 00010282
    [ 50.505835][ T3480] RAX: 0000000000000087 RBX: ffff888039317d00 RCX: 0000000000000000
    [ 50.507900][ T3480] RDX: 0000000000000000 RSI: ffffffff812716e1 RDI: 00000000ffffffff
    [ 50.509820][ T3480] RBP: ffffc90000447a60 R08: 0000000000000001 R09: 0000000000000000
    [ 50.511735][ T3480] R10: ffffffff81d4f940 R11: 0000000000000000 R12: ffffffff834a22b0
    [ 50.513494][ T3480] R13: ffffffff82c10433 R14: 0000000000000088 R15: ffffffff838a8084
    [ 50.515222][ T3480] FS: 00007f3536462700(0000) GS:ffff88803eac0000(0000) knlGS:0000000000000000
    [ 50.517135][ T3480] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 50.518583][ T3480] CR2: 0000000000442008 CR3: 000000003b222000 CR4: 00000000000006e0
    [ 50.520723][ T3480] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [ 50.522709][ T3480] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [ 50.524450][ T3480] Call Trace:
    [ 50.525214][ T3480] skb_put.cold+0x1b/0x1b
    [ 50.526171][ T3480] psample_sample_packet+0x1d3/0x340
    [ 50.527307][ T3480] tcf_sample_act+0x178/0x250
    [ 50.528339][ T3480] tcf_action_exec+0xb1/0x190
    [ 50.529354][ T3480] mall_classify+0x67/0x90
    [ 50.530332][ T3480] tcf_classify+0x72/0x160
    [ 50.531286][ T3480] __dev_queue_xmit+0x3db/0xd50
    [ 50.532327][ T3480] dev_queue_xmit+0x18/0x20
    [ 50.533299][ T3480] packet_sendmsg+0xee7/0x2090
    [ 50.534331][ T3480] sock_sendmsg+0x54/0x70
    [ 50.535271][ T3480] __sys_sendto+0x148/0x1f0
    [ 50.536252][ T3480] ? tomoyo_file_ioctl+0x23/0x30
    [ 50.537334][ T3480] ? ksys_ioctl+0x5e/0xb0
    [ 50.540068][ T3480] __x64_sys_sendto+0x2a/0x30
    [ 50.542810][ T3480] do_syscall_64+0x73/0x1f0
    [ 50.545383][ T3480] entry_SYSCALL_64_after_hwframe+0x44/0xa9
    [ 50.548477][ T3480] RIP: 0033:0x7f35357d6fb3
    [ 50.551020][ T3480] Code: 48 8b 0d 18 90 20 00 f7 d8 64 89 01 48 83 c8 ff c3 66 0f 1f 44 00 00 83 3d f9 d3 20 00 00 75 13 49 89 ca b8 2c 00 00 00 0f 05 3d 01 f0 ff ff 73 34 c3 48 83 ec 08 e8 eb f6 ff ff 48 89 04 24
    [ 50.558547][ T3480] RSP: 002b:00007ffe0c7212c8 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
    [ 50.561870][ T3480] RAX: ffffffffffffffda RBX: 0000000001dac010 RCX: 00007f35357d6fb3
    [ 50.565142][ T3480] RDX: 0000000000000082 RSI: 0000000001dac2a2 RDI: 0000000000000003
    [ 50.568469][ T3480] RBP: 00007ffe0c7212f0 R08: 00007ffe0c7212d0 R09: 0000000000000014
    [ 50.571731][ T3480] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000082
    [ 50.574961][ T3480] R13: 0000000001dac2a2 R14: 0000000000000001 R15: 0000000000000003
    [ 50.578170][ T3480] Modules linked in: sch_ingress virtio_net
    [ 50.580976][ T3480] ---[ end trace 61a515626a595af6 ]---

    CC: Yotam Gigi
    CC: Jiri Pirko
    CC: Jamal Hadi Salim
    CC: Simon Horman
    CC: Roopa Prabhu
    Fixes: 6ae0a6286171 ("net: Introduce psample, a new genetlink channel for packet sampling")
    Signed-off-by: Nikolay Aleksandrov
    Signed-off-by: David S. Miller

    Nikolay Aleksandrov
     
  • Phong Tran says:

    ====================
    Fix -Wcast-function-type usb net drivers

    Change log with v1:
    - Modify suffix of patch subject.
    - Did the checkpatch.pl (remove the space, add a blank line).
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • correct usage prototype of callback in tasklet_init().
    Report by https://github.com/KSPP/linux/issues/20

    Signed-off-by: Phong Tran
    Signed-off-by: David S. Miller

    Phong Tran
     
  • correct usage prototype of callback in tasklet_init().
    Report by https://github.com/KSPP/linux/issues/20

    Signed-off-by: Phong Tran
    Signed-off-by: David S. Miller

    Phong Tran
     
  • Note that the sysctl write accessor functions guarantee that:
    net->ipv4.sysctl_ip_prot_sock ipv4.ip_local_ports.range[0]
    invariant is maintained, and as such the max() in selinux hooks is actually spurious.

    ie. even though
    if (snum < max(inet_prot_sock(sock_net(sk)), low) || snum > high) {
    per logic is the same as
    if ((snum < inet_prot_sock(sock_net(sk)) && snum < low) || snum > high) {
    it is actually functionally equivalent to:
    if (snum < low || snum > high) {
    which is equivalent to:
    if (snum < inet_prot_sock(sock_net(sk)) || snum < low || snum > high) {
    even though the first clause is spurious.

    But we want to hold on to it in case we ever want to change what what
    inet_port_requires_bind_service() means (for example by changing
    it from a, by default, [0..1024) range to some sort of set).

    Test: builds, git 'grep inet_prot_sock' finds no other references
    Cc: Eric Dumazet
    Signed-off-by: Maciej Żenczykowski
    Signed-off-by: David S. Miller

    Maciej Żenczykowski
     
  • Thomas Falcon says:

    ====================
    ibmvnic: Harden device commands and queries

    This patch series fixes some shortcomings with the current
    VNIC device command implementation. The first patch fixes
    the initialization of driver completion structures used
    for device commands. Additionally, all waits for device
    commands are bounded with a timeout in the event that the
    device does not respond or becomes inoperable. Finally,
    serialize queries to retain the integrity of device return
    codes.

    Changes in v2:

    - included header comment for ibmvnic_wait_for_completion
    - removed open-coded loop in patch 3/4, suggested by Jakub
    - ibmvnic_wait_for_completion accepts timeout value in milliseconds
    instead of jiffies
    - timeout calculations cleaned up and completed before wait loop
    - included missing mutex_destroy calls, suggested by Jakub
    - included comment before mutex declaration
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Provide some serialization for device CRQ commands
    and queries to ensure that the shared variable used for
    storing return codes is properly synchronized.

    Signed-off-by: Thomas Falcon
    Signed-off-by: David S. Miller

    Thomas Falcon
     
  • Create a wrapper for wait_for_completion calls with additional
    driver checks to ensure that the driver does not wait on a
    disabled device. In those cases or if the device does not respond
    in an extended amount of time, this will allow the driver an
    opportunity to recover.

    Signed-off-by: Thomas Falcon
    Signed-off-by: David S. Miller

    Thomas Falcon
     
  • If we receive a notification that the device has been deactivated
    or removed, force a completion of all waiting threads.

    Signed-off-by: Thomas Falcon
    Signed-off-by: David S. Miller

    Thomas Falcon
     
  • Fix multiple calls to init_completion for device completion
    structures. Instead, initialize them during device probe and
    reinitialize them later as needed.

    Signed-off-by: Thomas Falcon
    Signed-off-by: David S. Miller

    Thomas Falcon
     
  • It already existed in part of the function, but move it
    to a higher level and use it consistently throughout.

    Safe since sk is never written to.

    Signed-off-by: Maciej Żenczykowski
    Acked-by: Marcelo Ricardo Leitner
    Signed-off-by: David S. Miller

    Maciej Żenczykowski
     
  • It cannot overlap with the local port range - ie. with autobind selectable
    ports - and not with reserved ports.

    Indeed 'ip_local_reserved_ports' isn't even a range, it's a (by default
    empty) set.

    Fixes: 4548b683b781 ("Introduce a sysctl that modifies the value of PROT_SOCK.")
    Signed-off-by: Maciej Żenczykowski
    Signed-off-by: David S. Miller

    Maciej Żenczykowski
     
  • In commit 4f07b80c9733 ("tipc: check msg->req data len in
    tipc_nl_compat_bearer_disable") the same patch code was copied into
    routines: tipc_nl_compat_bearer_disable(),
    tipc_nl_compat_link_stat_dump() and tipc_nl_compat_link_reset_stats().
    The two link routine occurrences should have been modified to check
    the maximum link name length and not bearer name length.

    Fixes: 4f07b80c9733 ("tipc: check msg->reg data len in tipc_nl_compat_bearer_disable")
    Signed-off-by: John Rutherford
    Acked-by: Jon Maloy
    Signed-off-by: David S. Miller

    John Rutherford
     

26 Nov, 2019

18 commits

  • Pull IPMI updates from Corey Minyard:
    "Some small fixes accumulated for IPMI, nothing major"

    * tag 'for-linus-5.5-1' of git://github.com/cminyard/linux-ipmi:
    ipmi: fix ipmb_poll()'s return type
    ipmi: kill off 'timespec' usage again
    drivers: ipmi: Support for both IPMB Req and Resp
    ipmi: Fix memory leak in __ipmi_bmc_register
    ipmi: bt-bmc: use devm_platform_ioremap_resource() to simplify code
    ipmi: use %*ph to print small buffer
    ipmi: Don't allow device module unload when in use

    Linus Torvalds
     
  • Pull i3c updates from Boris Brezillon:
    "Minor fixes and MAINTAINERS updates"

    * tag 'i3c/for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux:
    MAINTAINERS: add myself as maintainer of Cadence I3C master controller driver
    MAINTAINERS: Mark linux-i3c mailing list moderated
    i3c: Spelling s/dicovered/discovered/
    i3c: master: use i3c_dev_get_master()

    Linus Torvalds
     
  • Pull pcmcia updates from Dominik Brodowski:
    "Just a few odd fixes and improvements to the PCMCIA core"

    * 'pcmcia-next' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux:
    pcmcia: remove unused dprintk definition
    pcmcia: include for pcmcia_parse_tuple
    pcmcia: include cs_internal.h for missing declarations
    pcmcia: Use dev_get_drvdata where possible
    pcmcia: clean an indentation issues, remove extraneous spaces

    Linus Torvalds
     
  • Pull spi updates from Mark Brown:
    "Lots of stuff going on in the core for SPI this time around, the two
    big changes both being around time in different forms:

    - A rework of delay times from Alexandru Ardelean which makes the
    ways in which they are specified more consistent between drivers so
    that what's available to clients is less dependent on the hardware
    implementation.

    - Support for PTP timestamping of transfers from Vladimir Oltean,
    useful for use with precision clocks with SPI control interfaces.

    - Big cleanups for the Atmel, PXA2xx and Zynq QSPI drivers"

    * tag 'spi-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (119 commits)
    dt-bindings: spi: Convert stm32 QSPI bindings to json-schema
    spi: pic32: Retire dma_request_slave_channel_compat()
    spi: Fix Kconfig indentation
    spi: mediatek: add SPI_CS_HIGH support
    spi: st-ssc4: add missed pm_runtime_disable
    spi: tegra20-slink: add missed clk_unprepare
    spi: tegra20-slink: Use dma_request_chan() directly for channel request
    spi: tegra114: Use dma_request_chan() directly for channel request
    spi: s3c64xx: Use dma_request_chan() directly for channel request
    spi: qup: Use dma_request_chan() directly for channel request
    spi: pl022: Use dma_request_chan() directly for channel request
    spi: imx: Use dma_request_chan() directly for channel request
    spi: fsl-lpspi: Use dma_request_chan() directly for channel request
    spi: atmel: Use dma_request_chan() directly for channel request
    spi: at91-usart: Use dma_request_chan() directly for channel request
    spi: fsl-cpm: Correct the free:ing
    spi: Fix regression to return zero on success instead of positive value
    spi: pxa2xx: Add missed security checks
    spi: nxp-fspi: Use devm API to fix missed unregistration of controller
    spi: omap2-mcspi: Remove redundant checks
    ...

    Linus Torvalds
     
  • Pull regulator updates from Mark Brown:
    "Another fairly quiet release for the regulator API, some work all
    around including some core work but mostly in specialist or driver
    specific code:

    - Fix for powering off boot-on regulators

    - Enhancements to the coupled regulator support introduced in the
    last release

    - Conversion of a bunch of drivers to the fwnode API for GPIOs

    - Mode support for DA9062

    - New device support for Qualcomm PM1650, PM8004 and PM895 and
    Silergy SR83X

    - Removal of obsolete AB8505 support"

    * tag 'regulator-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (49 commits)
    regulator: da9062: Return REGULATOR_MODE_INVALID for invalid mode
    regulator: Fix Kconfig indentation
    regulator: tps6105x: add optional devicetree support
    tps6105x: add optional devicetree support
    regulator: rn5t618: fix rc5t619 ldo10 enable
    regulator: vexpress: Use PTR_ERR_OR_ZERO() to simplify code
    dt-bindings: mfd: da9062: describe buck modes
    regulator: da9062: add of_map_mode support for bucks
    regulator: da9062: refactor buck modes into header
    regulator: stpmic1: Set a default ramp delay value
    regulator: core: Let boot-on regulators be powered off
    regulator: core: Don't try to remove device links if add failed
    regulator: ab8500: Remove SYSCLKREQ from enum ab8505_regulator_id
    regulator: ab8500: Remove AB8505 USB regulator
    regulator: fan53555: add chip id for Silergy SYR83X
    regulator: fixed: add off-on-delay
    dt-bindings: regulator: fixed: add off-on-delay-us property
    regulator: core: Allow generic coupling only for always-on regulators
    regulator: core: Release coupled_rdevs on regulator_init_coupling() error
    regulator: bd70528: Add MODULE_ALIAS to allow module auto loading
    ...

    Linus Torvalds
     
  • Pull regmap update from Mark Brown:
    "Just one patch for this release removing some dead code"

    * tag 'regmap-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
    regmap: regmap-w1: Drop unreachable code

    Linus Torvalds
     
  • Pull networking updates from David Miller:
    "Another merge window, another pull full of stuff:

    1) Support alternative names for network devices, from Jiri Pirko.

    2) Introduce per-netns netdev notifiers, also from Jiri Pirko.

    3) Support MSG_PEEK in vsock/virtio, from Matias Ezequiel Vara
    Larsen.

    4) Allow compiling out the TLS TOE code, from Jakub Kicinski.

    5) Add several new tracepoints to the kTLS code, also from Jakub.

    6) Support set channels ethtool callback in ena driver, from Sameeh
    Jubran.

    7) New SCTP events SCTP_ADDR_ADDED, SCTP_ADDR_REMOVED,
    SCTP_ADDR_MADE_PRIM, and SCTP_SEND_FAILED_EVENT. From Xin Long.

    8) Add XDP support to mvneta driver, from Lorenzo Bianconi.

    9) Lots of netfilter hw offload fixes, cleanups and enhancements,
    from Pablo Neira Ayuso.

    10) PTP support for aquantia chips, from Egor Pomozov.

    11) Add UDP segmentation offload support to igb, ixgbe, and i40e. From
    Josh Hunt.

    12) Add smart nagle to tipc, from Jon Maloy.

    13) Support L2 field rewrite by TC offloads in bnxt_en, from Venkat
    Duvvuru.

    14) Add a flow mask cache to OVS, from Tonghao Zhang.

    15) Add XDP support to ice driver, from Maciej Fijalkowski.

    16) Add AF_XDP support to ice driver, from Krzysztof Kazimierczak.

    17) Support UDP GSO offload in atlantic driver, from Igor Russkikh.

    18) Support it in stmmac driver too, from Jose Abreu.

    19) Support TIPC encryption and auth, from Tuong Lien.

    20) Introduce BPF trampolines, from Alexei Starovoitov.

    21) Make page_pool API more numa friendly, from Saeed Mahameed.

    22) Introduce route hints to ipv4 and ipv6, from Paolo Abeni.

    23) Add UDP segmentation offload to cxgb4, Rahul Lakkireddy"

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1857 commits)
    libbpf: Fix usage of u32 in userspace code
    mm: Implement no-MMU variant of vmalloc_user_node_flags
    slip: Fix use-after-free Read in slip_open
    net: dsa: sja1105: fix sja1105_parse_rgmii_delays()
    macvlan: schedule bc_work even if error
    enetc: add support Credit Based Shaper(CBS) for hardware offload
    net: phy: add helpers phy_(un)lock_mdio_bus
    mdio_bus: don't use managed reset-controller
    ax88179_178a: add ethtool_op_get_ts_info()
    mlxsw: spectrum_router: Fix use of uninitialized adjacency index
    mlxsw: spectrum_router: After underlay moves, demote conflicting tunnels
    bpf: Simplify __bpf_arch_text_poke poke type handling
    bpf: Introduce BPF_TRACE_x helper for the tracing tests
    bpf: Add bpf_jit_blinding_enabled for !CONFIG_BPF_JIT
    bpf, testing: Add various tail call test cases
    bpf, x86: Emit patchable direct jump as tail call
    bpf: Constant map key tracking for prog array pokes
    bpf: Add poke dependency tracking for prog array maps
    bpf: Add initial poke descriptor table for jit images
    bpf: Move owner type, jited info into array auxiliary data
    ...

    Linus Torvalds
     
  • Pull crypto updates from Herbert Xu:
    "API:
    - Add library interfaces of certain crypto algorithms for WireGuard
    - Remove the obsolete ablkcipher and blkcipher interfaces
    - Move add_early_randomness() out of rng_mutex

    Algorithms:
    - Add blake2b shash algorithm
    - Add blake2s shash algorithm
    - Add curve25519 kpp algorithm
    - Implement 4 way interleave in arm64/gcm-ce
    - Implement ciphertext stealing in powerpc/spe-xts
    - Add Eric Biggers's scalar accelerated ChaCha code for ARM
    - Add accelerated 32r2 code from Zinc for MIPS
    - Add OpenSSL/CRYPTOGRAMS poly1305 implementation for ARM and MIPS

    Drivers:
    - Fix entropy reading failures in ks-sa
    - Add support for sam9x60 in atmel
    - Add crypto accelerator for amlogic GXL
    - Add sun8i-ce Crypto Engine
    - Add sun8i-ss cryptographic offloader
    - Add a host of algorithms to inside-secure
    - Add NPCM RNG driver
    - add HiSilicon HPRE accelerator
    - Add HiSilicon TRNG driver"

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (285 commits)
    crypto: vmx - Avoid weird build failures
    crypto: lib/chacha20poly1305 - use chacha20_crypt()
    crypto: x86/chacha - only unregister algorithms if registered
    crypto: chacha_generic - remove unnecessary setkey() functions
    crypto: amlogic - enable working on big endian kernel
    crypto: sun8i-ce - enable working on big endian
    crypto: mips/chacha - select CRYPTO_SKCIPHER, not CRYPTO_BLKCIPHER
    hwrng: ks-sa - Enable COMPILE_TEST
    crypto: essiv - remove redundant null pointer check before kfree
    crypto: atmel-aes - Change data type for "lastc" buffer
    crypto: atmel-tdes - Set the IV after {en,de}crypt
    crypto: sun4i-ss - fix big endian issues
    crypto: sun4i-ss - hide the Invalid keylen message
    crypto: sun4i-ss - use crypto_ahash_digestsize
    crypto: sun4i-ss - remove dependency on not 64BIT
    crypto: sun4i-ss - Fix 64-bit size_t warnings on sun4i-ss-hash.c
    MAINTAINERS: Add maintainer for HiSilicon SEC V2 driver
    crypto: hisilicon - add DebugFS for HiSilicon SEC
    Documentation: add DebugFS doc for HiSilicon SEC
    crypto: hisilicon - add SRIOV for HiSilicon SEC
    ...

    Linus Torvalds
     
  • …t/livepatching/livepatching

    Pull livepatching updates from Petr Mladek:

    - New API to track system state changes done be livepatch callbacks. It
    helps to maintain compatibility between livepatches.

    - Update Kconfig help text. ORC is another reliable unwinder.

    - Disable generic selftest timeout. Livepatch selftests have their own
    per-operation fine-grained timeouts.

    * tag 'livepatching-for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching:
    x86/stacktrace: update kconfig help text for reliable unwinders
    livepatch: Selftests of the API for tracking system state changes
    livepatch: Documentation of the new API for tracking system state changes
    livepatch: Allow to distinguish different version of system state changes
    livepatch: Basic API to track system state changes
    livepatch: Keep replaced patches until post_patch callback is called
    selftests/livepatch: Disable the timeout

    Linus Torvalds
     
  • Pull printk updates from Petr Mladek:

    - Allow to print symbolic error names via new %pe modifier.

    - Use pr_warn() instead of the remaining pr_warning() calls. Fix
    formatting of the related lines.

    - Add VSPRINTF entry to MAINTAINERS.

    * tag 'printk-for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk: (32 commits)
    checkpatch: don't warn about new vsprintf pointer extension '%pe'
    MAINTAINERS: Add VSPRINTF
    tools lib api: Renaming pr_warning to pr_warn
    ASoC: samsung: Use pr_warn instead of pr_warning
    lib: cpu_rmap: Use pr_warn instead of pr_warning
    trace: Use pr_warn instead of pr_warning
    dma-debug: Use pr_warn instead of pr_warning
    vgacon: Use pr_warn instead of pr_warning
    fs: afs: Use pr_warn instead of pr_warning
    sh/intc: Use pr_warn instead of pr_warning
    scsi: Use pr_warn instead of pr_warning
    platform/x86: intel_oaktrail: Use pr_warn instead of pr_warning
    platform/x86: asus-laptop: Use pr_warn instead of pr_warning
    platform/x86: eeepc-laptop: Use pr_warn instead of pr_warning
    oprofile: Use pr_warn instead of pr_warning
    of: Use pr_warn instead of pr_warning
    macintosh: Use pr_warn instead of pr_warning
    idsn: Use pr_warn instead of pr_warning
    ide: Use pr_warn instead of pr_warning
    crypto: n2: Use pr_warn instead of pr_warning
    ...

    Linus Torvalds
     
  • Pull cgroup updates from Tejun Heo:
    "There are several notable changes here:

    - Single thread migrating itself has been optimized so that it
    doesn't need threadgroup rwsem anymore.

    - Freezer optimization to avoid unnecessary frozen state changes.

    - cgroup ID unification so that cgroup fs ino is the only unique ID
    used for the cgroup and can be used to directly look up live
    cgroups through filehandle interface on 64bit ino archs. On 32bit
    archs, cgroup fs ino is still the only ID in use but it is only
    unique when combined with gen.

    - selftest and other changes"

    * 'for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (24 commits)
    writeback: fix -Wformat compilation warnings
    docs: cgroup: mm: Fix spelling of "list"
    cgroup: fix incorrect WARN_ON_ONCE() in cgroup_setup_root()
    cgroup: use cgrp->kn->id as the cgroup ID
    kernfs: use 64bit inos if ino_t is 64bit
    kernfs: implement custom exportfs ops and fid type
    kernfs: combine ino/id lookup functions into kernfs_find_and_get_node_by_id()
    kernfs: convert kernfs_node->id from union kernfs_node_id to u64
    kernfs: kernfs_find_and_get_node_by_ino() should only look up activated nodes
    kernfs: use dumber locking for kernfs_find_and_get_node_by_ino()
    netprio: use css ID instead of cgroup ID
    writeback: use ino_t for inodes in tracepoints
    kernfs: fix ino wrap-around detection
    kselftests: cgroup: Avoid the reuse of fd after it is deallocated
    cgroup: freezer: don't change task and cgroups status unnecessarily
    cgroup: use cgroup->last_bstat instead of cgroup->bstat_pending for consistency
    cgroup: remove cgroup_enable_task_cg_lists() optimization
    cgroup: pids: use atomic64_t for pids->limit
    selftests: cgroup: Run test_core under interfering stress
    selftests: cgroup: Add task migration tests
    ...

    Linus Torvalds
     
  • Pull workqueue updates from Tejun Heo:
    "There have been sporadic reports of sanity checks in
    destroy_workqueue() failing spuriously over the years. This contains
    the fix and its follow-up changes / fixes.

    There's also a RCU annotation improvement"

    * 'for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    workqueue: Add RCU annotation for pwq list walk
    workqueue: Fix pwq ref leak in rescuer_thread()
    workqueue: more destroy_workqueue() fixes
    workqueue: Minor follow-ups to the rescuer destruction change
    workqueue: Fix missing kfree(rescuer) in destroy_workqueue()
    workqueue: Fix spurious sanity check failures in destroy_workqueue()

    Linus Torvalds
     
  • Pull thread management updates from Christian Brauner:

    - A pidfd's fdinfo file currently contains the field "Pid:\t"
    where is the pid of the process in the pid namespace of the
    procfs instance the fdinfo file for the pidfd was opened in.

    The fdinfo file has now gained a new "NSpid:\t[\t[...]]"
    field which lists the pids of the process in all child pid namespaces
    provided the pid namespace of the procfs instance it is looked up
    under has an ancestoral relationship with the pid namespace of the
    process. If it does not 0 will be shown and no further pid namespaces
    will be listed. Tests included. (Christian Kellner)

    - If the process the pidfd references has already exited, print -1 for
    the Pid and NSpid fields in the pidfd's fdinfo file. Tests included.
    (me)

    - Add CLONE_CLEAR_SIGHAND. This lets callers clear all signal handler
    that are not SIG_DFL or SIG_IGN at process creation time. This
    originated as a feature request from glibc to improve performance and
    elimate races in their posix_spawn() implementation. Tests included.
    (me)

    - Add support for choosing a specific pid for a process with clone3().
    This is the feature which was part of the thread update for v5.4 but
    after a discussion at LPC in Lisbon we decided to delay it for one
    more cycle in order to make the interface more generic. This has now
    done. It is now possible to choose a specific pid in a whole pid
    namespaces (sub)hierarchy instead of just one pid namespace. In order
    to choose a specific pid the caller must have CAP_SYS_ADMIN in all
    owning user namespaces of the target pid namespaces. Tests included.
    (Adrian Reber)

    - Test improvements and extensions. (Andrei Vagin, me)

    * tag 'threads-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
    selftests/clone3: skip if clone3() is ENOSYS
    selftests/clone3: check that all pids are released on error paths
    selftests/clone3: report a correct number of fails
    selftests/clone3: flush stdout and stderr before clone3() and _exit()
    selftests: add tests for clone3() with *set_tid
    fork: extend clone3() to support setting a PID
    selftests: add tests for clone3()
    tests: test CLONE_CLEAR_SIGHAND
    clone3: add CLONE_CLEAR_SIGHAND
    pid: use pid_has_task() in pidfd_open()
    exit: use pid_has_task() in do_wait()
    pid: use pid_has_task() in __change_pid()
    test: verify fdinfo for pidfd of reaped process
    pidfd: check pid has attached task in fdinfo
    pidfd: add tests for NSpid info in fdinfo
    pidfd: add NSpid entries to fdinfo

    Linus Torvalds
     
  • Pull EDAC updates from Borislav Petkov:
    "A lot of changes this time around, details below.

    From the next cycle onwards, we'll switch the EDAC tree to topic
    branches (instead of a single edac-for-next branch) which should make
    the changes handling more flexible, hopefully. We'll see.

    Summary:

    - Rework error logging functions to accept a count of errors
    parameter (Hanna Hawa)

    - Part one of substantial EDAC core + ghes_edac driver cleanup
    (Robert Richter)

    - Print additional useful logging information in skx_* (Tony Luck)

    - Improve amd64_edac hw detection + cleanups (Yazen Ghannam)

    - Misc cleanups, fixes and code improvements"

    * tag 'edac_for_5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras: (35 commits)
    EDAC/altera: Use the Altera System Manager driver
    EDAC/altera: Cleanup the ECC Manager
    EDAC/altera: Use fast register IO for S10 IRQs
    EDAC/ghes: Do not warn when incrementing refcount on 0
    EDAC/Documentation: Describe CPER module definition and DIMM ranks
    EDAC: Unify the mc_event tracepoint call
    EDAC/ghes: Remove intermediate buffer pvt->detail_location
    EDAC/ghes: Fix grain calculation
    EDAC/ghes: Use standard kernel macros for page calculations
    EDAC: Remove misleading comment in struct edac_raw_error_desc
    EDAC/mc: Reduce indentation level in edac_mc_handle_error()
    EDAC/mc: Remove needless zero string termination
    EDAC/mc: Do not BUG_ON() in edac_mc_alloc()
    EDAC: Introduce an mci_for_each_dimm() iterator
    EDAC: Remove EDAC_DIMM_OFF() macro
    EDAC: Replace EDAC_DIMM_PTR() macro with edac_get_dimm() function
    EDAC/amd64: Get rid of the ECC disabled long message
    EDAC/ghes: Fix locking and memory barrier issues
    EDAC/amd64: Check for memory before fully initializing an instance
    EDAC/amd64: Use cached data when checking for ECC
    ...

    Linus Torvalds
     
  • Pull KVM updates from Paolo Bonzini:
    "ARM:
    - data abort report and injection
    - steal time support
    - GICv4 performance improvements
    - vgic ITS emulation fixes
    - simplify FWB handling
    - enable halt polling counters
    - make the emulated timer PREEMPT_RT compliant

    s390:
    - small fixes and cleanups
    - selftest improvements
    - yield improvements

    PPC:
    - add capability to tell userspace whether we can single-step the
    guest
    - improve the allocation of XIVE virtual processor IDs
    - rewrite interrupt synthesis code to deliver interrupts in virtual
    mode when appropriate.
    - minor cleanups and improvements.

    x86:
    - XSAVES support for AMD
    - more accurate report of nested guest TSC to the nested hypervisor
    - retpoline optimizations
    - support for nested 5-level page tables
    - PMU virtualization optimizations, and improved support for nested
    PMU virtualization
    - correct latching of INITs for nested virtualization
    - IOAPIC optimization
    - TSX_CTRL virtualization for more TAA happiness
    - improved allocation and flushing of SEV ASIDs
    - many bugfixes and cleanups"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (127 commits)
    kvm: nVMX: Relax guest IA32_FEATURE_CONTROL constraints
    KVM: x86: Grab KVM's srcu lock when setting nested state
    KVM: x86: Open code shared_msr_update() in its only caller
    KVM: Fix jump label out_free_* in kvm_init()
    KVM: x86: Remove a spurious export of a static function
    KVM: x86: create mmu/ subdirectory
    KVM: nVMX: Remove unnecessary TLB flushes on L1L2 switches when L1 use apic-access-page
    KVM: x86: remove set but not used variable 'called'
    KVM: nVMX: Do not mark vmcs02->apic_access_page as dirty when unpinning
    KVM: vmx: use MSR_IA32_TSX_CTRL to hard-disable TSX on guest that lack it
    KVM: vmx: implement MSR_IA32_TSX_CTRL disable RTM functionality
    KVM: x86: implement MSR_IA32_TSX_CTRL effect on CPUID
    KVM: x86: do not modify masked bits of shared MSRs
    KVM: x86: fix presentation of TSX feature in ARCH_CAPABILITIES
    KVM: PPC: Book3S HV: XIVE: Fix potential page leak on error path
    KVM: PPC: Book3S HV: XIVE: Free previous EQ page when setting up a new one
    KVM: nVMX: Assume TLB entries of L1 and L2 are tagged differently if L0 use EPT
    KVM: x86: Unexport kvm_vcpu_reload_apic_access_page()
    KVM: nVMX: add CR4_LA57 bit to nested CR4_FIXED1
    KVM: nVMX: Use semi-colon instead of comma for exit-handlers initialization
    ...

    Linus Torvalds
     
  • Pull xen updates from Juergen Gross:

    - a small series to remove the build constraint of Xen x86 MCE handling
    to 64-bit only

    - a bunch of minor cleanups

    * tag 'for-linus-5.5a-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen: Fix Kconfig indentation
    xen/mcelog: also allow building for 32-bit kernels
    xen/mcelog: add PPIN to record when available
    xen/mcelog: drop __MC_MSR_MCGCAP
    xen/gntdev: Use select for DMA_SHARED_BUFFER
    xen: mm: make xen_mm_init static
    xen: mm: include for missing declarations

    Linus Torvalds
     
  • Pull MIPS updates from Paul Burton:
    "The main MIPS changes for 5.5:

    - Atomics-related code sees some rework & cleanup, most notably
    allowing Loongson LL/SC errata workarounds to be more bulletproof &
    their correctness to be checked at build time.

    - Command line setup code is simplified somewhat, resolving various
    corner cases.

    - MIPS kernels can now be built with kcov code coverage support.

    - We can now build with CONFIG_FORTIFY_SOURCE=y.

    - Miscellaneous cleanups.

    And some platform specific changes:

    - We now disable some broken TLB functionality on certain Ingenic
    systems, and JZ4780 systems gain some devicetree nodes to support
    more devices.

    - Loongson support sees a number of cleanups, and we gain initial
    support for Loongson 3A R4 systems.

    - We gain support for MediaTek MT7688-based GARDENA Smart Gateway
    systems.

    - SGI IP27 (Origin 2*) see a number of fixes, cleanups &
    simplifications.

    - SGI IP30 (Octane) systems are now supported"

    * tag 'mips_5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (107 commits)
    MIPS: SGI-IP27: Enable ethernet phy on second Origin 200 module
    MIPS: PCI: Fix fake subdevice ID for IOC3
    MIPS: Ingenic: Disable abandoned HPTLB function.
    MIPS: PCI: remember nasid changed by set interrupt affinity
    MIPS: SGI-IP27: Fix crash, when CPUs are disabled via nr_cpus parameter
    mips: add support for folded p4d page tables
    mips: drop __pXd_offset() macros that duplicate pXd_index() ones
    mips: fix build when "48 bits virtual memory" is enabled
    MIPS: math-emu: Reuse name array in debugfs_fpuemu()
    MIPS: allow building with kcov coverage
    MIPS: Loongson64: Drop setup_pcimap
    MIPS: Loongson2ef: Convert to early_printk_8250
    MIPS: Drop CPU_SUPPORTS_UNCACHED_ACCELERATED
    MIPS: Loongson{2ef, 32, 64} convert to generic fw cmdline
    MIPS: Drop pmon.h
    MIPS: Loongson: Unify LOONGSON3/LOONGSON64 Kconfig usage
    MIPS: Loongson: Rename LOONGSON1 to LOONGSON32
    MIPS: Loongson: Fix return value of loongson_hwmon_init
    MIPS: add support for SGI Octane (IP30)
    MIPS: PCI: make phys_to_dma/dma_to_phys for pci-xtalk-bridge common
    ...

    Linus Torvalds
     
  • Pull m68k updates from Geert Uytterhoeven:

    - Atari Falcon IDE platform driver conversion for module autoload

    - defconfig updates (including enablement of Amiga ICY I2C)

    - small fixes and cleanups

    * tag 'm68k-for-v5.5-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
    m68k/atari: Convert Falcon IDE drivers to platform drivers
    m68k: defconfig: Enable ICY I2C and LTC2990 on Amiga
    m68k: defconfig: Update defconfigs for v5.4-rc1
    m68k: q40: Fix info-leak in rtc_ioctl
    nubus: Remove cast to void pointer

    Linus Torvalds