1. 27 Mar, 2024 3 commits
    • Jakub Kicinski's avatar
      Merge tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next · 2a702c2e
      Jakub Kicinski authored
      Daniel Borkmann says:
      
      ====================
      pull-request: bpf-next 2024-03-25
      
      We've added 38 non-merge commits during the last 13 day(s) which contain
      a total of 50 files changed, 867 insertions(+), 274 deletions(-).
      
      The main changes are:
      
      1) Add the ability to specify and retrieve BPF cookie also for raw
         tracepoint programs in order to ease migration from classic to raw
         tracepoints, from Andrii Nakryiko.
      
      2) Allow the use of bpf_get_{ns_,}current_pid_tgid() helper for all
         program types and add additional BPF selftests, from Yonghong Song.
      
      3) Several improvements to bpftool and its build, for example, enabling
         libbpf logs when loading pid_iter in debug mode, from Quentin Monnet.
      
      4) Check the return code of all BPF-related set_memory_*() functions during
         load and bail out in case they fail, from Christophe Leroy.
      
      5) Avoid a goto in regs_refine_cond_op() such that the verifier can
         be better integrated into Agni tool which doesn't support backedges
         yet, from Harishankar Vishwanathan.
      
      6) Add a small BPF trie perf improvement by always inlining
         longest_prefix_match, from Jesper Dangaard Brouer.
      
      7) Small BPF selftest refactor in bpf_tcp_ca.c to utilize start_server()
         helper instead of open-coding it, from Geliang Tang.
      
      8) Improve test_tc_tunnel.sh BPF selftest to prevent client connect
         before the server bind, from Alessandro Carminati.
      
      9) Fix BPF selftest benchmark for older glibc and use syscall(SYS_gettid)
         instead of gettid(), from Alan Maguire.
      
      10) Implement a backward-compatible method for struct_ops types with
          additional fields which are not present in older kernels,
          from Kui-Feng Lee.
      
      11) Add a small helper to check if an instruction is addr_space_cast
          from as(0) to as(1) and utilize it in x86-64 JIT, from Puranjay Mohan.
      
      12) Small cleanup to remove unnecessary error check in
          bpf_struct_ops_map_update_elem, from Martin KaFai Lau.
      
      13) Improvements to libbpf fd validity checks for BPF map/programs,
          from Mykyta Yatsenko.
      
      * tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next: (38 commits)
        selftests/bpf: Fix flaky test btf_map_in_map/lookup_update
        bpf: implement insn_is_cast_user() helper for JITs
        bpf: Avoid get_kernel_nofault() to fetch kprobe entry IP
        selftests/bpf: Use start_server in bpf_tcp_ca
        bpf: Sync uapi bpf.h to tools directory
        libbpf: Add new sec_def "sk_skb/verdict"
        selftests/bpf: Mark uprobe trigger functions with nocf_check attribute
        selftests/bpf: Use syscall(SYS_gettid) instead of gettid() wrapper in bench
        bpf-next: Avoid goto in regs_refine_cond_op()
        bpftool: Clean up HOST_CFLAGS, HOST_LDFLAGS for bootstrap bpftool
        selftests/bpf: scale benchmark counting by using per-CPU counters
        bpftool: Remove unnecessary source files from bootstrap version
        bpftool: Enable libbpf logs when loading pid_iter in debug mode
        selftests/bpf: add raw_tp/tp_btf BPF cookie subtests
        libbpf: add support for BPF cookie for raw_tp/tp_btf programs
        bpf: support BPF cookie in raw tracepoint (raw_tp, tp_btf) programs
        bpf: pass whole link instead of prog when triggering raw tracepoint
        bpf: flatten bpf_probe_register call chain
        selftests/bpf: Prevent client connect before server bind in test_tc_tunnel.sh
        selftests/bpf: Add a sk_msg prog bpf_get_ns_current_pid_tgid() test
        ...
      ====================
      
      Link: https://lore.kernel.org/r/20240325233940.7154-1-daniel@iogearbox.netSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      2a702c2e
    • Bjorn Helgaas's avatar
      net: amd8111e: Drop unused copy of pm_cap · ee36b1e9
      Bjorn Helgaas authored
      The copy of pdev->pm_cap in struct amd8111e_priv is never used.  Drop it.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Link: https://lore.kernel.org/r/20240325220633.1453180-1-helgaas@kernel.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      ee36b1e9
    • Alexander Lobakin's avatar
      net: pin system percpu page_pools to the corresponding NUMA nodes · 341ee1a5
      Alexander Lobakin authored
      System page_pools are percpu and one instance can be used only on
      one CPU.
      %NUMA_NO_NODE is fine for allocating pages, as the PP core always
      allocates local pages in this case. But for the struct &page_pool
      itself, this node ID means they are allocated on the boot CPU,
      which may belong to a different node than the target CPU.
      Pin system page_pools to the corresponding nodes when creating,
      so that all the allocated data will always be local. Use
      cpu_to_mem() to account memless nodes.
      Nodes != 0 win some Kpps when testing with xdp-trafficgen.
      Signed-off-by: default avatarAlexander Lobakin <aleksander.lobakin@intel.com>
      Link: https://lore.kernel.org/r/20240325160635.3215855-1-aleksander.lobakin@intel.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      341ee1a5
  2. 26 Mar, 2024 11 commits
    • Eric Dumazet's avatar
      net: remove skb_free_datagram_locked() · 6e063120
      Eric Dumazet authored
      Last user of skb_free_datagram_locked() went away in 2016
      with commit 850cbadd ("udp: use it's own memory
      accounting schema").
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reviewed-by: default avatarJason Xing <kerneljasonxing@gmail.com>
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Link: https://lore.kernel.org/r/20240325134155.620531-1-edumazet@google.comSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      6e063120
    • Paolo Abeni's avatar
      Merge branch 'net-provide-smp-threads-for-backlog-napi' · 1a3e4d6a
      Paolo Abeni authored
      Sebastian Andrzej Siewior says:
      
      ====================
      net: Provide SMP threads for backlog NAPI
      
      The RPS code and "deferred skb free" both send IPI/ function call
      to a remote CPU in which a softirq is raised. This leads to a warning on
      PREEMPT_RT because raising softiqrs from function call led to undesired
      behaviour in the past. I had duct tape in RT for the "deferred skb free"
      and Wander Lairson Costa reported the RPS case.
      
      This series only provides support for SMP threads for backlog NAPI, I
      did not attach a patch to make it default and remove the IPI related
      code to avoid confusion. I can post it for reference it asked.
      
      The RedHat performance team was so kind to provide some testing here.
      The series (with the IPI code removed) has been tested and no regression
      vs without the series has been found. For testing iperf3 was used on 25G
      interface, provided by mlx5, ix40e or ice driver and RPS was enabled. I
      can provide the individual test results if needed.
      ====================
      
      Link: https://lore.kernel.org/r/20240325074943.289909-1-bigeasy@linutronix.deSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      1a3e4d6a
    • Sebastian Andrzej Siewior's avatar
      net: Rename rps_lock to backlog_lock. · 765b11f8
      Sebastian Andrzej Siewior authored
      The rps_lock.*() functions use the inner lock of a sk_buff_head for
      locking. This lock is used if RPS is enabled, otherwise the list is
      accessed lockless and disabling interrupts is enough for the
      synchronisation because it is only accessed CPU local. Not only the list
      is protected but also the NAPI state protected.
      With the addition of backlog threads, the lock is also needed because of
      the cross CPU access even without RPS. The clean up of the defer_list
      list is also done via backlog threads (if enabled).
      
      It has been suggested to rename the locking function since it is no
      longer just RPS.
      
      Rename the rps_lock*() functions to backlog_lock*().
      Suggested-by: default avatarJakub Kicinski <kuba@kernel.org>
      Acked-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      765b11f8
    • Sebastian Andrzej Siewior's avatar
      net: Use backlog-NAPI to clean up the defer_list. · 80d2eefc
      Sebastian Andrzej Siewior authored
      The defer_list is a per-CPU list which is used to free skbs outside of
      the socket lock and on the CPU on which they have been allocated.
      The list is processed during NAPI callbacks so ideally the list is
      cleaned up.
      Should the amount of skbs on the list exceed a certain water mark then
      the softirq is triggered remotely on the target CPU by invoking a remote
      function call. The raise of the softirqs via a remote function call
      leads to waking the ksoftirqd on PREEMPT_RT which is undesired.
      The backlog-NAPI threads already provide the infrastructure which can be
      utilized to perform the cleanup of the defer_list.
      
      The NAPI state is updated with the input_pkt_queue.lock acquired. It
      order not to break the state, it is needed to also wake the backlog-NAPI
      thread with the lock held. This requires to acquire the use the lock in
      rps_lock_irq*() if the backlog-NAPI threads are used even with RPS
      disabled.
      
      Move the logic of remotely starting softirqs to clean up the defer_list
      into kick_defer_list_purge(). Make sure a lock is held in
      rps_lock_irq*() if backlog-NAPI threads are used. Schedule backlog-NAPI
      for defer_list cleanup if backlog-NAPI is available.
      Acked-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      80d2eefc
    • Sebastian Andrzej Siewior's avatar
      net: Allow to use SMP threads for backlog NAPI. · dad6b977
      Sebastian Andrzej Siewior authored
      Backlog NAPI is a per-CPU NAPI struct only (with no device behind it)
      used by drivers which don't do NAPI them self, RPS and parts of the
      stack which need to avoid recursive deadlocks while processing a packet.
      
      The non-NAPI driver use the CPU local backlog NAPI. If RPS is enabled
      then a flow for the skb is computed and based on the flow the skb can be
      enqueued on a remote CPU. Scheduling/ raising the softirq (for backlog's
      NAPI) on the remote CPU isn't trivial because the softirq is only
      scheduled on the local CPU and performed after the hardirq is done.
      In order to schedule a softirq on the remote CPU, an IPI is sent to the
      remote CPU which schedules the backlog-NAPI on the then local CPU.
      
      On PREEMPT_RT interrupts are force-threaded. The soft interrupts are
      raised within the interrupt thread and processed after the interrupt
      handler completed still within the context of the interrupt thread. The
      softirq is handled in the context where it originated.
      
      With force-threaded interrupts enabled, ksoftirqd is woken up if a
      softirq is raised from hardirq context. This is the case if it is raised
      from an IPI. Additionally there is a warning on PREEMPT_RT if the
      softirq is raised from the idle thread.
      This was done for two reasons:
      - With threaded interrupts the processing should happen in thread
        context (where it originated) and ksoftirqd is the only thread for
        this context if raised from hardirq. Using the currently running task
        instead would "punish" a random task.
      - Once ksoftirqd is active it consumes all further softirqs until it
        stops running. This changed recently and is no longer the case.
      
      Instead of keeping the backlog NAPI in ksoftirqd (in force-threaded/
      PREEMPT_RT setups) I am proposing NAPI-threads for backlog.
      The "proper" setup with threaded-NAPI is not doable because the threads
      are not pinned to an individual CPU and can be modified by the user.
      Additionally a dummy network device would have to be assigned. Also
      CPU-hotplug has to be considered if additional CPUs show up.
      All this can be probably done/ solved but the smpboot-threads already
      provide this infrastructure.
      
      Sending UDP packets over loopback expects that the packet is processed
      within the call. Delaying it by handing it over to the thread hurts
      performance. It is not beneficial to the outcome if the context switch
      happens immediately after enqueue or after a while to process a few
      packets in a batch.
      There is no need to always use the thread if the backlog NAPI is
      requested on the local CPU. This restores the loopback throuput. The
      performance drops mostly to the same value after enabling RPS on the
      loopback comparing the IPI and the tread result.
      
      Create NAPI-threads for backlog if request during boot. The thread runs
      the inner loop from napi_threaded_poll(), the wait part is different. It
      checks for NAPI_STATE_SCHED (the backlog NAPI can not be disabled).
      
      The NAPI threads for backlog are optional, it has to be enabled via the boot
      argument "thread_backlog_napi". It is mandatory for PREEMPT_RT to avoid the
      wakeup of ksoftirqd from the IPI.
      Acked-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      dad6b977
    • Sebastian Andrzej Siewior's avatar
      net: Remove conditional threaded-NAPI wakeup based on task state. · 56364c91
      Sebastian Andrzej Siewior authored
      A NAPI thread is scheduled by first setting NAPI_STATE_SCHED bit. If
      successful (the bit was not yet set) then the NAPI_STATE_SCHED_THREADED
      is set but only if thread's state is not TASK_INTERRUPTIBLE (is
      TASK_RUNNING) followed by task wakeup.
      
      If the task is idle (TASK_INTERRUPTIBLE) then the
      NAPI_STATE_SCHED_THREADED bit is not set. The thread is no relying on
      the bit but always leaving the wait-loop after returning from schedule()
      because there must have been a wakeup.
      
      The smpboot-threads implementation for per-CPU threads requires an
      explicit condition and does not support "if we get out of schedule()
      then there must be something to do".
      
      Removing this optimisation simplifies the following integration.
      
      Set NAPI_STATE_SCHED_THREADED unconditionally on wakeup and rely on it
      in the wait path by removing the `woken' condition.
      Acked-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      56364c91
    • Paolo Abeni's avatar
      Merge branch 'trace-use-tp_store_addrs-macro' · 26f44b70
      Paolo Abeni authored
      Jason Xing says:
      
      ====================
      trace: use TP_STORE_ADDRS macro
      
      Using the macro for other tracepoints use to be more concise.
      No functional change.
      ====================
      
      Link: https://lore.kernel.org/r/20240325034347.19522-1-kerneljasonxing@gmail.comSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      26f44b70
    • Jason Xing's avatar
      trace: use TP_STORE_ADDRS() macro in inet_sock_set_state() · 646700ce
      Jason Xing authored
      As the title said, use the macro directly like the patch[1] did
      to avoid those duplications. No functional change.
      
      [1]
      commit 6a6b0b99 ("tcp: Avoid preprocessor directives in tracepoint macro args")
      Signed-off-by: default avatarJason Xing <kernelxing@tencent.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      646700ce
    • Jason Xing's avatar
      trace: use TP_STORE_ADDRS() macro in inet_sk_error_report() · a24c855a
      Jason Xing authored
      As the title said, use the macro directly like the patch[1] did
      to avoid those duplications. No functional change.
      
      [1]
      commit 6a6b0b99 ("tcp: Avoid preprocessor directives in tracepoint macro args")
      Signed-off-by: default avatarJason Xing <kernelxing@tencent.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      a24c855a
    • Jason Xing's avatar
      trace: move to TP_STORE_ADDRS related macro to net_probe_common.h · b3af9045
      Jason Xing authored
      Put the macro into another standalone file for better extension.
      Some tracepoints can use this common part in the future.
      Signed-off-by: default avatarJason Xing <kernelxing@tencent.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      b3af9045
    • Bharath SM's avatar
      dns_resolver: correct module name in dns resolver documentation · 75925faf
      Bharath SM authored
      Fix an incorrect module name and sysfs path in dns resolver
      documentation.
      Signed-off-by: default avatarBharath SM <bharathsm@microsoft.com>
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Link: https://lore.kernel.org/r/20240324104338.44083-1-bharathsm@microsoft.comSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      75925faf
  3. 25 Mar, 2024 5 commits
  4. 22 Mar, 2024 3 commits
  5. 21 Mar, 2024 18 commits
    • Jakub Kicinski's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 537c2e91
      Jakub Kicinski authored
      Cross-merge networking fixes after downstream PR.
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      537c2e91
    • Linus Torvalds's avatar
      Merge tag 'net-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · cba9ffdb
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Including fixes from CAN, netfilter, wireguard and IPsec.
      
        I'd like to highlight [ lowlight? - Linus ] Florian W stepping down as
        a netfilter maintainer due to constant stream of bug reports. Not sure
        what we can do but IIUC this is not the first such case.
      
        Current release - regressions:
      
         - rxrpc: fix use of page_frag_alloc_align(), it changed semantics and
           we added a new caller in a different subtree
      
         - xfrm: allow UDP encapsulation only in offload modes
      
        Current release - new code bugs:
      
         - tcp: fix refcnt handling in __inet_hash_connect()
      
         - Revert "net: Re-use and set mono_delivery_time bit for userspace
           tstamp packets", conflicted with some expectations in BPF uAPI
      
        Previous releases - regressions:
      
         - ipv4: raw: fix sending packets from raw sockets via IPsec tunnels
      
         - devlink: fix devlink's parallel command processing
      
         - veth: do not manipulate GRO when using XDP
      
         - esp: fix bad handling of pages from page_pool
      
        Previous releases - always broken:
      
         - report RCU QS for busy network kthreads (with Paul McK's blessing)
      
         - tcp/rds: fix use-after-free on netns with kernel TCP reqsk
      
         - virt: vmxnet3: fix missing reserved tailroom with XDP
      
        Misc:
      
         - couple of build fixes for Documentation"
      
      * tag 'net-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (59 commits)
        selftests: forwarding: Fix ping failure due to short timeout
        MAINTAINERS: step down as netfilter maintainer
        netfilter: nf_tables: Fix a memory leak in nf_tables_updchain
        net: dsa: mt7530: fix handling of all link-local frames
        net: dsa: mt7530: fix link-local frames that ingress vlan filtering ports
        bpf: report RCU QS in cpumap kthread
        net: report RCU QS on threaded NAPI repolling
        rcu: add a helper to report consolidated flavor QS
        ionic: update documentation for XDP support
        lib/bitmap: Fix bitmap_scatter() and bitmap_gather() kernel doc
        netfilter: nf_tables: do not compare internal table flags on updates
        netfilter: nft_set_pipapo: release elements in clone only from destroy path
        octeontx2-af: Use separate handlers for interrupts
        octeontx2-pf: Send UP messages to VF only when VF is up.
        octeontx2-pf: Use default max_active works instead of one
        octeontx2-pf: Wait till detach_resources msg is complete
        octeontx2: Detect the mbox up or down message via register
        devlink: fix port new reply cmd type
        tcp: Clear req->syncookie in reqsk_alloc().
        net/bnx2x: Prevent access to a freed page in page_pool
        ...
      cba9ffdb
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 1d35aae7
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
      
       - Generate a list of built DTB files (arch/*/boot/dts/dtbs-list)
      
       - Use more threads when building Debian packages in parallel
      
       - Fix warnings shown during the RPM kernel package uninstallation
      
       - Change OBJECT_FILES_NON_STANDARD_*.o etc. to take a relative path to
         Makefile
      
       - Support GCC's -fmin-function-alignment flag
      
       - Fix a null pointer dereference bug in modpost
      
       - Add the DTB support to the RPM package
      
       - Various fixes and cleanups in Kconfig
      
      * tag 'kbuild-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (67 commits)
        kconfig: tests: test dependency after shuffling choices
        kconfig: tests: add a test for randconfig with dependent choices
        kconfig: tests: support KCONFIG_SEED for the randconfig runner
        kbuild: rpm-pkg: add dtb files in kernel rpm
        kconfig: remove unneeded menu_is_visible() call in conf_write_defconfig()
        kconfig: check prompt for choice while parsing
        kconfig: lxdialog: remove unused dialog colors
        kconfig: lxdialog: fix button color for blackbg theme
        modpost: fix null pointer dereference
        kbuild: remove GCC's default -Wpacked-bitfield-compat flag
        kbuild: unexport abs_srctree and abs_objtree
        kbuild: Move -Wenum-{compare-conditional,enum-conversion} into W=1
        kconfig: remove named choice support
        kconfig: use linked list in get_symbol_str() to iterate over menus
        kconfig: link menus to a symbol
        kbuild: fix inconsistent indentation in top Makefile
        kbuild: Use -fmin-function-alignment when available
        alpha: merge two entries for CONFIG_ALPHA_GAMMA
        alpha: merge two entries for CONFIG_ALPHA_EV4
        kbuild: change DTC_FLAGS_<basetarget>.o to take the path relative to $(obj)
        ...
      1d35aae7
    • Linus Torvalds's avatar
      Merge tag 'firewire-fixes-6.9-rc1' of... · 88d92fb1
      Linus Torvalds authored
      Merge tag 'firewire-fixes-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394
      
      Pull firewire fixes Takashi Sakamoto:
       "The previous pull includes some regressions in some device attributes
        exposed to sysfs. They are fixed now"
      
      * tag 'firewire-fixes-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
        firewire: core: add memo about the caller of show functions for device attributes
        Revert "firewire: Kill unnecessary buf check in device_attribute.show"
      88d92fb1
    • Linus Torvalds's avatar
      Merge tag 'driver-core-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 241590e5
      Linus Torvalds authored
      Pull driver core updates from Greg KH:
       "Here is the "big" set of driver core and kernfs changes for 6.9-rc1.
      
        Nothing all that crazy here, just some good updates that include:
      
         - automatic attribute group hiding from Dan Williams (he fixed up my
           horrible attempt at doing this.)
      
         - kobject lock contention fixes from Eric Dumazet
      
         - driver core cleanups from Andy
      
         - kernfs rcu work from Tejun
      
         - fw_devlink changes to resolve some reported issues
      
         - other minor changes, all details in the shortlog
      
        All of these have been in linux-next for a long time with no reported
        issues"
      
      * tag 'driver-core-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (28 commits)
        device: core: Log warning for devices pending deferred probe on timeout
        driver: core: Use dev_* instead of pr_* so device metadata is added
        driver: core: Log probe failure as error and with device metadata
        of: property: fw_devlink: Add support for "post-init-providers" property
        driver core: Add FWLINK_FLAG_IGNORE to completely ignore a fwnode link
        driver core: Adds flags param to fwnode_link_add()
        debugfs: fix wait/cancellation handling during remove
        device property: Don't use "proxy" headers
        device property: Move enum dev_dma_attr to fwnode.h
        driver core: Move fw_devlink stuff to where it belongs
        driver core: Drop unneeded 'extern' keyword in fwnode.h
        firmware_loader: Suppress warning on FW_OPT_NO_WARN flag
        sysfs:Addresses documentation in sysfs_merge_group and sysfs_unmerge_group.
        firmware_loader: introduce __free() cleanup hanler
        platform-msi: Remove usage of the deprecated ida_simple_xx() API
        sysfs: Introduce DEFINE_SIMPLE_SYSFS_GROUP_VISIBLE()
        sysfs: Document new "group visible" helpers
        sysfs: Fix crash on empty group attributes array
        sysfs: Introduce a mechanism to hide static attribute_groups
        sysfs: Introduce a mechanism to hide static attribute_groups
        ...
      241590e5
    • Linus Torvalds's avatar
      Merge tag 'char-misc-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · bb41fe35
      Linus Torvalds authored
      Pull char/misc and other driver subsystem updates from Greg KH:
       "Here is the big set of char/misc and a number of other driver
        subsystem updates for 6.9-rc1. Included in here are:
      
         - IIO driver updates, loads of new ones and evolution of existing ones
      
         - coresight driver updates
      
         - const cleanups for many driver subsystems
      
         - speakup driver additions
      
         - platform remove callback void cleanups
      
         - mei driver updates
      
         - mhi driver updates
      
         - cdx driver updates for MSI interrupt handling
      
         - nvmem driver updates
      
         - other smaller driver updates and cleanups, full details in the
          shortlog
      
        All of these have been in linux-next for a long time with no reported
        issue, other than a build warning for the speakup driver"
      
      The build warning hits clang and is a gcc (and C23) extension, and is
      fixed up in the merge.
      
      Link: https://lore.kernel.org/all/20240321134831.GA2762840@dev-arch.thelio-3990X/
      
      * tag 'char-misc-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (279 commits)
        binder: remove redundant variable page_addr
        uio_dmem_genirq: UIO_MEM_DMA_COHERENT conversion
        uio_pruss: UIO_MEM_DMA_COHERENT conversion
        cnic,bnx2,bnx2x: use UIO_MEM_DMA_COHERENT
        uio: introduce UIO_MEM_DMA_COHERENT type
        cdx: add MSI support for CDX bus
        pps: use cflags-y instead of EXTRA_CFLAGS
        speakup: Add /dev/synthu device
        speakup: Fix 8bit characters from direct synth
        parport: sunbpp: Convert to platform remove callback returning void
        parport: amiga: Convert to platform remove callback returning void
        char: xillybus: Convert to platform remove callback returning void
        vmw_balloon: change maintainership
        MAINTAINERS: change the maintainer for hpilo driver
        char: xilinx_hwicap: Fix NULL vs IS_ERR() bug
        hpet: remove hpets::hp_clocksource
        platform: goldfish: move the separate 'default' propery for CONFIG_GOLDFISH
        char: xilinx_hwicap: drop casting to void in dev_set_drvdata
        greybus: move is_gb_* functions out of greybus.h
        greybus: Remove usage of the deprecated ida_simple_xx() API
        ...
      bb41fe35
    • Linus Torvalds's avatar
      Merge tag 'staging-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 0a59b3f4
      Linus Torvalds authored
      Pull staging driver updates from Greg KH:
       "Here is the big set of Staging driver cleanups for 6.9-rc1. Nothing
        major in here, lots of small coding style cleanups for most drivers,
        and the removal of some obsolete hardare (the emxx_udc and some
        drivers/staging/board/ files).
      
        All of these have been in linux-next for a long time with no reported
        issues"
      
      * tag 'staging-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (122 commits)
        staging: greybus: Replaces directive __attribute__((packed)) by __packed as suggested by checkpatch
        staging: greybus: Replace __attribute__((packed)) by __packed in various instances
        Staging: rtl8192e: Rename function GetHalfNmodeSupportByAPsHandler()
        Staging: rtl8192e: Rename function rtllib_FlushRxTsPendingPkts()
        Staging: rtl8192e: Rename goto OnADDBARsp_Reject
        Staging: rtl8192e: Rename goto OnADDBAReq_Fail
        Staging: rtl8192e: Rename function rtllib_send_ADDBARsp()
        Staging: rtl8192e: Rename function rtllib_send_ADDBAReq()
        Staging: rtl8192e: Rename variable TxRxSelect
        Staging: rtl8192e: Fix 5 chckpatch alignment warnings in rtl819x_BAProc.c
        Staging: rtl8192e: Rename function MgntQuery_MgntFrameTxRate
        Staging: rtl8192e: Rename boolean variable bHalfWirelessN24GMode
        Staging: rtl8192e: Rename reference AllowAllDestAddrHandler
        Staging: rtl8192e: Rename varoable asSta
        Staging: rtl8192e: Rename varoable osCcxVerNum
        Staging: rtl8192e: Rename variable CcxAironetBuf
        Staging: rtl8192e: Rename variable osCcxAironetIE
        Staging: rtl8192e: Rename variable AironetIeOui
        Staging: rtl8192e: Rename variable asRsn
        Staging: rtl8192e: Rename variable CcxVerNumBuf
        ...
      0a59b3f4
    • Linus Torvalds's avatar
      Merge tag 'tty-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 3bcb0bf6
      Linus Torvalds authored
      Pull tty / serial driver updates from Greg KH:
       "Here is the big set of TTY/Serial driver updates and cleanups for
        6.9-rc1. Included in here are:
      
         - more tty cleanups from Jiri
      
         - loads of 8250 driver cleanups from Andy
      
         - max310x driver updates
      
         - samsung serial driver updates
      
         - uart_prepare_sysrq_char() updates for many drivers
      
         - platform driver remove callback void cleanups
      
         - stm32 driver updates
      
         - other small tty/serial driver updates
      
        All of these have been in linux-next for a long time with no reported
        issues"
      
      * tag 'tty-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (199 commits)
        dt-bindings: serial: stm32: add power-domains property
        serial: 8250_dw: Replace ACPI device check by a quirk
        serial: Lock console when calling into driver before registration
        serial: 8250_uniphier: Switch to use uart_read_port_properties()
        serial: 8250_tegra: Switch to use uart_read_port_properties()
        serial: 8250_pxa: Switch to use uart_read_port_properties()
        serial: 8250_omap: Switch to use uart_read_port_properties()
        serial: 8250_of: Switch to use uart_read_port_properties()
        serial: 8250_lpc18xx: Switch to use uart_read_port_properties()
        serial: 8250_ingenic: Switch to use uart_read_port_properties()
        serial: 8250_dw: Switch to use uart_read_port_properties()
        serial: 8250_bcm7271: Switch to use uart_read_port_properties()
        serial: 8250_bcm2835aux: Switch to use uart_read_port_properties()
        serial: 8250_aspeed_vuart: Switch to use uart_read_port_properties()
        serial: port: Introduce a common helper to read properties
        serial: core: Add UPIO_UNKNOWN constant for unknown port type
        serial: core: Move struct uart_port::quirks closer to possible values
        serial: sh-sci: Call sci_serial_{in,out}() directly
        serial: core: only stop transmit when HW fifo is empty
        serial: pch: Use uart_prepare_sysrq_char().
        ...
      3bcb0bf6
    • Linus Torvalds's avatar
      Merge tag 'usb-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · e09bf86f
      Linus Torvalds authored
      Pull USB / Thunderbolt updates from Greg KH:
       "Here is the big set of USB and Thunderbolt changes for 6.9-rc1. Lots
        of tiny changes and forward progress to support new hardware and
        better support for existing devices. Included in here are:
      
         - Thunderbolt (i.e. USB4) updates for newer hardware and uses as more
           people start to use the hardware
      
         - default USB authentication mode Kconfig and documentation update to
           make it more obvious what is going on
      
         - USB typec updates and enhancements
      
         - usual dwc3 driver updates
      
         - usual xhci driver updates
      
         - function USB (i.e. gadget) driver updates and additions
      
         - new device ids for lots of drivers
      
         - loads of other small updates, full details in the shortlog
      
        All of these, including a "last minute regression fix" have been in
        linux-next with no reported issues"
      
      * tag 'usb-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (185 commits)
        usb: usb-acpi: Fix oops due to freeing uninitialized pld pointer
        usb: gadget: net2272: Use irqflags in the call to net2272_probe_fin
        usb: gadget: tegra-xudc: Fix USB3 PHY retrieval logic
        phy: tegra: xusb: Add API to retrieve the port number of phy
        USB: gadget: pxa27x_udc: Remove unused of_gpio.h
        usb: gadget/snps_udc_plat: Remove unused of_gpio.h
        usb: ohci-pxa27x: Remove unused of_gpio.h
        usb: sl811-hcd: only defined function checkdone if QUIRK2 is defined
        usb: Clarify expected behavior of dev_bin_attrs_are_visible()
        xhci: Allow RPM on the USB controller (1022:43f7) by default
        usb: isp1760: remove SLAB_MEM_SPREAD flag usage
        usb: misc: onboard_hub: use pointer consistently in the probe function
        usb: gadget: fsl: Increase size of name buffer for endpoints
        usb: gadget: fsl: Add of device table to enable module autoloading
        usb: typec: tcpm: add support to set tcpc connector orientatition
        usb: typec: tcpci: add generic tcpci fallback compatible
        dt-bindings: usb: typec-tcpci: add tcpci fallback binding
        usb: gadget: fsl-udc: Replace custom log wrappers by dev_{err,warn,dbg,vdbg}
        usb: core: Set connect_type of ports based on DT node
        dt-bindings: usb: Add downstream facing ports to realtek binding
        ...
      e09bf86f
    • Harishankar Vishwanathan's avatar
      bpf-next: Avoid goto in regs_refine_cond_op() · 4c2a26fc
      Harishankar Vishwanathan authored
      In case of GE/GT/SGE/JST instructions, regs_refine_cond_op()
      reuses the logic that does analysis of LE/LT/SLE/SLT instructions.
      This commit avoids the use of a goto to perform the reuse.
      Signed-off-by: default avatarHarishankar Vishwanathan <harishankar.vishwanathan@gmail.com>
      Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Link: https://lore.kernel.org/bpf/20240321002955.808604-1-harishankar.vishwanathan@gmail.com
      4c2a26fc
    • Linus Torvalds's avatar
      Merge tag 'hwlock-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux · 2ac2b166
      Linus Torvalds authored
      Pull hwspinlock updates from Bjorn Andersson:
       "Some code cleanup for the OMAP hwspinlock driver"
      
      * tag 'hwlock-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux:
        hwspinlock: omap: Use index to get hwspinlock pointer
        hwspinlock: omap: Use devm_hwspin_lock_register() helper
        hwspinlock: omap: Use devm_pm_runtime_enable() helper
        hwspinlock: omap: Remove unneeded check for OF node
      2ac2b166
    • Linus Torvalds's avatar
      Merge tag 'rpmsg-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux · 91f263dd
      Linus Torvalds authored
      Pull rpmsg updates from Bjorn Andersson:
       "This transitions rpmsg_ctrl and rpmsg_char drivers away from the
        deprecated ida_simple_*() API. It also makes the rpmsg_bus const"
      
      * tag 'rpmsg-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux:
        rpmsg: core: Make rpmsg_bus const
        rpmsg: Remove usage of the deprecated ida_simple_xx() API
      91f263dd
    • Linus Torvalds's avatar
      Merge tag 'rproc-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux · 0e875ee5
      Linus Torvalds authored
      Pull remoteproc updates from Bjorn Andersson:
       "Qualcomm SM8650 audio, compute and modem remoteproc are added.
        Qualcomm X1 Elite audio and compute remoteprocs are added, after
        support for shutting down the bootloader-loaded firmware loaded into
        the audio DSP..
      
        A dozen drivers in the subsystem are transitioned to use devres
        helpers for remoteproc and memory allocations - this makes it possible
        to acquire in-kernel handle to individual remoteproc instances in a
        cluster.
      
        The release of DMA memory for remoteproc virtio is corrected to ensure
        that restarting due to a watchdog bite doesn't attempt to allocate the
        memory again without first freeing it.
      
        Last, but not least, a couple of DeviceTree binding cleanups"
      
      * tag 'rproc-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux: (30 commits)
        remoteproc: qcom_q6v5_pas: Unload lite firmware on ADSP
        remoteproc: qcom_q6v5_pas: Add support for X1E80100 ADSP/CDSP
        dt-bindings: remoteproc: qcom,sm8550-pas: document the X1E80100 aDSP & cDSP
        remoteproc: qcom_wcnss: Use devm_rproc_alloc() helper
        remoteproc: qcom_q6v5_wcss: Use devm_rproc_alloc() helper
        remoteproc: qcom_q6v5_pas: Use devm_rproc_alloc() helper
        remoteproc: qcom_q6v5_mss: Use devm_rproc_alloc() helper
        remoteproc: qcom_q6v5_adsp: Use devm_rproc_alloc() helper
        dt-bindings: remoteproc: do not override firmware-name $ref
        dt-bindings: remoteproc: qcom,glink-rpm-edge: drop redundant type from label
        remoteproc: qcom: pas: correct data indentation
        remoteproc: Make rproc_get_by_phandle() work for clusters
        remoteproc: qcom: pas: Add SM8650 remoteproc support
        remoteproc: qcom: pas: make region assign more generic
        dt-bindings: remoteproc: qcom,sm8550-pas: document the SM8650 PAS
        remoteproc: k3-dsp: Use devm_rproc_add() helper
        remoteproc: k3-dsp: Use devm_ioremap_wc() helper
        remoteproc: k3-dsp: Add devm action to release tsp
        remoteproc: k3-dsp: Use devm_kzalloc() helper
        remoteproc: k3-dsp: Use devm_ti_sci_get_by_phandle() helper
        ...
      0e875ee5
    • Linus Torvalds's avatar
      Merge tag 'cocci-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlawall/linux · ebc9bee8
      Linus Torvalds authored
      Pull coccinelle update from Julia Lawall:
       "Simplify the device_attr_show semantic patch
      
        Also removes an unused variable warning"
      
      * tag 'cocci-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlawall/linux:
        coccinelle: device_attr_show: Remove useless expression STR
      ebc9bee8
    • Linus Torvalds's avatar
      Merge tag 'sh-for-v6.9-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux · 26bbcd63
      Linus Torvalds authored
      Pull sh updates from John Paul Adrian Glaubitz:
       "Two patches by Ricardo B. Marliere make two instances of struct
        bus_type in the interrupt controller driver and the DMA sysfs
        interface const since the driver core in the kernel is now able to
        handle that.
      
        A third patch by Artur Rojek enforces internal linkage for the
        function setup_hd64461() in order to fix the build of hp6xx_defconfig
        with -Werror=missing-prototypes"
      
      * tag 'sh-for-v6.9-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux:
        sh: hd64461: Make setup_hd64461() static
        sh: intc: Make intc_subsys const
        sh: dma-sysfs: Make dma_subsys const
      26bbcd63
    • Linus Torvalds's avatar
      Merge tag 'hyperv-next-signed-20240320' of... · cfce216e
      Linus Torvalds authored
      Merge tag 'hyperv-next-signed-20240320' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux
      
      Pull hyperv updates from Wei Liu:
      
       - Use Hyper-V entropy to seed guest random number generator (Michael
         Kelley)
      
       - Convert to platform remove callback returning void for vmbus (Uwe
         Kleine-König)
      
       - Introduce hv_get_hypervisor_version function (Nuno Das Neves)
      
       - Rename some HV_REGISTER_* defines for consistency (Nuno Das Neves)
      
       - Change prefix of generic HV_REGISTER_* MSRs to HV_MSR_* (Nuno Das
         Neves)
      
       - Cosmetic changes for hv_spinlock.c (Purna Pavan Chandra Aekkaladevi)
      
       - Use per cpu initial stack for vtl context (Saurabh Sengar)
      
      * tag 'hyperv-next-signed-20240320' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
        x86/hyperv: Use Hyper-V entropy to seed guest random number generator
        x86/hyperv: Cosmetic changes for hv_spinlock.c
        hyperv-tlfs: Rename some HV_REGISTER_* defines for consistency
        hv: vmbus: Convert to platform remove callback returning void
        mshyperv: Introduce hv_get_hypervisor_version function
        x86/hyperv: Use per cpu initial stack for vtl context
        hyperv-tlfs: Change prefix of generic HV_REGISTER_* MSRs to HV_MSR_*
      cfce216e
    • Linus Torvalds's avatar
      Merge tag 'for-6.9-part2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 7b65c810
      Linus Torvalds authored
      Pull btrfs fix from David Sterba:
       "Fix a problem found in 6.7 after adding the temp-fsid feature which
        changed device tracking in memory and broke grub-probe. This is used
        on initrd-less systems. There were several iterations of the fix and
        it took longer than expected"
      
      * tag 'for-6.9-part2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: do not skip re-registration for the mounted device
      7b65c810
    • Linus Torvalds's avatar
      Merge tag 'exfat-for-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat · 1b3e2513
      Linus Torvalds authored
      Pull exfat updates from Namjae Jeon:
      
       - Improve dirsync performance by syncing on a dentry-set rather than on
         a per-directory entry
      
      * tag 'exfat-for-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat:
        exfat: remove duplicate update parent dir
        exfat: do not sync parent dir if just update timestamp
        exfat: remove unused functions
        exfat: convert exfat_find_empty_entry() to use dentry cache
        exfat: convert exfat_init_ext_entry() to use dentry cache
        exfat: move free cluster out of exfat_init_ext_entry()
        exfat: convert exfat_remove_entries() to use dentry cache
        exfat: convert exfat_add_entry() to use dentry cache
        exfat: add exfat_get_empty_dentry_set() helper
        exfat: add __exfat_get_dentry_set() helper
      1b3e2513