Skip to contentSkip to conversation

Linux 6.5.5

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Sep 23, 2023 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.5.5 kernel.

All users of the 6.5 kernel series must upgrade.

The updated 6.5.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.5.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/admin-guide/cgroup-v1/memory.rst                      |    2 
 Documentation/arch/arm64/silicon-errata.rst                         |    3 
 Makefile                                                            |    2 
 arch/arm/kernel/hw_breakpoint.c                                     |    8 
 arch/arm/kernel/machine_kexec.c                                     |   14 -
 arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts          |   16 +
 arch/arm64/boot/dts/qcom/sm6125-sony-xperia-seine-pdx201.dts        |    2 
 arch/arm64/boot/dts/qcom/sm6125-xiaomi-laurel-sprout.dts            |    2 
 arch/arm64/boot/dts/qcom/sm6350.dtsi                                |    2 
 arch/arm64/boot/dts/qcom/sm8150-sony-xperia-kumano.dtsi             |    2 
 arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo.dtsi                |    2 
 arch/arm64/kernel/hw_breakpoint.c                                   |    4 
 arch/mips/cavium-octeon/octeon-usb.c                                |    8 
 arch/powerpc/platforms/pseries/ibmebus.c                            |    1 
 arch/riscv/kernel/elf_kexec.c                                       |    8 
 arch/s390/boot/startup.c                                            |    9 
 arch/x86/boot/compressed/ident_map_64.c                             |    8 
 arch/x86/include/asm/boot.h                                         |   45 ++-
 arch/x86/include/asm/linkage.h                                      |    8 
 arch/x86/include/asm/uaccess_64.h                                   |    2 
 arch/x86/kernel/alternative.c                                       |    9 
 arch/x86/kernel/amd_nb.c                                            |    8 
 arch/x86/kernel/apic/x2apic_uv_x.c                                  |   11 
 arch/x86/kernel/callthunks.c                                        |    1 
 arch/x86/kernel/smpboot.c                                           |   12 
 arch/x86/lib/copy_user_64.S                                         |   57 ----
 arch/x86/lib/putuser.S                                              |    4 
 arch/x86/purgatory/Makefile                                         |    4 
 block/blk-mq.c                                                      |   19 +
 crypto/lrw.c                                                        |    6 
 crypto/xts.c                                                        |    6 
 drivers/acpi/acpica/psopcode.c                                      |    2 
 drivers/acpi/arm64/iort.c                                           |    5 
 drivers/acpi/video_detect.c                                         |   27 +
 drivers/acpi/x86/s2idle.c                                           |    6 
 drivers/ata/ahci.c                                                  |    9 
 drivers/ata/libahci.c                                               |   35 +-
 drivers/ata/libata-core.c                                           |    7 
 drivers/ata/libata-sata.c                                           |   19 +
 drivers/bluetooth/btusb.c                                           |   15 +
 drivers/bus/ti-sysc.c                                               |    2 
 drivers/char/tpm/tpm_tis_core.c                                     |   13 
 drivers/comedi/Kconfig                                              |  103 ++-----
 drivers/firewire/core-device.c                                      |    2 
 drivers/firewire/core-topology.c                                    |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu.h                                 |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c                              |   18 -
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                          |   26 -
 drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c                              |    8 
 drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h                              |    7 
 drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c                             |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c                              |    2 
 drivers/gpu/drm/amd/amdgpu/aqua_vanjaram_reg_init.c                 |    2 
 drivers/gpu/drm/amd/amdgpu/ih_v6_0.c                                |    4 
 drivers/gpu/drm/amd/amdgpu/navi10_ih.c                              |    4 
 drivers/gpu/drm/amd/amdgpu/vega10_ih.c                              |    4 
 drivers/gpu/drm/amd/amdgpu/vega20_ih.c                              |    4 
 drivers/gpu/drm/amd/amdkfd/kfd_priv.h                               |    3 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c                   |  112 ++++++--
 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c        |    2 
 drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c               |   35 ++
 drivers/gpu/drm/amd/display/dc/dc.h                                 |    1 
 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_resource.c             |   23 +
 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dccg.c                   |    3 
 drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c      |    4 
 drivers/gpu/drm/amd/display/dc/dml/dcn314/display_mode_vba_314.c    |    4 
 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_util_32.c |    7 
 drivers/gpu/drm/amd/display/dc/inc/core_types.h                     |    1 
 drivers/gpu/drm/amd/display/dc/link/link_factory.c                  |    4 
 drivers/gpu/drm/bridge/samsung-dsim.c                               |    2 
 drivers/gpu/drm/bridge/tc358762.c                                   |    2 
 drivers/gpu/drm/drm_edid.c                                          |    1 
 drivers/gpu/drm/exynos/exynos_drm_crtc.c                            |    5 
 drivers/gpu/drm/i915/display/intel_bios.c                           |   21 +
 drivers/gpu/drm/i915/display/intel_bios.h                           |    1 
 drivers/gpu/drm/i915/display/intel_dp.c                             |    7 
 drivers/gpu/drm/mediatek/mtk_dp.c                                   |    6 
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c                               |    3 
 drivers/gpu/drm/msm/adreno/adreno_device.c                          |   19 +
 drivers/gpu/drm/msm/adreno/adreno_gpu.h                             |    2 
 drivers/gpu/drm/radeon/radeon_sa.c                                  |    2 
 drivers/gpu/drm/tiny/gm12u320.c                                     |   10 
 drivers/i2c/busses/i2c-aspeed.c                                     |    7 
 drivers/interconnect/core.c                                         |   18 +
 drivers/md/dm-core.h                                                |    1 
 drivers/md/dm-ioctl.c                                               |    7 
 drivers/md/dm-table.c                                               |   32 +-
 drivers/md/dm.c                                                     |   23 -
 drivers/md/md.c                                                     |   23 +
 drivers/md/md.h                                                     |    3 
 drivers/md/raid1.c                                                  |    3 
 drivers/media/pci/cx23885/cx23885-video.c                           |    2 
 drivers/media/pci/intel/ipu3/ipu3-cio2-main.c                       |    2 
 drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c                |    2 
 drivers/media/tuners/qt1010.c                                       |   11 
 drivers/media/usb/dvb-usb-v2/af9035.c                               |    9 
 drivers/media/usb/dvb-usb-v2/anysee.c                               |    2 
 drivers/media/usb/dvb-usb-v2/az6007.c                               |    8 
 drivers/media/usb/dvb-usb-v2/gl861.c                                |    2 
 drivers/media/usb/dvb-usb/af9005.c                                  |    5 
 drivers/media/usb/dvb-usb/dw2102.c                                  |   24 +
 drivers/misc/Kconfig                                                |    1 
 drivers/mmc/host/sdhci-esdhc-imx.c                                  |    7 
 drivers/mtd/spi-nor/atmel.c                                         |    8 
 drivers/mtd/spi-nor/core.c                                          |   23 +
 drivers/mtd/spi-nor/core.h                                          |    4 
 drivers/mtd/spi-nor/issi.c                                          |    4 
 drivers/mtd/spi-nor/macronix.c                                      |    4 
 drivers/mtd/spi-nor/micron-st.c                                     |    4 
 drivers/mtd/spi-nor/spansion.c                                      |   86 +++++-
 drivers/mtd/spi-nor/sst.c                                           |    8 
 drivers/mtd/spi-nor/winbond.c                                       |    4 
 drivers/mtd/spi-nor/xilinx.c                                        |    4 
 drivers/net/can/Kconfig                                             |    4 
 drivers/net/can/sun4i_can.c                                         |   22 +
 drivers/net/ethernet/atheros/alx/ethtool.c                          |    5 
 drivers/net/ethernet/intel/ice/ice_eswitch.c                        |    3 
 drivers/net/wireless/ath/ath10k/pci.c                               |    2 
 drivers/net/wireless/ath/ath10k/usb.c                               |    2 
 drivers/net/wireless/ath/ath11k/pci.c                               |    2 
 drivers/net/wireless/ath/ath12k/dp.c                                |   30 ++
 drivers/net/wireless/ath/ath12k/dp.h                                |    2 
 drivers/net/wireless/ath/ath12k/mac.c                               |    7 
 drivers/net/wireless/ath/ath12k/pci.c                               |    2 
 drivers/net/wireless/ath/ath12k/wmi.c                               |   24 +
 drivers/net/wireless/ath/ath9k/ahb.c                                |    4 
 drivers/net/wireless/ath/ath9k/mac.h                                |    6 
 drivers/net/wireless/ath/ath9k/pci.c                                |    4 
 drivers/net/wireless/ath/ath9k/xmit.c                               |    4 
 drivers/net/wireless/ath/wil6210/txrx.c                             |    2 
 drivers/net/wireless/ath/wil6210/txrx.h                             |    6 
 drivers/net/wireless/ath/wil6210/txrx_edma.c                        |    2 
 drivers/net/wireless/ath/wil6210/txrx_edma.h                        |    6 
 drivers/net/wireless/atmel/at76c50x-usb.c                           |    8 
 drivers/net/wireless/intel/iwlwifi/pcie/drv.c                       |   11 
 drivers/net/wireless/intersil/orinoco/orinoco_usb.c                 |   12 
 drivers/net/wireless/legacy/rndis_wlan.c                            |    2 
 drivers/net/wireless/marvell/mwifiex/tdls.c                         |    9 
 drivers/net/wireless/mediatek/mt76/mt7603/Kconfig                   |    2 
 drivers/net/wireless/mediatek/mt76/mt7615/Kconfig                   |    2 
 drivers/net/wireless/mediatek/mt76/mt76x0/Kconfig                   |    4 
 drivers/net/wireless/mediatek/mt76/mt76x2/Kconfig                   |    4 
 drivers/net/wireless/mediatek/mt76/mt7915/Kconfig                   |    2 
 drivers/net/wireless/mediatek/mt76/mt7921/mac.c                     |    4 
 drivers/net/wireless/mediatek/mt76/mt7996/Kconfig                   |    2 
 drivers/net/wireless/mediatek/mt7601u/Kconfig                       |    2 
 drivers/net/wireless/purelifi/plfxlc/Kconfig                        |    2 
 drivers/net/wireless/ralink/rt2x00/Kconfig                          |    2 
 drivers/net/wireless/realtek/rtw88/main.c                           |    4 
 drivers/net/wireless/realtek/rtw88/pci.c                            |    2 
 drivers/net/wireless/realtek/rtw88/usb.c                            |    2 
 drivers/net/wireless/realtek/rtw89/pci.c                            |    2 
 drivers/net/wireless/virtual/mac80211_hwsim.c                       |   12 
 drivers/net/wireless/zydas/zd1201.c                                 |    6 
 drivers/nvme/host/core.c                                            |   54 ++-
 drivers/nvme/target/tcp.c                                           |    2 
 drivers/pci/controller/dwc/pci-imx6.c                               |    1 
 drivers/pci/controller/dwc/pcie-fu740.c                             |    1 
 drivers/pci/controller/vmd.c                                        |   19 +
 drivers/perf/arm_smmuv3_pmu.c                                       |   46 +++
 drivers/perf/fsl_imx8_ddr_perf.c                                    |   21 +
 drivers/platform/chrome/cros_ec_lpc.c                               |    4 
 drivers/platform/x86/eeepc-laptop.c                                 |    2 
 drivers/scsi/lpfc/lpfc.h                                            |    1 
 drivers/scsi/lpfc/lpfc_debugfs.c                                    |   14 -
 drivers/scsi/lpfc/lpfc_els.c                                        |   25 +
 drivers/scsi/lpfc/lpfc_init.c                                       |   20 +
 drivers/scsi/lpfc/lpfc_sli.c                                        |    8 
 drivers/scsi/megaraid/megaraid_sas.h                                |    2 
 drivers/scsi/megaraid/megaraid_sas_base.c                           |   21 -
 drivers/scsi/pm8001/pm8001_init.c                                   |   51 +--
 drivers/scsi/qla2xxx/qla_dfs.c                                      |    6 
 drivers/scsi/qla2xxx/qla_inline.h                                   |    2 
 drivers/scsi/qla2xxx/qla_isr.c                                      |    6 
 drivers/scsi/qla2xxx/qla_target.c                                   |    3 
 drivers/scsi/qla2xxx/tcm_qla2xxx.c                                  |    4 
 drivers/spi/spi-sun6i.c                                             |   29 +-
 drivers/staging/wlan-ng/prism2usb.c                                 |   48 +--
 drivers/target/iscsi/iscsi_target_configfs.c                        |   54 +--
 drivers/target/target_core_transport.c                              |    1 
 drivers/tty/serial/cpm_uart/cpm_uart_core.c                         |   13 
 drivers/usb/cdns3/cdns3-plat.c                                      |    3 
 drivers/usb/cdns3/cdnsp-pci.c                                       |    3 
 drivers/usb/cdns3/core.c                                            |   15 -
 drivers/usb/cdns3/core.h                                            |    7 
 drivers/usb/chipidea/ci.h                                           |    1 
 drivers/usb/chipidea/ci_hdrc_imx.c                                  |    4 
 drivers/usb/chipidea/core.c                                         |    2 
 drivers/usb/chipidea/host.c                                         |    1 
 drivers/usb/gadget/udc/fsl_qe_udc.c                                 |    2 
 drivers/usb/host/ehci-hcd.c                                         |    8 
 drivers/usb/host/ehci-hub.c                                         |   10 
 drivers/usb/host/ehci.h                                             |   10 
 drivers/usb/typec/mux/intel_pmc_mux.c                               |   25 +
 drivers/usb/typec/tcpm/Kconfig                                      |    1 
 drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c                       |   37 ++
 fs/attr.c                                                           |   20 +
 fs/autofs/waitq.c                                                   |    3 
 fs/btrfs/block-group.c                                              |   23 +
 fs/btrfs/delayed-inode.c                                            |   19 +
 fs/btrfs/disk-io.c                                                  |   22 -
 fs/btrfs/extent-tree.c                                              |   78 ++++-
 fs/btrfs/extent_io.c                                                |   43 +--
 fs/btrfs/extent_io.h                                                |    7 
 fs/btrfs/fs.h                                                       |    3 
 fs/btrfs/ioctl.c                                                    |    8 
 fs/btrfs/ordered-data.c                                             |    2 
 fs/btrfs/volumes.c                                                  |    8 
 fs/btrfs/volumes.h                                                  |    1 
 fs/btrfs/zoned.c                                                    |  131 +++++++--
 fs/btrfs/zoned.h                                                    |   20 -
 fs/efivarfs/super.c                                                 |   14 -
 fs/ext2/xattr.c                                                     |    4 
 fs/ext4/mballoc.c                                                   |   61 +---
 fs/ext4/mballoc.h                                                   |   14 +
 fs/ext4/namei.c                                                     |   26 +
 fs/iomap/buffered-io.c                                              |    2 
 fs/jfs/jfs_dmap.c                                                   |    1 
 fs/jfs/jfs_imap.c                                                   |    1 
 fs/locks.c                                                          |    2 
 fs/nfsd/nfs4proc.c                                                  |    4 
 fs/overlayfs/copy_up.c                                              |    3 
 fs/overlayfs/file.c                                                 |    9 
 fs/tracefs/inode.c                                                  |    3 
 include/drm/drm_kunit_helpers.h                                     |    4 
 include/linux/acpi_iort.h                                           |    1 
 include/linux/bpf.h                                                 |    3 
 include/linux/bpf_verifier.h                                        |    2 
 include/linux/instruction_pointer.h                                 |    5 
 include/linux/libata.h                                              |    4 
 include/linux/pci_ids.h                                             |    2 
 include/linux/perf_event.h                                          |   22 +
 include/linux/sched/task.h                                          |   28 +-
 include/linux/trace_events.h                                        |    6 
 include/linux/usb/chipidea.h                                        |    1 
 include/uapi/linux/netfilter_bridge/ebtables.h                      |   14 -
 io_uring/io_uring.c                                                 |   16 +
 io_uring/net.c                                                      |    5 
 kernel/bpf/verifier.c                                               |   13 
 kernel/fork.c                                                       |    8 
 kernel/panic.c                                                      |    1 
 kernel/power/hibernate.c                                            |   12 
 kernel/printk/internal.h                                            |    2 
 kernel/printk/printk.c                                              |  139 +++++++---
 kernel/printk/printk_safe.c                                         |    9 
 kernel/rcu/rcuscale.c                                               |    2 
 kernel/scftorture.c                                                 |    6 
 kernel/trace/trace.c                                                |   68 ++++
 kernel/trace/trace.h                                                |    2 
 kernel/trace/trace_events.c                                         |    6 
 kernel/trace/trace_events_inject.c                                  |    3 
 kernel/trace/trace_events_synth.c                                   |    2 
 lib/kobject.c                                                       |    5 
 lib/mpi/mpi-cmp.c                                                   |    8 
 mm/memcontrol.c                                                     |   10 
 net/bluetooth/hci_core.c                                            |    4 
 net/bridge/netfilter/ebtables.c                                     |    3 
 net/core/sock.c                                                     |    6 
 net/devlink/leftover.c                                              |    4 
 net/ipv4/ip_output.c                                                |    2 
 net/mac80211/cfg.c                                                  |   15 -
 net/mac80211/rx.c                                                   |    4 
 net/netlink/af_netlink.c                                            |   90 ++----
 net/netlink/af_netlink.h                                            |   22 -
 net/netlink/diag.c                                                  |   10 
 net/sunrpc/clnt.c                                                   |    2 
 net/wireless/mlme.c                                                 |   13 
 net/wireless/ocb.c                                                  |    3 
 samples/hw_breakpoint/data_breakpoint.c                             |    4 
 security/selinux/hooks.c                                            |   10 
 sound/hda/intel-dsp-config.c                                        |    8 
 sound/soc/intel/boards/sof_sdw.c                                    |    4 
 sound/soc/sof/amd/acp-ipc.c                                         |    4 
 sound/soc/sof/topology.c                                            |    5 
 tools/iio/iio_generic_buffer.c                                      |   17 -
 tools/lib/bpf/libbpf.c                                              |    1 
 tools/testing/selftests/arm64/signal/testcases/zt_regs.c            |    1 
 tools/testing/selftests/ftrace/ftracetest                           |    8 
 tools/testing/selftests/nolibc/nolibc-test.c                        |   35 ++
 279 files changed, 2255 insertions(+), 1018 deletions(-)

Abhishek Mainkar (1):
ACPICA: Add AML_NO_OPERAND_RESOLVE flag to Timer

Alan Stern (1):
Fix nomenclature for USB and PCI wireless devices

Alex Deucher (1):
drm/radeon: make fence wait in suballocator uninterrruptable

Alexander Gordeev (1):
s390/boot: cleanup number of page table levels setup

Alexander Steffen (1):
tpm_tis: Resend command to recover from data transfer errors

Alvin Lee (1):
drm/amd/display: Use max memclk variable when setting max memclk

Amir Goldstein (2):
ovl: fix failed copyup of fileattr on a symlink
ovl: fix incorrect fdput() on aio completion

Anand Jain (2):
btrfs: add a helper to read the superblock metadata_uuid
btrfs: compare the correct fsid/metadata_uuid in btrfs_validate_super

Andrew Kanner (1):
fs/jfs: prevent double-free in dbUnmount() after failed jfs_remount()

AngeloGioacchino Del Regno (1):
drm/mediatek: dp: Change logging to dev for mtk_dp_aux_transfer()

Arnd Bergmann (1):
samples/hw_breakpoint: fix building without module unloading

Austin Zheng (1):
drm/amd/display: Use DTBCLK as refclk instead of DPREFCLK

Avadhut Naik (1):
x86/amd_nb: Add PCI IDs for AMD Family 1Ah-based models

Avraham Stern (1):
wifi: iwlwifi: pcie: avoid a warning in case prepare card failed

Azeem Shaikh (1):
crypto: lrw,xts - Replace strlcpy with strscpy

Baokun Li (3):
ext4: add two helper functions extent_logical_end() and pa_logical_end()
ext4: avoid overlapping preallocations due to overflow
ext4: fix BUG in ext4_mb_new_inode_pa() due to overflow

Baoquan He (1):
misc: open-dice: make OPEN_DICE depend on HAS_IOMEM

Chen Yu (1):
PM: hibernate: Fix the exclusive get block device in test_resume mode

Chengming Zhou (3):
blk-mq: fix tags leak when shrink nr_hw_queues
blk-mq: prealloc tags when increase tagset nr_hw_queues
blk-mq: fix tags UAF when shrinking q->nr_hw_queues

Chenyuan Mi (1):
tools: iio: iio_generic_buffer: Fix some integer type and calculation

Chris Lu (3):

      Bluetooth: btusb: Add a new VID/PID 0489/e0f6 for MT7922
      Bluetooth: btusb: Add new VID/PID 0489/e102 for MT7922
      Bluetooth: btusb: Add new VID/PID 04ca/3804 for MT7922

Christian Brauner (1):
attr: block mode changes of symlinks

Christian König (1):
drm/amdgpu: fix amdgpu_cs_p1_user_fence

Christophe Leroy (1):
serial: cpm_uart: Avoid suspicious locking

Damien Le Moal (1):
scsi: pm8001: Setup IRQs on resume

Dave Marchevsky (2):
bpf: Consider non-owning refs trusted
bpf: Consider non-owning refs to refcounted nodes RCU protected

David Disseldorp (1):
scsi: target: core: Fix target_cmd_counter leak

Ding Xiang (1):
kselftest/arm64: fix a memleak in zt_regs_run()

Dmitry Antipov (4):
wifi: ath9k: fix fortify warnings
wifi: rtw88: delete timer and free skb queue when unloading
wifi: mwifiex: fix fortify warning
wifi: wil6210: fix fortify warnings

Dmitry Baryshkov (1):
usb: typec: qcom-pmic-typec: register drm_bridge

Dongliang Mu (1):
wifi: ath9k: fix printk specifier

Eric Dumazet (1):

      netlink: convert nlk->flags to atomic flags

Fedor Pchelkin (1):
autofs: fix memory leak of waitqueues in autofs_catatonic_mode

Filipe Manana (3):
btrfs: fix lockdep splat and potential deadlock after failure running delayed items
btrfs: fix race between finishing block group creation and its item update
btrfs: release path before inode lookup during the ino lookup ioctl

GONG, Ruiqi (2):
alx: fix OOB-read compiler warning
netfilter: ebtables: fix fortify warnings in size_entry_mwt()

Georg Ottinger (1):
ext2: fix datatype of block number in ext2_xattr_set2()

Giulio Benetti (1):
mmc: sdhci-esdhc-imx: improve ESDHC_FLAG_ERR010450

Greg Kroah-Hartman (2):
Revert "memcg: drop kmem.limit_in_bytes"
Linux 6.5.5

Hamza Mahfooz (1):
Revert "drm/amd: Disable S/G for APUs when 64GB or more host memory"

Hans Verkuil (2):
media: tuners: qt1010: replace BUG_ON with a regular error
media: pci: cx23885: replace BUG with error return

Hans de Goede (1):
ACPI: video: Add backlight=native DMI quirk for Apple iMac12,1 and iMac12,2

Hao Luo (1):
libbpf: Free btf_vmlinux when closing bpf_object

Harish Kasiviswanathan (1):
drm/amdkfd: Insert missing TLB flush on GFX10 and later

Heinrich Schuchardt (1):
efivarfs: fix statfs() on efivarfs

Ian Abbott (1):
Revert "comedi: add HAS_IOPORT dependencies"

Jeff Layton (1):
nfsd: fix change_info in NFSv4 RENAME replies

Jens Axboe (2):
io_uring: annotate the struct io_kiocb slab for appropriate user copy
dm: don't attempt to queue IO under RCU protection

Jinjie Ruan (3):
drm: gm12u320: Fix the timeout usage for usb_bulk_msg()
scsi: qla2xxx: Fix NULL vs IS_ERR() bug for debugfs_create_dir()
scsi: lpfc: Fix the NULL vs IS_ERR() bug for debugfs_create_file()

Jiri Pirko (1):
devlink: remove reload failed checks in params get/set callbacks

Jiri Slaby (SUSE) (1):
ACPI: video: Add backlight=native DMI quirk for Lenovo Ideapad Z470

Johannes Berg (6):
wifi: mac80211: check S1G action frame size
wifi: cfg80211: reject auth/assoc to AP with our address
wifi: cfg80211: ocb: don't leave if not joined
wifi: mac80211: check for station first in client probe
wifi: mac80211_hwsim: drop short frames
Revert "wifi: mac80211_hwsim: check the return value of nla_put_u32"

John Ogness (5):
printk: Reduce console_unblank() usage in unsafe scenarios
printk: Keep non-panic-CPUs out of console lock
printk: Do not take console lock for console_flush_on_panic()
printk: Consolidate console deferred printing
printk: Rename abandon_console_lock_in_panic() to other_cpu_in_panic()

John Watts (2):
can: sun4i_can: Add acceptance register quirk
can: sun4i_can: Add support for the Allwinner D1

Josef Bacik (1):
btrfs: check for BTRFS_FS_ERROR in pending ordered assert

Josh Poimboeuf (1):
x86/alternatives: Remove faulty optimization

Junxiao Bi (1):
scsi: megaraid_sas: Fix deadlock on firmware crashdump

Justin Tee (1):
scsi: lpfc: Abort outstanding ELS cmds when mailbox timeout error is detected

Keith Busch (1):
nvme: avoid bogus CRTO values

Kirill A. Shutemov (1):
x86/boot/compressed: Reserve more memory for page tables

Konrad Dybcio (1):

      arm64: dts: qcom: sc8280xp-x13s: Add camera activity LED

Konstantin Shelekhin (1):
scsi: target: iscsi: Fix buffer overflow in lio_target_nacl_info_show()

Krzysztof Kozlowski (5):
arm64: dts: qcom: sm6125-pdx201: correct ramoops pmsg-size
arm64: dts: qcom: sm6125-sprout: correct ramoops pmsg-size
arm64: dts: qcom: sm6350: correct ramoops pmsg-size
arm64: dts: qcom: sm8150-kumano: correct ramoops pmsg-size
arm64: dts: qcom: sm8250-edo: correct ramoops pmsg-size

Kuniyuki Iwashima (1):
net: Use sockaddr_storage for getsockopt(SO_PEERNAME).

Ladislav Michl (1):
usb: dwc3: dwc3-octeon: Verify clock divider

Leo Chen (2):
drm/amd/display: Blocking invalid 420 modes on HDMI TMDS for DCN31 drm/amd/display: Blocking invalid 420 modes on HDMI TMDS for DCN314

Leo Ma (1):
drm/amd/display: Fix underflow issue on 175hz timing

Lijo Lazar (1):
drm/amdgpu: Update ring scheduler info as needed

Liu Shixin via Jfs-discussion (1):

      jfs: fix invalid free of JFS_IP(ipimap)->i_imap in diUnmount

Lu Hongfei (1):
media: mdp3: Fix resource leaks in of_find_device_by_node

Lukas Wunner (1):
panic: Reenable preemption in WARN slowpath

Ma Ke (1):
usb: gadget: fsl_qe_udc: validate endpoint index for ch9 udc

Madhu M (1):
usb: typec: intel_pmc_mux: Add new ACPI ID for Lunar Lake IOM device

Maksim Kiselev (1):
spi: sun6i: add quirk for dual and quad SPI modes support

Marek Vasut (2):
drm/bridge: tc358762: Instruct DSI host to generate HSE packets
drm: bridge: samsung-dsim: Drain command transfer FIFO before transfer

Mario Limonciello (1):
ACPI: x86: s2idle: Catch multiple ACPI_TYPE_PACKAGE objects

Mariusz Tkaczyk (1):
md: Put the right device in md_seq_next

Mark Brown (1):
PCI: dwc: Provide deinit callback for i.MX

Mark O'Donovan (1):
crypto: lib/mpi - avoid null pointer deref in mpi_cmp_ui()

Masami Hiramatsu (Google) (1):
selftests: tracing: Fix to unmount tracefs for recovering environment

Mateusz Guzik (1):
x86: bring back rep movsq for user access on CPUs without ERMS

Matt Whitlock (1):
mt76: mt7921: don't assume adequate headroom for SDIO headers

Mikulas Patocka (1):
dm: fix a race condition in retrieve_deps

Mustapha Ghaddar (2):
drm/amd/display: Add DPIA Link Encoder Assignment Fix drm/amd/display: Fix 2nd DPIA encoder Assignment

Mårten Lindahl (1):
ARM: 9317/1: kexec: Make smp stop calls asynchronous

Naohiro Aota (5):
btrfs: introduce struct to consolidate extent buffer write context
btrfs: zoned: introduce block group context to btrfs_eb_write_context
btrfs: zoned: return int from btrfs_check_meta_write_pointer
btrfs: zoned: defer advancing meta write pointer
btrfs: zoned: activate metadata block group on write time

Nigel Croxon (1):
md/raid1: fix error: ISO C90 forbids mixed declarations

Niklas Cassel (2):
ata: libata-core: fetch sense data for successful commands iff CDL enabled
ata: libata: disallow dev-initiated LPM transitions to unsupported states

Nilesh Javali (1):
scsi: qla2xxx: Use raw_smp_processor_id() instead of smp_processor_id()

Nirmal Patel (1):
PCI: vmd: Disable bridge window for domain reset

Ondrej Mosnacek (1):
selinux: fix handling of empty opts in selinux_fs_context_submount()

Paul E. McKenney (1):
scftorture: Forgive memory-allocation failure if KASAN

Pavel Begunkov (1):
io_uring/net: fix iter retargeting for selected buf

Peter Zijlstra (3):
x86/ibt: Suppress spurious ENDBR
x86/ibt: Avoid duplicate ENDBR in __put_user_nocheck*() x86,static_call: Fix static-call vs return-thunk

Philip Yang (1):
drm/amdgpu: Increase soft IH ring size

Pierre-Louis Bossart (2):
ASoC: SOF: topology: simplify code to prevent static analysis warnings
ALSA: hda: intel-dsp-cfg: add LunarLake support

Qu Wenruo (3):
btrfs: handle errors properly in update_inline_extent_backref()
btrfs: output extra debug info if we failed to find an inline backref
btrfs: fix a compilation error if DEBUG is defined in btree_dirty_folio

Rajat Soni (1):
wifi: ath12k: Fix memory leak in rx_desc and tx_desc

Ralph Campbell (1):
drm/edid: Add quirk for OSVR HDK 2.0

Ricardo Neri (1):
x86/sched: Restore the SD_ASYM_PACKING flag in the DIE domain

Ritesh Harjani (IBM) (1):
iomap: Fix possible overflow condition in iomap_write_delalloc_scan

Rob Barnes (1):
platform/chrome: cros_ec_lpc: Remove EC panic shutdown timeout

Rob Clark (4):
drm/msm/adreno: Use quirk identify hw_apriv drm/msm/adreno: Use quirk to identify cached-coherent support
interconnect: Fix locking for runpm vs reclaim
interconnect: Teach lockdep about icc_bw_lock order

Roger Gammans (1):
Bluetooth: btusb: Add support for another MediaTek 7922 VID/PID

Rong Tao (1):
samples/hw_breakpoint: Fix kernel BUG 'invalid opcode: 0000'

Sakari Ailus (1):
media: pci: ipu3-cio2: Initialise timing struct to avoid a compiler warning

Shida Zhang (1):
ext4: fix rec_len verify error

Simon Pilkington (1):
drm/amd: Make fence wait in suballocator uninterruptible

Song Liu (1):
x86/purgatory: Remove LTO flags

Song Shuai (1):
riscv: kexec: Align the kexeced kernel entry

Steve Wahl (1):
x86/platform/uv: Use alternate source for socket to node data

Steven Rostedt (Google) (7):
tracing/synthetic: Fix order of struct trace_dynamic_info
tracing: Have tracing_max_latency inc the trace array ref count
tracing: Have event inject files inc the trace array ref count
tracing: Increase trace array ref count on enable and filter files
tracing: Have current_trace inc the trace array ref count
tracing: Have option files inc the trace array ref count
tracefs: Add missing lockdown check to tracefs_create_dir()

Szuying Chen (1):
ata: libahci: clear pending interrupt status

Takahiro Kuwano (2):
mtd: spi-nor: spansion: use CLPEF as an alternative to CLSR
mtd: spi-nor: spansion: preserve CFR2V[7] when writing MEMLAT

Takashi Sakamoto (1):
Revert "firewire: core: obsolete usage of GFP_ATOMIC at building node tree"

Tero Kristo (1):
tracing/synthetic: Print out u64 values properly

Thomas Hellström (1):
drm/tests: helpers: Avoid a driver uaf

Thomas Weißschuh (1):
selftests/nolibc: prevent out of bounds access in expect_vfprintf

Tomislav Novak (1):
hw_breakpoint: fix single-stepping when using bpf_overflow_handler

Tommy Huang (1):
i2c: aspeed: Reset the i2c controller when timeout occurs

Tony Lindgren (1):
bus: ti-sysc: Configure uart quirks for k3 SoC

Trond Myklebust (1):
Revert "SUNRPC: Fail faster on bad verifier"

Tuo Li (1):
drm/exynos: fix a possible null-pointer dereference due to data race in exynos_drm_crtc_atomic_disable()

Uday M Bhat (1):
ASoC: Intel: sof_sdw: Update BT offload config for soundwire config

Valentin David (1):
Bluetooth: btusb: Add device 0489:e0f5 as MT7922 device

Varun Prakash (1):

      nvmet-tcp: pass iov_len instead of sg->length to bvec_set_page()

Vijendar Mukunda (1):
ASoC: SOF: amd: clear panic mask status when panic occurs

Ville Syrjälä (1):
drm/i915: Only check eDP HPD when AUX CH is shared

Wander Lairson Costa (1):
kernel/fork: beware of __put_task_struct() calling context

Wayne Lin (1):
drm/amd/display: Adjust the MST resume flow

Wen Gong (3):
wifi: ath12k: Fix a NULL pointer dereference in ath12k_mac_op_hw_scan()
wifi: ath12k: avoid array overflow of hw mode for preferred_hw_mode
wifi: ath12k: add check max message length while scanning with extraie

Will Shiu (1):
locks: fix KASAN: use-after-free in trace_event_raw_event_filelock_lock

Wojciech Drewek (1):
ice: Don't tx before switchdev is fully configured

Xiaolei Wang (1):
usb: cdns3: Put the cdns set active part outside the spin lock

Xu Yang (3):
perf/imx_ddr: speed up overflow frequency of cycle
usb: ehci: add workaround for chipidea PORTSC.PEC bug
usb: chipidea: add workaround for chipidea PEC bug

Yicong Yang (1):

      perf/smmuv3: Enable HiSilicon Erratum 162001900 quirk for HIP08/09

Yifan Zhang (1):
drm/amd/display: fix the white screen issue when >= 64GB DRAM

Ying Hsu (1):
Bluetooth: Fix hci_suspend_sync crash

Yong-Xuan Wang (1):
PCI: fu740: Set the number of MSI vectors

Yu Kuai (2):
md: don't dereference mddev after export_rdev()
md: fix warning for holder mismatch from export_rdev()

Zhang Shurong (7):

      md: raid1: fix potential OOB in raid1_remove_disk()
      media: dvb-usb-v2: af9035: Fix null-ptr-deref in af9035_i2c_master_xfer
      media: dw2102: Fix null-ptr-deref in dw2102_i2c_transfer()
      media: af9005: Fix null-ptr-deref in af9005_i2c_xfer
      media: anysee: fix null-ptr-deref in anysee_master_xfer
      media: az6007: Fix null-ptr-deref in az6007_i2c_xfer()
      media: dvb-usb-v2: gl861: Fix null-ptr-deref in gl861_i2c_master_xfer

Zhangjin Wu (1):
selftests/nolibc: fix up kernel parameters support

Zhen Lei (1):

      kobject: Add sanity check for kset->kobj.ktype in kset_register()

Zqiang (1):
rcuscale: Move rcu_scale_writer() schedule_timeout_uninterruptible() to _idle()

ruanjinjie (1):
powerpc/pseries: fix possible memory leak in ibmebus_bus_init()

xu xin (1):
net/ipv4: return the real errno instead of -EINVAL

author maintainer
#1 lore raw
Documentation/admin-guide/cgroup-v1/memory.rst +2 -0
index 8d3afeede10e..fabaad3fd9c2 100644
@@ -92,6 +92,8 @@ Brief summary of control files.
  memory.oom_control		     set/show oom controls.
  memory.numa_stat		     show the number of memory usage per numa
 				     node
+ memory.kmem.limit_in_bytes          This knob is deprecated and writing to
+                                     it will return -ENOTSUPP.
  memory.kmem.usage_in_bytes          show current kernel memory allocation
  memory.kmem.failcnt                 show the number of kernel memory usage
 				     hits limits
Documentation/arch/arm64/silicon-errata.rst +3 -0
index bedd3a1d7b42..0ac452333eb4 100644
@@ -198,6 +198,9 @@ stable kernels.
 +----------------+-----------------+-----------------+-----------------------------+
 | Hisilicon      | Hip08 SMMU PMCG | #162001800      | N/A                         |
 +----------------+-----------------+-----------------+-----------------------------+
+| Hisilicon      | Hip08 SMMU PMCG | #162001900      | N/A                         |
+|                | Hip09 SMMU PMCG |                 |                             |
++----------------+-----------------+-----------------+-----------------------------+
 +----------------+-----------------+-----------------+-----------------------------+
 | Qualcomm Tech. | Kryo/Falkor v1  | E1003           | QCOM_FALKOR_ERRATUM_1003    |
 +----------------+-----------------+-----------------+-----------------------------+
Makefile +1 -1
index beddccac3283..7545d2b0e7b7 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 5
-SUBLEVEL = 4
+SUBLEVEL = 5
 EXTRAVERSION =
 NAME = Hurr durr I'ma ninja sloth
 
arch/arm/kernel/hw_breakpoint.c +4 -4
index 054e9199f30d..dc0fb7a81371 100644
@@ -626,7 +626,7 @@ int hw_breakpoint_arch_parse(struct perf_event *bp,
 	hw->address &= ~alignment_mask;
 	hw->ctrl.len <<= offset;
 
-	if (is_default_overflow_handler(bp)) {
+	if (uses_default_overflow_handler(bp)) {
 		/*
 		 * Mismatch breakpoints are required for single-stepping
 		 * breakpoints.
@@ -798,7 +798,7 @@ static void watchpoint_handler(unsigned long addr, unsigned int fsr,
 		 * Otherwise, insert a temporary mismatch breakpoint so that
 		 * we can single-step over the watchpoint trigger.
 		 */
-		if (!is_default_overflow_handler(wp))
+		if (!uses_default_overflow_handler(wp))
 			continue;
 step:
 		enable_single_step(wp, instruction_pointer(regs));
@@ -811,7 +811,7 @@ static void watchpoint_handler(unsigned long addr, unsigned int fsr,
 		info->trigger = addr;
 		pr_debug("watchpoint fired: address = 0x%x\n", info->trigger);
 		perf_bp_event(wp, regs);
-		if (is_default_overflow_handler(wp))
+		if (uses_default_overflow_handler(wp))
 			enable_single_step(wp, instruction_pointer(regs));
 	}
 
@@ -886,7 +886,7 @@ static void breakpoint_handler(unsigned long unknown, struct pt_regs *regs)
 			info->trigger = addr;
 			pr_debug("breakpoint fired: address = 0x%x\n", addr);
 			perf_bp_event(bp, regs);
-			if (is_default_overflow_handler(bp))
+			if (uses_default_overflow_handler(bp))
 				enable_single_step(bp, addr);
 			goto unlock;
 		}
arch/arm/kernel/machine_kexec.c +13 -1
index 46364b699cc3..5d07cf9e0044 100644
@@ -94,16 +94,28 @@ static void machine_crash_nonpanic_core(void *unused)
 	}
 }
 
+static DEFINE_PER_CPU(call_single_data_t, cpu_stop_csd) =
+	CSD_INIT(machine_crash_nonpanic_core, NULL);
+
 void crash_smp_send_stop(void)
 {
 	static int cpus_stopped;
 	unsigned long msecs;
+	call_single_data_t *csd;
+	int cpu, this_cpu = raw_smp_processor_id();
 
 	if (cpus_stopped)
 		return;
 
 	atomic_set(&waiting_for_crash_ipi, num_online_cpus() - 1);
-	smp_call_function(machine_crash_nonpanic_core, NULL, false);
+	for_each_online_cpu(cpu) {
+		if (cpu == this_cpu)
+			continue;
+
+		csd = &per_cpu(cpu_stop_csd, cpu);
+		smp_call_function_single_async(cpu, csd);
+	}
+
 	msecs = 1000; /* Wait at most a second for the other cpus to stop */
 	while ((atomic_read(&waiting_for_crash_ipi) > 0) && msecs) {
 		mdelay(1);
arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts +16 -0
index 059dfccdfe7c..b51787b6561d 100644
@@ -12,6 +12,7 @@
 #include <dt-bindings/iio/qcom,spmi-adc7-pmr735a.h>
 #include <dt-bindings/input/gpio-keys.h>
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 
 #include "sc8280xp.dtsi"
@@ -78,6 +79,21 @@ switch-lid {
 		};
 	};
 
+	leds {
+		compatible = "gpio-leds";
+
+		led-camera-indicator {
+			label = "white:camera-indicator";
+			function = LED_FUNCTION_INDICATOR;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&tlmm 28 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "none";
+			default-state = "off";
+			/* Reuse as a panic indicator until we get a "camera on" trigger */
+			panic-indicator;
+		};
+	};
+
 	pmic-glink {
 		compatible = "qcom,sc8280xp-pmic-glink", "qcom,pmic-glink";
 
arch/arm64/boot/dts/qcom/sm6125-sony-xperia-seine-pdx201.dts +1 -1
index 9f8a9ef398a2..de85086c65ad 100644
@@ -79,7 +79,7 @@ pstore_mem: ramoops@ffc00000 {
 			reg = <0x0 0xffc40000 0x0 0xc0000>;
 			record-size = <0x1000>;
 			console-size = <0x40000>;
-			msg-size = <0x20000 0x20000>;
+			pmsg-size = <0x20000>;
 		};
 
 		cmdline_mem: memory@ffd00000 {
arch/arm64/boot/dts/qcom/sm6125-xiaomi-laurel-sprout.dts +1 -1
index a7f4aeae9c1a..7c58d1299a60 100644
@@ -52,7 +52,7 @@ pstore_mem: ramoops@ffc00000 {
 			reg = <0x0 0xffc40000 0x0 0xc0000>;
 			record-size = <0x1000>;
 			console-size = <0x40000>;
-			msg-size = <0x20000 0x20000>;
+			pmsg-size = <0x20000>;
 		};
 
 		cmdline_mem: memory@ffd00000 {
arch/arm64/boot/dts/qcom/sm6350.dtsi +1 -1
index 7cafb32fbb94..4b4ea156a92c 100644
@@ -673,7 +673,7 @@ ramoops: ramoops@ffc00000 {
 			reg = <0 0xffc00000 0 0x100000>;
 			record-size = <0x1000>;
 			console-size = <0x40000>;
-			msg-size = <0x20000 0x20000>;
+			pmsg-size = <0x20000>;
 			ecc-size = <16>;
 			no-map;
 		};
arch/arm64/boot/dts/qcom/sm8150-sony-xperia-kumano.dtsi +1 -1
index baafea53770b..ae0ca48b89a5 100644
@@ -222,7 +222,7 @@ ramoops@ffc00000 {
 			reg = <0x0 0xffc00000 0x0 0x100000>;
 			record-size = <0x1000>;
 			console-size = <0x40000>;
-			msg-size = <0x20000 0x20000>;
+			pmsg-size = <0x20000>;
 			ecc-size = <16>;
 			no-map;
 		};
arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo.dtsi +1 -1
index b044cffb419e..6b044eca7ad5 100644
@@ -126,7 +126,7 @@ ramoops@ffc00000 {
 			reg = <0x0 0xffc00000 0x0 0x100000>;
 			record-size = <0x1000>;
 			console-size = <0x40000>;
-			msg-size = <0x20000 0x20000>;
+			pmsg-size = <0x20000>;
 			ecc-size = <16>;
 			no-map;
 		};
arch/arm64/kernel/hw_breakpoint.c +2 -2
index db2a1861bb97..35225632d70a 100644
@@ -654,7 +654,7 @@ static int breakpoint_handler(unsigned long unused, unsigned long esr,
 		perf_bp_event(bp, regs);
 
 		/* Do we need to handle the stepping? */
-		if (is_default_overflow_handler(bp))
+		if (uses_default_overflow_handler(bp))
 			step = 1;
 unlock:
 		rcu_read_unlock();
@@ -733,7 +733,7 @@ static u64 get_distance_from_watchpoint(unsigned long addr, u64 val,
 static int watchpoint_report(struct perf_event *wp, unsigned long addr,
 			     struct pt_regs *regs)
 {
-	int step = is_default_overflow_handler(wp);
+	int step = uses_default_overflow_handler(wp);
 	struct arch_hw_breakpoint *info = counter_arch_bp(wp);
 
 	info->trigger = addr;
arch/mips/cavium-octeon/octeon-usb.c +6 -2
index 2add435ad038..165e032d0864 100644
@@ -243,11 +243,11 @@ static int dwc3_octeon_get_divider(void)
 	while (div < ARRAY_SIZE(clk_div)) {
 		uint64_t rate = octeon_get_io_clock_rate() / clk_div[div];
 		if (rate <= 300000000 && rate >= 150000000)
-			break;
+			return div;
 		div++;
 	}
 
-	return div;
+	return -EINVAL;
 }
 
 static int dwc3_octeon_config_power(struct device *dev, void __iomem *base)
@@ -374,6 +374,10 @@ static int dwc3_octeon_clocks_start(struct device *dev, void __iomem *base)
 
 	/* Step 4b: Select controller clock frequency. */
 	div = dwc3_octeon_get_divider();
+	if (div < 0) {
+		dev_err(dev, "clock divider invalid\n");
+		return div;
+	}
 	val = dwc3_octeon_readq(uctl_ctl_reg);
 	val &= ~USBDRD_UCTL_CTL_H_CLKDIV_SEL;
 	val |= FIELD_PREP(USBDRD_UCTL_CTL_H_CLKDIV_SEL, div);
arch/powerpc/platforms/pseries/ibmebus.c +1 -0
index 44703f13985b..969cb9fc960f 100644
@@ -460,6 +460,7 @@ static int __init ibmebus_bus_init(void)
 	if (err) {
 		printk(KERN_WARNING "%s: device_register returned %i\n",
 		       __func__, err);
+		put_device(&ibmebus_bus_device);
 		bus_unregister(&ibmebus_bus_type);
 
 		return err;
arch/riscv/kernel/elf_kexec.c +7 -1
index c08bb5c3b385..b3b96ff46d19 100644
@@ -98,7 +98,13 @@ static int elf_find_pbase(struct kimage *image, unsigned long kernel_len,
 	kbuf.image = image;
 	kbuf.buf_min = lowest_paddr;
 	kbuf.buf_max = ULONG_MAX;
-	kbuf.buf_align = PAGE_SIZE;
+
+	/*
+	 * Current riscv boot protocol requires 2MB alignment for
+	 * RV64 and 4MB alignment for RV32
+	 *
+	 */
+	kbuf.buf_align = PMD_SIZE;
 	kbuf.mem = KEXEC_BUF_MEM_UNKNOWN;
 	kbuf.memsz = ALIGN(kernel_len, PAGE_SIZE);
 	kbuf.top_down = false;
arch/s390/boot/startup.c +4 -5
index 64bd7ac3e35d..f8d0550e5d2a 100644
@@ -176,6 +176,7 @@ static unsigned long setup_kernel_memory_layout(void)
 	unsigned long asce_limit;
 	unsigned long rte_size;
 	unsigned long pages;
+	unsigned long vsize;
 	unsigned long vmax;
 
 	pages = ident_map_size / PAGE_SIZE;
@@ -183,11 +184,9 @@ static unsigned long setup_kernel_memory_layout(void)
 	vmemmap_size = SECTION_ALIGN_UP(pages) * sizeof(struct page);
 
 	/* choose kernel address space layout: 4 or 3 levels. */
-	vmemmap_start = round_up(ident_map_size, _REGION3_SIZE);
-	if (IS_ENABLED(CONFIG_KASAN) ||
-	    vmalloc_size > _REGION2_SIZE ||
-	    vmemmap_start + vmemmap_size + vmalloc_size + MODULES_LEN >
-		    _REGION2_SIZE) {
+	vsize = round_up(ident_map_size, _REGION3_SIZE) + vmemmap_size + MODULES_LEN;
+	vsize = size_add(vsize, vmalloc_size);
+	if (IS_ENABLED(CONFIG_KASAN) || (vsize > _REGION2_SIZE)) {
 		asce_limit = _REGION1_SIZE;
 		rte_size = _REGION2_SIZE;
 	} else {
arch/x86/boot/compressed/ident_map_64.c +8 -0
index bcc956c17872..08f93b0401bb 100644
@@ -59,6 +59,14 @@ static void *alloc_pgt_page(void *context)
 		return NULL;
 	}
 
+	/* Consumed more tables than expected? */
+	if (pages->pgt_buf_offset == BOOT_PGT_SIZE_WARN) {
+		debug_putstr("pgt_buf running low in " __FILE__ "\n");
+		debug_putstr("Need to raise BOOT_PGT_SIZE?\n");
+		debug_putaddr(pages->pgt_buf_offset);
+		debug_putaddr(pages->pgt_buf_size);
+	}
+
 	entry = pages->pgt_buf + pages->pgt_buf_offset;
 	pages->pgt_buf_offset += PAGE_SIZE;
 
arch/x86/include/asm/boot.h +31 -14

54 lines not on this page · raw message

arch/x86/include/asm/linkage.h +8 -0
index 97a3de7892d3..5ff49fd67732 100644
@@ -8,6 +8,14 @@
 #undef notrace
 #define notrace __attribute__((no_instrument_function))
 
+#ifdef CONFIG_64BIT
+/*
+ * The generic version tends to create spurious ENDBR instructions under
+ * certain conditions.
+ */
+#define _THIS_IP_ ({ unsigned long __here; asm ("lea 0(%%rip), %0" : "=r" (__here)); __here; })
+#endif
+
 #ifdef CONFIG_X86_32
 #define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0)))
 #endif /* CONFIG_X86_32 */
arch/x86/include/asm/uaccess_64.h +1 -1
index 81b826d3b753..f2c02e4469cc 100644
@@ -116,7 +116,7 @@ copy_user_generic(void *to, const void *from, unsigned long len)
 		"2:\n"
 		_ASM_EXTABLE_UA(1b, 2b)
 		:"+c" (len), "+D" (to), "+S" (from), ASM_CALL_CONSTRAINT
-		: : "memory", "rax", "r8", "r9", "r10", "r11");
+		: : "memory", "rax");
 	clac();
 	return len;
 }
arch/x86/kernel/alternative.c +2 -7
index 099d58d02a26..44843a492e69 100644
@@ -720,13 +720,8 @@ void __init_or_module noinline apply_returns(s32 *start, s32 *end)
 {
 	s32 *s;
 
-	/*
-	 * Do not patch out the default return thunks if those needed are the
-	 * ones generated by the compiler.
-	 */
-	if (cpu_feature_enabled(X86_FEATURE_RETHUNK) &&
-	    (x86_return_thunk == __x86_return_thunk))
-		return;
+	if (cpu_feature_enabled(X86_FEATURE_RETHUNK))
+		static_call_force_reinit();
 
 	for (s = start; s < end; s++) {
 		void *dest = NULL, *addr = (void *)s + *s;
arch/x86/kernel/amd_nb.c +8 -0
index 035a3db5330b..356de955e78d 100644
@@ -24,6 +24,8 @@
 #define PCI_DEVICE_ID_AMD_19H_M40H_ROOT		0x14b5
 #define PCI_DEVICE_ID_AMD_19H_M60H_ROOT		0x14d8
 #define PCI_DEVICE_ID_AMD_19H_M70H_ROOT		0x14e8
+#define PCI_DEVICE_ID_AMD_1AH_M00H_ROOT		0x153a
+#define PCI_DEVICE_ID_AMD_1AH_M20H_ROOT		0x1507
 #define PCI_DEVICE_ID_AMD_MI200_ROOT		0x14bb
 
 #define PCI_DEVICE_ID_AMD_17H_DF_F4		0x1464
@@ -39,6 +41,7 @@
 #define PCI_DEVICE_ID_AMD_19H_M60H_DF_F4	0x14e4
 #define PCI_DEVICE_ID_AMD_19H_M70H_DF_F4	0x14f4
 #define PCI_DEVICE_ID_AMD_19H_M78H_DF_F4	0x12fc
+#define PCI_DEVICE_ID_AMD_1AH_M00H_DF_F4	0x12c4
 #define PCI_DEVICE_ID_AMD_MI200_DF_F4		0x14d4
 
 /* Protect the PCI config register pairs used for SMN. */
@@ -56,6 +59,8 @@ static const struct pci_device_id amd_root_ids[] = {
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_M40H_ROOT) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_M60H_ROOT) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_M70H_ROOT) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_1AH_M00H_ROOT) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_1AH_M20H_ROOT) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_MI200_ROOT) },
 	{}
 };
@@ -85,6 +90,8 @@ static const struct pci_device_id amd_nb_misc_ids[] = {
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_M60H_DF_F3) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_M70H_DF_F3) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_M78H_DF_F3) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_1AH_M00H_DF_F3) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_1AH_M20H_DF_F3) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_MI200_DF_F3) },
 	{}
 };
@@ -106,6 +113,7 @@ static const struct pci_device_id amd_nb_link_ids[] = {
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_M40H_DF_F4) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_M50H_DF_F4) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CNB17H_F4) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_1AH_M00H_DF_F4) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_MI200_DF_F4) },
 	{}
 };
arch/x86/kernel/apic/x2apic_uv_x.c +5 -6
index d9384d5b4b8e..35acc95c6dd5 100644
@@ -1571,7 +1571,7 @@ static void __init build_socket_tables(void)
 {
 	struct uv_gam_range_entry *gre = uv_gre_table;
 	int nums, numn, nump;
-	int cpu, i, lnid;
+	int i, lnid, apicid;
 	int minsock = _min_socket;
 	int maxsock = _max_socket;
 	int minpnode = _min_pnode;
@@ -1622,15 +1622,14 @@ static void __init build_socket_tables(void)
 
 	/* Set socket -> node values: */
 	lnid = NUMA_NO_NODE;
-	for_each_possible_cpu(cpu) {
-		int nid = cpu_to_node(cpu);
-		int apicid, sockid;
+	for (apicid = 0; apicid < ARRAY_SIZE(__apicid_to_node); apicid++) {
+		int nid = __apicid_to_node[apicid];
+		int sockid;
 
-		if (lnid == nid)
+		if ((nid == NUMA_NO_NODE) || (lnid == nid))
 			continue;
 		lnid = nid;
 
-		apicid = per_cpu(x86_cpu_to_apicid, cpu);
 		sockid = apicid >> uv_cpuid.socketid_shift;
 
 		if (_socket_to_node[sockid - minsock] == SOCK_EMPTY)
arch/x86/kernel/callthunks.c +0 -1
index c06bfc086565..faa9f2299848 100644
@@ -272,7 +272,6 @@ void __init callthunks_patch_builtin_calls(void)
 	pr_info("Setting up call depth tracking\n");
 	mutex_lock(&text_mutex);
 	callthunks_setup(&cs, &builtin_coretext);
-	static_call_force_reinit();
 	thunks_initialized = true;
 	mutex_unlock(&text_mutex);
 }
arch/x86/kernel/smpboot.c +9 -3
index 7d82f0bd449c..747b83a373a2 100644
@@ -587,7 +587,6 @@ static bool match_llc(struct cpuinfo_x86 *c, struct cpuinfo_x86 *o)
 }
 
 
-#if defined(CONFIG_SCHED_SMT) || defined(CONFIG_SCHED_CLUSTER) || defined(CONFIG_SCHED_MC)
 static inline int x86_sched_itmt_flags(void)
 {
 	return sysctl_sched_itmt_enabled ? SD_ASYM_PACKING : 0;
@@ -611,7 +610,14 @@ static int x86_cluster_flags(void)
 	return cpu_cluster_flags() | x86_sched_itmt_flags();
 }
 #endif
-#endif
+
+static int x86_die_flags(void)
+{
+	if (cpu_feature_enabled(X86_FEATURE_HYBRID_CPU))
+	       return x86_sched_itmt_flags();
+
+	return 0;
+}
 
 /*
  * Set if a package/die has multiple NUMA nodes inside.
@@ -653,7 +659,7 @@ static void __init build_sched_topology(void)
 	 */
 	if (!x86_has_numa_in_package) {
 		x86_topology[i++] = (struct sched_domain_topology_level){
-			cpu_cpu_mask, SD_INIT_NAME(DIE)
+			cpu_cpu_mask, x86_die_flags, SD_INIT_NAME(DIE)
 		};
 	}
 
arch/x86/lib/copy_user_64.S +13 -44

75 lines not on this page · raw message

arch/x86/lib/putuser.S +0 -4
index 1451e0c4ae22..235bbda6fc82 100644
@@ -56,7 +56,6 @@ SYM_FUNC_END(__put_user_1)
 EXPORT_SYMBOL(__put_user_1)
 
 SYM_FUNC_START(__put_user_nocheck_1)
-	ENDBR
 	ASM_STAC
 2:	movb %al,(%_ASM_CX)
 	xor %ecx,%ecx
@@ -76,7 +75,6 @@ SYM_FUNC_END(__put_user_2)
 EXPORT_SYMBOL(__put_user_2)
 
 SYM_FUNC_START(__put_user_nocheck_2)
-	ENDBR
 	ASM_STAC
 4:	movw %ax,(%_ASM_CX)
 	xor %ecx,%ecx
@@ -96,7 +94,6 @@ SYM_FUNC_END(__put_user_4)
 EXPORT_SYMBOL(__put_user_4)
 
 SYM_FUNC_START(__put_user_nocheck_4)
-	ENDBR
 	ASM_STAC
 6:	movl %eax,(%_ASM_CX)
 	xor %ecx,%ecx
@@ -119,7 +116,6 @@ SYM_FUNC_END(__put_user_8)
 EXPORT_SYMBOL(__put_user_8)
 
 SYM_FUNC_START(__put_user_nocheck_8)
-	ENDBR
 	ASM_STAC
 9:	mov %_ASM_AX,(%_ASM_CX)
 #ifdef CONFIG_X86_32
arch/x86/purgatory/Makefile +4 -0
index c2a29be35c01..08aa0f25f12a 100644
@@ -19,6 +19,10 @@ CFLAGS_sha256.o := -D__DISABLE_EXPORTS -D__NO_FORTIFY
 # optimization flags.
 KBUILD_CFLAGS := $(filter-out -fprofile-sample-use=% -fprofile-use=%,$(KBUILD_CFLAGS))
 
+# When LTO is enabled, llvm emits many text sections, which is not supported
+# by kexec. Remove -flto=* flags.
+KBUILD_CFLAGS := $(filter-out $(CC_FLAGS_LTO),$(KBUILD_CFLAGS))
+
 # When linking purgatory.ro with -r unresolved symbols are not checked,
 # also link a purgatory.chk binary without -r to check for unresolved symbols.
 PURGATORY_LDFLAGS := -e purgatory_start -z nodefaultlib
block/blk-mq.c +17 -2
index 953f08354c8c..c21bc81a790f 100644
@@ -4402,6 +4402,7 @@ static int blk_mq_realloc_tag_set_tags(struct blk_mq_tag_set *set,
 				       int new_nr_hw_queues)
 {
 	struct blk_mq_tags **new_tags;
+	int i;
 
 	if (set->nr_hw_queues >= new_nr_hw_queues)
 		goto done;
@@ -4416,6 +4417,16 @@ static int blk_mq_realloc_tag_set_tags(struct blk_mq_tag_set *set,
 		       sizeof(*set->tags));
 	kfree(set->tags);
 	set->tags = new_tags;
+
+	for (i = set->nr_hw_queues; i < new_nr_hw_queues; i++) {
+		if (!__blk_mq_alloc_map_and_rqs(set, i)) {
+			while (--i >= set->nr_hw_queues)
+				__blk_mq_free_map_and_rqs(set, i);
+			return -ENOMEM;
+		}
+		cond_resched();
+	}
+
 done:
 	set->nr_hw_queues = new_nr_hw_queues;
 	return 0;
@@ -4704,7 +4715,8 @@ static void __blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set,
 {
 	struct request_queue *q;
 	LIST_HEAD(head);
-	int prev_nr_hw_queues;
+	int prev_nr_hw_queues = set->nr_hw_queues;
+	int i;
 
 	lockdep_assert_held(&set->tag_list_lock);
 
@@ -4731,7 +4743,6 @@ static void __blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set,
 		blk_mq_sysfs_unregister_hctxs(q);
 	}
 
-	prev_nr_hw_queues = set->nr_hw_queues;
 	if (blk_mq_realloc_tag_set_tags(set, nr_hw_queues) < 0)
 		goto reregister;
 
@@ -4767,6 +4778,10 @@ static void __blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set,
 
 	list_for_each_entry(q, &set->tag_list, tag_set_list)
 		blk_mq_unfreeze_queue(q);
+
+	/* Free the excess tags when nr_hw_queues shrink. */
+	for (i = set->nr_hw_queues; i < prev_nr_hw_queues; i++)
+		__blk_mq_free_map_and_rqs(set, i);
 }
 
 void blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set, int nr_hw_queues)
crypto/lrw.c +3 -3
index 1b0f76ba3eb5..59260aefed28 100644
@@ -357,10 +357,10 @@ static int lrw_create(struct crypto_template *tmpl, struct rtattr **tb)
 	 * cipher name.
 	 */
 	if (!strncmp(cipher_name, "ecb(", 4)) {
-		unsigned len;
+		int len;
 
-		len = strlcpy(ecb_name, cipher_name + 4, sizeof(ecb_name));
-		if (len < 2 || len >= sizeof(ecb_name))
+		len = strscpy(ecb_name, cipher_name + 4, sizeof(ecb_name));
+		if (len < 2)
 			goto err_free_inst;
 
 		if (ecb_name[len - 1] != ')')
crypto/xts.c +3 -3
index 09be909a6a1a..548b302c6c6a 100644
@@ -396,10 +396,10 @@ static int xts_create(struct crypto_template *tmpl, struct rtattr **tb)
 	 * cipher name.
 	 */
 	if (!strncmp(cipher_name, "ecb(", 4)) {
-		unsigned len;
+		int len;
 
-		len = strlcpy(ctx->name, cipher_name + 4, sizeof(ctx->name));
-		if (len < 2 || len >= sizeof(ctx->name))
+		len = strscpy(ctx->name, cipher_name + 4, sizeof(ctx->name));
+		if (len < 2)
 			goto err_free_inst;
 
 		if (ctx->name[len - 1] != ')')
drivers/acpi/acpica/psopcode.c +1 -1
index 09029fe545f1..39e31030e5f4 100644
@@ -603,7 +603,7 @@ const struct acpi_opcode_info acpi_gbl_aml_op_info[AML_NUM_OPCODES] = {
 
 /* 7E */ ACPI_OP("Timer", ARGP_TIMER_OP, ARGI_TIMER_OP, ACPI_TYPE_ANY,
 			 AML_CLASS_EXECUTE, AML_TYPE_EXEC_0A_0T_1R,
-			 AML_FLAGS_EXEC_0A_0T_1R),
+			 AML_FLAGS_EXEC_0A_0T_1R | AML_NO_OPERAND_RESOLVE),
 
 /* ACPI 5.0 opcodes */
 
drivers/acpi/arm64/iort.c +4 -1
index 56d887323ae5..6496ff5a6ba2 100644
@@ -1708,7 +1708,10 @@ static void __init arm_smmu_v3_pmcg_init_resources(struct resource *res,
 static struct acpi_platform_list pmcg_plat_info[] __initdata = {
 	/* HiSilicon Hip08 Platform */
 	{"HISI  ", "HIP08   ", 0, ACPI_SIG_IORT, greater_than_or_equal,
-	 "Erratum #162001800", IORT_SMMU_V3_PMCG_HISI_HIP08},
+	 "Erratum #162001800, Erratum #162001900", IORT_SMMU_V3_PMCG_HISI_HIP08},
+	/* HiSilicon Hip09 Platform */
+	{"HISI  ", "HIP09   ", 0, ACPI_SIG_IORT, greater_than_or_equal,
+	 "Erratum #162001900", IORT_SMMU_V3_PMCG_HISI_HIP09},
 	{ }
 };
 
drivers/acpi/video_detect.c +27 -0
index 18cc08c858cf..442396f6ed1f 100644
@@ -445,6 +445,15 @@ static const struct dmi_system_id video_detect_dmi_table[] = {
 		DMI_MATCH(DMI_BOARD_NAME, "Lenovo IdeaPad S405"),
 		},
 	},
+	{
+	 /* https://bugzilla.suse.com/show_bug.cgi?id=1208724 */
+	 .callback = video_detect_force_native,
+	 /* Lenovo Ideapad Z470 */
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		DMI_MATCH(DMI_PRODUCT_VERSION, "IdeaPad Z470"),
+		},
+	},
 	{
 	 /* https://bugzilla.redhat.com/show_bug.cgi?id=1187004 */
 	 .callback = video_detect_force_native,
@@ -486,6 +495,24 @@ static const struct dmi_system_id video_detect_dmi_table[] = {
 		DMI_MATCH(DMI_PRODUCT_NAME, "iMac11,3"),
 		},
 	},
+	{
+	 /* https://gitlab.freedesktop.org/drm/amd/-/issues/1838 */
+	 .callback = video_detect_force_native,
+	 /* Apple iMac12,1 */
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
+		DMI_MATCH(DMI_PRODUCT_NAME, "iMac12,1"),
+		},
+	},
+	{
+	 /* https://gitlab.freedesktop.org/drm/amd/-/issues/2753 */
+	 .callback = video_detect_force_native,
+	 /* Apple iMac12,2 */
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
+		DMI_MATCH(DMI_PRODUCT_NAME, "iMac12,2"),
+		},
+	},
 	{
 	 /* https://bugzilla.redhat.com/show_bug.cgi?id=1217249 */
 	 .callback = video_detect_force_native,
drivers/acpi/x86/s2idle.c +6 -0
index 60cc4605169c..60835953ebfc 100644
@@ -113,6 +113,12 @@ static void lpi_device_get_constraints_amd(void)
 		union acpi_object *package = &out_obj->package.elements[i];
 
 		if (package->type == ACPI_TYPE_PACKAGE) {
+			if (lpi_constraints_table) {
+				acpi_handle_err(lps0_device_handle,
+						"Duplicate constraints list\n");
+				goto free_acpi_buffer;
+			}
+
 			lpi_constraints_table = kcalloc(package->package.count,
 							sizeof(*lpi_constraints_table),
 							GFP_KERNEL);
drivers/ata/ahci.c +9 -0
index c1e85e0ed43e..7907b09fc27e 100644
@@ -1883,6 +1883,15 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 	else
 		dev_info(&pdev->dev, "SSS flag set, parallel bus scan disabled\n");
 
+	if (!(hpriv->cap & HOST_CAP_PART))
+		host->flags |= ATA_HOST_NO_PART;
+
+	if (!(hpriv->cap & HOST_CAP_SSC))
+		host->flags |= ATA_HOST_NO_SSC;
+
+	if (!(hpriv->cap2 & HOST_CAP2_SDS))
+		host->flags |= ATA_HOST_NO_DEVSLP;
+
 	if (pi.flags & ATA_FLAG_EM)
 		ahci_reset_em(host);
 
drivers/ata/libahci.c +23 -12
index 06aec35f88f2..a6212f6d3796 100644
@@ -1256,6 +1256,26 @@ static ssize_t ahci_activity_show(struct ata_device *dev, char *buf)
 	return sprintf(buf, "%d\n", emp->blink_policy);
 }
 
+static void ahci_port_clear_pending_irq(struct ata_port *ap)
+{
+	struct ahci_host_priv *hpriv = ap->host->private_data;
+	void __iomem *port_mmio = ahci_port_base(ap);
+	u32 tmp;
+
+	/* clear SError */
+	tmp = readl(port_mmio + PORT_SCR_ERR);
+	dev_dbg(ap->host->dev, "PORT_SCR_ERR 0x%x\n", tmp);
+	writel(tmp, port_mmio + PORT_SCR_ERR);
+
+	/* clear port IRQ */
+	tmp = readl(port_mmio + PORT_IRQ_STAT);
+	dev_dbg(ap->host->dev, "PORT_IRQ_STAT 0x%x\n", tmp);
+	if (tmp)
+		writel(tmp, port_mmio + PORT_IRQ_STAT);
+
+	writel(1 << ap->port_no, hpriv->mmio + HOST_IRQ_STAT);
+}
+
 static void ahci_port_init(struct device *dev, struct ata_port *ap,
 			   int port_no, void __iomem *mmio,
 			   void __iomem *port_mmio)
@@ -1270,18 +1290,7 @@ static void ahci_port_init(struct device *dev, struct ata_port *ap,
 	if (rc)
 		dev_warn(dev, "%s (%d)\n", emsg, rc);
 
-	/* clear SError */
-	tmp = readl(port_mmio + PORT_SCR_ERR);
-	dev_dbg(dev, "PORT_SCR_ERR 0x%x\n", tmp);
-	writel(tmp, port_mmio + PORT_SCR_ERR);
-
-	/* clear port IRQ */
-	tmp = readl(port_mmio + PORT_IRQ_STAT);
-	dev_dbg(dev, "PORT_IRQ_STAT 0x%x\n", tmp);
-	if (tmp)
-		writel(tmp, port_mmio + PORT_IRQ_STAT);
-
-	writel(1 << port_no, mmio + HOST_IRQ_STAT);
+	ahci_port_clear_pending_irq(ap);
 
 	/* mark esata ports */
 	tmp = readl(port_mmio + PORT_CMD);
@@ -1602,6 +1611,8 @@ int ahci_do_hardreset(struct ata_link *link, unsigned int *class,
 	tf.status = ATA_BUSY;
 	ata_tf_to_fis(&tf, 0, 0, d2h_fis);
 
+	ahci_port_clear_pending_irq(ap);
+
 	rc = sata_link_hardreset(link, timing, deadline, online,
 				 ahci_check_ready);
 
drivers/ata/libata-core.c +2 -5
index 04db0f2c683a..79d02eb4e479 100644
@@ -4935,11 +4935,8 @@ void ata_qc_complete(struct ata_queued_cmd *qc)
 		 * timeout using the policy 0xD. For these commands, invoke EH
 		 * to get the command sense data.
 		 */
-		if (qc->result_tf.status & ATA_SENSE &&
-		    ((ata_is_ncq(qc->tf.protocol) &&
-		      dev->flags & ATA_DFLAG_CDL_ENABLED) ||
-		     (!ata_is_ncq(qc->tf.protocol) &&
-		      ata_id_sense_reporting_enabled(dev->id)))) {
+		if (qc->flags & ATA_QCFLAG_HAS_CDL &&
+		    qc->result_tf.status & ATA_SENSE) {
 			/*
 			 * Tell SCSI EH to not overwrite scmd->result even if
 			 * this command is finished with result SAM_STAT_GOOD.
drivers/ata/libata-sata.c +16 -3
index 85e279a12f62..09833f4d2079 100644
@@ -396,10 +396,23 @@ int sata_link_scr_lpm(struct ata_link *link, enum ata_lpm_policy policy,
 	case ATA_LPM_MED_POWER_WITH_DIPM:
 	case ATA_LPM_MIN_POWER_WITH_PARTIAL:
 	case ATA_LPM_MIN_POWER:
-		if (ata_link_nr_enabled(link) > 0)
-			/* no restrictions on LPM transitions */
+		if (ata_link_nr_enabled(link) > 0) {
+			/* assume no restrictions on LPM transitions */
 			scontrol &= ~(0x7 << 8);
-		else {
+
+			/*
+			 * If the controller does not support partial, slumber,
+			 * or devsleep, then disallow these transitions.
+			 */
+			if (link->ap->host->flags & ATA_HOST_NO_PART)
+				scontrol |= (0x1 << 8);
+
+			if (link->ap->host->flags & ATA_HOST_NO_SSC)
+				scontrol |= (0x2 << 8);
+
+			if (link->ap->host->flags & ATA_HOST_NO_DEVSLP)
+				scontrol |= (0x4 << 8);
+		} else {
 			/* empty port, power off */
 			scontrol &= ~0xf;
 			scontrol |= (0x1 << 2);
drivers/bluetooth/btusb.c +15 -0
index e685acc5cacd..dfdfb72d350f 100644
@@ -625,9 +625,24 @@ static const struct usb_device_id blacklist_table[] = {
 	{ USB_DEVICE(0x0489, 0xe0e4), .driver_info = BTUSB_MEDIATEK |
 						     BTUSB_WIDEBAND_SPEECH |
 						     BTUSB_VALID_LE_STATES },
+	{ USB_DEVICE(0x0489, 0xe0f1), .driver_info = BTUSB_MEDIATEK |
+						     BTUSB_WIDEBAND_SPEECH |
+						     BTUSB_VALID_LE_STATES },
 	{ USB_DEVICE(0x0489, 0xe0f2), .driver_info = BTUSB_MEDIATEK |
 						     BTUSB_WIDEBAND_SPEECH |
 						     BTUSB_VALID_LE_STATES },
+	{ USB_DEVICE(0x0489, 0xe0f5), .driver_info = BTUSB_MEDIATEK |
+						     BTUSB_WIDEBAND_SPEECH |
+						     BTUSB_VALID_LE_STATES },
+	{ USB_DEVICE(0x0489, 0xe0f6), .driver_info = BTUSB_MEDIATEK |
+						     BTUSB_WIDEBAND_SPEECH |
+						     BTUSB_VALID_LE_STATES },
+	{ USB_DEVICE(0x0489, 0xe102), .driver_info = BTUSB_MEDIATEK |
+						     BTUSB_WIDEBAND_SPEECH |
+						     BTUSB_VALID_LE_STATES },
+	{ USB_DEVICE(0x04ca, 0x3804), .driver_info = BTUSB_MEDIATEK |
+						     BTUSB_WIDEBAND_SPEECH |
+						     BTUSB_VALID_LE_STATES },
 
 	/* Additional Realtek 8723AE Bluetooth devices */
 	{ USB_DEVICE(0x0930, 0x021d), .driver_info = BTUSB_REALTEK },
drivers/bus/ti-sysc.c +2 -0
index c95fa4335fee..9766dbf607f9 100644
@@ -1525,6 +1525,8 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
 		   SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE),
 	SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x47422e03, 0xffffffff,
 		   SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE),
+	SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x47424e03, 0xffffffff,
+		   SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE),
 
 	/* Quirks that need to be set based on the module address */
 	SYSC_QUIRK("mcpdm", 0x40132000, 0, 0x10, -ENODEV, 0x50000800, 0xffffffff,
drivers/char/tpm/tpm_tis_core.c +10 -3
index b95963095729..f4c4c027b062 100644
@@ -512,10 +512,17 @@ static int tpm_tis_send_main(struct tpm_chip *chip, const u8 *buf, size_t len)
 	int rc;
 	u32 ordinal;
 	unsigned long dur;
+	unsigned int try;
 
-	rc = tpm_tis_send_data(chip, buf, len);
-	if (rc < 0)
-		return rc;
+	for (try = 0; try < TPM_RETRY; try++) {
+		rc = tpm_tis_send_data(chip, buf, len);
+		if (rc >= 0)
+			/* Data transfer done successfully */
+			break;
+		else if (rc != -EIO)
+			/* Data transfer failed, not recoverable */
+			return rc;
+	}
 
 	rc = tpm_tis_verify_crc(priv, len, buf);
 	if (rc < 0) {
drivers/comedi/Kconfig +35 -68

379 lines not on this page · raw message

drivers/firewire/core-device.c +1 -1
index a3104e35412c..aa597cda0d88 100644
@@ -1211,7 +1211,7 @@ void fw_node_event(struct fw_card *card, struct fw_node *node, int event)
 		 * without actually having a link.
 		 */
  create:
-		device = kzalloc(sizeof(*device), GFP_KERNEL);
+		device = kzalloc(sizeof(*device), GFP_ATOMIC);
 		if (device == NULL)
 			break;
 
drivers/firewire/core-topology.c +1 -1
index 88466b663482..f40c81534381 100644
@@ -101,7 +101,7 @@ static struct fw_node *fw_node_create(u32 sid, int port_count, int color)
 {
 	struct fw_node *node;
 
-	node = kzalloc(struct_size(node, ports, port_count), GFP_KERNEL);
+	node = kzalloc(struct_size(node, ports, port_count), GFP_ATOMIC);
 	if (node == NULL)
 		return NULL;
 
drivers/gpu/drm/amd/amdgpu/amdgpu.h +0 -1
index 6dc950c1b689..a3b86b86dc47 100644
@@ -1296,7 +1296,6 @@ int amdgpu_device_gpu_recover(struct amdgpu_device *adev,
 void amdgpu_device_pci_config_reset(struct amdgpu_device *adev);
 int amdgpu_device_pci_reset(struct amdgpu_device *adev);
 bool amdgpu_device_need_post(struct amdgpu_device *adev);
-bool amdgpu_sg_display_supported(struct amdgpu_device *adev);
 bool amdgpu_device_pcie_dynamic_switching_supported(void);
 bool amdgpu_device_should_use_aspm(struct amdgpu_device *adev);
 bool amdgpu_device_aspm_support_quirk(void);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +4 -14
index fb78a8f47587..946d031d2520 100644
@@ -127,7 +127,6 @@ static int amdgpu_cs_p1_user_fence(struct amdgpu_cs_parser *p,
 	struct drm_gem_object *gobj;
 	struct amdgpu_bo *bo;
 	unsigned long size;
-	int r;
 
 	gobj = drm_gem_object_lookup(p->filp, data->handle);
 	if (gobj == NULL)
@@ -139,23 +138,14 @@ static int amdgpu_cs_p1_user_fence(struct amdgpu_cs_parser *p,
 	drm_gem_object_put(gobj);
 
 	size = amdgpu_bo_size(bo);
-	if (size != PAGE_SIZE || (data->offset + 8) > size) {
-		r = -EINVAL;
-		goto error_unref;
-	}
+	if (size != PAGE_SIZE || data->offset > (size - 8))
+		return -EINVAL;
 
-	if (amdgpu_ttm_tt_get_usermm(bo->tbo.ttm)) {
-		r = -EINVAL;
-		goto error_unref;
-	}
+	if (amdgpu_ttm_tt_get_usermm(bo->tbo.ttm))
+		return -EINVAL;
 
 	*offset = data->offset;
-
 	return 0;
-
-error_unref:
-	amdgpu_bo_unref(&bo);
-	return r;
 }
 
 static int amdgpu_cs_p1_bo_handles(struct amdgpu_cs_parser *p,
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +0 -26
index 6e5e4603a51a..2168dc92c670 100644
@@ -1461,32 +1461,6 @@ bool amdgpu_device_need_post(struct amdgpu_device *adev)
 	return true;
 }
 
-/*
- * On APUs with >= 64GB white flickering has been observed w/ SG enabled.
- * Disable S/G on such systems until we have a proper fix.
- * https://gitlab.freedesktop.org/drm/amd/-/issues/2354
- * https://gitlab.freedesktop.org/drm/amd/-/issues/2735
- */
-bool amdgpu_sg_display_supported(struct amdgpu_device *adev)
-{
-	switch (amdgpu_sg_display) {
-	case -1:
-		break;
-	case 0:
-		return false;
-	case 1:
-		return true;
-	default:
-		return false;
-	}
-	if ((totalram_pages() << (PAGE_SHIFT - 10)) +
-	    (adev->gmc.real_vram_size / 1024) >= 64000000) {
-		DRM_WARN("Disabling S/G due to >=64GB RAM\n");
-		return false;
-	}
-	return true;
-}
-
 /*
  * Intel hosts such as Raptor Lake and Sapphire Rapids don't support dynamic
  * speed switching. Until we have confirmation from Intel that a specific host
drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c +6 -2
index fceb3b384955..f3b0aaf3ebc6 100644
@@ -138,6 +138,7 @@ void amdgpu_ih_ring_fini(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih)
 /**
  * amdgpu_ih_ring_write - write IV to the ring buffer
  *
+ * @adev: amdgpu_device pointer
  * @ih: ih ring to write to
  * @iv: the iv to write
  * @num_dw: size of the iv in dw
@@ -145,8 +146,8 @@ void amdgpu_ih_ring_fini(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih)
  * Writes an IV to the ring buffer using the CPU and increment the wptr.
  * Used for testing and delegating IVs to a software ring.
  */
-void amdgpu_ih_ring_write(struct amdgpu_ih_ring *ih, const uint32_t *iv,
-			  unsigned int num_dw)
+void amdgpu_ih_ring_write(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih,
+			  const uint32_t *iv, unsigned int num_dw)
 {
 	uint32_t wptr = le32_to_cpu(*ih->wptr_cpu) >> 2;
 	unsigned int i;
@@ -161,6 +162,9 @@ void amdgpu_ih_ring_write(struct amdgpu_ih_ring *ih, const uint32_t *iv,
 	if (wptr != READ_ONCE(ih->rptr)) {
 		wmb();
 		WRITE_ONCE(*ih->wptr_cpu, cpu_to_le32(wptr));
+	} else if (adev->irq.retry_cam_enabled) {
+		dev_warn_once(adev->dev, "IH soft ring buffer overflow 0x%X, 0x%X\n",
+			      wptr, ih->rptr);
 	}
 }
 
drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h +5 -2
index dd1c2eded6b9..6c6184f0dbc1 100644
@@ -27,6 +27,9 @@
 /* Maximum number of IVs processed at once */
 #define AMDGPU_IH_MAX_NUM_IVS	32
 
+#define IH_RING_SIZE	(256 * 1024)
+#define IH_SW_RING_SIZE	(8 * 1024)	/* enough for 256 CAM entries */
+
 struct amdgpu_device;
 struct amdgpu_iv_entry;
 
@@ -97,8 +100,8 @@ struct amdgpu_ih_funcs {
 int amdgpu_ih_ring_init(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih,
 			unsigned ring_size, bool use_bus_addr);
 void amdgpu_ih_ring_fini(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih);
-void amdgpu_ih_ring_write(struct amdgpu_ih_ring *ih, const uint32_t *iv,
-			  unsigned int num_dw);
+void amdgpu_ih_ring_write(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih,
+			  const uint32_t *iv, unsigned int num_dw);
 int amdgpu_ih_wait_on_checkpoint_process_ts(struct amdgpu_device *adev,
 					    struct amdgpu_ih_ring *ih);
 int amdgpu_ih_process(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih);
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c +1 -1
index 5273decc5753..fa6d0adcec20 100644
@@ -493,7 +493,7 @@ void amdgpu_irq_delegate(struct amdgpu_device *adev,
 			 struct amdgpu_iv_entry *entry,
 			 unsigned int num_dw)
 {
-	amdgpu_ih_ring_write(&adev->irq.ih_soft, entry->iv_entry, num_dw);
+	amdgpu_ih_ring_write(adev, &adev->irq.ih_soft, entry->iv_entry, num_dw);
 	schedule_work(&adev->irq.ih_soft_work);
 }
 
drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c +1 -1
index c6b4337eb20c..10df731998b2 100644
@@ -81,7 +81,7 @@ int amdgpu_sa_bo_new(struct amdgpu_sa_manager *sa_manager,
 		     unsigned int size)
 {
 	struct drm_suballoc *sa = drm_suballoc_new(&sa_manager->base, size,
-						   GFP_KERNEL, true, 0);
+						   GFP_KERNEL, false, 0);
 
 	if (IS_ERR(sa)) {
 		*sa_bo = NULL;
drivers/gpu/drm/amd/amdgpu/aqua_vanjaram_reg_init.c +1 -1
index 72b629a78c62..d0fc62784e82 100644
@@ -134,7 +134,7 @@ static int aqua_vanjaram_xcp_sched_list_update(
 
 	for (i = 0; i < AMDGPU_MAX_RINGS; i++) {
 		ring = adev->rings[i];
-		if (!ring || !ring->sched.ready)
+		if (!ring || !ring->sched.ready || ring->no_scheduler)
 			continue;
 
 		aqua_vanjaram_xcp_gpu_sched_update(adev, ring, ring->xcp_id);
drivers/gpu/drm/amd/amdgpu/ih_v6_0.c +2 -2
index b02e1cef78a7..980b24120080 100644
@@ -535,7 +535,7 @@ static int ih_v6_0_sw_init(void *handle)
 	 * use bus address for ih ring by psp bl */
 	use_bus_addr =
 		(adev->firmware.load_type == AMDGPU_FW_LOAD_PSP) ? false : true;
-	r = amdgpu_ih_ring_init(adev, &adev->irq.ih, 256 * 1024, use_bus_addr);
+	r = amdgpu_ih_ring_init(adev, &adev->irq.ih, IH_RING_SIZE, use_bus_addr);
 	if (r)
 		return r;
 
@@ -548,7 +548,7 @@ static int ih_v6_0_sw_init(void *handle)
 	/* initialize ih control register offset */
 	ih_v6_0_init_register_offset(adev);
 
-	r = amdgpu_ih_ring_init(adev, &adev->irq.ih_soft, PAGE_SIZE, true);
+	r = amdgpu_ih_ring_init(adev, &adev->irq.ih_soft, IH_SW_RING_SIZE, true);
 	if (r)
 		return r;
 
drivers/gpu/drm/amd/amdgpu/navi10_ih.c +2 -2
index eec13cb5bf75..b6a8478dabf4 100644
@@ -565,7 +565,7 @@ static int navi10_ih_sw_init(void *handle)
 		use_bus_addr = false;
 	else
 		use_bus_addr = true;
-	r = amdgpu_ih_ring_init(adev, &adev->irq.ih, 256 * 1024, use_bus_addr);
+	r = amdgpu_ih_ring_init(adev, &adev->irq.ih, IH_RING_SIZE, use_bus_addr);
 	if (r)
 		return r;
 
@@ -578,7 +578,7 @@ static int navi10_ih_sw_init(void *handle)
 	/* initialize ih control registers offset */
 	navi10_ih_init_register_offset(adev);
 
-	r = amdgpu_ih_ring_init(adev, &adev->irq.ih_soft, PAGE_SIZE, true);
+	r = amdgpu_ih_ring_init(adev, &adev->irq.ih_soft, IH_SW_RING_SIZE, true);
 	if (r)
 		return r;
 
drivers/gpu/drm/amd/amdgpu/vega10_ih.c +2 -2
index 1e83db0c5438..d364c6dd152c 100644
@@ -485,7 +485,7 @@ static int vega10_ih_sw_init(void *handle)
 	if (r)
 		return r;
 
-	r = amdgpu_ih_ring_init(adev, &adev->irq.ih, 256 * 1024, true);
+	r = amdgpu_ih_ring_init(adev, &adev->irq.ih, IH_RING_SIZE, true);
 	if (r)
 		return r;
 
@@ -510,7 +510,7 @@ static int vega10_ih_sw_init(void *handle)
 	/* initialize ih control registers offset */
 	vega10_ih_init_register_offset(adev);
 
-	r = amdgpu_ih_ring_init(adev, &adev->irq.ih_soft, PAGE_SIZE, true);
+	r = amdgpu_ih_ring_init(adev, &adev->irq.ih_soft, IH_SW_RING_SIZE, true);
 	if (r)
 		return r;
 
drivers/gpu/drm/amd/amdgpu/vega20_ih.c +2 -2
index 4d719df376a7..544ee55a22da 100644
@@ -539,7 +539,7 @@ static int vega20_ih_sw_init(void *handle)
 	    (adev->ip_versions[OSSSYS_HWIP][0] == IP_VERSION(4, 4, 2)))
 		use_bus_addr = false;
 
-	r = amdgpu_ih_ring_init(adev, &adev->irq.ih, 256 * 1024, use_bus_addr);
+	r = amdgpu_ih_ring_init(adev, &adev->irq.ih, IH_RING_SIZE, use_bus_addr);
 	if (r)
 		return r;
 
@@ -565,7 +565,7 @@ static int vega20_ih_sw_init(void *handle)
 	/* initialize ih control registers offset */
 	vega20_ih_init_register_offset(adev);
 
-	r = amdgpu_ih_ring_init(adev, &adev->irq.ih_soft, PAGE_SIZE, use_bus_addr);
+	r = amdgpu_ih_ring_init(adev, &adev->irq.ih_soft, IH_SW_RING_SIZE, use_bus_addr);
 	if (r)
 		return r;
 
drivers/gpu/drm/amd/amdkfd/kfd_priv.h +1 -2
index d4c9ee3f9953..1282559d2b10 100644
@@ -1487,8 +1487,7 @@ void kfd_flush_tlb(struct kfd_process_device *pdd, enum TLB_FLUSH_TYPE type);
 
 static inline bool kfd_flush_tlb_after_unmap(struct kfd_dev *dev)
 {
-	return KFD_GC_VERSION(dev) == IP_VERSION(9, 4, 3) ||
-	       KFD_GC_VERSION(dev) == IP_VERSION(9, 4, 2) ||
+	return KFD_GC_VERSION(dev) > IP_VERSION(9, 4, 2) ||
 	       (KFD_GC_VERSION(dev) == IP_VERSION(9, 4, 1) && dev->sdma_fw_version >= 18) ||
 	       KFD_GC_VERSION(dev) == IP_VERSION(9, 4, 0);
 }
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +92 -20

163 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c +1 -1
index cb992aca760d..5fc78bf927bb 100644
@@ -802,7 +802,7 @@ static void dcn32_set_hard_min_memclk(struct clk_mgr *clk_mgr_base, bool current
 					khz_to_mhz_ceil(clk_mgr_base->clks.dramclk_khz));
 		else
 			dcn32_smu_set_hard_min_by_freq(clk_mgr, PPCLK_UCLK,
-					clk_mgr_base->bw_params->clk_table.entries[clk_mgr_base->bw_params->clk_table.num_entries_per_clk.num_memclk_levels - 1].memclk_mhz);
+					clk_mgr_base->bw_params->max_memclk_mhz);
 	} else {
 		dcn32_smu_set_hard_min_by_freq(clk_mgr, PPCLK_UCLK,
 				clk_mgr_base->bw_params->clk_table.entries[0].memclk_mhz);
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c +28 -7
index 30c0644d4418..be5a6d008b29 100644
@@ -169,11 +169,23 @@ static void add_link_enc_assignment(
 /* Return first available DIG link encoder. */
 static enum engine_id find_first_avail_link_enc(
 		const struct dc_context *ctx,
-		const struct dc_state *state)
+		const struct dc_state *state,
+		enum engine_id eng_id_requested)
 {
 	enum engine_id eng_id = ENGINE_ID_UNKNOWN;
 	int i;
 
+	if (eng_id_requested != ENGINE_ID_UNKNOWN) {
+
+		for (i = 0; i < ctx->dc->res_pool->res_cap->num_dig_link_enc; i++) {
+			eng_id = state->res_ctx.link_enc_cfg_ctx.link_enc_avail[i];
+			if (eng_id == eng_id_requested)
+				return eng_id;
+		}
+	}
+
+	eng_id = ENGINE_ID_UNKNOWN;
+
 	for (i = 0; i < ctx->dc->res_pool->res_cap->num_dig_link_enc; i++) {
 		eng_id = state->res_ctx.link_enc_cfg_ctx.link_enc_avail[i];
 		if (eng_id != ENGINE_ID_UNKNOWN)
@@ -287,7 +299,7 @@ void link_enc_cfg_link_encs_assign(
 		struct dc_stream_state *streams[],
 		uint8_t stream_count)
 {
-	enum engine_id eng_id = ENGINE_ID_UNKNOWN;
+	enum engine_id eng_id = ENGINE_ID_UNKNOWN, eng_id_req = ENGINE_ID_UNKNOWN;
 	int i;
 	int j;
 
@@ -377,8 +389,14 @@ void link_enc_cfg_link_encs_assign(
 		 * assigned to that endpoint.
 		 */
 		link_enc = get_link_enc_used_by_link(state, stream->link);
-		if (link_enc == NULL)
-			eng_id = find_first_avail_link_enc(stream->ctx, state);
+		if (link_enc == NULL) {
+
+			if (stream->link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
+					stream->link->dpia_preferred_eng_id != ENGINE_ID_UNKNOWN)
+				eng_id_req = stream->link->dpia_preferred_eng_id;
+
+			eng_id = find_first_avail_link_enc(stream->ctx, state, eng_id_req);
+		}
 		else
 			eng_id =  link_enc->preferred_engine;
 
@@ -402,7 +420,9 @@ void link_enc_cfg_link_encs_assign(
 			DC_LOG_DEBUG("%s: CUR %s(%d) - enc_id(%d)\n",
 					__func__,
 					assignment.ep_id.ep_type == DISPLAY_ENDPOINT_PHY ? "PHY" : "DPIA",
-					assignment.ep_id.link_id.enum_id - 1,
+					assignment.ep_id.ep_type == DISPLAY_ENDPOINT_PHY ?
+							assignment.ep_id.link_id.enum_id :
+							assignment.ep_id.link_id.enum_id - 1,
 					assignment.eng_id);
 	}
 	for (i = 0; i < MAX_PIPES; i++) {
@@ -413,7 +433,9 @@ void link_enc_cfg_link_encs_assign(
 			DC_LOG_DEBUG("%s: NEW %s(%d) - enc_id(%d)\n",
 					__func__,
 					assignment.ep_id.ep_type == DISPLAY_ENDPOINT_PHY ? "PHY" : "DPIA",
-					assignment.ep_id.link_id.enum_id - 1,
+					assignment.ep_id.ep_type == DISPLAY_ENDPOINT_PHY ?
+							assignment.ep_id.link_id.enum_id :
+							assignment.ep_id.link_id.enum_id - 1,
 					assignment.eng_id);
 	}
 
@@ -478,7 +500,6 @@ struct dc_link *link_enc_cfg_get_link_using_link_enc(
 	if (stream)
 		link = stream->link;
 
-	// dm_output_to_console("%s: No link using DIG(%d).\n", __func__, eng_id);
 	return link;
 }
 
drivers/gpu/drm/amd/display/dc/dc.h +1 -0
index 63948170fd6d..81258392d44a 100644
@@ -1479,6 +1479,7 @@ struct dc_link {
 	 * object creation.
 	 */
 	enum engine_id eng_id;
+	enum engine_id dpia_preferred_eng_id;
 
 	bool test_pattern_enabled;
 	union compliance_test_state compliance_test_state;
drivers/gpu/drm/amd/display/dc/dcn314/dcn314_resource.c +23 -0
index 6a9024aa3285..e79e1d690afa 100644
@@ -1029,6 +1029,28 @@ static const struct dce_i2c_mask i2c_masks = {
 		I2C_COMMON_MASK_SH_LIST_DCN30(_MASK)
 };
 
+/* ========================================================== */
+
+/*
+ * DPIA index | Preferred Encoder     |    Host Router
+ *   0        |      C                |       0
+ *   1        |      First Available  |       0
+ *   2        |      D                |       1
+ *   3        |      First Available  |       1
+ */
+/* ========================================================== */
+static const enum engine_id dpia_to_preferred_enc_id_table[] = {
+		ENGINE_ID_DIGC,
+		ENGINE_ID_DIGC,
+		ENGINE_ID_DIGD,
+		ENGINE_ID_DIGD
+};
+
+static enum engine_id dcn314_get_preferred_eng_id_dpia(unsigned int dpia_index)
+{
+	return dpia_to_preferred_enc_id_table[dpia_index];
+}
+
 static struct dce_i2c_hw *dcn31_i2c_hw_create(
 	struct dc_context *ctx,
 	uint32_t inst)
@@ -1777,6 +1799,7 @@ static struct resource_funcs dcn314_res_pool_funcs = {
 	.update_bw_bounding_box = dcn314_update_bw_bounding_box,
 	.patch_unknown_plane_state = dcn20_patch_unknown_plane_state,
 	.get_panel_config_defaults = dcn314_get_panel_config_defaults,
+	.get_preferred_eng_id_dpia = dcn314_get_preferred_eng_id_dpia,
 };
 
 static struct clock_source *dcn30_clock_source_create(
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dccg.c +2 -1
index 61ceff6bc0b1..921f58c0c729 100644
@@ -281,7 +281,8 @@ static void dccg32_set_dpstreamclk(
 	struct dcn_dccg *dccg_dcn = TO_DCN_DCCG(dccg);
 
 	/* set the dtbclk_p source */
-	dccg32_set_dtbclk_p_src(dccg, src, otg_inst);
+	/* always program refclk as DTBCLK. No use-case expected to require DPREFCLK as refclk */
+	dccg32_set_dtbclk_p_src(dccg, DTBCLK0, otg_inst);
 
 	/* enabled to select one of the DTBCLKs for pipe */
 	switch (dp_hpo_inst) {
drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c +3 -1
index 43016c462251..9d996d5fc3ff 100644
@@ -4135,7 +4135,9 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
 				}
 				if (v->OutputFormat[k] == dm_420 && v->HActive[k] > DCN31_MAX_FMT_420_BUFFER_WIDTH
 						&& v->ODMCombineEnablePerState[i][k] != dm_odm_combine_mode_4to1) {
-					if (v->HActive[k] / 2 > DCN31_MAX_FMT_420_BUFFER_WIDTH) {
+					if (v->Output[k] == dm_hdmi) {
+						FMTBufferExceeded = true;
+					} else if (v->HActive[k] / 2 > DCN31_MAX_FMT_420_BUFFER_WIDTH) {
 						v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_4to1;
 						v->PlaneRequiredDISPCLK = v->PlaneRequiredDISPCLKWithODMCombine4To1;
 
drivers/gpu/drm/amd/display/dc/dml/dcn314/display_mode_vba_314.c +3 -1
index 9010c47476e9..b763786bfcc8 100644
@@ -4227,7 +4227,9 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
 				}
 				if (v->OutputFormat[k] == dm_420 && v->HActive[k] > DCN314_MAX_FMT_420_BUFFER_WIDTH
 						&& v->ODMCombineEnablePerState[i][k] != dm_odm_combine_mode_4to1) {
-					if (v->HActive[k] / 2 > DCN314_MAX_FMT_420_BUFFER_WIDTH) {
+					if (v->Output[k] == dm_hdmi) {
+						FMTBufferExceeded = true;
+					} else if (v->HActive[k] / 2 > DCN314_MAX_FMT_420_BUFFER_WIDTH) {
 						v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_4to1;
 						v->PlaneRequiredDISPCLK = v->PlaneRequiredDISPCLKWithODMCombine4To1;
 
drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_util_32.c +6 -1
index a50e7f4dce42..f74e5fc8218f 100644
@@ -3459,6 +3459,7 @@ bool dml32_CalculatePrefetchSchedule(
 	double TimeForFetchingMetaPTE = 0;
 	double TimeForFetchingRowInVBlank = 0;
 	double LinesToRequestPrefetchPixelData = 0;
+	double LinesForPrefetchBandwidth = 0;
 	unsigned int HostVMDynamicLevelsTrips;
 	double  trip_to_mem;
 	double  Tvm_trips;
@@ -3888,11 +3889,15 @@ bool dml32_CalculatePrefetchSchedule(
 			TimeForFetchingMetaPTE = Tvm_oto;
 			TimeForFetchingRowInVBlank = Tr0_oto;
 			*PrefetchBandwidth = prefetch_bw_oto;
+			/* Clamp to oto for bandwidth calculation */
+			LinesForPrefetchBandwidth = dst_y_prefetch_oto;
 		} else {
 			*DestinationLinesForPrefetch = dst_y_prefetch_equ;
 			TimeForFetchingMetaPTE = Tvm_equ;
 			TimeForFetchingRowInVBlank = Tr0_equ;
 			*PrefetchBandwidth = prefetch_bw_equ;
+			/* Clamp to equ for bandwidth calculation */
+			LinesForPrefetchBandwidth = dst_y_prefetch_equ;
 		}
 
 		*DestinationLinesToRequestVMInVBlank = dml_ceil(4.0 * TimeForFetchingMetaPTE / LineTime, 1.0) / 4.0;
@@ -3900,7 +3905,7 @@ bool dml32_CalculatePrefetchSchedule(
 		*DestinationLinesToRequestRowInVBlank =
 				dml_ceil(4.0 * TimeForFetchingRowInVBlank / LineTime, 1.0) / 4.0;
 
-		LinesToRequestPrefetchPixelData = *DestinationLinesForPrefetch -
+		LinesToRequestPrefetchPixelData = LinesForPrefetchBandwidth -
 				*DestinationLinesToRequestVMInVBlank - 2 * *DestinationLinesToRequestRowInVBlank;
 
 #ifdef __DML_VBA_DEBUG__
drivers/gpu/drm/amd/display/dc/inc/core_types.h +1 -0
index 034610b74a37..3752410bc987 100644
@@ -65,6 +65,7 @@ struct resource_context;
 struct clk_bw_params;
 
 struct resource_funcs {
+	enum engine_id (*get_preferred_eng_id_dpia)(unsigned int dpia_index);
 	void (*destroy)(struct resource_pool **pool);
 	void (*link_init)(struct dc_link *link);
 	struct panel_cntl*(*panel_cntl_create)(
drivers/gpu/drm/amd/display/dc/link/link_factory.c +4 -0
index ac1c3e2e7c1d..a1b800dceb65 100644
@@ -783,6 +783,10 @@ static bool construct_dpia(struct dc_link *link,
 	/* Set dpia port index : 0 to number of dpia ports */
 	link->ddc_hw_inst = init_params->connector_index;
 
+	// Assign Dpia preferred eng_id
+	if (link->dc->res_pool->funcs->get_preferred_eng_id_dpia)
+		link->dpia_preferred_eng_id = link->dc->res_pool->funcs->get_preferred_eng_id_dpia(link->ddc_hw_inst);
+
 	/* TODO: Create link encoder */
 
 	link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
drivers/gpu/drm/bridge/samsung-dsim.c +1 -1
index 73ec60757dbc..9e253af69c7a 100644
@@ -1009,7 +1009,7 @@ static int samsung_dsim_wait_for_hdr_fifo(struct samsung_dsim *dsi)
 	do {
 		u32 reg = samsung_dsim_read(dsi, DSIM_FIFOCTRL_REG);
 
-		if (!(reg & DSIM_SFR_HEADER_FULL))
+		if (reg & DSIM_SFR_HEADER_EMPTY)
 			return 0;
 
 		if (!cond_resched())
drivers/gpu/drm/bridge/tc358762.c +1 -1
index 5641395fd310..11445c50956e 100644
@@ -231,7 +231,7 @@ static int tc358762_probe(struct mipi_dsi_device *dsi)
 	dsi->lanes = 1;
 	dsi->format = MIPI_DSI_FMT_RGB888;
 	dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
-			  MIPI_DSI_MODE_LPM;
+			  MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_VIDEO_HSE;
 
 	ret = tc358762_parse_dt(ctx);
 	if (ret < 0)
drivers/gpu/drm/drm_edid.c +1 -0
index 1f470968ed14..9271e47d6657 100644
@@ -230,6 +230,7 @@ static const struct edid_quirk {
 
 	/* OSVR HDK and HDK2 VR Headsets */
 	EDID_QUIRK('S', 'V', 'R', 0x1019, EDID_QUIRK_NON_DESKTOP),
+	EDID_QUIRK('A', 'U', 'O', 0x1111, EDID_QUIRK_NON_DESKTOP),
 };
 
 /*
drivers/gpu/drm/exynos/exynos_drm_crtc.c +2 -3
index 4153f302de7c..d19e796c2061 100644
@@ -39,13 +39,12 @@ static void exynos_drm_crtc_atomic_disable(struct drm_crtc *crtc,
 	if (exynos_crtc->ops->atomic_disable)
 		exynos_crtc->ops->atomic_disable(exynos_crtc);
 
+	spin_lock_irq(&crtc->dev->event_lock);
 	if (crtc->state->event && !crtc->state->active) {
-		spin_lock_irq(&crtc->dev->event_lock);
 		drm_crtc_send_vblank_event(crtc, crtc->state->event);
-		spin_unlock_irq(&crtc->dev->event_lock);
-
 		crtc->state->event = NULL;
 	}
+	spin_unlock_irq(&crtc->dev->event_lock);
 }
 
 static int exynos_crtc_atomic_check(struct drm_crtc *crtc,
drivers/gpu/drm/i915/display/intel_bios.c +21 -0
index 34a397adbd6b..cc893c9730bf 100644
@@ -3659,6 +3659,27 @@ enum aux_ch intel_bios_dp_aux_ch(const struct intel_bios_encoder_data *devdata)
 	return map_aux_ch(devdata->i915, devdata->child.aux_channel);
 }
 
+bool intel_bios_dp_has_shared_aux_ch(const struct intel_bios_encoder_data *devdata)
+{
+	struct drm_i915_private *i915;
+	u8 aux_channel;
+	int count = 0;
+
+	if (!devdata || !devdata->child.aux_channel)
+		return false;
+
+	i915 = devdata->i915;
+	aux_channel = devdata->child.aux_channel;
+
+	list_for_each_entry(devdata, &i915->display.vbt.display_devices, node) {
+		if (intel_bios_encoder_supports_dp(devdata) &&
+		    aux_channel == devdata->child.aux_channel)
+			count++;
+	}
+
+	return count > 1;
+}
+
 int intel_bios_dp_boost_level(const struct intel_bios_encoder_data *devdata)
 {
 	if (!devdata || devdata->i915->display.vbt.version < 196 || !devdata->child.iboost)
drivers/gpu/drm/i915/display/intel_bios.h +1 -0
index 45fae97d9719..f60da533949d 100644
@@ -271,6 +271,7 @@ enum aux_ch intel_bios_dp_aux_ch(const struct intel_bios_encoder_data *devdata);
 int intel_bios_dp_boost_level(const struct intel_bios_encoder_data *devdata);
 int intel_bios_dp_max_lane_count(const struct intel_bios_encoder_data *devdata);
 int intel_bios_dp_max_link_rate(const struct intel_bios_encoder_data *devdata);
+bool intel_bios_dp_has_shared_aux_ch(const struct intel_bios_encoder_data *devdata);
 int intel_bios_hdmi_boost_level(const struct intel_bios_encoder_data *devdata);
 int intel_bios_hdmi_ddc_pin(const struct intel_bios_encoder_data *devdata);
 int intel_bios_hdmi_level_shift(const struct intel_bios_encoder_data *devdata);
drivers/gpu/drm/i915/display/intel_dp.c +6 -1
index 9f40da20e88d..cb55112d6065 100644
@@ -5503,8 +5503,13 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
 	/*
 	 * VBT and straps are liars. Also check HPD as that seems
 	 * to be the most reliable piece of information available.
+	 *
+	 * ... expect on devices that forgot to hook HPD up for eDP
+	 * (eg. Acer Chromebook C710), so we'll check it only if multiple
+	 * ports are attempting to use the same AUX CH, according to VBT.
 	 */
-	if (!intel_digital_port_connected(encoder)) {
+	if (intel_bios_dp_has_shared_aux_ch(encoder->devdata) &&
+	    !intel_digital_port_connected(encoder)) {
 		/*
 		 * If this fails, presume the DPCD answer came
 		 * from some other port using the same AUX CH.
drivers/gpu/drm/mediatek/mtk_dp.c +3 -3
index c58b775877a3..076aa5491057 100644
@@ -847,7 +847,7 @@ static int mtk_dp_aux_do_transfer(struct mtk_dp *mtk_dp, bool is_read, u8 cmd,
 		u32 phy_status = mtk_dp_read(mtk_dp, MTK_DP_AUX_P0_3628) &
 				 AUX_RX_PHY_STATE_AUX_TX_P0_MASK;
 		if (phy_status != AUX_RX_PHY_STATE_AUX_TX_P0_RX_IDLE) {
-			drm_err(mtk_dp->drm_dev,
+			dev_err(mtk_dp->dev,
 				"AUX Rx Aux hang, need SW reset\n");
 			return -EIO;
 		}
@@ -2062,7 +2062,7 @@ static ssize_t mtk_dp_aux_transfer(struct drm_dp_aux *mtk_aux,
 		is_read = true;
 		break;
 	default:
-		drm_err(mtk_aux->drm_dev, "invalid aux cmd = %d\n",
+		dev_err(mtk_dp->dev, "invalid aux cmd = %d\n",
 			msg->request);
 		ret = -EINVAL;
 		goto err;
@@ -2078,7 +2078,7 @@ static ssize_t mtk_dp_aux_transfer(struct drm_dp_aux *mtk_aux,
 					     to_access, &msg->reply);
 
 		if (ret) {
-			drm_info(mtk_dp->drm_dev,
+			dev_info(mtk_dp->dev,
 				 "Failed to do AUX transfer: %d\n", ret);
 			goto err;
 		}
drivers/gpu/drm/msm/adreno/a6xx_gpu.c +1 -2
index a2513f716823..f6c614764017 100644
@@ -2489,8 +2489,7 @@ struct msm_gpu *a6xx_gpu_init(struct drm_device *dev)
 	/* Quirk data */
 	adreno_gpu->info = info;
 
-	if (adreno_is_a650(adreno_gpu) || adreno_is_a660_family(adreno_gpu))
-		adreno_gpu->base.hw_apriv = true;
+	adreno_gpu->base.hw_apriv = !!(info->quirks & ADRENO_QUIRK_HAS_HW_APRIV);
 
 	a6xx_llc_slices_init(pdev, a6xx_gpu);
 
drivers/gpu/drm/msm/adreno/adreno_device.c +16 -3
index 6e3c1368c5e1..b2283faa173a 100644
@@ -275,6 +275,7 @@ static const struct adreno_info gpulist[] = {
 		},
 		.gmem = SZ_512K,
 		.inactive_period = DRM_MSM_INACTIVE_PERIOD,
+		.quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT,
 		.init = a6xx_gpu_init,
 	}, {
 		.rev = ADRENO_REV(6, 1, 9, ANY_ID),
@@ -286,6 +287,7 @@ static const struct adreno_info gpulist[] = {
 		},
 		.gmem = SZ_512K,
 		.inactive_period = DRM_MSM_INACTIVE_PERIOD,
+		.quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT,
 		.init = a6xx_gpu_init,
 		.zapfw = "a615_zap.mdt",
 		.hwcg = a615_hwcg,
@@ -299,6 +301,7 @@ static const struct adreno_info gpulist[] = {
 		},
 		.gmem = SZ_1M,
 		.inactive_period = DRM_MSM_INACTIVE_PERIOD,
+		.quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT,
 		.init = a6xx_gpu_init,
 		.zapfw = "a630_zap.mdt",
 		.hwcg = a630_hwcg,
@@ -312,6 +315,7 @@ static const struct adreno_info gpulist[] = {
 		},
 		.gmem = SZ_1M,
 		.inactive_period = DRM_MSM_INACTIVE_PERIOD,
+		.quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT,
 		.init = a6xx_gpu_init,
 		.zapfw = "a640_zap.mdt",
 		.hwcg = a640_hwcg,
@@ -325,6 +329,8 @@ static const struct adreno_info gpulist[] = {
 		},
 		.gmem = SZ_1M + SZ_128K,
 		.inactive_period = DRM_MSM_INACTIVE_PERIOD,
+		.quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT |
+			ADRENO_QUIRK_HAS_HW_APRIV,
 		.init = a6xx_gpu_init,
 		.zapfw = "a650_zap.mdt",
 		.hwcg = a650_hwcg,
@@ -339,6 +345,8 @@ static const struct adreno_info gpulist[] = {
 		},
 		.gmem = SZ_1M + SZ_512K,
 		.inactive_period = DRM_MSM_INACTIVE_PERIOD,
+		.quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT |
+			ADRENO_QUIRK_HAS_HW_APRIV,
 		.init = a6xx_gpu_init,
 		.zapfw = "a660_zap.mdt",
 		.hwcg = a660_hwcg,
@@ -351,6 +359,8 @@ static const struct adreno_info gpulist[] = {
 		},
 		.gmem = SZ_512K,
 		.inactive_period = DRM_MSM_INACTIVE_PERIOD,
+		.quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT |
+			ADRENO_QUIRK_HAS_HW_APRIV,
 		.init = a6xx_gpu_init,
 		.hwcg = a660_hwcg,
 		.address_space_size = SZ_16G,
@@ -364,6 +374,7 @@ static const struct adreno_info gpulist[] = {
 		},
 		.gmem = SZ_2M,
 		.inactive_period = DRM_MSM_INACTIVE_PERIOD,
+		.quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT,
 		.init = a6xx_gpu_init,
 		.zapfw = "a640_zap.mdt",
 		.hwcg = a640_hwcg,
@@ -375,6 +386,8 @@ static const struct adreno_info gpulist[] = {
 		},
 		.gmem = SZ_4M,
 		.inactive_period = DRM_MSM_INACTIVE_PERIOD,
+		.quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT |
+			ADRENO_QUIRK_HAS_HW_APRIV,
 		.init = a6xx_gpu_init,
 		.zapfw = "a690_zap.mdt",
 		.hwcg = a690_hwcg,
@@ -586,9 +599,9 @@ static int adreno_bind(struct device *dev, struct device *master, void *data)
 	if (ret)
 		return ret;
 
-	if (config.rev.core >= 6)
-		if (!adreno_has_gmu_wrapper(to_adreno_gpu(gpu)))
-			priv->has_cached_coherent = true;
+	priv->has_cached_coherent =
+		!!(info->quirks & ADRENO_QUIRK_HAS_CACHED_COHERENT) &&
+		!adreno_has_gmu_wrapper(to_adreno_gpu(gpu));
 
 	return 0;
 }
drivers/gpu/drm/msm/adreno/adreno_gpu.h +2 -0
index 845019891ad1..129771563f3f 100644
@@ -32,6 +32,8 @@ enum {
 #define ADRENO_QUIRK_TWO_PASS_USE_WFI		BIT(0)
 #define ADRENO_QUIRK_FAULT_DETECT_MASK		BIT(1)
 #define ADRENO_QUIRK_LMLOADKILL_DISABLE		BIT(2)
+#define ADRENO_QUIRK_HAS_HW_APRIV		BIT(3)
+#define ADRENO_QUIRK_HAS_CACHED_COHERENT	BIT(4)
 
 struct adreno_rev {
 	uint8_t  core;
drivers/gpu/drm/radeon/radeon_sa.c +1 -1
index c87a57c9c592..22dd8b445685 100644
@@ -123,7 +123,7 @@ int radeon_sa_bo_new(struct radeon_sa_manager *sa_manager,
 		     unsigned int size, unsigned int align)
 {
 	struct drm_suballoc *sa = drm_suballoc_new(&sa_manager->base, size,
-						   GFP_KERNEL, true, align);
+						   GFP_KERNEL, false, align);
 
 	if (IS_ERR(sa)) {
 		*sa_bo = NULL;
drivers/gpu/drm/tiny/gm12u320.c +5 -5
index c5bb683e440c..0187539ff5ea 100644
@@ -70,10 +70,10 @@ MODULE_PARM_DESC(eco_mode, "Turn on Eco mode (less bright, more silent)");
 #define READ_STATUS_SIZE		13
 #define MISC_VALUE_SIZE			4
 
-#define CMD_TIMEOUT			msecs_to_jiffies(200)
-#define DATA_TIMEOUT			msecs_to_jiffies(1000)
-#define IDLE_TIMEOUT			msecs_to_jiffies(2000)
-#define FIRST_FRAME_TIMEOUT		msecs_to_jiffies(2000)
+#define CMD_TIMEOUT			200
+#define DATA_TIMEOUT			1000
+#define IDLE_TIMEOUT			2000
+#define FIRST_FRAME_TIMEOUT		2000
 
 #define MISC_REQ_GET_SET_ECO_A		0xff
 #define MISC_REQ_GET_SET_ECO_B		0x35
@@ -389,7 +389,7 @@ static void gm12u320_fb_update_work(struct work_struct *work)
 	 * switches back to showing its logo.
 	 */
 	queue_delayed_work(system_long_wq, &gm12u320->fb_update.work,
-			   IDLE_TIMEOUT);
+			   msecs_to_jiffies(IDLE_TIMEOUT));
 
 	return;
 err:
drivers/i2c/busses/i2c-aspeed.c +5 -2
index 2e5acfeb76c8..5a416b39b818 100644
@@ -698,13 +698,16 @@ static int aspeed_i2c_master_xfer(struct i2c_adapter *adap,
 
 	if (time_left == 0) {
 		/*
-		 * If timed out and bus is still busy in a multi master
-		 * environment, attempt recovery at here.
+		 * In a multi-master setup, if a timeout occurs, attempt
+		 * recovery. But if the bus is idle, we still need to reset the
+		 * i2c controller to clear the remaining interrupts.
 		 */
 		if (bus->multi_master &&
 		    (readl(bus->base + ASPEED_I2C_CMD_REG) &
 		     ASPEED_I2CD_BUS_BUSY_STS))
 			aspeed_i2c_recover_bus(bus);
+		else
+			aspeed_i2c_reset(bus);
 
 		/*
 		 * If timed out and the state is still pending, drop the pending
drivers/interconnect/core.c +15 -3
index 5fac448c28fd..1afbc4f7c6e7 100644
@@ -28,6 +28,7 @@ static LIST_HEAD(icc_providers);
 static int providers_count;
 static bool synced_state;
 static DEFINE_MUTEX(icc_lock);
+static DEFINE_MUTEX(icc_bw_lock);
 static struct dentry *icc_debugfs_dir;
 
 static void icc_summary_show_one(struct seq_file *s, struct icc_node *n)
@@ -631,7 +632,7 @@ int icc_set_bw(struct icc_path *path, u32 avg_bw, u32 peak_bw)
 	if (WARN_ON(IS_ERR(path) || !path->num_nodes))
 		return -EINVAL;
 
-	mutex_lock(&icc_lock);
+	mutex_lock(&icc_bw_lock);
 
 	old_avg = path->reqs[0].avg_bw;
 	old_peak = path->reqs[0].peak_bw;
@@ -663,7 +664,7 @@ int icc_set_bw(struct icc_path *path, u32 avg_bw, u32 peak_bw)
 		apply_constraints(path);
 	}
 
-	mutex_unlock(&icc_lock);
+	mutex_unlock(&icc_bw_lock);
 
 	trace_icc_set_bw_end(path, ret);
 
@@ -872,6 +873,7 @@ void icc_node_add(struct icc_node *node, struct icc_provider *provider)
 		return;
 
 	mutex_lock(&icc_lock);
+	mutex_lock(&icc_bw_lock);
 
 	node->provider = provider;
 	list_add_tail(&node->node_list, &provider->nodes);
@@ -900,6 +902,7 @@ void icc_node_add(struct icc_node *node, struct icc_provider *provider)
 	node->avg_bw = 0;
 	node->peak_bw = 0;
 
+	mutex_unlock(&icc_bw_lock);
 	mutex_unlock(&icc_lock);
 }
 EXPORT_SYMBOL_GPL(icc_node_add);
@@ -1025,6 +1028,7 @@ void icc_sync_state(struct device *dev)
 		return;
 
 	mutex_lock(&icc_lock);
+	mutex_lock(&icc_bw_lock);
 	synced_state = true;
 	list_for_each_entry(p, &icc_providers, provider_list) {
 		dev_dbg(p->dev, "interconnect provider is in synced state\n");
@@ -1037,13 +1041,21 @@ void icc_sync_state(struct device *dev)
 			}
 		}
 	}
+	mutex_unlock(&icc_bw_lock);
 	mutex_unlock(&icc_lock);
 }
 EXPORT_SYMBOL_GPL(icc_sync_state);
 
 static int __init icc_init(void)
 {
-	struct device_node *root = of_find_node_by_path("/");
+	struct device_node *root;
+
+	/* Teach lockdep about lock ordering wrt. shrinker: */
+	fs_reclaim_acquire(GFP_KERNEL);
+	might_lock(&icc_bw_lock);
+	fs_reclaim_release(GFP_KERNEL);
+
+	root = of_find_node_by_path("/");
 
 	providers_count = of_count_icc_providers(root);
 	of_node_put(root);
drivers/md/dm-core.h +1 -0
index 0d93661f88d3..095b9b49aa82 100644
@@ -214,6 +214,7 @@ struct dm_table {
 
 	/* a list of devices used by this table */
 	struct list_head devices;
+	struct rw_semaphore devices_lock;
 
 	/* events get handed up using this callback */
 	void (*event_fn)(void *data);
drivers/md/dm-ioctl.c +6 -1
index f5ed729a8e0c..21ebb6c39394 100644
@@ -1630,6 +1630,8 @@ static void retrieve_deps(struct dm_table *table,
 	struct dm_dev_internal *dd;
 	struct dm_target_deps *deps;
 
+	down_read(&table->devices_lock);
+
 	deps = get_result_buffer(param, param_size, &len);
 
 	/*
@@ -1644,7 +1646,7 @@ static void retrieve_deps(struct dm_table *table,
 	needed = struct_size(deps, dev, count);
 	if (len < needed) {
 		param->flags |= DM_BUFFER_FULL_FLAG;
-		return;
+		goto out;
 	}
 
 	/*
@@ -1656,6 +1658,9 @@ static void retrieve_deps(struct dm_table *table,
 		deps->dev[count++] = huge_encode_dev(dd->dm_dev->bdev->bd_dev);
 
 	param->data_size = param->data_start + needed;
+
+out:
+	up_read(&table->devices_lock);
 }
 
 static int table_deps(struct file *filp, struct dm_ioctl *param, size_t param_size)
drivers/md/dm-table.c +24 -8
index 7d208b2b1a19..37b48f63ae6a 100644
@@ -135,6 +135,7 @@ int dm_table_create(struct dm_table **result, blk_mode_t mode,
 		return -ENOMEM;
 
 	INIT_LIST_HEAD(&t->devices);
+	init_rwsem(&t->devices_lock);
 
 	if (!num_targets)
 		num_targets = KEYS_PER_NODE;
@@ -359,16 +360,20 @@ int __ref dm_get_device(struct dm_target *ti, const char *path, blk_mode_t mode,
 	if (dev == disk_devt(t->md->disk))
 		return -EINVAL;
 
+	down_write(&t->devices_lock);
+
 	dd = find_device(&t->devices, dev);
 	if (!dd) {
 		dd = kmalloc(sizeof(*dd), GFP_KERNEL);
-		if (!dd)
-			return -ENOMEM;
+		if (!dd) {
+			r = -ENOMEM;
+			goto unlock_ret_r;
+		}
 
 		r = dm_get_table_device(t->md, dev, mode, &dd->dm_dev);
 		if (r) {
 			kfree(dd);
-			return r;
+			goto unlock_ret_r;
 		}
 
 		refcount_set(&dd->count, 1);
@@ -378,12 +383,17 @@ int __ref dm_get_device(struct dm_target *ti, const char *path, blk_mode_t mode,
 	} else if (dd->dm_dev->mode != (mode | dd->dm_dev->mode)) {
 		r = upgrade_mode(dd, mode, t->md);
 		if (r)
-			return r;
+			goto unlock_ret_r;
 	}
 	refcount_inc(&dd->count);
 out:
+	up_write(&t->devices_lock);
 	*result = dd->dm_dev;
 	return 0;
+
+unlock_ret_r:
+	up_write(&t->devices_lock);
+	return r;
 }
 EXPORT_SYMBOL(dm_get_device);
 
@@ -419,9 +429,12 @@ static int dm_set_device_limits(struct dm_target *ti, struct dm_dev *dev,
 void dm_put_device(struct dm_target *ti, struct dm_dev *d)
 {
 	int found = 0;
-	struct list_head *devices = &ti->table->devices;
+	struct dm_table *t = ti->table;
+	struct list_head *devices = &t->devices;
 	struct dm_dev_internal *dd;
 
+	down_write(&t->devices_lock);
+
 	list_for_each_entry(dd, devices, list) {
 		if (dd->dm_dev == d) {
 			found = 1;
@@ -430,14 +443,17 @@ void dm_put_device(struct dm_target *ti, struct dm_dev *d)
 	}
 	if (!found) {
 		DMERR("%s: device %s not in table devices list",
-		      dm_device_name(ti->table->md), d->name);
-		return;
+		      dm_device_name(t->md), d->name);
+		goto unlock_ret;
 	}
 	if (refcount_dec_and_test(&dd->count)) {
-		dm_put_table_device(ti->table->md, d);
+		dm_put_table_device(t->md, d);
 		list_del(&dd->list);
 		kfree(dd);
 	}
+
+unlock_ret:
+	up_write(&t->devices_lock);
 }
 EXPORT_SYMBOL(dm_put_device);
 
drivers/md/dm.c +2 -21
index f0f118ab20fa..64a1f306c96c 100644
@@ -715,24 +715,6 @@ static void dm_put_live_table_fast(struct mapped_device *md) __releases(RCU)
 	rcu_read_unlock();
 }
 
-static inline struct dm_table *dm_get_live_table_bio(struct mapped_device *md,
-					int *srcu_idx, blk_opf_t bio_opf)
-{
-	if (bio_opf & REQ_NOWAIT)
-		return dm_get_live_table_fast(md);
-	else
-		return dm_get_live_table(md, srcu_idx);
-}
-
-static inline void dm_put_live_table_bio(struct mapped_device *md, int srcu_idx,
-					 blk_opf_t bio_opf)
-{
-	if (bio_opf & REQ_NOWAIT)
-		dm_put_live_table_fast(md);
-	else
-		dm_put_live_table(md, srcu_idx);
-}
-
 static char *_dm_claim_ptr = "I belong to device-mapper";
 
 /*
@@ -1833,9 +1815,8 @@ static void dm_submit_bio(struct bio *bio)
 	struct mapped_device *md = bio->bi_bdev->bd_disk->private_data;
 	int srcu_idx;
 	struct dm_table *map;
-	blk_opf_t bio_opf = bio->bi_opf;
 
-	map = dm_get_live_table_bio(md, &srcu_idx, bio_opf);
+	map = dm_get_live_table(md, &srcu_idx);
 
 	/* If suspended, or map not yet available, queue this IO for later */
 	if (unlikely(test_bit(DMF_BLOCK_IO_FOR_SUSPEND, &md->flags)) ||
@@ -1851,7 +1832,7 @@ static void dm_submit_bio(struct bio *bio)
 
 	dm_split_and_process_bio(md, map, bio);
 out:
-	dm_put_live_table_bio(md, srcu_idx, bio_opf);
+	dm_put_live_table(md, srcu_idx);
 }
 
 static bool dm_poll_dm_io(struct dm_io *io, struct io_comp_batch *iob,
drivers/md/md.c +16 -7
index 2a4a3d3039fa..78d51dddf3a0 100644
@@ -798,14 +798,14 @@ void mddev_unlock(struct mddev *mddev)
 	} else
 		mutex_unlock(&mddev->reconfig_mutex);
 
+	md_wakeup_thread(mddev->thread);
+	wake_up(&mddev->sb_wait);
+
 	list_for_each_entry_safe(rdev, tmp, &delete, same_set) {
 		list_del_init(&rdev->same_set);
 		kobject_del(&rdev->kobj);
 		export_rdev(rdev, mddev);
 	}
-
-	md_wakeup_thread(mddev->thread);
-	wake_up(&mddev->sb_wait);
 }
 EXPORT_SYMBOL_GPL(mddev_unlock);
 
@@ -2452,7 +2452,8 @@ static void export_rdev(struct md_rdev *rdev, struct mddev *mddev)
 	if (test_bit(AutoDetected, &rdev->flags))
 		md_autodetect_dev(rdev->bdev->bd_dev);
 #endif
-	blkdev_put(rdev->bdev, mddev->external ? &claim_rdev : rdev);
+	blkdev_put(rdev->bdev,
+		   test_bit(Holder, &rdev->flags) ? rdev : &claim_rdev);
 	rdev->bdev = NULL;
 	kobject_put(&rdev->kobj);
 }
@@ -3632,6 +3633,7 @@ EXPORT_SYMBOL_GPL(md_rdev_init);
 static struct md_rdev *md_import_device(dev_t newdev, int super_format, int super_minor)
 {
 	struct md_rdev *rdev;
+	struct md_rdev *holder;
 	sector_t size;
 	int err;
 
@@ -3646,8 +3648,15 @@ static struct md_rdev *md_import_device(dev_t newdev, int super_format, int supe
 	if (err)
 		goto out_clear_rdev;
 
+	if (super_format == -2) {
+		holder = &claim_rdev;
+	} else {
+		holder = rdev;
+		set_bit(Holder, &rdev->flags);
+	}
+
 	rdev->bdev = blkdev_get_by_dev(newdev, BLK_OPEN_READ | BLK_OPEN_WRITE,
-			super_format == -2 ? &claim_rdev : rdev, NULL);
+				       holder, NULL);
 	if (IS_ERR(rdev->bdev)) {
 		pr_warn("md: could not open device unknown-block(%u,%u).\n",
 			MAJOR(newdev), MINOR(newdev));
@@ -3684,7 +3693,7 @@ static struct md_rdev *md_import_device(dev_t newdev, int super_format, int supe
 	return rdev;
 
 out_blkdev_put:
-	blkdev_put(rdev->bdev, super_format == -2 ? &claim_rdev : rdev);
+	blkdev_put(rdev->bdev, holder);
 out_clear_rdev:
 	md_rdev_clear(rdev);
 out_free_rdev:
@@ -8205,7 +8214,7 @@ static void *md_seq_next(struct seq_file *seq, void *v, loff_t *pos)
 	spin_unlock(&all_mddevs_lock);
 
 	if (to_put)
-		mddev_put(mddev);
+		mddev_put(to_put);
 	return next_mddev;
 
 }
drivers/md/md.h +3 -0
index 1aef86bf3fc3..b0a0f5a5c783 100644
@@ -211,6 +211,9 @@ enum flag_bits {
 				 * check if there is collision between raid1
 				 * serial bios.
 				 */
+	Holder,			/* rdev is used as holder while opening
+				 * underlying disk exclusively.
+				 */
 };
 
 static inline int is_badblock(struct md_rdev *rdev, sector_t s, int sectors,
drivers/md/raid1.c +3 -0
index dd25832eb045..a60acd72210a 100644
@@ -1831,6 +1831,9 @@ static int raid1_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
 	int number = rdev->raid_disk;
 	struct raid1_info *p = conf->mirrors + number;
 
+	if (unlikely(number >= conf->raid_disks))
+		goto abort;
+
 	if (rdev != p->rdev)
 		p = conf->mirrors + conf->raid_disks + number;
 
drivers/media/pci/cx23885/cx23885-video.c +1 -1
index 671fc0588e43..9af2c5596121 100644
@@ -413,7 +413,7 @@ static int buffer_prepare(struct vb2_buffer *vb)
 				dev->height >> 1);
 		break;
 	default:
-		BUG();
+		return -EINVAL; /* should not happen */
 	}
 	dprintk(2, "[%p/%d] buffer_init - %dx%d %dbpp 0x%08x - dma=0x%08lx\n",
 		buf, buf->vb.vb2_buf.index,
drivers/media/pci/intel/ipu3/ipu3-cio2-main.c +1 -1
index dc09fbdb062b..ca51776a961f 100644
@@ -355,7 +355,7 @@ static int cio2_hw_init(struct cio2_device *cio2, struct cio2_queue *q)
 	void __iomem *const base = cio2->base;
 	u8 lanes, csi2bus = q->csi2.port;
 	u8 sensor_vc = SENSOR_VIR_CH_DFLT;
-	struct cio2_csi2_timing timing;
+	struct cio2_csi2_timing timing = { 0 };
 	int i, r;
 
 	fmt = cio2_find_format(NULL, &q->subdev_fmt.code);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c +2 -0
index a605e80c7dc3..b0ca2b3a8a73 100644
@@ -892,11 +892,13 @@ static int mdp_get_subsys_id(struct mdp_dev *mdp, struct device *dev,
 	ret = cmdq_dev_get_client_reg(&comp_pdev->dev, &cmdq_reg, index);
 	if (ret != 0) {
 		dev_err(&comp_pdev->dev, "cmdq_dev_get_subsys fail!\n");
+		put_device(&comp_pdev->dev);
 		return -EINVAL;
 	}
 
 	comp->subsys_id = cmdq_reg.subsys;
 	dev_dbg(&comp_pdev->dev, "subsys id=%d\n", cmdq_reg.subsys);
+	put_device(&comp_pdev->dev);
 
 	return 0;
 }
drivers/media/tuners/qt1010.c +6 -5
index 60931367b82c..48fc79cd4027 100644
@@ -345,11 +345,12 @@ static int qt1010_init(struct dvb_frontend *fe)
 			else
 				valptr = &tmpval;
 
-			BUG_ON(i >= ARRAY_SIZE(i2c_data) - 1);
-
-			err = qt1010_init_meas1(priv, i2c_data[i+1].reg,
-						i2c_data[i].reg,
-						i2c_data[i].val, valptr);
+			if (i >= ARRAY_SIZE(i2c_data) - 1)
+				err = -EIO;
+			else
+				err = qt1010_init_meas1(priv, i2c_data[i + 1].reg,
+							i2c_data[i].reg,
+							i2c_data[i].val, valptr);
 			i++;
 			break;
 		}
drivers/media/usb/dvb-usb-v2/af9035.c +5 -4
index 1e9c8d01523b..33a2aa8907e6 100644
@@ -322,6 +322,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
 			ret = -EOPNOTSUPP;
 		} else if ((msg[0].addr == state->af9033_i2c_addr[0]) ||
 			   (msg[0].addr == state->af9033_i2c_addr[1])) {
+			if (msg[0].len < 3 || msg[1].len < 1)
+				return -EOPNOTSUPP;
 			/* demod access via firmware interface */
 			u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
 					msg[0].buf[2];
@@ -381,6 +383,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
 			ret = -EOPNOTSUPP;
 		} else if ((msg[0].addr == state->af9033_i2c_addr[0]) ||
 			   (msg[0].addr == state->af9033_i2c_addr[1])) {
+			if (msg[0].len < 3)
+				return -EOPNOTSUPP;
 			/* demod access via firmware interface */
 			u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
 					msg[0].buf[2];
@@ -388,10 +392,7 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
 			if (msg[0].addr == state->af9033_i2c_addr[1])
 				reg |= 0x100000;
 
-			ret = (msg[0].len >= 3) ? af9035_wr_regs(d, reg,
-							         &msg[0].buf[3],
-							         msg[0].len - 3)
-					        : -EOPNOTSUPP;
+			ret = af9035_wr_regs(d, reg, &msg[0].buf[3], msg[0].len - 3);
 		} else {
 			/* I2C write */
 			u8 buf[MAX_XFER_SIZE];
drivers/media/usb/dvb-usb-v2/anysee.c +1 -1
index aa45b5d263f6..a1235d0cce92 100644
@@ -202,7 +202,7 @@ static int anysee_master_xfer(struct i2c_adapter *adap, struct i2c_msg *msg,
 
 	while (i < num) {
 		if (num > i + 1 && (msg[i+1].flags & I2C_M_RD)) {
-			if (msg[i].len > 2 || msg[i+1].len > 60) {
+			if (msg[i].len != 2 || msg[i + 1].len > 60) {
 				ret = -EOPNOTSUPP;
 				break;
 			}
drivers/media/usb/dvb-usb-v2/az6007.c +8 -0
index 2dcbb49d66da..2410054ddb2c 100644
@@ -788,6 +788,10 @@ static int az6007_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[],
 			if (az6007_xfer_debug)
 				printk(KERN_DEBUG "az6007: I2C W addr=0x%x len=%d\n",
 				       addr, msgs[i].len);
+			if (msgs[i].len < 1) {
+				ret = -EIO;
+				goto err;
+			}
 			req = AZ6007_I2C_WR;
 			index = msgs[i].buf[0];
 			value = addr | (1 << 8);
@@ -802,6 +806,10 @@ static int az6007_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[],
 			if (az6007_xfer_debug)
 				printk(KERN_DEBUG "az6007: I2C R addr=0x%x len=%d\n",
 				       addr, msgs[i].len);
+			if (msgs[i].len < 1) {
+				ret = -EIO;
+				goto err;
+			}
 			req = AZ6007_I2C_RD;
 			index = msgs[i].buf[0];
 			value = addr;
drivers/media/usb/dvb-usb-v2/gl861.c +1 -1
index 0c434259c36f..c71e7b93476d 100644
@@ -120,7 +120,7 @@ static int gl861_i2c_master_xfer(struct i2c_adapter *adap, struct i2c_msg msg[],
 	} else if (num == 2 && !(msg[0].flags & I2C_M_RD) &&
 		   (msg[1].flags & I2C_M_RD)) {
 		/* I2C write + read */
-		if (msg[0].len > 1 || msg[1].len > sizeof(ctx->buf)) {
+		if (msg[0].len != 1 || msg[1].len > sizeof(ctx->buf)) {
 			ret = -EOPNOTSUPP;
 			goto err;
 		}
drivers/media/usb/dvb-usb/af9005.c +5 -0
index 0827bf3d4e8c..13604e6acdb8 100644
@@ -422,6 +422,10 @@ static int af9005_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[],
 		if (ret == 0)
 			ret = 2;
 	} else {
+		if (msg[0].len < 2) {
+			ret = -EOPNOTSUPP;
+			goto unlock;
+		}
 		/* write one or more registers */
 		reg = msg[0].buf[0];
 		addr = msg[0].addr;
@@ -431,6 +435,7 @@ static int af9005_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[],
 			ret = 1;
 	}
 
+unlock:
 	mutex_unlock(&d->i2c_mutex);
 	return ret;
 }
drivers/media/usb/dvb-usb/dw2102.c +24 -0
index 970b84c3f0b5..b3bb1805829a 100644
@@ -128,6 +128,10 @@ static int dw2102_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[],
 
 	switch (num) {
 	case 2:
+		if (msg[0].len < 1) {
+			num = -EOPNOTSUPP;
+			break;
+		}
 		/* read stv0299 register */
 		value = msg[0].buf[0];/* register */
 		for (i = 0; i < msg[1].len; i++) {
@@ -139,6 +143,10 @@ static int dw2102_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[],
 	case 1:
 		switch (msg[0].addr) {
 		case 0x68:
+			if (msg[0].len < 2) {
+				num = -EOPNOTSUPP;
+				break;
+			}
 			/* write to stv0299 register */
 			buf6[0] = 0x2a;
 			buf6[1] = msg[0].buf[0];
@@ -148,6 +156,10 @@ static int dw2102_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[],
 			break;
 		case 0x60:
 			if (msg[0].flags == 0) {
+				if (msg[0].len < 4) {
+					num = -EOPNOTSUPP;
+					break;
+				}
 			/* write to tuner pll */
 				buf6[0] = 0x2c;
 				buf6[1] = 5;
@@ -159,6 +171,10 @@ static int dw2102_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[],
 				dw210x_op_rw(d->udev, 0xb2, 0, 0,
 						buf6, 7, DW210X_WRITE_MSG);
 			} else {
+				if (msg[0].len < 1) {
+					num = -EOPNOTSUPP;
+					break;
+				}
 			/* read from tuner */
 				dw210x_op_rw(d->udev, 0xb5, 0, 0,
 						buf6, 1, DW210X_READ_MSG);
@@ -166,12 +182,20 @@ static int dw2102_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[],
 			}
 			break;
 		case (DW2102_RC_QUERY):
+			if (msg[0].len < 2) {
+				num = -EOPNOTSUPP;
+				break;
+			}
 			dw210x_op_rw(d->udev, 0xb8, 0, 0,
 					buf6, 2, DW210X_READ_MSG);
 			msg[0].buf[0] = buf6[0];
 			msg[0].buf[1] = buf6[1];
 			break;
 		case (DW2102_VOLTAGE_CTRL):
+			if (msg[0].len < 1) {
+				num = -EOPNOTSUPP;
+				break;
+			}
 			buf6[0] = 0x30;
 			buf6[1] = msg[0].buf[0];
 			dw210x_op_rw(d->udev, 0xb2, 0, 0,
drivers/misc/Kconfig +1 -0
index 75e427f124b2..cadd4a820c03 100644
@@ -496,6 +496,7 @@ config HISI_HIKEY_USB
 config OPEN_DICE
 	tristate "Open Profile for DICE driver"
 	depends on OF_RESERVED_MEM
+	depends on HAS_IOMEM
 	help
 	  This driver exposes a DICE reserved memory region to userspace via
 	  a character device. The memory region contains Compound Device
drivers/mmc/host/sdhci-esdhc-imx.c +4 -3
index eebf94604a7f..cddecc1e1ac2 100644
@@ -171,8 +171,8 @@
 #define ESDHC_FLAG_HS400		BIT(9)
 /*
  * The IP has errata ERR010450
- * uSDHC: Due to the I/O timing limit, for SDR mode, SD card clock can't
- * exceed 150MHz, for DDR mode, SD card clock can't exceed 45MHz.
+ * uSDHC: At 1.8V due to the I/O timing limit, for SDR mode, SD card
+ * clock can't exceed 150MHz, for DDR mode, SD card clock can't exceed 45MHz.
  */
 #define ESDHC_FLAG_ERR010450		BIT(10)
 /* The IP supports HS400ES mode */
@@ -961,7 +961,8 @@ static inline void esdhc_pltfm_set_clock(struct sdhci_host *host,
 		| ESDHC_CLOCK_MASK);
 	sdhci_writel(host, temp, ESDHC_SYSTEM_CONTROL);
 
-	if (imx_data->socdata->flags & ESDHC_FLAG_ERR010450) {
+	if ((imx_data->socdata->flags & ESDHC_FLAG_ERR010450) &&
+	    (!(host->quirks2 & SDHCI_QUIRK2_NO_1_8_V))) {
 		unsigned int max_clock;
 
 		max_clock = imx_data->is_ddr ? 45000000 : 150000000;
drivers/mtd/spi-nor/atmel.c +6 -2
index 656dd80a0be7..58968c1e7d2f 100644
@@ -48,9 +48,11 @@ static const struct spi_nor_locking_ops at25fs_nor_locking_ops = {
 	.is_locked = at25fs_nor_is_locked,
 };
 
-static void at25fs_nor_late_init(struct spi_nor *nor)
+static int at25fs_nor_late_init(struct spi_nor *nor)
 {
 	nor->params->locking_ops = &at25fs_nor_locking_ops;
+
+	return 0;
 }
 
 static const struct spi_nor_fixups at25fs_nor_fixups = {
@@ -149,9 +151,11 @@ static const struct spi_nor_locking_ops atmel_nor_global_protection_ops = {
 	.is_locked = atmel_nor_is_global_protected,
 };
 
-static void atmel_nor_global_protection_late_init(struct spi_nor *nor)
+static int atmel_nor_global_protection_late_init(struct spi_nor *nor)
 {
 	nor->params->locking_ops = &atmel_nor_global_protection_ops;
+
+	return 0;
 }
 
 static const struct spi_nor_fixups atmel_nor_global_protection_fixups = {
drivers/mtd/spi-nor/core.c +15 -8
index 55f4a902b8be..72973cfb1d20 100644
@@ -2898,16 +2898,23 @@ static void spi_nor_init_fixup_flags(struct spi_nor *nor)
  * SFDP standard, or where SFDP tables are not defined at all.
  * Will replace the spi_nor_manufacturer_init_params() method.
  */
-static void spi_nor_late_init_params(struct spi_nor *nor)
+static int spi_nor_late_init_params(struct spi_nor *nor)
 {
 	struct spi_nor_flash_parameter *params = nor->params;
+	int ret;
 
 	if (nor->manufacturer && nor->manufacturer->fixups &&
-	    nor->manufacturer->fixups->late_init)
-		nor->manufacturer->fixups->late_init(nor);
+	    nor->manufacturer->fixups->late_init) {
+		ret = nor->manufacturer->fixups->late_init(nor);
+		if (ret)
+			return ret;
+	}
 
-	if (nor->info->fixups && nor->info->fixups->late_init)
-		nor->info->fixups->late_init(nor);
+	if (nor->info->fixups && nor->info->fixups->late_init) {
+		ret = nor->info->fixups->late_init(nor);
+		if (ret)
+			return ret;
+	}
 
 	/* Default method kept for backward compatibility. */
 	if (!params->set_4byte_addr_mode)
@@ -2925,6 +2932,8 @@ static void spi_nor_late_init_params(struct spi_nor *nor)
 
 	if (nor->info->n_banks > 1)
 		params->bank_size = div64_u64(params->size, nor->info->n_banks);
+
+	return 0;
 }
 
 /**
@@ -3083,9 +3092,7 @@ static int spi_nor_init_params(struct spi_nor *nor)
 		spi_nor_init_params_deprecated(nor);
 	}
 
-	spi_nor_late_init_params(nor);
-
-	return 0;
+	return spi_nor_late_init_params(nor);
 }
 
 /** spi_nor_octal_dtr_enable() - enable Octal DTR I/O if needed
drivers/mtd/spi-nor/core.h +3 -1
index 4fb5ff09c63a..2453bd5743ac 100644
@@ -377,6 +377,7 @@ struct spi_nor_otp {
  *			than reading the status register to indicate they
  *			are ready for a new command
  * @locking_ops:	SPI NOR locking methods.
+ * @priv:		flash's private data.
  */
 struct spi_nor_flash_parameter {
 	u64				bank_size;
@@ -405,6 +406,7 @@ struct spi_nor_flash_parameter {
 	int (*ready)(struct spi_nor *nor);
 
 	const struct spi_nor_locking_ops *locking_ops;
+	void *priv;
 };
 
 /**
@@ -431,7 +433,7 @@ struct spi_nor_fixups {
 			 const struct sfdp_parameter_header *bfpt_header,
 			 const struct sfdp_bfpt *bfpt);
 	int (*post_sfdp)(struct spi_nor *nor);
-	void (*late_init)(struct spi_nor *nor);
+	int (*late_init)(struct spi_nor *nor);
 };
 
 /**
drivers/mtd/spi-nor/issi.c +3 -1
index 400e2b42f45a..accdf7aa2bfd 100644
@@ -29,7 +29,7 @@ static const struct spi_nor_fixups is25lp256_fixups = {
 	.post_bfpt = is25lp256_post_bfpt_fixups,
 };
 
-static void pm25lv_nor_late_init(struct spi_nor *nor)
+static int pm25lv_nor_late_init(struct spi_nor *nor)
 {
 	struct spi_nor_erase_map *map = &nor->params->erase_map;
 	int i;
@@ -38,6 +38,8 @@ static void pm25lv_nor_late_init(struct spi_nor *nor)
 	for (i = 0; i < SNOR_ERASE_TYPE_MAX; i++)
 		if (map->erase_type[i].size == 4096)
 			map->erase_type[i].opcode = SPINOR_OP_BE_4K_PMC;
+
+	return 0;
 }
 
 static const struct spi_nor_fixups pm25lv_nor_fixups = {
drivers/mtd/spi-nor/macronix.c +3 -1
index 04888258e891..eb149e517c1f 100644
@@ -110,10 +110,12 @@ static void macronix_nor_default_init(struct spi_nor *nor)
 	nor->params->quad_enable = spi_nor_sr1_bit6_quad_enable;
 }
 
-static void macronix_nor_late_init(struct spi_nor *nor)
+static int macronix_nor_late_init(struct spi_nor *nor)
 {
 	if (!nor->params->set_4byte_addr_mode)
 		nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode_en4b_ex4b;
+
+	return 0;
 }
 
 static const struct spi_nor_fixups macronix_nor_fixups = {
drivers/mtd/spi-nor/micron-st.c +3 -1
index 4b919756a205..28c9c14a4b29 100644
@@ -429,7 +429,7 @@ static void micron_st_nor_default_init(struct spi_nor *nor)
 	nor->params->quad_enable = NULL;
 }
 
-static void micron_st_nor_late_init(struct spi_nor *nor)
+static int micron_st_nor_late_init(struct spi_nor *nor)
 {
 	struct spi_nor_flash_parameter *params = nor->params;
 
@@ -438,6 +438,8 @@ static void micron_st_nor_late_init(struct spi_nor *nor)
 
 	if (!params->set_4byte_addr_mode)
 		params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode_wren_en4b_ex4b;
+
+	return 0;
 }
 
 static const struct spi_nor_fixups micron_st_nor_fixups = {
drivers/mtd/spi-nor/spansion.c +71 -15

217 lines not on this page · raw message

drivers/mtd/spi-nor/sst.c +6 -2
index 688eb20c763e..09fdc7023e09 100644
@@ -49,9 +49,11 @@ static const struct spi_nor_locking_ops sst26vf_nor_locking_ops = {
 	.is_locked = sst26vf_nor_is_locked,
 };
 
-static void sst26vf_nor_late_init(struct spi_nor *nor)
+static int sst26vf_nor_late_init(struct spi_nor *nor)
 {
 	nor->params->locking_ops = &sst26vf_nor_locking_ops;
+
+	return 0;
 }
 
 static const struct spi_nor_fixups sst26vf_nor_fixups = {
@@ -203,10 +205,12 @@ static int sst_nor_write(struct mtd_info *mtd, loff_t to, size_t len,
 	return ret;
 }
 
-static void sst_nor_late_init(struct spi_nor *nor)
+static int sst_nor_late_init(struct spi_nor *nor)
 {
 	if (nor->info->mfr_flags & SST_WRITE)
 		nor->mtd._write = sst_nor_write;
+
+	return 0;
 }
 
 static const struct spi_nor_fixups sst_nor_fixups = {
drivers/mtd/spi-nor/winbond.c +3 -1
index 63ba8e3a96f5..cd99c9a1c568 100644
@@ -217,7 +217,7 @@ static const struct spi_nor_otp_ops winbond_nor_otp_ops = {
 	.is_locked = spi_nor_otp_is_locked_sr2,
 };
 
-static void winbond_nor_late_init(struct spi_nor *nor)
+static int winbond_nor_late_init(struct spi_nor *nor)
 {
 	struct spi_nor_flash_parameter *params = nor->params;
 
@@ -233,6 +233,8 @@ static void winbond_nor_late_init(struct spi_nor *nor)
 	 * from BFPT, if any.
 	 */
 	params->set_4byte_addr_mode = winbond_nor_set_4byte_addr_mode;
+
+	return 0;
 }
 
 static const struct spi_nor_fixups winbond_nor_fixups = {
drivers/mtd/spi-nor/xilinx.c +3 -1
index 7175de8aa336..00d53eae5ee8 100644
@@ -155,10 +155,12 @@ static int xilinx_nor_setup(struct spi_nor *nor,
 	return 0;
 }
[… more lines in the raw message]

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

drivers/net/can/Kconfig +2 -2
index a5c5036dfb94..e626de33e735 100644

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

drivers/net/can/sun4i_can.c +19 -3
index 0827830bbf28..c508a328e38d 100644

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

drivers/net/ethernet/atheros/alx/ethtool.c +2 -3
index b716adacd815..7f6b69a52367 100644

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

drivers/net/ethernet/intel/ice/ice_eswitch.c +3 -0
index 8f232c41a89e..459e32f6adb5 100644

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

drivers/net/wireless/ath/ath10k/pci.c +1 -1
index 9275a672f90c..73463ded4204 100644

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

drivers/net/wireless/ath/ath10k/usb.c +1 -1
index b0067af685b1..3c482baacec1 100644

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

drivers/net/wireless/ath/ath11k/pci.c +1 -1
index ec40adc1cb23..a181563ec085 100644

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

drivers/net/wireless/ath/ath12k/dp.c +29 -1
index ae1645d0f42a..f933896f2a68 100644

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

drivers/net/wireless/ath/ath12k/dp.h +2 -0
index 7c5dafce5a68..9aeda0321cd7 100644

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

drivers/net/wireless/ath/ath12k/mac.c +5 -2
index 45d88e35fc2e..d165b24094ad 100644

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

drivers/net/wireless/ath/ath12k/pci.c +1 -1
index e4f08a066ca1..fae5dfd6e9d7 100644

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

drivers/net/wireless/ath/ath12k/wmi.c +17 -7
index 4928e4e91660..eebc5a65ce3b 100644

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

drivers/net/wireless/ath/ath9k/ahb.c +2 -2
index 9cd12b20b18d..9bfaadfa6c00 100644

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

drivers/net/wireless/ath/ath9k/mac.h +4 -2
index af44b33814dd..f03d792732da 100644

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

drivers/net/wireless/ath/ath9k/pci.c +2 -2
index a09f9d223f3d..0633589b85c2 100644

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

drivers/net/wireless/ath/ath9k/xmit.c +2 -2
index f6f2ab7a63ff..42058368e637 100644

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

drivers/net/wireless/ath/wil6210/txrx.c +1 -1
index 237cbd5c5060..f29ac6de7139 100644

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

drivers/net/wireless/ath/wil6210/txrx.h +4 -2
index 1ae1bec1b97f..689f68d89a44 100644

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

drivers/net/wireless/ath/wil6210/txrx_edma.c +1 -1
index 201c8c35e0c9..1ba1f21ebea2 100644

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

drivers/net/wireless/ath/wil6210/txrx_edma.h +4 -2
index c736f7413a35..ee90e225bb05 100644

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

drivers/net/wireless/atmel/at76c50x-usb.c +4 -4
index 009bca34ece3..447b51cff8f9 100644

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

drivers/net/wireless/intel/iwlwifi/pcie/drv.c +1 -10
index 73c1fb3c0c5e..bc83d2ba55c6 100644

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

drivers/net/wireless/intersil/orinoco/orinoco_usb.c +6 -6
index dd31929261ab..866e0230df25 100644

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

drivers/net/wireless/legacy/rndis_wlan.c +1 -1
index 712038d46bdb..e7fea7ded6d5 100644

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

drivers/net/wireless/marvell/mwifiex/tdls.c +6 -3
index 97bb87c3676b..6c60621b6ccc 100644

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

drivers/net/wireless/mediatek/mt76/mt7603/Kconfig +1 -1
index 6a0080f1d91c..dd16acfd9735 100644

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

drivers/net/wireless/mediatek/mt76/mt7615/Kconfig +1 -1
index 30fba36ff46b..1ab1439143f4 100644

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

drivers/net/wireless/mediatek/mt76/mt76x0/Kconfig +2 -2
index 7c88ed8b8f1e..3ed888782a70 100644

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

drivers/net/wireless/mediatek/mt76/mt76x2/Kconfig +2 -2
index 5fd4973e32df..482a32b70ddf 100644

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

drivers/net/wireless/mediatek/mt76/mt7915/Kconfig +1 -1
index d710726d47bf..3337cdfed010 100644

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

drivers/net/wireless/mediatek/mt76/mt7921/mac.c +4 -0
index 1675bf520481..a671c601c583 100644

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

drivers/net/wireless/mediatek/mt76/mt7996/Kconfig +1 -1
index 1afa2f662e47..bb44d4a5e2dc 100644

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

drivers/net/wireless/mediatek/mt7601u/Kconfig +1 -1
index 4a8b96280670..4880fc053d9d 100644

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

drivers/net/wireless/purelifi/plfxlc/Kconfig +1 -1
index 4e0be27a5e0e..dd5fca480d7e 100644

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

drivers/net/wireless/ralink/rt2x00/Kconfig +1 -1
index dcccc290a7f5..d1fd66d44a7e 100644

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

drivers/net/wireless/realtek/rtw88/main.c +3 -1
index c853e2f2d448..c2ddb4d382af 100644

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

drivers/net/wireless/realtek/rtw88/pci.c +1 -1
index 44a8fff34cdd..2bfc0e822b8d 100644

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

drivers/net/wireless/realtek/rtw88/usb.c +1 -1
index 875a61c9c80d..c279a500b4bd 100644

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

drivers/net/wireless/realtek/rtw89/pci.c +1 -1
index 9402f1a0caea..3a4bfc44142b 100644

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

drivers/net/wireless/virtual/mac80211_hwsim.c +6 -6
index f446fd0e8cd0..23307c8baea2 100644

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

drivers/net/wireless/zydas/zd1201.c +3 -3
index a85fe7e4c6d4..2814df1ecc78 100644

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

drivers/nvme/host/core.c +35 -19

54 lines not on this page · raw message

drivers/nvme/target/tcp.c +1 -1
index 868aa4de2e4c..cd92d7ddf5ed 100644

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

drivers/pci/controller/dwc/pci-imx6.c +1 -0
index 27aaa2a6bf39..a18c20085e94 100644

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

drivers/pci/controller/dwc/pcie-fu740.c +1 -0
index 0c90583c078b..1e9b44b8bba4 100644

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

drivers/pci/controller/vmd.c +17 -2
index e718a816d481..ad56df98b8e6 100644

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

drivers/perf/arm_smmuv3_pmu.c +45 -1

46 lines not on this page · raw message

drivers/perf/fsl_imx8_ddr_perf.c +21 -0
index c684aab407f8..e78b30521be2 100644

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

drivers/platform/chrome/cros_ec_lpc.c +2 -2
index 500a61b093e4..356572452898 100644

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

drivers/platform/x86/eeepc-laptop.c +1 -1
index 62b71e8e3567..ff1b70269ccb 100644

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

drivers/scsi/lpfc/lpfc.h +1 -0
index 9a8963684369..e8d7eeeb2185 100644

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

drivers/scsi/lpfc/lpfc_debugfs.c +7 -7
index 7f9b221e7c34..ea9b42225e62 100644

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

drivers/scsi/lpfc/lpfc_els.c +18 -7
index 2bad9954c355..6f6ef5235ee3 100644

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

drivers/scsi/lpfc/lpfc_init.c +17 -3
index 3221a934066b..ce9e4cdd6004 100644

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

drivers/scsi/lpfc/lpfc_sli.c +7 -1
index 58d10f8f75a7..4dfadf254a72 100644

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

drivers/scsi/megaraid/megaraid_sas.h +1 -1
index 3554f6b07727..94abba57582d 100644

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

drivers/scsi/megaraid/megaraid_sas_base.c +9 -12
index 050eed8e2684..c0d47141f6d3 100644

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

drivers/scsi/pm8001/pm8001_init.c +17 -34

51 lines not on this page · raw message

drivers/scsi/qla2xxx/qla_dfs.c +3 -3
index f060e593685d..a7a364760b80 100644

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

drivers/scsi/qla2xxx/qla_inline.h +1 -1
index 0556969f6dc1..a4a56ab0ba74 100644

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

drivers/scsi/qla2xxx/qla_isr.c +3 -3
index 1f42a413b598..a7321e02c641 100644

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

drivers/scsi/qla2xxx/qla_target.c +1 -2
index 2b815a9928ea..2ef2dbac0db2 100644

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

drivers/scsi/qla2xxx/tcm_qla2xxx.c +2 -2
index 3b5ba4b47b3b..68a0e6a2fb6e 100644

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

drivers/spi/spi-sun6i.c +25 -4
index 30d541612253..cec2747235ab 100644

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

drivers/staging/wlan-ng/prism2usb.c +24 -24

48 lines not on this page · raw message

drivers/target/iscsi/iscsi_target_configfs.c +27 -27

54 lines not on this page · raw message

drivers/target/target_core_transport.c +1 -0
index 687adc9e086c..0686882bcbda 100644

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

drivers/tty/serial/cpm_uart/cpm_uart_core.c +4 -9
index 66afa9bea6bf..71366a4cea22 100644

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

drivers/usb/cdns3/cdns3-plat.c +2 -1
index 884e2301237f..1168dbeed2ce 100644

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

drivers/usb/cdns3/cdnsp-pci.c +2 -1
index 7b151f5af3cc..0725668ffea4 100644

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

drivers/usb/cdns3/core.c +11 -4
index dbcdf3b24b47..7b20d2d5c262 100644

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

drivers/usb/cdns3/core.h +5 -2
index 2d332a788871..4a4dbc2c1561 100644

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

drivers/usb/chipidea/ci.h +1 -0
index f210b7489fd5..78cfbe621272 100644

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

drivers/usb/chipidea/ci_hdrc_imx.c +3 -1
index 873539f9a2c0..a96d8af93538 100644

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

drivers/usb/chipidea/core.c +2 -0
index 51994d655b82..500286a4576b 100644

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

drivers/usb/chipidea/host.c +1 -0
index ebe7400243b1..08af26b762a2 100644

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

drivers/usb/gadget/udc/fsl_qe_udc.c +2 -0
index 9c5dc1c1a68e..4aae86b47edf 100644

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

drivers/usb/host/ehci-hcd.c +6 -2
index a1930db0da1c..802bfafb1012 100644

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

drivers/usb/host/ehci-hub.c +9 -1
index efe30e3be22f..1aee392e8492 100644

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

drivers/usb/host/ehci.h +10 -0
index c5c7f8782549..1441e3400796 100644

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

drivers/usb/typec/mux/intel_pmc_mux.c +20 -5
index 5e8edf3881c0..61a88f68b458 100644

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

drivers/usb/typec/tcpm/Kconfig +1 -0
index 5d393f520fc2..0b2993fef564 100644

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

drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c +37 -0
index 9b467a346114..273b4811b4ac 100644

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

fs/attr.c +18 -2
index d60dc1edb526..87af68bb8ad2 100644

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

fs/autofs/waitq.c +2 -1
index 54c1f8b8b075..efdc76732fae 100644

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

fs/btrfs/block-group.c +21 -2
index 82324c327a50..5e7a19fca79c 100644

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

fs/btrfs/delayed-inode.c +16 -3
index 6d51db066503..0f147240ce9b 100644

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

fs/btrfs/disk-io.c +11 -11
index 4494883a19ab..681594df7334 100644

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

fs/btrfs/extent-tree.c +66 -12

78 lines not on this page · raw message

fs/btrfs/extent_io.c +18 -25

43 lines not on this page · raw message

fs/btrfs/extent_io.h +7 -0
index c5fae3a7d911..f61b7896320a 100644

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

fs/btrfs/fs.h +3 -0
index 203d2a267828..1f2d33112106 100644

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

fs/btrfs/ioctl.c +7 -1
index a895d105464b..d27b0d86b8e2 100644

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

fs/btrfs/ordered-data.c +1 -1
index a629532283bc..5b1aac3fc8e4 100644

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

fs/btrfs/volumes.c +8 -0
index 6aa9bf3661ac..51070c0d4141 100644

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

fs/btrfs/volumes.h +1 -0
index b8c51f16ba86..0f87057bb575 100644

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

fs/btrfs/zoned.c +107 -24

131 lines not on this page · raw message

fs/btrfs/zoned.h +5 -15
index 27322b926038..74ec37a25808 100644

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

fs/efivarfs/super.c +10 -4
index e028fafa04f3..996271473609 100644

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

fs/ext2/xattr.c +2 -2
index 8906ba479aaf..89517937d36c 100644

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

fs/ext4/mballoc.c +27 -34

61 lines not on this page · raw message

fs/ext4/mballoc.h +14 -0
index df6b5e7c2274..d7aeb5da7d86 100644

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

fs/ext4/namei.c +15 -11
index 6bcc3770ee19..46a2ddd9259e 100644

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

fs/iomap/buffered-io.c +1 -1
index 7d2f70708f37..794fda5bd9bc 100644

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

fs/jfs/jfs_dmap.c +1 -0
index a14a0f18a4c4..88afd108c2dd 100644

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

fs/jfs/jfs_imap.c +1 -0
index 390cbfce391f..6fb28572cb2c 100644

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

fs/locks.c +1 -1
index df8b26a42524..a552bdb6badc 100644

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

fs/nfsd/nfs4proc.c +2 -2
index 5ae670807449..7fe97c95938b 100644

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

fs/overlayfs/copy_up.c +2 -1
index 568f743a5584..986d37a4c275 100644

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

fs/overlayfs/file.c +3 -6
index 21245b00722a..1d80583d72ed 100644

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

fs/tracefs/inode.c +3 -0
index 57ac8aa4a724..65e8bfa483b1 100644

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

include/drm/drm_kunit_helpers.h +3 -1
index ed013fdcc1ff..f0182ad3eacf 100644

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

include/linux/acpi_iort.h +1 -0
index ee7cb6aaff71..1cb65592c95d 100644

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

include/linux/bpf.h +2 -1
index f316affcd2e1..28e2e0ce2ed0 100644

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

include/linux/bpf_verifier.h +1 -1
index f70f9ac884d2..b6e58dab8e27 100644

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

include/linux/instruction_pointer.h +5 -0
index cda1f706eaeb..aa0b3ffea935 100644

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

include/linux/libata.h +4 -0
index 820f7a3a2749..f5bb4415c5e2 100644

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

include/linux/pci_ids.h +2 -0
index 2dc75df1437f..8f9a459e1671 100644

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

include/linux/perf_event.h +19 -3
index 2166a69e3bf2..e657916c9509 100644

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

include/linux/sched/task.h +27 -1
index dd35ce28bb90..6b687c155fb6 100644

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

include/linux/trace_events.h +3 -3
index f99d798093ab..faa579209a72 100644

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

include/linux/usb/chipidea.h +1 -0
index ee38835ed77c..0b4f2d5faa08 100644

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

include/uapi/linux/netfilter_bridge/ebtables.h +8 -6
index a494cf43a755..b0caad82b693 100644

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

io_uring/io_uring.c +14 -2
index 4e9217c1eb2e..a1562f2cf3f3 100644

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

io_uring/net.c +5 -0
index 8c419c01a5db..47ecb070194b 100644

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

kernel/bpf/verifier.c +12 -1
index 76845dd22cd2..9cdba4ce23d2 100644

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

kernel/fork.c +8 -0
index d2e12b6d2b18..f81149739eb9 100644

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

kernel/panic.c +1 -0
index 10effe40a3fa..ea1c5fcb2d19 100644

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

kernel/power/hibernate.c +6 -6
index 2b4a946a6ff5..8d35b9f9aaa3 100644

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

kernel/printk/internal.h +2 -0
index 2a17704136f1..7d4979d5c3ce 100644

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

kernel/printk/printk.c +103 -36

139 lines not on this page · raw message

kernel/printk/printk_safe.c +2 -7
index ef0f9a2044da..6d10927a07d8 100644

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

kernel/rcu/rcuscale.c +1 -1
index d1221731c7cf..35aab6cbba58 100644

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

kernel/scftorture.c +4 -2
index 5d113aa59e77..83c33ba0ca7e 100644

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

kernel/trace/trace.c +61 -7

68 lines not on this page · raw message

kernel/trace/trace.h +2 -0
index 73eaec158473..c98c3f42c386 100644

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

kernel/trace/trace_events.c +4 -2
index 578f1f7d49a6..0cf84a7449f5 100644

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

kernel/trace/trace_events_inject.c +2 -1
index abe805d471eb..8650562bdaa9 100644

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

kernel/trace/trace_events_synth.c +1 -1
index 9897d0bfcab7..14cb275a0bab 100644

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

lib/kobject.c +5 -0
index 16d530f9c174..4c7a990d6f12 100644

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

lib/mpi/mpi-cmp.c +6 -2
index c4cfa3ff0581..0835b6213235 100644

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

mm/memcontrol.c +10 -0
index e79267c1eee0..4fe5a562d0bb 100644

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

net/bluetooth/hci_core.c +4 -0
index 2c845c9a26be..29ae9b254a34 100644

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

net/bridge/netfilter/ebtables.c +1 -2
index 757ec46fc45a..aa23479b20b2 100644

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

net/core/sock.c +3 -3
index 29c6cb030818..eef27812013a 100644

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

net/devlink/leftover.c +2 -2
index bfed7929a904..5277eb3c7d0a 100644

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

net/ipv4/ip_output.c +1 -1
index 6935d07a60c3..a8d2e8b1ff41 100644

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

net/mac80211/cfg.c +8 -7
index d354b32a20f8..45e7a5d9c7d9 100644

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

net/mac80211/rx.c +4 -0
index 0af2599c17e8..e751cda5eef6 100644

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

net/netlink/af_netlink.c +30 -60

90 lines not on this page · raw message

net/netlink/af_netlink.h +13 -9
index 90a3198a9b7f..3dbd38aef50a 100644

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

net/netlink/diag.c +5 -5
index e4f21b1067bc..9c4f231be275 100644

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

net/sunrpc/clnt.c +1 -1
index d7c697af3762..315bd59dea05 100644

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

net/wireless/mlme.c +13 -0
index ac059cefbeb3..775cac4d6100 100644

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

net/wireless/ocb.c +3 -0
index 27a1732264f9..29afaf3da54f 100644

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

samples/hw_breakpoint/data_breakpoint.c +3 -1
index 418c46fe5ffc..b99322f188e5 100644

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

security/selinux/hooks.c +8 -2
index afd663744041..5c16fe737a27 100644

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

sound/hda/intel-dsp-config.c +8 -0
index 317bdf6dcbef..2873420c9aca 100644

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

sound/soc/intel/boards/sof_sdw.c +3 -1
index 0201029899ca..c86f8f9a6100 100644

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

sound/soc/sof/amd/acp-ipc.c +4 -0
index 8a0fc635a997..d07dc78074cc 100644

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

sound/soc/sof/topology.c +3 -2
index 698129dccc7d..3866dd3cba69 100644

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

tools/iio/iio_generic_buffer.c +13 -4
index f8deae4e26a1..44bbf80f0cfd 100644

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

tools/lib/bpf/libbpf.c +1 -0
index e07dff7eba60..13b5623b720f 100644

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

tools/testing/selftests/arm64/signal/testcases/zt_regs.c +1 -0
index e1eb4d5c027a..2e384d731618 100644

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

tools/testing/selftests/ftrace/ftracetest +8 -0
index cb5f18c06593..d68264a5f3f0 100755

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

tools/testing/selftests/nolibc/nolibc-test.c +32 -3
index 486334981e60..8e7750e2eb97 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.