1. Apr 03, 2023
  2. Apr 02, 2023
    • Linus Torvalds's avatar
      Merge tag '6.3-rc4-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6 · f7772da6
      Linus Torvalds authored
      Pull cifs client fixes from Steve French:
       "Four cifs/smb3 client (reconnect and DFS related) fixes, including two
        for stable:
      
         - DFS oops fix
      
         - DFS reconnect recursion fix
      
         - An SMB1 parallel reconnect fix
      
         - Trivial dead code removal in smb2_reconnect"
      
      * tag '6.3-rc4-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: get rid of dead check in smb2_reconnect()
        cifs: prevent infinite recursion in CIFSGetDFSRefer()
        cifs: avoid races in parallel reconnects in smb1
        cifs: fix DFS traversal oops without CONFIG_CIFS_DFS_UPCALL
      f7772da6
    • Linus Torvalds's avatar
      Merge tag 'input-for-v6.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 00c7b5f4
      Linus Torvalds authored
      Pull input fixes from Dmitry Torokhov:
      
       - fixes to ALPS and Focaltech PS/2 drivers dealing with the breakage of
         switching to -funsigned-char
      
       - quirks to i8042 to better handle Lifebook A574/H and TUXEDO devices
      
       - a quirk to Goodix touchscreen driver to handle Yoga Book X90F
      
       - a fix for incorrectly merged patch to xpad game controller driver
      
      * tag 'input-for-v6.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: i8042 - add TUXEDO devices to i8042 quirk tables for partial fix
        Input: alps - fix compatibility with -funsigned-char
        Input: focaltech - use explicitly signed char type
        Input: xpad - fix incorrectly applied patch for MAP_PROFILE_BUTTON
        Input: goodix - add Lenovo Yoga Book X90F to nine_bytes_report DMI table
        Input: i8042 - add quirk for Fujitsu Lifebook A574/H
      00c7b5f4
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v6.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 93e2b017
      Linus Torvalds authored
      Pull pin control fixes from Linus Walleij:
       "Some pin control fixes for the v6.3 series.
      
        The most notable and urgent one is probably the AMD fix which affects
        AMD laptops, found by the Chromium people.
      
        Summary:
      
         - Fix up the Kconfig options for MediaTek MT7981
      
         - Fix the irq domain name in the AT91-PIO4 driver
      
         - Fix some alternative muxing modes in the Ocelot driver
      
         - Allocate the GPIO numbers dynamically in the STM32 driver
      
         - Disable and mask interrupts on resume in the AMD driver
      
         - Fix a typo in the Qualcomm SM8550 pin control device tree bindings"
      
      * tag 'pinctrl-v6.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        dt-bindings: pinctrl: qcom,sm8550-lpass-lpi: allow input-enabled and bias-bus-hold
        pinctrl: amd: Disable and mask interrupts on resume
        pinctrl: stm32: use dynamic allocation of GPIO base
        pinctrl: ocelot: Fix alt mode for ocelot
        pinctrl: at91-pio4: fix domain name assignment
        pinctrl: mediatek: fix naming inconsistency
        pinctrl: mediatek: add missing options to PINCTRL_MT7981
      93e2b017
    • Linus Torvalds's avatar
      Merge tag 'kbuild-fixes-v6.3-2' of... · ce0c2375
      Linus Torvalds authored
      Merge tag 'kbuild-fixes-v6.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild fixes from Masahiro Yamada:
      
       - Fix linux-headers debian package
      
       - Fix a merge_config.sh error due to a misspelled variable
      
       - Fix modversion for 32-bit build machines
      
      * tag 'kbuild-fixes-v6.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        modpost: Fix processing of CRCs on 32-bit build machines
        scripts: merge_config: Fix typo in variable name.
        kbuild: deb-pkg: set version for linux-headers paths
      ce0c2375
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-6.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 92367fdf
      Linus Torvalds authored
      Pull iommu fixes from Joerg Roedel:
      
       - Maintainer update for S390 IOMMU driver
      
       - A fix for the set_platform_dma_ops() call-back in the Exynos
         IOMMU driver
      
       - Intel VT-d fixes from Lu Baolu:
          - Fix a lockdep splat
          - Fix a supplement of the specification
          - Fix a warning in perfmon code
      
      * tag 'iommu-fixes-6.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/vt-d: Fix an IOMMU perfmon warning when CPU hotplug
        iommu/vt-d: Allow zero SAGAW if second-stage not supported
        iommu/vt-d: Remove unnecessary locking in intel_irq_remapping_alloc()
        iommu/exynos: Fix set_platform_dma_ops() callback
        MAINTAINERS: Update s390-iommu driver maintainer information
      92367fdf
  3. Apr 01, 2023
  4. Mar 31, 2023
    • Rafael J. Wysocki's avatar
      Merge branch 'thermal-intel-fixes' · 896c5150
      Rafael J. Wysocki authored
      Merge Intel thermal driver fixes for 6.3-rc5:
      
       - Fix handling of two recently added module parameters in the Intel
         powerclamp thermal driver (David Arcari).
      
       - Fix one more deadlock in the int340x thermal driver (Srinivas
         Pandruvada).
      
      * thermal-intel-fixes:
        thermal: intel: powerclamp: Fix cpumask and max_idle module parameters
        thermal: intel: int340x: processor_thermal: Fix additional deadlock
      896c5150
    • Kan Liang's avatar
      iommu/vt-d: Fix an IOMMU perfmon warning when CPU hotplug · 16812c96
      Kan Liang authored
      A warning can be triggered when hotplug CPU 0.
      $ echo 0 > /sys/devices/system/cpu/cpu0/online
      
       ------------[ cut here ]------------
       Voluntary context switch within RCU read-side critical section!
       WARNING: CPU: 0 PID: 19 at kernel/rcu/tree_plugin.h:318
                rcu_note_context_switch+0x4f4/0x580
       RIP: 0010:rcu_note_context_switch+0x4f4/0x580
       Call Trace:
        <TASK>
        ? perf_event_update_userpage+0x104/0x150
        __schedule+0x8d/0x960
        ? perf_event_set_state.part.82+0x11/0x50
        schedule+0x44/0xb0
        schedule_timeout+0x226/0x310
        ? __perf_event_disable+0x64/0x1a0
        ? _raw_spin_unlock+0x14/0x30
        wait_for_completion+0x94/0x130
        __wait_rcu_gp+0x108/0x130
        synchronize_rcu+0x67/0x70
        ? invoke_rcu_core+0xb0/0xb0
        ? __bpf_trace_rcu_stall_warning+0x10/0x10
        perf_pmu_migrate_context+0x121/0x370
        iommu_pmu_cpu_offline+0x6a/0xa0
        ? iommu_pmu_del+0x1e0/0x1e0
        cpuhp_invoke_callback+0x129/0x510
        cpuhp_thread_fun+0x94/0x150
        smpboot_thread_fn+0x183/0x220
        ? sort_range+0x20/0x20
        kthread+0xe6/0x110
        ? kthread_complete_and_exit+0x20/0x20
        ret_from_fork+0x1f/0x30
        </TASK>
       ---[ end trace 0000000000000000 ]---
      
      The synchronize_rcu() will be invoked in the perf_pmu_migrate_context(),
      when migrating a PMU to a new CPU. However, the current for_each_iommu()
      is within RCU read-side critical section.
      
      Two methods were considered to fix the issue.
      - Use the dmar_global_lock to replace the RCU read lock when going
        through the drhd list. But it triggers a lockdep warning.
      - Use the cpuhp_setup_state_multi() to set up a dedicated state for each
        IOMMU PMU. The lock can be avoided.
      
      The latter method is implemented in this patch. Since each IOMMU PMU has
      a dedicated state, add cpuhp_node and cpu in struct iommu_pmu to track
      the state. The state can be dynamically allocated now. Remove the
      CPUHP_AP_PERF_X86_IOMMU_PERF_ONLINE.
      
      Fixes: 46284c6c
      
       ("iommu/vt-d: Support cpumask for IOMMU perfmon")
      Reported-by: default avatarAmmy Yi <ammy.yi@intel.com>
      Signed-off-by: default avatarKan Liang <kan.liang@linux.intel.com>
      Link: https://lore.kernel.org/r/20230328182028.1366416-1-kan.liang@linux.intel.com
      
      
      Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Link: https://lore.kernel.org/r/20230329134721.469447-4-baolu.lu@linux.intel.com
      
      
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      16812c96
    • Lu Baolu's avatar
      iommu/vt-d: Allow zero SAGAW if second-stage not supported · bfd3c6b9
      Lu Baolu authored
      The VT-d spec states (in section 11.4.2) that hardware implementations
      reporting second-stage translation support (SSTS) field as Clear also
      report the SAGAW field as 0. Fix an inappropriate check in alloc_iommu().
      
      Fixes: 792fb43c
      
       ("iommu/vt-d: Enable Intel IOMMU scalable mode by default")
      Suggested-by: default avatarRaghunathan Srinivasan <raghunathan.srinivasan@intel.com>
      Reviewed-by: default avatarKevin Tian <kevin.tian@intel.com>
      Signed-off-by: default avatarJacob Pan <jacob.jun.pan@linux.intel.com>
      Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Link: https://lore.kernel.org/r/20230318024824.124542-1-baolu.lu@linux.intel.com
      Link: https://lore.kernel.org/r/20230329134721.469447-3-baolu.lu@linux.intel.com
      
      
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      bfd3c6b9
    • Lu Baolu's avatar
      iommu/vt-d: Remove unnecessary locking in intel_irq_remapping_alloc() · c7d62452
      Lu Baolu authored
      The global rwsem dmar_global_lock was introduced by commit 3a5670e8
      ("iommu/vt-d: Introduce a rwsem to protect global data structures"). It
      is used to protect DMAR related global data from DMAR hotplug operations.
      
      Using dmar_global_lock in intel_irq_remapping_alloc() is unnecessary as
      the DMAR global data structures are not touched there. Remove it to avoid
      below lockdep warning.
      
       ======================================================
       WARNING: possible circular locking dependency detected
       6.3.0-rc2 #468 Not tainted
       ------------------------------------------------------
       swapper/0/1 is trying to acquire lock:
       ff1db4cb40178698 (&domain->mutex){+.+.}-{3:3},
         at: __irq_domain_alloc_irqs+0x3b/0xa0
      
       but task is already holding lock:
       ffffffffa0c1cdf0 (dmar_global_lock){++++}-{3:3},
         at: intel_iommu_init+0x58e/0x880
      
       which lock already depends on the new lock.
      
       the existing dependency chain (in reverse order) is:
      
       -> #1 (dmar_global_lock){++++}-{3:3}:
              lock_acquire+0xd6/0x320
              down_read+0x42/0x180
              intel_irq_remapping_alloc+0xad/0x750
              mp_irqdomain_alloc+0xb8/0x2b0
              irq_domain_alloc_irqs_locked+0x12f/0x2d0
              __irq_domain_alloc_irqs+0x56/0xa0
              alloc_isa_irq_from_domain.isra.7+0xa0/0xe0
              mp_map_pin_to_irq+0x1dc/0x330
              setup_IO_APIC+0x128/0x210
              apic_intr_mode_init+0x67/0x110
              x86_late_time_init+0x24/0x40
              start_kernel+0x41e/0x7e0
              secondary_startup_64_no_verify+0xe0/0xeb
      
       -> #0 (&domain->mutex){+.+.}-{3:3}:
              check_prevs_add+0x160/0xef0
              __lock_acquire+0x147d/0x1950
              lock_acquire+0xd6/0x320
              __mutex_lock+0x9c/0xfc0
              __irq_domain_alloc_irqs+0x3b/0xa0
              dmar_alloc_hwirq+0x9e/0x120
              iommu_pmu_register+0x11d/0x200
              intel_iommu_init+0x5de/0x880
              pci_iommu_init+0x12/0x40
              do_one_initcall+0x65/0x350
              kernel_init_freeable+0x3ca/0x610
              kernel_init+0x1a/0x140
              ret_from_fork+0x29/0x50
      
       other info that might help us debug this:
      
       Possible unsafe locking scenario:
      
              CPU0                    CPU1
              ----                    ----
         lock(dmar_global_lock);
                                      lock(&domain->mutex);
                                      lock(dmar_global_lock);
         lock(&domain->mutex);
      
                      *** DEADLOCK ***
      
      Fixes: 9dbb8e34
      
       ("irqdomain: Switch to per-domain locking")
      Reviewed-by: default avatarJacob Pan <jacob.jun.pan@linux.intel.com>
      Tested-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Link: https://lore.kernel.org/r/20230314051836.23817-1-baolu.lu@linux.intel.com
      Link: https://lore.kernel.org/r/20230329134721.469447-2-baolu.lu@linux.intel.com
      
      
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      c7d62452