Skip to content
  1. Nov 15, 2021
    • Edwin Peer's avatar
      bnxt_en: extend RTNL to VF check in devlink driver_reinit · 46d08f55
      Edwin Peer authored
      
      
      The fixes the race condition between configuring SR-IOV and devlink
      reload.  The SR-IOV configure logic already takes the RTNL lock,
      setting sriov_cfg under the lock while changes are underway. Extend
      the lock scope in devlink driver_reinit to cover the VF check and
      don't run concurrently with SR-IOV configure.
      
      Reported-by: default avatarLeon Romanovsky <leon@kernel.org>
      Fixes: 228ea8c1
      
       ("bnxt_en: implement devlink dev reload driver_reinit")
      Cc: Leon Romanovsky <leon@kernel.org>
      Reviewed-by: default avatarSomnath Kotur <somnath.kotur@broadcom.com>
      Reviewed-by: default avatarPavan Chebbi <pavan.chebbi@broadcom.com>
      Reviewed-by: default avatarAndy Gospodarek <gospo@broadcom.com>
      Signed-off-by: default avatarEdwin Peer <edwin.peer@broadcom.com>
      Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      46d08f55
    • Randy Dunlap's avatar
      net: ethernet: lantiq_etop: fix build errors/warnings · e97b21e9
      Randy Dunlap authored
      Fix build error and warnings reported by kernel test robot:
      
      drivers/net/ethernet/lantiq_etop.c: In function 'ltq_etop_probe':
      drivers/net/ethernet/lantiq_etop.c:673:15: error: implicit declaration of function 'device_property_read_u32' [-Werror=implicit-function-declaration]
           673 |         err = device_property_read_u32(&pdev->dev, "lantiq,tx-burst-length", &priv->tx_burst_len);
      
         drivers/net/ethernet/lantiq_etop.c: At top level:
         drivers/net/ethernet/lantiq_etop.c:730:1: warning: no previous prototype for 'init_ltq_etop' [-Wmissing-prototypes]
           730 | init_ltq_etop(void)
      
         drivers/net/ethernet/lantiq_etop.c: In function 'ltq_etop_hw_init':
         drivers/net/ethernet/lantiq_etop.c:276:25: warning: ignoring return value of 'request_irq' declared with attribute 'warn_unused_result' [-Wunused-result]
           276 |                         request_irq(irq, ltq_etop_dma_irq, 0, "etop_tx", priv);
         drivers/net/ethernet/lantiq_etop.c:284:25: warning: ignoring return value of 'request_irq' declared with attribute 'warn_unused_result' [-Wunused-result]
           284 |                         request_irq(irq, ltq_etop_dma_irq, 0, "etop_rx", priv);
      
      Fixes: 14d4e308 ("net: lantiq: configure the burst length in ethernet drivers")
      Fixes: dddb29e4 ("net: lantiq_etop: remove deprecated IRQF_DISABLED")
      Fixes: 504d4721
      
       ("MIPS: Lantiq: Add ethernet driver")
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Link: lore.kernel.org/r/202111090621.yjr9xuVj-lkp@intel.com
      To: netdev@vger.kernel.org
      Cc: Aleksander Jan Bajkowski <olek2@wp.pl>
      Cc: Hauke Mehrtens <hauke@hauke-m.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: John Crispin <john@phrozen.org>
      Cc: linux-mips@vger.kernel.org
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Michael Opdenacker <michael.opdenacker@bootlin.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e97b21e9
    • Zekun Shen's avatar
      atlantic: Fix OOB read and write in hw_atl_utils_fw_rpc_wait · b922f622
      Zekun Shen authored
      
      
      This bug report shows up when running our research tools. The
      reports is SOOB read, but it seems SOOB write is also possible
      a few lines below.
      
      In details, fw.len and sw.len are inputs coming from io. A len
      over the size of self->rpc triggers SOOB. The patch fixes the
      bugs by adding sanity checks.
      
      The bugs are triggerable with compromised/malfunctioning devices.
      They are potentially exploitable given they first leak up to
      0xffff bytes and able to overwrite the region later.
      
      The patch is tested with QEMU emulater.
      This is NOT tested with a real device.
      
      Attached is the log we found by fuzzing.
      
      BUG: KASAN: slab-out-of-bounds in
      	hw_atl_utils_fw_upload_dwords+0x393/0x3c0 [atlantic]
      Read of size 4 at addr ffff888016260b08 by task modprobe/213
      CPU: 0 PID: 213 Comm: modprobe Not tainted 5.6.0 #1
      Call Trace:
       dump_stack+0x76/0xa0
       print_address_description.constprop.0+0x16/0x200
       ? hw_atl_utils_fw_upload_dwords+0x393/0x3c0 [atlantic]
       ? hw_atl_utils_fw_upload_dwords+0x393/0x3c0 [atlantic]
       __kasan_report.cold+0x37/0x7c
       ? aq_hw_read_reg_bit+0x60/0x70 [atlantic]
       ? hw_atl_utils_fw_upload_dwords+0x393/0x3c0 [atlantic]
       kasan_report+0xe/0x20
       hw_atl_utils_fw_upload_dwords+0x393/0x3c0 [atlantic]
       hw_atl_utils_fw_rpc_call+0x95/0x130 [atlantic]
       hw_atl_utils_fw_rpc_wait+0x176/0x210 [atlantic]
       hw_atl_utils_mpi_create+0x229/0x2e0 [atlantic]
       ? hw_atl_utils_fw_rpc_wait+0x210/0x210 [atlantic]
       ? hw_atl_utils_initfw+0x9f/0x1c8 [atlantic]
       hw_atl_utils_initfw+0x12a/0x1c8 [atlantic]
       aq_nic_ndev_register+0x88/0x650 [atlantic]
       ? aq_nic_ndev_init+0x235/0x3c0 [atlantic]
       aq_pci_probe+0x731/0x9b0 [atlantic]
       ? aq_pci_func_init+0xc0/0xc0 [atlantic]
       local_pci_probe+0xd3/0x160
       pci_device_probe+0x23f/0x3e0
      
      Reported-by: default avatarBrendan Dolan-Gavitt <brendandg@nyu.edu>
      Signed-off-by: default avatarZekun Shen <bruceshenzk@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b922f622
    • Pavel Skripkin's avatar
      net: bnx2x: fix variable dereferenced before check · f8885ac8
      Pavel Skripkin authored
      Smatch says:
      	bnx2x_init_ops.h:640 bnx2x_ilt_client_mem_op()
      	warn: variable dereferenced before check 'ilt' (see line 638)
      
      Move ilt_cli variable initialization _after_ ilt validation, because
      it's unsafe to deref the pointer before validation check.
      
      Fixes: 523224a3
      
       ("bnx2x, cnic, bnx2i: use new FW/HSI")
      Signed-off-by: default avatarPavel Skripkin <paskripkin@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f8885ac8
    • Wen Gu's avatar
      net/smc: Transfer remaining wait queue entries during fallback · 2153bd1e
      Wen Gu authored
      The SMC fallback is incomplete currently. There may be some
      wait queue entries remaining in smc socket->wq, which should
      be removed to clcsocket->wq during the fallback.
      
      For example, in nginx/wrk benchmark, this issue causes an
      all-zeros test result:
      
      server: nginx -g 'daemon off;'
      client: smc_run wrk -c 1 -t 1 -d 5 http://11.200.15.93/index.html
      
        Running 5s test @ http://11.200.15.93/index.html
           1 threads and 1 connections
           Thread Stats   Avg      Stdev     Max   ± Stdev
           	Latency     0.00us    0.00us   0.00us    -nan%
      	Req/Sec     0.00      0.00     0.00      -nan%
      	0 requests in 5.00s, 0.00B read
           Requests/sec:      0.00
           Transfer/sec:       0.00B
      
      The reason for this all-zeros result is that when wrk used SMC
      to replace TCP, it added an eppoll_entry into smc socket->wq
      and expected to be notified if epoll events like EPOLL_IN/
      EPOLL_OUT occurred on the smc socket.
      
      However, once a fallback occurred, wrk switches to use clcsocket.
      Now it is clcsocket->wq instead of smc socket->wq which will
      be woken up. The eppoll_entry remaining in smc socket->wq does
      not work anymore and wrk stops the test.
      
      This patch fixes this issue by removing remaining wait queue
      entries from smc socket->wq to clcsocket->wq during the fallback.
      
      Link: https://www.spinics.net/lists/netdev/msg779769.html
      
      
      Signed-off-by: default avatarWen Gu <guwen@linux.alibaba.com>
      Reviewed-by: default avatarTony Lu <tonylu@linux.alibaba.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2153bd1e
    • David S. Miller's avatar
      Merge branch 'net-ipa-fixes' · ae32bd42
      David S. Miller authored
      
      
      Alex Elder says:
      
      ====================
      net: ipa: HOLB register write fixes
      
      This small series fixes two recently identified bugs related to the
      way two registers must be written.  The registers define whether and
      when to drop packets if a head-of-line blocking condition is
      encountered.  The "enable" (dropping packets) register must be
      written twice for newer versions of hardware.  And the timer
      register must not be written while dropping is enabled.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ae32bd42
    • Alex Elder's avatar
      net: ipa: disable HOLB drop when updating timer · 816316ca
      Alex Elder authored
      The head-of-line blocking timer should only be modified when
      head-of-line drop is disabled.
      
      One of the steps in recovering from a modem crash is to enable
      dropping of packets with timeout of 0 (immediate).  We don't know
      how the modem configured its endpoints, so before we program the
      timer, we need to ensure HOL_BLOCK is disabled.
      
      Fixes: 84f9bd12
      
       ("soc: qcom: ipa: IPA endpoints")
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      816316ca
    • Alex Elder's avatar
      net: ipa: HOLB register sometimes must be written twice · 6e228d8c
      Alex Elder authored
      Starting with IPA v4.5, the HOL_BLOCK_EN register must be written
      twice when enabling head-of-line blocking avoidance.
      
      Fixes: 84f9bd12
      
       ("soc: qcom: ipa: IPA endpoints")
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6e228d8c
    • Jiapeng Chong's avatar
      net: Clean up some inconsistent indenting · 10a2308f
      Jiapeng Chong authored
      
      
      Eliminate the follow smatch warning:
      
      ./include/linux/skbuff.h:4229 skb_remcsum_process() warn: inconsistent
      indenting.
      
      Reported-by: default avatarAbaci Robot <abaci@linux.alibaba.com>
      Signed-off-by: default avatarJiapeng Chong <jiapeng.chong@linux.alibaba.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      10a2308f
    • Nicolas Dichtel's avatar
      tun: fix bonding active backup with arp monitoring · a31d27fb
      Nicolas Dichtel authored
      As stated in the bonding doc, trans_start must be set manually for drivers
      using NETIF_F_LLTX:
       Drivers that use NETIF_F_LLTX flag must also update
       netdev_queue->trans_start. If they do not, then the ARP monitor will
       immediately fail any slaves using that driver, and those slaves will stay
       down.
      
      Link: https://www.kernel.org/doc/html/v5.15/networking/bonding.html#arp-monitor-operation
      
      
      Signed-off-by: default avatarNicolas Dichtel <nicolas.dichtel@6wind.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a31d27fb
    • Tadeusz Struk's avatar
      tipc: use consistent GFP flags · 86c3a3e9
      Tadeusz Struk authored
      
      
      Some functions, like tipc_crypto_start use inconsisten GFP flags
      when allocating memory. The mentioned function use GFP_ATOMIC to
      to alloc a crypto instance, and then calls alloc_ordered_workqueue()
      which allocates memory with GFP_KERNEL. tipc_aead_init() function
      even uses GFP_KERNEL and GFP_ATOMIC interchangeably.
      No doc comment specifies what context a function is designed to
      work in, but the flags should at least be consistent within a function.
      
      Cc: Jon Maloy <jmaloy@redhat.com>
      Cc: Ying Xue <ying.xue@windriver.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: netdev@vger.kernel.org
      Cc: tipc-discussion@lists.sourceforge.net
      Cc: linux-kernel@vger.kernel.org
      
      Signed-off-by: default avatarTadeusz Struk <tadeusz.struk@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      86c3a3e9
  2. Nov 14, 2021
    • Paul Moore's avatar
      net,lsm,selinux: revert the security_sctp_assoc_established() hook · 1aa3b220
      Paul Moore authored
      This patch reverts two prior patches, e7310c94
      ("security: implement sctp_assoc_established hook in selinux") and
      7c2ef024
      
       ("security: add sctp_assoc_established hook"), which
      create the security_sctp_assoc_established() LSM hook and provide a
      SELinux implementation.  Unfortunately these two patches were merged
      without proper review (the Reviewed-by and Tested-by tags from
      Richard Haines were for previous revisions of these patches that
      were significantly different) and there are outstanding objections
      from the SELinux maintainers regarding these patches.
      
      Work is currently ongoing to correct the problems identified in the
      reverted patches, as well as others that have come up during review,
      but it is unclear at this point in time when that work will be ready
      for inclusion in the mainline kernel.  In the interest of not keeping
      objectionable code in the kernel for multiple weeks, and potentially
      a kernel release, we are reverting the two problematic patches.
      
      Signed-off-by: default avatarPaul Moore <paul@paul-moore.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1aa3b220
  3. Nov 13, 2021
    • Arjun Roy's avatar
      tcp: Fix uninitialized access in skb frags array for Rx 0cp. · 70701b83
      Arjun Roy authored
      
      
      TCP Receive zerocopy iterates through the SKB queue via
      tcp_recv_skb(), acquiring a pointer to an SKB and an offset within
      that SKB to read from. From there, it iterates the SKB frags array to
      determine which offset to start remapping pages from.
      
      However, this is built on the assumption that the offset read so far
      within the SKB is smaller than the SKB length. If this assumption is
      violated, we can attempt to read an invalid frags array element, which
      would cause a fault.
      
      tcp_recv_skb() can cause such an SKB to be returned when the TCP FIN
      flag is set. Therefore, we must guard against this occurrence inside
      skb_advance_frag().
      
      One way that we can reproduce this error follows:
      1) In a receiver program, call getsockopt(TCP_ZEROCOPY_RECEIVE) with:
      char some_array[32 * 1024];
      struct tcp_zerocopy_receive zc = {
        .copybuf_address  = (__u64) &some_array[0],
        .copybuf_len = 32 * 1024,
      };
      
      2) In a sender program, after a TCP handshake, send the following
      sequence of packets:
        i) Seq = [X, X+4000]
        ii) Seq = [X+4000, X+5000]
        iii) Seq = [X+4000, X+5000], Flags = FIN | URG, urgptr=1000
      
      (This can happen without URG, if we have a signal pending, but URG is
      a convenient way to reproduce the behaviour).
      
      In this case, the following event sequence will occur on the receiver:
      
      tcp_zerocopy_receive():
      -> receive_fallback_to_copy() // copybuf_len >= inq
      -> tcp_recvmsg_locked() // reads 5000 bytes, then breaks due to URG
      -> tcp_recv_skb() // yields skb with skb->len == offset
      -> tcp_zerocopy_set_hint_for_skb()
      -> skb_advance_to_frag() // will returns a frags ptr. >= nr_frags
      -> find_next_mappable_frag() // will dereference this bad frags ptr.
      
      With this patch, skb_advance_to_frag() will no longer return an
      invalid frags pointer, and will return NULL instead, fixing the issue.
      
      Signed-off-by: default avatarArjun Roy <arjunroy@google.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Fixes: 05255b82 ("tcp: add TCP_ZEROCOPY_RECEIVE support for zerocopy receive")
      Link: https://lore.kernel.org/r/20211111235215.2605384-1-arjunroy.kdev@gmail.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      70701b83
    • Jakub Kicinski's avatar
      ethernet: sis900: fix indentation · aae45872
      Jakub Kicinski authored
      
      
      A space has snuck in.
      
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Fixes: 74fad215 ("ethernet: sis900: use eth_hw_addr_set()")
      Link: https://lore.kernel.org/r/20211111210824.676201-1-kuba@kernel.org
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      aae45872
    • Konrad Dybcio's avatar
      net/ipa: ipa_resource: Fix wrong for loop range · 27df68d5
      Konrad Dybcio authored
      The source group count was mistakenly assigned to both dst and src loops.
      Fix it to make IPA probe and work again.
      
      Fixes: 4fd704b3
      
       ("net: ipa: record number of groups in data")
      Acked-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
      Reviewed-by: default avatarMarijn Suijten <marijn.suijten@somainline.org>
      Signed-off-by: default avatarKonrad Dybcio <konrad.dybcio@somainline.org>
      Reviewed-by: default avatarAlex Elder <elder@linaro.org>
      Link: https://lore.kernel.org/r/20211111183724.593478-1-konrad.dybcio@somainline.org
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      27df68d5
    • Jakub Kicinski's avatar
      selftests: net: switch to socat in the GSO GRE test · 0cda7d4b
      Jakub Kicinski authored
      Commit a985442f ("selftests: net: properly support IPv6 in GSO GRE test")
      is not compatible with:
      
        Ncat: Version 7.80 ( https://nmap.org/ncat )
      
      (which is distributed with Fedora/Red Hat), tests fail with:
      
        nc: invalid option -- 'N'
      
      Let's switch to socat which is far more dependable.
      
      Fixes: 025efa0a ("selftests: add simple GSO GRE test")
      Fixes: a985442f
      
       ("selftests: net: properly support IPv6 in GSO GRE test")
      Tested-by: default avatarAndrea Righi <andrea.righi@canonical.com>
      Link: https://lore.kernel.org/r/20211111162929.530470-1-kuba@kernel.org
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      0cda7d4b
    • Randy Dunlap's avatar
      ptp: ptp_clockmatrix: repair non-kernel-doc comment · 87530779
      Randy Dunlap authored
      Do not use "/**" to begin a comment that is not in kernel-doc format.
      
      Prevents this docs build warning:
      
      drivers/ptp/ptp_clockmatrix.c:1679: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
          * Maximum absolute value for write phase offset in picoseconds
      
      Then remove the kernel-doc-like function parameter descriptions
      since they don't add any useful info. (suggested by Jakub)
      
      Fixes: 794c3dff
      
       ("ptp: ptp_clockmatrix: Add support for FW 5.2 (8A34005)")
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Cc: Min Li <min.li.xe@renesas.com>
      Acked-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Link: https://lore.kernel.org/r/20211111155034.29153-1-rdunlap@infradead.org
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      87530779
    • Lin Ma's avatar
      hamradio: remove needs_free_netdev to avoid UAF · 81b1d548
      Lin Ma authored
      The former patch "defer 6pack kfree after unregister_netdev" reorders
      the kfree of two buffer after the unregister_netdev to prevent the race
      condition. It also adds free_netdev() function in sixpack_close(), which
      is a direct copy from the similar code in mkiss_close().
      
      However, in sixpack driver, the flag needs_free_netdev is set to true in
      sp_setup(), hence the unregister_netdev() will free the netdev
      automatically. Therefore, as the sp is netdev_priv, use-after-free
      occurs.
      
      This patch removes the needs_free_netdev = true and just let the
      free_netdev to finish this deallocation task.
      
      Fixes: 0b911192
      
       ("hamradio: defer 6pack kfree after unregister_netdev")
      Signed-off-by: default avatarLin Ma <linma@zju.edu.cn>
      Link: https://lore.kernel.org/r/20211111141402.7551-1-linma@zju.edu.cn
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      81b1d548
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 66f4beaa
      Linus Torvalds authored
      Pull crypto fix from Herbert Xu:
       "This fixes a boot crash regression"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: api - Fix boot-up crash when crypto manager is disabled
      66f4beaa
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 6cbcc7ab
      Linus Torvalds authored
      Pull more SCSI updates from James Bottomley:
       "This series is all the stragglers that didn't quite make the first
        merge window pull. It's mostly minor updates and bug fixes of merge
        window code but it also has two driver updates: ufs and qla2xxx"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (46 commits)
        scsi: scsi_debug: Don't call kcalloc() if size arg is zero
        scsi: core: Remove command size deduction from scsi_setup_scsi_cmnd()
        scsi: scsi_ioctl: Validate command size
        scsi: ufs: ufshpb: Properly handle max-single-cmd
        scsi: core: Avoid leaving shost->last_reset with stale value if EH does not run
        scsi: bsg: Fix errno when scsi_bsg_register_queue() fails
        scsi: sr: Remove duplicate assignment
        scsi: ufs: ufs-exynos: Introduce ExynosAuto v9 virtual host
        scsi: ufs: ufs-exynos: Multi-host configuration for ExynosAuto v9
        scsi: ufs: ufs-exynos: Support ExynosAuto v9 UFS
        scsi: ufs: ufs-exynos: Add pre/post_hce_enable drv callbacks
        scsi: ufs: ufs-exynos: Factor out priv data init
        scsi: ufs: ufs-exynos: Add EXYNOS_UFS_OPT_SKIP_CONFIG_PHY_ATTR option
        scsi: ufs: ufs-exynos: Support custom version of ufs_hba_variant_ops
        scsi: ufs: ufs-exynos: Add setup_clocks callback
        scsi: ufs: ufs-exynos: Add refclkout_stop control
        scsi: ufs: ufs-exynos: Simplify drv_data retrieval
        scsi: ufs: ufs-exynos: Change pclk available max value
        scsi: ufs: Add quirk to enable host controller without PH configuration
        scsi: ufs: Add quirk to handle broken UIC command
        ...
      6cbcc7ab
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-5.16-rc1' of... · 030c28a0
      Linus Torvalds authored
      Merge tag 'pwm/for-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "This set is mostly small fixes and cleanups, so more of a janitorial
        update for this cycle"
      
      * tag 'pwm/for-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:
        pwm: vt8500: Rename pwm_busy_wait() to make it obviously driver-specific
        dt-bindings: pwm: tpu: Add R-Car M3-W+ device tree bindings
        dt-bindings: pwm: tpu: Add R-Car V3U device tree bindings
        pwm: pwm-samsung: Trigger manual update when disabling PWM
        pwm: visconti: Simplify using devm_pwmchip_add()
        pwm: samsung: Describe driver in Kconfig
        pwm: Make it explicit that pwm_apply_state() might sleep
        pwm: Add might_sleep() annotations for !CONFIG_PWM API functions
        pwm: atmel: Drop unused header
      030c28a0
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 0d5d7463
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A collection of fixes for 5.16-rc1, notably for a few regressions that
        were found in 5.15 and pre-rc1:
      
         - revert of the unification of SG-buffer helper functions on x86 and
           the relevant fix
      
         - regression fixes for mmap after the recent code refactoring
      
         - two NULL dereference fixes in HD-audio controller driver
      
         - UAF fixes in ALSA timer core
      
         - a few usual HD-audio and FireWire quirks"
      
      * tag 'sound-fix-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: fireworks: add support for Loud Onyx 1200f quirk
        ALSA: hda: fix general protection fault in azx_runtime_idle
        ALSA: hda: Free card instance properly at probe errors
        ALSA: hda/realtek: Add quirk for HP EliteBook 840 G7 mute LED
        ALSA: memalloc: Remove a stale comment
        ALSA: synth: missing check for possible NULL after the call to kstrdup
        ALSA: memalloc: Use proper SG helpers for noncontig allocations
        ALSA: pci: rme: Fix unaligned buffer addresses
        ALSA: firewire-motu: add support for MOTU Track 16
        ALSA: PCM: Fix NULL dereference at mmap checks
        ALSA: hda/realtek: Add quirk for ASUS UX550VE
        ALSA: timer: Unconditionally unlink slave instances, too
        ALSA: memalloc: Catch call with NULL snd_dma_buffer pointer
        Revert "ALSA: memalloc: Convert x86 SG-buffer handling with non-contiguous type"
        ALSA: hda/realtek: Add a quirk for Acer Spin SP513-54N
        ALSA: firewire-motu: add support for MOTU Traveler mk3
        ALSA: hda/realtek: Headset fixup for Clevo NH77HJQ
        ALSA: timer: Fix use-after-free problem
      0d5d7463
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2021-11-12' of git://anongit.freedesktop.org/drm/drm · 304ac803
      Linus Torvalds authored
      Pull more drm updates from Dave Airlie:
       "I missed a drm-misc-next pull for the main pull last week. It wasn't
        that major and isn't the bulk of this at all. This has a bunch of
        fixes all over, a lot for amdgpu and i915.
      
        bridge:
         - HPD improvments for lt9611uxc
         - eDP aux-bus support for ps8640
         - LVDS data-mapping selection support
      
        ttm:
         - remove huge page functionality (needs reworking)
         - fix a race condition during BO eviction
      
        panels:
         - add some new panels
      
        fbdev:
         - fix double-free
         - remove unused scrolling acceleration
         - CONFIG_FB dep improvements
      
        locking:
         - improve contended locking logging
         - naming collision fix
      
        dma-buf:
         - add dma_resv_for_each_fence iterator
         - fix fence refcounting bug
         - name locking fixesA
      
        prime:
         - fix object references during mmap
      
        nouveau:
         - various code style changes
         - refcount fix
         - device removal fixes
         - protect client list with a mutex
         - fix CE0 address calculation
      
        i915:
         - DP rates related fixes
         - Revert disabling dual eDP that was causing state readout problems
         - put the cdclk vtables in const data
         - Fix DVO port type for older platforms
         - Fix blankscreen by turning DP++ TMDS output buffers on encoder->shutdown
         - CCS FBs related fixes
         - Fix recursive lock in GuC submission
         - Revert guc_id from i915_request tracepoint
         - Build fix around dmabuf
      
        amdgpu:
         - GPU reset fix
         - Aldebaran fix
         - Yellow Carp fixes
         - DCN2.1 DMCUB fix
         - IOMMU regression fix for Picasso
         - DSC display fixes
         - BPC display calculation fixes
         - Other misc display fixes
         - Don't allow partial copy from user for DC debugfs
         - SRIOV fixes
         - GFX9 CSB pin count fix
         - Various IP version check fixes
         - DP 2.0 fixes
         - Limit DCN1 MPO fix to DCN1
      
        amdkfd:
         - SVM fixes
         - Fix gfx version for renoir
         - Reset fixes
      
        udl:
         - timeout fix
      
        imx:
         - circular locking fix
      
        virtio:
         - NULL ptr deref fix"
      
      * tag 'drm-next-2021-11-12' of git://anongit.freedesktop.org/drm/drm: (126 commits)
        drm/ttm: Double check mem_type of BO while eviction
        drm/amdgpu: add missed support for UVD IP_VERSION(3, 0, 64)
        drm/amdgpu: drop jpeg IP initialization in SRIOV case
        drm/amd/display: reject both non-zero src_x and src_y only for DCN1x
        drm/amd/display: Add callbacks for DMUB HPD IRQ notifications
        drm/amd/display: Don't lock connection_mutex for DMUB HPD
        drm/amd/display: Add comment where CONFIG_DRM_AMD_DC_DCN macro ends
        drm/amdkfd: Fix retry fault drain race conditions
        drm/amdkfd: lower the VAs base offset to 8KB
        drm/amd/display: fix exit from amdgpu_dm_atomic_check() abruptly
        drm/amd/amdgpu: fix the kfd pre_reset sequence in sriov
        drm/amdgpu: fix uvd crash on Polaris12 during driver unloading
        drm/i915/adlp/fb: Prevent the mapping of redundant trailing padding NULL pages
        drm/i915/fb: Fix rounding error in subsampled plane size calculation
        drm/i915/hdmi: Turn DP++ TMDS output buffers back on in encoder->shutdown()
        drm/locking: fix __stack_depot_* name conflict
        drm/virtio: Fix NULL dereference error in virtio_gpu_poll
        drm/amdgpu: fix SI handling in amdgpu_device_asic_has_dc_support()
        drm/amdgpu: Fix dangling kfd_bo pointer for shared BOs
        drm/amd/amdkfd: Don't sent command to HWS on kfd reset
        ...
      304ac803
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · f78e9de8
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
       "Just one new driver (Cypress StreetFighter touchkey), and no input
        core changes this time.
      
        Plus various fixes and enhancements to existing drivers"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (54 commits)
        Input: iforce - fix control-message timeout
        Input: wacom_i2c - use macros for the bit masks
        Input: ili210x - reduce sample period to 15ms
        Input: ili210x - improve polled sample spacing
        Input: ili210x - special case ili251x sample read out
        Input: elantench - fix misreporting trackpoint coordinates
        Input: synaptics-rmi4 - Fix device hierarchy
        Input: i8042 - Add quirk for Fujitsu Lifebook T725
        Input: cap11xx - add support for cap1206
        Input: remove unused header <linux/input/cy8ctmg110_pdata.h>
        Input: ili210x - add ili251x firmware update support
        Input: ili210x - export ili251x version details via sysfs
        Input: ili210x - use resolution from ili251x firmware
        Input: pm8941-pwrkey - respect reboot_mode for warm reset
        reboot: export symbol 'reboot_mode'
        Input: max77693-haptic - drop unneeded MODULE_ALIAS
        Input: cpcap-pwrbutton - do not set input parent explicitly
        Input: max8925_onkey - don't mark comment as kernel-doc
        Input: ads7846 - do not attempt IRQ workaround when deferring probe
        Input: ads7846 - use input_set_capability()
        ...
      f78e9de8
    • Linus Torvalds's avatar
      Merge tag 'rtc-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux · 3b81bf78
      Linus Torvalds authored
      Pull RTC updates from Alexandre Belloni:
       "This includes new ioctls to get and set parameters and in particular
        the backup switch mode that is needed for some RTCs to actually enable
        the backup voltage (and have a useful RTC).
      
        The same interface can also be used to get the actual features
        supported by the RTC so userspace has a better way than trying and
        failing.
      
        Summary:
      
        Subsystem:
         - Add new ioctl to get and set extra RTC parameters, this includes
           backup switch mode
         - Expose available features to userspace, in particular, when alarmas
           have a resolution of one minute instead of a second.
         - Let the core handle those alarms with a minute resolution
      
        New driver:
         - MSTAR MSC313 RTC
      
        Drivers:
         - Add SPI ID table where necessary
         - Add BSM support for rv3028, rv3032 and pcf8523
         - s3c: set RTC range
         - rx8025: set range, implement .set_offset and .read_offset"
      
      * tag 'rtc-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (50 commits)
        rtc: rx8025: use .set_offset/.read_offset
        rtc: rx8025: use rtc_add_group
        rtc: rx8025: clear RTC_FEATURE_ALARM when alarm are not supported
        rtc: rx8025: set range
        rtc: rx8025: let the core handle the alarm resolution
        rtc: rx8025: switch to devm_rtc_allocate_device
        rtc: ab8500: let the core handle the alarm resolution
        rtc: ab-eoz9: support UIE when available
        rtc: ab-eoz9: use RTC_FEATURE_UPDATE_INTERRUPT
        rtc: rv3032: let the core handle the alarm resolution
        rtc: s35390a: let the core handle the alarm resolution
        rtc: handle alarms with a minute resolution
        rtc: pcf85063: silence cppcheck warning
        rtc: rv8803: fix writing back ctrl in flag register
        rtc: s3c: Add time range
        rtc: s3c: Extract read/write IO into separate functions
        rtc: s3c: Remove usage of devm_rtc_device_register()
        rtc: tps80031: Remove driver
        rtc: sun6i: Allow probing without an early clock provider
        rtc: pcf8523: add BSM support
        ...
      3b81bf78
    • Linus Torvalds's avatar
      Merge tag 'libata-5.16-rc1-p2' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata · 204d32ef
      Linus Torvalds authored
      Pull more libata updates from Damien Le Moal:
       "Second round of updates for libata for 5.16:
      
         - Fix READ LOG EXT and READ LOG DMA EXT command timeouts during disk
           revalidation after a resume or a modprobe of the LLDD (me)
      
         - Remove unnecessary error message in sata_highbank driver (Xu)
      
         - Better handling of accesses to the IDENTIFY DEVICE data log for
           drives that do not support this log page (me)
      
         - Fix ahci_shost_attr_group declaration in ahci driver (me)"
      
      * tag 'libata-5.16-rc1-p2' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata:
        libata: libahci: declare ahci_shost_attr_group as static
        libata: add horkage for missing Identify Device log
        ata: sata_highbank: Remove unnecessary print function dev_err()
        libata: fix read log timeout value
      204d32ef
    • Sasha Levin's avatar
      tools/lib/lockdep: drop liblockdep · 7246f4dc
      Sasha Levin authored
      TL;DR: While a tool like liblockdep is useful, it probably doesn't
      belong within the kernel tree.
      
      liblockdep attempts to reuse kernel code both directly (by directly
      building the kernel's lockdep code) as well as indirectly (by using
      sanitized headers). This makes liblockdep an integral part of the
      kernel.
      
      It also makes liblockdep quite unique: while other userspace code might
      use sanitized headers, it generally doesn't attempt to use kernel code
      directly which means that changes on the kernel side of things don't
      affect (and break) it directly.
      
      All our workflows and tooling around liblockdep don't support this
      uniqueness. Changes that go into the kernel code aren't validated to not
      break in-tree userspace code.
      
      liblockdep ended up being very fragile, breaking over and over, to the
      point that living in the same tree as the lockdep code lost most of it's
      value.
      
      liblockdep should continue living in an external tree, syncing with
      the kernel often, in a controllable way...
      7246f4dc
    • Linus Torvalds's avatar
      thermal: int340x: fix build on 32-bit targets · d9c8e52f
      Linus Torvalds authored
      Commit aeb58c86 ("thermal/drivers/int340x: processor_thermal: Suppot
      64 bit RFIM responses") started using 'readq()' to read 64-bit status
      responses from the int340x hardware.
      
      That's all fine and good, but on 32-bit targets a 64-bit 'readq()' is
      ambiguous, since it's no longer an atomic access.  Some hardware might
      require 64-bit accesses, and other hardware might want low word first or
      high word first.
      
      It's quite likely that the driver isn't relevant in a 32-bit environment
      any more, and there's a patch floating around to just make it depend on
      X86_64, but let's make it buildable on x86-32 anyway.
      
      The driver previously just read the low 32 bits, so the hardware
      certainly is ok with 32-bit reads, and in a little-endian environment
      the low word first model is the natural one.
      
      So just add the include for the 'io-64-nonatomic-lo-hi.h' version.
      
      Fixes: aeb58c86
      
       ("thermal/drivers/int340x: processor_thermal: Suppot 64 bit RFIM responses")
      Reported-by: default avatarJakub Kicinski <kuba@kernel.org>
      Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d9c8e52f
  4. Nov 12, 2021