Skip to contentSkip to conversation

Linux 5.19.9

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Sep 15, 2022 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.19.9 kernel.

All users of the 5.19 kernel series must upgrade.

The updated 5.19.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.19.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Documentation/arm64/silicon-errata.rst                              |    2 
 Documentation/hwmon/asus_ec_sensors.rst                             |    4 
 Makefile                                                            |    5 
 arch/arm/boot/dts/at91-sama5d27_wlsom1.dtsi                         |   21 
 arch/arm/boot/dts/at91-sama5d2_icp.dts                              |   21 
 arch/arm/boot/dts/at91-sama7g5ek.dts                                |   18 
 arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi                       |   12 
 arch/arm/boot/dts/imx6qdl-vicut1.dtsi                               |    2 
 arch/arm/mach-at91/pm.c                                             |   36 
 arch/arm/mach-at91/pm_suspend.S                                     |   24 
 arch/arm64/Kconfig                                                  |   19 
 arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-65bb.dts              |    1 
 arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dts              |    4 
 arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi                    |   11 
 arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts              |    8 
 arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi                    |    4 
 arch/arm64/boot/dts/freescale/imx8mq-tqma8mq.dtsi                   |    1 
 arch/arm64/boot/dts/renesas/r8a779g0.dtsi                           |    2 
 arch/arm64/kernel/cpu_errata.c                                      |   10 
 arch/arm64/kernel/cpufeature.c                                      |    5 
 arch/arm64/kernel/hibernate.c                                       |    5 
 arch/arm64/kernel/mte.c                                             |    9 
 arch/arm64/kernel/topology.c                                        |   32 
 arch/arm64/mm/copypage.c                                            |    9 
 arch/arm64/mm/mteswap.c                                             |    9 
 arch/arm64/tools/cpucaps                                            |    1 
 arch/mips/loongson32/ls1c/board.c                                   |    1 
 arch/parisc/include/asm/bitops.h                                    |    8 
 arch/parisc/kernel/head.S                                           |   43 
 arch/riscv/boot/dts/microchip/mpfs.dtsi                             |    2 
 arch/s390/kernel/nmi.c                                              |    2 
 arch/s390/kernel/setup.c                                            |    1 
 arch/x86/include/asm/sev.h                                          |    2 
 arch/x86/kernel/sev.c                                               |    2 
 block/partitions/core.c                                             |    3 
 drivers/base/driver.c                                               |    6 
 drivers/base/regmap/regmap-spi.c                                    |    8 
 drivers/cpufreq/cpufreq.c                                           |    2 
 drivers/firmware/efi/capsule-loader.c                               |   31 
 drivers/firmware/efi/libstub/Makefile                               |    7 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                          |    4 
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c                             |    3 
 drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c                            |    2 
 drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c                              |   18 
 drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c                               |    3 
 drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c                             |    1 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c           |    2 
 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.c |   18 
 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/dcn301_smu.c          |   17 
 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c            |   14 
 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_smu.c          |   14 
 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn316/dcn316_smu.c          |   14 
 drivers/gpu/drm/drm_gem.c                                           |   17 
 drivers/gpu/drm/drm_internal.h                                      |    4 
 drivers/gpu/drm/drm_prime.c                                         |   20 
 drivers/gpu/drm/i915/display/intel_bios.c                           |    7 
 drivers/gpu/drm/i915/display/intel_dp_link_training.c               |   22 
 drivers/gpu/drm/i915/gt/intel_llc.c                                 |   19 
 drivers/gpu/drm/i915/gt/intel_rps.c                                 |   50 +
 drivers/gpu/drm/i915/gt/intel_rps.h                                 |    2 
 drivers/gpu/drm/radeon/radeon_device.c                              |    3 
 drivers/hwmon/asus-ec-sensors.c                                     |  446 ++++++----
 drivers/hwmon/mr75203.c                                             |   72 +
 drivers/hwmon/tps23861.c                                            |   10 
 drivers/infiniband/core/cma.c                                       |    4 
 drivers/infiniband/core/umem_odp.c                                  |    2 
 drivers/infiniband/hw/hns/hns_roce_device.h                         |    1 
 drivers/infiniband/hw/hns/hns_roce_hw_v2.c                          |    3 
 drivers/infiniband/hw/hns/hns_roce_hw_v2.h                          |    4 
 drivers/infiniband/hw/hns/hns_roce_main.c                           |    2 
 drivers/infiniband/hw/hns/hns_roce_qp.c                             |    7 
 drivers/infiniband/hw/irdma/uk.c                                    |    4 
 drivers/infiniband/hw/irdma/utils.c                                 |   15 
 drivers/infiniband/hw/irdma/verbs.c                                 |   13 
 drivers/infiniband/hw/mlx5/mad.c                                    |    6 
 drivers/infiniband/sw/siw/siw_qp_tx.c                               |   18 
 drivers/infiniband/ulp/rtrs/rtrs-clt.c                              |    9 
 drivers/infiniband/ulp/rtrs/rtrs-srv.c                              |   14 
 drivers/infiniband/ulp/srp/ib_srp.c                                 |    3 
 drivers/iommu/amd/iommu.c                                           |    3 
 drivers/iommu/amd/iommu_v2.c                                        |    2 
 drivers/iommu/intel/dmar.c                                          |    7 
 drivers/iommu/intel/iommu.c                                         |   55 -
 drivers/iommu/iommu.c                                               |   21 
 drivers/iommu/virtio-iommu.c                                        |   11 
 drivers/md/md.c                                                     |    1 
 drivers/net/bonding/bond_main.c                                     |   55 -
 drivers/net/dsa/ocelot/felix_vsc9959.c                              |  162 ++-
 drivers/net/ethernet/intel/i40e/i40e.h                              |   14 
 drivers/net/ethernet/intel/i40e/i40e_client.c                       |    5 
 drivers/net/ethernet/intel/i40e/i40e_ethtool.c                      |    2 
 drivers/net/ethernet/intel/i40e/i40e_main.c                         |   23 
 drivers/net/ethernet/intel/i40e/i40e_txrx.c                         |    3 
 drivers/net/ethernet/intel/iavf/iavf_main.c                         |   14 
 drivers/net/ethernet/intel/ice/ice_base.c                           |   17 
 drivers/net/ethernet/intel/ice/ice_main.c                           |   10 
 drivers/net/ethernet/intel/ice/ice_xsk.c                            |   63 +
 drivers/net/ethernet/intel/ice/ice_xsk.h                            |    8 
 drivers/net/ethernet/mediatek/mtk_ppe.c                             |    2 
 drivers/net/ethernet/mediatek/mtk_ppe.h                             |    3 
 drivers/net/phy/meson-gxl.c                                         |    8 
 drivers/net/phy/microchip_t1.c                                      |   58 +
 drivers/net/wireless/intel/iwlegacy/4965-rs.c                       |    5 
 drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c                 |    2 
 drivers/net/wireless/microchip/wilc1000/netdev.h                    |    1 
 drivers/net/wireless/microchip/wilc1000/sdio.c                      |   39 
 drivers/net/wireless/microchip/wilc1000/wlan.c                      |   15 
 drivers/net/xen-netback/xenbus.c                                    |    2 
 drivers/nvme/host/tcp.c                                             |    7 
 drivers/nvme/target/core.c                                          |    6 
 drivers/nvme/target/zns.c                                           |   17 
 drivers/parisc/ccio-dma.c                                           |   11 
 drivers/perf/riscv_pmu_sbi.c                                        |    2 
 drivers/regulator/core.c                                            |    9 
 drivers/scsi/lpfc/lpfc_init.c                                       |    5 
 drivers/scsi/megaraid/megaraid_sas_fusion.c                         |    1 
 drivers/scsi/mpt3sas/mpt3sas_scsih.c                                |    2 
 drivers/scsi/qla2xxx/qla_target.c                                   |   10 
 drivers/scsi/scsi_lib.c                                             |   44 
 drivers/soc/bcm/brcmstb/pm/pm-arm.c                                 |   50 -
 drivers/soc/fsl/Kconfig                                             |    1 
 drivers/soc/imx/gpcv2.c                                             |    5 
 drivers/soc/imx/imx8m-blk-ctrl.c                                    |    1 
 drivers/spi/spi-bitbang-txrx.h                                      |    6 
 drivers/tee/tee_shm.c                                               |    1 
 drivers/thermal/intel/int340x_thermal/int3400_thermal.c             |    9 
 drivers/ufs/core/ufshcd.c                                           |    9 
 drivers/vfio/vfio_iommu_type1.c                                     |   12 
 drivers/video/fbdev/chipsfb.c                                       |    1 
 drivers/video/fbdev/core/fbsysfs.c                                  |    4 
 drivers/video/fbdev/omap/omapfb_main.c                              |    4 
 fs/afs/flock.c                                                      |    2 
 fs/afs/fsclient.c                                                   |    2 
 fs/afs/internal.h                                                   |    3 
 fs/afs/rxrpc.c                                                      |    7 
 fs/afs/yfsclient.c                                                  |    3 
 fs/btrfs/ctree.h                                                    |    2 
 fs/btrfs/disk-io.c                                                  |    1 
 fs/btrfs/inode.c                                                    |    7 
 fs/btrfs/space-info.c                                               |    2 
 fs/btrfs/volumes.c                                                  |    3 
 fs/btrfs/zoned.c                                                    |   99 +-
 fs/cifs/smb2file.c                                                  |    1 
 fs/cifs/smb2ops.c                                                   |   88 -
 fs/cifs/smb2pdu.c                                                   |   20 
 fs/cifs/smb2proto.h                                                 |    4 
 fs/debugfs/inode.c                                                  |   22 
 fs/erofs/fscache.c                                                  |    8 
 fs/erofs/internal.h                                                 |   29 
 fs/tracefs/inode.c                                                  |   31 
 include/kunit/test.h                                                |    6 
 include/linux/buffer_head.h                                         |   11 
 include/linux/debugfs.h                                             |    6 
 include/linux/dmar.h                                                |    4 
 include/linux/lsm_hook_defs.h                                       |    1 
 include/linux/lsm_hooks.h                                           |    3 
 include/linux/security.h                                            |    5 
 include/linux/skbuff.h                                              |   49 -
 include/linux/time64.h                                              |    3 
 include/linux/udp.h                                                 |    1 
 include/net/bonding.h                                               |   13 
 include/net/udp_tunnel.h                                            |    4 
 include/soc/at91/sama7-ddr.h                                        |    8 
 io_uring/io_uring.c                                                 |    5 
 kernel/cgroup/cgroup.c                                              |   85 +
 kernel/cgroup/cpuset.c                                              |    3 
 kernel/dma/swiotlb.c                                                |    5 
 kernel/fork.c                                                       |    1 
 kernel/kprobes.c                                                    |    1 
 kernel/sched/debug.c                                                |    2 
 kernel/trace/trace_events_trigger.c                                 |    3 
 kernel/trace/trace_preemptirq.c                                     |    4 
 mm/kmemleak.c                                                       |    8 
 net/bridge/br_netfilter_hooks.c                                     |    2 
 net/bridge/br_netfilter_ipv6.c                                      |    1 
 net/core/datagram.c                                                 |    2 
 net/core/skbuff.c                                                   |    5 
 net/ipv4/tcp.c                                                      |    2 
 net/ipv4/tcp_input.c                                                |   25 
 net/ipv4/udp.c                                                      |    2 
 net/ipv4/udp_tunnel_core.c                                          |    1 
 net/ipv6/addrconf.c                                                 |    8 
 net/ipv6/seg6.c                                                     |    5 
 net/ipv6/udp.c                                                      |    5 
 net/netfilter/nf_conntrack_irc.c                                    |    5 
 net/netfilter/nf_conntrack_proto_tcp.c                              |   31 
 net/netfilter/nf_tables_api.c                                       |    4 
 net/rxrpc/ar-internal.h                                             |    1 
 net/rxrpc/local_object.c                                            |    1 
 net/rxrpc/peer_event.c                                              |  293 +++++-
 net/rxrpc/rxkad.c                                                   |    2 
 net/sched/sch_sfb.c                                                 |   13 
 net/sched/sch_taprio.c                                              |    5 
 net/smc/smc_core.c                                                  |    1 
 net/smc/smc_core.h                                                  |    2 
 net/smc/smc_wr.c                                                    |    5 
 net/smc/smc_wr.h                                                    |    5 
 net/tipc/monitor.c                                                  |    2 
 security/security.c                                                 |    4 
 security/selinux/hooks.c                                            |   24 
 security/selinux/include/classmap.h                                 |    2 
 security/smack/smack_lsm.c                                          |   32 
 sound/core/memalloc.c                                               |    9 
 sound/core/oss/pcm_oss.c                                            |    6 
 sound/drivers/aloop.c                                               |    7 
 sound/pci/emu10k1/emupcm.c                                          |    2 
 sound/pci/hda/hda_intel.c                                           |    2 
 sound/soc/atmel/mchp-spdiftx.c                                      |   10 
 sound/soc/codecs/cs42l42.c                                          |   13 
 sound/soc/qcom/sm8250.c                                             |    1 
 sound/soc/sof/Kconfig                                               |    2 
 sound/usb/card.c                                                    |    2 
 sound/usb/endpoint.c                                                |   25 
 sound/usb/endpoint.h                                                |    6 
 sound/usb/pcm.c                                                     |   14 
 sound/usb/quirks.c                                                  |    2 
 sound/usb/stream.c                                                  |    9 
 tools/lib/perf/evlist.c                                             |   50 +
 tools/objtool/check.c                                               |   34 
 tools/perf/arch/x86/util/evlist.c                                   |    7 
 tools/perf/builtin-record.c                                         |    8 
 tools/perf/builtin-script.c                                         |    3 
 tools/perf/builtin-stat.c                                           |   11 
 tools/perf/dlfilters/dlfilter-show-cycles.c                         |    4 
 tools/perf/util/evlist.c                                            |    9 
 tools/perf/util/evlist.h                                            |    7 
 226 files changed, 2437 insertions(+), 969 deletions(-)

Adrian Hunter (3):
libperf evlist: Fix per-thread mmaps for multi-threaded targets perf dlfilter dlfilter-show-cycles: Fix types for print format perf record: Fix synthesis failure warnings

[email protected] (1):
wifi: wilc1000: fix DMA on stack objects

Alex Williamson (1):
vfio/type1: Unpin zero pages

Alexander Gordeev (1):
s390/boot: fix absolute zero lowcore corruption on boot

Alexander Stein (1):
arm64: dts: imx8mq-tqma8mq: Remove superfluous interrupt-names

Alexandru Gagniuc (1):
hwmon: (tps23861) fix byte order in resistance register

Andrejs Cainikovs (2):
arm64: dts: imx8mm-verdin: update CAN clock to 40MHz
arm64: dts: imx8mm-verdin: use level interrupt for mcp251xfd

Andrew Halaney (1):
regulator: core: Clean up on enable failure

Ard Biesheuvel (1):
efi: libstub: Disable struct randomization

Arun Ramadoss (1):
net: phy: lan87xx: change interrupt src of link_up to comm_ready

Bart Van Assche (2):
scsi: ufs: core: Reduce the power mode change timeout
nvmet: fix a use-after-free

Borislav Petkov (1):
x86/sev: Mark snp_abort() noreturn

Brian Bunker (1):
scsi: core: Allow the ALUA transitioning state enough time

Brian Norris (1):
tracefs: Only clobber mode/uid/gid on remount if asked

Candice Li (1):
drm/amdgpu: Check num_gfx_rings for gfx v9_0 rb setup.

Casey Schaufler (1):
Smack: Provide read control for io_uring_cmd

Chao Gao (1):
swiotlb: avoid potential left shift overflow

Chengchang Tang (1):
RDMA/hns: Fix supported page size

Chris Mi (1):
RDMA/mlx5: Set local port to one when accessing counters

Christian A. Ehrhardt (1):
kprobes: Prohibit probes in gate area

Claudiu Beznea (8):
ARM: at91: pm: fix self-refresh for sama7g5
ARM: at91: pm: fix DDR recalibration when resuming from backup and self-refresh
ARM: dts: at91: sama5d27_wlsom1: specify proper regulator output ranges
ARM: dts: at91: sama5d2_icp: specify proper regulator output ranges
ARM: dts: at91: sama7g5ek: specify proper regulator output ranges
ARM: dts: at91: sama5d27_wlsom1: don't keep ldo2 enabled all the time
ARM: dts: at91: sama5d2_icp: don't keep vdd_other enabled all the time
ASoC: mchp-spdiftx: remove references to mchp_i2s_caps

Conor Dooley (1):
riscv: dts: microchip: use an mpfs specific l2 compatible

Cristian Ciocaltea (1):
regmap: spi: Reserve space for register address/padding

Dan Carpenter (1):
tipc: fix shift wrapping bug in map_get()

David Howells (4):
smb3: missing inode locks in zero range
rxrpc: Fix ICMP/ICMP6 error handling
rxrpc: Fix an insufficiently large sglist in rxkad_verify_packet_2()
afs: Use the operation issue time instead of the reply time for callbacks

David Jander (1):
ARM: dts: imx6qdl-vicut1.dtsi: Fix node name backlight_led

David Leadbeater (1):
netfilter: nf_conntrack_irc: Fix forged IP logic

David Lebrun (1):
ipv6: sr: fix out-of-bounds read when setting HMAC data.

David Sloan (1):
md: Flush workqueue md_rdev_misc_wq in md_alloc()

Dennis Maisenbacher (1):
nvmet: fix mar and mor off-by-one errors

Deren Wu (1):
wifi: mt76: mt7921e: fix crash in chip reset fail

Dongxiang Ke (1):
ALSA: usb-audio: Fix an out-of-bounds bug in __snd_usb_parse_audio_interface()

Eliav Farber (5):
hwmon: (mr75203) fix VM sensor allocation when "intel,vm-map" not defined
hwmon: (mr75203) update pvt->v_num and vm_num to the actual number of used sensors
hwmon: (mr75203) fix voltage equation for negative source input
hwmon: (mr75203) fix multi-channel voltage reading
hwmon: (mr75203) enable polling for all VM channels

Enzo Matsumiya (1):
cifs: remove useless parameter 'is_fsctl' from SMB2_ioctl()

Eric Dumazet (1):
tcp: TX zerocopy should not sense pfmemalloc status

Eugene Shalygin (2):
hwmon: (asus-ec-sensors) add missing sensors for X570-I GAMING
hwmon: (asus-ec-sensors) autoload module via DMI data

Florian Westphal (1):
netfilter: conntrack: work around exceeded receive window

Gao Xiang (1):
erofs: fix pcluster use-after-free on UP platforms

Geert Uytterhoeven (1):
arm64: dts: renesas: r8a779g0: Fix HSCIF0 interrupt number

Greg Kroah-Hartman (5):
debugfs: add debugfs_lookup_and_remove() sched/debug: fix dentry leak in update_sched_domain_debugfs drm/amd/display: fix memory leak when using debugfs_lookup() driver core: fix driver_set_override() issue with empty strings Linux 5.19.9

Guixin Liu (1):
scsi: megaraid_sas: Fix double kfree()

Hangbin Liu (3):
bonding: use unspecified address if no available link local address
bonding: add all node mcast address when slave up
bonding: accept unsolicited NA message

Harsh Modi (1):
netfilter: br_netfilter: Drop dst references before setting.

Heiner Kallweit (1):
Revert "net: phy: meson-gxl: improve link-up behavior"

Helge Deller (2):
Revert "parisc: Show error if wrong 32/64-bit compiler is being used"
parisc: Add runtime check to prevent PA2.0 kernels on PA1.x machines

Hyunwoo Kim (1):
efi: capsule-loader: Fix use-after-free in efi_capsule_write

Ionela Voinescu (1):
arm64: errata: add detection for AMEVCNTR01 incrementing incorrectly

Ivan Vecera (2):
i40e: Fix kernel crash during module removal
iavf: Detach device during reset task

Jack Wang (2):
RDMA/rtrs-clt: Use the right sg_cnt after ib_dma_map_sg RDMA/rtrs-srv: Pass the correct number of entries for dma mapped SGL

Jason Gunthorpe (1):
iommu: Fix false ownership failure on AMD systems with PASID activated

Jean-Philippe Brucker (1):
iommu/virtio: Fix interaction with VFIO

Jeffy Chen (1):
drm/gem: Fix GEM handle release errors

Jens Wiklander (1):
tee: fix compiler warning in tee_shm_register()

Johannes Thumshirn (1):
btrfs: zoned: fix mounting with conventional zones

John Sperbeck (1):
iommu/amd: use full 64-bit value in build_completion_wait()

Kan Liang (1):
perf evlist: Always use arch_evlist__add_default_attrs()

Lee, Chun-Yi (1):

      thermal/int340x_thermal: handle data_vault when the value is ZERO_SIZE_PTR

Li Qiong (1):
parisc: ccio-dma: Handle kmalloc failure in ccio_init_resources()

Liang He (1):
soc: brcmstb: pm-arm: Fix refcount leak and __iomem leak bugs

Linus Torvalds (1):
fs: only do a memory barrier for the first set_buffer_uptodate()

Linus Walleij (1):
RDMA/siw: Pass a pointer to virt_to_page()

Lorenzo Bianconi (2):
net: ethernet: mtk_eth_soc: fix typo in __mtk_foe_entry_clear
net: ethernet: mtk_eth_soc: check max allowed hash in mtk_ppe_check_skb

Lu Baolu (2):
iommu/vt-d: Fix possible recursive locking in intel_iommu_init() iommu/vt-d: Correctly calculate sagaw value of IOMMU

Luis Chamberlain (1):
lsm,io_uring: add LSM hooks for the new uring_cmd file op

Lukasz Luba (1):
cpufreq: check only freq_table in __resolve_freq()

Marcel Ziswiler (2):
arm64: dts: freescale: verdin-imx8mm: fix atmel_mxt_ts reset polarity
arm64: dts: freescale: verdin-imx8mp: fix atmel_mxt_ts reset polarity

Marco Felsch (3):
Revert "soc: imx: imx8m-blk-ctrl: set power device name"
ARM: dts: imx6qdl-kontron-samx6i: remove duplicated node
ARM: dts: imx6qdl-kontron-samx6i: fix spi-flash compatible

Marek Vasut (1):
soc: imx: gpcv2: Assert reset before ungating clock

Mark Brown (1):
arm64/bti: Disable in kernel BTI when cross section thunks are broken

Masahiro Yamada (1):
kbuild: disable header exports for UML in a straightforward way

Masami Hiramatsu (Google) (1):
tracing: Fix to check event_mutex is held while accessing trigger list

Mathew McBride (1):
soc: fsl: select FSL_GUTS driver for DPIO

Michael Carns (1):
hwmon: (asus-ec-sensors) add support for Maximus XI Hero

Michael Guralnik (1):
RDMA/cma: Fix arguments order in net device validation

Michal Swiatkowski (1):
ice: use bitmap_free instead of devm_kfree

Ming Lei (1):
block: don't add partitions if GD_SUPPRESS_PART_SCAN is set

Naohiro Aota (1):
btrfs: zoned: fix API misuse of zone finish waiting

Nathan Chancellor (1):
ASoC: mchp-spdiftx: Fix clang -Wbitfield-constant-conversion

Neal Cardwell (1):
tcp: fix early ETIMEDOUT after spurious non-SACK RTO

Pablo Neira Ayuso (1):
netfilter: nf_tables: clean up hook list when offload flags check fails

Pattara Teerapong (1):
ALSA: aloop: Fix random zeros in capture data when using jiffies timer

Paul Durrant (1):
xen-netback: only remove 'hotplug-status' when the vif is actually destroyed

Paul Moore (1):
selinux: implement the security_uring_cmd() LSM hook

Pavel Begunkov (2):
net: introduce __skb_fill_page_desc_noacc
io_uring: recycle kbuf recycle on tw requeue

Peng Fan (1):
arm64: dts: imx8mp-venice-gw74xx: fix sai2 pin settings

Peter Ujfalusi (2):
ASoC: SOF: Kconfig: Make IPC_FLOOD_TEST depend on SND_SOC_SOF
ASoC: SOF: Kconfig: Make IPC_MESSAGE_INJECTOR depend on SND_SOC_SOF

Philippe Schenker (1):
arm64: dts: verdin-imx8mm: add otg2 pd to usbphy

Przemyslaw Patynowski (3):
ice: Fix DMA mappings leak
i40e: Refactor tc mqprio checks
i40e: Fix ADQ rate limiting for PF

Qu Huang (1):
drm/amdgpu: mmVM_L2_CNTL3 register not initialized correctly

Qu Wenruo (1):
btrfs: fix the max chunk size and stripe length calculation

Richard Fitzgerald (1):
ASoC: cs42l42: Only report button state if there was a button interrupt

Robin Murphy (1):
spi: bitbang: Fix lsb-first Rx

Rodrigo Vivi (1):
drm/i915/slpc: Let's fix the PCODE min freq table setup for SLPC

Saaem Rizvi (2):
drm/amd/display: Add SMU logging code drm/amd/display: Removing assert statements for Linux

Sagi Grimberg (2):
nvme-tcp: fix UAF when detecting digest errors
nvme-tcp: fix regression that causes sporadic requests to time out

Sander Vanheule (1):
kunit: fix assert_type for comparison macros

Sasha Levin (1):

      Revert "arm64: kasan: Revert "arm64: mte: reset the page tag in page->flags""

Sergey Matyukevich (1):
perf: RISC-V: fix access beyond allocated array

Shady Nawara (1):
hwmon: (asus-ec-sensors) add support for Strix Z690-a D4

Shigeru Yoshida (1):
fbdev: fbcon: Destroy mutex on freeing struct fb_info

Shin'ichiro Kawasaki (1):
btrfs: zoned: set pseudo max append zone limit in zone emulation mode

Shiraz Saleem (1):
RDMA/irdma: Fix drain SQ hang with no completion

Sindhu-Devale (4):
RDMA/irdma: Report the correct max cqes from query device RDMA/irdma: Return error on MR deregister CQP failure RDMA/irdma: Return correct WC error for bind operation failure RDMA/irdma: Report RNR NAK generation in device caps

Sreekanth Reddy (1):
scsi: mpt3sas: Fix use-after-free warning

Srinivas Kandagatla (1):
ASoC: qcom: sm8250: add missing module owner

Stanislaw Gruszka (1):
wifi: iwlegacy: 4965: corrected fix for potential off-by-one overflow in il4965_rs_fill_link_cmd()

Sun Ke (1):
erofs: fix error return code in erofs_fscache_{meta_,}read_folio

Takashi Iwai (6):
ALSA: pcm: oss: Fix race at SNDCTL_DSP_SYNC
ALSA: hda: Once again fix regression of page allocations with IOMMU
ALSA: usb-audio: Split endpoint setups for hw_params and prepare
ALSA: usb-audio: Clear fixed clock rate at closing EP
ALSA: usb-audio: Inform the delayed registration more properly
ALSA: usb-audio: Register card again for iface over delayed_register option

Tasos Sahanidis (1):
ALSA: emu10k1: Fix out of bounds access in snd_emu10k1_pcm_channel_alloc()

Tejun Heo (2):
cgroup: Elide write-locking threadgroup_rwsem when updating csses on an empty subtree
cgroup: Fix threadgroup_rwsem <-> cpus_read_lock() deadlock

Tim Harvey (1):
arm64: dts: imx8mm-venice-gw7901: fix port/phy validation

Tim Huang (1):
drm/amdgpu: add sdma instance check for gfx11 CGCG

Toke Høiland-Jørgensen (2):
sch_sfb: Don't assume the skb is still around after enqueueing to child
sch_sfb: Also store skb len before calling child enqueue

Tony Battersby (1):
scsi: qla2xxx: Disable ATIO interrupt coalesce for quad port ISP27XX

Urs Schroffenegger (1):
hwmon: (asus-ec-sensors) add definitions for ROG ZENITH II EXTREME

Ville Syrjälä (2):
drm/i915/bios: Copy the whole MIPI sequence block drm/i915: Implement WaEdpLinkRateDataReload

Vladimir Oltean (6):
arm64: dts: ls1028a-qds-65bb: don't use in-band autoneg for 2500base-x
net: dsa: felix: disable cut-through forwarding for frames oversized for tc-taprio
net: dsa: felix: access QSYS_TAG_CONFIG under tas_lock in vsc9959_sched_speed_set
net: bonding: replace dev_trans_start() with the jiffies of the last ARP/NS time64.h: consolidate uses of PSEC_PER_NSEC
net: dsa: felix: tc-taprio intervals smaller than MTU should send at least one packet

Wenpeng Liang (1):

      RDMA/hns: Fix wrong fixed value of qp->rq.wqe_shift

Yacan Liu (1):
net/smc: Fix possible access to freed memory in link clear

Yang Ling (1):
MIPS: loongson32: ls1c: Fix hang during startup

Yang Yingliang (2):
fbdev: chipsfb: Add missing pci_disable_device() in chipsfb_pci_init()
scsi: lpfc: Add missing destroy_workqueue() in error path

Yee Lee (1):
Revert "mm: kmemleak: take a full lowmem check in kmemleak_*_phys()"

YiPeng Chai (2):
drm/amdgpu: Move psp_xgmi_terminate call from amdgpu_xgmi_remove_device to psp_hw_fini drm/amdgpu: fix hive reference leak when adding xgmi device

Yipeng Zou (1):
tracing: hold caller_addr to hardirq_{enable,disable}_ip

Yishai Hadas (1):
IB/core: Fix a nested dead lock as part of ODP flow

Yixing Liu (1):
RDMA/hns: Remove the num_qpc_timer variable

Yu Zhe (1):
fbdev: omapfb: Fix tests for platform_get_irq() failure

Zhengjun Xing (2):
perf script: Fix Cannot print 'iregs' field for hybrid systems perf stat: Fix L2 Topdown metrics disappear for raw events

Zhenneng Li (1):
drm/radeon: add a force flush to delay work when radeon

lily (1):
net/core/skbuff: Check the return value of skb_copy_bits()

shaoyunl (1):
drm/amdgpu: Remove the additional kfd pre reset call for sriov

[email protected] (1):

      RDMA/srp: Set scmnd->result only when scmnd is not NULL
author maintainer
#1 lore raw
Documentation/arm64/silicon-errata.rst +2 -0
index 33b04db8408f..fda97b3fcf01 100644
@@ -52,6 +52,8 @@ stable kernels.
 | Allwinner      | A64/R18         | UNKNOWN1        | SUN50I_ERRATUM_UNKNOWN1     |
 +----------------+-----------------+-----------------+-----------------------------+
 +----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-A510     | #2457168        | ARM64_ERRATUM_2457168       |
++----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A510     | #2064142        | ARM64_ERRATUM_2064142       |
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A510     | #2038923        | ARM64_ERRATUM_2038923       |
Documentation/hwmon/asus_ec_sensors.rst +4 -0
index 78ca69eda877..02f4ad314a1e 100644
@@ -13,12 +13,16 @@ Supported boards:
  * ROG CROSSHAIR VIII FORMULA
  * ROG CROSSHAIR VIII HERO
  * ROG CROSSHAIR VIII IMPACT
+ * ROG MAXIMUS XI HERO
+ * ROG MAXIMUS XI HERO (WI-FI)
  * ROG STRIX B550-E GAMING
  * ROG STRIX B550-I GAMING
  * ROG STRIX X570-E GAMING
  * ROG STRIX X570-E GAMING WIFI II
  * ROG STRIX X570-F GAMING
  * ROG STRIX X570-I GAMING
+ * ROG STRIX Z690-A GAMING WIFI D4
+ * ROG ZENITH II EXTREME
 
 Authors:
     - Eugene Shalygin <[email protected]>
Makefile +2 -3
index e361c6230e9e..1f27c4bd09e6 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 19
-SUBLEVEL = 8
+SUBLEVEL = 9
 EXTRAVERSION =
 NAME = Superb Owl
 
@@ -1286,8 +1286,7 @@ hdr-inst := -f $(srctree)/scripts/Makefile.headersinst obj
 
 PHONY += headers
 headers: $(version_h) scripts_unifdef uapi-asm-generic archheaders archscripts
-	$(if $(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/Kbuild),, \
-	  $(error Headers not exportable for the $(SRCARCH) architecture))
+	$(if $(filter um, $(SRCARCH)), $(error Headers not exportable for UML))
 	$(Q)$(MAKE) $(hdr-inst)=include/uapi
 	$(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi
 
arch/arm/boot/dts/at91-sama5d27_wlsom1.dtsi +10 -11
index ba621783acdb..d6f364c6be94 100644
@@ -76,8 +76,8 @@ mcp16502@5b {
 		regulators {
 			vdd_3v3: VDD_IO {
 				regulator-name = "VDD_IO";
-				regulator-min-microvolt = <1200000>;
-				regulator-max-microvolt = <3700000>;
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
 				regulator-initial-mode = <2>;
 				regulator-allowed-modes = <2>, <4>;
 				regulator-always-on;
@@ -95,8 +95,8 @@ regulator-state-mem {
 
 			vddio_ddr: VDD_DDR {
 				regulator-name = "VDD_DDR";
-				regulator-min-microvolt = <600000>;
-				regulator-max-microvolt = <1850000>;
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1200000>;
 				regulator-initial-mode = <2>;
 				regulator-allowed-modes = <2>, <4>;
 				regulator-always-on;
@@ -118,8 +118,8 @@ regulator-state-mem {
 
 			vdd_core: VDD_CORE {
 				regulator-name = "VDD_CORE";
-				regulator-min-microvolt = <600000>;
-				regulator-max-microvolt = <1850000>;
+				regulator-min-microvolt = <1250000>;
+				regulator-max-microvolt = <1250000>;
 				regulator-initial-mode = <2>;
 				regulator-allowed-modes = <2>, <4>;
 				regulator-always-on;
@@ -160,8 +160,8 @@ regulator-state-mem {
 
 			LDO1 {
 				regulator-name = "LDO1";
-				regulator-min-microvolt = <1200000>;
-				regulator-max-microvolt = <3700000>;
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
 				regulator-always-on;
 
 				regulator-state-standby {
@@ -175,9 +175,8 @@ regulator-state-mem {
 
 			LDO2 {
 				regulator-name = "LDO2";
-				regulator-min-microvolt = <1200000>;
-				regulator-max-microvolt = <3700000>;
-				regulator-always-on;
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
 
 				regulator-state-standby {
 					regulator-on-in-suspend;
arch/arm/boot/dts/at91-sama5d2_icp.dts +10 -11
index 164201a8fbf2..492456e195a3 100644
@@ -197,8 +197,8 @@ mcp16502@5b {
 			regulators {
 				vdd_io_reg: VDD_IO {
 					regulator-name = "VDD_IO";
-					regulator-min-microvolt = <1200000>;
-					regulator-max-microvolt = <3700000>;
+					regulator-min-microvolt = <3300000>;
+					regulator-max-microvolt = <3300000>;
 					regulator-initial-mode = <2>;
 					regulator-allowed-modes = <2>, <4>;
 					regulator-always-on;
@@ -216,8 +216,8 @@ regulator-state-mem {
 
 				VDD_DDR {
 					regulator-name = "VDD_DDR";
-					regulator-min-microvolt = <600000>;
-					regulator-max-microvolt = <1850000>;
+					regulator-min-microvolt = <1350000>;
+					regulator-max-microvolt = <1350000>;
 					regulator-initial-mode = <2>;
 					regulator-allowed-modes = <2>, <4>;
 					regulator-always-on;
@@ -235,8 +235,8 @@ regulator-state-mem {
 
 				VDD_CORE {
 					regulator-name = "VDD_CORE";
-					regulator-min-microvolt = <600000>;
-					regulator-max-microvolt = <1850000>;
+					regulator-min-microvolt = <1250000>;
+					regulator-max-microvolt = <1250000>;
 					regulator-initial-mode = <2>;
 					regulator-allowed-modes = <2>, <4>;
 					regulator-always-on;
@@ -258,7 +258,6 @@ VDD_OTHER {
 					regulator-max-microvolt = <1850000>;
 					regulator-initial-mode = <2>;
 					regulator-allowed-modes = <2>, <4>;
-					regulator-always-on;
 
 					regulator-state-standby {
 						regulator-on-in-suspend;
@@ -273,8 +272,8 @@ regulator-state-mem {
 
 				LDO1 {
 					regulator-name = "LDO1";
-					regulator-min-microvolt = <1200000>;
-					regulator-max-microvolt = <3700000>;
+					regulator-min-microvolt = <2500000>;
+					regulator-max-microvolt = <2500000>;
 					regulator-always-on;
 
 					regulator-state-standby {
@@ -288,8 +287,8 @@ regulator-state-mem {
 
 				LDO2 {
 					regulator-name = "LDO2";
-					regulator-min-microvolt = <1200000>;
-					regulator-max-microvolt = <3700000>;
+					regulator-min-microvolt = <3300000>;
+					regulator-max-microvolt = <3300000>;
 					regulator-always-on;
 
 					regulator-state-standby {
arch/arm/boot/dts/at91-sama7g5ek.dts +9 -9
index 103544620fd7..b261b4da0850 100644
@@ -244,8 +244,8 @@ mcp16502@5b {
 			regulators {
 				vdd_3v3: VDD_IO {
 					regulator-name = "VDD_IO";
-					regulator-min-microvolt = <1200000>;
-					regulator-max-microvolt = <3700000>;
+					regulator-min-microvolt = <3300000>;
+					regulator-max-microvolt = <3300000>;
 					regulator-initial-mode = <2>;
 					regulator-allowed-modes = <2>, <4>;
 					regulator-always-on;
@@ -264,8 +264,8 @@ regulator-state-mem {
 
 				vddioddr: VDD_DDR {
 					regulator-name = "VDD_DDR";
-					regulator-min-microvolt = <1300000>;
-					regulator-max-microvolt = <1450000>;
+					regulator-min-microvolt = <1350000>;
+					regulator-max-microvolt = <1350000>;
 					regulator-initial-mode = <2>;
 					regulator-allowed-modes = <2>, <4>;
 					regulator-always-on;
@@ -285,8 +285,8 @@ regulator-state-mem {
 
 				vddcore: VDD_CORE {
 					regulator-name = "VDD_CORE";
-					regulator-min-microvolt = <1100000>;
-					regulator-max-microvolt = <1850000>;
+					regulator-min-microvolt = <1150000>;
+					regulator-max-microvolt = <1150000>;
 					regulator-initial-mode = <2>;
 					regulator-allowed-modes = <2>, <4>;
 					regulator-always-on;
@@ -306,7 +306,7 @@ regulator-state-mem {
 				vddcpu: VDD_OTHER {
 					regulator-name = "VDD_OTHER";
 					regulator-min-microvolt = <1050000>;
-					regulator-max-microvolt = <1850000>;
+					regulator-max-microvolt = <1250000>;
 					regulator-initial-mode = <2>;
 					regulator-allowed-modes = <2>, <4>;
 					regulator-ramp-delay = <3125>;
@@ -326,8 +326,8 @@ regulator-state-mem {
 
 				vldo1: LDO1 {
 					regulator-name = "LDO1";
-					regulator-min-microvolt = <1200000>;
-					regulator-max-microvolt = <3700000>;
+					regulator-min-microvolt = <1800000>;
+					regulator-max-microvolt = <1800000>;
 					regulator-always-on;
 
 					regulator-state-standby {
arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi +1 -11
index 095c9143d99a..6b791d515e29 100644
@@ -51,16 +51,6 @@ reg_3p3v_s0: regulator-3p3v-s0 {
 		vin-supply = <&reg_3p3v_s5>;
 	};
 
-	reg_3p3v_s0: regulator-3p3v-s0 {
-		compatible = "regulator-fixed";
-		regulator-name = "V_3V3_S0";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-		regulator-always-on;
-		regulator-boot-on;
-		vin-supply = <&reg_3p3v_s5>;
-	};
-
 	reg_3p3v_s5: regulator-3p3v-s5 {
 		compatible = "regulator-fixed";
 		regulator-name = "V_3V3_S5";
@@ -259,7 +249,7 @@ &ecspi4 {
 
 	/* default boot source: workaround #1 for errata ERR006282 */
 	smarc_flash: flash@0 {
-		compatible = "winbond,w25q16dw", "jedec,spi-nor";
+		compatible = "jedec,spi-nor";
 		reg = <0>;
 		spi-max-frequency = <20000000>;
 	};
arch/arm/boot/dts/imx6qdl-vicut1.dtsi +1 -1
index a1676b5d2980..c5a98b0110dd 100644
@@ -28,7 +28,7 @@ backlight_lcd: backlight {
 		enable-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>;
 	};
 
-	backlight_led: backlight_led {
+	backlight_led: backlight-led {
 		compatible = "pwm-backlight";
 		pwms = <&pwm3 0 5000000 0>;
 		brightness-levels = <0 16 64 255>;
arch/arm/mach-at91/pm.c +32 -4
index df6d673e83d5..f4501dea98b0 100644
@@ -541,9 +541,41 @@ extern u32 at91_pm_suspend_in_sram_sz;
 
 static int at91_suspend_finish(unsigned long val)
 {
+	unsigned char modified_gray_code[] = {
+		0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x04, 0x05, 0x0c, 0x0d,
+		0x0e, 0x0f, 0x0a, 0x0b, 0x08, 0x09, 0x18, 0x19, 0x1a, 0x1b,
+		0x1e, 0x1f, 0x1c, 0x1d, 0x14, 0x15, 0x16, 0x17, 0x12, 0x13,
+		0x10, 0x11,
+	};
+	unsigned int tmp, index;
 	int i;
 
 	if (soc_pm.data.mode == AT91_PM_BACKUP && soc_pm.data.ramc_phy) {
+		/*
+		 * Bootloader will perform DDR recalibration and will try to
+		 * restore the ZQ0SR0 with the value saved here. But the
+		 * calibration is buggy and restoring some values from ZQ0SR0
+		 * is forbidden and risky thus we need to provide processed
+		 * values for these (modified gray code values).
+		 */
+		tmp = readl(soc_pm.data.ramc_phy + DDR3PHY_ZQ0SR0);
+
+		/* Store pull-down output impedance select. */
+		index = (tmp >> DDR3PHY_ZQ0SR0_PDO_OFF) & 0x1f;
+		soc_pm.bu->ddr_phy_calibration[0] = modified_gray_code[index];
+
+		/* Store pull-up output impedance select. */
+		index = (tmp >> DDR3PHY_ZQ0SR0_PUO_OFF) & 0x1f;
+		soc_pm.bu->ddr_phy_calibration[0] |= modified_gray_code[index];
+
+		/* Store pull-down on-die termination impedance select. */
+		index = (tmp >> DDR3PHY_ZQ0SR0_PDODT_OFF) & 0x1f;
+		soc_pm.bu->ddr_phy_calibration[0] |= modified_gray_code[index];
+
+		/* Store pull-up on-die termination impedance select. */
+		index = (tmp >> DDR3PHY_ZQ0SRO_PUODT_OFF) & 0x1f;
+		soc_pm.bu->ddr_phy_calibration[0] |= modified_gray_code[index];
+
 		/*
 		 * The 1st 8 words of memory might get corrupted in the process
 		 * of DDR PHY recalibration; it is saved here in securam and it
@@ -1066,10 +1098,6 @@ static int __init at91_pm_backup_init(void)
 		of_scan_flat_dt(at91_pm_backup_scan_memcs, &located);
 		if (!located)
 			goto securam_fail;
-
-		/* DDR3PHY_ZQ0SR0 */
-		soc_pm.bu->ddr_phy_calibration[0] = readl(soc_pm.data.ramc_phy +
-							  0x188);
 	}
 
 	return 0;
arch/arm/mach-at91/pm_suspend.S +17 -7
index abe4ced33eda..ffed4d949042 100644
@@ -172,9 +172,15 @@ sr_ena_2:
 	/* Put DDR PHY's DLL in bypass mode for non-backup modes. */
 	cmp	r7, #AT91_PM_BACKUP
 	beq	sr_ena_3
-	ldr	tmp1, [r3, #DDR3PHY_PIR]
-	orr	tmp1, tmp1, #DDR3PHY_PIR_DLLBYP
-	str	tmp1, [r3, #DDR3PHY_PIR]
+
+	/* Disable DX DLLs. */
+	ldr	tmp1, [r3, #DDR3PHY_DX0DLLCR]
+	orr	tmp1, tmp1, #DDR3PHY_DXDLLCR_DLLDIS
+	str	tmp1, [r3, #DDR3PHY_DX0DLLCR]
+
+	ldr	tmp1, [r3, #DDR3PHY_DX1DLLCR]
+	orr	tmp1, tmp1, #DDR3PHY_DXDLLCR_DLLDIS
+	str	tmp1, [r3, #DDR3PHY_DX1DLLCR]
 
 sr_ena_3:
 	/* Power down DDR PHY data receivers. */
@@ -221,10 +227,14 @@ sr_ena_3:
 	bic	tmp1, tmp1, #DDR3PHY_DSGCR_ODTPDD_ODT0
 	str	tmp1, [r3, #DDR3PHY_DSGCR]
 
-	/* Take DDR PHY's DLL out of bypass mode. */
-	ldr	tmp1, [r3, #DDR3PHY_PIR]
-	bic	tmp1, tmp1, #DDR3PHY_PIR_DLLBYP
-	str	tmp1, [r3, #DDR3PHY_PIR]
+	/* Enable DX DLLs. */
+	ldr	tmp1, [r3, #DDR3PHY_DX0DLLCR]
+	bic	tmp1, tmp1, #DDR3PHY_DXDLLCR_DLLDIS
+	str	tmp1, [r3, #DDR3PHY_DX0DLLCR]
+
+	ldr	tmp1, [r3, #DDR3PHY_DX1DLLCR]
+	bic	tmp1, tmp1, #DDR3PHY_DXDLLCR_DLLDIS
+	str	tmp1, [r3, #DDR3PHY_DX1DLLCR]
 
 	/* Enable quasi-dynamic programming. */
 	mov	tmp1, #0
arch/arm64/Kconfig +19 -0
index 001eaba5a6b4..cc1e7bb49d38 100644
@@ -914,6 +914,23 @@ config ARM64_ERRATUM_1902691
 
 	  If unsure, say Y.
 
+config ARM64_ERRATUM_2457168
+	bool "Cortex-A510: 2457168: workaround for AMEVCNTR01 incrementing incorrectly"
+	depends on ARM64_AMU_EXTN
+	default y
+	help
+	  This option adds the workaround for ARM Cortex-A510 erratum 2457168.
+
+	  The AMU counter AMEVCNTR01 (constant counter) should increment at the same rate
+	  as the system counter. On affected Cortex-A510 cores AMEVCNTR01 increments
+	  incorrectly giving a significantly higher output value.
+
+	  Work around this problem by returning 0 when reading the affected counter in
+	  key locations that results in disabling all users of this counter. This effect
+	  is the same to firmware disabling affected counters.
+
+	  If unsure, say Y.
+
 config CAVIUM_ERRATUM_22375
 	bool "Cavium erratum 22375, 24313"
 	default y
@@ -1867,6 +1884,8 @@ config ARM64_BTI_KERNEL
 	depends on CC_HAS_BRANCH_PROT_PAC_RET_BTI
 	# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94697
 	depends on !CC_IS_GCC || GCC_VERSION >= 100100
+	# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106671
+	depends on !CC_IS_GCC
 	# https://github.com/llvm/llvm-project/commit/a88c722e687e6780dcd6a58718350dc76fcc4cc9
 	depends on !CC_IS_CLANG || CLANG_VERSION >= 120000
 	depends on (!FUNCTION_GRAPH_TRACER || DYNAMIC_FTRACE_WITH_REGS)
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-65bb.dts +0 -1
index 40d34c8384a5..b949cac03742 100644
@@ -25,7 +25,6 @@ slot1_sgmii: ethernet-phy@2 {
 &enetc_port0 {
 	phy-handle = <&slot1_sgmii>;
 	phy-mode = "2500base-x";
-	managed = "in-band-status";
 	status = "okay";
 };
 
arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dts +4 -0
index 24737e89038a..96cac0f969a7 100644
@@ -626,24 +626,28 @@ ports {
 			lan1: port@0 {
 				reg = <0>;
 				label = "lan1";
+				phy-mode = "internal";
 				local-mac-address = [00 00 00 00 00 00];
 			};
 
 			lan2: port@1 {
 				reg = <1>;
 				label = "lan2";
+				phy-mode = "internal";
 				local-mac-address = [00 00 00 00 00 00];
 			};
 
 			lan3: port@2 {
 				reg = <2>;
 				label = "lan3";
+				phy-mode = "internal";
 				local-mac-address = [00 00 00 00 00 00];
 			};
 
 			lan4: port@3 {
 				reg = <3>;
 				label = "lan4";
+				phy-mode = "internal";
 				local-mac-address = [00 00 00 00 00 00];
 			};
 
arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi +6 -5
index eafa88d980b3..c2d4da25482f 100644
@@ -32,10 +32,10 @@ backlight: backlight {
 	};
 
 	/* Fixed clock dedicated to SPI CAN controller */
-	clk20m: oscillator {
+	clk40m: oscillator {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
-		clock-frequency = <20000000>;
+		clock-frequency = <40000000>;
 	};
 
 	gpio-keys {
@@ -194,8 +194,8 @@ &ecspi3 {
 
 	can1: can@0 {
 		compatible = "microchip,mcp251xfd";
-		clocks = <&clk20m>;
-		interrupts-extended = <&gpio1 6 IRQ_TYPE_EDGE_FALLING>;
+		clocks = <&clk40m>;
+		interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_LOW>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_can1_int>;
 		reg = <0>;
@@ -595,7 +595,7 @@ atmel_mxt_ts: touch@4a {
 		pinctrl-0 = <&pinctrl_gpio_9_dsi>, <&pinctrl_i2s_2_bclk_touch_reset>;
 		reg = <0x4a>;
 		/* Verdin I2S_2_BCLK (TOUCH_RESET#, SODIMM 42) */
-		reset-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
+		reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
 		status = "disabled";
 	};
 
@@ -737,6 +737,7 @@ &usbphynop1 {
 };
 
 &usbphynop2 {
+	power-domains = <&pgc_otg2>;
 	vcc-supply = <&reg_vdd_3v3>;
 };
 
arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts +4 -4
index 521215520a0f..6630ec561dc2 100644
@@ -770,10 +770,10 @@ MX8MP_IOMUXC_NAND_DATA03__GPIO3_IO09	0x110
 
 	pinctrl_sai2: sai2grp {
 		fsl,pins = <
-			MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_SAI2_TX_SYNC
-			MX8MP_IOMUXC_SAI2_TXD0__AUDIOMIX_SAI2_TX_DATA00
-			MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI2_TX_BCLK
-			MX8MP_IOMUXC_SAI2_MCLK__AUDIOMIX_SAI2_MCLK
+			MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_SAI2_TX_SYNC	0xd6
+			MX8MP_IOMUXC_SAI2_TXD0__AUDIOMIX_SAI2_TX_DATA00	0xd6
+			MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI2_TX_BCLK	0xd6
+			MX8MP_IOMUXC_SAI2_MCLK__AUDIOMIX_SAI2_MCLK	0xd6
 		>;
 	};
 
arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi +2 -2
index fb17e329cd37..f5323291a9b2 100644
@@ -620,7 +620,7 @@ atmel_mxt_ts_mezzanine: touch-mezzanine@4a {
 		interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
 		reg = <0x4a>;
 		/* Verdin GPIO_2 (SODIMM 208) */
-		reset-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
+		reset-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
 		status = "disabled";
 	};
 };
@@ -697,7 +697,7 @@ atmel_mxt_ts: touch@4a {
 		pinctrl-0 = <&pinctrl_gpio_9_dsi>, <&pinctrl_i2s_2_bclk_touch_reset>;
 		reg = <0x4a>;
 		/* Verdin I2S_2_BCLK (TOUCH_RESET#, SODIMM 42) */
-		reset-gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>;
+		reset-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
 		status = "disabled";
 	};
 
arch/arm64/boot/dts/freescale/imx8mq-tqma8mq.dtsi +0 -1
index 899e8e7dbc24..802ad6e5cef6 100644
@@ -204,7 +204,6 @@ pcf85063: rtc@51 {
 		reg = <0x51>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_rtc>;
-		interrupt-names = "irq";
 		interrupt-parent = <&gpio1>;
 		interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
 		quartz-load-femtofarads = <7000>;
arch/arm64/boot/dts/renesas/r8a779g0.dtsi +1 -1
index 7cbb0de060dd..1c15726cff8b 100644
@@ -85,7 +85,7 @@ hscif0: serial@e6540000 {
 				     "renesas,rcar-gen4-hscif",
 				     "renesas,hscif";
 			reg = <0 0xe6540000 0 96>;
-			interrupts = <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>;
+			interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 514>,
 				 <&cpg CPG_CORE R8A779G0_CLK_S0D3_PER>,
 				 <&scif_clk>;
arch/arm64/kernel/cpu_errata.c +10 -0
index 5f4117dae888..af137f91607d 100644
@@ -656,6 +656,16 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
 		ERRATA_MIDR_REV_RANGE(MIDR_CORTEX_A510, 0, 0, 2)
 	},
 #endif
+#ifdef CONFIG_ARM64_ERRATUM_2457168
+	{
+		.desc = "ARM erratum 2457168",
+		.capability = ARM64_WORKAROUND_2457168,
+		.type = ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE,
+
+		/* Cortex-A510 r0p0-r1p1 */
+		CAP_MIDR_RANGE(MIDR_CORTEX_A510, 0, 0, 1, 1)
+	},
+#endif
 #ifdef CONFIG_ARM64_ERRATUM_2038923
 	{
 		.desc = "ARM erratum 2038923",
arch/arm64/kernel/cpufeature.c +4 -1
index ebdfbd1cf207..f34c9f8b9ee0 100644
@@ -1798,7 +1798,10 @@ static void cpu_amu_enable(struct arm64_cpu_capabilities const *cap)
 		pr_info("detected CPU%d: Activity Monitors Unit (AMU)\n",
 			smp_processor_id());
 		cpumask_set_cpu(smp_processor_id(), &amu_cpus);
-		update_freq_counters_refs();
+
+		/* 0 reference values signal broken/disabled counters */
+		if (!this_cpu_has_cap(ARM64_WORKAROUND_2457168))
+			update_freq_counters_refs();
 	}
 }
 
arch/arm64/kernel/hibernate.c +5 -0
index af5df48ba915..2e248342476e 100644
@@ -300,6 +300,11 @@ static void swsusp_mte_restore_tags(void)
 		unsigned long pfn = xa_state.xa_index;
 		struct page *page = pfn_to_online_page(pfn);
 
+		/*
+		 * It is not required to invoke page_kasan_tag_reset(page)
+		 * at this point since the tags stored in page->flags are
+		 * already restored.
+		 */
 		mte_restore_page_tags(page_address(page), tags);
 
 		mte_free_tag_storage(tags);
arch/arm64/kernel/mte.c +9 -0
index b2b730233274..f6b00743c399 100644
@@ -48,6 +48,15 @@ static void mte_sync_page_tags(struct page *page, pte_t old_pte,
 	if (!pte_is_tagged)
 		return;
 
+	page_kasan_tag_reset(page);
+	/*
+	 * We need smp_wmb() in between setting the flags and clearing the
+	 * tags because if another thread reads page->flags and builds a
+	 * tagged address out of it, there is an actual dependency to the
+	 * memory access, but on the current thread we do not guarantee that
+	 * the new page->flags are visible before the tags were updated.
+	 */
+	smp_wmb();
 	mte_clear_page_tags(page_address(page));
 }
 
arch/arm64/kernel/topology.c +30 -2
index 9ab78ad826e2..707b5451929d 100644
@@ -310,12 +310,25 @@ core_initcall(init_amu_fie);
 
 static void cpu_read_corecnt(void *val)
 {
+	/*
+	 * A value of 0 can be returned if the current CPU does not support AMUs
+	 * or if the counter is disabled for this CPU. A return value of 0 at
+	 * counter read is properly handled as an error case by the users of the
+	 * counter.
+	 */
 	*(u64 *)val = read_corecnt();
 }
 
 static void cpu_read_constcnt(void *val)
 {
-	*(u64 *)val = read_constcnt();
+	/*
+	 * Return 0 if the current CPU is affected by erratum 2457168. A value
+	 * of 0 is also returned if the current CPU does not support AMUs or if
+	 * the counter is disabled. A return value of 0 at counter read is
+	 * properly handled as an error case by the users of the counter.
+	 */
+	*(u64 *)val = this_cpu_has_cap(ARM64_WORKAROUND_2457168) ?
+		      0UL : read_constcnt();
 }
 
 static inline
@@ -342,7 +355,22 @@ int counters_read_on_cpu(int cpu, smp_call_func_t func, u64 *val)
  */
 bool cpc_ffh_supported(void)
 {
-	return freq_counters_valid(get_cpu_with_amu_feat());
+	int cpu = get_cpu_with_amu_feat();
+
+	/*
+	 * FFH is considered supported if there is at least one present CPU that
+	 * supports AMUs. Using FFH to read core and reference counters for CPUs
+	 * that do not support AMUs, have counters disabled or that are affected
+	 * by errata, will result in a return value of 0.
+	 *
+	 * This is done to allow any enabled and valid counters to be read
+	 * through FFH, knowing that potentially returning 0 as counter value is
+	 * properly handled by the users of these counters.
+	 */
+	if ((cpu >= nr_cpu_ids) || !cpumask_test_cpu(cpu, cpu_present_mask))
+		return false;
+
+	return true;
 }
 
 int cpc_read_ffh(int cpu, struct cpc_reg *reg, u64 *val)
arch/arm64/mm/copypage.c +9 -0
index 24913271e898..0dea80bf6de4 100644
@@ -23,6 +23,15 @@ void copy_highpage(struct page *to, struct page *from)
 
 	if (system_supports_mte() && test_bit(PG_mte_tagged, &from->flags)) {
 		set_bit(PG_mte_tagged, &to->flags);
+		page_kasan_tag_reset(to);
+		/*
+		 * We need smp_wmb() in between setting the flags and clearing the
+		 * tags because if another thread reads page->flags and builds a
+		 * tagged address out of it, there is an actual dependency to the
+		 * memory access, but on the current thread we do not guarantee that
+		 * the new page->flags are visible before the tags were updated.
+		 */
+		smp_wmb();
 		mte_copy_page_tags(kto, kfrom);
 	}
 }
arch/arm64/mm/mteswap.c +9 -0
index 4334dec93bd4..a9e50e930484 100644
@@ -53,6 +53,15 @@ bool mte_restore_tags(swp_entry_t entry, struct page *page)
 	if (!tags)
 		return false;
 
+	page_kasan_tag_reset(page);
+	/*
+	 * We need smp_wmb() in between setting the flags and clearing the
+	 * tags because if another thread reads page->flags and builds a
+	 * tagged address out of it, there is an actual dependency to the
+	 * memory access, but on the current thread we do not guarantee that
+	 * the new page->flags are visible before the tags were updated.
+	 */
+	smp_wmb();
 	mte_restore_page_tags(page_address(page), tags);
 
 	return true;
arch/arm64/tools/cpucaps +1 -0
index 8809e14cf86a..18999f46df19 100644
@@ -66,6 +66,7 @@ WORKAROUND_1902691
 WORKAROUND_2038923
 WORKAROUND_2064142
 WORKAROUND_2077057
+WORKAROUND_2457168
 WORKAROUND_TRBE_OVERWRITE_FILL_MODE
 WORKAROUND_TSB_FLUSH_FAILURE
 WORKAROUND_TRBE_WRITE_OUT_OF_RANGE
arch/mips/loongson32/ls1c/board.c +0 -1
index e9de6da0ce51..9dcfe9de55b0 100644
@@ -15,7 +15,6 @@ static struct platform_device *ls1c_platform_devices[] __initdata = {
 static int __init ls1c_platform_init(void)
 {
 	ls1x_serial_set_uartclk(&ls1x_uart_pdev);
-	ls1x_rtc_set_extclk(&ls1x_rtc_pdev);
 
 	return platform_add_devices(ls1c_platform_devices,
 				   ARRAY_SIZE(ls1c_platform_devices));
arch/parisc/include/asm/bitops.h +0 -8
index 56ffd260c669..0ec9cfc5131f 100644
@@ -12,14 +12,6 @@
 #include <asm/barrier.h>
 #include <linux/atomic.h>
 
-/* compiler build environment sanity checks: */
-#if !defined(CONFIG_64BIT) && defined(__LP64__)
-#error "Please use 'ARCH=parisc' to build the 32-bit kernel."
-#endif
-#if defined(CONFIG_64BIT) && !defined(__LP64__)
-#error "Please use 'ARCH=parisc64' to build the 64-bit kernel."
-#endif
-
 /* See http://marc.theaimsgroup.com/?t=108826637900003 for discussion
  * on use of volatile and __*_bit() (set/clear/change):
  *	*_bit() want use of volatile.
arch/parisc/kernel/head.S +42 -1

55 lines not on this page · raw message

arch/riscv/boot/dts/microchip/mpfs.dtsi +1 -1
index 9f5bce1488d9..9bf37ef37950 100644
@@ -161,7 +161,7 @@ soc {
 		ranges;
 
 		cctrllr: cache-controller@2010000 {
-			compatible = "sifive,fu540-c000-ccache", "cache";
+			compatible = "microchip,mpfs-ccache", "sifive,fu540-c000-ccache", "cache";
 			reg = <0x0 0x2010000 0x0 0x1000>;
 			cache-block-size = <64>;
 			cache-level = <2>;
arch/s390/kernel/nmi.c +1 -1
index 53ed3884fe64..5d66e3947070 100644
@@ -63,7 +63,7 @@ static inline unsigned long nmi_get_mcesa_size(void)
  * structure. The structure is required for machine check happening
  * early in the boot process.
  */
-static struct mcesa boot_mcesa __initdata __aligned(MCESA_MAX_SIZE);
+static struct mcesa boot_mcesa __aligned(MCESA_MAX_SIZE);
 
 void __init nmi_alloc_mcesa_early(u64 *mcesad)
 {
arch/s390/kernel/setup.c +1 -0
index 0a37f5de2863..3e0361db963e 100644
@@ -486,6 +486,7 @@ static void __init setup_lowcore_dat_off(void)
 	put_abs_lowcore(restart_data, lc->restart_data);
 	put_abs_lowcore(restart_source, lc->restart_source);
 	put_abs_lowcore(restart_psw, lc->restart_psw);
+	put_abs_lowcore(mcesad, lc->mcesad);
 
 	lc->spinlock_lockval = arch_spin_lockval(0);
 	lc->spinlock_index = 0;
arch/x86/include/asm/sev.h +1 -1
index 4a23e52fe0ee..ebc271bb6d8e 100644
@@ -195,7 +195,7 @@ void snp_set_memory_shared(unsigned long vaddr, unsigned int npages);
 void snp_set_memory_private(unsigned long vaddr, unsigned int npages);
 void snp_set_wakeup_secondary_cpu(void);
 bool snp_init(struct boot_params *bp);
-void snp_abort(void);
+void __init __noreturn snp_abort(void);
 int snp_issue_guest_request(u64 exit_code, struct snp_req_data *input, unsigned long *fw_err);
 #else
 static inline void sev_es_ist_enter(struct pt_regs *regs) { }
arch/x86/kernel/sev.c +1 -1
index 4f84c3f11af5..a428c62330d3 100644
@@ -2112,7 +2112,7 @@ bool __init snp_init(struct boot_params *bp)
 	return true;
 }
 
-void __init snp_abort(void)
+void __init __noreturn snp_abort(void)
 {
 	sev_es_terminate(SEV_TERM_SET_GEN, GHCB_SNP_UNSUPPORTED);
 }
block/partitions/core.c +3 -0
index 8a0ec929023b..76617b1d2d47 100644
@@ -597,6 +597,9 @@ static int blk_add_partitions(struct gendisk *disk)
 	if (disk->flags & GENHD_FL_NO_PART)
 		return 0;
 
+	if (test_bit(GD_SUPPRESS_PART_SCAN, &disk->state))
+		return 0;
+
 	state = check_partition(disk);
 	if (!state)
 		return 0;
drivers/base/driver.c +6 -0
index 15a75afe6b84..676b6275d5b5 100644
@@ -63,6 +63,12 @@ int driver_set_override(struct device *dev, const char **override,
 	if (len >= (PAGE_SIZE - 1))
 		return -EINVAL;
 
+	/*
+	 * Compute the real length of the string in case userspace sends us a
+	 * bunch of \0 characters like python likes to do.
+	 */
+	len = strlen(s);
+
 	if (!len) {
 		/* Empty string passed - clear override */
 		device_lock(dev);
drivers/base/regmap/regmap-spi.c +8 -0
index 719323bc6c7f..37ab23a9d034 100644
@@ -113,6 +113,7 @@ static const struct regmap_bus *regmap_get_spi_bus(struct spi_device *spi,
 						   const struct regmap_config *config)
 {
 	size_t max_size = spi_max_transfer_size(spi);
+	size_t max_msg_size, reg_reserve_size;
 	struct regmap_bus *bus;
 
 	if (max_size != SIZE_MAX) {
@@ -120,9 +121,16 @@ static const struct regmap_bus *regmap_get_spi_bus(struct spi_device *spi,
 		if (!bus)
 			return ERR_PTR(-ENOMEM);
 
+		max_msg_size = spi_max_message_size(spi);
+		reg_reserve_size = config->reg_bits / BITS_PER_BYTE
+				 + config->pad_bits / BITS_PER_BYTE;
+		if (max_size + reg_reserve_size > max_msg_size)
+			max_size -= reg_reserve_size;
+
 		bus->free_on_exit = true;
 		bus->max_raw_read = max_size;
 		bus->max_raw_write = max_size;
+
 		return bus;
 	}
 
drivers/cpufreq/cpufreq.c +1 -1
index 2cad42774164..f9fd1b6c15d4 100644
@@ -532,7 +532,7 @@ static unsigned int __resolve_freq(struct cpufreq_policy *policy,
 
 	target_freq = clamp_val(target_freq, policy->min, policy->max);
 
-	if (!cpufreq_driver->target_index)
+	if (!policy->freq_table)
 		return target_freq;
 
 	idx = cpufreq_frequency_table_target(policy, target_freq, relation);
drivers/firmware/efi/capsule-loader.c +7 -24
index 4dde8edd53b6..3e8d4b51a814 100644
@@ -242,29 +242,6 @@ static ssize_t efi_capsule_write(struct file *file, const char __user *buff,
 	return ret;
 }
 
-/**
- * efi_capsule_flush - called by file close or file flush
- * @file: file pointer
- * @id: not used
- *
- *	If a capsule is being partially uploaded then calling this function
- *	will be treated as upload termination and will free those completed
- *	buffer pages and -ECANCELED will be returned.
- **/
-static int efi_capsule_flush(struct file *file, fl_owner_t id)
-{
-	int ret = 0;
-	struct capsule_info *cap_info = file->private_data;
-
-	if (cap_info->index > 0) {
-		pr_err("capsule upload not complete\n");
-		efi_free_all_buff_pages(cap_info);
-		ret = -ECANCELED;
-	}
-
-	return ret;
-}
-
 /**
  * efi_capsule_release - called by file close
  * @inode: not used
@@ -277,6 +254,13 @@ static int efi_capsule_release(struct inode *inode, struct file *file)
 {
 	struct capsule_info *cap_info = file->private_data;
 
+	if (cap_info->index > 0 &&
+	    (cap_info->header.headersize == 0 ||
+	     cap_info->count < cap_info->total_size)) {
+		pr_err("capsule upload not complete\n");
+		efi_free_all_buff_pages(cap_info);
+	}
+
 	kfree(cap_info->pages);
 	kfree(cap_info->phys);
 	kfree(file->private_data);
@@ -324,7 +308,6 @@ static const struct file_operations efi_capsule_fops = {
 	.owner = THIS_MODULE,
 	.open = efi_capsule_open,
 	.write = efi_capsule_write,
-	.flush = efi_capsule_flush,
 	.release = efi_capsule_release,
 	.llseek = no_llseek,
 };
drivers/firmware/efi/libstub/Makefile +7 -0
index d0537573501e..2c67f71f2375 100644
@@ -37,6 +37,13 @@ KBUILD_CFLAGS			:= $(cflags-y) -Os -DDISABLE_BRANCH_PROFILING \
 				   $(call cc-option,-fno-addrsig) \
 				   -D__DISABLE_EXPORTS
 
+#
+# struct randomization only makes sense for Linux internal types, which the EFI
+# stub code never touches, so let's turn off struct randomization for the stub
+# altogether
+#
+KBUILD_CFLAGS := $(filter-out $(RANDSTRUCT_CFLAGS), $(KBUILD_CFLAGS))
+
 # remove SCS flags from all objects in this directory
 KBUILD_CFLAGS := $(filter-out $(CC_FLAGS_SCS), $(KBUILD_CFLAGS))
 # disable LTO
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +2 -2
index 3adebb63680e..67d4a3c13ed1 100644
@@ -2482,12 +2482,14 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)
 			if (!hive->reset_domain ||
 			    !amdgpu_reset_get_reset_domain(hive->reset_domain)) {
 				r = -ENOENT;
+				amdgpu_put_xgmi_hive(hive);
 				goto init_failed;
 			}
 
 			/* Drop the early temporary reset domain we created for device */
 			amdgpu_reset_put_reset_domain(adev->reset_domain);
 			adev->reset_domain = hive->reset_domain;
+			amdgpu_put_xgmi_hive(hive);
 		}
 	}
 
@@ -4473,8 +4475,6 @@ static int amdgpu_device_reset_sriov(struct amdgpu_device *adev,
 retry:
 	amdgpu_amdkfd_pre_reset(adev);
 
-	amdgpu_amdkfd_pre_reset(adev);
-
 	if (from_hypervisor)
 		r = amdgpu_virt_request_full_gpu(adev, true);
 	else
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +3 -0
index e9411c28d88b..2b00f8fe15a8 100644
@@ -2612,6 +2612,9 @@ static int psp_hw_fini(void *handle)
 		psp_rap_terminate(psp);
 		psp_dtm_terminate(psp);
 		psp_hdcp_terminate(psp);
+
+		if (adev->gmc.xgmi.num_physical_nodes > 1)
+			psp_xgmi_terminate(psp);
 	}
 
 	psp_asd_terminate(psp);
drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c +1 -1
index 1b108d03e785..f2aebbf3fbe3 100644
@@ -742,7 +742,7 @@ int amdgpu_xgmi_remove_device(struct amdgpu_device *adev)
 		amdgpu_put_xgmi_hive(hive);
 	}
 
-	return psp_xgmi_terminate(&adev->psp);
+	return 0;
 }
 
 static int amdgpu_xgmi_ras_late_init(struct amdgpu_device *adev, struct ras_common_if *ras_block)
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c +12 -6
index a4a6751b1e44..30998ac47707 100644
@@ -5090,9 +5090,12 @@ static void gfx_v11_0_update_coarse_grain_clock_gating(struct amdgpu_device *ade
 		data = REG_SET_FIELD(data, SDMA0_RLC_CGCG_CTRL, CGCG_INT_ENABLE, 1);
 		WREG32_SOC15(GC, 0, regSDMA0_RLC_CGCG_CTRL, data);
 
-		data = RREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL);
-		data = REG_SET_FIELD(data, SDMA1_RLC_CGCG_CTRL, CGCG_INT_ENABLE, 1);
-		WREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL, data);
+		/* Some ASICs only have one SDMA instance, not need to configure SDMA1 */
+		if (adev->sdma.num_instances > 1) {
+			data = RREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL);
+			data = REG_SET_FIELD(data, SDMA1_RLC_CGCG_CTRL, CGCG_INT_ENABLE, 1);
+			WREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL, data);
+		}
 	} else {
 		/* Program RLC_CGCG_CGLS_CTRL */
 		def = data = RREG32_SOC15(GC, 0, regRLC_CGCG_CGLS_CTRL);
@@ -5121,9 +5124,12 @@ static void gfx_v11_0_update_coarse_grain_clock_gating(struct amdgpu_device *ade
 		data &= ~SDMA0_RLC_CGCG_CTRL__CGCG_INT_ENABLE_MASK;
 		WREG32_SOC15(GC, 0, regSDMA0_RLC_CGCG_CTRL, data);
 
-		data = RREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL);
-		data &= ~SDMA1_RLC_CGCG_CTRL__CGCG_INT_ENABLE_MASK;
-		WREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL, data);
+		/* Some ASICs only have one SDMA instance, not need to configure SDMA1 */
+		if (adev->sdma.num_instances > 1) {
+			data = RREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL);
+			data &= ~SDMA1_RLC_CGCG_CTRL__CGCG_INT_ENABLE_MASK;
+			WREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL, data);
+		}
 	}
 }
 
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +2 -1
index 5349ca4d19e3..6d8ff3b09942 100644
@@ -2587,7 +2587,8 @@ static void gfx_v9_0_constants_init(struct amdgpu_device *adev)
 
 	gfx_v9_0_tiling_mode_table_init(adev);
 
-	gfx_v9_0_setup_rb(adev);
+	if (adev->gfx.num_gfx_rings)
+		gfx_v9_0_setup_rb(adev);
 	gfx_v9_0_get_cu_info(adev, &adev->gfx.cu_info);
 	adev->gfx.config.db_debug2 = RREG32_SOC15(GC, 0, mmDB_DEBUG2);
 
drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c +1 -0
index 3f44a099c52a..3e51e773f92b 100644
@@ -176,6 +176,7 @@ static void mmhub_v1_0_init_cache_regs(struct amdgpu_device *adev)
 	tmp = REG_SET_FIELD(tmp, VM_L2_CNTL2, INVALIDATE_L2_CACHE, 1);
 	WREG32_SOC15(MMHUB, 0, mmVM_L2_CNTL2, tmp);
 
+	tmp = mmVM_L2_CNTL3_DEFAULT;
 	if (adev->gmc.translate_further) {
 		tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3, BANK_SELECT, 12);
 		tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +1 -1
index c7a592d68feb..275bfb8ca6f8 100644
@@ -3188,7 +3188,7 @@ void crtc_debugfs_init(struct drm_crtc *crtc)
 				   &crc_win_y_end_fops);
 	debugfs_create_file_unsafe("crc_win_update", 0644, dir, crtc,
 				   &crc_win_update_fops);
-
+	dput(dir);
 }
 #endif
 /*
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.c +17 -1
index 30c6f9cd717f..27fbe906682f 100644
@@ -41,6 +41,12 @@
 #define FN(reg_name, field) \
 	FD(reg_name##__##field)
 
+#include "logger_types.h"
+#undef DC_LOGGER
+#define DC_LOGGER \
+	CTX->logger
+#define smu_print(str, ...) {DC_LOG_SMU(str, ##__VA_ARGS__); }
+
 #define VBIOSSMC_MSG_TestMessage                  0x1
 #define VBIOSSMC_MSG_GetSmuVersion                0x2
 #define VBIOSSMC_MSG_PowerUpGfx                   0x3
@@ -95,7 +101,13 @@ static int rn_vbios_smu_send_msg_with_param(struct clk_mgr_internal *clk_mgr,
 	uint32_t result;
 
 	result = rn_smu_wait_for_response(clk_mgr, 10, 200000);
-	ASSERT(result == VBIOSSMC_Result_OK);
+
+	if (result != VBIOSSMC_Result_OK)
+		smu_print("SMU Response was not OK. SMU response after wait received is: %d\n", result);
+
+	if (result == VBIOSSMC_Status_BUSY) {
+		return -1;
+	}
 
 	/* First clear response register */
 	REG_WRITE(MP1_SMN_C2PMSG_91, VBIOSSMC_Status_BUSY);
@@ -176,6 +188,10 @@ int rn_vbios_smu_set_hard_min_dcfclk(struct clk_mgr_internal *clk_mgr, int reque
 			VBIOSSMC_MSG_SetHardMinDcfclkByFreq,
 			khz_to_mhz_ceil(requested_dcfclk_khz));
 
+#ifdef DBG
+	smu_print("actual_dcfclk_set_mhz %d is set to : %d\n", actual_dcfclk_set_mhz, actual_dcfclk_set_mhz * 1000);
+#endif
+
 	return actual_dcfclk_set_mhz * 1000;
 }
 
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/dcn301_smu.c +17 -0
index 1cae01a91a69..e4f96b6fd79d 100644
@@ -41,6 +41,12 @@
 #define FN(reg_name, field) \
 	FD(reg_name##__##field)
 
+#include "logger_types.h"
+#undef DC_LOGGER
+#define DC_LOGGER \
+	CTX->logger
+#define smu_print(str, ...) {DC_LOG_SMU(str, ##__VA_ARGS__); }
+
 #define VBIOSSMC_MSG_GetSmuVersion                0x2
 #define VBIOSSMC_MSG_SetDispclkFreq               0x4
 #define VBIOSSMC_MSG_SetDprefclkFreq              0x5
@@ -96,6 +102,13 @@ static int dcn301_smu_send_msg_with_param(struct clk_mgr_internal *clk_mgr,
 
 	result = dcn301_smu_wait_for_response(clk_mgr, 10, 200000);
 
+	if (result != VBIOSSMC_Result_OK)
+		smu_print("SMU Response was not OK. SMU response after wait received is: %d\n", result);
+
+	if (result == VBIOSSMC_Status_BUSY) {
+		return -1;
+	}
+
 	/* First clear response register */
 	REG_WRITE(MP1_SMN_C2PMSG_91, VBIOSSMC_Status_BUSY);
 
@@ -167,6 +180,10 @@ int dcn301_smu_set_hard_min_dcfclk(struct clk_mgr_internal *clk_mgr, int request
 			VBIOSSMC_MSG_SetHardMinDcfclkByFreq,
 			khz_to_mhz_ceil(requested_dcfclk_khz));
 
+#ifdef DBG
+	smu_print("actual_dcfclk_set_mhz %d is set to : %d\n", actual_dcfclk_set_mhz, actual_dcfclk_set_mhz * 1000);
+#endif
+
 	return actual_dcfclk_set_mhz * 1000;
 }
 
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c +13 -1
index c5d7d075026f..090b2c02aee1 100644
@@ -40,6 +40,12 @@
 #define FN(reg_name, field) \
 	FD(reg_name##__##field)
 
+#include "logger_types.h"
+#undef DC_LOGGER
+#define DC_LOGGER \
+	CTX->logger
+#define smu_print(str, ...) {DC_LOG_SMU(str, ##__VA_ARGS__); }
+
 #define VBIOSSMC_MSG_TestMessage                  0x1
 #define VBIOSSMC_MSG_GetSmuVersion                0x2
 #define VBIOSSMC_MSG_PowerUpGfx                   0x3
@@ -102,7 +108,9 @@ static int dcn31_smu_send_msg_with_param(struct clk_mgr_internal *clk_mgr,
 	uint32_t result;
 
 	result = dcn31_smu_wait_for_response(clk_mgr, 10, 200000);
-	ASSERT(result == VBIOSSMC_Result_OK);
+
+	if (result != VBIOSSMC_Result_OK)
+		smu_print("SMU Response was not OK. SMU response after wait received is: %d\n", result);
 
 	if (result == VBIOSSMC_Status_BUSY) {
 		return -1;
@@ -194,6 +202,10 @@ int dcn31_smu_set_hard_min_dcfclk(struct clk_mgr_internal *clk_mgr, int requeste
 			VBIOSSMC_MSG_SetHardMinDcfclkByFreq,
 			khz_to_mhz_ceil(requested_dcfclk_khz));
 
+#ifdef DBG
+	smu_print("actual_dcfclk_set_mhz %d is set to : %d\n", actual_dcfclk_set_mhz, actual_dcfclk_set_mhz * 1000);
+#endif
+
 	return actual_dcfclk_set_mhz * 1000;
 }
 
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_smu.c +13 -1
index 2600313fea57..925d6e13620e 100644
@@ -70,6 +70,12 @@ static const struct IP_BASE NBIO_BASE = { { { { 0x00000000, 0x00000014, 0x00000D
 #define REG_NBIO(reg_name) \
 	(NBIO_BASE.instance[0].segment[regBIF_BX_PF2_ ## reg_name ## _BASE_IDX] + regBIF_BX_PF2_ ## reg_name)
 
+#include "logger_types.h"
+#undef DC_LOGGER
+#define DC_LOGGER \
+	CTX->logger
+#define smu_print(str, ...) {DC_LOG_SMU(str, ##__VA_ARGS__); }
+
 #define mmMP1_C2PMSG_3                            0x3B1050C
 
 #define VBIOSSMC_MSG_TestMessage                  0x01 ///< To check if PMFW is alive and responding. Requirement specified by PMFW team
@@ -130,7 +136,9 @@ static int dcn315_smu_send_msg_with_param(
 	uint32_t result;
 
 	result = dcn315_smu_wait_for_response(clk_mgr, 10, 200000);
-	ASSERT(result == VBIOSSMC_Result_OK);
+
+	if (result != VBIOSSMC_Result_OK)
+		smu_print("SMU Response was not OK. SMU response after wait received is: %d\n", result);
 
 	if (result == VBIOSSMC_Status_BUSY) {
 		return -1;
@@ -197,6 +205,10 @@ int dcn315_smu_set_hard_min_dcfclk(struct clk_mgr_internal *clk_mgr, int request
 			VBIOSSMC_MSG_SetHardMinDcfclkByFreq,
 			khz_to_mhz_ceil(requested_dcfclk_khz));
 
+#ifdef DBG
+	smu_print("actual_dcfclk_set_mhz %d is set to : %d\n", actual_dcfclk_set_mhz, actual_dcfclk_set_mhz * 1000);
+#endif
+
 	return actual_dcfclk_set_mhz * 1000;
 }
 
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn316/dcn316_smu.c +13 -1
index dceec4b96052..457a9254ae1c 100644
@@ -58,6 +58,12 @@ static const struct IP_BASE MP0_BASE = { { { { 0x00016000, 0x00DC0000, 0x00E0000
 #define FN(reg_name, field) \
 	FD(reg_name##__##field)
 
+#include "logger_types.h"
+#undef DC_LOGGER
+#define DC_LOGGER \
+	CTX->logger
+#define smu_print(str, ...) {DC_LOG_SMU(str, ##__VA_ARGS__); }
+
 #define VBIOSSMC_MSG_TestMessage                  0x01 ///< To check if PMFW is alive and responding. Requirement specified by PMFW team
 #define VBIOSSMC_MSG_GetPmfwVersion               0x02 ///< Get PMFW version
 #define VBIOSSMC_MSG_Spare0                       0x03 ///< Spare0
@@ -118,7 +124,9 @@ static int dcn316_smu_send_msg_with_param(
 	uint32_t result;
 
 	result = dcn316_smu_wait_for_response(clk_mgr, 10, 200000);
-	ASSERT(result == VBIOSSMC_Result_OK);
+
+	if (result != VBIOSSMC_Result_OK)
+		smu_print("SMU Response was not OK. SMU response after wait received is: %d\n", result);
 
 	if (result == VBIOSSMC_Status_BUSY) {
 		return -1;
@@ -183,6 +191,10 @@ int dcn316_smu_set_hard_min_dcfclk(struct clk_mgr_internal *clk_mgr, int request
 			VBIOSSMC_MSG_SetHardMinDcfclkByFreq,
 			khz_to_mhz_ceil(requested_dcfclk_khz));
 
+#ifdef DBG
+	smu_print("actual_dcfclk_set_mhz %d is set to : %d\n", actual_dcfclk_set_mhz, actual_dcfclk_set_mhz * 1000);
+#endif
+
 	return actual_dcfclk_set_mhz * 1000;
 }
 
drivers/gpu/drm/drm_gem.c +1 -16
index 86d670c71286..ad068865ba20 100644
@@ -168,21 +168,6 @@ void drm_gem_private_object_init(struct drm_device *dev,
 }
 EXPORT_SYMBOL(drm_gem_private_object_init);
 
-static void
-drm_gem_remove_prime_handles(struct drm_gem_object *obj, struct drm_file *filp)
-{
-	/*
-	 * Note: obj->dma_buf can't disappear as long as we still hold a
-	 * handle reference in obj->handle_count.
-	 */
-	mutex_lock(&filp->prime.lock);
-	if (obj->dma_buf) {
-		drm_prime_remove_buf_handle_locked(&filp->prime,
-						   obj->dma_buf);
-	}
-	mutex_unlock(&filp->prime.lock);
-}
-
 /**
  * drm_gem_object_handle_free - release resources bound to userspace handles
  * @obj: GEM object to clean up.
@@ -253,7 +238,7 @@ drm_gem_object_release_handle(int id, void *ptr, void *data)
 	if (obj->funcs->close)
 		obj->funcs->close(obj, file_priv);
 
-	drm_gem_remove_prime_handles(obj, file_priv);
+	drm_prime_remove_buf_handle(&file_priv->prime, id);
 	drm_vma_node_revoke(&obj->vma_node, file_priv);
 
 	drm_gem_object_handle_put_unlocked(obj);
drivers/gpu/drm/drm_internal.h +2 -2
index 1fbbc19f1ac0..7bb98e6a446d 100644
@@ -74,8 +74,8 @@ int drm_prime_fd_to_handle_ioctl(struct drm_device *dev, void *data,
 
 void drm_prime_init_file_private(struct drm_prime_file_private *prime_fpriv);
 void drm_prime_destroy_file_private(struct drm_prime_file_private *prime_fpriv);
-void drm_prime_remove_buf_handle_locked(struct drm_prime_file_private *prime_fpriv,
-					struct dma_buf *dma_buf);
+void drm_prime_remove_buf_handle(struct drm_prime_file_private *prime_fpriv,
+				 uint32_t handle);
 
 /* drm_drv.c */
 struct drm_minor *drm_minor_acquire(unsigned int minor_id);
drivers/gpu/drm/drm_prime.c +12 -8
index e3f09f18110c..bd5366b16381 100644
@@ -190,29 +190,33 @@ static int drm_prime_lookup_buf_handle(struct drm_prime_file_private *prime_fpri
 	return -ENOENT;
 }
 
-void drm_prime_remove_buf_handle_locked(struct drm_prime_file_private *prime_fpriv,
-					struct dma_buf *dma_buf)
+void drm_prime_remove_buf_handle(struct drm_prime_file_private *prime_fpriv,
+				 uint32_t handle)
 {
 	struct rb_node *rb;
 
-	rb = prime_fpriv->dmabufs.rb_node;
+	mutex_lock(&prime_fpriv->lock);
+
+	rb = prime_fpriv->handles.rb_node;
 	while (rb) {
 		struct drm_prime_member *member;
 
-		member = rb_entry(rb, struct drm_prime_member, dmabuf_rb);
-		if (member->dma_buf == dma_buf) {
+		member = rb_entry(rb, struct drm_prime_member, handle_rb);
+		if (member->handle == handle) {
 			rb_erase(&member->handle_rb, &prime_fpriv->handles);
 			rb_erase(&member->dmabuf_rb, &prime_fpriv->dmabufs);
 
-			dma_buf_put(dma_buf);
+			dma_buf_put(member->dma_buf);
 			kfree(member);
-			return;
-		} else if (member->dma_buf < dma_buf) {
+			break;
+		} else if (member->handle < handle) {
 			rb = rb->rb_right;
 		} else {
 			rb = rb->rb_left;
 		}
 	}
+
+	mutex_unlock(&prime_fpriv->lock);
 }
 
 void drm_prime_init_file_private(struct drm_prime_file_private *prime_fpriv)
drivers/gpu/drm/i915/display/intel_bios.c +7 -0
index 0c5638f5b72b..91caf4523b34 100644
@@ -478,6 +478,13 @@ init_bdb_block(struct drm_i915_private *i915,
 
 	block_size = get_blocksize(block);
 
+	/*
+	 * Version number and new block size are considered
+	 * part of the header for MIPI sequenece block v3+.
+	 */
+	if (section_id == BDB_MIPI_SEQUENCE && *(const u8 *)block >= 3)
+		block_size += 5;
+
 	entry = kzalloc(struct_size(entry, data, max(min_size, block_size) + 3),
 			GFP_KERNEL);
 	if (!entry) {
drivers/gpu/drm/i915/display/intel_dp_link_training.c +22 -0
index 9feaf1a589f3..d213d8ad1ea5 100644
@@ -671,6 +671,28 @@ intel_dp_prepare_link_train(struct intel_dp *intel_dp,
 	intel_dp_compute_rate(intel_dp, crtc_state->port_clock,
 			      &link_bw, &rate_select);
 
+	/*
+	 * WaEdpLinkRateDataReload
+	 *
+	 * Parade PS8461E MUX (used on varius TGL+ laptops) needs
+	 * to snoop the link rates reported by the sink when we
+	 * use LINK_RATE_SET in order to operate in jitter cleaning
+	 * mode (as opposed to redriver mode). Unfortunately it
+	 * loses track of the snooped link rates when powered down,
+	 * so we need to make it re-snoop often. Without this high
+	 * link rates are not stable.
+	 */
+	if (!link_bw) {
+		struct intel_connector *connector = intel_dp->attached_connector;
+		__le16 sink_rates[DP_MAX_SUPPORTED_RATES];
+
+		drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] Reloading eDP link rates\n",
+			    connector->base.base.id, connector->base.name);
+
+		drm_dp_dpcd_read(&intel_dp->aux, DP_SUPPORTED_LINK_RATES,
+				 sink_rates, sizeof(sink_rates));
+	}
+
 	if (link_bw)
 		drm_dbg_kms(&i915->drm,
 			    "[ENCODER:%d:%s] Using LINK_BW_SET value %02x\n",
drivers/gpu/drm/i915/gt/intel_llc.c +9 -10
index 40e2e28ee6c7..bf01780e7ea5 100644
@@ -12,6 +12,7 @@
 #include "intel_llc.h"
 #include "intel_mchbar_regs.h"
 #include "intel_pcode.h"
+#include "intel_rps.h"
 
 struct ia_constants {
 	unsigned int min_gpu_freq;
@@ -55,9 +56,6 @@ static bool get_ia_constants(struct intel_llc *llc,
 	if (!HAS_LLC(i915) || IS_DGFX(i915))
 		return false;
 
-	if (rps->max_freq <= rps->min_freq)
-		return false;
-
 	consts->max_ia_freq = cpu_max_MHz();
 
 	consts->min_ring_freq =
@@ -65,13 +63,8 @@ static bool get_ia_constants(struct intel_llc *llc,
 	/* convert DDR frequency from units of 266.6MHz to bandwidth */
 	consts->min_ring_freq = mult_frac(consts->min_ring_freq, 8, 3);
 
-	consts->min_gpu_freq = rps->min_freq;
-	consts->max_gpu_freq = rps->max_freq;
-	if (GRAPHICS_VER(i915) >= 9) {
-		/* Convert GT frequency to 50 HZ units */
-		consts->min_gpu_freq /= GEN9_FREQ_SCALER;
-		consts->max_gpu_freq /= GEN9_FREQ_SCALER;
-	}
+	consts->min_gpu_freq = intel_rps_get_min_raw_freq(rps);
+	consts->max_gpu_freq = intel_rps_get_max_raw_freq(rps);
 
 	return true;
 }
@@ -131,6 +124,12 @@ static void gen6_update_ring_freq(struct intel_llc *llc)
 	if (!get_ia_constants(llc, &consts))
 		return;
 
+	/*
+	 * Although this is unlikely on any platform during initialization,
+	 * let's ensure we don't get accidentally into infinite loop
+	 */
+	if (consts.max_gpu_freq <= consts.min_gpu_freq)
+		return;
 	/*
 	 * For each potential GPU frequency, load a ring frequency we'd like
 	 * to use for memory access.  We do this by specifying the IA frequency
drivers/gpu/drm/i915/gt/intel_rps.c +50 -0

62 lines not on this page · raw message

drivers/gpu/drm/i915/gt/intel_rps.h +2 -0
index 1e8d56491308..4509dfdc52e0 100644
@@ -37,8 +37,10 @@ u32 intel_rps_get_cagf(struct intel_rps *rps, u32 rpstat1);
 u32 intel_rps_read_actual_frequency(struct intel_rps *rps);
 u32 intel_rps_get_requested_frequency(struct intel_rps *rps);
 u32 intel_rps_get_min_frequency(struct intel_rps *rps);
+u32 intel_rps_get_min_raw_freq(struct intel_rps *rps);
 int intel_rps_set_min_frequency(struct intel_rps *rps, u32 val);
 u32 intel_rps_get_max_frequency(struct intel_rps *rps);
+u32 intel_rps_get_max_raw_freq(struct intel_rps *rps);
 int intel_rps_set_max_frequency(struct intel_rps *rps, u32 val);
 u32 intel_rps_get_rp0_frequency(struct intel_rps *rps);
 u32 intel_rps_get_rp1_frequency(struct intel_rps *rps);
drivers/gpu/drm/radeon/radeon_device.c +3 -0
index 429644d5ddc6..9fba16cb3f1e 100644
@@ -1604,6 +1604,9 @@ int radeon_suspend_kms(struct drm_device *dev, bool suspend,
 		if (r) {
 			/* delay GPU reset to resume */
 			radeon_fence_driver_force_completion(rdev, i);
+		} else {
+			/* finish executing delayed work */
+			flush_delayed_work(&rdev->fence_drv[i].lockup_work);
 		}
 	}
 
drivers/hwmon/asus-ec-sensors.c +292 -154

546 lines not on this page · raw message

drivers/hwmon/mr75203.c +50 -22

151 lines not on this page · raw message

drivers/hwmon/tps23861.c +6 -4
index 8bd6435c13e8..2148fd543bb4 100644
@@ -489,18 +489,20 @@ static char *tps23861_port_poe_plus_status(struct tps23861_data *data, int port)
 
 static int tps23861_port_resistance(struct tps23861_data *data, int port)
 {
-	u16 regval;
+	unsigned int raw_val;
+	__le16 regval;
 
 	regmap_bulk_read(data->regmap,
 			 PORT_1_RESISTANCE_LSB + PORT_N_RESISTANCE_LSB_OFFSET * (port - 1),
 			 &regval,
 			 2);
 
-	switch (FIELD_GET(PORT_RESISTANCE_RSN_MASK, regval)) {
+	raw_val = le16_to_cpu(regval);
+	switch (FIELD_GET(PORT_RESISTANCE_RSN_MASK, raw_val)) {
 	case PORT_RESISTANCE_RSN_OTHER:
-		return (FIELD_GET(PORT_RESISTANCE_MASK, regval) * RESISTANCE_LSB) / 10000;
+		return (FIELD_GET(PORT_RESISTANCE_MASK, raw_val) * RESISTANCE_LSB) / 10000;
 	case PORT_RESISTANCE_RSN_LOW:
-		return (FIELD_GET(PORT_RESISTANCE_MASK, regval) * RESISTANCE_LSB_LOW) / 10000;
+		return (FIELD_GET(PORT_RESISTANCE_MASK, raw_val) * RESISTANCE_LSB_LOW) / 10000;
 	case PORT_RESISTANCE_RSN_SHORT:
 	case PORT_RESISTANCE_RSN_OPEN:
 	default:
drivers/infiniband/core/cma.c +2 -2
index fabca5e51e3d..4dd133eccfdf 100644
@@ -1719,8 +1719,8 @@ cma_ib_id_from_event(struct ib_cm_id *cm_id,
 		}
 
 		if (!validate_net_dev(*net_dev,
-				 (struct sockaddr *)&req->listen_addr_storage,
-				 (struct sockaddr *)&req->src_addr_storage)) {
+				 (struct sockaddr *)&req->src_addr_storage,
+				 (struct sockaddr *)&req->listen_addr_storage)) {
 			id_priv = ERR_PTR(-EHOSTUNREACH);
 			goto err;
 		}
drivers/infiniband/core/umem_odp.c +1 -1
index 186ed8859920..d39e16c211e8 100644
@@ -462,7 +462,7 @@ int ib_umem_odp_map_dma_and_lock(struct ib_umem_odp *umem_odp, u64 user_virt,
 		mutex_unlock(&umem_odp->umem_mutex);
 
 out_put_mm:
-	mmput(owning_mm);
+	mmput_async(owning_mm);
 out_put_task:
 	if (owning_process)
 		put_task_struct(owning_process);
drivers/infiniband/hw/hns/hns_roce_device.h +0 -1
index 2855e9ad4b32..1df076e70e29 100644
@@ -730,7 +730,6 @@ struct hns_roce_caps {
 	u32		num_qps;
 	u32		num_pi_qps;
 	u32		reserved_qps;
-	int		num_qpc_timer;
 	u32		num_srqs;
 	u32		max_wqes;
 	u32		max_srq_wrs;
drivers/infiniband/hw/hns/hns_roce_hw_v2.c +1 -2
index b354caeaa9b2..49edff989f1f 100644
@@ -1941,7 +1941,7 @@ static void set_default_caps(struct hns_roce_dev *hr_dev)
 
 	caps->num_mtpts		= HNS_ROCE_V2_MAX_MTPT_NUM;
 	caps->num_pds		= HNS_ROCE_V2_MAX_PD_NUM;
-	caps->num_qpc_timer	= HNS_ROCE_V2_MAX_QPC_TIMER_NUM;
+	caps->qpc_timer_bt_num	= HNS_ROCE_V2_MAX_QPC_TIMER_BT_NUM;
 	caps->cqc_timer_bt_num	= HNS_ROCE_V2_MAX_CQC_TIMER_BT_NUM;
 
 	caps->max_qp_init_rdma	= HNS_ROCE_V2_MAX_QP_INIT_RDMA;
@@ -2237,7 +2237,6 @@ static int hns_roce_query_pf_caps(struct hns_roce_dev *hr_dev)
 	caps->max_rq_sg		     = le16_to_cpu(resp_a->max_rq_sg);
 	caps->max_rq_sg = roundup_pow_of_two(caps->max_rq_sg);
 	caps->max_extend_sg	     = le32_to_cpu(resp_a->max_extend_sg);
-	caps->num_qpc_timer	     = le16_to_cpu(resp_a->num_qpc_timer);
 	caps->max_srq_sges	     = le16_to_cpu(resp_a->max_srq_sges);
 	caps->max_srq_sges = roundup_pow_of_two(caps->max_srq_sges);
 	caps->num_aeq_vectors	     = resp_a->num_aeq_vectors;
drivers/infiniband/hw/hns/hns_roce_hw_v2.h +2 -2
index 7ffb7824d268..e4b640caee1b 100644
@@ -36,11 +36,11 @@
 #include <linux/bitops.h>
 
 #define HNS_ROCE_V2_MAX_QP_NUM			0x1000
-#define HNS_ROCE_V2_MAX_QPC_TIMER_NUM		0x200
 #define HNS_ROCE_V2_MAX_WQE_NUM			0x8000
 #define HNS_ROCE_V2_MAX_SRQ_WR			0x8000
 #define HNS_ROCE_V2_MAX_SRQ_SGE			64
 #define HNS_ROCE_V2_MAX_CQ_NUM			0x100000
+#define HNS_ROCE_V2_MAX_QPC_TIMER_BT_NUM	0x100
 #define HNS_ROCE_V2_MAX_CQC_TIMER_BT_NUM	0x100
 #define HNS_ROCE_V2_MAX_SRQ_NUM			0x100000
 #define HNS_ROCE_V2_MAX_CQE_NUM			0x400000
@@ -83,7 +83,7 @@
 
 #define HNS_ROCE_V2_QPC_TIMER_ENTRY_SZ		PAGE_SIZE
 #define HNS_ROCE_V2_CQC_TIMER_ENTRY_SZ		PAGE_SIZE
-#define HNS_ROCE_V2_PAGE_SIZE_SUPPORTED		0xFFFFF000
+#define HNS_ROCE_V2_PAGE_SIZE_SUPPORTED		0xFFFF000
 #define HNS_ROCE_V2_MAX_INNER_MTPT_NUM		2
 #define HNS_ROCE_INVALID_LKEY			0x0
 #define HNS_ROCE_INVALID_SGE_LENGTH		0x80000000
drivers/infiniband/hw/hns/hns_roce_main.c +1 -1
index c8af4ebd7cbd..4ccb217b2841 100644
@@ -725,7 +725,7 @@ static int hns_roce_init_hem(struct hns_roce_dev *hr_dev)
 		ret = hns_roce_init_hem_table(hr_dev, &hr_dev->qpc_timer_table,
 					      HEM_TYPE_QPC_TIMER,
 					      hr_dev->caps.qpc_timer_entry_sz,
-					      hr_dev->caps.num_qpc_timer, 1);
+					      hr_dev->caps.qpc_timer_bt_num, 1);
 		if (ret) {
 			dev_err(dev,
 				"Failed to init QPC timer memory, aborting.\n");
drivers/infiniband/hw/hns/hns_roce_qp.c +2 -5
index 48d3616a6d71..7bee7f6c5e70 100644
@@ -462,11 +462,8 @@ static int set_rq_size(struct hns_roce_dev *hr_dev, struct ib_qp_cap *cap,
 	hr_qp->rq.max_gs = roundup_pow_of_two(max(1U, cap->max_recv_sge) +
 					      hr_qp->rq.rsv_sge);
 
-	if (hr_dev->caps.max_rq_sg <= HNS_ROCE_SGE_IN_WQE)
-		hr_qp->rq.wqe_shift = ilog2(hr_dev->caps.max_rq_desc_sz);
-	else
-		hr_qp->rq.wqe_shift = ilog2(hr_dev->caps.max_rq_desc_sz *
-					    hr_qp->rq.max_gs);
+	hr_qp->rq.wqe_shift = ilog2(hr_dev->caps.max_rq_desc_sz *
+				    hr_qp->rq.max_gs);
 
 	hr_qp->rq.wqe_cnt = cnt;
 	if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RQ_INLINE &&
drivers/infiniband/hw/irdma/uk.c +3 -1
index daeab5daed5b..d003ad864ee4 100644
@@ -1005,6 +1005,7 @@ int irdma_uk_cq_poll_cmpl(struct irdma_cq_uk *cq,
 	int ret_code;
 	bool move_cq_head = true;
 	u8 polarity;
+	u8 op_type;
 	bool ext_valid;
 	__le64 *ext_cqe;
 
@@ -1187,7 +1188,6 @@ int irdma_uk_cq_poll_cmpl(struct irdma_cq_uk *cq,
 			do {
 				__le64 *sw_wqe;
 				u64 wqe_qword;
-				u8 op_type;
 				u32 tail;
 
 				tail = qp->sq_ring.tail;
@@ -1204,6 +1204,8 @@ int irdma_uk_cq_poll_cmpl(struct irdma_cq_uk *cq,
 					break;
 				}
 			} while (1);
+			if (op_type == IRDMA_OP_TYPE_BIND_MW && info->minor_err == FLUSH_PROT_ERR)
+				info->minor_err = FLUSH_MW_BIND_ERR;
 			qp->sq_flush_seen = true;
 			if (!IRDMA_RING_MORE_WORK(qp->sq_ring))
 				qp->sq_flush_complete = true;
drivers/infiniband/hw/irdma/utils.c +9 -6
index ab3c5208a123..f4d774451160 100644
@@ -590,11 +590,14 @@ static int irdma_wait_event(struct irdma_pci_f *rf,
 	cqp_error = cqp_request->compl_info.error;
 	if (cqp_error) {
 		err_code = -EIO;
-		if (cqp_request->compl_info.maj_err_code == 0xFFFF &&
-		    cqp_request->compl_info.min_err_code == 0x8029) {
-			if (!rf->reset) {
-				rf->reset = true;
-				rf->gen_ops.request_reset(rf);
+		if (cqp_request->compl_info.maj_err_code == 0xFFFF) {
+			if (cqp_request->compl_info.min_err_code == 0x8002)
+				err_code = -EBUSY;
+			else if (cqp_request->compl_info.min_err_code == 0x8029) {
+				if (!rf->reset) {
+					rf->reset = true;
+					rf->gen_ops.request_reset(rf);
+				}
 			}
 		}
 	}
@@ -2597,7 +2600,7 @@ void irdma_generate_flush_completions(struct irdma_qp *iwqp)
 		spin_unlock_irqrestore(&iwqp->lock, flags2);
 		spin_unlock_irqrestore(&iwqp->iwscq->lock, flags1);
 		if (compl_generated)
-			irdma_comp_handler(iwqp->iwrcq);
+			irdma_comp_handler(iwqp->iwscq);
 	} else {
 		spin_unlock_irqrestore(&iwqp->iwscq->lock, flags1);
 		mod_delayed_work(iwqp->iwdev->cleanup_wq, &iwqp->dwork_flush,
drivers/infiniband/hw/irdma/verbs.c +10 -3
index 227a799385d1..ab73d1715f99 100644
@@ -39,15 +39,18 @@ static int irdma_query_device(struct ib_device *ibdev,
 	props->max_send_sge = hw_attrs->uk_attrs.max_hw_wq_frags;
 	props->max_recv_sge = hw_attrs->uk_attrs.max_hw_wq_frags;
 	props->max_cq = rf->max_cq - rf->used_cqs;
-	props->max_cqe = rf->max_cqe;
+	props->max_cqe = rf->max_cqe - 1;
 	props->max_mr = rf->max_mr - rf->used_mrs;
 	props->max_mw = props->max_mr;
 	props->max_pd = rf->max_pd - rf->used_pds;
 	props->max_sge_rd = hw_attrs->uk_attrs.max_hw_read_sges;
 	props->max_qp_rd_atom = hw_attrs->max_hw_ird;
 	props->max_qp_init_rd_atom = hw_attrs->max_hw_ord;
-	if (rdma_protocol_roce(ibdev, 1))
+	if (rdma_protocol_roce(ibdev, 1)) {
+		props->device_cap_flags |= IB_DEVICE_RC_RNR_NAK_GEN;
 		props->max_pkeys = IRDMA_PKEY_TBL_SZ;
+	}
+
 	props->max_ah = rf->max_ah;
 	props->max_mcast_grp = rf->max_mcg;
 	props->max_mcast_qp_attach = IRDMA_MAX_MGS_PER_CTX;
@@ -3001,6 +3004,7 @@ static int irdma_dereg_mr(struct ib_mr *ib_mr, struct ib_udata *udata)
 	struct irdma_pble_alloc *palloc = &iwpbl->pble_alloc;
 	struct irdma_cqp_request *cqp_request;
 	struct cqp_cmds_info *cqp_info;
+	int status;
 
 	if (iwmr->type != IRDMA_MEMREG_TYPE_MEM) {
 		if (iwmr->region) {
@@ -3031,8 +3035,11 @@ static int irdma_dereg_mr(struct ib_mr *ib_mr, struct ib_udata *udata)
 	cqp_info->post_sq = 1;
 	cqp_info->in.u.dealloc_stag.dev = &iwdev->rf->sc_dev;
 	cqp_info->in.u.dealloc_stag.scratch = (uintptr_t)cqp_request;
-	irdma_handle_cqp_op(iwdev->rf, cqp_request);
+	status = irdma_handle_cqp_op(iwdev->rf, cqp_request);
 	irdma_put_cqp_request(&iwdev->rf->cqp, cqp_request);
+	if (status)
+		return status;
+
 	irdma_free_stag(iwdev, iwmr->stag);
 done:
 	if (iwpbl->pbl_allocated)
drivers/infiniband/hw/mlx5/mad.c +6 -0
index 293ed709e5ed..b4dc52392275 100644
@@ -166,6 +166,12 @@ static int process_pma_cmd(struct mlx5_ib_dev *dev, u32 port_num,
 		mdev = dev->mdev;
 		mdev_port_num = 1;
 	}
+	if (MLX5_CAP_GEN(dev->mdev, num_ports) == 1) {
+		/* set local port to one for Function-Per-Port HCA. */
+		mdev = dev->mdev;
+		mdev_port_num = 1;
+	}
+
 	/* Declaring support of extended counters */
 	if (in_mad->mad_hdr.attr_id == IB_PMA_CLASS_PORT_INFO) {
 		struct ib_class_port_info cpi = {};
drivers/infiniband/sw/siw/siw_qp_tx.c +14 -4
index 1f4e60257700..7d47b521070b 100644
@@ -29,7 +29,7 @@ static struct page *siw_get_pblpage(struct siw_mem *mem, u64 addr, int *idx)
 	dma_addr_t paddr = siw_pbl_get_buffer(pbl, offset, NULL, idx);
 
 	if (paddr)
-		return virt_to_page(paddr);
+		return virt_to_page((void *)paddr);
 
 	return NULL;
 }
@@ -533,13 +533,23 @@ static int siw_tx_hdt(struct siw_iwarp_tx *c_tx, struct socket *s)
 					kunmap_local(kaddr);
 				}
 			} else {
-				u64 va = sge->laddr + sge_off;
+				/*
+				 * Cast to an uintptr_t to preserve all 64 bits
+				 * in sge->laddr.
+				 */
+				uintptr_t va = (uintptr_t)(sge->laddr + sge_off);
 
-				page_array[seg] = virt_to_page(va & PAGE_MASK);
+				/*
+				 * virt_to_page() takes a (void *) pointer
+				 * so cast to a (void *) meaning it will be 64
+				 * bits on a 64 bit platform and 32 bits on a
+				 * 32 bit platform.
+				 */
+				page_array[seg] = virt_to_page((void *)(va & PAGE_MASK));
 				if (do_crc)
 					crypto_shash_update(
 						c_tx->mpa_crc_hd,
-						(void *)(uintptr_t)va,
+						(void *)va,
 						plen);
 			}
 
drivers/infiniband/ulp/rtrs/rtrs-clt.c +5 -4
index 525f083fcaeb..bf464400a440 100644
@@ -1004,7 +1004,8 @@ rtrs_clt_get_copy_req(struct rtrs_clt_path *alive_path,
 static int rtrs_post_rdma_write_sg(struct rtrs_clt_con *con,
 				   struct rtrs_clt_io_req *req,
 				   struct rtrs_rbuf *rbuf, bool fr_en,
-				   u32 size, u32 imm, struct ib_send_wr *wr,
+				   u32 count, u32 size, u32 imm,
+				   struct ib_send_wr *wr,
 				   struct ib_send_wr *tail)
 {
 	struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
@@ -1024,12 +1025,12 @@ static int rtrs_post_rdma_write_sg(struct rtrs_clt_con *con,
 		num_sge = 2;
 		ptail = tail;
 	} else {
-		for_each_sg(req->sglist, sg, req->sg_cnt, i) {
+		for_each_sg(req->sglist, sg, count, i) {
 			sge[i].addr   = sg_dma_address(sg);
 			sge[i].length = sg_dma_len(sg);
 			sge[i].lkey   = clt_path->s.dev->ib_pd->local_dma_lkey;
 		}
-		num_sge = 1 + req->sg_cnt;
+		num_sge = 1 + count;
 	}
 	sge[i].addr   = req->iu->dma_addr;
 	sge[i].length = size;
@@ -1142,7 +1143,7 @@ static int rtrs_clt_write_req(struct rtrs_clt_io_req *req)
 	 */
 	rtrs_clt_update_all_stats(req, WRITE);
 
-	ret = rtrs_post_rdma_write_sg(req->con, req, rbuf, fr_en,
+	ret = rtrs_post_rdma_write_sg(req->con, req, rbuf, fr_en, count,
 				      req->usr_len + sizeof(*msg),
 				      imm, wr, &inv_wr);
 	if (ret) {
drivers/infiniband/ulp/rtrs/rtrs-srv.c +7 -7
index 24024bce2566..ee4876bdce4a 100644
@@ -600,7 +600,7 @@ static int map_cont_bufs(struct rtrs_srv_path *srv_path)
 		struct sg_table *sgt = &srv_mr->sgt;
 		struct scatterlist *s;
 		struct ib_mr *mr;
-		int nr, chunks;
+		int nr, nr_sgt, chunks;
 
 		chunks = chunks_per_mr * mri;
 		if (!always_invalidate)
@@ -615,19 +615,19 @@ static int map_cont_bufs(struct rtrs_srv_path *srv_path)
 			sg_set_page(s, srv->chunks[chunks + i],
 				    max_chunk_size, 0);
 
-		nr = ib_dma_map_sg(srv_path->s.dev->ib_dev, sgt->sgl,
+		nr_sgt = ib_dma_map_sg(srv_path->s.dev->ib_dev, sgt->sgl,
 				   sgt->nents, DMA_BIDIRECTIONAL);
-		if (nr < sgt->nents) {
-			err = nr < 0 ? nr : -EINVAL;
+		if (!nr_sgt) {
+			err = -EINVAL;
 			goto free_sg;
 		}
 		mr = ib_alloc_mr(srv_path->s.dev->ib_pd, IB_MR_TYPE_MEM_REG,
-				 sgt->nents);
+				 nr_sgt);
 		if (IS_ERR(mr)) {
 			err = PTR_ERR(mr);
 			goto unmap_sg;
 		}
-		nr = ib_map_mr_sg(mr, sgt->sgl, sgt->nents,
+		nr = ib_map_mr_sg(mr, sgt->sgl, nr_sgt,
 				  NULL, max_chunk_size);
 		if (nr < 0 || nr < sgt->nents) {
 			err = nr < 0 ? nr : -EINVAL;
@@ -646,7 +646,7 @@ static int map_cont_bufs(struct rtrs_srv_path *srv_path)
 			}
 		}
 		/* Eventually dma addr for each chunk can be cached */
-		for_each_sg(sgt->sgl, s, sgt->orig_nents, i)
+		for_each_sg(sgt->sgl, s, nr_sgt, i)
 			srv_path->dma_addr[chunks + i] = sg_dma_address(s);
 
 		ib_update_fast_reg_key(mr, ib_inc_rkey(mr->rkey));
drivers/infiniband/ulp/srp/ib_srp.c +2 -1
index 6058abf42ba7..3d9c108d73ad 100644
@@ -1962,7 +1962,8 @@ static void srp_process_rsp(struct srp_rdma_ch *ch, struct srp_rsp *rsp)
 		if (scmnd) {
 			req = scsi_cmd_priv(scmnd);
 			scmnd = srp_claim_req(ch, req, NULL, scmnd);
-		} else {
+		}
+		if (!scmnd) {
 			shost_printk(KERN_ERR, target->scsi_host,
 				     "Null scmnd for RSP w/tag %#016llx received on ch %td / QP %#x\n",
 				     rsp->tag, ch - target->ch, ch->qp->qp_num);
drivers/iommu/amd/iommu.c +2 -1
index 840831d5d2ad..a0924144bac8 100644
@@ -874,7 +874,8 @@ static void build_completion_wait(struct iommu_cmd *cmd,
 	memset(cmd, 0, sizeof(*cmd));
 	cmd->data[0] = lower_32_bits(paddr) | CMD_COMPL_WAIT_STORE_MASK;
 	cmd->data[1] = upper_32_bits(paddr);
-	cmd->data[2] = data;
+	cmd->data[2] = lower_32_bits(data);
+	cmd->data[3] = upper_32_bits(data);
 	CMD_SET_TYPE(cmd, CMD_COMPL_WAIT);
 }
 
drivers/iommu/amd/iommu_v2.c +2 -0
index afb3efd565b7..f3e2689787ae 100644
@@ -786,6 +786,8 @@ int amd_iommu_init_device(struct pci_dev *pdev, int pasids)
 	if (dev_state->domain == NULL)
 		goto out_free_states;
 
+	/* See iommu_is_default_domain() */
+	dev_state->domain->type = IOMMU_DOMAIN_IDENTITY;
 	amd_iommu_domain_direct_map(dev_state->domain);
 
 	ret = amd_iommu_domain_enable_v2(dev_state->domain, pasids);
drivers/iommu/intel/dmar.c +7 -0
index 64b14ac4c7b0..fc8c1420c0b6 100644
@@ -2368,6 +2368,13 @@ static int dmar_device_hotplug(acpi_handle handle, bool insert)
 	if (!dmar_in_use())
 		return 0;
 
+	/*
+	 * It's unlikely that any I/O board is hot added before the IOMMU
+	 * subsystem is initialized.
+	 */
+	if (IS_ENABLED(CONFIG_INTEL_IOMMU) && !intel_iommu_enabled)
+		return -EOPNOTSUPP;
+
 	if (dmar_detect_dsm(handle, DMAR_DSM_FUNC_DRHD)) {
 		tmp = handle;
 	} else {
drivers/iommu/intel/iommu.c +27 -28

118 lines not on this page · raw message

drivers/iommu/iommu.c +19 -2
index 847ad47a2dfd..f113833c3075 100644
@@ -3089,6 +3089,24 @@ static ssize_t iommu_group_store_type(struct iommu_group *group,
 	return ret;
 }
 
+static bool iommu_is_default_domain(struct iommu_group *group)
+{
+	if (group->domain == group->default_domain)
+		return true;
+
+	/*
+	 * If the default domain was set to identity and it is still an identity
+	 * domain then we consider this a pass. This happens because of
+	 * amd_iommu_init_device() replacing the default idenytity domain with an
+	 * identity domain that has a different configuration for AMDGPU.
+	 */
+	if (group->default_domain &&
+	    group->default_domain->type == IOMMU_DOMAIN_IDENTITY &&
+	    group->domain && group->domain->type == IOMMU_DOMAIN_IDENTITY)
+		return true;
+	return false;
+}
+
 /**
  * iommu_device_use_default_domain() - Device driver wants to handle device
  *                                     DMA through the kernel DMA API.
@@ -3107,8 +3125,7 @@ int iommu_device_use_default_domain(struct device *dev)
 
 	mutex_lock(&group->mutex);
 	if (group->owner_cnt) {
-		if (group->domain != group->default_domain ||
-		    group->owner) {
+		if (group->owner || !iommu_is_default_domain(group)) {
 			ret = -EBUSY;
 			goto unlock_out;
 		}
drivers/iommu/virtio-iommu.c +11 -0
index 25be4b822aa0..bf340d779c10 100644
@@ -1006,7 +1006,18 @@ static int viommu_of_xlate(struct device *dev, struct of_phandle_args *args)
 	return iommu_fwspec_add_ids(dev, args->args, 1);
 }
 
+static bool viommu_capable(enum iommu_cap cap)
+{
+	switch (cap) {
+	case IOMMU_CAP_CACHE_COHERENCY:
+		return true;
+	default:
+		return false;
+	}
+}
+
 static struct iommu_ops viommu_ops = {
+	.capable		= viommu_capable,
 	.domain_alloc		= viommu_domain_alloc,
 	.probe_device		= viommu_probe_device,
 	.probe_finalize		= viommu_probe_finalize,
drivers/md/md.c +1 -0
index 91e7e80fce48..25d18b67a162 100644
@@ -5647,6 +5647,7 @@ static int md_alloc(dev_t dev, char *name)
 	 * removed (mddev_delayed_delete).
 	 */
 	flush_workqueue(md_misc_wq);
+	flush_workqueue(md_rdev_misc_wq);
 
 	mutex_lock(&disks_mutex);
 	mddev = mddev_alloc(dev);
drivers/net/bonding/bond_main.c +35 -20

151 lines not on this page · raw message

drivers/net/dsa/ocelot/felix_vsc9959.c +113 -49

242 lines not on this page · raw message

drivers/net/ethernet/intel/i40e/i40e.h +14 -0
index 407fe8f340a0..c5b61bc80f78 100644
@@ -1291,4 +1291,18 @@ int i40e_add_del_cloud_filter(struct i40e_vsi *vsi,
 int i40e_add_del_cloud_filter_big_buf(struct i40e_vsi *vsi,
 				      struct i40e_cloud_filter *filter,
 				      bool add);
+
+/**
+ * i40e_is_tc_mqprio_enabled - check if TC MQPRIO is enabled on PF
+ * @pf: pointer to a pf.
+ *
+ * Check and return value of flag I40E_FLAG_TC_MQPRIO.
+ *
+ * Return: I40E_FLAG_TC_MQPRIO set state.
+ **/
+static inline u32 i40e_is_tc_mqprio_enabled(struct i40e_pf *pf)
+{
+	return pf->flags & I40E_FLAG_TC_MQPRIO;
+}
+
 #endif /* _I40E_H_ */
drivers/net/ethernet/intel/i40e/i40e_client.c +4 -1
index ea2bb0140a6e..10d7a982a5b9 100644
@@ -177,6 +177,10 @@ void i40e_notify_client_of_netdev_close(struct i40e_vsi *vsi, bool reset)
 			"Cannot locate client instance close routine\n");
 		return;
 	}
+	if (!test_bit(__I40E_CLIENT_INSTANCE_OPENED, &cdev->state)) {
+		dev_dbg(&pf->pdev->dev, "Client is not open, abort close\n");
+		return;
+	}
 	cdev->client->ops->close(&cdev->lan_info, cdev->client, reset);
 	clear_bit(__I40E_CLIENT_INSTANCE_OPENED, &cdev->state);
 	i40e_client_release_qvlist(&cdev->lan_info);
@@ -429,7 +433,6 @@ void i40e_client_subtask(struct i40e_pf *pf)
 				/* Remove failed client instance */
 				clear_bit(__I40E_CLIENT_INSTANCE_OPENED,
 					  &cdev->state);
-				i40e_client_del_instance(pf);
 				return;
 			}
 		}
drivers/net/ethernet/intel/i40e/i40e_ethtool.c +1 -1
index 22a61802a402..ed9984f1e1b9 100644
@@ -4931,7 +4931,7 @@ static int i40e_set_channels(struct net_device *dev,
 	/* We do not support setting channels via ethtool when TCs are
 	 * configured through mqprio
 	 */
-	if (pf->flags & I40E_FLAG_TC_MQPRIO)
+	if (i40e_is_tc_mqprio_enabled(pf))
 		return -EINVAL;
 
 	/* verify they are not requesting separate vectors */
drivers/net/ethernet/intel/i40e/i40e_main.c +13 -10
index 71a8e1698ed4..1aaf0c5ddf6c 100644
@@ -5339,7 +5339,7 @@ static u8 i40e_pf_get_num_tc(struct i40e_pf *pf)
 	u8 num_tc = 0;
 	struct i40e_dcbx_config *dcbcfg = &hw->local_dcbx_config;
 
-	if (pf->flags & I40E_FLAG_TC_MQPRIO)
+	if (i40e_is_tc_mqprio_enabled(pf))
[… more lines in the raw message]

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/i40e/i40e_txrx.c +2 -1
index af69ccc6e8d2..07f1e209d524 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/iavf/iavf_main.c +11 -3
index 6d159334da9e..981c43b204ff 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/ice/ice_base.c +0 -17
index 136d7911adb4..1e3243808178 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/ice/ice_main.c +9 -1
index 3d45e075204e..4c6bb7482b36 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/ice/ice_xsk.c +63 -0

63 lines not on this page · raw message

drivers/net/ethernet/intel/ice/ice_xsk.h +8 -0
index 21faec8e97db..4edbe81eb646 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mediatek/mtk_ppe.c +1 -1
index dab8f3f771f8..cfe804bc8d20 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mediatek/mtk_ppe.h +3 -0
index 1f5cf1c9a947..69ffce04d630 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/meson-gxl.c +1 -7
index 73f7962a37d3..c49062ad72c6 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/microchip_t1.c +54 -4

58 lines not on this page · raw message

drivers/net/wireless/intel/iwlegacy/4965-rs.c +1 -4
index c62f299b9e0a..d8a5dbf89a02 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c +1 -1
index b0f58bcf70cb..106c88b723b9 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/microchip/wilc1000/netdev.h +1 -0
index a067274c2014..bf001e9def6a 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/microchip/wilc1000/sdio.c +33 -6
index 7962c11cfe84..56f924a31bc6 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/microchip/wilc1000/wlan.c +13 -2
index 48441f0389ca..0c8a571486d2 100644

Lines of this file are not shown. View the raw message.

drivers/net/xen-netback/xenbus.c +1 -1
index 990360d75cb6..e85b3c5d4acc 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/host/tcp.c +2 -5
index 7a9e6ffa2342..daa0e160e121 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/target/core.c +4 -2
index c27660a660d9..a33971910005 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/target/zns.c +15 -2
index 82b61acf7a72..1956be87ac5f 100644

Lines of this file are not shown. View the raw message.

drivers/parisc/ccio-dma.c +8 -3
index 9be007c9420f..f69ab90b5e22 100644

Lines of this file are not shown. View the raw message.

drivers/perf/riscv_pmu_sbi.c +1 -1
index 231d86d3949c..1ec5baa673f9 100644

Lines of this file are not shown. View the raw message.

drivers/regulator/core.c +7 -2
index 1e54a833f2cf..a9daaf4d5aaa 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/lpfc/lpfc_init.c +4 -1
index 750dd1e9f2cc..2ddc431cbd33 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/megaraid/megaraid_sas_fusion.c +0 -1
index 5b5885d9732b..3e9b2b0099c7 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/mpt3sas/mpt3sas_scsih.c +1 -1
index 5e8887fa02c8..e3b7ebf46424 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/qla2xxx/qla_target.c +2 -8
index 2b2f68288375..62666df1a59e 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/scsi_lib.c +25 -19

44 lines not on this page · raw message

drivers/soc/bcm/brcmstb/pm/pm-arm.c +39 -11

50 lines not on this page · raw message

drivers/soc/fsl/Kconfig +1 -0
index 07d52cafbb31..fcec6ed83d5e 100644

Lines of this file are not shown. View the raw message.

drivers/soc/imx/gpcv2.c +4 -1
index 85aa86e1338a..5a3809f6a698 100644

Lines of this file are not shown. View the raw message.

drivers/soc/imx/imx8m-blk-ctrl.c +0 -1
index 7ebc28709e94..2782a7e0a871 100644

Lines of this file are not shown. View the raw message.

drivers/spi/spi-bitbang-txrx.h +4 -2
index 267342dfa738..2dcbe166df63 100644

Lines of this file are not shown. View the raw message.

drivers/tee/tee_shm.c +1 -0
index 1175f3a46859..27295bda3e0b 100644

Lines of this file are not shown. View the raw message.

drivers/thermal/intel/int340x_thermal/int3400_thermal.c +5 -4
index 80d4e0676083..365489bf4b8c 100644

Lines of this file are not shown. View the raw message.

drivers/ufs/core/ufshcd.c +8 -1
index a51ca56a0ebe..829da9cb14a8 100644

Lines of this file are not shown. View the raw message.

drivers/vfio/vfio_iommu_type1.c +12 -0
index c13b9290e357..d0057d18d2f4 100644

Lines of this file are not shown. View the raw message.

drivers/video/fbdev/chipsfb.c +1 -0
index 393894af26f8..2b00a9d554fc 100644

Lines of this file are not shown. View the raw message.

drivers/video/fbdev/core/fbsysfs.c +4 -0
index c2a60b187467..4d7f63892dcc 100644

Lines of this file are not shown. View the raw message.

drivers/video/fbdev/omap/omapfb_main.c +2 -2
index 292fcb0a24fc..6ff237cee7f8 100644

Lines of this file are not shown. View the raw message.

fs/afs/flock.c +1 -1
index c4210a3964d8..bbcc5afd1576 100644

Lines of this file are not shown. View the raw message.

fs/afs/fsclient.c +1 -1
index 4943413d9c5f..7d37f63ef0f0 100644

Lines of this file are not shown. View the raw message.

fs/afs/internal.h +1 -2
index a6f25d9e75b5..28bdd0387e5e 100644

Lines of this file are not shown. View the raw message.

fs/afs/rxrpc.c +1 -6
index a5434f3e57c6..e3de7fea3643 100644

Lines of this file are not shown. View the raw message.

fs/afs/yfsclient.c +1 -2
index fdc7d675b4b0..11571cca86c1 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/ctree.h +0 -2
index 4d8acd7e63eb..1bbc810574f2 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/disk-io.c +0 -1
index a2505cfc6bc1..781952c5a5c2 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/inode.c +3 -4
index 61496ecb1e20..f79f8d7cffcf 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/space-info.c +1 -1
index b0c5b4738b1f..17623e6410c5 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/volumes.c +3 -0
index 3460fd674380..16e01fbdcec8 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/zoned.c +53 -46

99 lines not on this page · raw message

fs/cifs/smb2file.c +0 -1
index f5dcc4940b6d..9dfd2dd612c2 100644

Lines of this file are not shown. View the raw message.

fs/cifs/smb2ops.c +42 -46

88 lines not on this page · raw message

fs/cifs/smb2pdu.c +9 -11
index ba58d7fd54f9..31d37afae741 100644

Lines of this file are not shown. View the raw message.

fs/cifs/smb2proto.h +2 -2
index a69f1eed1cfe..d57d7202dc36 100644

Lines of this file are not shown. View the raw message.

fs/debugfs/inode.c +22 -0
index 3dcf0b8b4e93..232cfdf095ae 100644

Lines of this file are not shown. View the raw message.

fs/erofs/fscache.c +6 -2
index 8e01d89c3319..b5fd9d71e67f 100644

Lines of this file are not shown. View the raw message.

fs/erofs/internal.h +0 -29
index cfee49d33b95..a01cc82795a2 100644

Lines of this file are not shown. View the raw message.

fs/tracefs/inode.c +23 -8
index 81d26abf486f..da85b3979195 100644

Lines of this file are not shown. View the raw message.

include/kunit/test.h +3 -3
index 8ffcd7de9607..648dbb00a300 100644

Lines of this file are not shown. View the raw message.

include/linux/buffer_head.h +11 -0
index badcc0e3418f..262664107b83 100644

Lines of this file are not shown. View the raw message.

include/linux/debugfs.h +6 -0
index c869f1e73d75..f60674692d36 100644

Lines of this file are not shown. View the raw message.

include/linux/dmar.h +3 -1
index cbd714a198a0..f3a3d95df532 100644

Lines of this file are not shown. View the raw message.

include/linux/lsm_hook_defs.h +1 -0
index eafa1d2489fd..4e94755098f1 100644

Lines of this file are not shown. View the raw message.

include/linux/lsm_hooks.h +3 -0
index 91c8146649f5..b681cfce6190 100644

Lines of this file are not shown. View the raw message.

include/linux/security.h +5 -0
index 7fc4e9f49f54..3cc127bb5bfd 100644

Lines of this file are not shown. View the raw message.

include/linux/skbuff.h +38 -11

49 lines not on this page · raw message

include/linux/time64.h +3 -0
index 81b9686a2079..2fb8232cff1d 100644

Lines of this file are not shown. View the raw message.

include/linux/udp.h +1 -0
index 254a2654400f..e96da4157d04 100644

Lines of this file are not shown. View the raw message.

include/net/bonding.h +12 -1
index cb904d356e31..3b816ae8b1f3 100644

Lines of this file are not shown. View the raw message.

include/net/udp_tunnel.h +4 -0
index afc7ce713657..72394f441dad 100644

Lines of this file are not shown. View the raw message.

include/soc/at91/sama7-ddr.h +8 -0
index 9e17247474fa..6ce3bd22f6c6 100644

Lines of this file are not shown. View the raw message.

io_uring/io_uring.c +5 -0
index cd155b7e1346..48833d0edd08 100644

Lines of this file are not shown. View the raw message.

kernel/cgroup/cgroup.c +63 -22

85 lines not on this page · raw message

kernel/cgroup/cpuset.c +1 -2
index 58aadfda9b8b..1f3a55297f39 100644

Lines of this file are not shown. View the raw message.

kernel/dma/swiotlb.c +4 -1
index 5830dce6081b..ce34d50f7a9b 100644

Lines of this file are not shown. View the raw message.

kernel/fork.c +1 -0
index 9d44f2d46c69..d587c85f35b1 100644

Lines of this file are not shown. View the raw message.

kernel/kprobes.c +1 -0
index 08350e35aba2..ca9d834d0b84 100644

Lines of this file are not shown. View the raw message.

kernel/sched/debug.c +1 -1
index bb3d63bdf4ae..667876da8382 100644

Lines of this file are not shown. View the raw message.

kernel/trace/trace_events_trigger.c +2 -1
index cb866c3141af..918730d74932 100644

Lines of this file are not shown. View the raw message.

kernel/trace/trace_preemptirq.c +2 -2
index 95b58bd757ce..1e130da1b742 100644

Lines of this file are not shown. View the raw message.

mm/kmemleak.c +4 -4
index a182f5ddaf68..acd7cbb82e16 100644

Lines of this file are not shown. View the raw message.

net/bridge/br_netfilter_hooks.c +2 -0
index ff4779036649..f20f4373ff40 100644

Lines of this file are not shown. View the raw message.

net/bridge/br_netfilter_ipv6.c +1 -0
index e4e0c836c3f5..6b07f30675bb 100644

Lines of this file are not shown. View the raw message.

net/core/datagram.c +1 -1
index 50f4faeea76c..48e82438acb0 100644

Lines of this file are not shown. View the raw message.

net/core/skbuff.c +2 -3
index bebf58464d66..4b2b07a9422c 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp.c +1 -1
index 3d446773ff2a..ab03977b6578 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp_input.c +18 -7
index e5435156e545..c30696eafc36 100644

Lines of this file are not shown. View the raw message.

net/ipv4/udp.c +2 -0
index aa9f2ec3dc46..01e1d36bdf13 100644

Lines of this file are not shown. View the raw message.

net/ipv4/udp_tunnel_core.c +1 -0
index 8efaf8c3fe2a..8242c8947340 100644

Lines of this file are not shown. View the raw message.

net/ipv6/addrconf.c +6 -2
index b738eb7e1cae..04cf06866e76 100644

Lines of this file are not shown. View the raw message.

net/ipv6/seg6.c +5 -0
index 73aaabf0e966..0b0e34ddc64e 100644

Lines of this file are not shown. View the raw message.

net/ipv6/udp.c +4 -1
index e2f2e087a753..40074bc7274e 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nf_conntrack_irc.c +3 -2
index 1796c456ac98..992decbcaa5c 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nf_conntrack_proto_tcp.c +31 -0
index a63b51dceaf2..a634c72b1ffc 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nf_tables_api.c +3 -1
index bc690238a3c5..848cc81d6992 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/ar-internal.h +1 -0
index 571436064cd6..62c70709d798 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/local_object.c +1 -0
index 96ecb7356c0f..79bb02eb67b2 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/peer_event.c +256 -37

293 lines not on this page · raw message

net/rxrpc/rxkad.c +1 -1
index 08aab5c01437..db47844f4ac9 100644

Lines of this file are not shown. View the raw message.

net/sched/sch_sfb.c +8 -5
index 3d061a13d7ed..2829455211f8 100644

Lines of this file are not shown. View the raw message.

net/sched/sch_taprio.c +3 -2
index b9c71a304d39..0b941dd63d26 100644

Lines of this file are not shown. View the raw message.

net/smc/smc_core.c +1 -0
index f40f6ed0fbdb..1f3bb1f6b1f7 100644

Lines of this file are not shown. View the raw message.

net/smc/smc_core.h +2 -0
index 4cb03e942364..7b43a78c7f73 100644

Lines of this file are not shown. View the raw message.

net/smc/smc_wr.c +5 -0
index 26f8f240d9e8..b0678a417e09 100644

Lines of this file are not shown. View the raw message.

net/smc/smc_wr.h +5 -0
index a54e90a1110f..45e9b894d3f8 100644

Lines of this file are not shown. View the raw message.

net/tipc/monitor.c +1 -1
index 2f4d23238a7e..9618e4429f0f 100644

Lines of this file are not shown. View the raw message.

security/security.c +4 -0
index 188b8f782220..8b62654ff3f9 100644

Lines of this file are not shown. View the raw message.

security/selinux/hooks.c +24 -0
index 1bbd53321d13..e90dfa36f79a 100644

Lines of this file are not shown. View the raw message.

security/selinux/include/classmap.h +1 -1
index ff757ae5f253..1c2f41ff4e55 100644

Lines of this file are not shown. View the raw message.

security/smack/smack_lsm.c +32 -0
index 6207762dbdb1..b30e20f64471 100644

Lines of this file are not shown. View the raw message.

sound/core/memalloc.c +7 -2
index 55b3c49ba61d..244afc38ddca 100644

Lines of this file are not shown. View the raw message.

sound/core/oss/pcm_oss.c +3 -3
index 90c3a367d7de..02df915eb3c6 100644

Lines of this file are not shown. View the raw message.

sound/drivers/aloop.c +4 -3
index 9b4a7cdb103a..12f12a294df5 100644

Lines of this file are not shown. View the raw message.

sound/pci/emu10k1/emupcm.c +1 -1
index b2701a4452d8..48af77ae8020 100644

Lines of this file are not shown. View the raw message.

sound/pci/hda/hda_intel.c +1 -1
index a77165bd92a9..b20694fd69de 100644

Lines of this file are not shown. View the raw message.

sound/soc/atmel/mchp-spdiftx.c +1 -9
index d24380046435..bcca1cf3cd7b 100644

Lines of this file are not shown. View the raw message.

sound/soc/codecs/cs42l42.c +7 -6
index 4fade2388797..8cba3015398b 100644

Lines of this file are not shown. View the raw message.

sound/soc/qcom/sm8250.c +1 -0
index 6e1184c8b672..c48ac107810d 100644

Lines of this file are not shown. View the raw message.

sound/soc/sof/Kconfig +2 -0
index 4542868cd730..39216c09f159 100644

Lines of this file are not shown. View the raw message.

sound/usb/card.c +1 -1
index d356743de2ff..706d249a9ad6 100644

Lines of this file are not shown. View the raw message.

sound/usb/endpoint.c +11 -14
index f9c921683948..ff2aa13b7b26 100644

Lines of this file are not shown. View the raw message.

sound/usb/endpoint.h +4 -2
index 6a9af04cf175..e67ea28faa54 100644

Lines of this file are not shown. View the raw message.

sound/usb/pcm.c +10 -4
index e692ae04436a..02035b545f9d 100644

Lines of this file are not shown. View the raw message.

sound/usb/quirks.c +1 -1
index 9bfead5efc4c..5b4d8f5eade2 100644

Lines of this file are not shown. View the raw message.

sound/usb/stream.c +5 -4
index ceb93d798182..f10f4e6d3fb8 100644

Lines of this file are not shown. View the raw message.

tools/lib/perf/evlist.c +50 -0

50 lines not on this page · raw message

tools/objtool/check.c +18 -16
index 31c719f99f66..5d87e0b0d85f 100644

Lines of this file are not shown. View the raw message.

tools/perf/arch/x86/util/evlist.c +6 -1
index 68f681ad54c1..777bdf182a58 100644

Lines of this file are not shown. View the raw message.

tools/perf/builtin-record.c +6 -2
index 9a71f0330137..68c878b4e5e4 100644

Lines of this file are not shown. View the raw message.

tools/perf/builtin-script.c +3 -0
index c689054002cc..26a572c160d6 100644

Lines of this file are not shown. View the raw message.

tools/perf/builtin-stat.c +8 -3
index 5f0333a8acd8..82e14faecc3e 100644

Lines of this file are not shown. View the raw message.

tools/perf/dlfilters/dlfilter-show-cycles.c +2 -2
index 9eccc97bff82..6d47298ebe9f 100644

Lines of this file are not shown. View the raw message.

tools/perf/util/evlist.c +7 -2
index 48af7d379d82..efa5f006b5c6 100644

Lines of this file are not shown. View the raw message.

tools/perf/util/evlist.h +5 -2
index 1bde9ccf4e7d..129095c0fe6d 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.