1. 31 May, 2022 4 commits
    • Eli Cohen's avatar
      net/vdpa: Use readers/writers semaphore instead of cf_mutex · a6a51adc
      Eli Cohen authored
      Replace cf_mutex with rw_semaphore to reflect the fact that some calls
      could be called concurrently but can suffice with read lock.
      Suggested-by: default avatarSi-Wei Liu <si-wei.liu@oracle.com>
      Signed-off-by: default avatarEli Cohen <elic@nvidia.com>
      Message-Id: <20220518133804.1075129-5-elic@nvidia.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      a6a51adc
    • Eli Cohen's avatar
      net/vdpa: Use readers/writers semaphore instead of vdpa_dev_mutex · 0078ad90
      Eli Cohen authored
      Use rw_semaphore instead of mutex to control access to vdpa devices.
      This can be especially beneficial in case processes poll on statistics
      information.
      Suggested-by: default avatarSi-Wei Liu <si-wei.liu@oracle.com>
      Reviewed-by: default avatarSi-Wei Liu <si-wei.liu@oracle.com>
      Acked-by: default avatarJason Wang <jasowang@redhat.com>
      Signed-off-by: default avatarEli Cohen <elic@nvidia.com>
      Message-Id: <20220518133804.1075129-4-elic@nvidia.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      0078ad90
    • Eli Cohen's avatar
      vdpa: Add support for querying vendor statistics · 13b00b13
      Eli Cohen authored
      Allows to read vendor statistics of a vdpa device. The specific
      statistics data are received from the upstream driver in the form of an
      (attribute name, attribute value) pairs.
      
      An example of statistics for mlx5_vdpa device are:
      
      received_desc - number of descriptors received by the virtqueue
      completed_desc - number of descriptors completed by the virtqueue
      
      A descriptor using indirect buffers is still counted as 1. In addition,
      N chained descriptors are counted correctly N times as one would expect.
      
      A new callback was added to vdpa_config_ops which provides the means for
      the vdpa driver to return statistics results.
      
      The interface allows for reading all the supported virtqueues, including
      the control virtqueue if it exists.
      
      Below are some examples taken from mlx5_vdpa which are introduced in the
      following patch:
      
      1. Read statistics for the virtqueue at index 1
      
      $ vdpa dev vstats show vdpa-a qidx 1
      vdpa-a:
      queue_type tx queue_index 1 received_desc 3844836 completed_desc 3844836
      
      2. Read statistics for the virtqueue at index 32
      $ vdpa dev vstats show vdpa-a qidx 32
      vdpa-a:
      queue_type control_vq queue_index 32 received_desc 62 completed_desc 62
      
      3. Read statisitics for the virtqueue at index 0 with json output
      $ vdpa -j dev vstats show vdpa-a qidx 0
      {"vstats":{"vdpa-a":{
      "queue_type":"rx","queue_index":0,"name":"received_desc","value":417776,\
       "name":"completed_desc","value":417548}}}
      
      4. Read statistics for the virtqueue at index 0 with preety json output
      $ vdpa -jp dev vstats show vdpa-a qidx 0
      {
          "vstats": {
              "vdpa-a": {
      
                  "queue_type": "rx",
                  "queue_index": 0,
                  "name": "received_desc",
                  "value": 417776,
                  "name": "completed_desc",
                  "value": 417548
              }
          }
      }
      Signed-off-by: default avatarEli Cohen <elic@nvidia.com>
      Message-Id: <20220518133804.1075129-3-elic@nvidia.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      13b00b13
    • Eli Cohen's avatar
      vdpa: Fix error logic in vdpa_nl_cmd_dev_get_doit · 7a6691f1
      Eli Cohen authored
      In vdpa_nl_cmd_dev_get_doit(), if the call to genlmsg_reply() fails we
      must not call nlmsg_free() since this is done inside genlmsg_reply().
      
      Fix it.
      
      Fixes: bc0d90ee ("vdpa: Enable user to query vdpa device info")
      Reviewed-by: default avatarSi-Wei Liu <si-wei.liu@oracle.com>
      Acked-by: default avatarJason Wang <jasowang@redhat.com>
      Signed-off-by: default avatarEli Cohen <elic@nvidia.com>
      Message-Id: <20220518133804.1075129-2-elic@nvidia.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      7a6691f1
  2. 30 May, 2022 17 commits
    • Linus Torvalds's avatar
      Merge tag 'for-5.19/fbdev-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev · 8ab2afa2
      Linus Torvalds authored
      Pull fbdev fixes and updates from Helge Deller:
       "A buch of small fixes and cleanups, including:
      
         - vesafb: Fix a use-after-free due early fb_info cleanup
      
         - clcdfb: Fix refcount leak in clcdfb_of_vram_setup
      
         - hyperv_fb: Allow resolutions with size > 64 MB for Gen1
      
         - pxa3xx-gcu: release the resources correctly in
           pxa3xx_gcu_probe/remove()
      
         - omapfb: Prevent compiler warning regarding
           hwa742_update_window_async()"
      
      * tag 'for-5.19/fbdev-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev:
        video: fbdev: omap: Add prototype for hwa742_update_window_async()
        video: fbdev: vesafb: Fix a use-after-free due early fb_info cleanup
        video: fbdev: radeon: Fix spelling typo in comment
        video: fbdev: xen: remove setting of 'transp' parameter
        video: fbdev: pxa3xx-gcu: release the resources correctly in pxa3xx_gcu_probe/remove()
        video: fbdev: omapfb: simplify the return expression of nec_8048_connect()
        video: fbdev: omapfb: simplify the return expression of dsi_init_pll_data()
        video: fbdev: clcdfb: Fix refcount leak in clcdfb_of_vram_setup
        video: fbdev: hyperv_fb: Allow resolutions with size > 64 MB for Gen1
      8ab2afa2
    • Linus Torvalds's avatar
      Merge tag 'for-5.19/parisc-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · e11a9356
      Linus Torvalds authored
      Pull parisc architecture updates from Helge Deller:
       "Minor cleanups and code optimizations, e.g.:
      
         - improvements in assembly statements in the tmpalias code path
      
         - added some additionals compile time checks
      
         - drop some unneccesary assembler DMA syncs"
      
      * tag 'for-5.19/parisc-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Drop __ARCH_WANT_OLD_READDIR and __ARCH_WANT_SYS_OLDUMOUNT
        parisc: Optimize tmpalias function calls
        parisc: Add dep_safe() macro to deposit a register in 32- and 64-kernels
        parisc: Fix wrong comment for shr macro
        parisc: Prevent ldil() to sign-extend into upper 32 bits
        parisc: Don't hardcode assembler bit definitions in tmpalias code
        parisc: Don't enforce DMA completion order in cache flushes
        parisc: video: fbdev: stifb: Add sti_dump_font() to dump STI font
      e11a9356
    • Linus Torvalds's avatar
      Merge tag 'pm-5.19-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 1ff7bc3b
      Linus Torvalds authored
      Pull more power management updates from Rafael Wysocki:
       "These update the ARM cpufreq drivers and fix up the CPPC cpufreq
        driver after recent changes, update the OPP code and PM documentation
        and add power sequences support to the system reboot and power off
        code.
      
        Specifics:
      
         - Add Tegra234 cpufreq support (Sumit Gupta)
      
         - Clean up and enhance the Mediatek cpufreq driver (Wan Jiabing,
           Rex-BC Chen, and Jia-Wei Chang)
      
         - Fix up the CPPC cpufreq driver after recent changes (Zheng Bin,
           Pierre Gondois)
      
         - Minor update to dt-binding for Qcom's opp-v2-kryo-cpu (Yassine
           Oudjana)
      
         - Use list iterator only inside the list_for_each_entry loop
           (Xiaomeng Tong, and Jakob Koschel)
      
         - New APIs related to finding OPP based on interconnect bandwidth
           (Krzysztof Kozlowski)
      
         - Fix the missing of_node_put() in _bandwidth_supported() (Dan
           Carpenter)
      
         - Cleanups (Krzysztof Kozlowski, and Viresh Kumar)
      
         - Add Out of Band mode description to the intel-speed-select utility
           documentation (Srinivas Pandruvada)
      
         - Add power sequences support to the system reboot and power off code
           and make related platform-specific changes for multiple platforms
           (Dmitry Osipenko, Geert Uytterhoeven)"
      
      * tag 'pm-5.19-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (60 commits)
        cpufreq: CPPC: Fix unused-function warning
        cpufreq: CPPC: Fix build error without CONFIG_ACPI_CPPC_CPUFREQ_FIE
        Documentation: admin-guide: PM: Add Out of Band mode
        kernel/reboot: Change registration order of legacy power-off handler
        m68k: virt: Switch to new sys-off handler API
        kernel/reboot: Add devm_register_restart_handler()
        kernel/reboot: Add devm_register_power_off_handler()
        soc/tegra: pmc: Use sys-off handler API to power off Nexus 7 properly
        reboot: Remove pm_power_off_prepare()
        regulator: pfuze100: Use devm_register_sys_off_handler()
        ACPI: power: Switch to sys-off handler API
        memory: emif: Use kernel_can_power_off()
        mips: Use do_kernel_power_off()
        ia64: Use do_kernel_power_off()
        x86: Use do_kernel_power_off()
        sh: Use do_kernel_power_off()
        m68k: Switch to new sys-off handler API
        powerpc: Use do_kernel_power_off()
        xen/x86: Use do_kernel_power_off()
        parisc: Use do_kernel_power_off()
        ...
      1ff7bc3b
    • Linus Torvalds's avatar
      Merge tag 'thermal-5.19-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 32665a9e
      Linus Torvalds authored
      Pull additional thermal control update from Rafael Wysocki:
       "Add Meteor Lake PCI device ID to the int340x thermal control driver
        (Sumeet Pawnikar)"
      
      * tag 'thermal-5.19-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        thermal: int340x: Add Meteor Lake PCI device ID
      32665a9e
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.19-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 527953ef
      Linus Torvalds authored
      Pull more ACPI updates from Rafael Wysocki:
       "These add some new device IDs, update a few drivers (processor,
        battery, backlight) and clean up code in a few places.
      
        Specifics:
      
         - Add Meteor Lake ACPI IDs for DPTF devices (Sumeet Pawnikar)
      
         - Rearrange find_child_checks() to simplify code (Rafael Wysocki)
      
         - Use memremap() to map the UCSI mailbox that is always in main
           memory and drop acpi_release_memory() that has no more users
           (Heikki Krogerus, Dan Carpenter)
      
         - Make max_cstate/nocst/bm_check_disable processor module parameters
           visible in sysfs (Yajun Deng)
      
         - Fix typo in the CPPC driver (Julia Lawall)
      
         - Make the ACPI battery driver show the "not-charging" status by
           default unless "charging" or "full" is directly indicated (Werner
           Sembach)
      
         - Improve the PM notifier in the ACPI backlight driver (Zhang Rui)
      
         - Clean up some white space in the ACPI code (Ian Cowan)"
      
      * tag 'acpi-5.19-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        usb: typec: ucsi: acpi: fix a NULL vs IS_ERR() check in probe
        ACPI: DPTF: Support Meteor Lake
        ACPI: CPPC: fix typo in comment
        ACPI: video: improve PM notifer callback
        ACPI: clean up white space in a few places for consistency
        ACPI: glue: Rearrange find_child_checks()
        ACPI: processor: idle: Expose max_cstate/nocst/bm_check_disable read-only in sysfs
        ACPI: battery: Make "not-charging" the default on no charging or full info
        ACPI: OSL: Remove the helper for deactivating memory region
        usb: typec: ucsi: acpi: Map the mailbox with memremap()
      527953ef
    • Linus Torvalds's avatar
      Merge tag 'ovl-update-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs · 2c5ca23f
      Linus Torvalds authored
      Pull overlayfs updates from Miklos Szeredi:
      
       - Support idmapped layers in overlayfs (Christian Brauner)
      
       - Add a fix to exportfs that is relevant to open_by_handle_at(2) as
         well
      
       - Introduce new lookup helpers that allow passing mnt_userns into
         inode_permission()
      
      * tag 'ovl-update-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
        ovl: support idmapped layers
        ovl: handle idmappings in ovl_xattr_{g,s}et()
        ovl: handle idmappings in layer open helpers
        ovl: handle idmappings in ovl_permission()
        ovl: use ovl_copy_{real,upper}attr() wrappers
        ovl: store lower path in ovl_inode
        ovl: handle idmappings for layer lookup
        ovl: handle idmappings for layer fileattrs
        ovl: use ovl_path_getxattr() wrapper
        ovl: use ovl_lookup_upper() wrapper
        ovl: use ovl_do_notify_change() wrapper
        ovl: pass layer mnt to ovl_open_realfile()
        ovl: pass ofs to setattr operations
        ovl: handle idmappings in creation operations
        ovl: add ovl_upper_mnt_userns() wrapper
        ovl: pass ofs to creation operations
        ovl: use wrappers to all vfs_*xattr() calls
        exportfs: support idmapped mounts
        fs: add two trivial lookup helpers
      2c5ca23f
    • Linus Torvalds's avatar
      Merge tag 'mips_5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 73d15ba6
      Linus Torvalds authored
      Pull MIPS updates from Thomas Bogendoerfer:
       "Cleanups and fixes"
      
      * tag 'mips_5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (38 commits)
        MIPS: RALINK: Define pci_remap_iospace under CONFIG_PCI_DRIVERS_GENERIC
        MIPS: Use memblock_add_node() in early_parse_mem() under CONFIG_NUMA
        MIPS: Return -EINVAL if mem parameter is empty in early_parse_mem()
        MIPS: Kconfig: Fix indentation and add endif comment
        MIPS: bmips: Fix compiler warning observed on W=1 build
        MIPS: Rewrite `csum_tcpudp_nofold' in plain C
        mips: setup: use strscpy to replace strlcpy
        MIPS: Octeon: add SNIC10E board
        MIPS: Ingenic: Refresh defconfig for CU1000-Neo and CU1830-Neo.
        MIPS: Ingenic: Refresh device tree for Ingenic SoCs and boards.
        MIPS: Ingenic: Add PWM nodes for X1830.
        MIPS: Octeon: fix typo in comment
        MIPS: loongson32: Kconfig: Remove extra space
        MIPS: Sibyte: remove unnecessary return variable
        MIPS: Use NOKPROBE_SYMBOL() instead of __kprobes annotation
        selftests/ftrace: Save kprobe_events to test log
        MIPS: tools: no need to initialise statics to 0
        MIPS: Loongson: Use hwmon_device_register_with_groups() to register hwmon
        MIPS: VR41xx: Drop redundant spinlock initialization
        MIPS: smp: optimization for flush_tlb_mm when exiting
        ...
      73d15ba6
    • Linus Torvalds's avatar
      Merge tag 'm68knommu-for-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 2d2da475
      Linus Torvalds authored
      Pull m68knommu updates from Greg Ungerer:
       "A collection of changes to add elf-fdpic loader support for m68k.
      
        Also a collection of various fixes. They include typo corrections,
        undefined symbol compilation fixes, removal of the ISA_DMA_API support
        and removal of unused code.
      
        Summary:
      
         - correctly set up ZERO_PAGE pointer
      
         - drop ISA_DMA_API support
      
         - fix comment typos
      
         - fixes for undefined symbols
      
         - remove unused code and variables
      
         - elf-fdpic loader support for m68k"
      
      * tag 'm68knommu-for-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68knommu: fix 68000 CPU link with no platform selected
        m68k: removed unused "mach_get_ss"
        m68knommu: fix undefined reference to `mach_get_rtc_pll'
        m68knommu: fix undefined reference to `_init_sp'
        m68knommu: allow elf_fdpic loader to be selected
        m68knommu: add definitions to support elf_fdpic program loader
        m68knommu: implement minimal regset support
        m68knommu: use asm-generic/mmu.h for nommu setups
        m68k: fix typos in comments
        m68k: coldfire: drop ISA_DMA_API support
        m68knommu: set ZERO_PAGE() to the allocated zeroed page
      2d2da475
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-battery', 'acpi-video' and 'acpi-misc' · 4a577fca
      Rafael J. Wysocki authored
      Merge ACPI battery and backlight driver update and miscellaneous
      cleanup for 5.19-rc1:
      
       - Make the ACPI battery driver show the "not-charging" status by
         default unless "charging" or "full" is directly indicated (Werner
         Sembach).
      
       - Improve the PM notifier in the ACPI backlight driver (Zhang Rui).
      
       - Clean up some white space in the ACPI code (Ian Cowan).
      
      * acpi-battery:
        ACPI: battery: Make "not-charging" the default on no charging or full info
      
      * acpi-video:
        ACPI: video: improve PM notifer callback
      
      * acpi-misc:
        ACPI: clean up white space in a few places for consistency
      4a577fca
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-glue', 'acpi-osl', 'acpi-processor' and 'acpi-cppc' · 15f4bb9a
      Rafael J. Wysocki authored
      Merge general ACPI cleanups and processor support updates for 5.19-rc1:
      
       - Rearrange find_child_checks() to simplify code (Rafael Wysocki).
      
       - Use memremap() to map the UCSI mailbox that is always in main memory
         and drop acpi_release_memory() that has no more users (Heikki
         Krogerus, Dan Carpenter).
      
       - Make max_cstate/nocst/bm_check_disable processor module parameters
         visible in sysfs (Yajun Deng).
      
       - Fix typo in the CPPC driver (Julia Lawall).
      
      * acpi-glue:
        ACPI: glue: Rearrange find_child_checks()
      
      * acpi-osl:
        usb: typec: ucsi: acpi: fix a NULL vs IS_ERR() check in probe
        ACPI: OSL: Remove the helper for deactivating memory region
        usb: typec: ucsi: acpi: Map the mailbox with memremap()
      
      * acpi-processor:
        ACPI: processor: idle: Expose max_cstate/nocst/bm_check_disable read-only in sysfs
      
      * acpi-cppc:
        ACPI: CPPC: fix typo in comment
      15f4bb9a
    • Dan Carpenter's avatar
      usb: typec: ucsi: acpi: fix a NULL vs IS_ERR() check in probe · a9face89
      Dan Carpenter authored
      The devm_memremap() function never returns NULL.  It returns error
      pointers.
      
      Fixes: cdc3d2ab ("usb: typec: ucsi: acpi: Map the mailbox with memremap()")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Reviewed-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
      Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      a9face89
    • Helge Deller's avatar
      parisc: Drop __ARCH_WANT_OLD_READDIR and __ARCH_WANT_SYS_OLDUMOUNT · 72acadfe
      Helge Deller authored
      Those old syscalls aren't exported via our syscall table, so just drop
      them.
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      72acadfe
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-sysoff' · 9f9c1f68
      Rafael J. Wysocki authored
      Merge system power off handling rework from Dmitry Osipenko for
      5.19-rc1.
      
      This introduces a mechanism allowing power sequences to be used for
      powering off the system and makes related changes in platform-specific
      code for multiple platforms.
      
      * pm-sysoff: (29 commits)
        kernel/reboot: Change registration order of legacy power-off handler
        m68k: virt: Switch to new sys-off handler API
        kernel/reboot: Add devm_register_restart_handler()
        kernel/reboot: Add devm_register_power_off_handler()
        soc/tegra: pmc: Use sys-off handler API to power off Nexus 7 properly
        reboot: Remove pm_power_off_prepare()
        regulator: pfuze100: Use devm_register_sys_off_handler()
        ACPI: power: Switch to sys-off handler API
        memory: emif: Use kernel_can_power_off()
        mips: Use do_kernel_power_off()
        ia64: Use do_kernel_power_off()
        x86: Use do_kernel_power_off()
        sh: Use do_kernel_power_off()
        m68k: Switch to new sys-off handler API
        powerpc: Use do_kernel_power_off()
        xen/x86: Use do_kernel_power_off()
        parisc: Use do_kernel_power_off()
        arm64: Use do_kernel_power_off()
        riscv: Use do_kernel_power_off()
        csky: Use do_kernel_power_off()
        ...
      9f9c1f68
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-docs' · 1cdc5ba0
      Rafael J. Wysocki authored
      Merge PM documentation update for 5.19-rc1.
      
      * pm-docs:
        Documentation: admin-guide: PM: Add Out of Band mode
      1cdc5ba0
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-opp' · 22ffff6d
      Rafael J. Wysocki authored
      Merge OPP (Operating Performance Points) changes for 5.19-rc1:
      
       - Minor update to dt-binding for Qcom's opp-v2-kryo-cpu (Yassine
         Oudjana).
      
       - Use list iterator only inside the list_for_each_entry loop (Xiaomeng
         Tong, and Jakob Koschel).
      
       - New APIs related to finding OPP based on interconnect bandwidth
         (Krzysztof Kozlowski).
      
       - Fix the missing of_node_put() in _bandwidth_supported() (Dan
         Carpenter).
      
       - Cleanups (Krzysztof Kozlowski, and Viresh Kumar).
      
      * pm-opp:
        opp: Reorder definition of ceil/floor helpers
        opp: Add apis to retrieve opps with interconnect bandwidth
        dt-bindings: opp: opp-v2-kryo-cpu: Remove SMEM
        opp: use list iterator only inside the loop
        opp: replace usage of found with dedicated list iterator variable
        PM: opp: simplify with dev_err_probe()
        OPP: call of_node_put() on error path in _bandwidth_supported()
      22ffff6d
    • Pierre Gondois's avatar
      cpufreq: CPPC: Fix unused-function warning · da436345
      Pierre Gondois authored
      Building the cppc_cpufreq driver with for arm64 with
      CONFIG_ENERGY_MODEL=n triggers the following warnings:
       drivers/cpufreq/cppc_cpufreq.c:550:12: error: ‘cppc_get_cpu_cost’ defined but not used
      [-Werror=unused-function]
         550 | static int cppc_get_cpu_cost(struct device *cpu_dev, unsigned long KHz,
             |            ^~~~~~~~~~~~~~~~~
       drivers/cpufreq/cppc_cpufreq.c:481:12: error: ‘cppc_get_cpu_power’ defined but not used
      [-Werror=unused-function]
         481 | static int cppc_get_cpu_power(struct device *cpu_dev,
             |            ^~~~~~~~~~~~~~~~~~
      
      Move the Energy Model related functions into specific guards.
      This allows to fix the warning and prevent doing extra work
      when the Energy Model is not present.
      
      Fixes: 740fcdc2 ("cpufreq: CPPC: Register EM based on efficiency class information")
      Reported-by: default avatarShaokun Zhang <zhangshaokun@hisilicon.com>
      Signed-off-by: default avatarPierre Gondois <pierre.gondois@arm.com>
      Tested-by: default avatarShaokun Zhang <zhangshaokun@hisilicon.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      da436345
    • Zheng Bin's avatar
      cpufreq: CPPC: Fix build error without CONFIG_ACPI_CPPC_CPUFREQ_FIE · a3f083e0
      Zheng Bin authored
      If CONFIG_ACPI_CPPC_CPUFREQ_FIE is not set, building fails:
      
      drivers/cpufreq/cppc_cpufreq.c: In function ‘populate_efficiency_class’:
      drivers/cpufreq/cppc_cpufreq.c:584:2: error: ‘cppc_cpufreq_driver’ undeclared (first use in this function); did you mean ‘cpufreq_driver’?
        cppc_cpufreq_driver.register_em = cppc_cpufreq_register_em;
        ^~~~~~~~~~~~~~~~~~~
        cpufreq_driver
      
      Make declare of cppc_cpufreq_driver out of CONFIG_ACPI_CPPC_CPUFREQ_FIE
      to fix this.
      
      Fixes: 740fcdc2 ("cpufreq: CPPC: Register EM based on efficiency class information")
      Signed-off-by: default avatarZheng Bin <zhengbin13@huawei.com>
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      a3f083e0
  3. 29 May, 2022 5 commits
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine · b00ed48b
      Linus Torvalds authored
      Pull dmaengine updates from Vinod Koul:
       "Nothing special, this includes a couple of new device support and new
        driver support and bunch of driver updates.
      
        New support:
      
         - Tegra gpcdma driver support
      
         - Qualcomm SM8350, Sm8450 and SC7280 device support
      
         - Renesas RZN1 dma and platform support
      
        Updates:
      
         - stm32 device pause/resume support and updates
      
         - DMA memset ops Documentation and usage clarification
      
         - deprecate '#dma-channels' & '#dma-requests' bindings
      
         - driver updates for stm32, ptdma idsx etc"
      
      * tag 'dmaengine-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine: (87 commits)
        dmaengine: idxd: make idxd_wq_enable() return 0 if wq is already enabled
        dmaengine: sun6i: Add support for the D1 variant
        dmaengine: sun6i: Add support for 34-bit physical addresses
        dmaengine: sun6i: Do not use virt_to_phys
        dt-bindings: dma: sun50i-a64: Add compatible for D1
        dmaengine: tegra: Remove unused switch case
        dmaengine: tegra: Fix uninitialized variable usage
        dmaengine: stm32-dma: add device_pause/device_resume support
        dmaengine: stm32-dma: rename pm ops before dma pause/resume introduction
        dmaengine: stm32-dma: pass DMA_SxSCR value to stm32_dma_handle_chan_done()
        dmaengine: stm32-dma: introduce stm32_dma_sg_inc to manage chan->next_sg
        dmaengine: stm32-dmamux: avoid reset of dmamux if used by coprocessor
        dmaengine: qcom: gpi: Add support for sc7280
        dt-bindings: dma: pl330: Add power-domains
        dmaengine: stm32-mdma: use dev_dbg on non-busy channel spurious it
        dmaengine: stm32-mdma: fix chan initialization in stm32_mdma_irq_handler()
        dmaengine: stm32-mdma: remove GISR1 register
        dmaengine: ti: deprecate '#dma-channels'
        dmaengine: mmp: deprecate '#dma-channels'
        dmaengine: pxa: deprecate '#dma-channels' and '#dma-requests'
        ...
      b00ed48b
    • Linus Torvalds's avatar
      Merge tag 'trace-tools-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · c3a9a3c5
      Linus Torvalds authored
      Pull tracing tool updates from Steven Rostedt:
      
       - Various clean ups and fixes to rtla (Real Time Linux Analysis)
      
      * tag 'trace-tools-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        rtla: Remove procps-ng dependency
        rtla: Fix __set_sched_attr error message
        rtla: Minor grammar fix for rtla README
        rtla: Don't overwrite existing directory mode
        rtla: Avoid record NULL pointer dereference
        rtla/Makefile: Properly handle dependencies
      c3a9a3c5
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 76bfd3de
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
       "The majority of the changes are for fixes and clean ups.
      
        Notable changes:
      
         - Rework trace event triggers code to be easier to interact with.
      
         - Support for embedding bootconfig with the kernel (as suppose to
           having it embedded in initram). This is useful for embedded boards
           without initram disks.
      
         - Speed up boot by parallelizing the creation of tracefs files.
      
         - Allow absolute ring buffer timestamps handle timestamps that use
           more than 59 bits.
      
         - Added new tracing clock "TAI" (International Atomic Time)
      
         - Have weak functions show up in available_filter_function list as:
           __ftrace_invalid_address___<invalid-offset> instead of using the
           name of the function before it"
      
      * tag 'trace-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (52 commits)
        ftrace: Add FTRACE_MCOUNT_MAX_OFFSET to avoid adding weak function
        tracing: Fix comments for event_trigger_separate_filter()
        x86/traceponit: Fix comment about irq vector tracepoints
        x86,tracing: Remove unused headers
        ftrace: Clean up hash direct_functions on register failures
        tracing: Fix comments of create_filter()
        tracing: Disable kcov on trace_preemptirq.c
        tracing: Initialize integer variable to prevent garbage return value
        ftrace: Fix typo in comment
        ftrace: Remove return value of ftrace_arch_modify_*()
        tracing: Cleanup code by removing init "char *name"
        tracing: Change "char *" string form to "char []"
        tracing/timerlat: Do not wakeup the thread if the trace stops at the IRQ
        tracing/timerlat: Print stacktrace in the IRQ handler if needed
        tracing/timerlat: Notify IRQ new max latency only if stop tracing is set
        kprobes: Fix build errors with CONFIG_KRETPROBES=n
        tracing: Fix return value of trace_pid_write()
        tracing: Fix potential double free in create_var_ref()
        tracing: Use strim() to remove whitespace instead of doing it manually
        ftrace: Deal with error return code of the ftrace_process_locs() function
        ...
      76bfd3de
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v5.19-2022-05-28' of... · 09f73a1a
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v5.19-2022-05-28' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull more perf tools updates from Arnaldo Carvalho de Melo:
      
       - Add BPF based off-CPU profiling
      
       - Improvements for system wide recording, specially for Intel PT
      
       - Improve DWARF unwinding on arm64
      
       - Support Arm CoreSight trace data disassembly in 'perf script' python
      
       - Fix build with new libbpf version, related to supporting older
         versions of distro released libbpf packages
      
       - Fix event syntax error caused by ExtSel in the JSON events infra
      
       - Use stdio interface if slang is not supported in 'perf c2c'
      
       - Add 'perf test' checking for perf stat CSV output
      
       - Sync the msr-index.h copy with the kernel sources
      
      * tag 'perf-tools-for-v5.19-2022-05-28' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (38 commits)
        tools arch x86: Sync the msr-index.h copy with the kernel sources
        perf scripts python: Support Arm CoreSight trace data disassembly
        perf scripting python: Expose dso and map information
        perf jevents: Fix event syntax error caused by ExtSel
        perf tools arm64: Add support for VG register
        perf unwind arm64: Decouple Libunwind register names from Perf
        perf unwind: Use dynamic register set for DWARF unwind
        perf tools arm64: Copy perf_regs.h from the kernel
        perf unwind arm64: Use perf's copy of kernel headers
        perf c2c: Use stdio interface if slang is not supported
        perf test: Add a basic offcpu profiling test
        perf record: Add cgroup support for off-cpu profiling
        perf record: Handle argument change in sched_switch
        perf record: Implement basic filtering for off-cpu
        perf record: Enable off-cpu analysis with BPF
        perf report: Do not extend sample type of bpf-output event
        perf test: Add checking for perf stat CSV output.
        perf tools: Allow system-wide events to keep their own threads
        perf tools: Allow system-wide events to keep their own CPUs
        libperf evsel: Add comments for booleans
        ...
      09f73a1a
    • Helge Deller's avatar
      video: fbdev: omap: Add prototype for hwa742_update_window_async() · 79b66128
      Helge Deller authored
      The symbol hwa742_update_window_async() is exported, but there is no
      prototype defined for it. That's why gcc complains:
      
      drivers-video-fbdev-omap-hwa742.c:warning:no-previous-prototype-for-hwa742_update_window_async
      
      Add the prototype, but I wonder if we couldn't drop exporting the symbol
      instead. Since omapfb_update_window_async() is exported the same way,
      are there any users outside of the tree?
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      79b66128
  4. 28 May, 2022 11 commits
    • Linus Torvalds's avatar
      Merge tag 'input-for-v5.19-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 664a393a
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
      
       - a new driver for the Azoteq IQS7222A/B/C capacitive touch controller
      
       - a new driver for Raspberry Pi Sense HAT joystick
      
       - sun4i-lradc-keys gained support of R329 and D1 variants, plus it can
         be now used as a wakeup source
      
       - pm8941-pwrkey can now properly handle PON GEN3 variants; the driver
         also implements software debouncing and has a workaround for missing
         key press events
      
       - assorted driver fixes and cleanups
      
      * tag 'input-for-v5.19-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (29 commits)
        Input: stmfts - do not leave device disabled in stmfts_input_open
        Input: gpio-keys - cancel delayed work only in case of GPIO
        Input: cypress_ps2 - fix typo in comment
        Input: vmmouse - disable vmmouse before entering suspend mode
        dt-bindings: google,cros-ec-keyb: Fixup bad compatible match
        Input: cros-ec-keyb - allow skipping keyboard registration
        dt-bindings: google,cros-ec-keyb: Introduce switches only compatible
        Input: psmouse-smbus - avoid flush_scheduled_work() usage
        Input: bcm-keypad - remove unneeded NULL check before clk_disable_unprepare
        Input: sparcspkr - fix refcount leak in bbc_beep_probe
        Input: sun4i-lradc-keys - add support for R329 and D1
        Input: sun4i-lradc-keys - add optional clock/reset support
        dt-bindings: input: sun4i-lradc-keys: Add R329 and D1 compatibles
        Input: sun4i-lradc-keys - add wakeup support
        Input: pm8941-pwrkey - simulate missed key press events
        Input: pm8941-pwrkey - add software key press debouncing support
        Input: pm8941-pwrkey - add support for PON GEN3 base addresses
        Input: pm8941-pwrkey - fix error message
        Input: synaptics-rmi4 - remove unnecessary flush_workqueue()
        Input: ep93xx_keypad - use devm_platform_ioremap_resource() helper
        ...
      664a393a
    • Linus Torvalds's avatar
      drm: fix EDID struct for old ARM OABI format · 47f15561
      Linus Torvalds authored
      When building the kernel for arm with the "-mabi=apcs-gnu" option, gcc
      will force alignment of all structures and unions to a word boundary
      (see also STRUCTURE_SIZE_BOUNDARY and the "-mstructure-size-boundary=XX"
      option if you're a gcc person), even when the members of said structures
      do not want or need said alignment.
      
      This completely messes up the structure alignment of 'struct edid' on
      those targets, because even though all the embedded structures are
      marked with "__attribute__((packed))", the unions that contain them are
      not.
      
      This was exposed by commit f1e4c916 ("drm/edid: add EDID block count
      and size helpers"), but the bug is pre-existing.  That commit just made
      the structure layout problem cause a build failure due to the addition
      of the
      
              BUILD_BUG_ON(sizeof(*edid) != EDID_LENGTH);
      
      sanity check in drivers/gpu/drm/drm_edid.c:edid_block_data().
      
      This legacy union alignment should probably not be used in the first
      place, but we can fix the layout by adding the packed attribute to the
      union entries even when each member is already packed and it shouldn't
      matter in a sane build environment.
      
      You can see this issue with a trivial test program:
      
        union {
      	struct {
      		char c[5];
      	};
      	struct {
      		char d;
      		unsigned e;
      	} __attribute__((packed));
        } a = { "1234" };
      
      where building this with a normal "gcc -S" will result in the expected
      5-byte size of said union:
      
      	.type	a, @object
      	.size	a, 5
      
      but with an ARM compiler and the old ABI:
      
          arm-linux-gnu-gcc -mabi=apcs-gnu -mfloat-abi=soft -S t.c
      
      you get
      
      	.type	a, %object
      	.size	a, 8
      
      instead, because even though each member of the union is packed, the
      union itself still gets aligned.
      
      This was reported by Sudip for the spear3xx_defconfig target.
      
      Link: https://lore.kernel.org/lkml/YpCUzStDnSgQLNFN@debian/Reported-by: default avatarSudip Mukherjee <sudipm.mukherjee@gmail.com>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Maxime Ripard <mripard@kernel.org>
      Cc: Thomas Zimmermann <tzimmermann@suse.de>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      47f15561
    • Linus Torvalds's avatar
      Merge tag 'hyperv-next-signed-20220528' of... · f56dbdda
      Linus Torvalds authored
      Merge tag 'hyperv-next-signed-20220528' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux
      
      Pull hyperv updates from Wei Liu:
      
       - Harden hv_sock driver (Andrea Parri)
      
       - Harden Hyper-V PCI driver (Andrea Parri)
      
       - Fix multi-MSI for Hyper-V PCI driver (Jeffrey Hugo)
      
       - Fix Hyper-V PCI to reduce boot time (Dexuan Cui)
      
       - Remove code for long EOL'ed Hyper-V versions (Michael Kelley, Saurabh
         Sengar)
      
       - Fix balloon driver error handling (Shradha Gupta)
      
       - Fix a typo in vmbus driver (Julia Lawall)
      
       - Ignore vmbus IMC device (Michael Kelley)
      
       - Add a new error message to Hyper-V DRM driver (Saurabh Sengar)
      
      * tag 'hyperv-next-signed-20220528' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux: (28 commits)
        hv_balloon: Fix balloon_probe() and balloon_remove() error handling
        scsi: storvsc: Removing Pre Win8 related logic
        Drivers: hv: vmbus: fix typo in comment
        PCI: hv: Fix synchronization between channel callback and hv_pci_bus_exit()
        PCI: hv: Add validation for untrusted Hyper-V values
        PCI: hv: Fix interrupt mapping for multi-MSI
        PCI: hv: Reuse existing IRTE allocation in compose_msi_msg()
        drm/hyperv: Remove support for Hyper-V 2008 and 2008R2/Win7
        video: hyperv_fb: Remove support for Hyper-V 2008 and 2008R2/Win7
        scsi: storvsc: Remove support for Hyper-V 2008 and 2008R2/Win7
        Drivers: hv: vmbus: Remove support for Hyper-V 2008 and Hyper-V 2008R2/Win7
        x86/hyperv: Disable hardlockup detector by default in Hyper-V guests
        drm/hyperv: Add error message for fb size greater than allocated
        PCI: hv: Do not set PCI_COMMAND_MEMORY to reduce VM boot time
        PCI: hv: Fix hv_arch_irq_unmask() for multi-MSI
        Drivers: hv: vmbus: Refactor the ring-buffer iterator functions
        Drivers: hv: vmbus: Accept hv_sock offers in isolated guests
        hv_sock: Add validation for untrusted Hyper-V values
        hv_sock: Copy packets sent by Hyper-V out of the ring buffer
        hv_sock: Check hv_pkt_iter_first_raw()'s return value
        ...
      f56dbdda
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 6112bd00
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
      
       - Convert to the generic mmap support (ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT)
      
       - Add support for outline-only KASAN with 64-bit Radix MMU (P9 or later)
      
       - Increase SIGSTKSZ and MINSIGSTKSZ and add support for AT_MINSIGSTKSZ
      
       - Enable the DAWR (Data Address Watchpoint) on POWER9 DD2.3 or later
      
       - Drop support for system call instruction emulation
      
       - Many other small features and fixes
      
      Thanks to Alexey Kardashevskiy, Alistair Popple, Andy Shevchenko, Bagas
      Sanjaya, Bjorn Helgaas, Bo Liu, Chen Huang, Christophe Leroy, Colin Ian
      King, Daniel Axtens, Dwaipayan Ray, Fabiano Rosas, Finn Thain, Frank
      Rowand, Fuqian Huang, Guilherme G. Piccoli, Hangyu Hua, Haowen Bai,
      Haren Myneni, Hari Bathini, He Ying, Jason Wang, Jiapeng Chong, Jing
      Yangyang, Joel Stanley, Julia Lawall, Kajol Jain, Kevin Hao, Krzysztof
      Kozlowski, Laurent Dufour, Lv Ruyi, Madhavan Srinivasan, Magali Lemes,
      Miaoqian Lin, Minghao Chi, Nathan Chancellor, Naveen N. Rao, Nicholas
      Piggin, Oliver O'Halloran, Oscar Salvador, Pali Rohár, Paul Mackerras,
      Peng Wu, Qing Wang, Randy Dunlap, Reza Arbab, Russell Currey, Sohaib
      Mohamed, Vaibhav Jain, Vasant Hegde, Wang Qing, Wang Wensheng, Xiang
      wangx, Xiaomeng Tong, Xu Wang, Yang Guang, Yang Li, Ye Bin, YueHaibing,
      Yu Kuai, Zheng Bin, Zou Wei, and Zucheng Zheng.
      
      * tag 'powerpc-5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (200 commits)
        powerpc/64: Include cache.h directly in paca.h
        powerpc/64s: Only set HAVE_ARCH_UNMAPPED_AREA when CONFIG_PPC_64S_HASH_MMU is set
        powerpc/xics: Include missing header
        powerpc/powernv/pci: Drop VF MPS fixup
        powerpc/fsl_book3e: Don't set rodata RO too early
        powerpc/microwatt: Add mmu bits to device tree
        powerpc/powernv/flash: Check OPAL flash calls exist before using
        powerpc/powermac: constify device_node in of_irq_parse_oldworld()
        powerpc/powermac: add missing g5_phy_disable_cpu1() declaration
        selftests/powerpc/pmu: fix spelling mistake "mis-match" -> "mismatch"
        powerpc: Enable the DAWR on POWER9 DD2.3 and above
        powerpc/64s: Add CPU_FTRS_POWER10 to ALWAYS mask
        powerpc/64s: Add CPU_FTRS_POWER9_DD2_2 to CPU_FTRS_ALWAYS mask
        powerpc: Fix all occurences of "the the"
        selftests/powerpc/pmu/ebb: remove fixed_instruction.S
        powerpc/platforms/83xx: Use of_device_get_match_data()
        powerpc/eeh: Drop redundant spinlock initialization
        powerpc/iommu: Add missing of_node_put in iommu_init_early_dart
        powerpc/pseries/vas: Call misc_deregister if sysfs init fails
        powerpc/papr_scm: Fix leaking nvdimm_events_map elements
        ...
      6112bd00
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 907bb57a
      Linus Torvalds authored
      Pull pin control updates from Linus Walleij:
       "Pretty big this time. Mostly due to (nice) Renesas refactorings.
      
        Core changes:
      
         - New helpers from Andy such as for_each_gpiochip_node() affecting
           both GPIO and pin control, improving a bunch of drivers in the
           process.
      
         - Pulled in Marc Zyngiers work to make IRQ chips immutable, and
           started to apply fixups on top.
      
        New drivers:
      
         - New driver for Marvell MVEBU 98DX2530.
      
         - New driver for Mediatek MT8195.
      
         - Support Qualcomm PMX65 and PM6125.
      
         - New driver for Qualcomm SC7280 LPASS pin control.
      
         - New driver for Rockchip RK3588.
      
         - New driver for NXP Freescale i.MXRT1170.
      
         - New driver for Mediatek MT6795 Helio X10.
      
        Improvements:
      
         - Several Aspeed G6 cleanups and non-critical fixes.
      
         - Thorought refactoring of some of the ever improving Renesas
           drivers.
      
         - Clean up Mediatek MT8192 bindings a bit.
      
         - PWM output and clock monitoring in the Ocelot LAN966x driver.
      
         - Thorough refactoring and cleanup of the Ralink drivers such as
           RT2880, RT3883, RT305X, MT7620, MT7621, MT7628 splitting these into
           proper sub-drivers"
      
      * tag 'pinctrl-v5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (161 commits)
        pinctrl: apple: Use a raw spinlock for the regmap
        pinctrl: berlin: bg4ct: Use devm_platform_*ioremap_resource() APIs
        pinctrl: intel: Fix kernel doc format, i.e. add return sections
        dt-bindings: pinctrl: qcom: Drop 'maxItems' on 'wakeup-parent'
        pinctrl: starfive: Make the irqchip immutable
        pinctrl: mediatek: Add pinctrl driver for MT6795 Helio X10
        dt-bindings: pinctrl: Add MediaTek MT6795 pinctrl bindings
        pinctrl: freescale: Add i.MXRT1170 pinctrl driver support
        dt-bindings: pinctrl: add i.MXRT1170 pinctrl Documentation
        dt-bindings: pinctrl: rockchip: increase max amount of device functions
        dt-bindings: pinctrl: qcom,pmic-gpio: add 'gpio-reserved-ranges'
        dt-bindings: pinctrl: qcom,pmic-gpio: add 'input-disable'
        dt-bindings: pinctrl: qcom,pmic-gpio: describe gpio-line-names
        dt-bindings: pinctrl: qcom,pmic-gpio: fix matching pin config
        dt-bindings: pinctrl: qcom,pmic-gpio: document PM8150L and PMM8155AU
        pinctrl: qcom: spmi-gpio: Add pm6125 compatible
        dt-bindings: pinctrl: qcom-pmic-gpio: Add pm6125 compatible
        pinctrl: intel: Drop unused irqchip member in struct intel_pinctrl
        pinctrl: intel: make irq_chip immutable
        pinctrl: cherryview: Use GPIO chip pointer in chv_gpio_irq_mask_unmask()
        ...
      907bb57a
    • Javier Martinez Canillas's avatar
      video: fbdev: vesafb: Fix a use-after-free due early fb_info cleanup · acde4003
      Javier Martinez Canillas authored
      Commit b3c9a924 ("fbdev: vesafb: Cleanup fb_info in .fb_destroy rather
      than .remove") fixed a use-after-free error due the vesafb driver freeing
      the fb_info in the .remove handler instead of doing it in .fb_destroy.
      
      This can happen if the .fb_destroy callback is executed after the .remove
      callback, since the former tries to access a pointer freed by the latter.
      
      But that change didn't take into account that another possible scenario is
      that .fb_destroy is called before the .remove callback. For example, if no
      process has the fbdev chardev opened by the time the driver is removed.
      
      If that's the case, fb_info will be freed when unregister_framebuffer() is
      called, making the fb_info pointer accessed in vesafb_remove() after that
      to no longer be valid.
      
      To prevent that, move the expression containing the info->par to happen
      before the unregister_framebuffer() function call.
      
      Fixes: b3c9a924 ("fbdev: vesafb: Cleanup fb_info in .fb_destroy rather than .remove")
      Reported-by: default avatarPascal Ernster <dri-devel@hardfalcon.net>
      Signed-off-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
      Tested-by: default avatarPascal Ernster <dri-devel@hardfalcon.net>
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      acde4003
    • Jason A. Donenfeld's avatar
      Revert "crypto: poly1305 - cleanup stray CRYPTO_LIB_POLY1305_RSIZE" · ca7984df
      Jason A. Donenfeld authored
      This reverts commit 8bdc2a19.
      
      It got merged a bit prematurely and shortly after the kernel test robot
      and Sudip pointed out build failures:
      
        arm: imx_v6_v7_defconfig and multi_v7_defconfig
        mips: decstation_64_defconfig, decstation_defconfig, decstation_r4k_defconfig
      
        In file included from crypto/chacha20poly1305.c:13:
        include/crypto/poly1305.h:56:46: error: 'CONFIG_CRYPTO_LIB_POLY1305_RSIZE' undeclared here (not in a function); did you mean 'CONFIG_CRYPTO_POLY1305_MODULE'?
           56 |                 struct poly1305_key opaque_r[CONFIG_CRYPTO_LIB_POLY1305_RSIZE];
              |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      We could attempt to fix this by listing the dependencies piecemeal, but
      it's not as obvious as it looks: drivers like caam use this macro in
      headers even if there's no .o compiled in that makes use of it.  So
      actually fixing this might require a bit more of a comprehensive
      approach, rather than whack-a-mole with hunting down which drivers use
      which headers which use this macro.
      
      Therefore, this commit just reverts the change, and maybe the problem
      can be visited on the next rainy day.
      Reported-by: default avatarSudip Mukherjee <sudipm.mukherjee@gmail.com>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Fixes: 8bdc2a19 ("crypto: poly1305 - cleanup stray CRYPTO_LIB_POLY1305_RSIZE")
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ca7984df
    • Steven Rostedt (Google)'s avatar
      ftrace: Add FTRACE_MCOUNT_MAX_OFFSET to avoid adding weak function · b39181f7
      Steven Rostedt (Google) authored
      If an unused weak function was traced, it's call to fentry will still
      exist, which gets added into the __mcount_loc table. Ftrace will use
      kallsyms to retrieve the name for each location in __mcount_loc to display
      it in the available_filter_functions and used to enable functions via the
      name matching in set_ftrace_filter/notrace. Enabling these functions do
      nothing but enable an unused call to ftrace_caller. If a traced weak
      function is overridden, the symbol of the function would be used for it,
      which will either created duplicate names, or if the previous function was
      not traced, it would be incorrectly be listed in available_filter_functions
      as a function that can be traced.
      
      This became an issue with BPF[1] as there are tooling that enables the
      direct callers via ftrace but then checks to see if the functions were
      actually enabled. The case of one function that was marked notrace, but
      was followed by an unused weak function that was traced. The unused
      function's call to fentry was added to the __mcount_loc section, and
      kallsyms retrieved the untraced function's symbol as the weak function was
      overridden. Since the untraced function would not get traced, the BPF
      check would detect this and fail.
      
      The real fix would be to fix kallsyms to not show addresses of weak
      functions as the function before it. But that would require adding code in
      the build to add function size to kallsyms so that it can know when the
      function ends instead of just using the start of the next known symbol.
      
      In the mean time, this is a work around. Add a FTRACE_MCOUNT_MAX_OFFSET
      macro that if defined, ftrace will ignore any function that has its call
      to fentry/mcount that has an offset from the symbol that is greater than
      FTRACE_MCOUNT_MAX_OFFSET.
      
      If CONFIG_HAVE_FENTRY is defined for x86, define FTRACE_MCOUNT_MAX_OFFSET
      to zero (unless IBT is enabled), which will have ftrace ignore all locations
      that are not at the start of the function (or one after the ENDBR
      instruction).
      
      A worker thread is added at boot up to scan all the ftrace record entries,
      and will mark any that fail the FTRACE_MCOUNT_MAX_OFFSET test as disabled.
      They will still appear in the available_filter_functions file as:
      
        __ftrace_invalid_address___<invalid-offset>
      
      (showing the offset that caused it to be invalid).
      
      This is required for tools that use libtracefs (like trace-cmd does) that
      scan the available_filter_functions and enable set_ftrace_filter and
      set_ftrace_notrace using indexes of the function listed in the file (this
      is a speedup, as enabling thousands of files via names is an O(n^2)
      operation and can take minutes to complete, where the indexing takes less
      than a second).
      
      The invalid functions cannot be removed from available_filter_functions as
      the names there correspond to the ftrace records in the array that manages
      them (and the indexing depends on this).
      
      [1] https://lore.kernel.org/all/20220412094923.0abe90955e5db486b7bca279@kernel.org/
      
      Link: https://lkml.kernel.org/r/20220526141912.794c2786@gandalf.local.homeSigned-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      b39181f7
    • Linus Torvalds's avatar
      Merge tag 'cxl-for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl · 9d004b2f
      Linus Torvalds authored
      Pull cxl updates from Dan Williams:
       "Compute Express Link (CXL) updates for this cycle.
      
        The highlight is new driver-core infrastructure and CXL subsystem
        changes for allowing lockdep to validate device_lock() usage. Thanks
        to PeterZ for setting me straight on the current capabilities of the
        lockdep API, and Greg acked it as well.
      
        On the CXL ACPI side this update adds support for CXL _OSC so that
        platform firmware knows that it is safe to still grant Linux native
        control of PCIe hotplug and error handling in the presence of CXL
        devices. A circular dependency problem was discovered between suspend
        and CXL memory for cases where the suspend image might be stored in
        CXL memory where that image also contains the PCI register state to
        restore to re-enable the device. Disable suspend for now until an
        architecture is defined to clarify that conflict.
      
        Lastly a collection of reworks, fixes, and cleanups to the CXL
        subsystem where support for snooping mailbox commands and properly
        handling the "mem_enable" flow are the highlights.
      
        Summary:
      
         - Add driver-core infrastructure for lockdep validation of
           device_lock(), and fixup a deadlock report that was previously
           hidden behind the 'lockdep no validate' policy.
      
         - Add CXL _OSC support for claiming native control of CXL hotplug and
           error handling.
      
         - Disable suspend in the presence of CXL memory unless and until a
           protocol is identified for restoring PCI device context from memory
           hosted on CXL PCI devices.
      
         - Add support for snooping CXL mailbox commands to protect against
           inopportune changes, like set-partition with the 'immediate' flag
           set.
      
         - Rework how the driver detects legacy CXL 1.1 configurations (CXL
           DVSEC / 'mem_enable') before enabling new CXL 2.0 decode
           configurations (CXL HDM Capability).
      
         - Miscellaneous cleanups and fixes from -next exposure"
      
      * tag 'cxl-for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl: (47 commits)
        cxl/port: Enable HDM Capability after validating DVSEC Ranges
        cxl/port: Reuse 'struct cxl_hdm' context for hdm init
        cxl/port: Move endpoint HDM Decoder Capability init to port driver
        cxl/pci: Drop @info argument to cxl_hdm_decode_init()
        cxl/mem: Merge cxl_dvsec_ranges() and cxl_hdm_decode_init()
        cxl/mem: Skip range enumeration if mem_enable clear
        cxl/mem: Consolidate CXL DVSEC Range enumeration in the core
        cxl/pci: Move cxl_await_media_ready() to the core
        cxl/mem: Validate port connectivity before dvsec ranges
        cxl/mem: Fix cxl_mem_probe() error exit
        cxl/pci: Drop wait_for_valid() from cxl_await_media_ready()
        cxl/pci: Consolidate wait_for_media() and wait_for_media_ready()
        cxl/mem: Drop mem_enabled check from wait_for_media()
        nvdimm: Fix firmware activation deadlock scenarios
        device-core: Kill the lockdep_mutex
        nvdimm: Drop nd_device_lock()
        ACPI: NFIT: Drop nfit_device_lock()
        nvdimm: Replace lockdep_mutex with local lock classes
        cxl: Drop cxl_device_lock()
        cxl/acpi: Add root device lockdep validation
        ...
      9d004b2f
    • Linus Torvalds's avatar
      Merge tag 'clang-format-for-linus-v5.19-rc1' of https://github.com/ojeda/linux · a9f94826
      Linus Torvalds authored
      Pull clang-format updates from Miguel Ojeda:
       "clang-format modernization and cleanups.
      
        A few changes from Brian Norris and Mickaël Salaün to start taking
        advantage of some clang-format 11 features, plus a few cleanups and
        the usual update of the macro list"
      
      * tag 'clang-format-for-linus-v5.19-rc1' of https://github.com/ojeda/linux:
        clang-format: Fix space after for_each macros
        clang-format: Fix goto labels indentation
        clang-format: Update to clang-format >= 6
        clang-format: Extend the for_each list with tools/
        clang-format: Simplify command with `sort -u`
        clang-format: Use POSIX locale for `sort`
        clang-format: Update with v5.18-rc7's `for_each` macro list
      a9f94826
    • Linus Torvalds's avatar
      Merge tag 'v5.19-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · d075c0c1
      Linus Torvalds authored
      Pull crypto updates from Herbert Xu:
       "API:
      
         - Test in-place en/decryption with two sglists in testmgr
      
         - Fix process vs softirq race in cryptd
      
        Algorithms:
      
         - Add arm64 acceleration for sm4
      
         - Add s390 acceleration for chacha20
      
        Drivers:
      
         - Add polarfire soc hwrng support in mpsf
      
         - Add support for TI SoC AM62x in sa2ul
      
         - Add support for ATSHA204 cryptochip in atmel-sha204a
      
         - Add support for PRNG in caam
      
         - Restore support for storage encryption in qat
      
         - Restore support for storage encryption in hisilicon/sec"
      
      * tag 'v5.19-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (116 commits)
        hwrng: omap3-rom - fix using wrong clk_disable() in omap_rom_rng_runtime_resume()
        crypto: hisilicon/sec - delete the flag CRYPTO_ALG_ALLOCATES_MEMORY
        crypto: qat - add support for 401xx devices
        crypto: qat - re-enable registration of algorithms
        crypto: qat - honor CRYPTO_TFM_REQ_MAY_SLEEP flag
        crypto: qat - add param check for DH
        crypto: qat - add param check for RSA
        crypto: qat - remove dma_free_coherent() for DH
        crypto: qat - remove dma_free_coherent() for RSA
        crypto: qat - fix memory leak in RSA
        crypto: qat - add backlog mechanism
        crypto: qat - refactor submission logic
        crypto: qat - use pre-allocated buffers in datapath
        crypto: qat - set to zero DH parameters before free
        crypto: s390 - add crypto library interface for ChaCha20
        crypto: talitos - Uniform coding style with defined variable
        crypto: octeontx2 - simplify the return expression of otx2_cpt_aead_cbc_aes_sha_setkey()
        crypto: cryptd - Protect per-CPU resource by disabling BH.
        crypto: sun8i-ce - do not fallback if cryptlen is less than sg length
        crypto: sun8i-ce - rework debugging
        ...
      d075c0c1
  5. 27 May, 2022 3 commits
    • Linus Torvalds's avatar
      Merge tag '5.19-rc-smb3-client-fixes-updated' of git://git.samba.org/sfrench/cifs-2.6 · bf272460
      Linus Torvalds authored
      Pull cifs client updates from Steve French:
      
       - multichannel fixes to improve reconnect after network failure
      
       - improved caching of root directory contents (extending benefit of
         directory leases)
      
       - two DFS fixes
      
       - three fixes for improved debugging
      
       - an NTLMSSP fix for mounts t0 older servers
      
       - new mount parm to allow disabling creating sparse files
      
       - various cleanup fixes and minor fixes pointed out by coverity
      
      * tag '5.19-rc-smb3-client-fixes-updated' of git://git.samba.org/sfrench/cifs-2.6: (24 commits)
        smb3: remove unneeded null check in cifs_readdir
        cifs: fix ntlmssp on old servers
        cifs: cache the dirents for entries in a cached directory
        cifs: avoid parallel session setups on same channel
        cifs: use new enum for ses_status
        cifs: do not use tcpStatus after negotiate completes
        smb3: add mount parm nosparse
        smb3: don't set rc when used and unneeded in query_info_compound
        smb3: check for null tcon
        cifs: fix minor compile warning
        Add various fsctl structs
        Add defines for various newer FSCTLs
        smb3: add trace point for oplock not found
        cifs: return the more nuanced writeback error on close()
        smb3: add trace point for lease not found issue
        cifs: smbd: fix typo in comment
        cifs: set the CREATE_NOT_FILE when opening the directory in use_cached_dir()
        cifs: check for smb1 in open_cached_dir()
        cifs: move definition of cifs_fattr earlier in cifsglob.h
        cifs: print TIDs as hex
        ...
      bf272460
    • Linus Torvalds's avatar
      Merge tag 'jfs-5.19' of https://github.com/kleikamp/linux-shaggy · aef1ff15
      Linus Torvalds authored
      Pull jfs updates from David Kleikamp:
       "One bug fix and some code cleanup"
      
      * tag 'jfs-5.19' of https://github.com/kleikamp/linux-shaggy:
        fs/jfs: Remove dead code
        fs: jfs: fix possible NULL pointer dereference in dbFree()
      aef1ff15
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 35cdd865
      Linus Torvalds authored
      Pull libnvdimm and DAX updates from Dan Williams:
       "New support for clearing memory errors when a file is in DAX mode,
        alongside with some other fixes and cleanups.
      
        Previously it was only possible to clear these errors using a truncate
        or hole-punch operation to trigger the filesystem to reallocate the
        block, now, any page aligned write can opportunistically clear errors
        as well.
      
        This change spans x86/mm, nvdimm, and fs/dax, and has received the
        appropriate sign-offs. Thanks to Jane for her work on this.
      
        Summary:
      
         - Add support for clearing memory error via pwrite(2) on DAX
      
         - Fix 'security overwrite' support in the presence of media errors
      
         - Miscellaneous cleanups and fixes for nfit_test (nvdimm unit tests)"
      
      * tag 'libnvdimm-for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        pmem: implement pmem_recovery_write()
        pmem: refactor pmem_clear_poison()
        dax: add .recovery_write dax_operation
        dax: introduce DAX_RECOVERY_WRITE dax access mode
        mce: fix set_mce_nospec to always unmap the whole page
        x86/mce: relocate set{clear}_mce_nospec() functions
        acpi/nfit: rely on mce->misc to determine poison granularity
        testing: nvdimm: asm/mce.h is not needed in nfit.c
        testing: nvdimm: iomap: make __nfit_test_ioremap a macro
        nvdimm: Allow overwrite in the presence of disabled dimms
        tools/testing/nvdimm: remove unneeded flush_workqueue
      35cdd865