1. 19 Oct, 2020 3 commits
  2. 18 Oct, 2020 5 commits
    • Taehee Yoo's avatar
      net: core: use list_del_init() instead of list_del() in netdev_run_todo() · 0e8b8d6a
      Taehee Yoo authored
      dev->unlink_list is reused unless dev is deleted.
      So, list_del() should not be used.
      Due to using list_del(), dev->unlink_list can't be reused so that
      dev->nested_level update logic doesn't work.
      In order to fix this bug, list_del_init() should be used instead
      of list_del().
      
      Test commands:
          ip link add bond0 type bond
          ip link add bond1 type bond
          ip link set bond0 master bond1
          ip link set bond0 nomaster
          ip link set bond1 master bond0
          ip link set bond1 nomaster
      
      Splat looks like:
      [  255.750458][ T1030] ============================================
      [  255.751967][ T1030] WARNING: possible recursive locking detected
      [  255.753435][ T1030] 5.9.0-rc8+ #772 Not tainted
      [  255.754553][ T1030] --------------------------------------------
      [  255.756047][ T1030] ip/1030 is trying to acquire lock:
      [  255.757304][ T1030] ffff88811782a280 (&dev_addr_list_lock_key/1){+...}-{2:2}, at: dev_mc_sync_multiple+0xc2/0x150
      [  255.760056][ T1030]
      [  255.760056][ T1030] but task is already holding lock:
      [  255.761862][ T1030] ffff88811130a280 (&dev_addr_list_lock_key/1){+...}-{2:2}, at: bond_enslave+0x3d4d/0x43e0 [bonding]
      [  255.764581][ T1030]
      [  255.764581][ T1030] other info that might help us debug this:
      [  255.766645][ T1030]  Possible unsafe locking scenario:
      [  255.766645][ T1030]
      [  255.768566][ T1030]        CPU0
      [  255.769415][ T1030]        ----
      [  255.770259][ T1030]   lock(&dev_addr_list_lock_key/1);
      [  255.771629][ T1030]   lock(&dev_addr_list_lock_key/1);
      [  255.772994][ T1030]
      [  255.772994][ T1030]  *** DEADLOCK ***
      [  255.772994][ T1030]
      [  255.775091][ T1030]  May be due to missing lock nesting notation
      [  255.775091][ T1030]
      [  255.777182][ T1030] 2 locks held by ip/1030:
      [  255.778299][ T1030]  #0: ffffffffb1f63250 (rtnl_mutex){+.+.}-{3:3}, at: rtnetlink_rcv_msg+0x2e4/0x8b0
      [  255.780600][ T1030]  #1: ffff88811130a280 (&dev_addr_list_lock_key/1){+...}-{2:2}, at: bond_enslave+0x3d4d/0x43e0 [bonding]
      [  255.783411][ T1030]
      [  255.783411][ T1030] stack backtrace:
      [  255.784874][ T1030] CPU: 7 PID: 1030 Comm: ip Not tainted 5.9.0-rc8+ #772
      [  255.786595][ T1030] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
      [  255.789030][ T1030] Call Trace:
      [  255.789850][ T1030]  dump_stack+0x99/0xd0
      [  255.790882][ T1030]  __lock_acquire.cold.71+0x166/0x3cc
      [  255.792285][ T1030]  ? register_lock_class+0x1a30/0x1a30
      [  255.793619][ T1030]  ? rcu_read_lock_sched_held+0x91/0xc0
      [  255.794963][ T1030]  ? rcu_read_lock_bh_held+0xa0/0xa0
      [  255.796246][ T1030]  lock_acquire+0x1b8/0x850
      [  255.797332][ T1030]  ? dev_mc_sync_multiple+0xc2/0x150
      [  255.798624][ T1030]  ? bond_enslave+0x3d4d/0x43e0 [bonding]
      [  255.800039][ T1030]  ? check_flags+0x50/0x50
      [  255.801143][ T1030]  ? lock_contended+0xd80/0xd80
      [  255.802341][ T1030]  _raw_spin_lock_nested+0x2e/0x70
      [  255.803592][ T1030]  ? dev_mc_sync_multiple+0xc2/0x150
      [  255.804897][ T1030]  dev_mc_sync_multiple+0xc2/0x150
      [  255.806168][ T1030]  bond_enslave+0x3d58/0x43e0 [bonding]
      [  255.807542][ T1030]  ? __lock_acquire+0xe53/0x51b0
      [  255.808824][ T1030]  ? bond_update_slave_arr+0xdc0/0xdc0 [bonding]
      [  255.810451][ T1030]  ? check_chain_key+0x236/0x5e0
      [  255.811742][ T1030]  ? mutex_is_locked+0x13/0x50
      [  255.812910][ T1030]  ? rtnl_is_locked+0x11/0x20
      [  255.814061][ T1030]  ? netdev_master_upper_dev_get+0xf/0x120
      [  255.815553][ T1030]  do_setlink+0x94c/0x3040
      [ ... ]
      
      Reported-by: syzbot+4a0f7bc34e3997a6c7df@syzkaller.appspotmail.com
      Fixes: 1fc70edb ("net: core: add nested_level variable in net_device")
      Signed-off-by: default avatarTaehee Yoo <ap420073@gmail.com>
      Link: https://lore.kernel.org/r/20201015162606.9377-1-ap420073@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      0e8b8d6a
    • Jakub Kicinski's avatar
      ixgbe: fix probing of multi-port devices with one MDIO · bd7f14df
      Jakub Kicinski authored
      Ian reports that after upgrade from v5.8.14 to v5.9 only one
      of his 4 ixgbe netdevs appear in the system.
      
      Quoting the comment on ixgbe_x550em_a_has_mii():
       * Returns true if hw points to lowest numbered PCI B:D.F x550_em_a device in
       * the SoC.  There are up to 4 MACs sharing a single MDIO bus on the x550em_a,
       * but we only want to register one MDIO bus.
      
      This matches the symptoms, since the return value from
      ixgbe_mii_bus_init() is no longer ignored we need to handle
      the higher ports of x550em without an error.
      
      Fixes: 09ef193f ("net: ethernet: ixgbe: check the return value of ixgbe_mii_bus_init()")
      Reported-by: default avatarIan Kumlien <ian.kumlien@gmail.com>
      Tested-by: default avatarIan Kumlien <ian.kumlien@gmail.com>
      Acked-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
      Link: https://lore.kernel.org/r/20201016232006.3352947-1-kuba@kernel.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      bd7f14df
    • Anant Thazhemadam's avatar
      net: usb: rtl8150: don't incorrectly assign random MAC addresses · 60f1626f
      Anant Thazhemadam authored
      In set_ethernet_addr(), if get_registers() succeeds, the ethernet address
      that was read must be copied over. Otherwise, a random ethernet address
      must be assigned.
      
      get_registers() returns 0 if successful, and negative error number
      otherwise. However, in set_ethernet_addr(), this return value is
      incorrectly checked.
      
      Since this return value will never be equal to sizeof(node_id), a
      random MAC address will always be generated and assigned to the
      device; even in cases when get_registers() is successful.
      
      Correctly modifying the condition that checks if get_registers() was
      successful or not fixes this problem, and copies the ethernet address
      appropriately.
      
      Fixes: b2a0f274 ("net: rtl8150: Use the new usb control message API.")
      Signed-off-by: default avatarAnant Thazhemadam <anant.thazhemadam@gmail.com>
      Link: https://lore.kernel.org/r/20201011173030.141582-1-anant.thazhemadam@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      60f1626f
    • Ido Schimmel's avatar
      selftests: forwarding: Add missing 'rp_filter' configuration · 71a0e29e
      Ido Schimmel authored
      When 'rp_filter' is configured in strict mode (1) the tests fail because
      packets received from the macvlan netdevs would not be forwarded through
      them on the reverse path.
      
      Fix this by disabling the 'rp_filter', meaning no source validation is
      performed.
      
      Fixes: 1538812e ("selftests: forwarding: Add a test for VXLAN asymmetric routing")
      Fixes: 438a4f56 ("selftests: forwarding: Add a test for VXLAN symmetric routing")
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Reported-by: default avatarHangbin Liu <liuhangbin@gmail.com>
      Tested-by: default avatarHangbin Liu <liuhangbin@gmail.com>
      Link: https://lore.kernel.org/r/20201015084525.135121-1-idosch@idosch.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      71a0e29e
    • Eelco Chaudron's avatar
      net: openvswitch: fix to make sure flow_lookup() is not preempted · f981fc3d
      Eelco Chaudron authored
      The flow_lookup() function uses per CPU variables, which must be called
      with BH disabled. However, this is fine in the general NAPI use case
      where the local BH is disabled. But, it's also called from the netlink
      context. The below patch makes sure that even in the netlink path, the
      BH is disabled.
      
      In addition, u64_stats_update_begin() requires a lock to ensure one writer
      which is not ensured here. Making it per-CPU and disabling NAPI (softirq)
      ensures that there is always only one writer.
      
      Fixes: eac87c41 ("net: openvswitch: reorder masks array based on usage")
      Reported-by: default avatarJuri Lelli <jlelli@redhat.com>
      Signed-off-by: default avatarEelco Chaudron <echaudro@redhat.com>
      Link: https://lore.kernel.org/r/160295903253.7789.826736662555102345.stgit@ebuildSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      f981fc3d
  3. 16 Oct, 2020 6 commits
    • Ioana Ciornei's avatar
      net: pcs-xpcs: depend on MDIO_BUS instead of selecting it · f355a55f
      Ioana Ciornei authored
      The below compile time error can be seen when PHYLIB is configured as a
      module.
      
       ld: drivers/net/pcs/pcs-xpcs.o: in function `xpcs_read':
       pcs-xpcs.c:(.text+0x29): undefined reference to `mdiobus_read'
       ld: drivers/net/pcs/pcs-xpcs.o: in function `xpcs_soft_reset.constprop.7':
       pcs-xpcs.c:(.text+0x80): undefined reference to `mdiobus_write'
       ld: drivers/net/pcs/pcs-xpcs.o: in function `xpcs_config_aneg':
       pcs-xpcs.c:(.text+0x318): undefined reference to `mdiobus_write'
       ld: pcs-xpcs.c:(.text+0x38e): undefined reference to `mdiobus_write'
       ld: pcs-xpcs.c:(.text+0x3eb): undefined reference to `mdiobus_write'
       ld: pcs-xpcs.c:(.text+0x437): undefined reference to `mdiobus_write'
       ld: drivers/net/pcs/pcs-xpcs.o:pcs-xpcs.c:(.text+0xb1e): more undefined references to `mdiobus_write' follow
      
      PHYLIB being a module leads to MDIO_BUS being a module as well while the
      XPCS is still built-in. What should happen in this configuration is that
      PCS_XPCS should be forced to build as module. However, that select only
      acts in the opposite way so we should turn it into a depends.
      
      Fix this up by explicitly depending on MDIO_BUS.
      Reported-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
      Fixes: 2fa4e4b7 ("net: pcs: Move XPCS into new PCS subdirectory")
      Signed-off-by: default avatarIoana Ciornei <ioana.ciornei@nxp.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      f355a55f
    • Eric Dumazet's avatar
      icmp: randomize the global rate limiter · b38e7819
      Eric Dumazet authored
      Keyu Man reported that the ICMP rate limiter could be used
      by attackers to get useful signal. Details will be provided
      in an upcoming academic publication.
      
      Our solution is to add some noise, so that the attackers
      no longer can get help from the predictable token bucket limiter.
      
      Fixes: 4cdf507d ("icmp: add a global rate limitation")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reported-by: default avatarKeyu Man <kman001@ucr.edu>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b38e7819
    • Dylan Hung's avatar
      net: ftgmac100: Fix Aspeed ast2600 TX hang issue · 137d23ce
      Dylan Hung authored
      The new HW arbitration feature on Aspeed ast2600 will cause MAC TX to
      hang when handling scatter-gather DMA.  Disable the problematic feature
      by setting MAC register 0x58 bit28 and bit27.
      
      Fixes: 39bfab88 ("net: ftgmac100: Add support for DT phy-handle property")
      Signed-off-by: default avatarDylan Hung <dylan_hung@aspeedtech.com>
      Reviewed-by: default avatarJoel Stanley <joel@jms.id.au>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      137d23ce
    • Hoang Huu Le's avatar
      tipc: fix incorrect setting window for bcast link · ec78e318
      Hoang Huu Le authored
      In commit 16ad3f40
      ("tipc: introduce variable window congestion control"), we applied
      the algorithm to select window size from minimum window to the
      configured maximum window for unicast link, and, besides we chose
      to keep the window size for broadcast link unchanged and equal (i.e
      fix window 50)
      
      However, when setting maximum window variable via command, the window
      variable was re-initialized to unexpect value (i.e 32).
      
      We fix this by updating the fix window for broadcast as we stated.
      
      Fixes: 16ad3f40 ("tipc: introduce variable window congestion control")
      Acked-by: default avatarJon Maloy <jmaloy@redhat.com>
      Signed-off-by: default avatarHoang Huu Le <hoang.h.le@dektech.com.au>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      ec78e318
    • Hoang Huu Le's avatar
      tipc: re-configure queue limit for broadcast link · 75cee397
      Hoang Huu Le authored
      The queue limit of the broadcast link is being calculated base on initial
      MTU. However, when MTU value changed (e.g manual changing MTU on NIC
      device, MTU negotiation etc.,) we do not re-calculate queue limit.
      This gives throughput does not reflect with the change.
      
      So fix it by calling the function to re-calculate queue limit of the
      broadcast link.
      Acked-by: default avatarJon Maloy <jmaloy@redhat.com>
      Signed-off-by: default avatarHoang Huu Le <hoang.h.le@dektech.com.au>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      75cee397
    • Linus Torvalds's avatar
      Merge tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · 9ff9b0d3
      Linus Torvalds authored
      Pull networking updates from Jakub Kicinski:
      
       - Add redirect_neigh() BPF packet redirect helper, allowing to limit
         stack traversal in common container configs and improving TCP
         back-pressure.
      
         Daniel reports ~10Gbps => ~15Gbps single stream TCP performance gain.
      
       - Expand netlink policy support and improve policy export to user
         space. (Ge)netlink core performs request validation according to
         declared policies. Expand the expressiveness of those policies
         (min/max length and bitmasks). Allow dumping policies for particular
         commands. This is used for feature discovery by user space (instead
         of kernel version parsing or trial and error).
      
       - Support IGMPv3/MLDv2 multicast listener discovery protocols in
         bridge.
      
       - Allow more than 255 IPv4 multicast interfaces.
      
       - Add support for Type of Service (ToS) reflection in SYN/SYN-ACK
         packets of TCPv6.
      
       - In Multi-patch TCP (MPTCP) support concurrent transmission of data on
         multiple subflows in a load balancing scenario. Enhance advertising
         addresses via the RM_ADDR/ADD_ADDR options.
      
       - Support SMC-Dv2 version of SMC, which enables multi-subnet
         deployments.
      
       - Allow more calls to same peer in RxRPC.
      
       - Support two new Controller Area Network (CAN) protocols - CAN-FD and
         ISO 15765-2:2016.
      
       - Add xfrm/IPsec compat layer, solving the 32bit user space on 64bit
         kernel problem.
      
       - Add TC actions for implementing MPLS L2 VPNs.
      
       - Improve nexthop code - e.g. handle various corner cases when nexthop
         objects are removed from groups better, skip unnecessary
         notifications and make it easier to offload nexthops into HW by
         converting to a blocking notifier.
      
       - Support adding and consuming TCP header options by BPF programs,
         opening the doors for easy experimental and deployment-specific TCP
         option use.
      
       - Reorganize TCP congestion control (CC) initialization to simplify
         life of TCP CC implemented in BPF.
      
       - Add support for shipping BPF programs with the kernel and loading
         them early on boot via the User Mode Driver mechanism, hence reusing
         all the user space infra we have.
      
       - Support sleepable BPF programs, initially targeting LSM and tracing.
      
       - Add bpf_d_path() helper for returning full path for given 'struct
         path'.
      
       - Make bpf_tail_call compatible with bpf-to-bpf calls.
      
       - Allow BPF programs to call map_update_elem on sockmaps.
      
       - Add BPF Type Format (BTF) support for type and enum discovery, as
         well as support for using BTF within the kernel itself (current use
         is for pretty printing structures).
      
       - Support listing and getting information about bpf_links via the bpf
         syscall.
      
       - Enhance kernel interfaces around NIC firmware update. Allow
         specifying overwrite mask to control if settings etc. are reset
         during update; report expected max time operation may take to users;
         support firmware activation without machine reboot incl. limits of
         how much impact reset may have (e.g. dropping link or not).
      
       - Extend ethtool configuration interface to report IEEE-standard
         counters, to limit the need for per-vendor logic in user space.
      
       - Adopt or extend devlink use for debug, monitoring, fw update in many
         drivers (dsa loop, ice, ionic, sja1105, qed, mlxsw, mv88e6xxx,
         dpaa2-eth).
      
       - In mlxsw expose critical and emergency SFP module temperature alarms.
         Refactor port buffer handling to make the defaults more suitable and
         support setting these values explicitly via the DCBNL interface.
      
       - Add XDP support for Intel's igb driver.
      
       - Support offloading TC flower classification and filtering rules to
         mscc_ocelot switches.
      
       - Add PTP support for Marvell Octeontx2 and PP2.2 hardware, as well as
         fixed interval period pulse generator and one-step timestamping in
         dpaa-eth.
      
       - Add support for various auth offloads in WiFi APs, e.g. SAE (WPA3)
         offload.
      
       - Add Lynx PHY/PCS MDIO module, and convert various drivers which have
         this HW to use it. Convert mvpp2 to split PCS.
      
       - Support Marvell Prestera 98DX3255 24-port switch ASICs, as well as
         7-port Mediatek MT7531 IP.
      
       - Add initial support for QCA6390 and IPQ6018 in ath11k WiFi driver,
         and wcn3680 support in wcn36xx.
      
       - Improve performance for packets which don't require much offloads on
         recent Mellanox NICs by 20% by making multiple packets share a
         descriptor entry.
      
       - Move chelsio inline crypto drivers (for TLS and IPsec) from the
         crypto subtree to drivers/net. Move MDIO drivers out of the phy
         directory.
      
       - Clean up a lot of W=1 warnings, reportedly the actively developed
         subsections of networking drivers should now build W=1 warning free.
      
       - Make sure drivers don't use in_interrupt() to dynamically adapt their
         code. Convert tasklets to use new tasklet_setup API (sadly this
         conversion is not yet complete).
      
      * tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2583 commits)
        Revert "bpfilter: Fix build error with CONFIG_BPFILTER_UMH"
        net, sockmap: Don't call bpf_prog_put() on NULL pointer
        bpf, selftest: Fix flaky tcp_hdr_options test when adding addr to lo
        bpf, sockmap: Add locking annotations to iterator
        netfilter: nftables: allow re-computing sctp CRC-32C in 'payload' statements
        net: fix pos incrementment in ipv6_route_seq_next
        net/smc: fix invalid return code in smcd_new_buf_create()
        net/smc: fix valid DMBE buffer sizes
        net/smc: fix use-after-free of delayed events
        bpfilter: Fix build error with CONFIG_BPFILTER_UMH
        cxgb4/ch_ipsec: Replace the module name to ch_ipsec from chcr
        net: sched: Fix suspicious RCU usage while accessing tcf_tunnel_info
        bpf: Fix register equivalence tracking.
        rxrpc: Fix loss of final ack on shutdown
        rxrpc: Fix bundle counting for exclusive connections
        netfilter: restore NF_INET_NUMHOOKS
        ibmveth: Identify ingress large send packets.
        ibmveth: Switch order of ibmveth_helper calls.
        cxgb4: handle 4-tuple PEDIT to NAT mode translation
        selftests: Add VRF route leaking tests
        ...
      9ff9b0d3
  4. 15 Oct, 2020 26 commits
    • Linus Torvalds's avatar
      Merge tag 'integrity-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity · 840e5bb3
      Linus Torvalds authored
      Pull integrity updates from Mimi Zohar:
       "Continuing IMA policy rule cleanup and validation in particular for
        measuring keys, adding/removing/updating informational and error
        messages (e.g. "ima_appraise" boot command line option), and other bug
        fixes (e.g. minimal data size validation before use, return code and
        NULL pointer checking)"
      
      * tag 'integrity-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity:
        ima: Fix NULL pointer dereference in ima_file_hash
        evm: Check size of security.evm before using it
        ima: Remove semicolon at the end of ima_get_binary_runtime_size()
        ima: Don't ignore errors from crypto_shash_update()
        ima: Use kmemdup rather than kmalloc+memcpy
        integrity: include keyring name for unknown key request
        ima: limit secure boot feedback scope for appraise
        integrity: invalid kernel parameters feedback
        ima: add check for enforced appraise option
        integrity: Use current_uid() in integrity_audit_message()
        ima: Fail rule parsing when asymmetric key measurement isn't supportable
        ima: Pre-parse the list of keyrings in a KEY_CHECK rule
      840e5bb3
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · fefa636d
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
       "Updates for tracing and bootconfig:
      
         - Add support for "bool" type in synthetic events
      
         - Add per instance tracing for bootconfig
      
         - Support perf-style return probe ("SYMBOL%return") in kprobes and
           uprobes
      
         - Allow for kprobes to be enabled earlier in boot up
      
         - Added tracepoint helper function to allow testing if tracepoints
           are enabled in headers
      
         - Synthetic events can now have dynamic strings (variable length)
      
         - Various fixes and cleanups"
      
      * tag 'trace-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (58 commits)
        tracing: support "bool" type in synthetic trace events
        selftests/ftrace: Add test case for synthetic event syntax errors
        tracing: Handle synthetic event array field type checking correctly
        selftests/ftrace: Change synthetic event name for inter-event-combined test
        tracing: Add synthetic event error logging
        tracing: Check that the synthetic event and field names are legal
        tracing: Move is_good_name() from trace_probe.h to trace.h
        tracing: Don't show dynamic string internals in synthetic event description
        tracing: Fix some typos in comments
        tracing/boot: Add ftrace.instance.*.alloc_snapshot option
        tracing: Fix race in trace_open and buffer resize call
        tracing: Check return value of __create_val_fields() before using its result
        tracing: Fix synthetic print fmt check for use of __get_str()
        tracing: Remove a pointless assignment
        ftrace: ftrace_global_list is renamed to ftrace_ops_list
        ftrace: Format variable declarations of ftrace_allocate_records
        ftrace: Simplify the calculation of page number for ftrace_page->records
        ftrace: Simplify the dyn_ftrace->flags macro
        ftrace: Simplify the hash calculation
        ftrace: Use fls() to get the bits for dup_hash()
        ...
      fefa636d
    • Linus Torvalds's avatar
      Merge tag 'hyperv-next-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux · 2d0f6b0a
      Linus Torvalds authored
      Pull another Hyper-V update from Wei Liu:
       "One patch from Michael to get VMbus interrupt from ACPI DSDT"
      
      * tag 'hyperv-next-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
        Drivers: hv: vmbus: Add parsing of VMbus interrupt in ACPI DSDT
      2d0f6b0a
    • Linus Torvalds's avatar
      Merge branch 'parisc-5.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 7286d2a3
      Linus Torvalds authored
      Pull parisc updates from Helge Deller:
      
       - Added fw_cfg support for parisc on qemu
      
       - Added font support in sti text console driver for byte- and word-mode
         ROMs
      
       - Switch to more fine grained lws locks and improve spinlock handling
      
       - Add ioread64_hi_lo() and iowrite64_hi_lo() to avoid 0-day linking
         errors
      
       - Mark pointers volatile in __xchg8(), __xchg32() and __xchg64() to
         help compiler
      
       - Header file cleanups, mostly removal of unused HP-UX compat defines
      
       - Drop one bit from our O_NONBLOCK define to become now 000200000
      
       - Add MAP_UNINITIALIZED define to avoid userspace compile errors
      
       - Drop CONFIG_IDE from defconfigs
      
       - Speed up synchronize_caches() on UP machines
      
       - Rewrite tlb flush threshold calculation
      
       - Comment fixes and cleanups
      
      * 'parisc-5.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc/sticon: Add user font support
        parisc/sticon: Always register sticon console driver
        parisc: Add MAP_UNINITIALIZED define
        parisc: Improve spinlock handling
        parisc: Install vmlinuz instead of zImage file
        parisc: Rewrite tlb flush threshold calculation
        parisc: Switch to more fine grained lws locks
        parisc: Mark pointers volatile in __xchg8(), __xchg32() and __xchg64()
        parisc: Fix comments and enable interrupts later
        parisc: Add alternative patching to synchronize_caches define
        parisc: Add ioread64_hi_lo() and iowrite64_hi_lo()
        parisc: disable CONFIG_IDE in defconfigs
        parisc: Drop useless comments in uapi/asm/signal.h
        parisc: Define O_NONBLOCK to become 000200000
        parisc: Drop HP-UX specific fcntl and signal flags
        parisc: Avoid external interrupts when IPI finishes
        parisc: Add qemu fw_cfg interface
        fw_cfg: Add support for parisc architecture
      7286d2a3
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-kunit-fixes-5.10-rc1' of... · 578a7155
      Linus Torvalds authored
      Merge tag 'linux-kselftest-kunit-fixes-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull Kunit updates from Shuah Khan:
       "Several kunit tool bug fixes in flag handling, run outside kernel
        tree, make errors, and generating results"
      
      * tag 'linux-kselftest-kunit-fixes-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        kunit: tool: fix display of make errors
        kunit: tool: handle when .kunit exists but .kunitconfig does not
        kunit: tool: fix --alltests flag
        kunit: tool: allow generating test results in JSON
        kunit: tool: fix running kunit_tool from outside kernel tree
      578a7155
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-next-5.10-rc1' of... · 0674324b
      Linus Torvalds authored
      Merge tag 'linux-kselftest-next-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest updates from Shuah Khan:
      
       - speed up headers_install done during selftest build
      
       - add generic make nesting support
      
       - add support to select individual tests:
      
         Selftests build/install generates run_kselftest.sh script to run
         selftests on a target system. Currently the script doesn't have
         support for selecting individual tests. Add support for it.
      
         With this enhancement, user can select test collections (or tests)
         individually. e.g:
      
            run_kselftest.sh -c seccomp -t timers:posix_timers -t timers:nanosleep
      
         Additionally adds a way to list all known tests with "-l", usage with
         "-h", and perform a dry run without running tests with "-n".
      
      * tag 'linux-kselftest-next-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        doc: dev-tools: kselftest.rst: Update examples and paths
        selftests/run_kselftest.sh: Make each test individually selectable
        selftests: Extract run_kselftest.sh and generate stand-alone test list
        selftests: Add missing gitignore entries
        selftests: more general make nesting support
        selftests: use "$(MAKE)" instead of "make" for headers_install
      0674324b
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial · bbf62599
      Linus Torvalds authored
      Pull trivial updates from Jiri Kosina:
       "The latest advances in computer science from the trivial queue"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial:
        xtensa: fix Kconfig typo
        spelling.txt: Remove some duplicate entries
        mtd: rawnand: oxnas: cleanup/simplify code
        selftests: vm: add fragment CONFIG_GUP_BENCHMARK
        perf: Fix opt help text for --no-bpf-event
        HID: logitech-dj: Fix spelling in comment
        bootconfig: Fix kernel message mentioning CONFIG_BOOT_CONFIG
        MAINTAINERS: rectify MMP SUPPORT after moving cputype.h
        scif: Fix spelling of EACCES
        printk: fix global comment
        lib/bitmap.c: fix spello
        fs: Fix missing 'bit' in comment
      bbf62599
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · bf36c6b9
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
      
       - Lenovo X1 Tablet support improvements from Mikael Wikström
      
       - "heartbeat" report fix for several Wacom devices from Jason Gerecke
      
       - bounds checking fix in hid-roccat from Dan Carpenter
      
       - stylus battery reporting fix from Dmitry Torokhov
      
       - i2c-hid support for wakeup from suspend-to-idle from Kai-Heng Feng
      
       - new driver for Vivaldi devices from Sean O'Brien
      
       - other assorted small fixes and device ID additions
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
        HID: i2c-hid: Enable wakeup capability from Suspend-to-Idle
        HID: add vivaldi HID driver
        HID: hid-input: fix stylus battery reporting
        HID: wacom: Avoid entering wacom_wac_pen_report for pad / battery
        HID: i2c-hid: fix kerneldoc warnings in i2c-hid-core.c
        HID: core: fix kerneldoc warnings in hid-core.c
        HID: multitouch: Lenovo X1 Tablet Gen2 trackpoint and buttons
        HID: multitouch: Lenovo X1 Tablet Gen3 trackpoint and buttons
        HID: alps: clean up indentation issue
        HID: intel-ish-hid: simplify the return expression of ishtp_bus_remove_device()
        HID: hid-debug: fix nonblocking read semantics wrt EIO/ERESTARTSYS
        HID: i2c-hid: Prefer asynchronous probe
        HID: ite: Add USB id match for Acer One S1003 keyboard dock
        HID: roccat: add bounds checking in kone_sysfs_write_settings()
        HID: wiimote: narrow spinlock range in wiimote_hid_event()
        HID: wiimote: make handlers[] const
        HID: apple: Add support for Matias wireless keyboard
        HID: cp2112: Use irqchip template
      bf36c6b9
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching · 0cd7d979
      Linus Torvalds authored
      Pull livepatching update from Jiri Kosina:
       "livepatching kselftest output fix from Miroslav Benes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching:
        selftests/livepatch: Do not check order when using "comm" for dmesg checking
      0cd7d979
    • Linus Torvalds's avatar
      Merge tag 'dio_for_v5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 4a165feb
      Linus Torvalds authored
      Pull direct-io fix from Jan Kara:
       "Fix for unaligned direct IO read past EOF in legacy DIO code"
      
      * tag 'dio_for_v5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        direct-io: defer alignment check until after the EOF check
        direct-io: don't force writeback for reads beyond EOF
        direct-io: clean up error paths of do_blockdev_direct_IO
      4a165feb
    • Linus Torvalds's avatar
      Merge tag 'fs_for_v5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · b77a69b8
      Linus Torvalds authored
      Pull UDF, reiserfs, ext2, quota fixes from Jan Kara:
      
       - a couple of UDF fixes for issues found by syzbot fuzzing
      
       - a couple of reiserfs fixes for issues found by syzbot fuzzing
      
       - some minor ext2 cleanups
      
       - quota patches to support grace times beyond year 2038 for XFS quota
         APIs
      
      * tag 'fs_for_v5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        reiserfs: Fix oops during mount
        udf: Limit sparing table size
        udf: Remove pointless union in udf_inode_info
        udf: Avoid accessing uninitialized data on failed inode read
        quota: clear padding in v2r1_mem2diskdqb()
        reiserfs: Initialize inode keys properly
        udf: Fix memory leak when mounting
        udf: Remove redundant initialization of variable ret
        reiserfs: only call unlock_new_inode() if I_NEW
        ext2: Fix some kernel-doc warnings in balloc.c
        quota: Expand comment describing d_itimer
        quota: widen timestamps for the fs_disk_quota structure
        reiserfs: Fix memory leak in reiserfs_parse_options()
        udf: Use kvzalloc() in udf_sb_alloc_bitmap()
        ext2: remove duplicate include
      b77a69b8
    • Linus Torvalds's avatar
      Merge tag 'configfs-5.10' of git://git.infradead.org/users/hch/configfs · ca5387e4
      Linus Torvalds authored
      Pull configfs updates from Christoph Hellwig:
       "Various cleanups for the configfs samples (Bartosz Golaszewski)"
      
      * tag 'configfs-5.10' of git://git.infradead.org/users/hch/configfs:
        samples: configfs: prefer pr_err() over bare printk(KERN_ERR
        samples: configfs: don't use spaces before tabs
        samples: configfs: consolidate local variables of the same type
        samples: configfs: don't reinitialize variables which are already zeroed
        samples: configfs: replace simple_strtoul() with kstrtoint()
        samples: configfs: fix alignment in item struct
        samples: configfs: drop unnecessary ternary operators
        samples: configfs: remove redundant newlines
        MAINTAINERS: add the sample directory to the configfs entry
      ca5387e4
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-5.10' of git://git.infradead.org/users/hch/dma-mapping · 5a32c341
      Linus Torvalds authored
      Pull dma-mapping updates from Christoph Hellwig:
      
       - rework the non-coherent DMA allocator
      
       - move private definitions out of <linux/dma-mapping.h>
      
       - lower CMA_ALIGNMENT (Paul Cercueil)
      
       - remove the omap1 dma address translation in favor of the common code
      
       - make dma-direct aware of multiple dma offset ranges (Jim Quinlan)
      
       - support per-node DMA CMA areas (Barry Song)
      
       - increase the default seg boundary limit (Nicolin Chen)
      
       - misc fixes (Robin Murphy, Thomas Tai, Xu Wang)
      
       - various cleanups
      
      * tag 'dma-mapping-5.10' of git://git.infradead.org/users/hch/dma-mapping: (63 commits)
        ARM/ixp4xx: add a missing include of dma-map-ops.h
        dma-direct: simplify the DMA_ATTR_NO_KERNEL_MAPPING handling
        dma-direct: factor out a dma_direct_alloc_from_pool helper
        dma-direct check for highmem pages in dma_direct_alloc_pages
        dma-mapping: merge <linux/dma-noncoherent.h> into <linux/dma-map-ops.h>
        dma-mapping: move large parts of <linux/dma-direct.h> to kernel/dma
        dma-mapping: move dma-debug.h to kernel/dma/
        dma-mapping: remove <asm/dma-contiguous.h>
        dma-mapping: merge <linux/dma-contiguous.h> into <linux/dma-map-ops.h>
        dma-contiguous: remove dma_contiguous_set_default
        dma-contiguous: remove dev_set_cma_area
        dma-contiguous: remove dma_declare_contiguous
        dma-mapping: split <linux/dma-mapping.h>
        cma: decrease CMA_ALIGNMENT lower limit to 2
        firewire-ohci: use dma_alloc_pages
        dma-iommu: implement ->alloc_noncoherent
        dma-mapping: add new {alloc,free}_noncoherent dma_map_ops methods
        dma-mapping: add a new dma_alloc_pages API
        dma-mapping: remove dma_cache_sync
        53c700: convert to dma_alloc_noncoherent
        ...
      5a32c341
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine · f065199d
      Linus Torvalds authored
      Pull dmaengine updates from Vinod Koul:
       "Core:
      
         - Mark dma_request_slave_channel() deprecated in favour of
           dma_request_chan()
      
         - subsystem conversion for tasklet_setup() API
      
         - subsystem removal of local dma_parms for arm drivers
      
        Also updates to bunch of driver notably TI, DW and AXI-DMAC"
      
      * tag 'dmaengine-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine: (104 commits)
        dmaengine: owl-dma: fix kernel-doc style for enum
        dmaengine: zynqmp_dma: fix kernel-doc style for tasklet
        dmaengine: xilinx_dma: fix kernel-doc style for tasklet
        dmaengine: qcom: bam_dma: fix kernel-doc style for tasklet
        dmaengine: altera-msgdma: fix kernel-doc style for tasklet
        dmaengine: xilinx: dpdma: convert tasklets to use new tasklet_setup() API
        dmaengine: sf-pdma: convert tasklets to use new tasklet_setup() API
        dt-bindings: Fix 'reg' size issues in zynqmp examples
        dmaengine: rcar-dmac: drop double zeroing
        dmaengine: sh: drop double zeroing
        dmaengine: ioat: Allocate correct size for descriptor chunk
        dmaengine: ti: k3-udma: use devm_platform_ioremap_resource_byname
        dmaengine: fsl: remove bad channel update
        dmaengine: dma-jz4780: Fix race in jz4780_dma_tx_status
        dmaengine: pl330: fix argument for tasklet
        dmaengine: dmatest: Return boolean result directly in filter()
        dmaengine: dmatest: Check list for emptiness before access its last entry
        dmaengine: ti: k3-udma-glue: fix channel enable functions
        dmaengine: iop-adma: Fix pointer cast warnings
        dmaengine: dw-edma: Fix Using plain integer as NULL pointer in dw-edma-v0-debugfs.c
        ...
      f065199d
    • Jakub Kicinski's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next · 105faa87
      Jakub Kicinski authored
      Daniel Borkmann says:
      
      ====================
      pull-request: bpf-next 2020-10-15
      
      The main changes are:
      
      1) Fix register equivalence tracking in verifier, from Alexei Starovoitov.
      
      2) Fix sockmap error path to not call bpf_prog_put() with NULL, from Alex Dewar.
      
      3) Fix sockmap to add locking annotations to iterator, from Lorenz Bauer.
      
      4) Fix tcp_hdr_options test to use loopback address, from Martin KaFai Lau.
      ====================
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      105faa87
    • Jakub Kicinski's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 2295cddf
      Jakub Kicinski authored
      Minor conflicts in net/mptcp/protocol.h and
      tools/testing/selftests/net/Makefile.
      
      In both cases code was added on both sides in the same place
      so just keep both.
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      2295cddf
    • Jakub Kicinski's avatar
      Revert "bpfilter: Fix build error with CONFIG_BPFILTER_UMH" · 2ecbc1f6
      Jakub Kicinski authored
      This reverts commit 1d273fcc.
      
      Alexei points out there's nothing implying headers will be built
      and therefore exist under usr/include, so this fix doesn't make
      much sense.
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      2ecbc1f6
    • Alex Dewar's avatar
      net, sockmap: Don't call bpf_prog_put() on NULL pointer · 83c11c17
      Alex Dewar authored
      If bpf_prog_inc_not_zero() fails for skb_parser, then bpf_prog_put() is
      called unconditionally on skb_verdict, even though it may be NULL. Fix
      and tidy up error path.
      
      Fixes: 743df8b7 ("bpf, sockmap: Check skb_verdict and skb_parser programs explicitly")
      Addresses-Coverity-ID: 1497799: Null pointer dereferences (FORWARD_NULL)
      Signed-off-by: default avatarAlex Dewar <alex.dewar90@gmail.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Acked-by: default avatarJakub Sitnicki <jakub@cloudflare.com>
      Acked-by: default avatarJohn Fastabend <john.fastabend@gmail.com>
      Link: https://lore.kernel.org/bpf/20201012170952.60750-1-alex.dewar90@gmail.com
      83c11c17
    • Martin KaFai Lau's avatar
      bpf, selftest: Fix flaky tcp_hdr_options test when adding addr to lo · 8a3feed9
      Martin KaFai Lau authored
      The tcp_hdr_options test adds a "::eB9F" addr to the lo dev.
      However, this non loopback address will have a race on ipv6 dad
      which may lead to EADDRNOTAVAIL error from time to time.
      
      Even nodad is used in the iproute2 command, there is still a race in
      when the route will be added.  This will then lead to ENETUNREACH from
      time to time.
      
      To avoid the above, this patch uses the default loopback address "::1"
      to do the test.
      
      Fixes: ad2f8eb0 ("bpf: selftests: Tcp header options")
      Reported-by: default avatarAndrii Nakryiko <andriin@fb.com>
      Signed-off-by: default avatarMartin KaFai Lau <kafai@fb.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Acked-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Link: https://lore.kernel.org/bpf/20201012234940.1707941-1-kafai@fb.com
      8a3feed9
    • Lorenz Bauer's avatar
      bpf, sockmap: Add locking annotations to iterator · f58423ae
      Lorenz Bauer authored
      The sparse checker currently outputs the following warnings:
      
          include/linux/rcupdate.h:632:9: sparse: sparse: context imbalance in 'sock_hash_seq_start' - wrong count at exit
          include/linux/rcupdate.h:632:9: sparse: sparse: context imbalance in 'sock_map_seq_start' - wrong count at exit
      
      Add the necessary __acquires and __release annotations to make the
      iterator locking schema palatable to sparse. Also add __must_hold
      for good measure.
      
      The kernel codebase uses both __acquires(rcu) and __acquires(RCU).
      I couldn't find any guidance which one is preferred, so I used
      what is easier to type out.
      
      Fixes: 03653515 ("net: Allow iterating sockmap and sockhash")
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Signed-off-by: default avatarLorenz Bauer <lmb@cloudflare.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Acked-by: default avatarJohn Fastabend <john.fastabend@gmail.com>
      Acked-by: default avatarJakub Sitnicki <jakub@cloudflare.com>
      Link: https://lore.kernel.org/bpf/20201012091850.67452-1-lmb@cloudflare.com
      f58423ae
    • Jiri Kosina's avatar
      Merge branch 'for-5.10/i2c-hid' into for-linus · 3504e85c
      Jiri Kosina authored
      - i2c-hid support for wakeup from suspend-to-idle
      3504e85c
    • Kai-Heng Feng's avatar
      HID: i2c-hid: Enable wakeup capability from Suspend-to-Idle · 203c38fb
      Kai-Heng Feng authored
      Many laptops can be woken up from Suspend-to-Idle by touchpad. This is
      also the default behavior on other OSes.
      
      However, if touchpad and touchscreen contact to each other when lid is
      closed, wakeup events can be triggered inadventertly.
      
      So let's disable the wakeup by default, but enable the wakeup capability
      so users can enable it at their own discretion.
      Signed-off-by: default avatarKai-Heng Feng <kai.heng.feng@canonical.com>
      Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      203c38fb
    • Davide Caratti's avatar
      netfilter: nftables: allow re-computing sctp CRC-32C in 'payload' statements · 346e320c
      Davide Caratti authored
      nftables payload statements are used to mangle SCTP headers, but they can
      only replace the Internet Checksum. As a consequence, nftables rules that
      mangle sport/dport/vtag in SCTP headers potentially generate packets that
      are discarded by the receiver, unless the CRC-32C is "offloaded" (e.g the
      rule mangles a skb having 'ip_summed' equal to 'CHECKSUM_PARTIAL'.
      
      Fix this extending uAPI definitions and L4 checksum update function, in a
      way that userspace programs (e.g. nft) can instruct the kernel to compute
      CRC-32C in SCTP headers. Also ensure that LIBCRC32C is built if NF_TABLES
      is 'y' or 'm' in the kernel build configuration.
      Signed-off-by: default avatarDavide Caratti <dcaratti@redhat.com>
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      346e320c
    • Jiri Kosina's avatar
      Merge branch 'for-5.9/upstream-fixes' into for-linus · 9b14b066
      Jiri Kosina authored
      - "heartbeat" report fix for several Wacom devices
      - Lenovo X1 Tablet support improvements
      - new device IDs
      - bounds checking fix in hid-roccat
      - stylus battery reporting fix
      9b14b066
    • Jiri Kosina's avatar
      Merge branch 'for-5.10/wiimote' into for-linus · 146f9d91
      Jiri Kosina authored
      - code cleanups for hid-wiimote
      146f9d91
    • Jiri Kosina's avatar
      Merge branch 'for-5.10/vivaldi' into for-linus · df975502
      Jiri Kosina authored
      - driver for Vivaldi devices (keyboards which provide vendor-defined (Google)
        usages in their descriptor)
      df975502