Skip to content
  1. Mar 26, 2024
    • Aleksandr Loktionov's avatar
      i40e: fix i40e_count_filters() to count only active/new filters · eb58c598
      Aleksandr Loktionov authored
      The bug usually affects untrusted VFs, because they are limited to 18 MACs,
      it affects them badly, not letting to create MAC all filters.
      Not stable to reproduce, it happens when VF user creates MAC filters
      when other MACVLAN operations are happened in parallel.
      But consequence is that VF can't receive desired traffic.
      
      Fix counter to be bumped only for new or active filters.
      
      Fixes: 621650ca
      
       ("i40e: Refactoring VF MAC filters counting to make more reliable")
      Signed-off-by: default avatarAleksandr Loktionov <aleksandr.loktionov@intel.com>
      Reviewed-by: default avatarArkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
      Reviewed-by: default avatarPaul Menzel <pmenzel@molgen.mpg.de>
      Tested-by: default avatarRafal Romanowski <rafal.romanowski@intel.com>
      Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
      eb58c598
    • Ivan Vecera's avatar
      i40e: Enforce software interrupt during busy-poll exit · ea558de7
      Ivan Vecera authored
      As for ice bug fixed by commit b7306b42 ("ice: manage interrupts
      during poll exit") followed by commit 23be7075 ("ice: fix software
      generating extra interrupts") I'm seeing the similar issue also with
      i40e driver.
      
      In certain situation when busy-loop is enabled together with adaptive
      coalescing, the driver occasionally misses that there are outstanding
      descriptors to clean when exiting busy poll.
      
      Try to catch the remaining work by triggering a software interrupt
      when exiting busy poll. No extra interrupts will be generated when
      busy polling is not used.
      
      The issue was found when running sockperf ping-pong tcp test with
      adaptive coalescing and busy poll enabled (50 as value busy_pool
      and busy_read sysctl knobs) and results in huge latency spikes
      with more than 100000us.
      
      The fix is inspired from the ice driver and do the following:
      1) During napi poll exit in case of busy-poll (napo_complete_done()
         returns false) this is recorded to q_vector that we were in busy
         loop.
      2) Extends i40e_buildreg_itr() to be able to add an enforced software
         interrupt into built value
      2) In i40e_update_enable_itr() enforces a software interrupt trigger
         if we are exiting busy poll to catch any pending clean-ups
      3) Reuses unused 3rd ITR (interrupt throttle) index and set it to
         20K interrupts per second to limit the number of these sw interrupts.
      
      Test results
      ============
      Prior:
      [root@dell-per640-07 net]# sockperf ping-pong -i 10.9.9.1 --tcp -m 1000 --mps=max -t 120
      sockperf: == version #3.10-no.git ==
      sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
      
      [ 0] IP = 10.9.9.1        PORT = 11111 # TCP
      sockperf: Warmup stage (sending a few dummy messages)...
      sockperf: Starting test...
      sockperf: Test end (interrupted by timer)
      sockperf: Test ended
      sockperf: [Total Run] RunTime=119.999 sec; Warm up time=400 msec; SentMessages=2438563; ReceivedMessages=2438562
      sockperf: ========= Printing statistics for Server No: 0
      sockperf: [Valid Duration] RunTime=119.549 sec; SentMessages=2429473; ReceivedMessages=2429473
      sockperf: ====> avg-latency=24.571 (std-dev=93.297, mean-ad=4.904, median-ad=1.510, siqr=1.063, cv=3.797, std-error=0.060, 99.0% ci=[24.417, 24.725])
      sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
      sockperf: Summary: Latency is 24.571 usec
      sockperf: Total 2429473 observations; each percentile contains 24294.73 observations
      sockperf: ---> <MAX> observation = 103294.331
      sockperf: ---> percentile 99.999 =   45.633
      sockperf: ---> percentile 99.990 =   37.013
      sockperf: ---> percentile 99.900 =   35.910
      sockperf: ---> percentile 99.000 =   33.390
      sockperf: ---> percentile 90.000 =   28.626
      sockperf: ---> percentile 75.000 =   27.741
      sockperf: ---> percentile 50.000 =   26.743
      sockperf: ---> percentile 25.000 =   25.614
      sockperf: ---> <MIN> observation =   12.220
      
      After:
      [root@dell-per640-07 net]# sockperf ping-pong -i 10.9.9.1 --tcp -m 1000 --mps=max -t 120
      sockperf: == version #3.10-no.git ==
      sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
      
      [ 0] IP = 10.9.9.1        PORT = 11111 # TCP
      sockperf: Warmup stage (sending a few dummy messages)...
      sockperf: Starting test...
      sockperf: Test end (interrupted by timer)
      sockperf: Test ended
      sockperf: [Total Run] RunTime=119.999 sec; Warm up time=400 msec; SentMessages=2400055; ReceivedMessages=2400054
      sockperf: ========= Printing statistics for Server No: 0
      sockperf: [Valid Duration] RunTime=119.549 sec; SentMessages=2391186; ReceivedMessages=2391186
      sockperf: ====> avg-latency=24.965 (std-dev=5.934, mean-ad=4.642, median-ad=1.485, siqr=1.067, cv=0.238, std-error=0.004, 99.0% ci=[24.955, 24.975])
      sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
      sockperf: Summary: Latency is 24.965 usec
      sockperf: Total 2391186 observations; each percentile contains 23911.86 observations
      sockperf: ---> <MAX> observation =  195.841
      sockperf: ---> percentile 99.999 =   45.026
      sockperf: ---> percentile 99.990 =   39.009
      sockperf: ---> percentile 99.900 =   35.922
      sockperf: ---> percentile 99.000 =   33.482
      sockperf: ---> percentile 90.000 =   28.902
      sockperf: ---> percentile 75.000 =   27.821
      sockperf: ---> percentile 50.000 =   26.860
      sockperf: ---> percentile 25.000 =   25.685
      sockperf: ---> <MIN> observation =   12.277
      
      Fixes: 0bcd952f
      
       ("ethernet/intel: consolidate NAPI and NAPI exit")
      Reported-by: default avatarHugo Ferreira <hferreir@redhat.com>
      Reviewed-by: default avatarMichal Schmidt <mschmidt@redhat.com>
      Signed-off-by: default avatarIvan Vecera <ivecera@redhat.com>
      Reviewed-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
      Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
      Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
      ea558de7
    • Paolo Abeni's avatar
      Merge branch 'there-are-some-bugfix-for-the-hns3-ethernet-driver' · c1fd3a94
      Paolo Abeni authored
      Jijie Shao says:
      
      ====================
      There are some bugfix for the HNS3 ethernet driver
      ====================
      
      Link: https://lore.kernel.org/r/20240325124311.1866197-1-shaojijie@huawei.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      c1fd3a94
    • Jian Shen's avatar
      net: hns3: mark unexcuted loopback test result as UNEXECUTED · 5bd088d6
      Jian Shen authored
      Currently, loopback test may be skipped when resetting, but the test
      result will still show as 'PASS', because the driver doesn't set
      ETH_TEST_FL_FAILED flag. Fix it by setting the flag and
      initializating the value to UNEXECUTED.
      
      Fixes: 4c8dab1c
      
       ("net: hns3: reconstruct function hns3_self_test")
      Signed-off-by: default avatarJian Shen <shenjian15@huawei.com>
      Signed-off-by: default avatarJijie Shao <shaojijie@huawei.com>
      Reviewed-by: default avatarMichal Kubiak <michal.kubiak@intel.com>
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      5bd088d6
    • Yonglong Liu's avatar
      net: hns3: fix kernel crash when devlink reload during pf initialization · 93305b77
      Yonglong Liu authored
      The devlink reload process will access the hardware resources,
      but the register operation is done before the hardware is initialized.
      So, processing the devlink reload during initialization may lead to kernel
      crash. This patch fixes this by taking devl_lock during initialization.
      
      Fixes: b741269b
      
       ("net: hns3: add support for registering devlink for PF")
      Signed-off-by: default avatarYonglong Liu <liuyonglong@huawei.com>
      Signed-off-by: default avatarJijie Shao <shaojijie@huawei.com>
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      93305b77
    • Jie Wang's avatar
      net: hns3: fix index limit to support all queue stats · 47e39d21
      Jie Wang authored
      Currently, hns hardware supports more than 512 queues and the index limit
      in hclge_comm_tqps_update_stats is wrong. So this patch removes it.
      
      Fixes: 287db5c4
      
       ("net: hns3: create new set of common tqp stats APIs for PF and VF reuse")
      Signed-off-by: default avatarJie Wang <wangjie125@huawei.com>
      Signed-off-by: default avatarJijie Shao <shaojijie@huawei.com>
      Reviewed-by: default avatarMichal Kubiak <michal.kubiak@intel.com>
      Reviewed-by: default avatarKalesh AP <kalesh-anakkur.purayil@broadcom.com>
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      47e39d21
    • Paolo Abeni's avatar
      Merge tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf · 37ccdf7f
      Paolo Abeni authored
      Daniel Borkmann says:
      
      ====================
      pull-request: bpf 2024-03-25
      
      The following pull-request contains BPF updates for your *net* tree.
      
      We've added 17 non-merge commits during the last 12 day(s) which contain
      a total of 19 files changed, 184 insertions(+), 61 deletions(-).
      
      The main changes are:
      
      1) Fix an arm64 BPF JIT bug in BPF_LDX_MEMSX implementation's offset handling
         found via test_bpf module, from Puranjay Mohan.
      
      2) Various fixups to the BPF arena code in particular in the BPF verifier and
         around BPF selftests to match latest corresponding LLVM implementation,
         from Puranjay Mohan and Alexei Starovoitov.
      
      3) Fix xsk to not assume that metadata is always requested in TX completion,
         from Stanislav Fomichev.
      
      4) Fix riscv BPF JIT's kfunc parameter incompatibility between BPF and the riscv
         ABI which requires sign-extension on int/uint, from Pu Lehui.
      
      5) Fix s390x BPF JIT's bpf_plt pointer arithmetic which triggered a crash when
         testing struct_ops, from Ilya Leoshkevich.
      
      6) Fix libbpf's arena mmap handling which had incorrect u64-to-pointer cast on
         32-bit architectures, from Andrii Nakryiko.
      
      7) Fix libbpf to define MFD_CLOEXEC when not available, from Arnaldo Carvalho de Melo.
      
      8) Fix arm64 BPF JIT implementation for 32bit unconditional bswap which
         resulted in an incorrect swap as indicated by test_bpf, from Artem Savkov.
      
      9) Fix BPF man page build script to use silent mode, from Hangbin Liu.
      
      * tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf:
        riscv, bpf: Fix kfunc parameters incompatibility between bpf and riscv abi
        bpf: verifier: reject addr_space_cast insn without arena
        selftests/bpf: verifier_arena: fix mmap address for arm64
        bpf: verifier: fix addr_space_cast from as(1) to as(0)
        libbpf: Define MFD_CLOEXEC if not available
        arm64: bpf: fix 32bit unconditional bswap
        bpf, arm64: fix bug in BPF_LDX_MEMSX
        libbpf: fix u64-to-pointer cast on 32-bit arches
        s390/bpf: Fix bpf_plt pointer arithmetic
        xsk: Don't assume metadata is always requested in TX completion
        selftests/bpf: Add arena test case for 4Gbyte corner case
        selftests/bpf: Remove hard coded PAGE_SIZE macro.
        libbpf, selftests/bpf: Adjust libbpf, bpftool, selftests to match LLVM
        bpf: Clarify bpf_arena comments.
        MAINTAINERS: Update email address for Quentin Monnet
        scripts/bpf_doc: Use silent mode when exec make cmd
        bpf: Temporarily disable atomic operations in BPF arena
      ====================
      
      Link: https://lore.kernel.org/r/20240325213520.26688-1-daniel@iogearbox.net
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      37ccdf7f
    • Ido Schimmel's avatar
      selftests: vxlan_mdb: Fix failures with old libnet · f1425529
      Ido Schimmel authored
      Locally generated IP multicast packets (such as the ones used in the
      test) do not perform routing and simply egress the bound device.
      
      However, as explained in commit 8bcfb4ae ("selftests: forwarding:
      Fix failing tests with old libnet"), old versions of libnet (used by
      mausezahn) do not use the "SO_BINDTODEVICE" socket option. Specifically,
      the library started using the option for IPv6 sockets in version 1.1.6
      and for IPv4 sockets in version 1.2. This explains why on Ubuntu - which
      uses version 1.1.6 - the IPv4 overlay tests are failing whereas the IPv6
      ones are passing.
      
      Fix by specifying the source and destination MAC of the packets which
      will cause mausezahn to use a packet socket instead of an IP socket.
      
      Fixes: 62199e3f
      
       ("selftests: net: Add VXLAN MDB test")
      Reported-by: default avatarMirsad Todorovac <mirsad.todorovac@alu.unizg.hr>
      Closes: https://lore.kernel.org/netdev/5bb50349-196d-4892-8ed2-f37543aa863f@alu.unizg.hr/
      
      
      Tested-by: default avatarMirsad Todorovac <mirsad.todorovac@alu.unizg.hr>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Link: https://lore.kernel.org/r/20240325075030.2379513-1-idosch@nvidia.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      f1425529
    • Sergey Shtylyov's avatar
      MAINTAINERS: split Renesas Ethernet drivers entry · 8c05813d
      Sergey Shtylyov authored
      
      
      Since the Renesas Ethernet Switch driver was added by Yoshihiro Shimoda,
      I started receiving the patches to review for it -- which I was unable to
      do, as I don't know this hardware and don't even have the manuals for it.
      Fortunately, Shimoda-san has volunteered to be a reviewer for this new
      driver, thus let's now split the single entry into 3 per-driver entries,
      each with its own reviewer...
      
      Signed-off-by: default avatarSergey Shtylyov <s.shtylyov@omp.ru>
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Acked-by: default avatarYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
      Link: https://lore.kernel.org/r/de0ccc1d-6fc0-583f-4f80-f70e6461d62d@omp.ru
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      8c05813d
    • Arınç ÜNAL's avatar
      net: dsa: mt7530: fix improper frames on all 25MHz and 40MHz XTAL MT7530 · 5f563c31
      Arınç ÜNAL authored
      The MT7530 switch after reset initialises with a core clock frequency that
      works with a 25MHz XTAL connected to it. For 40MHz XTAL, the core clock
      frequency must be set to 500MHz.
      
      The mt7530_pll_setup() function is responsible of setting the core clock
      frequency. Currently, it runs on MT7530 with 25MHz and 40MHz XTAL. This
      causes MT7530 switch with 25MHz XTAL to egress and ingress frames
      improperly.
      
      Introduce a check to run it only on MT7530 with 40MHz XTAL.
      
      The core clock frequency is set by writing to a switch PHY's register.
      Access to the PHY's register is done via the MDIO bus the switch is also
      on. Therefore, it works only when the switch makes switch PHYs listen on
      the MDIO bus the switch is on. This is controlled either by the state of
      the ESW_P1_LED_1 pin after reset deassertion or modifying bit 5 of the
      modifiable trap register.
      
      When ESW_P1_LED_1 is pulled high, PHY indirect access is used. That means
      accessing PHY registers via the PHY indirect access control register of the
      switch.
      
      When ESW_P1_LED_1 is pulled low, PHY direct access is used. That means
      accessing PHY registers via the MDIO bus the switch is on.
      
      For MT7530 switch with 40MHz XTAL on a board with ESW_P1_LED_1 pulled high,
      the core clock frequency won't be set to 500MHz, causing the switch to
      egress and ingress frames improperly.
      
      Run mt7530_pll_setup() after PHY direct access is set on the modifiable
      trap register.
      
      With these two changes, all MT7530 switches with 25MHz and 40MHz, and
      P1_LED_1 pulled high or low, will egress and ingress frames properly.
      
      Link: https://github.com/BPI-SINOVOIP/BPI-R2-bsp/blob/4a5dd143f2172ec97a2872fa29c7c4cd520f45b5/linux-mt/drivers/net/ethernet/mediatek/gsw_mt7623.c#L1039
      Fixes: b8f126a8
      
       ("net-next: dsa: add dsa support for Mediatek MT7530 switch")
      Signed-off-by: default avatarArınç ÜNAL <arinc.unal@arinc9.com>
      Link: https://lore.kernel.org/r/20240320-for-net-mt7530-fix-25mhz-xtal-with-direct-phy-access-v1-1-d92f605f1160@arinc9.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      5f563c31
    • Bjørn Mork's avatar
      net: wwan: t7xx: Split 64bit accesses to fix alignment issues · 7d5a7dd5
      Bjørn Mork authored
      Some of the registers are aligned on a 32bit boundary, causing
      alignment faults on 64bit platforms.
      
       Unable to handle kernel paging request at virtual address ffffffc084a1d004
       Mem abort info:
       ESR = 0x0000000096000061
       EC = 0x25: DABT (current EL), IL = 32 bits
       SET = 0, FnV = 0
       EA = 0, S1PTW = 0
       FSC = 0x21: alignment fault
       Data abort info:
       ISV = 0, ISS = 0x00000061, ISS2 = 0x00000000
       CM = 0, WnR = 1, TnD = 0, TagAccess = 0
       GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
       swapper pgtable: 4k pages, 39-bit VAs, pgdp=0000000046ad6000
       [ffffffc084a1d004] pgd=100000013ffff003, p4d=100000013ffff003, pud=100000013ffff003, pmd=0068000020a00711
       Internal error: Oops: 0000000096000061 [#1] SMP
       Modules linked in: mtk_t7xx(+) qcserial pppoe ppp_async option nft_fib_inet nf_flow_table_inet mt7921u(O) mt7921s(O) mt7921e(O) mt7921_common(O) iwlmvm(O) iwldvm(O) usb_wwan rndis_host qmi_wwan pppox ppp_generic nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_numgen nft_nat nft_masq nft_log nft_limit nft_hash nft_flow_offload nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_ct nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack mt7996e(O) mt792x_usb(O) mt792x_lib(O) mt7915e(O) mt76_usb(O) mt76_sdio(O) mt76_connac_lib(O) mt76(O) mac80211(O) iwlwifi(O) huawei_cdc_ncm cfg80211(O) cdc_ncm cdc_ether wwan usbserial usbnet slhc sfp rtc_pcf8563 nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_log_syslog nf_defrag_ipv6 nf_defrag_ipv4 mt6577_auxadc mdio_i2c libcrc32c compat(O) cdc_wdm cdc_acm at24 crypto_safexcel pwm_fan i2c_gpio i2c_smbus industrialio i2c_algo_bit i2c_mux_reg i2c_mux_pca954x i2c_mux_pca9541 i2c_mux_gpio i2c_mux dummy oid_registry tun sha512_arm64 sha1_ce sha1_generic seqiv
       md5 geniv des_generic libdes cbc authencesn authenc leds_gpio xhci_plat_hcd xhci_pci xhci_mtk_hcd xhci_hcd nvme nvme_core gpio_button_hotplug(O) dm_mirror dm_region_hash dm_log dm_crypt dm_mod dax usbcore usb_common ptp aquantia pps_core mii tpm encrypted_keys trusted
       CPU: 3 PID: 5266 Comm: kworker/u9:1 Tainted: G O 6.6.22 #0
       Hardware name: Bananapi BPI-R4 (DT)
       Workqueue: md_hk_wq t7xx_fsm_uninit [mtk_t7xx]
       pstate: 804000c5 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
       pc : t7xx_cldma_hw_set_start_addr+0x1c/0x3c [mtk_t7xx]
       lr : t7xx_cldma_start+0xac/0x13c [mtk_t7xx]
       sp : ffffffc085d63d30
       x29: ffffffc085d63d30 x28: 0000000000000000 x27: 0000000000000000
       x26: 0000000000000000 x25: ffffff80c804f2c0 x24: ffffff80ca196c05
       x23: 0000000000000000 x22: ffffff80c814b9b8 x21: ffffff80c814b128
       x20: 0000000000000001 x19: ffffff80c814b080 x18: 0000000000000014
       x17: 0000000055c9806b x16: 000000007c5296d0 x15: 000000000f6bca68
       x14: 00000000dbdbdce4 x13: 000000001aeaf72a x12: 0000000000000001
       x11: 0000000000000000 x10: 0000000000000000 x9 : 0000000000000000
       x8 : ffffff80ca1ef6b4 x7 : ffffff80c814b818 x6 : 0000000000000018
       x5 : 0000000000000870 x4 : 0000000000000000 x3 : 0000000000000000
       x2 : 000000010a947000 x1 : ffffffc084a1d004 x0 : ffffffc084a1d004
       Call trace:
       t7xx_cldma_hw_set_start_addr+0x1c/0x3c [mtk_t7xx]
       t7xx_fsm_uninit+0x578/0x5ec [mtk_t7xx]
       process_one_work+0x154/0x2a0
       worker_thread+0x2ac/0x488
       kthread+0xe0/0xec
       ret_from_fork+0x10/0x20
       Code: f9400800 91001000 8b214001 d50332bf (f9000022)
       ---[ end trace 0000000000000000 ]---
      
      The inclusion of io-64-nonatomic-lo-hi.h indicates that all 64bit
      accesses can be replaced by pairs of nonatomic 32bit access.  Fix
      alignment by forcing all accesses to be 32bit on 64bit platforms.
      
      Link: https://forum.openwrt.org/t/fibocom-fm350-gl-support/142682/72
      Fixes: 39d43904
      
       ("net: wwan: t7xx: Add control DMA interface")
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Reviewed-by: default avatarSergey Ryazanov <ryazanov.s.a@gmail.com>
      Tested-by: default avatarLiviu Dudau <liviu@dudau.co.uk>
      Link: https://lore.kernel.org/r/20240322144000.1683822-1-bjorn@mork.no
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      7d5a7dd5
    • Eric Dumazet's avatar
      tcp: properly terminate timers for kernel sockets · 151c9c72
      Eric Dumazet authored
      We had various syzbot reports about tcp timers firing after
      the corresponding netns has been dismantled.
      
      Fortunately Josef Bacik could trigger the issue more often,
      and could test a patch I wrote two years ago.
      
      When TCP sockets are closed, we call inet_csk_clear_xmit_timers()
      to 'stop' the timers.
      
      inet_csk_clear_xmit_timers() can be called from any context,
      including when socket lock is held.
      This is the reason it uses sk_stop_timer(), aka del_timer().
      This means that ongoing timers might finish much later.
      
      For user sockets, this is fine because each running timer
      holds a reference on the socket, and the user socket holds
      a reference on the netns.
      
      For kernel sockets, we risk that the netns is freed before
      timer can complete, because kernel sockets do not hold
      reference on the netns.
      
      This patch adds inet_csk_clear_xmit_timers_sync() function
      that using sk_stop_timer_sync() to make sure all timers
      are terminated before the kernel socket is released.
      Modules using kernel sockets close them in their netns exit()
      handler.
      
      Also add sock_not_owned_by_me() helper to get LOCKDEP
      support : inet_csk_clear_xmit_timers_sync() must not be called
      while socket lock is held.
      
      It is very possible we can revert in the future commit
      3a58f13a
      
       ("net: rds: acquire refcount on TCP sockets")
      which attempted to solve the issue in rds only.
      (net/smc/af_smc.c and net/mptcp/subflow.c have similar code)
      
      We probably can remove the check_net() tests from
      tcp_out_of_resources() and __tcp_close() in the future.
      
      Reported-by: default avatarJosef Bacik <josef@toxicpanda.com>
      Closes: https://lore.kernel.org/netdev/20240314210740.GA2823176@perftesting/
      Fixes: 26abe143 ("net: Modify sk_alloc to not reference count the netns of kernel sockets.")
      Fixes: 8a681736 ("net: sk_clone_lock() should only do get_net() if the parent is not a kernel socket")
      Link: https://lore.kernel.org/bpf/CANn89i+484ffqb93aQm1N-tjxxvb3WDKX0EbD7318RwRgsatjw@mail.gmail.com/
      
      
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Tested-by: default avatarJosef Bacik <josef@toxicpanda.com>
      Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Link: https://lore.kernel.org/r/20240322135732.1535772-1-edumazet@google.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      151c9c72
    • Ravi Gunasekaran's avatar
      net: hsr: hsr_slave: Fix the promiscuous mode in offload mode · b11c8173
      Ravi Gunasekaran authored
      commit e748d0fd ("net: hsr: Disable promiscuous mode in
      offload mode") disables promiscuous mode of slave devices
      while creating an HSR interface. But while deleting the
      HSR interface, it does not take care of it. It decreases the
      promiscuous mode count, which eventually enables promiscuous
      mode on the slave devices when creating HSR interface again.
      
      Fix this by not decrementing the promiscuous mode count while
      deleting the HSR interface when offload is enabled.
      
      Fixes: e748d0fd
      
       ("net: hsr: Disable promiscuous mode in offload mode")
      Signed-off-by: default avatarRavi Gunasekaran <r-gunasekaran@ti.com>
      Reviewed-by: default avatarJiri Pirko <jiri@nvidia.com>
      Link: https://lore.kernel.org/r/20240322100447.27615-1-r-gunasekaran@ti.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b11c8173
    • Claus Hansen Ries's avatar
      net: ll_temac: platform_get_resource replaced by wrong function · 3a38a829
      Claus Hansen Ries authored
      The function platform_get_resource was replaced with
      devm_platform_ioremap_resource_byname and is called using 0 as name.
      
      This eventually ends up in platform_get_resource_byname in the call
      stack, where it causes a null pointer in strcmp.
      
      	if (type == resource_type(r) && !strcmp(r->name, name))
      
      It should have been replaced with devm_platform_ioremap_resource.
      
      Fixes: bd69058f
      
       ("net: ll_temac: Use devm_platform_ioremap_resource_byname()")
      Signed-off-by: default avatarClaus Hansen Ries <chr@terma.com>
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Link: https://lore.kernel.org/r/cca18f9c630a41c18487729770b492bb@terma.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      3a38a829
    • Alexandra Winter's avatar
      s390/qeth: handle deferred cc1 · afb373ff
      Alexandra Winter authored
      The IO subsystem expects a driver to retry a ccw_device_start, when the
      subsequent interrupt response block (irb) contains a deferred
      condition code 1.
      
      Symptoms before this commit:
      On the read channel we always trigger the next read anyhow, so no
      different behaviour here.
      On the write channel we may experience timeout errors, because the
      expected reply will never be received without the retry.
      Other callers of qeth_send_control_data() may wrongly assume that the ccw
      was successful, which may cause problems later.
      
      Note that since
      commit 2297791c ("s390/cio: dont unregister subchannel from child-drivers")
      and
      commit 5ef1dc40 ("s390/cio: fix invalid -EBUSY on ccw_device_start")
      deferred CC1s are much more likely to occur. See the commit message of the
      latter for more background information.
      
      Fixes: 2297791c
      
       ("s390/cio: dont unregister subchannel from child-drivers")
      Signed-off-by: default avatarAlexandra Winter <wintera@linux.ibm.com>
      Co-developed-by: default avatarThorsten Winkler <twinkler@linux.ibm.com>
      Signed-off-by: default avatarThorsten Winkler <twinkler@linux.ibm.com>
      Reviewed-by: default avatarPeter Oberparleiter <oberpar@linux.ibm.com>
      Link: https://lore.kernel.org/r/20240321115337.3564694-1-wintera@linux.ibm.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      afb373ff
    • Prasad Pandit's avatar
      dpll: indent DPLL option type by a tab · cc269926
      Prasad Pandit authored
      Indent config option type by a tab. It helps Kconfig parsers
      to read file without error.
      
      Fixes: 9431063a
      
       ("dpll: core: Add DPLL framework base functions")
      Signed-off-by: default avatarPrasad Pandit <pjp@fedoraproject.org>
      Reviewed-by: default avatarVadim Fedorenko <vadim.fedorenko@linux.dev>
      Reviewed-by: default avatarJiri Pirko <jiri@nvidia.com>
      Link: https://lore.kernel.org/r/20240322114819.1801795-1-ppandit@redhat.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      cc269926
    • Pu Lehui's avatar
      riscv, bpf: Fix kfunc parameters incompatibility between bpf and riscv abi · 443574b0
      Pu Lehui authored
      We encountered a failing case when running selftest in no_alu32 mode:
      
      The failure case is `kfunc_call/kfunc_call_test4` and its source code is
      like bellow:
      ```
      long bpf_kfunc_call_test4(signed char a, short b, int c, long d) __ksym;
      int kfunc_call_test4(struct __sk_buff *skb)
      {
      	...
      	tmp = bpf_kfunc_call_test4(-3, -30, -200, -1000);
      	...
      }
      ```
      
      And its corresponding asm code is:
      ```
      0: r1 = -3
      1: r2 = -30
      2: r3 = 0xffffff38 # opcode: 18 03 00 00 38 ff ff ff 00 00 00 00 00 00 00 00
      4: r4 = -1000
      5: call bpf_kfunc_call_test4
      ```
      
      insn 2 is parsed to ld_imm64 insn to emit 0x00000000ffffff38 imm, and
      converted to int type and then send to bpf_kfunc_call_test4. But since
      it is zero-extended in the bpf calling convention, riscv jit will
      directly treat it as an unsigned 32-bit int value, and then fails with
      the message "actual 4294966063 != expected -1234".
      
      The reason is the incompatibility between bpf and riscv abi, that is,
      bpf will do zero-extension on uint, but riscv64 requires sign-extension
      on int or uint. We can solve this problem by sign extending the 32-bit
      parameters in kfunc.
      
      The issue is related to [0], and thanks to Yonghong and Alexei.
      
      Link: https://github.com/llvm/llvm-project/pull/84874 [0]
      Fixes: d40c3847
      
       ("riscv, bpf: Add kfunc support for RV64")
      Signed-off-by: default avatarPu Lehui <pulehui@huawei.com>
      Tested-by: default avatarPuranjay Mohan <puranjay12@gmail.com>
      Reviewed-by: default avatarPuranjay Mohan <puranjay12@gmail.com>
      Link: https://lore.kernel.org/r/20240324103306.2202954-1-pulehui@huaweicloud.com
      
      
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      443574b0
  2. Mar 25, 2024
  3. Mar 23, 2024
  4. Mar 22, 2024
    • Ryosuke Yasuoka's avatar
      nfc: nci: Fix uninit-value in nci_dev_up and nci_ntf_packet · d24b0353
      Ryosuke Yasuoka authored
      syzbot reported the following uninit-value access issue [1][2]:
      
      nci_rx_work() parses and processes received packet. When the payload
      length is zero, each message type handler reads uninitialized payload
      and KMSAN detects this issue. The receipt of a packet with a zero-size
      payload is considered unexpected, and therefore, such packets should be
      silently discarded.
      
      This patch resolved this issue by checking payload size before calling
      each message type handler codes.
      
      Fixes: 6a2968aa
      
       ("NFC: basic NCI protocol implementation")
      Reported-and-tested-by: default avatar <syzbot+7ea9413ea6749baf5574@syzkaller.appspotmail.com>
      Reported-and-tested-by: default avatar <syzbot+29b5ca705d2e0f4a44d2@syzkaller.appspotmail.com>
      Closes: https://syzkaller.appspot.com/bug?extid=7ea9413ea6749baf5574 [1]
      Closes: https://syzkaller.appspot.com/bug?extid=29b5ca705d2e0f4a44d2
      
       [2]
      Signed-off-by: default avatarRyosuke Yasuoka <ryasuoka@redhat.com>
      Reviewed-by: default avatarJeremy Cline <jeremy@jcline.org>
      Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d24b0353
    • 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
    • Arnaldo Carvalho de Melo's avatar
      libbpf: Define MFD_CLOEXEC if not available · ddb2ffdc
      Arnaldo Carvalho de Melo authored
      Since its going directly to the syscall to avoid not having
      memfd_create() available in some systems, do the same for its
      MFD_CLOEXEC flags, defining it if not available.
      
      This fixes the build in those systems, noticed while building perf on a
      set of build containers.
      
      Fixes: 9fa5e1a1
      
       ("libbpf: Call memfd_create() syscall directly")
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Link: https://lore.kernel.org/bpf/ZfxZ9nCyKvwmpKkE@x1
      ddb2ffdc
    • 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