Skip to contentSkip to conversation

Linux 6.6.88

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Apr 25, 2025 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.6.88 kernel.

All users of the 6.6 kernel series must upgrade.

The updated 6.6.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.6.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/devicetree/bindings/arm/qcom,coresight-tpda.yaml            |    3 
 Documentation/devicetree/bindings/arm/qcom,coresight-tpdm.yaml            |    3 
 Documentation/devicetree/bindings/media/i2c/st,st-mipid02.yaml            |    2 
 Documentation/netlink/specs/rt_link.yaml                                  |   14 
 MAINTAINERS                                                               |    1 
 Makefile                                                                  |    5 
 arch/arm64/boot/dts/mediatek/mt8173.dtsi                                  |    6 
 arch/arm64/include/asm/cputype.h                                          |    4 
 arch/arm64/include/asm/spectre.h                                          |    1 
 arch/arm64/include/asm/tlbflush.h                                         |   22 -
 arch/arm64/kernel/proton-pack.c                                           |  218 +++++-----
 arch/arm64/kvm/arm.c                                                      |    6 
 arch/arm64/mm/mmu.c                                                       |    3 
 arch/loongarch/kernel/acpi.c                                              |   12 
 arch/mips/dec/prom/init.c                                                 |    2 
 arch/mips/include/asm/ds1287.h                                            |    2 
 arch/mips/kernel/cevt-ds1287.c                                            |    1 
 arch/powerpc/kernel/rtas.c                                                |    4 
 arch/riscv/include/asm/kgdb.h                                             |    9 
 arch/riscv/include/asm/syscall.h                                          |    7 
 arch/riscv/kernel/kgdb.c                                                  |    6 
 arch/riscv/kernel/setup.c                                                 |   36 +
 arch/sparc/include/asm/pgtable_64.h                                       |    2 
 arch/sparc/mm/tlb.c                                                       |    5 
 arch/x86/Kconfig                                                          |    1 
 arch/x86/boot/compressed/mem.c                                            |    5 
 arch/x86/boot/compressed/sev.c                                            |   67 ---
 arch/x86/boot/compressed/sev.h                                            |    2 
 arch/x86/coco/tdx/tdx.c                                                   |   26 +
 arch/x86/events/intel/ds.c                                                |    8 
 arch/x86/events/intel/uncore_snbep.c                                      |  107 ----
 arch/x86/include/asm/irqflags.h                                           |   40 +
 arch/x86/include/asm/paravirt.h                                           |   20 
 arch/x86/include/asm/paravirt_types.h                                     |    3 
 arch/x86/include/asm/tdx.h                                                |    4 
 arch/x86/include/asm/xen/hypervisor.h                                     |    5 
 arch/x86/kernel/cpu/amd.c                                                 |   21 
 arch/x86/kernel/cpu/intel.c                                               |   20 
 arch/x86/kernel/cpu/microcode/amd.c                                       |    9 
 arch/x86/kernel/e820.c                                                    |   17 
 arch/x86/kernel/paravirt.c                                                |   14 
 arch/x86/kernel/process.c                                                 |    2 
 arch/x86/kernel/signal_32.c                                               |   62 +-
 arch/x86/kvm/cpuid.c                                                      |    8 
 arch/x86/kvm/x86.c                                                        |    4 
 arch/x86/mm/pat/set_memory.c                                              |    6 
 arch/x86/platform/pvh/enlighten.c                                         |    3 
 arch/x86/xen/enlighten.c                                                  |   10 
 arch/x86/xen/enlighten_pvh.c                                              |   93 ++--
 arch/x86/xen/setup.c                                                      |    3 
 block/blk-sysfs.c                                                         |    2 
 certs/Makefile                                                            |    2 
 certs/extract-cert.c                                                      |  138 +++---
 drivers/acpi/platform_profile.c                                           |   20 
 drivers/ata/ahci.c                                                        |    2 
 drivers/ata/libata-eh.c                                                   |   11 
 drivers/ata/libata-sata.c                                                 |   15 
 drivers/ata/pata_pxa.c                                                    |    6 
 drivers/ata/sata_sx4.c                                                    |   13 
 drivers/base/devres.c                                                     |    7 
 drivers/block/loop.c                                                      |    7 
 drivers/bluetooth/btqca.c                                                 |   13 
 drivers/bluetooth/btrtl.c                                                 |    2 
 drivers/bluetooth/hci_ldisc.c                                             |   19 
 drivers/bluetooth/hci_uart.h                                              |    1 
 drivers/bluetooth/hci_vhci.c                                              |   10 
 drivers/bus/mhi/host/main.c                                               |   16 
 drivers/char/tpm/tpm-chip.c                                               |    5 
 drivers/char/tpm/tpm-interface.c                                          |    7 
 drivers/char/tpm/tpm_tis_core.c                                           |   20 
 drivers/char/tpm/tpm_tis_core.h                                           |    1 
 drivers/clk/qcom/clk-branch.c                                             |    4 
 drivers/clk/qcom/gdsc.c                                                   |   61 +-
 drivers/clocksource/timer-stm32-lp.c                                      |    4 
 drivers/cpufreq/cpufreq.c                                                 |    8 
 drivers/crypto/caam/qi.c                                                  |    6 
 drivers/crypto/ccp/sp-pci.c                                               |   15 
 drivers/firmware/efi/libstub/efistub.h                                    |    2 
 drivers/gpio/gpio-tegra186.c                                              |   27 -
 drivers/gpio/gpio-zynq.c                                                  |    1 
 drivers/gpu/drm/Kconfig                                                   |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                                |   10 
 drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c                               |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c                                   |   44 +-
 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c                                  |   10 
 drivers/gpu/drm/amd/amdkfd/kfd_device.c                                   |    5 
 drivers/gpu/drm/amd/amdkfd/kfd_process.c                                  |   17 
 drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c                    |    2 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c                         |   14 
 drivers/gpu/drm/amd/display/dc/dc.h                                       |    2 
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c                 |   22 -
 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubp.c                         |    2 
 drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c          |    2 
 drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c                          |    5 
 drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_thermal.c                     |    4 
 drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c                   |    4 
 drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_thermal.c                   |    2 
 drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c                         |    3 
 drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c                            |    2 
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c                            |    2 
 drivers/gpu/drm/drm_atomic_helper.c                                       |    2 
 drivers/gpu/drm/drm_panel.c                                               |    5 
 drivers/gpu/drm/drm_panel_orientation_quirks.c                            |   46 ++
 drivers/gpu/drm/i915/gt/intel_engine_cs.c                                 |    3 
 drivers/gpu/drm/i915/gt/intel_mocs.c                                      |    4 
 drivers/gpu/drm/i915/gt/intel_rc6.c                                       |   19 
 drivers/gpu/drm/i915/gt/uc/intel_huc.c                                    |   11 
 drivers/gpu/drm/i915/gt/uc/intel_huc.h                                    |    1 
 drivers/gpu/drm/i915/gt/uc/intel_uc.c                                     |    1 
 drivers/gpu/drm/i915/gvt/opregion.c                                       |    7 
 drivers/gpu/drm/i915/i915_debugfs.c                                       |    2 
 drivers/gpu/drm/i915/selftests/i915_selftest.c                            |   54 ++
 drivers/gpu/drm/mediatek/mtk_dpi.c                                        |   23 -
 drivers/gpu/drm/msm/adreno/a6xx_gmu.c                                     |   72 +--
 drivers/gpu/drm/nouveau/nouveau_bo.c                                      |    3 
 drivers/gpu/drm/nouveau/nouveau_gem.c                                     |    3 
 drivers/gpu/drm/sti/Makefile                                              |    2 
 drivers/gpu/drm/tests/drm_client_modeset_test.c                           |    3 
 drivers/gpu/drm/tests/drm_cmdline_parser_test.c                           |   10 
 drivers/gpu/drm/tests/drm_kunit_helpers.c                                 |  213 +++++++++
 drivers/gpu/drm/tests/drm_modes_test.c                                    |   22 +
 drivers/gpu/drm/tests/drm_probe_helper_test.c                             |    8 
 drivers/gpu/drm/tiny/repaper.c                                            |    4 
 drivers/hid/Kconfig                                                       |   14 
 drivers/hid/Makefile                                                      |    1 
 drivers/hid/hid-ids.h                                                     |   31 +
 drivers/hid/hid-universal-pidff.c                                         |  197 +++++++++
 drivers/hid/usbhid/hid-pidff.c                                            |  173 +++++--
 drivers/hsi/clients/ssi_protocol.c                                        |    1 
 drivers/i2c/busses/i2c-cros-ec-tunnel.c                                   |    3 
 drivers/i2c/i2c-atr.c                                                     |    2 
 drivers/i3c/master.c                                                      |    3 
 drivers/i3c/master/svc-i3c-master.c                                       |    2 
 drivers/infiniband/core/cma.c                                             |    4 
 drivers/infiniband/core/umem_odp.c                                        |    6 
 drivers/infiniband/hw/hns/hns_roce_main.c                                 |    2 
 drivers/infiniband/hw/usnic/usnic_ib_main.c                               |   14 
 drivers/iommu/iommufd/device.c                                            |   18 
 drivers/iommu/mtk_iommu.c                                                 |   26 -
 drivers/leds/rgb/leds-qcom-lpg.c                                          |    8 
 drivers/mailbox/tegra-hsp.c                                               |   72 ++-
 drivers/md/dm-ebs-target.c                                                |    7 
 drivers/md/dm-integrity.c                                                 |    3 
 drivers/md/dm-verity-target.c                                             |    8 
 drivers/md/md-bitmap.c                                                    |    5 
 drivers/md/md.c                                                           |   22 -
 drivers/md/raid10.c                                                       |    1 
 drivers/media/common/siano/smsdvb-main.c                                  |    2 
 drivers/media/i2c/adv748x/adv748x.h                                       |    2 
 drivers/media/i2c/ccs/ccs-core.c                                          |    6 
 drivers/media/i2c/imx219.c                                                |   13 
 drivers/media/i2c/ov7251.c                                                |    4 
 drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c         |    5 
 drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c |    3 
 drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c        |    6 
 drivers/media/platform/qcom/venus/hfi_parser.c                            |  100 +++-
 drivers/media/platform/qcom/venus/hfi_venus.c                             |   18 
 drivers/media/platform/st/stm32/dma2d/dma2d.c                             |    3 
 drivers/media/rc/streamzap.c                                              |   68 +--
 drivers/media/test-drivers/vim2m.c                                        |    6 
 drivers/media/test-drivers/visl/visl-core.c                               |   12 
 drivers/media/usb/uvc/uvc_driver.c                                        |    9 
 drivers/media/v4l2-core/v4l2-dv-timings.c                                 |    4 
 drivers/mfd/ene-kb3930.c                                                  |    2 
 drivers/misc/pci_endpoint_test.c                                          |    6 
 drivers/mmc/host/dw_mmc.c                                                 |   94 ++++
 drivers/mmc/host/dw_mmc.h                                                 |   27 +
 drivers/mtd/inftlcore.c                                                   |    9 
 drivers/mtd/mtdpstore.c                                                   |   12 
 drivers/mtd/nand/raw/brcmnand/brcmnand.c                                  |    2 
 drivers/mtd/nand/raw/r852.c                                               |    3 
 drivers/net/dsa/b53/b53_common.c                                          |   10 
 drivers/net/dsa/mv88e6xxx/chip.c                                          |   30 +
 drivers/net/dsa/mv88e6xxx/devlink.c                                       |    3 
 drivers/net/ethernet/amd/pds_core/debugfs.c                               |    5 
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c                        |    1 
 drivers/net/ethernet/google/gve/gve_ethtool.c                             |    4 
 drivers/net/ethernet/intel/igc/igc.h                                      |    1 
 drivers/net/ethernet/intel/igc/igc_defines.h                              |    6 
 drivers/net/ethernet/intel/igc/igc_main.c                                 |    1 
 drivers/net/ethernet/intel/igc/igc_ptp.c                                  |  113 +++--
 drivers/net/ethernet/marvell/octeontx2/nic/qos.c                          |    5 
 drivers/net/ethernet/mediatek/mtk_eth_soc.c                               |   10 
 drivers/net/ethernet/ti/am65-cpsw-nuss.c                                  |   19 
 drivers/net/ethernet/ti/am65-cpsw-nuss.h                                  |    2 
 drivers/net/ethernet/ti/icssg/icss_iep.c                                  |  154 ++++---
 drivers/net/ethernet/wangxun/libwx/wx_lib.c                               |    3 
 drivers/net/ethernet/wangxun/ngbe/ngbe_main.c                             |    3 
 drivers/net/phy/sfp.c                                                     |    2 
 drivers/net/ppp/ppp_synctty.c                                             |    5 
 drivers/net/usb/asix_devices.c                                            |   17 
 drivers/net/usb/cdc_ether.c                                               |    7 
 drivers/net/usb/r8152.c                                                   |    6 
 drivers/net/usb/r8153_ecm.c                                               |    6 
 drivers/net/wireless/ath/ath12k/dp_mon.c                                  |    2 
 drivers/net/wireless/ath/ath12k/dp_rx.c                                   |   42 +
 drivers/net/wireless/atmel/at76c50x-usb.c                                 |    2 
 drivers/net/wireless/mediatek/mt76/eeprom.c                               |    4 
 drivers/net/wireless/mediatek/mt76/mt76x2/usb.c                           |    1 
 drivers/net/wireless/realtek/rtw89/core.c                                 |    2 
 drivers/net/wireless/realtek/rtw89/core.h                                 |    6 
 drivers/net/wireless/realtek/rtw89/pci.c                                  |   10 
 drivers/net/wireless/ti/wl1251/tx.c                                       |    4 
 drivers/ntb/ntb_transport.c                                               |    2 
 drivers/nvme/host/rdma.c                                                  |    8 
 drivers/nvme/target/fc.c                                                  |   14 
 drivers/nvme/target/fcloop.c                                              |    2 
 drivers/of/irq.c                                                          |   80 ++-
 drivers/pci/controller/pcie-brcmstb.c                                     |   13 
 drivers/pci/controller/vmd.c                                              |   12 
 drivers/pci/pci.c                                                         |    4 
 drivers/pci/probe.c                                                       |    5 
 drivers/perf/arm_pmu.c                                                    |    8 
 drivers/phy/freescale/phy-fsl-imx8m-pcie.c                                |   11 
 drivers/pinctrl/qcom/pinctrl-msm.c                                        |   12 
 drivers/platform/x86/asus-laptop.c                                        |    9 
 drivers/ptp/ptp_ocp.c                                                     |    1 
 drivers/pwm/pwm-fsl-ftm.c                                                 |    6 
 drivers/pwm/pwm-mediatek.c                                                |    8 
 drivers/pwm/pwm-rcar.c                                                    |   24 -
 drivers/scsi/hisi_sas/hisi_sas_v2_hw.c                                    |    9 
 drivers/scsi/hisi_sas/hisi_sas_v3_hw.c                                    |   14 
 drivers/scsi/megaraid/megaraid_sas_base.c                                 |    9 
 drivers/scsi/megaraid/megaraid_sas_fusion.c                               |    5 
 drivers/scsi/scsi_transport_iscsi.c                                       |    7 
 drivers/scsi/st.c                                                         |    2 
 drivers/soc/samsung/exynos-chipid.c                                       |    2 
 drivers/spi/spi-cadence-quadspi.c                                         |    6 
 drivers/target/target_core_spc.c                                          |    2 
 drivers/thermal/rockchip_thermal.c                                        |    1 
 drivers/ufs/host/ufs-exynos.c                                             |    6 
 drivers/usb/typec/ucsi/ucsi_ccg.c                                         |    5 
 drivers/vdpa/mlx5/core/mr.c                                               |    7 
 drivers/video/backlight/led_bl.c                                          |    5 
 drivers/video/fbdev/omap2/omapfb/dss/dispc.c                              |    6 
 drivers/xen/balloon.c                                                     |   34 +
 drivers/xen/xenfs/xensyms.c                                               |    4 
 fs/Kconfig                                                                |    1 
 fs/btrfs/disk-io.c                                                        |   12 
 fs/btrfs/inode.c                                                          |    6 
 fs/btrfs/super.c                                                          |    3 
 fs/btrfs/zoned.c                                                          |    6 
 fs/ext4/inode.c                                                           |   68 ++-
 fs/ext4/namei.c                                                           |    2 
 fs/ext4/super.c                                                           |   17 
 fs/ext4/xattr.c                                                           |   11 
 fs/f2fs/checkpoint.c                                                      |   21 
 fs/f2fs/f2fs.h                                                            |   32 +
 fs/f2fs/inode.c                                                           |    8 
 fs/f2fs/node.c                                                            |  110 +----
 fs/f2fs/super.c                                                           |    4 
 fs/file.c                                                                 |   26 -
 fs/fuse/virtio_fs.c                                                       |    3 
 fs/hfs/bnode.c                                                            |    6 
 fs/hfsplus/bnode.c                                                        |    6 
 fs/isofs/export.c                                                         |    2 
 fs/jbd2/journal.c                                                         |    1 
 fs/jfs/jfs_dmap.c                                                         |   10 
 fs/jfs/jfs_imap.c                                                         |    4 
 fs/namespace.c                                                            |    3 
 fs/nfs/Kconfig                                                            |    2 
 fs/nfs/internal.h                                                         |    7 
 fs/nfs/nfs4session.h                                                      |    4 
 fs/nfsd/Kconfig                                                           |    1 
 fs/nfsd/nfs4state.c                                                       |    2 
 fs/nfsd/nfsfh.h                                                           |    7 
 fs/overlayfs/overlayfs.h                                                  |    2 
 fs/overlayfs/super.c                                                      |    5 
 fs/smb/client/cifsproto.h                                                 |    2 
 fs/smb/client/connect.c                                                   |   36 -
 fs/smb/client/file.c                                                      |   28 +
 fs/smb/client/fs_context.c                                                |    5 
 fs/smb/client/inode.c                                                     |   10 
 fs/smb/client/reparse.c                                                   |    4 
 fs/smb/client/smb2misc.c                                                  |    9 
 fs/smb/server/oplock.c                                                    |   29 -
 fs/smb/server/oplock.h                                                    |    1 
 fs/smb/server/smb2pdu.c                                                   |    4 
 fs/smb/server/transport_ipc.c                                             |    7 
 fs/smb/server/vfs.c                                                       |    3 
 fs/udf/inode.c                                                            |    1 
 fs/userfaultfd.c                                                          |   51 +-
 include/drm/drm_kunit_helpers.h                                           |   28 +
 include/linux/backing-dev.h                                               |    1 
 include/linux/hid.h                                                       |    9 
 include/linux/nfs.h                                                       |    7 
 include/linux/pgtable.h                                                   |   14 
 include/linux/rtnetlink.h                                                 |   22 +
 include/linux/tpm.h                                                       |    1 
 include/net/sctp/structs.h                                                |    3 
 include/net/xdp.h                                                         |    9 
 include/uapi/linux/kfd_ioctl.h                                            |    2 
 include/uapi/linux/landlock.h                                             |    2 
 include/xen/interface/xen-mca.h                                           |    2 
 io_uring/kbuf.c                                                           |    2 
 io_uring/net.c                                                            |    2 
 kernel/locking/lockdep.c                                                  |    3 
 kernel/sched/cpufreq_schedutil.c                                          |   18 
 kernel/trace/ftrace.c                                                     |    8 
 kernel/trace/trace_events.c                                               |    4 
 kernel/trace/trace_events_filter.c                                        |    4 
 kernel/trace/trace_events_synth.c                                         |    1 
 kernel/trace/trace_probe.c                                                |   28 +
 lib/sg_split.c                                                            |    2 
 lib/string.c                                                              |   13 
 lib/zstd/common/portability_macros.h                                      |    2 
 mm/filemap.c                                                              |    1 
 mm/gup.c                                                                  |    4 
 mm/hugetlb.c                                                              |    2 
 mm/memory-failure.c                                                       |   11 
 mm/memory.c                                                               |    4 
 mm/mremap.c                                                               |   10 
 mm/page_vma_mapped.c                                                      |   13 
 mm/rmap.c                                                                 |    2 
 mm/vmscan.c                                                               |    2 
 net/8021q/vlan_dev.c                                                      |   31 -
 net/bluetooth/hci_event.c                                                 |    5 
 net/bluetooth/l2cap_core.c                                                |   21 
 net/bridge/br_vlan.c                                                      |    4 
 net/core/filter.c                                                         |   80 ++-
 net/core/page_pool.c                                                      |    8 
 net/dsa/dsa.c                                                             |   59 ++
 net/dsa/tag_8021q.c                                                       |    2 
 net/ethtool/netlink.c                                                     |    8 
 net/ipv6/route.c                                                          |    8 
 net/mac80211/iface.c                                                      |    3 
 net/mac80211/mesh_hwmp.c                                                  |   14 
 net/mctp/af_mctp.c                                                        |    3 
 net/mptcp/sockopt.c                                                       |   28 +
 net/mptcp/subflow.c                                                       |   19 
 net/netfilter/nft_set_pipapo_avx2.c                                       |    3 
 net/openvswitch/flow_netlink.c                                            |    3 
 net/sched/cls_api.c                                                       |   74 ++-
 net/sched/sch_codel.c                                                     |    5 
 net/sched/sch_fq_codel.c                                                  |    6 
 net/sched/sch_sfq.c                                                       |   66 ++-
 net/sctp/socket.c                                                         |   22 -
 net/sctp/transport.c                                                      |    2 
 net/tipc/link.c                                                           |    1 
 net/tls/tls_main.c                                                        |    6 
 scripts/sign-file.c                                                       |  132 +++---
 scripts/ssl-common.h                                                      |   32 +
 security/landlock/errata.h                                                |   87 +++
 security/landlock/setup.c                                                 |   30 +
 security/landlock/setup.h                                                 |    3 
 security/landlock/syscalls.c                                              |   22 -
 sound/pci/hda/hda_intel.c                                                 |   44 +-
 sound/pci/hda/patch_realtek.c                                             |    1 
 sound/soc/amd/yc/acp6x-mach.c                                             |   14 
 sound/soc/codecs/cs42l43-jack.c                                           |    3 
 sound/soc/codecs/lpass-wsa-macro.c                                        |  117 +++--
 sound/soc/dwc/dwc-i2s.c                                                   |   13 
 sound/soc/fsl/fsl_audmix.c                                                |   16 
 sound/soc/intel/avs/pcm.c                                                 |    3 
 sound/soc/qcom/lpass.h                                                    |    3 
 sound/soc/qcom/qdsp6/q6apm-dai.c                                          |    9 
 sound/soc/qcom/qdsp6/q6apm.c                                              |   18 
 sound/soc/qcom/qdsp6/q6apm.h                                              |    3 
 sound/soc/qcom/qdsp6/q6asm-dai.c                                          |   19 
 sound/soc/sof/topology.c                                                  |    4 
 sound/usb/midi.c                                                          |   80 +++
 tools/objtool/check.c                                                     |    5 
 tools/power/cpupower/bench/parse.c                                        |    4 
 tools/testing/ktest/ktest.pl                                              |    8 
 tools/testing/kunit/qemu_configs/sh.py                                    |    4 
 tools/testing/radix-tree/linux.c                                          |    4 
 tools/testing/selftests/futex/functional/futex_wait_wouldblock.c          |    2 
 tools/testing/selftests/landlock/base_test.c                              |   46 ++
 tools/testing/selftests/mm/charge_reserved_hugetlb.sh                     |    4 
 tools/testing/selftests/mm/hugetlb_reparenting_test.sh                    |    2 
 tools/testing/selftests/net/mptcp/diag.sh                                 |   23 -
 tools/testing/selftests/net/mptcp/mptcp_connect.c                         |   11 
 tools/testing/selftests/net/mptcp/mptcp_connect.sh                        |   19 
 tools/testing/selftests/net/mptcp/mptcp_join.sh                           |   20 
 tools/testing/selftests/net/mptcp/mptcp_lib.sh                            |   18 
 tools/testing/selftests/net/mptcp/simult_flows.sh                         |   19 
 376 files changed, 4203 insertions(+), 1859 deletions(-)

Abdun Nihaal (5):
wifi: at76c50x: fix use after free access in at76_disconnect
wifi: wl1251: fix memory leak in wl1251_tx_work
pds_core: fix memory leak in pdsc_debugfs_add_qcq()
net: ngbe: fix memory leak in ngbe_probe() error path
cxgb4: fix memory leak in cxgb4_init_ethtool_filters() error path

Abel Vesa (2):
leds: rgb: leds-qcom-lpg: Fix pwm resolution max for Hi-Res PWMs
leds: rgb: leds-qcom-lpg: Fix calculation of best period Hi-Res PWMs

Abhinav Kumar (1):
drm: allow encoder mode_set even when connectors change for crtc

Ajit Pandey (1):
clk: qcom: clk-branch: Fix invert halt status bit check for votable clocks

Akhil P Oommen (1):
drm/msm/a6xx: Fix stale rpmh votes from GPU

Alain Volmat (1):
dt-bindings: media: st,stmipid02: correct lane-polarities maxItems

Alex Williamson (1):
Revert "PCI: Avoid reset when disabled via sysfs"

Alexander Sverdlin (1):

      net: ethernet: ti: am65-cpsw-nuss: rename phy_node -> port_np

Alexandra Diupina (1):
cifs: avoid NULL pointer dereference in dbg call

Alexandre Torgue (1):
clocksource/drivers/stm32-lptimer: Use wakeup capable instead of init wakeup

Alexey Klimov (1):
ASoC: qdsp6: q6asm-dai: fix q6asm_dai_compr_set_params error path

Andreas Gruenbacher (1):
writeback: fix false warning in inode_to_wb()

Andrew Wyatt (5):
drm: panel-orientation-quirks: Add support for AYANEO 2S
drm: panel-orientation-quirks: Add quirks for AYA NEO Flip DS and KB
drm: panel-orientation-quirks: Add quirk for AYA NEO Slide
drm: panel-orientation-quirks: Add new quirk for GPD Win 2
drm: panel-orientation-quirks: Add quirk for OneXPlayer Mini (Intel)

Andy Shevchenko (1):
i2c: atr: Fix wrong include

AngeloGioacchino Del Regno (2):
drm/mediatek: mtk_dpi: Move the input_2p_en bit to platform data drm/mediatek: mtk_dpi: Explicitly manage TVD clock in power on/off

Ard Biesheuvel (1):
x86/boot/sev: Avoid shared GHCB page for early memory acceptance

Arnaud Lecomte (1):
net: ppp: Add bound checking for skb data on ppp_sync_txmung

Arnd Bergmann (2):
media: mtk-vcodec: venc: avoid -Wenum-compare-conditional warning
media: mediatek: vcodec: mark vdec_vp9_slice_map_counts_eob_coef noinline

Arseniy Krasnov (2):
Bluetooth: hci_uart: fix race during initialization
Bluetooth: hci_uart: Fix another race during initialization

Artem Sadovnikov (1):
ext4: fix off-by-one error in do_split

Ayush Jain (1):
ktest: Fix Test Failures Due to Missing LOG_FILE Directories

Badal Nilawar (1):
drm/i915: Disable RPG during live selftest

Baoquan He (1):
mm/gup: fix wrongly calculated returned value in fault_in_safe_writeable()

Bhupesh (1):
ext4: ignore xattrs past end

Birger Koblitz (1):
net: sfp: add quirk for 2.5G OEM BX SFP

Björn Töpel (1):
riscv: Properly export reserved regions in /proc/iomem

Bo-Cun Chen (2):
net: ethernet: mtk_eth_soc: correct the max weight of the queue limit for 100Mbps
net: ethernet: mtk_eth_soc: revise QDMA packet scheduler settings

Boqun Feng (1):
locking/lockdep: Decrease nr_unused_locks if lock unused in zap_class()

Boris Burkov (1):
btrfs: fix qgroup reserve leaks in cow_file_range

Borislav Petkov (AMD) (1):
x86/microcode/AMD: Extend the SHA check to Zen5, block loading of any unreleased standalone Zen5 microcode patches

Brady Norander (1):
ASoC: dwc: always enable/disable i2s irqs

Brendan Tam (1):
drm/amd/display: add workaround flag to link to force FFE preset

Bryan O'Donoghue (2):
clk: qcom: gdsc: Release pm subdomains in reverse add order
clk: qcom: gdsc: Capture pm_genpd_add_subdomain result code

Chandrakanth Patil (1):
scsi: megaraid_sas: Block zero-length ATA VPD inquiry

Chao Yu (3):
f2fs: don't retry IO for corrupted data scenario
f2fs: fix to avoid out-of-bounds access in f2fs_truncate_inode_blocks() Revert "f2fs: rebuild nat_bits during umount"

Chaohai Chen (1):
scsi: target: spc: Fix RSOC parameter data header size

Charles Keepax (1):
ASoC: cs42l43: Reset clamp override on jack removal

Chen-Yu Tsai (1):
arm64: dts: mediatek: mt8173: Fix disp-pwm compatible string

Chengchang Tang (1):
RDMA/hns: Fix wrong maximum DMA segment size

Chenyuan Yang (3):
net: libwx: handle page_pool_dev_alloc_pages error
soc: samsung: exynos-chipid: Add NULL pointer check in exynos_chipid_probe()
mfd: ene-kb3930: Fix a potential NULL pointer dereference

Chris Bainbridge (1):
drm/nouveau: prime: fix ttm_bo_delayed_delete oops

Christian König (1):
drm/amdgpu: grab an additional reference on the gang fence v2

Christopher S M Hall (6):
igc: fix PTM cycle trigger logic
igc: increase wait time before retrying PTM
igc: move ktime snapshot into PTM retry loop
igc: handle the IGC_PTP_ENABLED flag correctly
igc: cleanup PTP module if probe fails
igc: add lock preventing multiple simultaneous PTM transactions

Chunguang.xu (1):
nvme-rdma: unquiesce admin_q before destroy it

Chunjie Zhu (1):
smb3 client: fix open hardlink on deferred close file error

Cong Liu (1):
selftests: mptcp: fix incorrect fd checks in main_loop

Cong Wang (1):

      codel: remove sch->q.qlen check before qdisc_tree_reduce_backlog()

Dan Carpenter (2):
Bluetooth: btrtl: Prevent potential NULL dereference
usb: typec: fix potential array underflow in ucsi_ccg_sync_control()

Daniel Kral (1):
ahci: add PCI ID for Marvell 88SE9215 SATA Controller

Daniel Wagner (1):
nvmet-fcloop: swap list_add_tail arguments

Daniele Ceraolo Spurio (1):
drm/i915/dg2: wait for HuC load completion before running selftests

Dapeng Mi (1):
perf/x86/intel: Allow to update user space GPRs from PEBS records

David Hildenbrand (1):
mm/rmap: reject hugetlb folios in folio_make_device_exclusive()

David Yat Sin (1):
drm/amdkfd: clamp queue size to minimum

Denis Arefev (8):
asus-laptop: Fix an uninitialized variable
ksmbd: Prevent integer overflow in calculation of deadtime drm/amd/pm: Prevent division by zero drm/amd/pm/powerplay: Prevent division by zero drm/amd/pm/smu11: Prevent division by zero drm/amd/pm/powerplay/hwmgr/smu7_thermal: Prevent division by zero drm/amd/pm/swsmu/smu13/smu_v13_0: Prevent division by zero drm/amd/pm/powerplay/hwmgr/vega20_thermal: Prevent division by zero

Dmitry Baryshkov (1):
Bluetooth: qca: simplify WCN399x NVM loading

Douglas Anderson (6):
arm64: cputype: Add QCOM_CPU_PART_KRYO_3XX_GOLD
arm64: cputype: Add MIDR_CORTEX_A76AE
arm64: errata: Add QCOM_KRYO_4XX_GOLD to the spectre_bhb_k24_list
arm64: errata: Assume that unknown CPUs _are_ vulnerable to Spectre BHB
arm64: errata: Add KRYO 2XX/3XX/4XX silver cores to Spectre BHB safe list
arm64: errata: Add newer ARM cores to the spectre_bhb_loop_affected() lists

Edward Adam Davis (3):
jfs: Prevent copying of nlink with value 0 from disk inode
jfs: add sanity check for agwidth in dbMount
isofs: Prevent the use of too small fid

Edward Liaw (1):
selftests/futex: futex_waitv wouldblock test should fail

Eric Biggers (1):
nfs: add missing selections of CONFIG_CRC32

Evgeny Pimenov (1):
ASoC: qcom: Fix sc7280 lpass potential buffer overflow

Fedor Pchelkin (1):
ntb: use 64-bit arithmetic for the MSI doorbell mask

Filipe Manana (1):
btrfs: fix non-empty delayed iputs list on unmount due to compressed write workers

Florian Westphal (1):
nft_set_pipapo: fix incorrect avx2 match of 5th field octet

Frédéric Danis (2):
Bluetooth: l2cap: Check encryption key size on incoming connection
Bluetooth: l2cap: Process valid commands in too long frame

GONG Ruiqi (1):
usb: typec: fix pm usage counter imbalance in ucsi_ccg_sync_control()

Gabriele Paoloni (1):
tracing: fix return value in __ftrace_event_enable_disable for TRACE_REG_UNREGISTER

Gang Yan (1):
mptcp: fix NULL pointer in can_accept_new_subflow

Gavrilov Ilia (1):
wifi: mac80211: fix integer overflow in hwmp_route_info_get()

Geliang Tang (2):
selftests: mptcp: close fd_in before returning in main_loop
selftests: mptcp: add mptcp_lib_wait_local_port_listen

Giuseppe Scrivano (1):
ovl: remove unused forward declaration

Greg Kroah-Hartman (1):

      Linux 6.6.88

Guixin Liu (1):
gpio: tegra186: fix resource handling in ACPI probe path

Haisu Wang (1):
btrfs: fix the length of reserved qgroup to free

Hamza Mahfooz (1):
efi/libstub: Bump up EFI_MMAP_NR_SLACK_SLOTS to 32

Haoxiang Li (1):
wifi: mt76: Add check for devm_kstrdup()

Hariprasad Kelam (1):
octeontx2-pf: qos: fix VF root node parent queue index

Harish Chegondi (1):
drm/i915/xelpg: Extend driver code of Xe_LPG to Xe_LPG+

Henry Martin (2):
ata: pata_pxa: Fix potential NULL pointer dereference in pxa_ata_probe()
ASoC: Intel: avs: Fix null-ptr-deref in avs_component_probe()

Herbert Xu (1):
crypto: caam/qi - Fix drv_ctx refcount bug

Hersen Wu (1):
drm/amd/display: Stop amdgpu_dm initialize when link nums greater than max_links

Herve Codina (1):
backlight: led_bl: Hold led_access lock when calling led_sysfs_disable()

Icenowy Zheng (1):
wifi: mt76: mt76x2u: add TP-Link TL-WDN6200 ID to device table

Ido Schimmel (1):
ipv6: Align behavior across nexthops during path selection

Ilya Maximets (1):
net: openvswitch: fix nested key length validation in the set() action

Ingo Molnar (1):
zstd: Increase DYNAMIC_BMI2 GCC version cutoff from 4.8 to 11.0 to work around compiler segfault

Jakub Kicinski (3):
net: tls: explicitly disallow disconnect
netlink: specs: rt-link: add an attr layer around alt-ifname
netlink: specs: rt-link: adjust mctp attribute naming

Jamal Hadi Salim (1):
rtnl: add helper to check if rtnl group has listeners

Jan Beulich (1):
xenfs/xensyms: respect hypervisor's "next" indication

Jan Kara (2):
udf: Fix inode_getblk() return value
jbd2: remove wrong sb->s_sequence check

Jan Stancek (3):
sign-file,extract-cert: move common SSL helper functions to a header sign-file,extract-cert: avoid using deprecated ERR_get_error_line() sign-file,extract-cert: use pkcs11 provider for OPENSSL MAJOR >= 3

Jane Chu (1):
mm: make page_mapped_in_vma() hugetlb walk aware

Jani Nikula (2):
drm/i915/mocs: use to_gt() instead of direct &i915->gt drm/i915/gvt: fix unterminated-string-initialization warning

Jann Horn (1):
ext4: don't treat fhandle lookup of ea_inode as FS corruption

Janusz Krzysztofik (1):
drm/i915/huc: Fix fence not released on early probe errors

Jason Xing (1):
page_pool: avoid infinite loop to schedule delayed worker

Jeff Hugo (1):
bus: mhi: host: Fix race between unprepare and queue_buf

Jens Axboe (1):
io_uring/kbuf: reject zero sized provided buffers

Jiasheng Jiang (4):
media: mediatek: vcodec: Fix a resource leak related to the scp device in FW initialization
media: platform: stm32: Add check for clk_enable()
mtd: Add check for devm_kcalloc()
mtd: Replace kcalloc() with devm_kcalloc()

Jinjie Ruan (1):
drm/tests: helpers: Add helper for drm_display_mode_from_cea_vic()

Johannes Berg (1):
Revert "wifi: mac80211: Update skb's control block key in ieee80211_tx_dequeue()"

Johannes Kimmel (1):
btrfs: correctly escape subvol in btrfs_show_options()

Johannes Thumshirn (2):
btrfs: zoned: fix zone activation with missing devices
btrfs: zoned: fix zone finishing with missing devices

Jonas Gorski (2):
net: b53: enable BPDU reception for management port
net: bridge: switchdev: do not notify new brentries as changed

Jonathan McDowell (2):
tpm, tpm_tis: Workaround failed command reception on Infineon devices tpm, tpm_tis: Fix timeout handling when waiting for TPM status

Josh Poimboeuf (2):
objtool: Fix INSN_CONTEXT_SWITCH handling in validate_unret()
pwm: mediatek: Prevent divide-by-zero in pwm_mediatek_config()

Joshua Washington (1):
gve: handle overflow when reporting TX consumed descriptors

Kai Mäkisara (1):
scsi: st: Fix array overflow in st_setup()

Kaixin Wang (1):
HSI: ssi_protocol: Fix use after free vulnerability in ssi_protocol Driver Due to Race Condition

Kamal Dasu (1):
mtd: rawnand: brcmnand: fix PM resume warning

Kan Liang (3):
perf/x86/intel/uncore: Fix the scale of IIO free running counters on SNR perf/x86/intel/uncore: Fix the scale of IIO free running counters on ICX perf/x86/intel/uncore: Fix the scale of IIO free running counters on SPR

Karina Yankevich (1):
media: v4l2-dv-timings: prevent possible overflow in v4l2_detect_gtf()

Karolina Stolarek (1):
drm/tests: Build KMS helpers when DRM_KUNIT_TEST_HELPERS is enabled

Kartik Rajput (1):
mailbox: tegra-hsp: Define dimensioning masks in SoC data

Kaustabh Chakraborty (1):
mmc: dw_mmc: add a quirk for accessing 64-bit FIFOs in two halves

Kees Cook (2):
xen/mcelog: Add __nonstring annotations for unterminated strings
Bluetooth: vhci: Avoid needless snprintf() calls

Kirill A. Shutemov (2):
x86/paravirt: Move halt paravirt calls under CONFIG_PARAVIRT
mm: fix apply_to_existing_page_range()

Krzysztof Kozlowski (3):
dt-bindings: coresight: qcom,coresight-tpda: Fix too many 'reg'
dt-bindings: coresight: qcom,coresight-tpdm: Fix too many 'reg'
gpio: zynq: Fix wakeup source leaks on device unbind

Kunihiko Hayashi (3):
misc: pci_endpoint_test: Avoid issue of interrupts remaining after request_irq error
misc: pci_endpoint_test: Fix displaying 'irq_type' after 'request_irq' error
misc: pci_endpoint_test: Fix 'irq_type' to convey the correct type

Kuniyuki Iwashima (2):
Revert "smb: client: Fix netns refcount imbalance causing leaks and use-after-free" Revert "smb: client: fix TCP timers deadlock after rmmod"

Leonid Arapov (1):
fbdev: omapfb: Add 'plane' value check

Li Lingfeng (1):
nfsd: decrease sc_count directly if fail to queue dl_recall

Lorenzo Stoakes (1):
mm/mremap: correctly handle partial mremap() of VMA starting at 0

Louis-Alexis Eyraud (1):
iommu/mediatek: Fix NULL pointer deference in mtk_iommu_device_group

Luca Ceresoli (1):
drm/bridge: panel: forbid initializing a panel with unknown connector type

Lucas De Marchi (1):
drivers: base: devres: Allow to release group on device release

Luiz Augusto von Dentz (1):
Bluetooth: hci_event: Fix sending MGMT_EV_DEVICE_FOUND for invalid address

Ma Ke (1):
PCI: Fix reference leak in pci_alloc_child_bus()

Maksim Davydov (1):
x86/split_lock: Fix the delayed detection logic

Manish Dharanenthiran (1):
wifi: ath12k: Fix invalid data access in ath12k_dp_rx_h_undecap_nwifi

Manjunatha Venkatesh (1):
i3c: Add NULL pointer check in i3c_master_queue_ibi()

Marc Herbert (1):
mm/hugetlb: move hugetlb_sysctl_init() to the __init section

Marek Behún (1):
net: dsa: mv88e6xxx: workaround RGMII transmit delay erratum for 6320 family

Mario Limonciello (1):
drm/amd: Handle being compiled without SI or CIK support better

Mark Brown (1):
selftests/mm: generate a temporary mountpoint for cgroup filesystem

Mark Rutland (1):
perf: arm_pmu: Don't disable counter in armpmu_add()

Masami Hiramatsu (Google) (1):
tracing: probe-events: Add comments about entry data storing code

Mateusz Guzik (1):
fs: consistently deref the files table with rcu_dereference_raw()

Mathieu Desnoyers (1):
mm: add missing release barrier on PGDAT_RECLAIM_LOCKED unlock

Matt Johnston (1):
net: mctp: Set SOCK_RCU_FREE

Matthew Auld (1):
drm/amdgpu/dma_buf: fix page_link check

Matthew Majewski (1):
media: vim2m: print device name after registering device

Matthew Wilcox (Oracle) (2):
x86/mm: Clear _PAGE_DIRTY for kernel mappings when we clear _PAGE_RW test suite: use %zu to print size_t

Matthieu Baerts (NGI0) (3):
mptcp: sockopt: fix getting IPV6_V6ONLY
mptcp: only inc MPJoinAckHMacFailure for HMAC failures
mptcp: sockopt: fix getting freebind & transparent

Max Grobecker (1):
x86/cpu: Don't clear X86_FEATURE_LAHF_LM flag in init_amd_k8() on AMD when running in a virtual machine

Max Schulze (1):
net: usb: asix_devices: add FiberGecko DeviceID

Maxim Mikityanskiy (2):
ALSA: hda: intel: Fix Optimus when GPU has no sound
ALSA: hda: intel: Add Lenovo IdeaPad Z570 to probe denylist

Maxime Chevallier (1):
net: ethtool: Don't call .cleanup_data when prepare_data fails

Maxime Ripard (8):
drm/tests: modeset: Fix drm_display_mode memory leak drm/tests: helpers: Add atomic helpers
drm/tests: Add helper to create mock plane
drm/tests: Add helper to create mock crtc
drm/tests: helpers: Create kunit helper to destroy a drm_display_mode drm/tests: cmdline: Fix drm_display_mode memory leak drm/tests: modes: Fix drm_display_mode memory leak drm/tests: probe-helper: Fix drm_display_mode memory leak

Meghana Malladi (3):
net: ti: icss-iep: Add pwidth configuration for perout signal
net: ti: icss-iep: Add phase offset configuration for perout signal
net: ti: icss-iep: Fix possible NULL pointer dereference for perout request

Menglong Dong (1):
ftrace: fix incorrect hash size in register_ftrace_direct()

Miaoqian Lin (1):
scsi: iscsi: Fix missing scsi_host_put() in error path

Michael Walle (1):
net: ethernet: ti: am65-cpsw: fix port_np reference counting

Mickaël Salaün (1):
landlock: Add the errata interface

Miklos Szeredi (1):
ovl: don't allow datadir only

Mikulas Patocka (3):
dm-ebs: fix prefetch-vs-suspend race
dm-integrity: set ti->error on memory allocation failure
dm-verity: fix prefetch-vs-suspend race

Miquel Raynal (1):
spi: cadence-qspi: Fix probe on AM62A LP SK

Murad Masimov (1):
media: streamzap: prevent processing IR data on URB failure

Myrrh Periwinkle (1):
x86/e820: Fix handling of subpage regions when calculating nosave ranges in e820__register_nosave_regions()

Namjae Jeon (2):
ksmbd: fix use-after-free in smb_break_all_levII_oplock()
ksmbd: fix the warning from __kernel_write_iter

Nathan Chancellor (3):
ACPI: platform-profile: Fix CFI violation when accessing sysfs files
riscv: Avoid fortify warning in syscall_get_arguments()
kbuild: Add '-fno-builtin-wcslen'

Nathan Lynch (1):
powerpc/rtas: Prevent Spectre v1 gadget construction in sys_rtas()

Nicolas Dufresne (1):
media: visl: Fix ERANGE error when setting enum controls

Nicolin Chen (1):
iommufd: Fix uninitialized rc in iommufd_access_rw()

Nikita Zhandarovich (1):
drm/repaper: fix integer overflows in repeat functions

Niklas Cassel (2):
ata: libata-eh: Do not use ATAPI DMA for a device limited to PIO mode
ata: libata-sata: Save all fields from sense data descriptor

Niklas Söderlund (1):
media: i2c: adv748x: Fix test pattern selection mask

Octavian Purdila (2):
net_sched: sch_sfq: use a temporary work area for validating configuration
net_sched: sch_sfq: move the limit validation

Ojaswin Mujoo (1):
ext4: protect ext4_release_dquot against freezing

P Praneesh (1):
wifi: ath12k: Fix invalid entry fetch in ath12k_dp_mon_srng_process

Pali Rohár (1):
cifs: Ensure that all non-client-specific reparse points are processed by the server

Pavel Begunkov (1):
io_uring/net: fix accept multishot handling

Pedro Tammela (1):
net/sched: cls_api: conditional notification of events

Peter Collingbourne (1):
string: Add load_unaligned_zeropad() code path to sized_strscpy()

Peter Griffin (1):
scsi: ufs: exynos: Ensure consistent phy reference counts

Peter Xu (1):
mm/userfaultfd: fix release hang over concurrent GUP

Philip Yang (3):
drm/amdkfd: Fix mode1 reset crash issue drm/amdkfd: Fix pqm_destroy_queue race with GPU reset drm/amdkfd: debugfs hang_hws skip GPU with MES

Philipp Hahn (1):
cdc_ether|r8152: ThinkPad Hybrid USB-C/A Dock quirk

Ping-Ke Shih (2):
wifi: rtw89: pci: add pre_deinit to be called after probe complete
wifi: rtw89: pci: disable PCIE wake bit when PCIE deinit

Piotr Jaroszynski (1):
Fix mmu notifiers for range-based invalidates

Rafael J. Wysocki (2):
cpufreq/sched: Fix the usage of CPUFREQ_NEED_UPDATE_LIMITS
cpufreq: Reference count policy in cpufreq_update_limits()

Rand Deeb (2):
fs/jfs: cast inactags to s64 to prevent potential overflow fs/jfs: Prevent integer overflow in AG size calculation

Remi Pommarel (2):
wifi: mac80211: Update skb's control block key in ieee80211_tx_dequeue()
wifi: mac80211: Purge vif txq in ieee80211_do_stop()

Ricard Wanderlof (1):
ALSA: usb-audio: Fix CME quirk for UF series keyboards

Ricardo Cañuelo Navarro (1):
sctp: detect and prevent references to a freed transport in sendmsg

Ricardo Ribalda (1):
media: uvcvideo: Add quirk for Actions UVC05

Roger Pau Monne (3):
x86/xen: fix balloon target initialization for PVH dom0 x86/xen: move xen_reserve_extra_memory() x86/xen: fix memblock_reserve() usage on PVH

Rolf Eike Beer (1):
drm/sti: remove duplicate object names

Roman Smirnov (1):
cifs: fix integer overflow in match_server()

Ryan Roberts (3):
sparc/mm: disable preemption in lazy mmu mode sparc/mm: avoid calling arch_enter/leave_lazy_mmu() in set_ptes
mm: fix lazy mmu docs and usage

Ryo Takakura (1):
PCI: vmd: Make vmd_dev::cfg_lock a raw_spinlock_t type

Sagi Maimon (1):
ptp: ocp: fix start time alignment in ptp_ocp_signal_set

Sakari Ailus (5):
media: i2c: ccs: Set the device's runtime PM status correctly in remove
media: i2c: ccs: Set the device's runtime PM status correctly in probe
media: i2c: ov7251: Set enable GPIO low in probe
media: i2c: ov7251: Introduce 1 ms delay between regulators and en GPIO
media: i2c: imx219: Rectify runtime PM handling in probe and remove

Sandipan Das (1):
x86/cpu/amd: Fix workaround for erratum 1054

Sean Christopherson (2):
KVM: x86: Explicitly zero-initialize on-stack CPUID unions
KVM: x86: Acquire SRCU in KVM_GET_MP_STATE to protect guest memory accesses

Sean Heelan (1):
ksmbd: Fix dangling pointer in krb_authenticate

Sebastian Andrzej Siewior (1):
xdp: Reset bpf_redirect_info before running a xdp's BPF prog.

Sharath Srinivasan (1):
RDMA/cma: Fix workqueue crash in cma_netevent_work_handler

Shay Drory (1):
RDMA/core: Silence oversized kvmalloc() warning

Shengjiu Wang (1):
ASoC: fsl_audmix: register card device depends on 'dais' property

Shuai Xue (1):
mm/hwpoison: do not send SIGBUS to processes with recovered clean pages

Si-Wei Liu (1):
vdpa/mlx5: Fix oversized null mkey longer than 32bit

Srinivas Kandagatla (5):
ASoC: q6apm: add q6apm_get_hw_pointer helper
ASoC: qdsp6: q6apm-dai: set 10 ms period and buffer alignment.
ASoC: qdsp6: q6apm-dai: fix capture pipeline overruns.
ASoC: codecs:lpass-wsa-macro: Fix vi feedback rate
ASoC: codecs:lpass-wsa-macro: Fix logic of enabling vi channels

Stanimir Varbanov (1):
PCI: brcmstb: Fix missing of_node_put() in brcm_pcie_probe()

Stanislav Fomichev (1):
net: vlan: don't propagate flags on open

Stanley Chu (1):
i3c: master: svc: Use readsb helper for reading MDB

Stefan Eichenberger (1):
phy: freescale: imx8m-pcie: assert phy reset and perst in power off

Stephan Gerhold (1):
pinctrl: qcom: Clear latched interrupt status when changing IRQ type

Steve French (1):
smb311 client: fix missing tcon check when mounting with linux/posix extensions

Steven Rostedt (2):
tracing: Do not add length to print format in synthetic events
tracing: Fix filter string testing

Syed Saba kareem (1):
ASoC: amd: yc: update quirk data for new Lenovo model

T Pratham (1):
lib: scatterlist: fix sg_split_phys to preserve original scatterlist offsets

Takashi Iwai (1):
ALSA: hda/realtek: Fix built-in mic on another ASUS VivoBook model

Taniya Das (1):
clk: qcom: gdsc: Set retain_ff before moving to HW CTRL

Thadeu Lima de Souza Cascardo (2):
tpm: do not start chip while suspended
i2c: cros-ec-tunnel: defer probe if parent EC is not present

Thomas Weißschuh (3):
kunit: qemu_configs: SH: Respect kunit cmdline
loop: properly send KOBJ_CHANGED uevent for disk device
loop: LOOP_SET_FD: send uevents for partitions

Toke Høiland-Jørgensen (1):
tc: Ensure we have enough buffer space when sending filter netlink notifications

Tom Lendacky (1):
crypto: ccp - Fix check for the primary ASP device

Tomasz Pakuła (10):
HID: pidff: Convert infinite length from Linux API to PID standard
HID: pidff: Do not send effect envelope if it's empty
HID: pidff: Add MISSING_DELAY quirk and its detection
HID: pidff: Add MISSING_PBO quirk and its detection
HID: pidff: Add PERMISSIVE_CONTROL quirk
HID: pidff: Add hid_pidff_init_with_quirks and export as GPL symbol
HID: pidff: Add FIX_WHEEL_DIRECTION quirk
HID: Add hid-universal-pidff driver and supported device ids
HID: pidff: Add PERIODIC_SINE_ONLY quirk
HID: pidff: Fix null pointer dereference in pidff_find_fields

Trevor Woerner (1):
thermal/drivers/rockchip: Add missing rk3328 mapping entry

Trond Myklebust (1):
umount: Allow superblock owners to force umount

Tung Nguyen (1):
tipc: fix memory leak in tipc_link_xmit

Uwe Kleine-König (2):
pwm: rcar: Improve register calculation
pwm: fsl-ftm: Handle clk_get_rate() returning 0

Vasiliy Kovalev (1):
hfs/hfsplus: fix slab-out-of-bounds in hfs_bnode_read_key

Victor Nogueira (1):
rtnl: add helper to check if a notification is needed

Vikash Garodia (4):
media: venus: hfi: add a check to handle OOB in sfr region
media: venus: hfi: add check to handle incorrect queue size
media: venus: hfi_parser: add check to avoid out of bound access
media: venus: hfi_parser: refactor hfi packet parsing logic

Vishal Annapurve (1):
x86/tdx: Fix arch_safe_halt() execution for TDX VMs

Vishal Moola (Oracle) (1):
mm: fix filemap_get_folios_contig returning batches of identical folios

Vladimir Oltean (5):
net: dsa: mv88e6xxx: avoid unregistering devlink regions which were never registered
net: dsa: mv88e6xxx: fix -ENOENT when deleting VLANs and MST is unsupported
net: dsa: clean up FDB, MDB, VLAN entries on unbind
net: dsa: free routing table on probe failure
net: dsa: avoid refcount warnings when ds->ops->tag_8021q_vlan_del() fails

WangYuli (6):
riscv: KGDB: Do not inline arch_kgdb_breakpoint()
riscv: KGDB: Remove ".option norvc/.option rvc" for kgdb_compiled_break
nvmet-fc: Remove unused functions
MIPS: dec: Declare which_prom() as static
MIPS: cevt-ds1287: Add missing ds1287.h include
MIPS: ds1287: Match ds1287_set_base_clock() function types

Wentao Liang (4):
ata: sata_sx4: Add error handling in pdc20621_i2c_read() drm/amdgpu: handle amdgpu_cgs_create_device() errors in amd_powerplay_create()
mtd: inftlcore: Add error check for inftl_read_oob()
mtd: rawnand: Add status chack in r852_ready()

Will Deacon (1):
KVM: arm64: Tear down vGIC on failed vCPU creation

Willem de Bruijn (1):
bpf: support SKF_NET_OFF and SKF_LL_OFF on skb frags

Xiangsheng Hou (1):
virtiofs: add filesystem context source name check

Xin Li (Intel) (1):
x86/ia32: Leave NULL selector values 0~3 unchanged

Xingui Yang (1):
scsi: hisi_sas: Enable force phy when SATA disk directly connected

Yeongjin Gil (1):
f2fs: fix to avoid atomicity corruption of atomic file

Yi Liu (1):
iommufd: Fail replace if device has not been attached

Yu Kuai (2):
md/raid10: fix missing discard IO accounting
md: fix mddev uaf while iterating all_mddevs list

Yu-Chun Lin (1):
drm/tests: helpers: Fix compiler warning

Yuan Can (1):
media: siano: Fix error handling in smsdvb_module_init()

Yue Haibing (1):
RDMA/usnic: Fix passing zero to PTR_ERR in usnic_ib_pci_probe()

Yuli Wang (1):
LoongArch: Eliminate superfluous get_numa_distances_cnt()

Zhang Heng (1):
ASoC: SOF: topology: Use krealloc_array() to replace krealloc()

Zheng Qixing (2):
md/md-bitmap: fix stats collection for external bitmaps
block: fix resource leak in blk_register_queue() error path

Zhenhua Huang (1):
arm64: mm: Correct the update of max_pfn

Zhikai Zhai (1):
drm/amd/display: Update Cursor request mode to the beginning prefetch always

Zhongqiu Han (2):
pm: cpupower: bench: Prevent NULL dereference on malloc failure
jfs: Fix uninit-value access of imap allocated in the diMount() function

Zijun Hu (5):
of/irq: Fix device node refcount leakage in API of_irq_parse_one() of/irq: Fix device node refcount leakage in API of_irq_parse_raw() of/irq: Fix device node refcount leakages in of_irq_count() of/irq: Fix device node refcount leakage in API irq_of_parse_and_map() of/irq: Fix device node refcount leakages in of_irq_init()

keenplify (1):
ASoC: amd: Add DMI quirk for ACP6X mic support

zhoumin (1):
ftrace: Add cond_resched() to ftrace_graph_set_hash()

author maintainer
#1 lore raw
Documentation/devicetree/bindings/arm/qcom,coresight-tpda.yaml +1 -2
index ea3c5db6b52d..0f7e1b6ea81e 100644
@@ -55,8 +55,7 @@ properties:
       - const: arm,primecell
 
   reg:
-    minItems: 1
-    maxItems: 2
+    maxItems: 1
 
   clocks:
     maxItems: 1
Documentation/devicetree/bindings/arm/qcom,coresight-tpdm.yaml +1 -2
index 3bad47b7b02b..0b4afb4078ef 100644
@@ -41,8 +41,7 @@ properties:
       - const: arm,primecell
 
   reg:
-    minItems: 1
-    maxItems: 2
+    maxItems: 1
 
   clocks:
     maxItems: 1
Documentation/devicetree/bindings/media/i2c/st,st-mipid02.yaml +1 -1
index b68141264c0e..4d40e75b4e1e 100644
@@ -71,7 +71,7 @@ properties:
                 description:
                   Any lane can be inverted or not.
                 minItems: 1
-                maxItems: 2
+                maxItems: 3
 
             required:
               - data-lanes
Documentation/netlink/specs/rt_link.yaml +10 -4
index d86a68f8475c..a8a1466adf17 100644
@@ -892,11 +892,10 @@ attribute-sets:
       -
         name: prop-list
         type: nest
-        nested-attributes: link-attrs
+        nested-attributes: prop-list-link-attrs
       -
         name: alt-ifname
         type: string
-        multi-attr: true
       -
         name: perm-address
         type: binary
@@ -931,6 +930,13 @@ attribute-sets:
       -
         name: gro-ipv4-max-size
         type: u32
+  -
+    name: prop-list-link-attrs
+    subset-of: link-attrs
+    attributes:
+      -
+        name: alt-ifname
+        multi-attr: true
   -
     name: af-spec-attrs
     attributes:
@@ -1193,9 +1199,10 @@ attribute-sets:
         type: u32
   -
     name: mctp-attrs
+    name-prefix: ifla-mctp-
     attributes:
       -
-        name: mctp-net
+        name: net
         type: u32
   -
     name: stats-attrs
@@ -1362,7 +1369,6 @@ operations:
             - min-mtu
             - max-mtu
             - prop-list
-            - alt-ifname
             - perm-address
             - proto-down-reason
             - parent-dev-name
MAINTAINERS +1 -0
index ae4c0cec5073..294d2ce29b73 100644
@@ -4784,6 +4784,7 @@ S:	Maintained
 F:	Documentation/admin-guide/module-signing.rst
 F:	certs/
 F:	scripts/sign-file.c
+F:	scripts/ssl-common.h
 F:	tools/certs/
 
 CFAG12864B LCD DRIVER
Makefile +4 -1
index 45f6b7d3d51e..b1dfe3df7dfc 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 6
-SUBLEVEL = 87
+SUBLEVEL = 88
 EXTRAVERSION =
 NAME = Pinguïn Aangedreven
 
@@ -1004,6 +1004,9 @@ ifdef CONFIG_CC_IS_GCC
 KBUILD_CFLAGS   += -fconserve-stack
 endif
 
+# Ensure compilers do not transform certain loops into calls to wcslen()
+KBUILD_CFLAGS += -fno-builtin-wcslen
+
 # change __FILE__ to the relative path from the srctree
 KBUILD_CPPFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=)
 
arch/arm64/boot/dts/mediatek/mt8173.dtsi +2 -4
index c47d7d900f28..0582d75349ba 100644
@@ -1246,8 +1246,7 @@ dpi0_out: endpoint {
 		};
 
 		pwm0: pwm@1401e000 {
-			compatible = "mediatek,mt8173-disp-pwm",
-				     "mediatek,mt6595-disp-pwm";
+			compatible = "mediatek,mt8173-disp-pwm";
 			reg = <0 0x1401e000 0 0x1000>;
 			#pwm-cells = <2>;
 			clocks = <&mmsys CLK_MM_DISP_PWM026M>,
@@ -1257,8 +1256,7 @@ pwm0: pwm@1401e000 {
 		};
 
 		pwm1: pwm@1401f000 {
-			compatible = "mediatek,mt8173-disp-pwm",
-				     "mediatek,mt6595-disp-pwm";
+			compatible = "mediatek,mt8173-disp-pwm";
 			reg = <0 0x1401f000 0 0x1000>;
 			#pwm-cells = <2>;
 			clocks = <&mmsys CLK_MM_DISP_PWM126M>,
arch/arm64/include/asm/cputype.h +4 -0
index 488f8e751349..2a4e686e633c 100644
@@ -75,6 +75,7 @@
 #define ARM_CPU_PART_CORTEX_A76		0xD0B
 #define ARM_CPU_PART_NEOVERSE_N1	0xD0C
 #define ARM_CPU_PART_CORTEX_A77		0xD0D
+#define ARM_CPU_PART_CORTEX_A76AE	0xD0E
 #define ARM_CPU_PART_NEOVERSE_V1	0xD40
 #define ARM_CPU_PART_CORTEX_A78		0xD41
 #define ARM_CPU_PART_CORTEX_A78AE	0xD42
@@ -119,6 +120,7 @@
 #define QCOM_CPU_PART_KRYO		0x200
 #define QCOM_CPU_PART_KRYO_2XX_GOLD	0x800
 #define QCOM_CPU_PART_KRYO_2XX_SILVER	0x801
+#define QCOM_CPU_PART_KRYO_3XX_GOLD	0x802
 #define QCOM_CPU_PART_KRYO_3XX_SILVER	0x803
 #define QCOM_CPU_PART_KRYO_4XX_GOLD	0x804
 #define QCOM_CPU_PART_KRYO_4XX_SILVER	0x805
@@ -158,6 +160,7 @@
 #define MIDR_CORTEX_A76	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A76)
 #define MIDR_NEOVERSE_N1 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N1)
 #define MIDR_CORTEX_A77	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A77)
+#define MIDR_CORTEX_A76AE	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A76AE)
 #define MIDR_NEOVERSE_V1	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V1)
 #define MIDR_CORTEX_A78	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78)
 #define MIDR_CORTEX_A78AE	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78AE)
@@ -195,6 +198,7 @@
 #define MIDR_QCOM_KRYO MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO)
 #define MIDR_QCOM_KRYO_2XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_2XX_GOLD)
 #define MIDR_QCOM_KRYO_2XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_2XX_SILVER)
+#define MIDR_QCOM_KRYO_3XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_3XX_GOLD)
 #define MIDR_QCOM_KRYO_3XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_3XX_SILVER)
 #define MIDR_QCOM_KRYO_4XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_4XX_GOLD)
 #define MIDR_QCOM_KRYO_4XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_4XX_SILVER)
arch/arm64/include/asm/spectre.h +0 -1
index 9cc501450486..0c2b47673922 100644
@@ -97,7 +97,6 @@ enum mitigation_state arm64_get_meltdown_state(void);
 
 enum mitigation_state arm64_get_spectre_bhb_state(void);
 bool is_spectre_bhb_affected(const struct arm64_cpu_capabilities *entry, int scope);
-u8 spectre_bhb_loop_affected(int scope);
 void spectre_bhb_enable_mitigation(const struct arm64_cpu_capabilities *__unused);
 bool try_emulate_el1_ssbs(struct pt_regs *regs, u32 instr);
 
arch/arm64/include/asm/tlbflush.h +12 -10
index b73baaf8ae47..d37db2f7a54c 100644
@@ -369,31 +369,33 @@ static inline void arch_tlbbatch_flush(struct arch_tlbflush_unmap_batch *batch)
 #define __flush_tlb_range_op(op, start, pages, stride,			\
 				asid, tlb_level, tlbi_user)		\
 do {									\
+	typeof(start) __flush_start = start;				\
+	typeof(pages) __flush_pages = pages;				\
 	int num = 0;							\
 	int scale = 3;							\
 	unsigned long addr;						\
 									\
-	while (pages > 0) {						\
+	while (__flush_pages > 0) {					\
 		if (!system_supports_tlb_range() ||			\
-		    pages == 1) {					\
-			addr = __TLBI_VADDR(start, asid);		\
+		    __flush_pages == 1) {				\
+			addr = __TLBI_VADDR(__flush_start, asid);	\
 			__tlbi_level(op, addr, tlb_level);		\
 			if (tlbi_user)					\
 				__tlbi_user_level(op, addr, tlb_level);	\
-			start += stride;				\
-			pages -= stride >> PAGE_SHIFT;			\
+			__flush_start += stride;			\
+			__flush_pages -= stride >> PAGE_SHIFT;		\
 			continue;					\
 		}							\
 									\
-		num = __TLBI_RANGE_NUM(pages, scale);			\
+		num = __TLBI_RANGE_NUM(__flush_pages, scale);		\
 		if (num >= 0) {						\
-			addr = __TLBI_VADDR_RANGE(start, asid, scale,	\
-						  num, tlb_level);	\
+			addr = __TLBI_VADDR_RANGE(__flush_start, asid,	\
+						scale, num, tlb_level);	\
 			__tlbi(r##op, addr);				\
 			if (tlbi_user)					\
 				__tlbi_user(r##op, addr);		\
-			start += __TLBI_RANGE_PAGES(num, scale) << PAGE_SHIFT; \
-			pages -= __TLBI_RANGE_PAGES(num, scale);	\
+			__flush_start += __TLBI_RANGE_PAGES(num, scale) << PAGE_SHIFT; \
+			__flush_pages -= __TLBI_RANGE_PAGES(num, scale);\
 		}							\
 		scale--;						\
 	}								\
arch/arm64/kernel/proton-pack.c +118 -100

281 lines not on this page · raw message

arch/arm64/kvm/arm.c +5 -1
index 9818cde948ca..fe4314af8eec 100644
@@ -391,7 +391,11 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu)
 	if (err)
 		return err;
 
-	return kvm_share_hyp(vcpu, vcpu + 1);
+	err = kvm_share_hyp(vcpu, vcpu + 1);
+	if (err)
+		kvm_vgic_vcpu_destroy(vcpu);
+
+	return err;
 }
 
 void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu)
arch/arm64/mm/mmu.c +2 -1
index 38f3fe2e6bf6..bc97916a035a 100644
@@ -1328,7 +1328,8 @@ int arch_add_memory(int nid, u64 start, u64 size,
 		__remove_pgd_mapping(swapper_pg_dir,
 				     __phys_to_virt(start), size);
 	else {
-		max_pfn = PFN_UP(start + size);
+		/* Address of hotplugged memory can be smaller */
+		max_pfn = max(max_pfn, PFN_UP(start + size));
 		max_low_pfn = max_pfn;
 	}
 
arch/loongarch/kernel/acpi.c +0 -12
index 55d6a48c76a8..1f529b13490b 100644
@@ -216,18 +216,6 @@ static __init int setup_node(int pxm)
 	return acpi_map_pxm_to_node(pxm);
 }
 
-/*
- * Callback for SLIT parsing.  pxm_to_node() returns NUMA_NO_NODE for
- * I/O localities since SRAT does not list them.  I/O localities are
- * not supported at this point.
- */
-unsigned int numa_distance_cnt;
-
-static inline unsigned int get_numa_distances_cnt(struct acpi_table_slit *slit)
-{
-	return slit->locality_count;
-}
-
 void __init numa_set_distance(int from, int to, int distance)
 {
 	if ((u8)distance != distance || (from == to && distance != LOCAL_DISTANCE)) {
arch/mips/dec/prom/init.c +1 -1
index cb12eb211a49..8d74d7d6c05b 100644
@@ -42,7 +42,7 @@ int (*__pmax_close)(int);
  * Detect which PROM the DECSTATION has, and set the callback vectors
  * appropriately.
  */
-void __init which_prom(s32 magic, s32 *prom_vec)
+static void __init which_prom(s32 magic, s32 *prom_vec)
 {
 	/*
 	 * No sign of the REX PROM's magic number means we assume a non-REX
arch/mips/include/asm/ds1287.h +1 -1
index 46cfb01f9a14..51cb61fd4c03 100644
@@ -8,7 +8,7 @@
 #define __ASM_DS1287_H
 
 extern int ds1287_timer_state(void);
-extern void ds1287_set_base_clock(unsigned int clock);
+extern int ds1287_set_base_clock(unsigned int hz);
 extern int ds1287_clockevent_init(int irq);
 
 #endif
arch/mips/kernel/cevt-ds1287.c +1 -0
index 9a47fbcd4638..de64d6bb7ba3 100644
@@ -10,6 +10,7 @@
 #include <linux/mc146818rtc.h>
 #include <linux/irq.h>
 
+#include <asm/ds1287.h>
 #include <asm/time.h>
 
 int ds1287_timer_state(void)
arch/powerpc/kernel/rtas.c +4 -0
index 46b9476d7582..dc294c95da21 100644
@@ -18,6 +18,7 @@
 #include <linux/kernel.h>
 #include <linux/lockdep.h>
 #include <linux/memblock.h>
+#include <linux/nospec.h>
 #include <linux/of.h>
 #include <linux/of_fdt.h>
 #include <linux/reboot.h>
@@ -1839,6 +1840,9 @@ SYSCALL_DEFINE1(rtas, struct rtas_args __user *, uargs)
 	    || nargs + nret > ARRAY_SIZE(args.args))
 		return -EINVAL;
 
+	nargs = array_index_nospec(nargs, ARRAY_SIZE(args.args));
+	nret = array_index_nospec(nret, ARRAY_SIZE(args.args) - nargs);
+
 	/* Copy in args. */
 	if (copy_from_user(args.args, uargs->args,
 			   nargs * sizeof(rtas_arg_t)) != 0)
arch/riscv/include/asm/kgdb.h +1 -8
index 46677daf708b..cc11c4544cff 100644
@@ -19,16 +19,9 @@
 
 #ifndef	__ASSEMBLY__
 
+void arch_kgdb_breakpoint(void);
 extern unsigned long kgdb_compiled_break;
 
-static inline void arch_kgdb_breakpoint(void)
-{
-	asm(".global kgdb_compiled_break\n"
-	    ".option norvc\n"
-	    "kgdb_compiled_break: ebreak\n"
-	    ".option rvc\n");
-}
-
 #endif /* !__ASSEMBLY__ */
 
 #define DBG_REG_ZERO "zero"
arch/riscv/include/asm/syscall.h +5 -2
index 121fff429dce..eceabf59ae48 100644
@@ -62,8 +62,11 @@ static inline void syscall_get_arguments(struct task_struct *task,
 					 unsigned long *args)
 {
 	args[0] = regs->orig_a0;
-	args++;
-	memcpy(args, &regs->a1, 5 * sizeof(args[0]));
+	args[1] = regs->a1;
+	args[2] = regs->a2;
+	args[3] = regs->a3;
+	args[4] = regs->a4;
+	args[5] = regs->a5;
 }
 
 static inline int syscall_get_arch(struct task_struct *task)
arch/riscv/kernel/kgdb.c +6 -0
index 2e0266ae6bd7..9f3db3503dab 100644
@@ -254,6 +254,12 @@ void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc)
 	regs->epc = pc;
 }
 
+noinline void arch_kgdb_breakpoint(void)
+{
+	asm(".global kgdb_compiled_break\n"
+	    "kgdb_compiled_break: ebreak\n");
+}
+
 void kgdb_arch_handle_qxfer_pkt(char *remcom_in_buffer,
 				char *remcom_out_buffer)
 {
arch/riscv/kernel/setup.c +35 -1
index 175184b05926..f598e0eb3b0a 100644
@@ -73,6 +73,9 @@ static struct resource bss_res = { .name = "Kernel bss", };
 static struct resource elfcorehdr_res = { .name = "ELF Core hdr", };
 #endif
 
+static int num_standard_resources;
+static struct resource *standard_resources;
+
 static int __init add_resource(struct resource *parent,
 				struct resource *res)
 {
@@ -146,7 +149,7 @@ static void __init init_resources(void)
 	struct resource *res = NULL;
 	struct resource *mem_res = NULL;
 	size_t mem_res_sz = 0;
-	int num_resources = 0, res_idx = 0;
+	int num_resources = 0, res_idx = 0, non_resv_res = 0;
 	int ret = 0;
 
 	/* + 1 as memblock_alloc() might increase memblock.reserved.cnt */
@@ -215,6 +218,7 @@ static void __init init_resources(void)
 	/* Add /memory regions to the resource tree */
 	for_each_mem_region(region) {
 		res = &mem_res[res_idx--];
+		non_resv_res++;
 
 		if (unlikely(memblock_is_nomap(region))) {
 			res->name = "Reserved";
@@ -232,6 +236,9 @@ static void __init init_resources(void)
 			goto error;
 	}
 
+	num_standard_resources = non_resv_res;
+	standard_resources = &mem_res[res_idx + 1];
+
 	/* Clean-up any unused pre-allocated resources */
 	if (res_idx >= 0)
 		memblock_free(mem_res, (res_idx + 1) * sizeof(*mem_res));
@@ -243,6 +250,33 @@ static void __init init_resources(void)
 	memblock_free(mem_res, mem_res_sz);
 }
 
+static int __init reserve_memblock_reserved_regions(void)
+{
+	u64 i, j;
+
+	for (i = 0; i < num_standard_resources; i++) {
+		struct resource *mem = &standard_resources[i];
+		phys_addr_t r_start, r_end, mem_size = resource_size(mem);
+
+		if (!memblock_is_region_reserved(mem->start, mem_size))
+			continue;
+
+		for_each_reserved_mem_range(j, &r_start, &r_end) {
+			resource_size_t start, end;
+
+			start = max(PFN_PHYS(PFN_DOWN(r_start)), mem->start);
+			end = min(PFN_PHYS(PFN_UP(r_end)) - 1, mem->end);
+
+			if (start > mem->end || end < mem->start)
+				continue;
+
+			reserve_region_with_split(mem, start, end, "Reserved");
+		}
+	}
+
+	return 0;
+}
+arch_initcall(reserve_memblock_reserved_regions);
 
 static void __init parse_dtb(void)
 {
arch/sparc/include/asm/pgtable_64.h +0 -2
index 5e41033bf4ca..01aaee703c6c 100644
@@ -931,7 +931,6 @@ static inline void __set_pte_at(struct mm_struct *mm, unsigned long addr,
 static inline void set_ptes(struct mm_struct *mm, unsigned long addr,
 		pte_t *ptep, pte_t pte, unsigned int nr)
 {
-	arch_enter_lazy_mmu_mode();
 	for (;;) {
 		__set_pte_at(mm, addr, ptep, pte, 0);
 		if (--nr == 0)
@@ -940,7 +939,6 @@ static inline void set_ptes(struct mm_struct *mm, unsigned long addr,
 		pte_val(pte) += PAGE_SIZE;
 		addr += PAGE_SIZE;
 	}
-	arch_leave_lazy_mmu_mode();
 }
 #define set_ptes set_ptes
 
arch/sparc/mm/tlb.c +4 -1
index ef69127d7e5e..148e1c85abb2 100644
@@ -52,8 +52,10 @@ void flush_tlb_pending(void)
 
 void arch_enter_lazy_mmu_mode(void)
 {
-	struct tlb_batch *tb = this_cpu_ptr(&tlb_batch);
+	struct tlb_batch *tb;
 
+	preempt_disable();
+	tb = this_cpu_ptr(&tlb_batch);
 	tb->active = 1;
 }
 
@@ -64,6 +66,7 @@ void arch_leave_lazy_mmu_mode(void)
 	if (tb->tlb_nr)
 		flush_tlb_pending();
 	tb->active = 0;
+	preempt_enable();
 }
 
 static void tlb_batch_add_one(struct mm_struct *mm, unsigned long vaddr,
arch/x86/Kconfig +1 -0
index a0af6e8d584b..d874ea22512b 100644
@@ -881,6 +881,7 @@ config INTEL_TDX_GUEST
 	depends on X86_64 && CPU_SUP_INTEL
 	depends on X86_X2APIC
 	depends on EFI_STUB
+	depends on PARAVIRT
 	select ARCH_HAS_CC_PLATFORM
 	select X86_MEM_ENCRYPT
 	select X86_MCE
arch/x86/boot/compressed/mem.c +4 -1
index b3c3a4be7471..18bb201e4354 100644
@@ -34,11 +34,14 @@ static bool early_is_tdx_guest(void)
 
 void arch_accept_memory(phys_addr_t start, phys_addr_t end)
 {
+	static bool sevsnp;
+
 	/* Platform-specific memory-acceptance call goes here */
 	if (early_is_tdx_guest()) {
 		if (!tdx_accept_memory(start, end))
 			panic("TDX: Failed to accept memory\n");
-	} else if (sev_snp_enabled()) {
+	} else if (sevsnp || (sev_get_status() & MSR_AMD64_SEV_SNP_ENABLED)) {
+		sevsnp = true;
 		snp_accept_memory(start, end);
 	} else {
 		error("Cannot accept memory: unknown platform\n");
arch/x86/boot/compressed/sev.c +15 -52

104 lines not on this page · raw message

arch/x86/boot/compressed/sev.h +2 -0
index fc725a981b09..4e463f33186d 100644
@@ -12,11 +12,13 @@
 
 bool sev_snp_enabled(void);
 void snp_accept_memory(phys_addr_t start, phys_addr_t end);
+u64 sev_get_status(void);
 
 #else
 
 static inline bool sev_snp_enabled(void) { return false; }
 static inline void snp_accept_memory(phys_addr_t start, phys_addr_t end) { }
+static inline u64 sev_get_status(void) { return 0; }
 
 #endif
 
arch/x86/coco/tdx/tdx.c +25 -1
index 2f67e196a2ea..98d0ee9600eb 100644
@@ -13,6 +13,7 @@
 #include <asm/ia32.h>
 #include <asm/insn.h>
 #include <asm/insn-eval.h>
+#include <asm/paravirt_types.h>
 #include <asm/pgtable.h>
 #include <asm/traps.h>
 
@@ -334,7 +335,7 @@ static int handle_halt(struct ve_info *ve)
 	return ve_instr_len(ve);
 }
 
-void __cpuidle tdx_safe_halt(void)
+void __cpuidle tdx_halt(void)
 {
 	const bool irq_disabled = false;
 
@@ -345,6 +346,16 @@ void __cpuidle tdx_safe_halt(void)
 		WARN_ONCE(1, "HLT instruction emulation failed\n");
 }
 
+static void __cpuidle tdx_safe_halt(void)
+{
+	tdx_halt();
+	/*
+	 * "__cpuidle" section doesn't support instrumentation, so stick
+	 * with raw_* variant that avoids tracing hooks.
+	 */
+	raw_local_irq_enable();
+}
+
 static int read_msr(struct pt_regs *regs, struct ve_info *ve)
 {
 	struct tdx_hypercall_args args = {
@@ -888,6 +899,19 @@ void __init tdx_early_init(void)
 	x86_platform.guest.enc_cache_flush_required  = tdx_cache_flush_required;
 	x86_platform.guest.enc_tlb_flush_required    = tdx_tlb_flush_required;
 
+	/*
+	 * Avoid "sti;hlt" execution in TDX guests as HLT induces a #VE that
+	 * will enable interrupts before HLT TDCALL invocation if executed
+	 * in STI-shadow, possibly resulting in missed wakeup events.
+	 *
+	 * Modify all possible HLT execution paths to use TDX specific routines
+	 * that directly execute TDCALL and toggle the interrupt state as
+	 * needed after TDCALL completion. This also reduces HLT related #VEs
+	 * in addition to having a reliable halt logic execution.
+	 */
+	pv_ops.irq.safe_halt = tdx_safe_halt;
+	pv_ops.irq.halt = tdx_halt;
+
 	/*
 	 * TDX intercepts the RDMSR to read the X2APIC ID in the parallel
 	 * bringup low level code. That raises #VE which cannot be handled
arch/x86/events/intel/ds.c +5 -3
index dcb1e9b8d866..7dcf5305d695 100644
@@ -1203,8 +1203,10 @@ static u64 pebs_update_adaptive_cfg(struct perf_event *event)
 	 * + precise_ip < 2 for the non event IP
 	 * + For RTM TSX weight we need GPRs for the abort code.
 	 */
-	gprs = (sample_type & PERF_SAMPLE_REGS_INTR) &&
-	       (attr->sample_regs_intr & PEBS_GP_REGS);
+	gprs = ((sample_type & PERF_SAMPLE_REGS_INTR) &&
+		(attr->sample_regs_intr & PEBS_GP_REGS)) ||
+	       ((sample_type & PERF_SAMPLE_REGS_USER) &&
+		(attr->sample_regs_user & PEBS_GP_REGS));
 
 	tsx_weight = (sample_type & PERF_SAMPLE_WEIGHT_TYPE) &&
 		     ((attr->config & INTEL_ARCH_EVENT_MASK) ==
@@ -1856,7 +1858,7 @@ static void setup_pebs_adaptive_sample_data(struct perf_event *event,
 			regs->flags &= ~PERF_EFLAGS_EXACT;
 		}
 
-		if (sample_type & PERF_SAMPLE_REGS_INTR)
+		if (sample_type & (PERF_SAMPLE_REGS_INTR | PERF_SAMPLE_REGS_USER))
 			adaptive_pebs_save_regs(regs, gprs);
 	}
 
arch/x86/events/intel/uncore_snbep.c +10 -97

151 lines not on this page · raw message

arch/x86/include/asm/irqflags.h +22 -18
index 8c5ae649d2df..9acfe2bcf1fd 100644
@@ -56,6 +56,28 @@ static __always_inline void native_halt(void)
 
 #endif
 
+#ifndef CONFIG_PARAVIRT
+#ifndef __ASSEMBLY__
+/*
+ * Used in the idle loop; sti takes one instruction cycle
+ * to complete:
+ */
+static __always_inline void arch_safe_halt(void)
+{
+	native_safe_halt();
+}
+
+/*
+ * Used when interrupts are already enabled or to
+ * shutdown the processor:
+ */
+static __always_inline void halt(void)
+{
+	native_halt();
+}
+#endif /* __ASSEMBLY__ */
+#endif /* CONFIG_PARAVIRT */
+
 #ifdef CONFIG_PARAVIRT_XXL
 #include <asm/paravirt.h>
 #else
@@ -77,24 +99,6 @@ static __always_inline void arch_local_irq_enable(void)
 	native_irq_enable();
 }
 
-/*
- * Used in the idle loop; sti takes one instruction cycle
- * to complete:
- */
-static __always_inline void arch_safe_halt(void)
-{
-	native_safe_halt();
-}
-
-/*
- * Used when interrupts are already enabled or to
- * shutdown the processor:
- */
-static __always_inline void halt(void)
-{
-	native_halt();
-}
-
 /*
  * For spinlocks, etc:
  */
arch/x86/include/asm/paravirt.h +10 -10
index 6c8ff12140ae..d8537e30cee1 100644
@@ -103,6 +103,16 @@ static inline void notify_page_enc_status_changed(unsigned long pfn,
 	PVOP_VCALL3(mmu.notify_page_enc_status_changed, pfn, npages, enc);
 }
 
+static __always_inline void arch_safe_halt(void)
+{
+	PVOP_VCALL0(irq.safe_halt);
+}
+
+static inline void halt(void)
+{
+	PVOP_VCALL0(irq.halt);
+}
+
 #ifdef CONFIG_PARAVIRT_XXL
 static inline void load_sp0(unsigned long sp0)
 {
@@ -168,16 +178,6 @@ static inline void __write_cr4(unsigned long x)
 	PVOP_VCALL1(cpu.write_cr4, x);
 }
 
-static __always_inline void arch_safe_halt(void)
-{
-	PVOP_VCALL0(irq.safe_halt);
-}
-
-static inline void halt(void)
-{
-	PVOP_VCALL0(irq.halt);
-}
-
 extern noinstr void pv_native_wbinvd(void);
 
 static __always_inline void wbinvd(void)
arch/x86/include/asm/paravirt_types.h +1 -2
index 772d03487520..4149df559aae 100644
@@ -130,10 +130,9 @@ struct pv_irq_ops {
 	struct paravirt_callee_save save_fl;
 	struct paravirt_callee_save irq_disable;
 	struct paravirt_callee_save irq_enable;
-
+#endif
 	void (*safe_halt)(void);
 	void (*halt)(void);
-#endif
 } __no_randomize_layout;
 
 struct pv_mmu_ops {
arch/x86/include/asm/tdx.h +2 -2
index 603e6d1e9d4a..c632f09f0c97 100644
@@ -46,7 +46,7 @@ void tdx_get_ve_info(struct ve_info *ve);
 
 bool tdx_handle_virt_exception(struct pt_regs *regs, struct ve_info *ve);
 
-void tdx_safe_halt(void);
+void tdx_halt(void);
 
 bool tdx_early_handle_ve(struct pt_regs *regs);
 
@@ -55,7 +55,7 @@ int tdx_mcall_get_report0(u8 *reportdata, u8 *tdreport);
 #else
 
 static inline void tdx_early_init(void) { };
-static inline void tdx_safe_halt(void) { };
+static inline void tdx_halt(void) { };
 
 static inline bool tdx_early_handle_ve(struct pt_regs *regs) { return false; }
 
arch/x86/include/asm/xen/hypervisor.h +0 -5
index 64fbd2dbc5b7..a9088250770f 100644
@@ -62,11 +62,6 @@ void xen_arch_unregister_cpu(int num);
 #ifdef CONFIG_PVH
 void __init xen_pvh_init(struct boot_params *boot_params);
 void __init mem_map_via_hcall(struct boot_params *boot_params_p);
-#ifdef CONFIG_XEN_PVH
-void __init xen_reserve_extra_memory(struct boot_params *bootp);
-#else
-static inline void xen_reserve_extra_memory(struct boot_params *bootp) { }
-#endif
 #endif
 
 /* Lazy mode for batching updates / context switch */
arch/x86/kernel/cpu/amd.c +13 -8
index 9413fb767c6a..498f27537772 100644
@@ -825,7 +825,7 @@ static void init_amd_k8(struct cpuinfo_x86 *c)
 	 * (model = 0x14) and later actually support it.
 	 * (AMD Erratum #110, docId: 25759).
 	 */
-	if (c->x86_model < 0x14 && cpu_has(c, X86_FEATURE_LAHF_LM)) {
+	if (c->x86_model < 0x14 && cpu_has(c, X86_FEATURE_LAHF_LM) && !cpu_has(c, X86_FEATURE_HYPERVISOR)) {
 		clear_cpu_cap(c, X86_FEATURE_LAHF_LM);
 		if (!rdmsrl_amd_safe(0xc001100d, &value)) {
 			value &= ~BIT_64(32);
@@ -1039,6 +1039,16 @@ static void init_amd_zen1(struct cpuinfo_x86 *c)
 
 	pr_notice_once("AMD Zen1 DIV0 bug detected. Disable SMT for full protection.\n");
 	setup_force_cpu_bug(X86_BUG_DIV0);
+
+	/*
+	 * Turn off the Instructions Retired free counter on machines that are
+	 * susceptible to erratum #1054 "Instructions Retired Performance
+	 * Counter May Be Inaccurate".
+	 */
+	if (c->x86_model < 0x30) {
+		msr_clear_bit(MSR_K7_HWCR, MSR_K7_HWCR_IRPERF_EN_BIT);
+		clear_cpu_cap(c, X86_FEATURE_IRPERF);
+	}
 }
 
 static bool cpu_has_zenbleed_microcode(void)
@@ -1185,13 +1195,8 @@ static void init_amd(struct cpuinfo_x86 *c)
 	if (!cpu_feature_enabled(X86_FEATURE_XENPV))
 		set_cpu_bug(c, X86_BUG_SYSRET_SS_ATTRS);
 
-	/*
-	 * Turn on the Instructions Retired free counter on machines not
-	 * susceptible to erratum #1054 "Instructions Retired Performance
-	 * Counter May Be Inaccurate".
-	 */
-	if (cpu_has(c, X86_FEATURE_IRPERF) &&
-	    (boot_cpu_has(X86_FEATURE_ZEN1) && c->x86_model > 0x2f))
+	/* Enable the Instructions Retired free counter */
+	if (cpu_has(c, X86_FEATURE_IRPERF))
 		msr_set_bit(MSR_K7_HWCR, MSR_K7_HWCR_IRPERF_EN_BIT);
 
 	check_null_seg_clears_base(c);
arch/x86/kernel/cpu/intel.c +16 -4
index 38eeff91109f..6c0e0619e6d3 100644
@@ -1168,7 +1168,13 @@ static void __split_lock_reenable(struct work_struct *work)
 {
 	sld_update_msr(true);
 }
-static DECLARE_DELAYED_WORK(sl_reenable, __split_lock_reenable);
+/*
+ * In order for each CPU to schedule its delayed work independently of the
+ * others, delayed work struct must be per-CPU. This is not required when
+ * sysctl_sld_mitigate is enabled because of the semaphore that limits
+ * the number of simultaneously scheduled delayed works to 1.
+ */
+static DEFINE_PER_CPU(struct delayed_work, sl_reenable);
 
 /*
  * If a CPU goes offline with pending delayed work to re-enable split lock
@@ -1189,7 +1195,7 @@ static int splitlock_cpu_offline(unsigned int cpu)
 
 static void split_lock_warn(unsigned long ip)
 {
-	struct delayed_work *work;
+	struct delayed_work *work = NULL;
 	int cpu;
 
 	if (!current->reported_split_lock)
@@ -1211,11 +1217,17 @@ static void split_lock_warn(unsigned long ip)
 		if (down_interruptible(&buslock_sem) == -EINTR)
 			return;
 		work = &sl_reenable_unlock;
-	} else {
-		work = &sl_reenable;
 	}
 
 	cpu = get_cpu();
+
+	if (!work) {
+		work = this_cpu_ptr(&sl_reenable);
+		/* Deferred initialization of per-CPU struct */
+		if (!work->work.func)
+			INIT_DELAYED_WORK(work, __split_lock_reenable);
+	}
+
 	schedule_delayed_work_on(cpu, work, 2);
 
 	/* Disable split lock detection on this CPU to make progress */
arch/x86/kernel/cpu/microcode/amd.c +7 -2
index 0ee172ce2d21..ce78e39004e0 100644
@@ -201,6 +201,12 @@ static bool need_sha_check(u32 cur_rev)
 	case 0xa70c0: return cur_rev <= 0xa70C009; break;
 	case 0xaa001: return cur_rev <= 0xaa00116; break;
 	case 0xaa002: return cur_rev <= 0xaa00218; break;
+	case 0xb0021: return cur_rev <= 0xb002146; break;
+	case 0xb1010: return cur_rev <= 0xb101046; break;
+	case 0xb2040: return cur_rev <= 0xb204031; break;
+	case 0xb4040: return cur_rev <= 0xb404031; break;
+	case 0xb6000: return cur_rev <= 0xb600031; break;
+	case 0xb7000: return cur_rev <= 0xb700031; break;
 	default: break;
 	}
 
@@ -216,8 +222,7 @@ static bool verify_sha256_digest(u32 patch_id, u32 cur_rev, const u8 *data, unsi
 	struct sha256_state s;
 	int i;
 
-	if (x86_family(bsp_cpuid_1_eax) < 0x17 ||
-	    x86_family(bsp_cpuid_1_eax) > 0x19)
+	if (x86_family(bsp_cpuid_1_eax) < 0x17)
 		return true;
 
 	if (!need_sha_check(cur_rev))
arch/x86/kernel/e820.c +8 -9
index b66f540de054..1f6fb8e85e0f 100644
@@ -753,22 +753,21 @@ void __init e820__memory_setup_extended(u64 phys_addr, u32 data_len)
 void __init e820__register_nosave_regions(unsigned long limit_pfn)
 {
 	int i;
-	unsigned long pfn = 0;
+	u64 last_addr = 0;
 
 	for (i = 0; i < e820_table->nr_entries; i++) {
 		struct e820_entry *entry = &e820_table->entries[i];
 
-		if (pfn < PFN_UP(entry->addr))
-			register_nosave_region(pfn, PFN_UP(entry->addr));
-
-		pfn = PFN_DOWN(entry->addr + entry->size);
-
 		if (entry->type != E820_TYPE_RAM && entry->type != E820_TYPE_RESERVED_KERN)
-			register_nosave_region(PFN_UP(entry->addr), pfn);
+			continue;
 
-		if (pfn >= limit_pfn)
-			break;
+		if (last_addr < entry->addr)
+			register_nosave_region(PFN_DOWN(last_addr), PFN_UP(entry->addr));
+
+		last_addr = entry->addr + entry->size;
 	}
+
+	register_nosave_region(PFN_DOWN(last_addr), limit_pfn);
 }
 
 #ifdef CONFIG_ACPI
arch/x86/kernel/paravirt.c +8 -6
index 8d51c86caa41..234851fe0ef8 100644
@@ -142,6 +142,11 @@ int paravirt_disable_iospace(void)
 	return request_resource(&ioport_resource, &reserve_ioports);
 }
 
+static noinstr void pv_native_safe_halt(void)
+{
+	native_safe_halt();
+}
+
 #ifdef CONFIG_PARAVIRT_XXL
 static noinstr void pv_native_write_cr2(unsigned long val)
 {
@@ -162,11 +167,6 @@ noinstr void pv_native_wbinvd(void)
 {
 	native_wbinvd();
 }
-
-static noinstr void pv_native_safe_halt(void)
-{
-	native_safe_halt();
-}
 #endif
 
 struct pv_info pv_info = {
@@ -224,9 +224,11 @@ struct paravirt_patch_template pv_ops = {
 	.irq.save_fl		= __PV_IS_CALLEE_SAVE(pv_native_save_fl),
 	.irq.irq_disable	= __PV_IS_CALLEE_SAVE(pv_native_irq_disable),
 	.irq.irq_enable		= __PV_IS_CALLEE_SAVE(pv_native_irq_enable),
+#endif /* CONFIG_PARAVIRT_XXL */
+
+	/* Irq HLT ops. */
 	.irq.safe_halt		= pv_native_safe_halt,
 	.irq.halt		= native_halt,
-#endif /* CONFIG_PARAVIRT_XXL */
 
 	/* Mmu ops. */
 	.mmu.flush_tlb_user	= native_flush_tlb_local,
arch/x86/kernel/process.c +1 -1
index bbe11363550b..419353904173 100644
@@ -955,7 +955,7 @@ void select_idle_routine(const struct cpuinfo_x86 *c)
 		static_call_update(x86_idle, mwait_idle);
 	} else if (cpu_feature_enabled(X86_FEATURE_TDX_GUEST)) {
 		pr_info("using TDX aware idle routine\n");
-		static_call_update(x86_idle, tdx_safe_halt);
+		static_call_update(x86_idle, tdx_halt);
 	} else
 		static_call_update(x86_idle, default_idle);
 }
arch/x86/kernel/signal_32.c +43 -19

86 lines not on this page · raw message

arch/x86/kvm/cpuid.c +3 -5
index 5fb12d9c71be..a6cffeff75d4 100644
@@ -1011,8 +1011,8 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function)
 		}
 		break;
 	case 0xa: { /* Architectural Performance Monitoring */
-		union cpuid10_eax eax;
-		union cpuid10_edx edx;
+		union cpuid10_eax eax = { };
+		union cpuid10_edx edx = { };
 
 		if (!enable_pmu || !static_cpu_has(X86_FEATURE_ARCH_PERFMON)) {
 			entry->eax = entry->ebx = entry->ecx = entry->edx = 0;
@@ -1028,8 +1028,6 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function)
 
 		if (kvm_pmu_cap.version)
 			edx.split.anythread_deprecated = 1;
-		edx.split.reserved1 = 0;
-		edx.split.reserved2 = 0;
 
 		entry->eax = eax.full;
 		entry->ebx = kvm_pmu_cap.events_mask;
@@ -1303,7 +1301,7 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function)
 		break;
 	/* AMD Extended Performance Monitoring and Debug */
 	case 0x80000022: {
-		union cpuid_0x80000022_ebx ebx;
+		union cpuid_0x80000022_ebx ebx = { };
 
 		entry->ecx = entry->edx = 0;
 		if (!enable_pmu || !kvm_cpu_cap_has(X86_FEATURE_PERFMON_V2)) {
arch/x86/kvm/x86.c +4 -0
index dcd0c12c308e..2a2dbeb56897 100644
@@ -11396,6 +11396,8 @@ int kvm_arch_vcpu_ioctl_get_mpstate(struct kvm_vcpu *vcpu,
 	if (kvm_mpx_supported())
 		kvm_load_guest_fpu(vcpu);
 
+	kvm_vcpu_srcu_read_lock(vcpu);
+
 	r = kvm_apic_accept_events(vcpu);
 	if (r < 0)
 		goto out;
@@ -11409,6 +11411,8 @@ int kvm_arch_vcpu_ioctl_get_mpstate(struct kvm_vcpu *vcpu,
 		mp_state->mp_state = vcpu->arch.mp_state;
 
 out:
+	kvm_vcpu_srcu_read_unlock(vcpu);
+
 	if (kvm_mpx_supported())
 		kvm_put_guest_fpu(vcpu);
 	vcpu_put(vcpu);
arch/x86/mm/pat/set_memory.c +3 -3
index 2d850f6bae70..525794f1eefb 100644
@@ -2374,7 +2374,7 @@ static int __set_pages_np(struct page *page, int numpages)
 				.pgd = NULL,
 				.numpages = numpages,
 				.mask_set = __pgprot(0),
-				.mask_clr = __pgprot(_PAGE_PRESENT | _PAGE_RW),
+				.mask_clr = __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY),
 				.flags = CPA_NO_CHECK_ALIAS };
 
 	/*
@@ -2453,7 +2453,7 @@ int __init kernel_map_pages_in_pgd(pgd_t *pgd, u64 pfn, unsigned long address,
 		.pgd = pgd,
 		.numpages = numpages,
 		.mask_set = __pgprot(0),
-		.mask_clr = __pgprot(~page_flags & (_PAGE_NX|_PAGE_RW)),
+		.mask_clr = __pgprot(~page_flags & (_PAGE_NX|_PAGE_RW|_PAGE_DIRTY)),
 		.flags = CPA_NO_CHECK_ALIAS,
 	};
 
@@ -2496,7 +2496,7 @@ int __init kernel_unmap_pages_in_pgd(pgd_t *pgd, unsigned long address,
 		.pgd		= pgd,
 		.numpages	= numpages,
 		.mask_set	= __pgprot(0),
-		.mask_clr	= __pgprot(_PAGE_PRESENT | _PAGE_RW),
+		.mask_clr	= __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY),
 		.flags		= CPA_NO_CHECK_ALIAS,
 	};
 
arch/x86/platform/pvh/enlighten.c +0 -3
index a12117f3d4de..00a92cb2c814 100644
@@ -74,9 +74,6 @@ static void __init init_pvh_bootparams(bool xen_guest)
 	} else
 		xen_raw_printk("Warning: Can fit ISA range into e820\n");
 
-	if (xen_guest)
-		xen_reserve_extra_memory(&pvh_bootparams);
-
 	pvh_bootparams.hdr.cmd_line_ptr =
 		pvh_start_info.cmdline_paddr;
 
arch/x86/xen/enlighten.c +10 -0
index 0219f1c90202..638de313fc4e 100644
@@ -75,6 +75,9 @@ EXPORT_SYMBOL(xen_start_flags);
  */
 struct shared_info *HYPERVISOR_shared_info = &xen_dummy_shared_info;
 
+/* Number of pages released from the initial allocation. */
+unsigned long xen_released_pages;
+
 static __ref void xen_get_vendor(void)
 {
 	init_cpu_devs();
@@ -471,6 +474,13 @@ int __init arch_xen_unpopulated_init(struct resource **res)
 			xen_free_unpopulated_pages(1, &pg);
 		}
 
+		/*
+		 * Account for the region being in the physmap but unpopulated.
+		 * The value in xen_released_pages is used by the balloon
+		 * driver to know how much of the physmap is unpopulated and
+		 * set an accurate initial memory target.
+		 */
+		xen_released_pages += xen_extra_mem[i].n_pfns;
 		/* Zero so region is not also added to the balloon driver. */
 		xen_extra_mem[i].n_pfns = 0;
 	}
arch/x86/xen/enlighten_pvh.c +51 -42

115 lines not on this page · raw message

arch/x86/xen/setup.c +0 -3
index dc822124cacb..ec3ffb94807d 100644
@@ -38,9 +38,6 @@
 
 #define GB(x) ((uint64_t)(x) * 1024 * 1024 * 1024)
 
-/* Number of pages released from the initial allocation. */
-unsigned long xen_released_pages;
-
 /* Memory map would allow PCI passthrough. */
 bool xen_pv_pci_possible;
 
block/blk-sysfs.c +2 -0
index 4990a19e6013..74839f6f2e0c 100644
@@ -854,6 +854,8 @@ int blk_register_queue(struct gendisk *disk)
 out_debugfs_remove:
 	blk_debugfs_remove(disk);
 	mutex_unlock(&q->sysfs_lock);
+	if (queue_is_mq(q))
+		blk_mq_sysfs_unregister(disk);
 out_put_queue_kobj:
 	kobject_put(&disk->queue_kobj);
 	mutex_unlock(&q->sysfs_dir_lock);
certs/Makefile +1 -1
index 799ad7b9e68a..67e1f2707c2f 100644
@@ -84,5 +84,5 @@ targets += x509_revocation_list
 
 hostprogs := extract-cert
 
-HOSTCFLAGS_extract-cert.o = $(shell $(HOSTPKG_CONFIG) --cflags libcrypto 2> /dev/null)
+HOSTCFLAGS_extract-cert.o = $(shell $(HOSTPKG_CONFIG) --cflags libcrypto 2> /dev/null) -I$(srctree)/scripts
 HOSTLDLIBS_extract-cert = $(shell $(HOSTPKG_CONFIG) --libs libcrypto 2> /dev/null || echo -lcrypto)
certs/extract-cert.c +74 -64

163 lines not on this page · raw message

drivers/acpi/platform_profile.c +10 -10
index d418462ab791..89f34310237c 100644
@@ -22,8 +22,8 @@ static const char * const profile_names[] = {
 };
 static_assert(ARRAY_SIZE(profile_names) == PLATFORM_PROFILE_LAST);
 
-static ssize_t platform_profile_choices_show(struct device *dev,
-					struct device_attribute *attr,
+static ssize_t platform_profile_choices_show(struct kobject *kobj,
+					struct kobj_attribute *attr,
 					char *buf)
 {
 	int len = 0;
@@ -49,8 +49,8 @@ static ssize_t platform_profile_choices_show(struct device *dev,
 	return len;
 }
 
-static ssize_t platform_profile_show(struct device *dev,
-					struct device_attribute *attr,
+static ssize_t platform_profile_show(struct kobject *kobj,
+					struct kobj_attribute *attr,
 					char *buf)
 {
 	enum platform_profile_option profile = PLATFORM_PROFILE_BALANCED;
@@ -77,8 +77,8 @@ static ssize_t platform_profile_show(struct device *dev,
 	return sysfs_emit(buf, "%s\n", profile_names[profile]);
 }
 
-static ssize_t platform_profile_store(struct device *dev,
-			    struct device_attribute *attr,
+static ssize_t platform_profile_store(struct kobject *kobj,
+			    struct kobj_attribute *attr,
 			    const char *buf, size_t count)
 {
 	int err, i;
@@ -115,12 +115,12 @@ static ssize_t platform_profile_store(struct device *dev,
 	return count;
 }
 
-static DEVICE_ATTR_RO(platform_profile_choices);
-static DEVICE_ATTR_RW(platform_profile);
+static struct kobj_attribute attr_platform_profile_choices = __ATTR_RO(platform_profile_choices);
+static struct kobj_attribute attr_platform_profile = __ATTR_RW(platform_profile);
 
 static struct attribute *platform_profile_attrs[] = {
-	&dev_attr_platform_profile_choices.attr,
-	&dev_attr_platform_profile.attr,
+	&attr_platform_profile_choices.attr,
+	&attr_platform_profile.attr,
 	NULL
 };
 
drivers/ata/ahci.c +2 -0
index 6e76780fb430..98104d0b842b 100644
@@ -591,6 +591,8 @@ static const struct pci_device_id ahci_pci_tbl[] = {
 	  .driver_data = board_ahci_yes_fbs },
 	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a3),
 	  .driver_data = board_ahci_yes_fbs },
+	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9215),
+	  .driver_data = board_ahci_yes_fbs },
 	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9230),
 	  .driver_data = board_ahci_yes_fbs },
 	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9235),
drivers/ata/libata-eh.c +9 -2
index 9cc022522184..3263fc13491e 100644
@@ -1496,8 +1496,15 @@ unsigned int atapi_eh_request_sense(struct ata_device *dev,
 	tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE;
 	tf.command = ATA_CMD_PACKET;
 
-	/* is it pointless to prefer PIO for "safety reasons"? */
-	if (ap->flags & ATA_FLAG_PIO_DMA) {
+	/*
+	 * Do not use DMA if the connected device only supports PIO, even if the
+	 * port prefers PIO commands via DMA.
+	 *
+	 * Ideally, we should call atapi_check_dma() to check if it is safe for
+	 * the LLD to use DMA for REQUEST_SENSE, but we don't have a qc.
+	 * Since we can't check the command, perhaps we should only use pio?
+	 */
+	if ((ap->flags & ATA_FLAG_PIO_DMA) && !(dev->flags & ATA_DFLAG_PIO)) {
 		tf.protocol = ATAPI_PROT_DMA;
 		tf.feature |= ATAPI_PKT_DMA;
 	} else {
drivers/ata/libata-sata.c +15 -0
index a701e1538482..be72030a500d 100644
@@ -1365,6 +1365,8 @@ int ata_eh_read_sense_success_ncq_log(struct ata_link *link)
 	unsigned int err_mask, tag;
 	u8 *sense, sk = 0, asc = 0, ascq = 0;
 	u64 sense_valid, val;
+	u16 extended_sense;
+	bool aux_icc_valid;
 	int ret = 0;
 
 	err_mask = ata_read_log_page(dev, ATA_LOG_SENSE_NCQ, 0, buf, 2);
@@ -1384,6 +1386,8 @@ int ata_eh_read_sense_success_ncq_log(struct ata_link *link)
 
 	sense_valid = (u64)buf[8] | ((u64)buf[9] << 8) |
 		((u64)buf[10] << 16) | ((u64)buf[11] << 24);
+	extended_sense = get_unaligned_le16(&buf[14]);
+	aux_icc_valid = extended_sense & BIT(15);
 
 	ata_qc_for_each_raw(ap, qc, tag) {
 		if (!(qc->flags & ATA_QCFLAG_EH) ||
@@ -1411,6 +1415,17 @@ int ata_eh_read_sense_success_ncq_log(struct ata_link *link)
 			continue;
 		}
 
+		qc->result_tf.nsect = sense[6];
+		qc->result_tf.hob_nsect = sense[7];
+		qc->result_tf.lbal = sense[8];
+		qc->result_tf.lbam = sense[9];
+		qc->result_tf.lbah = sense[10];
+		qc->result_tf.hob_lbal = sense[11];
+		qc->result_tf.hob_lbam = sense[12];
+		qc->result_tf.hob_lbah = sense[13];
+		if (aux_icc_valid)
+			qc->result_tf.auxiliary = get_unaligned_le32(&sense[16]);
+
 		/* Set sense without also setting scsicmd->result */
 		scsi_build_sense_buffer(dev->flags & ATA_DFLAG_D_SENSE,
 					qc->scsicmd->sense_buffer, sk,
drivers/ata/pata_pxa.c +6 -0
index 5275c6464f57..821bcf20741e 100644
@@ -223,10 +223,16 @@ static int pxa_ata_probe(struct platform_device *pdev)
 
 	ap->ioaddr.cmd_addr	= devm_ioremap(&pdev->dev, cmd_res->start,
 						resource_size(cmd_res));
+	if (!ap->ioaddr.cmd_addr)
+		return -ENOMEM;
 	ap->ioaddr.ctl_addr	= devm_ioremap(&pdev->dev, ctl_res->start,
 						resource_size(ctl_res));
+	if (!ap->ioaddr.ctl_addr)
+		return -ENOMEM;
 	ap->ioaddr.bmdma_addr	= devm_ioremap(&pdev->dev, dma_res->start,
 						resource_size(dma_res));
+	if (!ap->ioaddr.bmdma_addr)
+		return -ENOMEM;
 
 	/*
 	 * Adjust register offsets
drivers/ata/sata_sx4.c +10 -3
index a482741eb181..c3042eca6332 100644
@@ -1117,9 +1117,14 @@ static int pdc20621_prog_dimm0(struct ata_host *host)
 	mmio += PDC_CHIP0_OFS;
 
 	for (i = 0; i < ARRAY_SIZE(pdc_i2c_read_data); i++)
-		pdc20621_i2c_read(host, PDC_DIMM0_SPD_DEV_ADDRESS,
-				  pdc_i2c_read_data[i].reg,
-				  &spd0[pdc_i2c_read_data[i].ofs]);
+		if (!pdc20621_i2c_read(host, PDC_DIMM0_SPD_DEV_ADDRESS,
+				       pdc_i2c_read_data[i].reg,
+				       &spd0[pdc_i2c_read_data[i].ofs])) {
+			dev_err(host->dev,
+				"Failed in i2c read at index %d: device=%#x, reg=%#x\n",
+				i, PDC_DIMM0_SPD_DEV_ADDRESS, pdc_i2c_read_data[i].reg);
+			return -EIO;
+		}
 
 	data |= (spd0[4] - 8) | ((spd0[21] != 0) << 3) | ((spd0[3]-11) << 4);
 	data |= ((spd0[17] / 4) << 6) | ((spd0[5] / 2) << 7) |
@@ -1284,6 +1289,8 @@ static unsigned int pdc20621_dimm_init(struct ata_host *host)
 
 	/* Programming DIMM0 Module Control Register (index_CID0:80h) */
 	size = pdc20621_prog_dimm0(host);
+	if (size < 0)
+		return size;
 	dev_dbg(host->dev, "Local DIMM Size = %dMB\n", size);
 
 	/* Programming DIMM Module Global Control Register (index_CID0:88h) */
drivers/base/devres.c +7 -0
index e9b0d94aeabd..8a0f00022127 100644
@@ -687,6 +687,13 @@ int devres_release_group(struct device *dev, void *id)
 		spin_unlock_irqrestore(&dev->devres_lock, flags);
 
 		release_nodes(dev, &todo);
+	} else if (list_empty(&dev->devres_head)) {
+		/*
+		 * dev is probably dying via devres_release_all(): groups
+		 * have already been removed and are on the process of
+		 * being released - don't touch and don't warn.
+		 */
+		spin_unlock_irqrestore(&dev->devres_lock, flags);
 	} else {
 		WARN_ON(1);
 		spin_unlock_irqrestore(&dev->devres_lock, flags);
drivers/block/loop.c +4 -3
index 886c63599037..8a6c1146df00 100644
@@ -624,19 +624,20 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
 	 * dependency.
 	 */
 	fput(old_file);
+	dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0);
 	if (partscan)
 		loop_reread_partitions(lo);
 
 	error = 0;
 done:
-	/* enable and uncork uevent now that we are done */
-	dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0);
+	kobject_uevent(&disk_to_dev(lo->lo_disk)->kobj, KOBJ_CHANGE);
 	return error;
 
 out_err:
 	loop_global_unlock(lo, is_loop);
 out_putf:
 	fput(file);
+	dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0);
 	goto done;
 }
 
@@ -1104,8 +1105,8 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
 	if (partscan)
 		clear_bit(GD_SUPPRESS_PART_SCAN, &lo->lo_disk->state);
 
-	/* enable and uncork uevent now that we are done */
 	dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0);
+	kobject_uevent(&disk_to_dev(lo->lo_disk)->kobj, KOBJ_CHANGE);
 
 	loop_global_unlock(lo, is_loop);
 	if (partscan)
drivers/bluetooth/btqca.c +6 -7
index 892e2540f008..5651f40db173 100644
@@ -807,6 +807,7 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
 		   const char *firmware_name)
 {
 	struct qca_fw_config config = {};
+	const char *variant = "";
 	int err;
 	u8 rom_ver = 0;
 	u32 soc_ver;
@@ -901,13 +902,11 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
 		case QCA_WCN3990:
 		case QCA_WCN3991:
 		case QCA_WCN3998:
-			if (le32_to_cpu(ver.soc_id) == QCA_WCN3991_SOC_ID) {
-				snprintf(config.fwname, sizeof(config.fwname),
-					 "qca/crnv%02xu.bin", rom_ver);
-			} else {
-				snprintf(config.fwname, sizeof(config.fwname),
-					 "qca/crnv%02x.bin", rom_ver);
-			}
+			if (le32_to_cpu(ver.soc_id) == QCA_WCN3991_SOC_ID)
+				variant = "u";
+
+			snprintf(config.fwname, sizeof(config.fwname),
+				 "qca/crnv%02x%s.bin", rom_ver, variant);
 			break;
 		case QCA_WCN3988:
 			snprintf(config.fwname, sizeof(config.fwname),
drivers/bluetooth/btrtl.c +2 -0
index 1e7c1f9db9e4..7f67e460f7f4 100644
@@ -1194,6 +1194,8 @@ struct btrtl_device_info *btrtl_initialize(struct hci_dev *hdev,
 			rtl_dev_err(hdev, "mandatory config file %s not found",
 				    btrtl_dev->ic_info->cfg_name);
 			ret = btrtl_dev->cfg_len;
+			if (!ret)
+				ret = -EINVAL;
 			goto err_free;
 		}
 	}
drivers/bluetooth/hci_ldisc.c +14 -5
index 17a2f158a0df..70320b8f1aa1 100644
@@ -102,7 +102,8 @@ static inline struct sk_buff *hci_uart_dequeue(struct hci_uart *hu)
 	if (!skb) {
 		percpu_down_read(&hu->proto_lock);
 
-		if (test_bit(HCI_UART_PROTO_READY, &hu->flags))
+		if (test_bit(HCI_UART_PROTO_READY, &hu->flags) ||
+		    test_bit(HCI_UART_PROTO_INIT, &hu->flags))
 			skb = hu->proto->dequeue(hu);
 
 		percpu_up_read(&hu->proto_lock);
@@ -124,7 +125,8 @@ int hci_uart_tx_wakeup(struct hci_uart *hu)
 	if (!percpu_down_read_trylock(&hu->proto_lock))
 		return 0;
 
-	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags))
+	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags) &&
+	    !test_bit(HCI_UART_PROTO_INIT, &hu->flags))
 		goto no_schedule;
 
 	set_bit(HCI_UART_TX_WAKEUP, &hu->tx_state);
@@ -278,7 +280,8 @@ static int hci_uart_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
 
 	percpu_down_read(&hu->proto_lock);
 
-	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags)) {
+	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags) &&
+	    !test_bit(HCI_UART_PROTO_INIT, &hu->flags)) {
 		percpu_up_read(&hu->proto_lock);
 		return -EUNATCH;
 	}
@@ -582,7 +585,8 @@ static void hci_uart_tty_wakeup(struct tty_struct *tty)
 	if (tty != hu->tty)
 		return;
 
-	if (test_bit(HCI_UART_PROTO_READY, &hu->flags))
+	if (test_bit(HCI_UART_PROTO_READY, &hu->flags) ||
+	    test_bit(HCI_UART_PROTO_INIT, &hu->flags))
 		hci_uart_tx_wakeup(hu);
 }
 
@@ -608,7 +612,8 @@ static void hci_uart_tty_receive(struct tty_struct *tty, const u8 *data,
 
 	percpu_down_read(&hu->proto_lock);
 
-	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags)) {
+	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags) &&
+	    !test_bit(HCI_UART_PROTO_INIT, &hu->flags)) {
 		percpu_up_read(&hu->proto_lock);
 		return;
 	}
@@ -704,12 +709,16 @@ static int hci_uart_set_proto(struct hci_uart *hu, int id)
 
 	hu->proto = p;
 
+	set_bit(HCI_UART_PROTO_INIT, &hu->flags);
+
 	err = hci_uart_register_dev(hu);
 	if (err) {
 		return err;
 	}
 
 	set_bit(HCI_UART_PROTO_READY, &hu->flags);
+	clear_bit(HCI_UART_PROTO_INIT, &hu->flags);
+
 	return 0;
 }
 
drivers/bluetooth/hci_uart.h +1 -0
index 00bf7ae82c5b..39f39704be41 100644
@@ -89,6 +89,7 @@ struct hci_uart {
 #define HCI_UART_REGISTERED		1
 #define HCI_UART_PROTO_READY		2
 #define HCI_UART_NO_SUSPEND_NOTIFIER	3
+#define HCI_UART_PROTO_INIT		4
 
 /* TX states  */
 #define HCI_UART_SENDING	1
drivers/bluetooth/hci_vhci.c +5 -5
index 28750a40f0ed..4bfc78f9781e 100644
@@ -289,18 +289,18 @@ static void vhci_coredump(struct hci_dev *hdev)
 
 static void vhci_coredump_hdr(struct hci_dev *hdev, struct sk_buff *skb)
 {
-	char buf[80];
+	const char *buf;
 
-	snprintf(buf, sizeof(buf), "Controller Name: vhci_ctrl\n");
+	buf = "Controller Name: vhci_ctrl\n";
 	skb_put_data(skb, buf, strlen(buf));
 
-	snprintf(buf, sizeof(buf), "Firmware Version: vhci_fw\n");
+	buf = "Firmware Version: vhci_fw\n";
 	skb_put_data(skb, buf, strlen(buf));
 
-	snprintf(buf, sizeof(buf), "Driver: vhci_drv\n");
+	buf = "Driver: vhci_drv\n";
 	skb_put_data(skb, buf, strlen(buf));
 
-	snprintf(buf, sizeof(buf), "Vendor: vhci\n");
+	buf = "Vendor: vhci\n";
 	skb_put_data(skb, buf, strlen(buf));
 }
 
drivers/bus/mhi/host/main.c +10 -6
index d6653cbcf94a..ad1e97222a0f 100644
@@ -1204,11 +1204,16 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,
 	struct mhi_ring_element *mhi_tre;
 	struct mhi_buf_info *buf_info;
 	int eot, eob, chain, bei;
-	int ret;
+	int ret = 0;
 
 	/* Protect accesses for reading and incrementing WP */
 	write_lock_bh(&mhi_chan->lock);
 
+	if (mhi_chan->ch_state != MHI_CH_STATE_ENABLED) {
+		ret = -ENODEV;
+		goto out;
+	}
+
 	buf_ring = &mhi_chan->buf_ring;
 	tre_ring = &mhi_chan->tre_ring;
 
@@ -1226,10 +1231,8 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,
 
 	if (!info->pre_mapped) {
 		ret = mhi_cntrl->map_single(mhi_cntrl, buf_info);
-		if (ret) {
-			write_unlock_bh(&mhi_chan->lock);
-			return ret;
-		}
+		if (ret)
+			goto out;
 	}
 
 	eob = !!(flags & MHI_EOB);
@@ -1246,9 +1249,10 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,
 	mhi_add_ring_element(mhi_cntrl, tre_ring);
 	mhi_add_ring_element(mhi_cntrl, buf_ring);
 
+out:
 	write_unlock_bh(&mhi_chan->lock);
 
-	return 0;
+	return ret;
 }
 
 int mhi_queue_buf(struct mhi_device *mhi_dev, enum dma_data_direction dir,
drivers/char/tpm/tpm-chip.c +5 -0
index 78999f7f248c..70e3fe20fdcf 100644
@@ -165,6 +165,11 @@ int tpm_try_get_ops(struct tpm_chip *chip)
 		goto out_ops;
 
 	mutex_lock(&chip->tpm_mutex);
+
+	/* tmp_chip_start may issue IO that is denied while suspended */
+	if (chip->flags & TPM_CHIP_FLAG_SUSPENDED)
+		goto out_lock;
+
 	rc = tpm_chip_start(chip);
 	if (rc)
 		goto out_lock;
drivers/char/tpm/tpm-interface.c +0 -7
index c8ea52dfa556..3a6223cafeb3 100644
@@ -468,18 +468,11 @@ int tpm_get_random(struct tpm_chip *chip, u8 *out, size_t max)
 	if (!chip)
 		return -ENODEV;
 
-	/* Give back zero bytes, as TPM chip has not yet fully resumed: */
-	if (chip->flags & TPM_CHIP_FLAG_SUSPENDED) {
-		rc = 0;
-		goto out;
-	}
-
 	if (chip->flags & TPM_CHIP_FLAG_TPM2)
 		rc = tpm2_get_random(chip, out, max);
 	else
 		rc = tpm1_get_random(chip, out, max);
 
-out:
 	tpm_put_ops(chip);
 	return rc;
 }
drivers/char/tpm/tpm_tis_core.c +15 -5
index f6aa0dfadb93..c71e61ccb95a 100644
@@ -114,11 +114,10 @@ static int wait_for_tpm_stat(struct tpm_chip *chip, u8 mask,
 		return 0;
 	/* process status changes without irq support */
 	do {
+		usleep_range(priv->timeout_min, priv->timeout_max);
 		status = chip->ops->status(chip);
 		if ((status & mask) == mask)
 			return 0;
-		usleep_range(priv->timeout_min,
-			     priv->timeout_max);
 	} while (time_before(jiffies, stop));
 	return -ETIME;
 }
@@ -464,7 +463,10 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len)
 
 		if (wait_for_tpm_stat(chip, TPM_STS_VALID, chip->timeout_c,
 					&priv->int_queue, false) < 0) {
-			rc = -ETIME;
+			if (test_bit(TPM_TIS_STATUS_VALID_RETRY, &priv->flags))
+				rc = -EAGAIN;
+			else
+				rc = -ETIME;
 			goto out_err;
 		}
 		status = tpm_tis_status(chip);
@@ -481,7 +483,10 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len)
 
 	if (wait_for_tpm_stat(chip, TPM_STS_VALID, chip->timeout_c,
 				&priv->int_queue, false) < 0) {
-		rc = -ETIME;
+		if (test_bit(TPM_TIS_STATUS_VALID_RETRY, &priv->flags))
+			rc = -EAGAIN;
+		else
+			rc = -ETIME;
 		goto out_err;
 	}
 	status = tpm_tis_status(chip);
@@ -546,9 +551,11 @@ static int tpm_tis_send_main(struct tpm_chip *chip, const u8 *buf, size_t len)
 		if (rc >= 0)
 			/* Data transfer done successfully */
 			break;
-		else if (rc != -EIO)
+		else if (rc != -EAGAIN && rc != -EIO)
 			/* Data transfer failed, not recoverable */
 			return rc;
+
+		usleep_range(priv->timeout_min, priv->timeout_max);
 	}
 
 	/* go and do it */
@@ -1147,6 +1154,9 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
 		priv->timeout_max = TIS_TIMEOUT_MAX_ATML;
 	}
 
+	if (priv->manufacturer_id == TPM_VID_IFX)
+		set_bit(TPM_TIS_STATUS_VALID_RETRY, &priv->flags);
+
 	if (is_bsw()) {
 		priv->ilb_base_addr = ioremap(INTEL_LEGACY_BLK_BASE_ADDR,
 					ILB_REMAP_SIZE);
drivers/char/tpm/tpm_tis_core.h +1 -0
index 13e99cf65efe..369496a6aebf 100644
@@ -89,6 +89,7 @@ enum tpm_tis_flags {
 	TPM_TIS_INVALID_STATUS		= 1,
 	TPM_TIS_DEFAULT_CANCELLATION	= 2,
 	TPM_TIS_IRQ_TESTED		= 3,
+	TPM_TIS_STATUS_VALID_RETRY	= 4,
 };
 
 struct tpm_tis_data {
drivers/clk/qcom/clk-branch.c +2 -2
index fc4735f74f0f..fefbfe7c42e7 100644
@@ -27,7 +27,7 @@ static bool clk_branch_in_hwcg_mode(const struct clk_branch *br)
 
 static bool clk_branch_check_halt(const struct clk_branch *br, bool enabling)
 {
-	bool invert = (br->halt_check == BRANCH_HALT_ENABLE);
+	bool invert = (br->halt_check & BRANCH_HALT_ENABLE);
 	u32 val;
 
 	regmap_read(br->clkr.regmap, br->halt_reg, &val);
@@ -43,7 +43,7 @@ static bool clk_branch2_check_halt(const struct clk_branch *br, bool enabling)
 {
 	u32 val;
 	u32 mask;
-	bool invert = (br->halt_check == BRANCH_HALT_ENABLE);
+	bool invert = (br->halt_check & BRANCH_HALT_ENABLE);
 
 	mask = CBCR_NOC_FSM_STATUS;
 	mask |= CBCR_CLK_OFF;
drivers/clk/qcom/gdsc.c +38 -23

108 lines not on this page · raw message

drivers/clocksource/timer-stm32-lp.c +1 -3
index a4c95161cb22..193e4f643358 100644
@@ -168,9 +168,7 @@ static int stm32_clkevent_lp_probe(struct platform_device *pdev)
 	}
 
 	if (of_property_read_bool(pdev->dev.parent->of_node, "wakeup-source")) {
-		ret = device_init_wakeup(&pdev->dev, true);
-		if (ret)
-			goto out_clk_disable;
+		device_set_wakeup_capable(&pdev->dev, true);
 
 		ret = dev_pm_set_wake_irq(&pdev->dev, irq);
 		if (ret)
drivers/cpufreq/cpufreq.c +8 -0
index df445b44e9ec..0ac0998152ce 100644
@@ -2725,10 +2725,18 @@ EXPORT_SYMBOL(cpufreq_update_policy);
  */
 void cpufreq_update_limits(unsigned int cpu)
 {
+	struct cpufreq_policy *policy;
+
+	policy = cpufreq_cpu_get(cpu);
+	if (!policy)
+		return;
+
 	if (cpufreq_driver->update_limits)
 		cpufreq_driver->update_limits(cpu);
 	else
 		cpufreq_update_policy(cpu);
+
+	cpufreq_cpu_put(policy);
 }
 EXPORT_SYMBOL_GPL(cpufreq_update_limits);
 
drivers/crypto/caam/qi.c +3 -3
index 7a3a104557f0..fa5bd64b7407 100644
@@ -122,12 +122,12 @@ int caam_qi_enqueue(struct device *qidev, struct caam_drv_req *req)
 	qm_fd_addr_set64(&fd, addr);
 
 	do {
+		refcount_inc(&req->drv_ctx->refcnt);
 		ret = qman_enqueue(req->drv_ctx->req_fq, &fd);
-		if (likely(!ret)) {
-			refcount_inc(&req->drv_ctx->refcnt);
+		if (likely(!ret))
 			return 0;
-		}
 
+		refcount_dec(&req->drv_ctx->refcnt);
 		if (ret != -EBUSY)
 			break;
 		num_retries++;
drivers/crypto/ccp/sp-pci.c +9 -6
index b6ab56abeb68..0caa57dafc52 100644
@@ -243,14 +243,17 @@ static bool sp_pci_is_master(struct sp_device *sp)
 	pdev_new = to_pci_dev(dev_new);
 	pdev_cur = to_pci_dev(dev_cur);
 
-	if (pdev_new->bus->number < pdev_cur->bus->number)
-		return true;
+	if (pci_domain_nr(pdev_new->bus) != pci_domain_nr(pdev_cur->bus))
+		return pci_domain_nr(pdev_new->bus) < pci_domain_nr(pdev_cur->bus);
 
-	if (PCI_SLOT(pdev_new->devfn) < PCI_SLOT(pdev_cur->devfn))
-		return true;
+	if (pdev_new->bus->number != pdev_cur->bus->number)
+		return pdev_new->bus->number < pdev_cur->bus->number;
 
-	if (PCI_FUNC(pdev_new->devfn) < PCI_FUNC(pdev_cur->devfn))
-		return true;
+	if (PCI_SLOT(pdev_new->devfn) != PCI_SLOT(pdev_cur->devfn))
+		return PCI_SLOT(pdev_new->devfn) < PCI_SLOT(pdev_cur->devfn);
+
+	if (PCI_FUNC(pdev_new->devfn) != PCI_FUNC(pdev_cur->devfn))
+		return PCI_FUNC(pdev_new->devfn) < PCI_FUNC(pdev_cur->devfn);
 
 	return false;
 }
drivers/firmware/efi/libstub/efistub.h +1 -1
index fc18fd649ed7..5ecb9d3f3e9f 100644
@@ -171,7 +171,7 @@ void efi_set_u64_split(u64 data, u32 *lo, u32 *hi)
  * the EFI memory map. Other related structures, e.g. x86 e820ext, need
  * to factor in this headroom requirement as well.
  */
-#define EFI_MMAP_NR_SLACK_SLOTS	8
+#define EFI_MMAP_NR_SLACK_SLOTS	32
 
 typedef struct efi_generic_dev_path efi_device_path_protocol_t;
 
drivers/gpio/gpio-tegra186.c +14 -13
index 9130c691a2dd..58648949f7ba 100644
@@ -822,6 +822,7 @@ static int tegra186_gpio_probe(struct platform_device *pdev)
 	struct gpio_irq_chip *irq;
 	struct tegra_gpio *gpio;
 	struct device_node *np;
+	struct resource *res;
 	char **names;
 	int err;
 
@@ -841,19 +842,19 @@ static int tegra186_gpio_probe(struct platform_device *pdev)
 	gpio->num_banks++;
 
 	/* get register apertures */
-	gpio->secure = devm_platform_ioremap_resource_byname(pdev, "security");
-	if (IS_ERR(gpio->secure)) {
-		gpio->secure = devm_platform_ioremap_resource(pdev, 0);
-		if (IS_ERR(gpio->secure))
-			return PTR_ERR(gpio->secure);
-	}
-
-	gpio->base = devm_platform_ioremap_resource_byname(pdev, "gpio");
-	if (IS_ERR(gpio->base)) {
-		gpio->base = devm_platform_ioremap_resource(pdev, 1);
-		if (IS_ERR(gpio->base))
-			return PTR_ERR(gpio->base);
-	}
+	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "security");
+	if (!res)
+		res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	gpio->secure = devm_ioremap_resource(&pdev->dev, res);
+	if (IS_ERR(gpio->secure))
+		return PTR_ERR(gpio->secure);
+
+	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "gpio");
+	if (!res)
+		res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
+	gpio->base = devm_ioremap_resource(&pdev->dev, res);
+	if (IS_ERR(gpio->base))
+		return PTR_ERR(gpio->base);
 
 	err = platform_irq_count(pdev);
 	if (err < 0)
drivers/gpio/gpio-zynq.c +1 -0
index 324e942c0650..f70b72fe6edf 100644
@@ -1018,6 +1018,7 @@ static int zynq_gpio_remove(struct platform_device *pdev)
 	ret = pm_runtime_get_sync(&pdev->dev);
 	if (ret < 0)
 		dev_warn(&pdev->dev, "pm_runtime_get_sync() Failed\n");
+	device_init_wakeup(&pdev->dev, 0);
 	gpiochip_remove(&gpio->chip);
 	clk_disable_unprepare(gpio->clk);
 	device_set_wakeup_capable(&pdev->dev, 0);
drivers/gpu/drm/Kconfig +1 -1
index ec4abf9ff47b..a2b4c97bcb31 100644
@@ -69,6 +69,7 @@ config DRM_USE_DYNAMIC_DEBUG
 config DRM_KUNIT_TEST_HELPERS
 	tristate
 	depends on DRM && KUNIT
+	select DRM_KMS_HELPER
 	help
 	  KUnit Helpers for KMS drivers.
 
@@ -79,7 +80,6 @@ config DRM_KUNIT_TEST
 	select DRM_DISPLAY_DP_HELPER
 	select DRM_DISPLAY_HELPER
 	select DRM_LIB_RANDOM
-	select DRM_KMS_HELPER
 	select DRM_BUDDY
 	select DRM_EXPORT_FOR_TESTS if m
 	select DRM_KUNIT_TEST_HELPERS
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +9 -1
index 45dd6cbad81e..10f5a3d0f591 100644
@@ -6015,6 +6015,7 @@ struct dma_fence *amdgpu_device_switch_gang(struct amdgpu_device *adev,
 {
 	struct dma_fence *old = NULL;
 
+	dma_fence_get(gang);
 	do {
 		dma_fence_put(old);
 		rcu_read_lock();
@@ -6024,12 +6025,19 @@ struct dma_fence *amdgpu_device_switch_gang(struct amdgpu_device *adev,
 		if (old == gang)
 			break;
 
-		if (!dma_fence_is_signaled(old))
+		if (!dma_fence_is_signaled(old)) {
+			dma_fence_put(gang);
 			return old;
+		}
 
 	} while (cmpxchg((struct dma_fence __force **)&adev->gang_submit,
 			 old, gang) != old);
 
+	/*
+	 * Drop it once for the exchanged reference in adev and once for the
+	 * thread local reference acquired in amdgpu_device_get_gang().
+	 */
+	dma_fence_put(old);
 	dma_fence_put(old);
 	return NULL;
 }
drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c +1 -1
index ba3a87cb88cc..be4cc4868a74 100644
@@ -211,7 +211,7 @@ static void amdgpu_dma_buf_unmap(struct dma_buf_attachment *attach,
 				 struct sg_table *sgt,
 				 enum dma_data_direction dir)
 {
-	if (sgt->sgl->page_link) {
+	if (sg_page(sgt->sgl)) {
 		dma_unmap_sgtable(attach->dev, sgt, dir, 0);
 		sg_free_table(sgt);
 		kfree(sgt);
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +24 -20

84 lines not on this page · raw message

drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +10 -0
index 8669677662d0..35dc926f234e 100644
@@ -212,6 +212,11 @@ static int set_queue_properties_from_user(struct queue_properties *q_properties,
 		return -EINVAL;
 	}
 
+	if (args->ring_size < KFD_MIN_QUEUE_RING_SIZE) {
+		args->ring_size = KFD_MIN_QUEUE_RING_SIZE;
+		pr_debug("Size lower. clamped to KFD_MIN_QUEUE_RING_SIZE");
+	}
+
 	if (!access_ok((const void __user *) args->read_pointer_address,
 			sizeof(uint32_t))) {
 		pr_err("Can't access read pointer\n");
@@ -477,6 +482,11 @@ static int kfd_ioctl_update_queue(struct file *filp, struct kfd_process *p,
 		return -EINVAL;
 	}
 
+	if (args->ring_size < KFD_MIN_QUEUE_RING_SIZE) {
+		args->ring_size = KFD_MIN_QUEUE_RING_SIZE;
+		pr_debug("Size lower. clamped to KFD_MIN_QUEUE_RING_SIZE");
+	}
+
 	properties.queue_address = args->ring_base_address;
 	properties.queue_size = args->ring_size;
 	properties.queue_percent = args->queue_percentage & 0xFF;
drivers/gpu/drm/amd/amdkfd/kfd_device.c +5 -0
index 9d0b0bf70ad1..2786d47961e0 100644
@@ -1388,6 +1388,11 @@ int kfd_debugfs_hang_hws(struct kfd_node *dev)
 		return -EINVAL;
 	}
 
+	if (dev->kfd->shared_resources.enable_mes) {
+		dev_err(dev->adev->dev, "Inducing MES hang is not supported\n");
+		return -EINVAL;
+	}
+
 	return dqm_debugfs_hang_hws(dev->dqm);
 }
 
drivers/gpu/drm/amd/amdkfd/kfd_process.c +17 -0
index 64346c71c62a..a6d08dee74f6 100644
@@ -35,6 +35,7 @@
 #include <linux/pm_runtime.h>
 #include "amdgpu_amdkfd.h"
 #include "amdgpu.h"
+#include "amdgpu_reset.h"
 
 struct mm_struct;
 
@@ -1110,6 +1111,17 @@ static void kfd_process_remove_sysfs(struct kfd_process *p)
 	p->kobj = NULL;
 }
 
+/*
+ * If any GPU is ongoing reset, wait for reset complete.
+ */
+static void kfd_process_wait_gpu_reset_complete(struct kfd_process *p)
+{
+	int i;
+
+	for (i = 0; i < p->n_pdds; i++)
+		flush_workqueue(p->pdds[i]->dev->adev->reset_domain->wq);
+}
+
 /* No process locking is needed in this function, because the process
  * is not findable any more. We must assume that no other thread is
  * using it any more, otherwise we couldn't safely free the process
@@ -1123,6 +1135,11 @@ static void kfd_process_wq_release(struct work_struct *work)
 	kfd_process_dequeue_from_all_devices(p);
 	pqm_uninit(&p->pqm);
 
+	/*
+	 * If GPU in reset, user queues may still running, wait for reset complete.
+	 */
+	kfd_process_wait_gpu_reset_complete(p);
+
 	/* Signal the eviction fence after user mode queues are
 	 * destroyed. This allows any BOs to be freed without
 	 * triggering pointless evictions or waiting for fences.
drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c +1 -1
index e057c2bc7be4..d11a71e8aa14 100644
@@ -510,7 +510,7 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid)
 			pr_err("Pasid 0x%x destroy queue %d failed, ret %d\n",
 				pqm->process->pasid,
 				pqn->q->properties.queue_id, retval);
-			if (retval != -ETIME)
+			if (retval != -ETIME && retval != -EIO)
 				goto err_destroy_queue;
 		}
 
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +7 -7
index 3696b9112c74..28f2b4022d34 100644
@@ -4484,17 +4484,17 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev)
 		}
 	}
 
+	if (link_cnt > (MAX_PIPES * 2)) {
+		DRM_ERROR(
+			"KMS: Cannot support more than %d display indexes\n",
+				MAX_PIPES * 2);
+		goto fail;
+	}
+
 	/* loops over all connectors on the board */
 	for (i = 0; i < link_cnt; i++) {
 		struct dc_link *link = NULL;
 
-		if (i > AMDGPU_DM_MAX_DISPLAY_INDEX) {
-			DRM_ERROR(
-				"KMS: Cannot support more than %d display indexes\n",
-					AMDGPU_DM_MAX_DISPLAY_INDEX);
-			continue;
-		}
-
 		aconnector = kzalloc(sizeof(*aconnector), GFP_KERNEL);
 		if (!aconnector)
 			goto fail;
drivers/gpu/drm/amd/display/dc/dc.h +2 -0
index cc5e01df1513..88e64b280c90 100644
@@ -1563,7 +1563,9 @@ struct dc_link {
 		bool dongle_mode_timing_override;
 		bool blank_stream_on_ocs_change;
 		bool read_dpcd204h_on_irq_hpd;
+		bool force_dp_ffe_preset;
 	} wa_flags;
+	union dc_dp_ffe_preset forced_dp_ffe_preset;
 	struct link_mst_stream_allocation_table mst_stream_alloc_table;
 
 	struct dc_link_status link_status;
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +9 -13
index ff38a85c4fa2..e71b79f5a66c 100644
@@ -1930,20 +1930,11 @@ static void delay_cursor_until_vupdate(struct dc *dc, struct pipe_ctx *pipe_ctx)
 	dc->hwss.get_position(&pipe_ctx, 1, &position);
 	vpos = position.vertical_count;
 
-	/* Avoid wraparound calculation issues */
-	vupdate_start += stream->timing.v_total;
-	vupdate_end += stream->timing.v_total;
-	vpos += stream->timing.v_total;
-
 	if (vpos <= vupdate_start) {
 		/* VPOS is in VACTIVE or back porch. */
 		lines_to_vupdate = vupdate_start - vpos;
-	} else if (vpos > vupdate_end) {
-		/* VPOS is in the front porch. */
-		return;
 	} else {
-		/* VPOS is in VUPDATE. */
-		lines_to_vupdate = 0;
+		lines_to_vupdate = stream->timing.v_total - vpos + vupdate_start;
 	}
 
 	/* Calculate time until VUPDATE in microseconds. */
@@ -1951,13 +1942,18 @@ static void delay_cursor_until_vupdate(struct dc *dc, struct pipe_ctx *pipe_ctx)
 		stream->timing.h_total * 10000u / stream->timing.pix_clk_100hz;
 	us_to_vupdate = lines_to_vupdate * us_per_line;
 
+	/* Stall out until the cursor update completes. */
+	if (vupdate_end < vupdate_start)
+		vupdate_end += stream->timing.v_total;
+
+	/* Position is in the range of vupdate start and end*/
+	if (lines_to_vupdate > stream->timing.v_total - vupdate_end + vupdate_start)
+		us_to_vupdate = 0;
+
 	/* 70 us is a conservative estimate of cursor update time*/
 	if (us_to_vupdate > 70)
 		return;
 
-	/* Stall out until the cursor update completes. */
-	if (vupdate_end < vupdate_start)
-		vupdate_end += stream->timing.v_total;
 	us_vupdate = (vupdate_end - vupdate_start + 1) * us_per_line;
 	udelay(us_to_vupdate + us_vupdate);
 }
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubp.c +1 -1
index 39a57bcd7866..576acf2ce10d 100644
@@ -44,7 +44,7 @@ void hubp31_set_unbounded_requesting(struct hubp *hubp, bool enable)
 	struct dcn20_hubp *hubp2 = TO_DCN20_HUBP(hubp);
 
 	REG_UPDATE(DCHUBP_CNTL, HUBP_UNBOUNDED_REQ_MODE, enable);
-	REG_UPDATE(CURSOR_CONTROL, CURSOR_REQ_MODE, enable);
+	REG_UPDATE(CURSOR_CONTROL, CURSOR_REQ_MODE, 1);
 }
 
 void hubp31_soft_reset(struct hubp *hubp, bool reset)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c +2 -0
index 9d1adfc09fb2..51e88efee11e 100644
@@ -697,6 +697,8 @@ void override_training_settings(
 		lt_settings->pre_emphasis = overrides->pre_emphasis;
 	if (overrides->post_cursor2 != NULL)
 		lt_settings->post_cursor2 = overrides->post_cursor2;
+	if (link->wa_flags.force_dp_ffe_preset && !dp_is_lttpr_present(link))
+		lt_settings->ffe_preset = &link->forced_dp_ffe_preset;
 	if (overrides->ffe_preset != NULL)
 		lt_settings->ffe_preset = overrides->ffe_preset;
 	/* Override HW lane settings with BIOS forced values if present */
drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c +5 -0
index 86f95a291d65..bef6578ac4bf 100644
@@ -51,6 +51,11 @@ static int amd_powerplay_create(struct amdgpu_device *adev)
 	hwmgr->adev = adev;
 	hwmgr->not_vf = !amdgpu_sriov_vf(adev);
 	hwmgr->device = amdgpu_cgs_create_device(adev);
+	if (!hwmgr->device) {
+		kfree(hwmgr);
+		return -ENOMEM;
+	}
+
 	mutex_init(&hwmgr->msg_lock);
 	hwmgr->chip_family = adev->family;
 	hwmgr->chip_id = adev->asic_type;
drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_thermal.c +2 -2
index a6c3610db23e..7209e965dc52 100644
@@ -267,10 +267,10 @@ int smu7_fan_ctrl_set_fan_speed_rpm(struct pp_hwmgr *hwmgr, uint32_t speed)
 	if (hwmgr->thermal_controller.fanInfo.bNoFan ||
 			(hwmgr->thermal_controller.fanInfo.
 			ucTachometerPulsesPerRevolution == 0) ||
-			speed == 0 ||
+			(!speed || speed > UINT_MAX/8) ||
 			(speed < hwmgr->thermal_controller.fanInfo.ulMinRPM) ||
 			(speed > hwmgr->thermal_controller.fanInfo.ulMaxRPM))
-		return 0;
+		return -EINVAL;
 
 	if (PP_CAP(PHM_PlatformCaps_MicrocodeFanControl))
 		smu7_fan_ctrl_stop_smc_fan_control(hwmgr);
drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c +2 -2
index 190af79f3236..e93b7c4aa8c9 100644
@@ -307,10 +307,10 @@ int vega10_fan_ctrl_set_fan_speed_rpm(struct pp_hwmgr *hwmgr, uint32_t speed)
 	int result = 0;
 
 	if (hwmgr->thermal_controller.fanInfo.bNoFan ||
-	    speed == 0 ||
+	    (!speed || speed > UINT_MAX/8) ||
 	    (speed < hwmgr->thermal_controller.fanInfo.ulMinRPM) ||
 	    (speed > hwmgr->thermal_controller.fanInfo.ulMaxRPM))
-		return -1;
+		return -EINVAL;
 
 	if (PP_CAP(PHM_PlatformCaps_MicrocodeFanControl))
 		result = vega10_fan_ctrl_stop_smc_fan_control(hwmgr);
drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_thermal.c +1 -1
index e9737ca8418a..a1b1c985ca9a 100644
@@ -191,7 +191,7 @@ int vega20_fan_ctrl_set_fan_speed_rpm(struct pp_hwmgr *hwmgr, uint32_t speed)
 	uint32_t tach_period, crystal_clock_freq;
 	int result = 0;
 
-	if (!speed)
+	if (!speed || speed > UINT_MAX/8)
 		return -EINVAL;
 
 	if (PP_CAP(PHM_PlatformCaps_MicrocodeFanControl)) {
drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c +3 -0
index 4c58c2cd26d8..0cdf3257b19b 100644
@@ -1274,6 +1274,9 @@ static int arcturus_set_fan_speed_rpm(struct smu_context *smu,
 	uint32_t crystal_clock_freq = 2500;
 	uint32_t tach_period;
 
+	if (!speed || speed > UINT_MAX/8)
+		return -EINVAL;
+
 	tach_period = 60 * crystal_clock_freq * 10000 / (8 * speed);
 	WREG32_SOC15(THM, 0, mmCG_TACH_CTRL_ARCT,
 		     REG_SET_FIELD(RREG32_SOC15(THM, 0, mmCG_TACH_CTRL_ARCT),
drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c +1 -1
index 123c19bb6228..1b726489d86a 100644
@@ -1202,7 +1202,7 @@ int smu_v11_0_set_fan_speed_rpm(struct smu_context *smu,
 	uint32_t crystal_clock_freq = 2500;
 	uint32_t tach_period;
 
-	if (speed == 0)
+	if (!speed || speed > UINT_MAX/8)
 		return -EINVAL;
 	/*
 	 * To prevent from possible overheat, some ASICs may have requirement
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c +1 -1
index c0adfa46ac78..8504692be47f 100644
@@ -1227,7 +1227,7 @@ int smu_v13_0_set_fan_speed_rpm(struct smu_context *smu,
 	uint32_t tach_period;
 	int ret;
 
-	if (!speed)
+	if (!speed || speed > UINT_MAX/8)
 		return -EINVAL;
 
 	ret = smu_v13_0_auto_fan_control(smu, 0);
drivers/gpu/drm/drm_atomic_helper.c +1 -1
index 554d4468aa7c..f3681970887c 100644
@@ -1373,7 +1373,7 @@ crtc_set_mode(struct drm_device *dev, struct drm_atomic_state *old_state)
 		mode = &new_crtc_state->mode;
 		adjusted_mode = &new_crtc_state->adjusted_mode;
 
-		if (!new_crtc_state->mode_changed)
+		if (!new_crtc_state->mode_changed && !new_crtc_state->connectors_changed)
 			continue;
 
 		drm_dbg_atomic(dev, "modeset on [ENCODER:%d:%s]\n",
drivers/gpu/drm/drm_panel.c +4 -1
index cfbe020de54e..98df4788d096 100644
@@ -49,7 +49,7 @@ static LIST_HEAD(panel_list);
  * @dev: parent device of the panel
  * @funcs: panel operations
  * @connector_type: the connector type (DRM_MODE_CONNECTOR_*) corresponding to
- *	the panel interface
+ *	the panel interface (must NOT be DRM_MODE_CONNECTOR_Unknown)
  *
  * Initialize the panel structure for subsequent registration with
  * drm_panel_add().
@@ -57,6 +57,9 @@ static LIST_HEAD(panel_list);
 void drm_panel_init(struct drm_panel *panel, struct device *dev,
 		    const struct drm_panel_funcs *funcs, int connector_type)
 {
+	if (connector_type == DRM_MODE_CONNECTOR_Unknown)
+		DRM_WARN("%s: %s: a valid connector type is required!\n", __func__, dev_name(dev));
+
 	INIT_LIST_HEAD(&panel->list);
 	INIT_LIST_HEAD(&panel->followers);
 	mutex_init(&panel->follower_lock);
drivers/gpu/drm/drm_panel_orientation_quirks.c +44 -2

90 lines not on this page · raw message

drivers/gpu/drm/i915/gt/intel_engine_cs.c +2 -1
index d9bb352b8baa..0729ab595517 100644
@@ -1218,7 +1218,8 @@ static int intel_engine_init_tlb_invalidation(struct intel_engine_cs *engine)
 			num = ARRAY_SIZE(xelpmp_regs);
 		}
[… more lines in the raw message]

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

drivers/gpu/drm/i915/gt/intel_mocs.c +2 -2
index 07269ff3be13..25c1023eb5f9 100644

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

drivers/gpu/drm/i915/gt/intel_rc6.c +4 -15
index 6e8c182b2559..3c7f4ed51bb0 100644

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

drivers/gpu/drm/i915/gt/uc/intel_huc.c +5 -6
index ba9e07fc2b57..552662953e7a 100644

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

drivers/gpu/drm/i915/gt/uc/intel_huc.h +1 -0
index ba5cb08e9e7b..09aff3148f7d 100644

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

drivers/gpu/drm/i915/gt/uc/intel_uc.c +1 -0
index 98b103375b7a..c29d187ddad1 100644

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

drivers/gpu/drm/i915/gvt/opregion.c +4 -3
index d2bed466540a..3da476dec1da 100644

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

drivers/gpu/drm/i915/i915_debugfs.c +1 -1
index 7a90a2e32c9f..1fde21d8bb59 100644

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

drivers/gpu/drm/i915/selftests/i915_selftest.c +50 -4

54 lines not on this page · raw message

drivers/gpu/drm/mediatek/mtk_dpi.c +16 -7
index bc073a6b367e..54fc3f819577 100644

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

drivers/gpu/drm/msm/adreno/a6xx_gmu.c +39 -33

72 lines not on this page · raw message

drivers/gpu/drm/nouveau/nouveau_bo.c +3 -0
index 5d398a422459..036ee0343972 100644

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

drivers/gpu/drm/nouveau/nouveau_gem.c +0 -3
index 7b69e6df5748..cd97df690335 100644

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

drivers/gpu/drm/sti/Makefile +0 -2
index f203ac5514ae..f778a4eee7c9 100644

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

drivers/gpu/drm/tests/drm_client_modeset_test.c +3 -0
index 7516f6cb36e4..3e9518d7b8b7 100644

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

drivers/gpu/drm/tests/drm_cmdline_parser_test.c +9 -1
index 88f7f518ffb3..05dd5cc3b604 100644

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

drivers/gpu/drm/tests/drm_kunit_helpers.c +213 -0

213 lines not on this page · raw message

drivers/gpu/drm/tests/drm_modes_test.c +22 -0
index 1e9f63fbfead..e23067252d18 100644

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

drivers/gpu/drm/tests/drm_probe_helper_test.c +7 -1
index 1a2044070a6c..2a7984431d47 100644

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

drivers/gpu/drm/tiny/repaper.c +2 -2
index 13ae148f59b9..7796ca579cbd 100644

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

drivers/hid/Kconfig +14 -0
index 979ebe69c8e3..ffbeb39341e1 100644

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

drivers/hid/Makefile +1 -0
index f5a06b62b385..dcb81891c725 100644

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

drivers/hid/hid-ids.h +31 -0
index 09090803f1dd..8e721ec3faaf 100644

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

drivers/hid/hid-universal-pidff.c new file +197 -0

197 lines not on this page · raw message

drivers/hid/usbhid/hid-pidff.c +126 -47

173 lines not on this page · raw message

drivers/hsi/clients/ssi_protocol.c +1 -0
index da6a7abd584f..f8ccb29c6380 100644

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

drivers/i2c/busses/i2c-cros-ec-tunnel.c +3 -0
index 2737fd8abd32..0cad18ae959e 100644

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

drivers/i2c/i2c-atr.c +1 -1
index c03196da1163..03caa4ef012f 100644

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

drivers/i3c/master.c +3 -0
index c073ee74e3da..33254bc338b9 100644

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

drivers/i3c/master/svc-i3c-master.c +1 -1
index 652a666909a5..fa1f12a89158 100644

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

drivers/infiniband/core/cma.c +3 -1
index 64ace0b968f0..348527cf1e7b 100644

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

drivers/infiniband/core/umem_odp.c +4 -2
index e9fa22d31c23..c48ef6083020 100644

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

drivers/infiniband/hw/hns/hns_roce_main.c +1 -1
index dcd763dbb636..a7e4c951f8fe 100644

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

drivers/infiniband/hw/usnic/usnic_ib_main.c +7 -7
index 13b654ddd3cc..bcf7d8607d56 100644

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

drivers/iommu/iommufd/device.c +17 -1
index ce78c3671539..ff6386fd1e8f 100644

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

drivers/iommu/mtk_iommu.c +13 -13
index de698463e94a..06c0770ff894 100644

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

drivers/leds/rgb/leds-qcom-lpg.c +4 -4
index df469aaa7e6e..a41c2b13766d 100644

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

drivers/mailbox/tegra-hsp.c +60 -12

72 lines not on this page · raw message

drivers/md/dm-ebs-target.c +7 -0
index 66d9622b684d..aead2215d780 100644

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

drivers/md/dm-integrity.c +3 -0
index a36dd749c688..eb2b44f4a61f 100644

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

drivers/md/dm-verity-target.c +8 -0
index 3636387ce565..6ae97da741bb 100644

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

drivers/md/md-bitmap.c +2 -3
index deb40a8ba399..8317e07b326d 100644

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

drivers/md/md.c +13 -9
index a8ac4afc51d9..ca7ae3aad265 100644

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

drivers/md/raid10.c +1 -0
index c300fd609ef0..36b6bf3f8b29 100644

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

drivers/media/common/siano/smsdvb-main.c +2 -0
index f80caaa333da..67c47e3d671d 100644

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

drivers/media/i2c/adv748x/adv748x.h +1 -1
index 6f90f78f58cf..6e2cb95e86ca 100644

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

drivers/media/i2c/ccs/ccs-core.c +4 -2
index 92ee86ca80a6..364026124257 100644

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

drivers/media/i2c/imx219.c +8 -5
index a9a8cd148f4f..a14e571dc62b 100644

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

drivers/media/i2c/ov7251.c +3 -1
index 675fb37a6fea..2fc52b66154c 100644

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

drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c +4 -1
index 774487fb72a3..93579a7009a7 100644

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

drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c +2 -1
index e393e3e668f8..3fe192a1d5a1 100644

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

drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c +5 -1
index f8145998fcaf..8522f71fc901 100644

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

drivers/media/platform/qcom/venus/hfi_parser.c +74 -26

100 lines not on this page · raw message

drivers/media/platform/qcom/venus/hfi_venus.c +16 -2
index f9437b6412b9..ab93757fff4b 100644

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

drivers/media/platform/st/stm32/dma2d/dma2d.c +2 -1
index 92f1edee58f8..3c64e9126025 100644

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

drivers/media/rc/streamzap.c +38 -30

68 lines not on this page · raw message

drivers/media/test-drivers/vim2m.c +3 -3
index 3e3b424b4860..8ca6459286ba 100644

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

drivers/media/test-drivers/visl/visl-core.c +12 -0
index 9970dc739ca5..a28bb8ee21e9 100644

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

drivers/media/usb/uvc/uvc_driver.c +9 -0
index ae2e8bd2b3f7..02cfa12b9cb9 100644

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

drivers/media/v4l2-core/v4l2-dv-timings.c +2 -2
index 2cf5dcee0ce8..4d05873892c1 100644

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

drivers/mfd/ene-kb3930.c +1 -1
index fa0ad2f14a39..9460a67acb0b 100644

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

drivers/misc/pci_endpoint_test.c +5 -1
index af519088732d..c95a2b0b9012 100644

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

drivers/mmc/host/dw_mmc.c +92 -2

94 lines not on this page · raw message

drivers/mmc/host/dw_mmc.h +27 -0
index 4ed81f94f7ca..af16dbb37f26 100644

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

drivers/mtd/inftlcore.c +5 -4
index 9739387cff8c..58c6e1743f5c 100644

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

drivers/mtd/mtdpstore.c +6 -6
index 7ac8ac901306..9cf3872e37ae 100644

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

drivers/mtd/nand/raw/brcmnand/brcmnand.c +1 -1
index 085a16148a68..03d7e26d4953 100644

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

drivers/mtd/nand/raw/r852.c +3 -0
index ed0cf732d20e..36cfe03cd4ac 100644

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

drivers/net/dsa/b53/b53_common.c +10 -0
index 4a2c9a9134d8..cfcda893f1a1 100644

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

drivers/net/dsa/mv88e6xxx/chip.c +29 -1
index 8b01ee3e684a..da7260e505a2 100644

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

drivers/net/dsa/mv88e6xxx/devlink.c +2 -1
index a08dab75e0c0..f57fde02077d 100644

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

drivers/net/ethernet/amd/pds_core/debugfs.c +3 -2
index 4e8579ca1c8c..51f3f73a839a 100644

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

drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c +1 -0
index 8477a93cee6b..b77897aa06c4 100644

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

drivers/net/ethernet/google/gve/gve_ethtool.c +3 -1
index 233e5946905e..22317acf16ba 100644

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

drivers/net/ethernet/intel/igc/igc.h +1 -0
index 85cc16396506..49702169a3d8 100644

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

drivers/net/ethernet/intel/igc/igc_defines.h +5 -1
index a18af5c87cde..cf8b5ac51caa 100644

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

drivers/net/ethernet/intel/igc/igc_main.c +1 -0
index ae93b45cf55e..e2f5c4384455 100644

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

drivers/net/ethernet/intel/igc/igc_ptp.c +74 -39

113 lines not on this page · raw message

drivers/net/ethernet/marvell/octeontx2/nic/qos.c +5 -0
index 4995a2d54d7d..37db19584c14 100644

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

drivers/net/ethernet/mediatek/mtk_eth_soc.c +5 -5
index bdc424123ee6..c201ea20e404 100644

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

drivers/net/ethernet/ti/am65-cpsw-nuss.c +16 -3
index 8ffc1fbb036f..9c8376b27189 100644

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

drivers/net/ethernet/ti/am65-cpsw-nuss.h +1 -1
index f3dad2ab9828..f107198e2572 100644

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

drivers/net/ethernet/ti/icssg/icss_iep.c +102 -52

154 lines not on this page · raw message

drivers/net/ethernet/wangxun/libwx/wx_lib.c +2 -1
index c37500aa0637..c019fe964ece 100644

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

drivers/net/ethernet/wangxun/ngbe/ngbe_main.c +2 -1
index a4d63d2f3c5b..91f0f23c176a 100644

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

drivers/net/phy/sfp.c +2 -0
index e0e4a68cda3e..dc62f141f403 100644

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

drivers/net/ppp/ppp_synctty.c +5 -0
index 52d05ce4a281..02e1c5bd1892 100644

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

drivers/net/usb/asix_devices.c +17 -0
index f7cff58fe044..ec4dcf89cbed 100644

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

drivers/net/usb/cdc_ether.c +7 -0
index 6d61052353f0..a04f758b3ba0 100644

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

drivers/net/usb/r8152.c +6 -0
index 3e5998555f98..bbcefcc7ef8f 100644

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

drivers/net/usb/r8153_ecm.c +6 -0
index 20b2df8d74ae..8d860dacdf49 100644

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

drivers/net/wireless/ath/ath12k/dp_mon.c +1 -1
index f1e57e98bdc6..35f22a4a16cf 100644

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

drivers/net/wireless/ath/ath12k/dp_rx.c +40 -2

42 lines not on this page · raw message

drivers/net/wireless/atmel/at76c50x-usb.c +1 -1
index 447b51cff8f9..c1a92c7f0f8e 100644

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

drivers/net/wireless/mediatek/mt76/eeprom.c +4 -0
index 1de3c734e136..49e6c866a57f 100644

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

drivers/net/wireless/mediatek/mt76/mt76x2/usb.c +1 -0
index 55068f3252ef..d80430999219 100644

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

drivers/net/wireless/realtek/rtw89/core.c +2 -0
index 535393eca564..d1d8fd812cbf 100644

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

drivers/net/wireless/realtek/rtw89/core.h +6 -0
index ee6ae2a0c798..16aad0f8393a 100644

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

drivers/net/wireless/realtek/rtw89/pci.c +10 -0
index 98af64444d3e..30cc6e03c355 100644

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

drivers/net/wireless/ti/wl1251/tx.c +3 -1
index e9dc3c72bb11..06dc74cc6cb5 100644

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

drivers/ntb/ntb_transport.c +1 -1
index c84fadfc63c5..76cc5b49a5f1 100644

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

drivers/nvme/host/rdma.c +1 -7
index c04317a966b3..055b95d2ce93 100644

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

drivers/nvme/target/fc.c +0 -14
index 8a02ed63b156..d40d5a4ea932 100644

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

drivers/nvme/target/fcloop.c +1 -1
index e6d4226827b5..4b35bdcac185 100644

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

drivers/of/irq.c +46 -34

80 lines not on this page · raw message

drivers/pci/controller/pcie-brcmstb.c +9 -4
index 44d385f5c27c..940af934ce1b 100644

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

drivers/pci/controller/vmd.c +6 -6
index 5ff2066aa516..dfa222e02c4d 100644

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

drivers/pci/pci.c +0 -4
index bcce569a8339..095fa1910d36 100644

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

drivers/pci/probe.c +4 -1
index bcd1ba829e1f..8e5d818c29a9 100644

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

drivers/perf/arm_pmu.c +3 -5
index d712a19e47ac..b3bb4d62f13d 100644

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

drivers/phy/freescale/phy-fsl-imx8m-pcie.c +11 -0
index e98361dcdead..afd52392cd53 100644

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

drivers/pinctrl/qcom/pinctrl-msm.c +6 -6
index 115b83e2d8e6..b252fc22f64e 100644

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

drivers/platform/x86/asus-laptop.c +6 -3
index 761029f39314..c22346570510 100644

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

drivers/ptp/ptp_ocp.c +1 -0
index 13343c319877..4899fdf9bdf7 100644

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

drivers/pwm/pwm-fsl-ftm.c +6 -0
index b7c6045c5d08..2c60d67e9a4a 100644

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

drivers/pwm/pwm-mediatek.c +6 -2
index 6adb0ed01906..6b1a75b6bd12 100644

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

drivers/pwm/pwm-rcar.c +13 -11
index 5b5f357c44de..18fa2d40d936 100644

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

drivers/scsi/hisi_sas/hisi_sas_v2_hw.c +7 -2
index 73b378837da7..e6bcc3171391 100644

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

drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +12 -2
index ff5f86867dbf..596b5426d995 100644

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

drivers/scsi/megaraid/megaraid_sas_base.c +7 -2
index 4cc93cb79b8b..dd3630b09aa2 100644

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

drivers/scsi/megaraid/megaraid_sas_fusion.c +4 -1
index 8a83f3fc2b86..5ebcb582cf0c 100644

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

drivers/scsi/scsi_transport_iscsi.c +5 -2
index deeb657981a6..0c30fec55547 100644

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

drivers/scsi/st.c +1 -1
index bdbe94f30f07..900322bad4f3 100644

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

drivers/soc/samsung/exynos-chipid.c +2 -0
index 7ba45c4aff97..1307f6d61c98 100644

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

drivers/spi/spi-cadence-quadspi.c +6 -0
index 08811577d8f8..bf9b816637d0 100644

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

drivers/target/target_core_spc.c +1 -1
index 50290abc07bc..f110f932ba05 100644

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

drivers/thermal/rockchip_thermal.c +1 -0
index 77231a9d28ff..d306ca9a9902 100644

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

drivers/ufs/host/ufs-exynos.c +6 -0
index 268189f01e15..d138b66d5e35 100644

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

drivers/usb/typec/ucsi/ucsi_ccg.c +5 -0
index 7c7f388aac96..35f4c4482fca 100644

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

drivers/vdpa/mlx5/core/mr.c +5 -2
index aa4ab4c847fd..165730656934 100644

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

drivers/video/backlight/led_bl.c +4 -1
index 032f8bddf872..0e53e427a91d 100644

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

drivers/video/fbdev/omap2/omapfb/dss/dispc.c +5 -1
index 21fef9db90d2..4f09111f8b57 100644

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

drivers/xen/balloon.c +24 -10
index db61bcb3aab1..b0b52fa8fba6 100644

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

drivers/xen/xenfs/xensyms.c +2 -2
index b799bc759c15..088b7f02c358 100644

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

fs/Kconfig +1 -0
index 02a9237807a7..85ae4953f2d7 100644

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

fs/btrfs/disk-io.c +12 -0
index 967c6b5dd0a4..2387210231f2 100644

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

fs/btrfs/inode.c +5 -1
index cedffa567a75..11c4d69177f0 100644

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

fs/btrfs/super.c +1 -2
index fb4992570c2b..2045ac3d94c4 100644

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

fs/btrfs/zoned.c +6 -0
index c4463c3f2068..197dfafbf401 100644

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

fs/ext4/inode.c +48 -20

68 lines not on this page · raw message

fs/ext4/namei.c +1 -1
index 96a048d3f51b..2e4575becd4f 100644

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

fs/ext4/super.c +17 -0
index a4d7af7495b7..751c879271e0 100644

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

fs/ext4/xattr.c +10 -1
index df5ab1a75fc4..ca22aa9e04b4 100644

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

fs/f2fs/checkpoint.c +6 -15
index c6317596e695..3ec815e615e7 100644

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

fs/f2fs/f2fs.h +30 -2
index d28e3df61cc4..5f6f159be456 100644

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

fs/f2fs/inode.c +5 -3
index 7ad4a9241759..06941705e893 100644

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

fs/f2fs/node.c +31 -79

110 lines not on this page · raw message

fs/f2fs/super.c +4 -0
index aa0e7cc2489a..4cc87921aac3 100644

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

fs/file.c +17 -9
index a178efc8cf4b..f8cf6728c6a0 100644

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

fs/fuse/virtio_fs.c +3 -0
index d84dacbdce2c..a6814bea0e0a 100644

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

fs/hfs/bnode.c +6 -0
index 6add6ebfef89..cb823a8a6ba9 100644

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

fs/hfsplus/bnode.c +6 -0
index 87974d5e6791..079ea80534f7 100644

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

fs/isofs/export.c +1 -1
index 35768a63fb1d..421d247fae52 100644

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

fs/jbd2/journal.c +0 -1
index dfbb8f73861f..ddde73299d62 100644

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

fs/jfs/jfs_dmap.c +7 -3
index f9009e4f9ffd..0e1019382cf5 100644

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

fs/jfs/jfs_imap.c +2 -2
index b30e4cf2f579..9a6d504228e7 100644

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

fs/namespace.c +2 -1
index b4385e2413d5..671e266b8fc5 100644

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

fs/nfs/Kconfig +1 -1
index 7df2503cef6c..2d99f5e7a686 100644

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

fs/nfs/internal.h +0 -7
index a92b234ae087..ca49d999159e 100644

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

fs/nfs/nfs4session.h +0 -4
index 351616c61df5..f9c291e2165c 100644

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

fs/nfsd/Kconfig +1 -0
index 43b88eaf0673..05c10f70456c 100644

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

fs/nfsd/nfs4state.c +1 -1
index 140784446ad2..e2875706e6bf 100644

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

fs/nfsd/nfsfh.h +0 -7
index 40426f899e76..f1420d3510d2 100644

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

fs/overlayfs/overlayfs.h +0 -2
index 981967e507b3..23b5c5f9c782 100644

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

fs/overlayfs/super.c +5 -0
index 2c056d737c27..93ee57bc82ad 100644

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

fs/smb/client/cifsproto.h +2 -0
index 85b0a30493a6..7f97e5468652 100644

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

fs/smb/client/connect.c +11 -25
index 2d2e41ac9e9d..54aba8d642ee 100644

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

fs/smb/client/file.c +28 -0
index cb75b95efb70..d883ed75022c 100644

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

fs/smb/client/fs_context.c +5 -0
index b90cc918de7a..d2e291ef104e 100644

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

fs/smb/client/inode.c +10 -0
index b9cf05e0940d..d93ebd58ecae 100644

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

fs/smb/client/reparse.c +0 -4
index bb246ef0458f..b6556fe3dfa1 100644

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

fs/smb/client/smb2misc.c +5 -4
index 677ef6f99a5b..fadc5fc274eb 100644

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

fs/smb/server/oplock.c +9 -20
index 371a5ead8663..5a5277b4b53b 100644

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

fs/smb/server/oplock.h +0 -1
index 59554b73f60c..0fe931485465 100644

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

fs/smb/server/smb2pdu.c +3 -1
index 8877f9e900b2..d41d67ec5ee5 100644

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

fs/smb/server/transport_ipc.c +6 -1
index 2d7cd7f42f27..281101fd1f76 100644

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

fs/smb/server/vfs.c +2 -1
index d0c19ad9d014..fa5b7e63eb83 100644

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

fs/udf/inode.c +1 -0
index e98c198f85b9..2f73119c7ec9 100644

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

fs/userfaultfd.c +25 -26

51 lines not on this page · raw message

include/drm/drm_kunit_helpers.h +28 -0
index 3ae19892229d..07e9a451262b 100644

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

include/linux/backing-dev.h +1 -0
index 1a97277f99b1..ae8c46ad9222 100644

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

include/linux/hid.h +9 -0
index 774cb25dec34..38e161a827bd 100644

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

include/linux/nfs.h +0 -7
index ceb70a926b95..095a95c1fae8 100644

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

include/linux/pgtable.h +8 -6
index 3c3a7dede0ef..e2c9a0c259df 100644

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

include/linux/rtnetlink.h +22 -0
index 3d6cf306cd55..0cbbbded0331 100644

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

include/linux/tpm.h +1 -0
index 4ee9d13749ad..5f4998626a98 100644

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

include/net/sctp/structs.h +2 -1
index 5a24d6d8522a..d943bb454b17 100644

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

include/net/xdp.h +8 -1
index de08c8e0d134..b39ac83618a5 100644

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

include/uapi/linux/kfd_ioctl.h +2 -0
index cd924c959d73..1f753e72fa2c 100644

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

include/uapi/linux/landlock.h +2 -0
index 81d09ef9aa50..f82a66361a1e 100644

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

include/xen/interface/xen-mca.h +1 -1
index 464aa6b3a5f9..1c9afbe8cc26 100644

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

io_uring/kbuf.c +2 -0
index 0d9b8a8b42c2..8c6611fe4f46 100644

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

io_uring/net.c +2 -0
index 1a0e98e19dc0..4948a67bbac4 100644

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

kernel/locking/lockdep.c +3 -0
index 3468d8230e5f..9419a79e8833 100644

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

kernel/sched/cpufreq_schedutil.c +15 -3
index a49f136014ce..259521b179aa 100644

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

kernel/trace/ftrace.c +5 -3
index 99fdeee3bcd8..650493ed76cd 100644

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

kernel/trace/trace_events.c +3 -1
index 562efd668572..1a936978c2b1 100644

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

kernel/trace/trace_events_filter.c +2 -2
index 0c611b281a5b..f50c2ad43f3d 100644

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

kernel/trace/trace_events_synth.c +0 -1
index ccd6703ac50b..794e72dbb12d 100644

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

kernel/trace/trace_probe.c +28 -0
index 8c73156a7eb9..606190239c87 100644

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

lib/sg_split.c +0 -2
index 60a0babebf2e..0f89aab5c671 100644

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

lib/string.c +10 -3
index be26623953d2..d49243af5bf2 100644

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

lib/zstd/common/portability_macros.h +1 -1
index 0e3b2c0a527d..0dde8bf56595 100644

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

mm/filemap.c +1 -0
index d7c79a69afc8..05eb77623a10 100644

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

mm/gup.c +2 -2
index 69d259f7bf37..29c719b3ab31 100644

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

mm/hugetlb.c +1 -1
index faded25b19be..7c196b754071 100644

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

mm/memory-failure.c +8 -3
index 9018a1162efc..a96840c41581 100644

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

mm/memory.c +2 -2
index d04faa09eaf6..8b80db7115e5 100644

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

mm/mremap.c +5 -5
index df71010baabe..d458ef218a37 100644

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

mm/page_vma_mapped.c +9 -4
index e0b368e545ed..dcc1ee3d059e 100644

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

mm/rmap.c +1 -1
index 9f795b93cf40..968b85a67b1a 100644

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

mm/vmscan.c +1 -1
index 49456b725755..258f5472f1e9 100644

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

net/8021q/vlan_dev.c +4 -27
index 2a7f1b15714a..e9326f322d7a 100644

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

net/bluetooth/hci_event.c +3 -2
index 1e689d8c00a5..4029330e29a9 100644

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

net/bluetooth/l2cap_core.c +19 -2
index 8d6fc1869503..d4dcdb2370cc 100644

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

net/bridge/br_vlan.c +3 -1
index be714b4d7b43..a1c22eab71ff 100644

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

net/core/filter.c +44 -36

80 lines not on this page · raw message

net/core/page_pool.c +7 -1
index 31f923e7b5c4..2f2f63c8cf4b 100644

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

net/dsa/dsa.c +49 -10

59 lines not on this page · raw message

net/dsa/tag_8021q.c +1 -1
index cbdfc392f7e0..a5420421e462 100644

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

net/ethtool/netlink.c +5 -3
index c1ad63bee8ea..7a9d8fe78ae9 100644

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

net/ipv6/route.c +4 -4
index 2e98531fa51a..53197087353a 100644

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

net/mac80211/iface.c +3 -0
index fae701248f05..eaa4e5c6a5c3 100644

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

net/mac80211/mesh_hwmp.c +10 -4
index 51369072984e..c6395551f5df 100644

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

net/mctp/af_mctp.c +3 -0
index 28be85d05533..8032cfba22d1 100644

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

net/mptcp/sockopt.c +28 -0
index d0f73b9180c7..31f6899ef71a 100644

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

net/mptcp/subflow.c +12 -7
index b3eeeb948b61..f4b8ca8be81e 100644

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

net/netfilter/nft_set_pipapo_avx2.c +2 -1
index b8d3c3213efe..c15db28c5ebc 100644

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

net/openvswitch/flow_netlink.c +2 -1
index 9c13e14034d3..089ab1826e1d 100644

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

net/sched/cls_api.c +55 -19

74 lines not on this page · raw message

net/sched/sch_codel.c +1 -4
index d7a4874543de..5f2e06815745 100644

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

net/sched/sch_fq_codel.c +2 -4
index 8c4fee063436..9330923a624c 100644

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

net/sched/sch_sfq.c +50 -16

66 lines not on this page · raw message

net/sctp/socket.c +14 -8
index 108a0745c0c3..b84c5e0a76f5 100644

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

net/sctp/transport.c +2 -0
index 2abe45af98e7..31eca29b6cfb 100644

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

net/tipc/link.c +1 -0
index d0143823658d..6c6d8546c578 100644

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

net/tls/tls_main.c +6 -0
index 0a67b93a52ec..d7dea82bcf56 100644

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

scripts/sign-file.c +68 -64

132 lines not on this page · raw message

scripts/ssl-common.h new file +32 -0
new file mode 100644
index 000000000000..2db0e181143c

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

security/landlock/errata.h new file +87 -0

87 lines not on this page · raw message

security/landlock/setup.c +30 -0
index 0f6113528fa4..8b46e8748b8a 100644

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

security/landlock/setup.h +3 -0
index 1daffab1ab4b..420dceca35d2 100644

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

security/landlock/syscalls.c +18 -4
index 336bedaa3af6..eb23df4e836c 100644

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

sound/pci/hda/hda_intel.c +43 -1

44 lines not on this page · raw message

sound/pci/hda/patch_realtek.c +1 -0
index 5179061f57b5..2f3f295f2b0c 100644

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

sound/soc/amd/yc/acp6x-mach.c +14 -0
index 2981bd1c3530..622df58a9694 100644

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

sound/soc/codecs/cs42l43-jack.c +3 -0
index 9f5f1a92561d..0b8e88b19888 100644

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

sound/soc/codecs/lpass-wsa-macro.c +84 -33

117 lines not on this page · raw message

sound/soc/dwc/dwc-i2s.c +6 -7
index 9ea4be56d3b7..43edad6c887d 100644

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

sound/soc/fsl/fsl_audmix.c +11 -5
index 0ab2c1962117..d8e44470f501 100644

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

sound/soc/intel/avs/pcm.c +2 -1
index bb1e77ac78e0..781019685b94 100644

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

sound/soc/qcom/lpass.h +2 -1
index bdfe66ec3314..ea12f02eca55 100644

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

sound/soc/qcom/qdsp6/q6apm-dai.c +5 -4
index 739856a00017..def05ce58d17 100644

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

sound/soc/qcom/qdsp6/q6apm.c +17 -1
index 2a2a5bd98110..ca57413cb784 100644

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

sound/soc/qcom/qdsp6/q6apm.h +3 -0
index f486bd639b9f..74fa4fed881b 100644

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

sound/soc/qcom/qdsp6/q6asm-dai.c +13 -6
index 5e14cd0a38de..82ef8fdb914e 100644

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

sound/soc/sof/topology.c +2 -2
index cf1e63daad86..7afded323150 100644

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

sound/usb/midi.c +74 -6

80 lines not on this page · raw message

tools/objtool/check.c +5 -0
index 9102ad5985cc..8ba5bcfd5cd5 100644

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

tools/power/cpupower/bench/parse.c +4 -0
index e63dc11fa3a5..48e25be6e163 100644

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

tools/testing/ktest/ktest.pl +8 -0
index 83d65c2abaf0..331601575743 100755

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

tools/testing/kunit/qemu_configs/sh.py +3 -1
index 78a474a5b95f..f00cb89fdef6 100644

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

tools/testing/radix-tree/linux.c +2 -2
index d587a558997f..11149bd12a1f 100644

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

tools/testing/selftests/futex/functional/futex_wait_wouldblock.c +1 -1
index 7d7a6a06cdb7..2d8230da9064 100644

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

tools/testing/selftests/landlock/base_test.c +45 -1

46 lines not on this page · raw message

tools/testing/selftests/mm/charge_reserved_hugetlb.sh +2 -2
index 8e00276b4e69..dc3fc438b3d9 100755

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

tools/testing/selftests/mm/hugetlb_reparenting_test.sh +1 -1
index 14d26075c863..302f2c7003f0 100755

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

tools/testing/selftests/net/mptcp/diag.sh +3 -20
index 7f89623f1080..f00c97b2a6b5 100755

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

tools/testing/selftests/net/mptcp/mptcp_connect.c +7 -4
index d240d02fa443..c83a8b47bbdf 100644

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

tools/testing/selftests/net/mptcp/mptcp_connect.sh +1 -18
index d203d314b7b2..3763ffa214d5 100755

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

tools/testing/selftests/net/mptcp/mptcp_join.sh +1 -19
index 497dc187387f..442b7220468a 100755

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

tools/testing/selftests/net/mptcp/mptcp_lib.sh +18 -0
index d98c89f31afe..919f4f1018eb 100644

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

tools/testing/selftests/net/mptcp/simult_flows.sh +1 -18
index f24bd2bf0831..214a89fce8b8 100755

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.