Linux 6.6.7
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.6.7 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/ABI/testing/sysfs-bus-optee-devices | 9 Documentation/devicetree/bindings/interrupt-controller/qcom,mpm.yaml | 4 Makefile | 2 arch/arm/boot/dts/broadcom/bcm2711-rpi-400.dts | 4 arch/arm/boot/dts/nxp/imx/imx6q-skov-reve-mi1010ait-1cp1.dts | 4 arch/arm/boot/dts/nxp/imx/imx6ul-pico.dtsi | 2 arch/arm/boot/dts/nxp/imx/imx7s.dtsi | 8 arch/arm/boot/dts/nxp/mxs/imx28-xea.dts | 1 arch/arm/boot/dts/rockchip/rk3128.dtsi | 2 arch/arm/include/asm/kexec.h | 4 arch/arm/kernel/Makefile | 2 arch/arm/mach-imx/mmdc.c | 7 arch/arm64/boot/dts/freescale/imx8-apalis-v1.1.dtsi | 5 arch/arm64/boot/dts/freescale/imx8-ss-lsio.dtsi | 12 arch/arm64/boot/dts/freescale/imx8mp.dtsi | 2 arch/arm64/boot/dts/freescale/imx8mq.dtsi | 2 arch/arm64/boot/dts/freescale/imx93-tqma9352-mba93xxla.dts | 2 arch/arm64/boot/dts/freescale/imx93.dtsi | 2 arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | 2 arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | 2 arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts | 12 arch/arm64/boot/dts/mediatek/mt7986a.dtsi | 24 arch/arm64/boot/dts/mediatek/mt8173-evb.dts | 4 arch/arm64/boot/dts/mediatek/mt8183-evb.dts | 52 +- arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi | 8 arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 96 +-- arch/arm64/boot/dts/mediatek/mt8183-pumpkin.dts | 12 arch/arm64/boot/dts/mediatek/mt8183.dtsi | 242 +++++----- arch/arm64/boot/dts/mediatek/mt8186.dtsi | 44 + arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi | 2 arch/arm64/boot/dts/mediatek/mt8195.dtsi | 6 arch/arm64/boot/dts/rockchip/rk3328.dtsi | 2 arch/arm64/boot/dts/rockchip/rk3399.dtsi | 6 arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi | 2 arch/loongarch/net/bpf_jit.c | 12 arch/mips/Kconfig | 2 arch/mips/include/asm/mach-loongson64/boot_param.h | 9 arch/mips/kernel/process.c | 25 - arch/mips/loongson64/env.c | 10 arch/mips/loongson64/init.c | 47 + arch/parisc/Kconfig | 7 arch/parisc/include/asm/bug.h | 36 - arch/powerpc/kernel/trace/ftrace_entry.S | 4 arch/riscv/Kconfig.socs | 1 arch/riscv/errata/andes/errata.c | 20 arch/riscv/kernel/traps_misaligned.c | 6 arch/s390/mm/pgtable.c | 2 arch/x86/coco/tdx/tdx.c | 1 arch/x86/entry/common.c | 97 +++- arch/x86/entry/entry_64_compat.S | 77 --- arch/x86/include/asm/ia32.h | 23 arch/x86/include/asm/idtentry.h | 4 arch/x86/include/asm/proto.h | 4 arch/x86/kernel/cpu/amd.c | 3 arch/x86/kernel/idt.c | 2 arch/x86/kernel/sev.c | 11 arch/x86/kvm/svm/svm.c | 8 arch/x86/mm/mem_encrypt_amd.c | 11 arch/x86/xen/enlighten_pv.c | 2 arch/x86/xen/xen-asm.S | 2 drivers/base/cpu.c | 6 drivers/base/devcoredump.c | 3 drivers/base/memory.c | 18 drivers/base/regmap/regcache.c | 3 drivers/firmware/arm_scmi/perf.c | 87 ++- drivers/gpio/gpiolib-sysfs.c | 15 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell.h | 5 drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c | 15 drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 5 drivers/gpu/drm/amd/amdgpu/mmhub_v1_8.c | 6 drivers/gpu/drm/amd/amdgpu/psp_v13_0.c | 10 drivers/gpu/drm/amd/amdgpu/soc15.c | 3 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 3 drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c | 10 drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 3 drivers/gpu/drm/bridge/Kconfig | 1 drivers/gpu/drm/drm_atomic_helper.c | 78 ++- drivers/gpu/drm/i915/display/icl_dsi.c | 7 drivers/gpu/drm/i915/display/intel_crt.c | 5 drivers/gpu/drm/i915/display/intel_display.c | 12 drivers/gpu/drm/i915/display/intel_display.h | 3 drivers/gpu/drm/i915/display/intel_dp.c | 4 drivers/gpu/drm/i915/display/intel_dp_mst.c | 20 drivers/gpu/drm/i915/display/intel_dvo.c | 6 drivers/gpu/drm/i915/display/intel_hdmi.c | 4 drivers/gpu/drm/i915/display/intel_lvds.c | 5 drivers/gpu/drm/i915/display/intel_sdvo.c | 8 drivers/gpu/drm/i915/display/intel_tv.c | 8 drivers/gpu/drm/i915/display/vlv_dsi.c | 18 drivers/gpu/drm/nouveau/dispnv50/disp.c | 2 drivers/gpu/drm/nouveau/include/nvkm/core/event.h | 4 drivers/gpu/drm/nouveau/nvkm/core/event.c | 12 drivers/hwmon/acpi_power_meter.c | 4 drivers/hwmon/nzxt-kraken2.c | 4 drivers/hwtracing/coresight/coresight-etm-perf.c | 4 drivers/hwtracing/coresight/coresight-etm4x-core.c | 6 drivers/hwtracing/coresight/ultrasoc-smb.c | 58 -- drivers/hwtracing/coresight/ultrasoc-smb.h | 6 drivers/hwtracing/ptt/hisi_ptt.c | 5 drivers/i2c/busses/i2c-designware-common.c | 16 drivers/i2c/busses/i2c-ocores.c | 4 drivers/infiniband/core/umem.c | 6 drivers/infiniband/core/verbs.c | 2 drivers/infiniband/hw/bnxt_re/main.c | 2 drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 13 drivers/infiniband/hw/irdma/hw.c | 16 drivers/infiniband/hw/irdma/main.c | 2 drivers/infiniband/hw/irdma/main.h | 2 drivers/infiniband/hw/irdma/verbs.c | 35 + drivers/infiniband/hw/irdma/verbs.h | 1 drivers/infiniband/ulp/rtrs/rtrs-clt.c | 7 drivers/infiniband/ulp/rtrs/rtrs-srv.c | 37 + drivers/leds/trigger/ledtrig-netdev.c | 11 drivers/md/dm-crypt.c | 2 drivers/md/md.c | 24 drivers/md/raid5.c | 4 drivers/misc/mei/client.c | 4 drivers/net/arcnet/arcdevice.h | 2 drivers/net/arcnet/com20020-pci.c | 89 +-- drivers/net/dsa/microchip/ksz_common.c | 16 drivers/net/dsa/mv88e6xxx/pcs-639x.c | 31 + drivers/net/ethernet/aquantia/atlantic/aq_ptp.c | 10 drivers/net/ethernet/aquantia/atlantic/aq_ptp.h | 4 drivers/net/ethernet/aquantia/atlantic/aq_ring.c | 18 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c | 1 drivers/net/ethernet/broadcom/tg3.c | 42 + drivers/net/ethernet/broadcom/tg3.h | 4 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c | 29 + drivers/net/ethernet/hisilicon/hns/hns_enet.c | 53 +- drivers/net/ethernet/hisilicon/hns/hns_enet.h | 3 drivers/net/ethernet/intel/i40e/i40e_main.c | 2 drivers/net/ethernet/intel/iavf/iavf_ethtool.c | 12 drivers/net/ethernet/intel/iavf/iavf_txrx.h | 1 drivers/net/ethernet/intel/ice/ice_vf_vsi_vlan_ops.c | 11 drivers/net/ethernet/marvell/octeontx2/af/mbox.h | 2 drivers/net/ethernet/marvell/octeontx2/af/mcs.c | 18 drivers/net/ethernet/marvell/octeontx2/af/mcs.h | 2 drivers/net/ethernet/marvell/octeontx2/af/mcs_reg.h | 31 + drivers/net/ethernet/marvell/octeontx2/af/rvu.c | 3 drivers/net/ethernet/marvell/octeontx2/af/rvu.h | 1 drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c | 5 drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c | 8 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c | 8 drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.c | 4 drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.h | 1 drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c | 6 drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 9 drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c | 20 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c | 127 +++-- drivers/net/ethernet/pensando/ionic/ionic_dev.h | 2 drivers/net/ethernet/pensando/ionic/ionic_lif.c | 16 drivers/net/ethernet/realtek/r8169_main.c | 7 drivers/net/ethernet/stmicro/stmmac/dwmac5.c | 45 - drivers/net/ethernet/stmicro/stmmac/dwmac5.h | 4 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c | 3 drivers/net/ethernet/stmicro/stmmac/hwif.h | 4 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 8 drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 1 drivers/net/hyperv/Kconfig | 1 drivers/net/usb/r8152.c | 27 - drivers/nvme/host/nvme.h | 5 drivers/nvme/host/pci.c | 16 drivers/nvmem/core.c | 6 drivers/of/dynamic.c | 5 drivers/parport/parport_pc.c | 21 drivers/platform/mellanox/mlxbf-bootctl.c | 39 + drivers/platform/mellanox/mlxbf-pmc.c | 14 drivers/platform/surface/aggregator/core.c | 5 drivers/platform/x86/Kconfig | 2 drivers/platform/x86/asus-nb-wmi.c | 11 drivers/platform/x86/asus-wmi.c | 8 drivers/platform/x86/wmi.c | 5 drivers/powercap/dtpm_cpu.c | 17 drivers/scsi/be2iscsi/be_main.c | 1 drivers/scsi/sd.c | 53 -- drivers/tee/optee/device.c | 17 drivers/tty/serial/8250/8250_dw.c | 1 drivers/tty/serial/8250/8250_early.c | 1 drivers/tty/serial/8250/8250_omap.c | 14 drivers/tty/serial/amba-pl011.c | 112 ++-- drivers/tty/serial/ma35d1_serial.c | 10 drivers/tty/serial/sc16is7xx.c | 12 drivers/usb/gadget/function/f_hid.c | 7 drivers/usb/gadget/udc/core.c | 4 drivers/usb/host/xhci-pci.c | 2 drivers/usb/typec/class.c | 5 drivers/vdpa/mlx5/net/mlx5_vnet.c | 7 fs/nilfs2/sufile.c | 42 + fs/nilfs2/the_nilfs.c | 6 fs/smb/client/cifsfs.c | 174 ++++++- fs/smb/client/smb2ops.c | 2 include/drm/drm_atomic_helper.h | 2 include/linux/cpuhotplug.h | 1 include/linux/highmem.h | 2 include/linux/hrtimer.h | 4 include/linux/hugetlb.h | 5 include/linux/kprobes.h | 13 include/linux/rethook.h | 7 include/linux/scmi_protocol.h | 10 include/linux/stmmac.h | 1 include/net/genetlink.h | 2 include/net/tcp.h | 9 include/rdma/ib_umem.h | 9 include/rdma/ib_verbs.h | 1 io_uring/io_uring.c | 9 io_uring/kbuf.c | 8 io_uring/rsrc.h | 7 kernel/Kconfig.kexec | 1 kernel/bpf/core.c | 12 kernel/cgroup/legacy_freezer.c | 8 kernel/cpu.c | 8 kernel/events/core.c | 61 +- kernel/kprobes.c | 4 kernel/time/hrtimer.c | 33 - kernel/trace/rethook.c | 23 kernel/trace/ring_buffer.c | 23 kernel/trace/trace.c | 158 ++---- kernel/workqueue.c | 22 lib/group_cpus.c | 22 lib/zstd/common/fse_decompress.c | 2 mm/damon/sysfs.c | 2 mm/filemap.c | 2 mm/hugetlb.c | 7 mm/memory_hotplug.c | 15 net/core/drop_monitor.c | 4 net/core/filter.c | 19 net/core/scm.c | 6 net/ipv4/ip_gre.c | 11 net/ipv4/tcp.c | 22 net/ipv4/tcp_input.c | 6 net/ipv6/ip6_fib.c | 6 net/netfilter/ipset/ip_set_core.c | 14 net/netfilter/nf_bpf_link.c | 10 net/netfilter/nf_tables_api.c | 5 net/netfilter/nft_dynset.c | 13 net/netfilter/nft_exthdr.c | 4 net/netfilter/nft_fib.c | 8 net/netfilter/nft_set_pipapo.c | 3 net/netfilter/xt_owner.c | 16 net/netlink/genetlink.c | 3 net/packet/af_packet.c | 16 net/packet/internal.h | 2 net/psample/psample.c | 3 net/smc/af_smc.c | 4 net/smc/smc_clc.c | 9 net/smc/smc_clc.h | 4 net/tls/tls_sw.c | 2 net/xdp/xsk.c | 5 scripts/checkstack.pl | 8 scripts/dtc/dt-extract-compatibles | 31 - scripts/gcc-plugins/randomize_layout_plugin.c | 3 scripts/gdb/linux/device.py | 16 scripts/kconfig/symbol.c | 14 scripts/mod/modpost.c | 6 sound/core/pcm.c | 1 sound/pci/hda/patch_realtek.c | 6 sound/soc/amd/yc/acp6x-mach.c | 7 sound/soc/codecs/lpass-tx-macro.c | 5 sound/soc/codecs/wm_adsp.c | 8 sound/soc/fsl/fsl_sai.c | 21 sound/soc/qcom/sc8280xp.c | 17 sound/soc/soc-ops.c | 2 sound/usb/mixer_quirks.c | 30 + tools/perf/builtin-list.c | 6 tools/perf/pmu-events/arch/arm64/ampere/ampereone/metrics.json | 2 tools/perf/util/metricgroup.c | 2 268 files changed, 2493 insertions(+), 1381 deletions(-)
Aleksandrs Vinarskis (1):
ALSA: hda/realtek: fix speakers on XPS 9530 (2023)
Alex Bee (2):
arm64: dts: rockchip: Expand reg size of vdec node for RK3399
ARM: dts: rockchip: Fix sdmmc_pwren's pinmux setting for RK3128
Alex Pakhunov (2):
tg3: Move the [rt]x_dropped counters to tg3_napi
tg3: Increment tx_dropped in tg3_tso_bug()
Alexander Stein (2):
arm64: dt: imx93: tqma9352-mba93xxla: Fix LPUART2 pad config
arm64: dts: freescale: imx8-ss-lsio: Fix #pwm-cells
Andi Shyti (1):
serial: ma35d1: Validate console index before assignment
Andy Shevchenko (1):
serial: 8250_dw: Add ACPI ID for Granite Rapids-D UART
AngeloGioacchino Del Regno (7):
arm64: dts: mediatek: cherry: Fix interrupt cells for MT6360 on I2C7
arm64: dts: mediatek: mt8173-evb: Fix regulator-fixed node names
arm64: dts: mediatek: mt8195: Fix PM suspend/resume with venc clocks
arm64: dts: mediatek: mt8183: Fix unit address for scp reserved memory
arm64: dts: mediatek: mt8183: Move thermal-zones to the root node
arm64: dts: mediatek: mt8183-evb: Fix unit_address_vs_reg warning on ntc
arm64: dts: mediatek: mt8186: Change gpu speedbin nvmem cell name
Armin Wolf (2):
platform/x86: wmi: Skip blocks with zero instances
hwmon: (acpi_power_meter) Fix 4.29 MW bug
Arnd Bergmann (2):
drm/bridge: tc358768: select CONFIG_VIDEOMODE_HELPERS
ARM: PL011: Fix DMA support
Arvind Yadav (1):
drm/amdkfd: get doorbell's absolute offset based on the db_size
Asad Kamal (1):
drm/amdgpu: update retry times for psp BL wait
Ashwin Dayanand Kamat (1):
x86/sev: Fix kernel crash due to late update to read-only ghcb_version
Baoquan He (2):
kernel/Kconfig.kexec: drop select of KEXEC for CRASH_DUMP drivers/base/cpu: crash data showing should depends on KEXEC_CORE
Bin Li (1):
ALSA: hda/realtek: Enable headset on Lenovo M90 Gen5
Boerge Struempfel (1):
gpiolib: sysfs: Fix error handling on failed export
Borislav Petkov (AMD) (1):
x86/CPU/AMD: Check vendor in the AMD microcode callback
Brett Creeley (1):
ionic: Fix dim work handling in split interrupt mode
Cameron Williams (1):
parport: Add support for Brainboxes IX/UC/PX parallel cards
Christophe JAILLET (1):
hwmon: (nzxt-kraken2) Fix error handling path in kraken2_probe()
ChunHao Lin (1):
r8169: fix rtl8125b PAUSE frames blasting when suspended
Claudio Imbrenda (1):
KVM: s390/mm: Properly reset no-dat
Clément Léger (1):
riscv: fix misaligned access handling of C.SWSP and C.SDSP
D. Wythe (1):
netfilter: bpf: fix bad registration on nf_defrag
Dan Carpenter (2):
mm/damon/sysfs: eliminate potential uninitialized variable warning io_uring/kbuf: Fix an NULL vs IS_ERR() bug in io_alloc_pbuf_ring()
Daniel Borkmann (1):
packet: Move reference count in packet_sock to atomic_long_t
Daniel Mack (1):
serial: sc16is7xx: address RX timeout interrupt errata
Daniil Maximov (1):
net: atlantic: Fix NULL dereference of skb pointer in
Dave Airlie (1):
nouveau: use an rwlock for the event lock.
David Howells (3):
cifs: Fix non-availability of dedup breaking generic/304
cifs: Fix flushing, invalidation and file size with copy_file_range()
cifs: Fix flushing, invalidation and file size with FICLONE
David Jeffery (1):
md/raid6: use valid sector values to determine if an I/O should wait on the reshape
David Thompson (1):
mlxbf-bootctl: correctly identify secure boot with development keys
Dinghao Liu (3):
net: bnxt: fix a potential use-after-free in bnxt_init_tc
ASoC: wm_adsp: fix memleak in wm_adsp_buffer_populate
scsi: be2iscsi: Fix a memleak in beiscsi_init_wrb_handle()
Douglas Anderson (5):
r8152: Hold the rtnl_lock for all of reset
r8152: Add RTL8152_INACCESSIBLE checks to more loops
r8152: Add RTL8152_INACCESSIBLE to r8156b_wait_loading_flash()
r8152: Add RTL8152_INACCESSIBLE to r8153_pre_firmware_1()
r8152: Add RTL8152_INACCESSIBLE to r8153_aldps_en()Eric Dumazet (2):
ipv6: fix potential NULL deref in fib6_add()
tcp: do not accept ACK of bytes we never sent
Eric Woudstra (1):
arm64: dts: mt7986: fix emmc hs400 mode without uboot initialization
Eugen Hristev (3):
arm64: dts: mediatek: mt7622: fix memory node warning check
arm64: dts: mediatek: mt8183-kukui-jacuzzi: fix dsi unnecessary cells properties
arm64: dts: mediatek: mt8186: fix clock names for power domains
Fabio Estevam (3):
ARM: dts: imx6ul-pico: Describe the Ethernet PHY clock
arm64: dts: imx8-ss-lsio: Add PWM interrupts
ARM: dts: imx28-xea: Pass the 'model' property
Florian Fainelli (1):
scripts/gdb: fix lx-device-list-bus and lx-device-list-class
Florian Westphal (2):
netfilter: nf_tables: fix 'exist' matching on bigendian arches
netfilter: nft_set_pipapo: skip inactive elements during set walk
Francesco Dolcini (1):
platform/surface: aggregator: fix recv_buf() return value
Frank Wunderlich (2):
arm64: dts: mt7986: change cooling trips
arm64: dts: mt7986: define 3W max power to both SFP on BPI-R3
Geetha sowjanya (3):
octeontx2-af: Fix mcs sa cam entries size
octeontx2-af: Fix mcs stats register address
octeontx2-af: Add missing mcs flr handler call
Georg Gottleuber (1):
nvme-pci: Add sleep quirk for Kingston drives
Greg Kroah-Hartman (1):
Linux 6.6.7
Gustavo A. R. Silva (1):
gcc-plugins: randstruct: Update code comment in relayout_struct()
Hans de Goede (1):
platform/x86: asus-wmi: Move i8042 filter install to shared asus-wmi code
Heiko Carstens (1):
checkstack: fix printed address
Heiner Kallweit (1):
leds: trigger: netdev: fix RTNL handling to prevent potential deadlock
Helge Deller (2):
parisc: Reduce size of the bug_table on 64-bit kernel by half
parisc: Fix asm operand number out of range build error in bug table
Hengqi Chen (2):
LoongArch: BPF: Don't sign extend memory load operand
LoongArch: BPF: Don't sign extend function return value
Hsin-Yi Wang (1):
arm64: dts: mt8183: kukui: Fix underscores in node names
Hugh Dickins (1):
mm: fix oops when filemap_map_pmd() without prealloc_pte
Hui Zhou (1):
nfp: flower: fix for take a mutex lock in soft irq context and rcu lock
Ian Rogers (2):
perf list: Fix JSON segfault by setting the used skip_duplicate_pmus callback perf metrics: Avoid segv if default metricgroup isn't set
Ido Schimmel (2):
psample: Require 'CAP_NET_ADMIN' when joining "packets" group
drop_monitor: Require 'CAP_SYS_ADMIN' when joining "events" group
Ilkka Koskinen (1):
perf vendor events arm64: AmpereOne: Add missing DefaultMetricgroupName fields
Ivan Vecera (1):
i40e: Fix unexpected MFS warning message
JP Kobryn (1):
kprobes: consistent rcu api usage for kretprobe holder
Jack Wang (4):
RDMA/rtrs-srv: Do not unconditionally enable irq RDMA/rtrs-clt: Start hb after path_up RDMA/rtrs-clt: Fix the max_send_wr setting RDMA/rtrs-clt: Remove the warnings for req in_use check
Jacob Keller (1):
iavf: validate tx_coalesce_usecs even if rx_coalesce_usecs is zero
James Clark (1):
coresight: Fix crash when Perf and sysfs modes are used concurrently
Jan Bottorff (1):
i2c: designware: Fix corrupted memory seen in the ISR
Jason Zhang (1):
ALSA: pcm: fix out-of-bounds in snd_pcm_state_names
Jens Axboe (1):
io_uring/kbuf: check for buffer list readiness after NULL check
Jia Jie Ho (1):
riscv: Kconfig: Add select ARM_AMBA to SOC_STARFIVE
Jiadong Zhu (1):
drm/amdgpu: disable MCBP by default
Jianheng Zhang (1):
net: stmmac: fix FPE events losing
Jiaxun Yang (3):
MIPS: Loongson64: Reserve vgabios memory on boot
MIPS: Loongson64: Handle more memory types passed from firmware
MIPS: Loongson64: Enable DMA noncoherent support
John Fastabend (2):
net: tls, update curr on splice as well
bpf: sockmap, updating the sg structure should also update curr
Jonas Karlman (1):
arm64: dts: rockchip: Expand reg size of vdec node for RK3328
Jozsef Kadlecsik (1):
netfilter: ipset: fix race condition between swap/destroy and kernel side add/del/test
Junhao He (4):
hwtracing: hisi_ptt: Add dummy callback pmu::read()
coresight: ultrasoc-smb: Fix sleep while close preempt in enable_smb
coresight: ultrasoc-smb: Config SMB buffer before register sink
coresight: ultrasoc-smb: Fix uninitialized before use buf_hw_base
Junxian Huang (1):
RDMA/hns: Fix unnecessary err return when using invalid congest control algorithm
Kalesh AP (1):
RDMA/bnxt_re: Correct module description string
Kirill A. Shutemov (2):
x86/coco: Disable 32-bit emulation by default on TDX and SEV x86/tdx: Allow 32-bit emulation by default
Konrad Dybcio (1):
dt-bindings: interrupt-controller: Allow #power-domain-cells
Konstantin Aladyshev (1):
usb: gadget: f_hid: fix report descriptor allocation
Krzysztof Kozlowski (1):
arm64: dts: mediatek: add missing space before {Kunwu Chan (3):
platform/mellanox: Add null pointer checks for devm_kasprintf() platform/mellanox: Check devm_hwmon_device_register_with_groups() return value
ARM: imx: Check return value of devm_kasprintf in imx_mmdc_perf_init
Lad Prabhakar (1):
riscv: errata: andes: Probe for IOCP only once in boot stage
Le Ma (1):
drm/amdgpu: finalizing mem_partitions at the end of GMC v9 sw_fini
Lee Jones (1):
drm/amd/amdgpu/amdgpu_doorbell_mgr: Correct misdocumented param 'doorbell_index'
Lijo Lazar (2):
drm/amdgpu: Fix refclk reporting for SMU v13.0.6 drm/amdgpu: Restrict extended wait to PSP v13.0.6
Luca Ceresoli (1):
of: dynamic: Fix of_reconfig_get_state_change() return value documentation
Lukasz Luba (1):
powercap: DTPM: Fix missing cpufreq_cpu_put() calls
Malcolm Hart (1):
ASoC: amd: yc: Fix non-functional mic on ASUS E1504FA
Marcin Szycik (1):
ice: Restore fix disabling RX VLAN filtering
Mario Limonciello (1):
ALSA: hda/realtek: Add Framework laptop 16 to quirks
Masahiro Yamada (2):
modpost: fix section mismatch message for RELA
kconfig: fix memory leak from range properties
Masami Hiramatsu (Google) (1):
rethook: Use __rcu pointer for rethook::handler
Mathias Nyman (1):
Revert "xhci: Loosen RPM as default policy to cover for AMD xHC 1.1"
Matthias Reichl (1):
regmap: fix bogus error on regcache_sync success
Md Haris Iqbal (3):
RDMA/rtrs-srv: Check return values while processing info request RDMA/rtrs-srv: Free srv_mr iu only when always_invalidate is true RDMA/rtrs-srv: Destroy path files after making sure no IOs in-flight
Mike Christie (1):
scsi: sd: Fix sshdr use in sd_suspend_common()
Mike Kravetz (1):
hugetlb: fix null-ptr-deref in hugetlb_vma_lock_write
Mike Marciniszyn (3):
RDMA/core: Fix umem iterator when PAGE_SIZE is greater then HCA pgsz RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned RDMA/irdma: Fix support for 64k pages
Mikulas Patocka (1):
dm-crypt: start allocating with MAX_ORDER
Ming Lei (1):
lib/group_cpus.c: avoid acquiring cpu hotplug lock in group_cpus_evenly
Miquel Raynal (1):
nvmem: Do not expect fixed layouts to grab a layout driver
Mukesh Ojha (1):
devcoredump: Send uevent once devcd is ready
Mustafa Ismail (2):
RDMA/irdma: Do not modify to SQD on error
RDMA/irdma: Add wait for suspend on SQD
Nathan Rossi (1):
arm64: dts: imx8mp: imx8mq: Add parkmode-disable-ss-quirk on DWC3
Naveen Mamindlapalli (1):
octeontx2-pf: consider both Rx and Tx packet stats for adaptive interrupt coalescing
Naveen N Rao (1):
powerpc/ftrace: Fix stack teardown in ftrace_no_trace
Neil Armstrong (1):
ASoC: codecs: lpass-tx-macro: set active_decimator correct default value
Nick Terrell (1):
zstd: Fix array-index-out-of-bounds UBSAN warning
Nikolay Borisov (1):
x86: Introduce ia32_enabled()
Nithin Dabilpuram (1):
octeontx2-af: Adjust Tx credits when MCS external bypass is disabled
Nícolas F. R. A. Prado (2):
dt: dt-extract-compatibles: Handle cfile arguments in generator function
dt: dt-extract-compatibles: Don't follow symlinks when walking tree
Pablo Neira Ayuso (2):
netfilter: nf_tables: bail out on mismatching dynset and set expressions
netfilter: nf_tables: validate family when identifying table via handle
Paolo Abeni (1):
tcp: fix mid stream window clamp.
Pascal Noël (1):
ALSA: hda/realtek: Apply quirk for ASUS UM3504DA
Paulo Alcantara (1):
smb: client: fix potential NULL deref in parse_dfs_referrals()
Pavel Begunkov (2):
io_uring/af_unix: disable sending io_uring over sockets
io_uring: fix mutex_unlock with unreferenced ctx
Peng Fan (1):
arm64: dts: imx93: correct mediamix power
Peter Zijlstra (1):
perf: Fix perf_event_validate_size()
Petr Pavlu (3):
tracing: Fix a warning when allocating buffered events fails
tracing: Fix incomplete locking when disabling buffered events
tracing: Fix a possible race when disabling buffered events
Phil Sutter (1):
netfilter: xt_owner: Fix for unsafe access of sk->sk_socket
Philipp Zabel (1):
ARM: dts: imx7: Declare timers compatible with fsl,imx6dl-gpt
RD Babiera (1):
usb: typec: class: fix typec_altmode_put_partner to put plugs
Rahul Bhansali (1):
octeontx2-af: Update Tx link register range
Randy Dunlap (1):
hv_netvsc: rndis_filter needs to select NLS
Ronald Wahl (3):
serial: 8250: 8250_omap: Clear UART_HAS_RHR_IT_DIS bit
serial: 8250: 8250_omap: Do not start RX DMA on THRI interrupt
serial: 8250_omap: Add earlycon support for the AM654 UART controller
Roy Luo (1):
USB: gadget: core: adjust uevent timing on gadget unbind
Ryusuke Konishi (2):
nilfs2: fix missing error check for sb_set_blocksize call
nilfs2: prevent WARNING in nilfs_sufile_set_segment_usage()
Sam Edwards (1):
arm64: dts: rockchip: Fix eMMC Data Strobe PD on rk3588
Samuel Holland (1):
i2c: ocores: Move system PM hooks to the NOIRQ phase
Sarah Grant (1):
ALSA: usb-audio: Add Pioneer DJM-450 mixer controls
Sean Christopherson (1):
KVM: SVM: Update EFER software model on CR0 trap for SEV-ES
Sean Nyekjaer (1):
net: dsa: microchip: provide a list of valid protocols for xmit handler
Shannon Nelson (1):
ionic: fix snprintf format length warning
Shengjiu Wang (1):
ASoC: fsl_sai: Fix no frame sync clock issue on i.MX8MP
Shifeng Li (2):
RDMA/irdma: Fix UAF in irdma_sc_ccq_get_cqe_info() RDMA/irdma: Avoid free the non-cqp_request scratch
Shigeru Yoshida (2):
ipv4: ip_gre: Avoid skb_pull() failure in ipgre_xmit() RDMA/core: Fix uninit-value access in ib_get_eth_speed()
Srinivas Kandagatla (2):
ASoC: ops: add correct range check for limiting volume
ASoC: qcom: sc8280xp: Limit speaker digital volumes
Stefan Eichenberger (1):
arm64: dts: imx8-apalis: set wifi regulator to always-on
Stefan Kerkmann (1):
ARM: dts: imx6q: skov: fix ethernet clock regression
Stefan Wahren (1):
ARM: dts: bcm2711-rpi-400: Fix delete-node of led_act
Steve Sistare (1):
vdpa/mlx5: preserve CVQ vringh index
Steven Rostedt (Google) (5):
ring-buffer: Test last update in 32bit version of __rb_time_read()
ring-buffer: Force absolute timestamp on discard of event
tracing: Always update snapshot buffer size
tracing: Stop current tracer when resizing buffer
tracing: Disable snapshot buffer when stopping instance tracers
Su Hui (3):
highmem: fix a memory copy problem in memcpy_from_folio
misc: mei: client.c: return negative error code in mei_cl_write
misc: mei: client.c: fix problem of return '-EOVERFLOW' in mei_cl_write
Subbaraya Sundeep (2):
octeontx2-pf: Add missing mutex lock in otx2_get_pauseparam
octeontx2-af: Check return value of nix_get_nixlf before using nixlf
Sudeep Holla (2):
firmware: arm_scmi: Fix frequency truncation by promoting multiplier type
firmware: arm_scmi: Fix possible frequency truncation when using level indexing mode
Sumanth Korikkar (2):
mm/memory_hotplug: add missing mem_hotplug_lock mm/memory_hotplug: fix error handling in add_memory_resource()
Sumit Garg (1):
tee: optee: Fix supplicant based device enumeration
Takashi Iwai (1):
ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7
Tejun Heo (1):
workqueue: Make sure that wq_unbound_cpumask is never empty
Thomas Bogendoerfer (1):
MIPS: kernel: Clear FPU states when setting up kernel threads
Thomas Gleixner (3):
hrtimers: Push pending hrtimers away from outgoing CPU earlier
x86/entry: Convert INT 0x80 emulation to IDTENTRY
x86/entry: Do not allow external 0x80 interruptsThomas Reichinger (1):
arcnet: restoring support for multiple Sohard Arcnet cards
Thomas Zimmermann (1):
drm/atomic-helpers: Invoke end_fb_access while owning plane state
Tim Bosse (1):
ALSA: hda/realtek: add new Framework laptop to quirks
Tim Van Patten (1):
cgroup_freezer: cgroup_freezing: Check if not frozen
Tobias Waldekranz (1):
net: dsa: mv88e6xxx: Restore USXGMII support for 6393X
Ulf Hansson (3):
firmware: arm_scmi: Extend perf protocol ops to get number of domains
firmware: arm_scmi: Extend perf protocol ops to get information of a domain
firmware: arm_scmi: Simplify error path in scmi_dvfs_device_opps_add()
Uwe Kleine-König (1):
coresight: etm4x: Remove bogous __exit annotation for some functions
Victor Lu (1):
drm/amdgpu: Do not program VF copy regs in mmhub v1.8 under SRIOV (v2)
Ville Syrjälä (3):
drm/i915/mst: Fix .mode_valid_ctx() return values drm/i915/mst: Reject modes that require the bigjoiner drm/i915: Skip some timing checks on BXT/GLK DSI transcoders
Wen Gu (1):
net/smc: fix missing byte order conversion in CLC handshake
Yewon Choi (1):
xsk: Skip polling event check for unbound socket
Yonghong Song (1):
bpf: Fix a verifier bug due to incorrect branch offset comparison with cpu=v4
Yonglong Liu (2):
net: hns: fix wrong head when modify the tx feature when sending packets
net: hns: fix fake link up on xge port
Yu Kuai (1):
md: don't leave 'MD_RECOVERY_FROZEN' in error path of md_set_readonly()
YuanShang (1):
drm/amdgpu: correct chunk_ptr to a pointer to chunk.
Zhipeng Lu (1):
octeontx2-af: fix a use-after-free in rvu_npa_register_reporters
Greg Kroah-Hartman
maintainerDocumentation/ABI/testing/sysfs-bus-optee-devices +9 -0
@@ -6,3 +6,12 @@ Description: OP-TEE bus provides reference to registered drivers under this directory. The <uuid> matches Trusted Application (TA) driver and corresponding TA in secure OS. Drivers are free to create needed API under optee-ta-<uuid> directory. + +What: /sys/bus/tee/devices/optee-ta-<uuid>/need_supplicant +Date: November 2023 +KernelVersion: 6.7 +Contact: [email protected] +Description: + Allows to distinguish whether an OP-TEE based TA/device requires user-space + tee-supplicant to function properly or not. This attribute will be present for + devices which depend on tee-supplicant to be running.
Documentation/devicetree/bindings/interrupt-controller/qcom,mpm.yaml +4 -0
@@ -62,6 +62,9 @@ properties: - description: MPM pin number - description: GIC SPI number for the MPM pin + '#power-domain-cells': + const: 0 + required: - compatible - reg
@@ -93,4 +96,5 @@ examples: <86 183>, <90 260>, <91 260>; + #power-domain-cells = <0>; };
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 6 -SUBLEVEL = 6 +SUBLEVEL = 7 EXTRAVERSION = NAME = Hurr durr I'ma ninja sloth
arch/arm/boot/dts/broadcom/bcm2711-rpi-400.dts +1 -3
@@ -36,9 +36,7 @@ &led_pwr { gpios = <&gpio 42 GPIO_ACTIVE_HIGH>; }; -&leds { - /delete-node/ led_act; -}; +/delete-node/ &led_act; &pm { /delete-property/ system-power-controller;
arch/arm/boot/dts/nxp/imx/imx6q-skov-reve-mi1010ait-1cp1.dts +2 -2
@@ -37,9 +37,9 @@ panel_in: endpoint { &clks { assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, - <&clks IMX6QDL_CLK_LDB_DI1_SEL>; + <&clks IMX6QDL_CLK_LDB_DI1_SEL>, <&clks IMX6QDL_CLK_ENET_REF_SEL>; assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>, - <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>; + <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>, <&clk50m_phy>; }; &hdmi {
arch/arm/boot/dts/nxp/imx/imx6ul-pico.dtsi +2 -0
@@ -121,6 +121,8 @@ ethphy1: ethernet-phy@1 { max-speed = <100>; interrupt-parent = <&gpio5>; interrupts = <6 IRQ_TYPE_LEVEL_LOW>; + clocks = <&clks IMX6UL_CLK_ENET_REF>; + clock-names = "rmii-ref"; }; }; };
arch/arm/boot/dts/nxp/imx/imx7s.dtsi +4 -4
@@ -454,7 +454,7 @@ iomuxc_lpsr: pinctrl@302c0000 { }; gpt1: timer@302d0000 { - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; reg = <0x302d0000 0x10000>; interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX7D_GPT1_ROOT_CLK>,
@@ -463,7 +463,7 @@ gpt1: timer@302d0000 { }; gpt2: timer@302e0000 { - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; reg = <0x302e0000 0x10000>; interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX7D_GPT2_ROOT_CLK>,
@@ -473,7 +473,7 @@ gpt2: timer@302e0000 { }; gpt3: timer@302f0000 { - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; reg = <0x302f0000 0x10000>; interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX7D_GPT3_ROOT_CLK>,
@@ -483,7 +483,7 @@ gpt3: timer@302f0000 { }; gpt4: timer@30300000 { - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; reg = <0x30300000 0x10000>; interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX7D_GPT4_ROOT_CLK>,
arch/arm/boot/dts/nxp/mxs/imx28-xea.dts +1 -0
@@ -8,6 +8,7 @@ #include "imx28-lwe.dtsi" / { + model = "Liebherr XEA board"; compatible = "lwn,imx28-xea", "fsl,imx28"; };
arch/arm/boot/dts/rockchip/rk3128.dtsi +1 -1
@@ -795,7 +795,7 @@ sdmmc_wp: sdmmc-wp { }; sdmmc_pwren: sdmmc-pwren { - rockchip,pins = <1 RK_PB6 1 &pcfg_pull_default>; + rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_default>; }; sdmmc_bus4: sdmmc-bus4 {
arch/arm/include/asm/kexec.h +0 -4
@@ -2,8 +2,6 @@#ifndef _ARM_KEXEC_H#define _ARM_KEXEC_H -#ifdef CONFIG_KEXEC -/* Maximum physical address we can use pages from */ #define KEXEC_SOURCE_MEMORY_LIMIT (-1UL)/* Maximum address we can reach in physical address mode */
@@ -82,6 +80,4 @@ static inline struct page *boot_pfn_to_page(unsigned long boot_pfn)#endif /* __ASSEMBLY__ */ -#endif /* CONFIG_KEXEC */ -#endif /* _ARM_KEXEC_H */
arch/arm/kernel/Makefile +1 -1
@@ -59,7 +59,7 @@ obj-$(CONFIG_FUNCTION_TRACER) += entry-ftrace.o obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o insn.o patch.o obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o insn.o patch.o obj-$(CONFIG_JUMP_LABEL) += jump_label.o insn.o patch.o -obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o +obj-$(CONFIG_KEXEC_CORE) += machine_kexec.o relocate_kernel.o # Main staffs in KPROBES are in arch/arm/probes/ . obj-$(CONFIG_KPROBES) += patch.o insn.o obj-$(CONFIG_OABI_COMPAT) += sys_oabi-compat.o
arch/arm/mach-imx/mmdc.c +6 -1
@@ -501,6 +501,10 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b name =devm_kasprintf (&pdev->dev,GFP_KERNEL ,"mmdc%d" , ret); +if (!name) { + ret = -ENOMEM ; + goto pmu_release_id; + } pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk; pmu_mmdc->devtype_data = (struct fsl_mmdc_devtype_data *)of_id->data;
@@ -523,9 +527,10 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b pmu_register_err:pr_warn ("MMDC Perf PMU failed (%d), disabled\n" , ret); -ida_simple_remove (&mmdc_ida, pmu_mmdc->id);cpuhp_state_remove_instance_nocalls (cpuhp_mmdc_state, &pmu_mmdc->node);hrtimer_cancel (&pmu_mmdc->hrtimer); +pmu_release_id: +ida_simple_remove (&mmdc_ida, pmu_mmdc->id); pmu_free:kfree (pmu_mmdc);return ret;
arch/arm64/boot/dts/freescale/imx8-apalis-v1.1.dtsi +1 -4
@@ -82,12 +82,9 @@ reg_module_wifi: regulator-module-wifi { pinctrl-0 = <&pinctrl_wifi_pdn>; gpio = <&lsio_gpio1 28 GPIO_ACTIVE_HIGH>; enable-active-high; + regulator-always-on; regulator-name = "wifi_pwrdn_fake_regulator"; regulator-settling-time-us = <100>; - - regulator-state-mem { - regulator-off-in-suspend; - }; }; reg_pcie_switch: regulator-pcie-switch {
arch/arm64/boot/dts/freescale/imx8-ss-lsio.dtsi +8 -4
@@ -36,7 +36,8 @@ lsio_pwm0: pwm@5d000000 { <&pwm0_lpcg 1>; assigned-clocks = <&clk IMX_SC_R_PWM_0 IMX_SC_PM_CLK_PER>; assigned-clock-rates = <24000000>; - #pwm-cells = <2>; + #pwm-cells = <3>; + interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; };
@@ -48,7 +49,8 @@ lsio_pwm1: pwm@5d010000 { <&pwm1_lpcg 1>; assigned-clocks = <&clk IMX_SC_R_PWM_1 IMX_SC_PM_CLK_PER>; assigned-clock-rates = <24000000>; - #pwm-cells = <2>; + #pwm-cells = <3>; + interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; };
@@ -60,7 +62,8 @@ lsio_pwm2: pwm@5d020000 { <&pwm2_lpcg 1>; assigned-clocks = <&clk IMX_SC_R_PWM_2 IMX_SC_PM_CLK_PER>; assigned-clock-rates = <24000000>; - #pwm-cells = <2>; + #pwm-cells = <3>; + interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; };
@@ -72,7 +75,8 @@ lsio_pwm3: pwm@5d030000 { <&pwm3_lpcg 1>; assigned-clocks = <&clk IMX_SC_R_PWM_3 IMX_SC_PM_CLK_PER>; assigned-clock-rates = <24000000>; - #pwm-cells = <2>; + #pwm-cells = <3>; + interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; };
arch/arm64/boot/dts/freescale/imx8mp.dtsi +2 -0
@@ -2030,6 +2030,7 @@ usb_dwc3_0: usb@38100000 { phys = <&usb3_phy0>, <&usb3_phy0>; phy-names = "usb2-phy", "usb3-phy"; snps,gfladj-refclk-lpm-sel-quirk; + snps,parkmode-disable-ss-quirk; }; };
@@ -2072,6 +2073,7 @@ usb_dwc3_1: usb@38200000 { phys = <&usb3_phy1>, <&usb3_phy1>; phy-names = "usb2-phy", "usb3-phy"; snps,gfladj-refclk-lpm-sel-quirk; + snps,parkmode-disable-ss-quirk; }; };
arch/arm64/boot/dts/freescale/imx8mq.dtsi +2 -0
@@ -1649,6 +1649,7 @@ usb_dwc3_0: usb@38100000 { phys = <&usb3_phy0>, <&usb3_phy0>; phy-names = "usb2-phy", "usb3-phy"; power-domains = <&pgc_otg1>; + snps,parkmode-disable-ss-quirk; status = "disabled"; };
@@ -1680,6 +1681,7 @@ usb_dwc3_1: usb@38200000 { phys = <&usb3_phy1>, <&usb3_phy1>; phy-names = "usb2-phy", "usb3-phy"; power-domains = <&pgc_otg2>; + snps,parkmode-disable-ss-quirk; status = "disabled"; };
arch/arm64/boot/dts/freescale/imx93-tqma9352-mba93xxla.dts +1 -1
@@ -577,7 +577,7 @@ pinctrl_uart2: uart2grp { fsl,pins = < MX93_PAD_UART2_TXD__LPUART2_TX 0x31e MX93_PAD_UART2_RXD__LPUART2_RX 0x31e - MX93_PAD_SAI1_TXD0__LPUART2_RTS_B 0x31e + MX93_PAD_SAI1_TXD0__LPUART2_RTS_B 0x51e >; };
arch/arm64/boot/dts/freescale/imx93.dtsi +1 -1
@@ -373,7 +373,7 @@ mediamix: power-domain@44462400 { compatible = "fsl,imx93-src-slice"; reg = <0x44462400 0x400>, <0x44465800 0x400>; #power-domain-cells = <0>; - clocks = <&clk IMX93_CLK_MEDIA_AXI>, + clocks = <&clk IMX93_CLK_NIC_MEDIA_GATE>, <&clk IMX93_CLK_MEDIA_APB>; }; };
arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts +1 -1
@@ -73,7 +73,7 @@ led-1 { }; }; - memory { + memory@40000000 { reg = <0 0x40000000 0 0x40000000>; };
arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts +1 -1
@@ -55,7 +55,7 @@ key-wps { }; }; - memory { + memory@40000000 { reg = <0 0x40000000 0 0x20000000>; };
arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts +7 -5
@@ -126,6 +126,7 @@ sfp1: sfp-1 { compatible = "sff,sfp"; i2c-bus = <&i2c_sfp1>; los-gpios = <&pio 46 GPIO_ACTIVE_HIGH>; + maximum-power-milliwatt = <3000>; mod-def0-gpios = <&pio 49 GPIO_ACTIVE_LOW>; tx-disable-gpios = <&pio 20 GPIO_ACTIVE_HIGH>; tx-fault-gpios = <&pio 7 GPIO_ACTIVE_HIGH>;
@@ -137,6 +138,7 @@ sfp2: sfp-2 { i2c-bus = <&i2c_sfp2>; los-gpios = <&pio 31 GPIO_ACTIVE_HIGH>; mod-def0-gpios = <&pio 47 GPIO_ACTIVE_LOW>; + maximum-power-milliwatt = <3000>; tx-disable-gpios = <&pio 15 GPIO_ACTIVE_HIGH>; tx-fault-gpios = <&pio 48 GPIO_ACTIVE_HIGH>; };
@@ -150,16 +152,16 @@ cpu-active-high { trip = <&cpu_trip_active_high>; }; - cpu-active-low { + cpu-active-med { /* active: set fan to cooling level 1 */ cooling-device = <&fan 1 1>; - trip = <&cpu_trip_active_low>; + trip = <&cpu_trip_active_med>; }; - cpu-passive { - /* passive: set fan to cooling level 0 */ + cpu-active-low { + /* active: set fan to cooling level 0 */ cooling-device = <&fan 0 0>; - trip = <&cpu_trip_passive>; + trip = <&cpu_trip_active_low>; }; }; };
arch/arm64/boot/dts/mediatek/mt7986a.dtsi +20 -4
@@ -374,6 +374,10 @@ mmc0: mmc@11230000 { reg = <0 0x11230000 0 0x1000>, <0 0x11c20000 0 0x1000>; interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; + assigned-clocks = <&topckgen CLK_TOP_EMMC_416M_SEL>, + <&topckgen CLK_TOP_EMMC_250M_SEL>; + assigned-clock-parents = <&apmixedsys CLK_APMIXED_MPLL>, + <&topckgen CLK_TOP_NET1PLL_D5_D2>; clocks = <&topckgen CLK_TOP_EMMC_416M_SEL>, <&infracfg CLK_INFRA_MSDC_HCK_CK>, <&infracfg CLK_INFRA_MSDC_CK>,
@@ -610,22 +614,34 @@ cpu_thermal: cpu-thermal { thermal-sensors = <&thermal 0>; trips { + cpu_trip_crit: crit { + temperature = <125000>; + hysteresis = <2000>; + type = "critical"; + }; + + cpu_trip_hot: hot { + temperature = <120000>; + hysteresis = <2000>; + type = "hot"; + }; + cpu_trip_active_high: active-high { temperature = <115000>; hysteresis = <2000>; type = "active"; }; - cpu_trip_active_low: active-low { + cpu_trip_active_med: active-med { temperature = <85000>; hysteresis = <2000>; type = "active"; }; - cpu_trip_passive: passive { - temperature = <40000>; + cpu_trip_active_low: active-low { + temperature = <60000>; hysteresis = <2000>; - type = "passive"; + type = "active"; }; }; };
arch/arm64/boot/dts/mediatek/mt8173-evb.dts +2 -2
@@ -44,7 +44,7 @@ extcon_usb: extcon_iddig { id-gpio = <&pio 16 GPIO_ACTIVE_HIGH>; }; - usb_p1_vbus: regulator@0 { + usb_p1_vbus: regulator-usb-p1 { compatible = "regulator-fixed"; regulator-name = "usb_vbus"; regulator-min-microvolt = <5000000>;
@@ -53,7 +53,7 @@ usb_p1_vbus: regulator@0 { enable-active-high; }; - usb_p0_vbus: regulator@1 { + usb_p0_vbus: regulator-usb-p0 { compatible = "regulator-fixed"; regulator-name = "vbus"; regulator-min-microvolt = <5000000>;
arch/arm64/boot/dts/mediatek/mt8183-evb.dts +26 -26
136 lines not on this page · raw message
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi +5 -3
@@ -91,6 +91,8 @@ cros_ec_pwm: pwm { &dsi0 { status = "okay"; + /delete-property/#size-cells; + /delete-property/#address-cells; /delete-node/panel@0; ports { port {
@@ -441,20 +443,20 @@ pins2 { }; touchscreen_pins: touchscreen-pins { - touch_int_odl { + touch-int-odl { pinmux = <PINMUX_GPIO155__FUNC_GPIO155>; input-enable; bias-pull-up; }; - touch_rst_l { + touch-rst-l { pinmux = <PINMUX_GPIO156__FUNC_GPIO156>; output-high; }; }; trackpad_pins: trackpad-pins { - trackpad_int { + trackpad-int { pinmux = <PINMUX_GPIO7__FUNC_GPIO7>; input-enable; bias-disable; /* pulled externally */
arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi +48 -48
352 lines not on this page · raw message
arch/arm64/boot/dts/mediatek/mt8183-pumpkin.dts +6 -6
@@ -193,7 +193,7 @@ &mt6358_vsram_gpu_reg { &pio { i2c_pins_0: i2c0 { - pins_i2c{ + pins_i2c { pinmux = <PINMUX_GPIO82__FUNC_SDA0>, <PINMUX_GPIO83__FUNC_SCL0>; mediatek,pull-up-adv = <3>;
@@ -202,7 +202,7 @@ pins_i2c{ }; i2c_pins_1: i2c1 { - pins_i2c{ + pins_i2c { pinmux = <PINMUX_GPIO81__FUNC_SDA1>, <PINMUX_GPIO84__FUNC_SCL1>; mediatek,pull-up-adv = <3>;
@@ -211,7 +211,7 @@ pins_i2c{ }; i2c_pins_2: i2c2 { - pins_i2c{ + pins_i2c { pinmux = <PINMUX_GPIO103__FUNC_SCL2>, <PINMUX_GPIO104__FUNC_SDA2>; mediatek,pull-up-adv = <3>;
@@ -220,7 +220,7 @@ pins_i2c{ }; i2c_pins_3: i2c3 { - pins_i2c{ + pins_i2c { pinmux = <PINMUX_GPIO50__FUNC_SCL3>, <PINMUX_GPIO51__FUNC_SDA3>; mediatek,pull-up-adv = <3>;
@@ -229,7 +229,7 @@ pins_i2c{ }; i2c_pins_4: i2c4 { - pins_i2c{ + pins_i2c { pinmux = <PINMUX_GPIO105__FUNC_SCL4>, <PINMUX_GPIO106__FUNC_SDA4>; mediatek,pull-up-adv = <3>;
@@ -238,7 +238,7 @@ pins_i2c{ }; i2c_pins_5: i2c5 { - pins_i2c{ + pins_i2c { pinmux = <PINMUX_GPIO48__FUNC_SCL5>, <PINMUX_GPIO49__FUNC_SDA5>; mediatek,pull-up-adv = <3>;
arch/arm64/boot/dts/mediatek/mt8183.dtsi +121 -121
252 lines not on this page · raw message
arch/arm64/boot/dts/mediatek/mt8186.dtsi +28 -16
96 lines not on this page · raw message
arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi +1 -1
@@ -362,7 +362,7 @@ &i2c7 { pinctrl-0 = <&i2c7_pins>; pmic@34 { - #interrupt-cells = <1>; + #interrupt-cells = <2>; compatible = "mediatek,mt6360"; reg = <0x34>; interrupt-controller;
arch/arm64/boot/dts/mediatek/mt8195.dtsi +5 -1
@@ -627,6 +627,8 @@ power-domain@MT8195_POWER_DOMAIN_VDEC1 { power-domain@MT8195_POWER_DOMAIN_VENC_CORE1 { reg = <MT8195_POWER_DOMAIN_VENC_CORE1>; + clocks = <&vencsys_core1 CLK_VENC_CORE1_LARB>; + clock-names = "venc1-larb"; mediatek,infracfg = <&infracfg_ao>; #power-domain-cells = <0>; };
@@ -689,6 +691,8 @@ power-domain@MT8195_POWER_DOMAIN_VDEC2 { power-domain@MT8195_POWER_DOMAIN_VENC { reg = <MT8195_POWER_DOMAIN_VENC>; + clocks = <&vencsys CLK_VENC_LARB>; + clock-names = "venc0-larb"; mediatek,infracfg = <&infracfg_ao>; #power-domain-cells = <0>; };
@@ -2665,7 +2669,7 @@ larb20: larb@1b010000 { reg = <0 0x1b010000 0 0x1000>; mediatek,larb-id = <20>; mediatek,smi = <&smi_common_vpp>; - clocks = <&vencsys_core1 CLK_VENC_CORE1_LARB>, + clocks = <&vencsys_core1 CLK_VENC_CORE1_VENC>, <&vencsys_core1 CLK_VENC_CORE1_GALS>, <&vppsys0 CLK_VPP0_GALS_VDO0_VDO1_VENCSYS_CORE1>; clock-names = "apb", "smi", "gals";
arch/arm64/boot/dts/rockchip/rk3328.dtsi +1 -1
@@ -668,7 +668,7 @@ vpu_mmu: iommu@ff350800 { vdec: video-codec@ff360000 { compatible = "rockchip,rk3328-vdec", "rockchip,rk3399-vdec"; - reg = <0x0 0xff360000 0x0 0x400>; + reg = <0x0 0xff360000 0x0 0x480>; interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>, <&cru SCLK_VDEC_CABAC>, <&cru SCLK_VDEC_CORE>;
arch/arm64/boot/dts/rockchip/rk3399.dtsi +4 -2
@@ -1109,7 +1109,9 @@ power-domain@RK3399_PD_VCODEC { power-domain@RK3399_PD_VDU { reg = <RK3399_PD_VDU>; clocks = <&cru ACLK_VDU>, - <&cru HCLK_VDU>; + <&cru HCLK_VDU>, + <&cru SCLK_VDU_CA>, + <&cru SCLK_VDU_CORE>; pm_qos = <&qos_video_m1_r>, <&qos_video_m1_w>; #power-domain-cells = <0>;
@@ -1385,7 +1387,7 @@ vpu_mmu: iommu@ff650800 { vdec: video-codec@ff660000 { compatible = "rockchip,rk3399-vdec"; - reg = <0x0 0xff660000 0x0 0x400>; + reg = <0x0 0xff660000 0x0 0x480>; interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>; clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>, <&cru SCLK_VDU_CA>, <&cru SCLK_VDU_CORE>;
arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi +1 -1
@@ -369,7 +369,7 @@ emmc_cmd: emmc-cmd { emmc_data_strobe: emmc-data-strobe { rockchip,pins = /* emmc_data_strobe */ - <2 RK_PA2 1 &pcfg_pull_none>; + <2 RK_PA2 1 &pcfg_pull_down>; }; };
arch/loongarch/net/bpf_jit.c +2 -10
@@ -855,8 +855,6 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx, bool ext/* function return */ case BPF_JMP |BPF_EXIT : -emit_sext_32 (ctx, regmap[BPF_REG_0 ], true); -if (i == ctx->prog->len -1 )break ;
@@ -907,14 +905,8 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx, bool ext }break ;case BPF_DW : -if (is_signed_imm12 (off)) { -emit_insn (ctx, ldd, dst, src, off); - }else if (is_signed_imm14 (off)) { -emit_insn (ctx, ldptrd, dst, src, off); - }else { -move_imm (ctx, t1, off, is32); -emit_insn (ctx, ldxd, dst, src, t1); - } +move_imm (ctx, t1, off, is32); +emit_insn (ctx, ldxd, dst, src, t1);break ; }
arch/mips/Kconfig +2 -0
@@ -482,6 +482,7 @@ config MACH_LOONGSON2EF config MACH_LOONGSON64 bool "Loongson 64-bit family of machines" + select ARCH_DMA_DEFAULT_COHERENT select ARCH_SPARSEMEM_ENABLE select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_MIGHT_HAVE_PC_SERIO
@@ -1273,6 +1274,7 @@ config CPU_LOONGSON64 select CPU_SUPPORTS_MSA select CPU_DIEI_BROKEN if !LOONGSON3_ENHANCEMENT select CPU_MIPSR2_IRQ_VI + select DMA_NONCOHERENT select WEAK_ORDERING select WEAK_REORDERING_BEYOND_LLSC select MIPS_ASID_BITS_VARIABLE
arch/mips/include/asm/mach-loongson64/boot_param.h +7 -2
@@ -14,7 +14,11 @@#define ADAPTER_ROM 8#define ACPI_TABLE 9#define SMBIOS_TABLE 10 -#define MAX_MEMORY_TYPE 11 +#define UMA_VIDEO_RAM 11 +#define VUMA_VIDEO_RAM 12 +#define MAX_MEMORY_TYPE 13 + +#define MEM_SIZE_IS_IN_BYTES (1 << 31)#define LOONGSON3_BOOT_MEM_MAP_MAX 128struct efi_memory_map_loongson {
@@ -117,7 +121,8 @@ struct irq_source_routing_table {u64 pci_io_start_addr;u64 pci_io_end_addr;u64 pci_config_addr; -u32 dma_mask_bits; +u16 dma_mask_bits; +u16 dma_noncoherent; } __packed;struct interface_info {
arch/mips/kernel/process.c +13 -12
@@ -121,6 +121,19 @@ int copy_thread(struct task_struct *p, const struct kernel_clone_args *args)/* Put the stack after the struct pt_regs. */ childksp = (unsigned long ) childregs; p->thread.cp0_status = (read_c0_status () & ~(ST0_CU2 |ST0_CU1 )) |ST0_KERNEL_CUMASK ; + +/* +* New tasks lose permission to use the fpu. This accelerates context +* switching for most programs since they don't use the fpu. +*/ +clear_tsk_thread_flag (p,TIF_USEDFPU ); +clear_tsk_thread_flag (p,TIF_USEDMSA ); +clear_tsk_thread_flag (p,TIF_MSA_CTX_LIVE ); + +#ifdef CONFIG_MIPS_MT_FPAFF +clear_tsk_thread_flag (p,TIF_FPUBOUND ); +#endif /* CONFIG_MIPS_MT_FPAFF */ +if (unlikely (args->fn)) {/* kernel thread */ unsigned long status = p->thread.cp0_status;
@@ -149,20 +162,8 @@ int copy_thread(struct task_struct *p, const struct kernel_clone_args *args) p->thread.reg29 = (unsigned long ) childregs; p->thread.reg31 = (unsigned long ) ret_from_fork; -/* -* New tasks lose permission to use the fpu. This accelerates context -* switching for most programs since they don't use the fpu. -*/ childregs->cp0_status &= ~(ST0_CU2 |ST0_CU1 ); -clear_tsk_thread_flag (p,TIF_USEDFPU ); -clear_tsk_thread_flag (p,TIF_USEDMSA ); -clear_tsk_thread_flag (p,TIF_MSA_CTX_LIVE ); - -#ifdef CONFIG_MIPS_MT_FPAFF -clear_tsk_thread_flag (p,TIF_FPUBOUND ); -#endif /* CONFIG_MIPS_MT_FPAFF */ -#ifdef CONFIG_MIPS_FP_SUPPORT atomic_set (&p->thread.bd_emu_frame,BD_EMUFRAME_NONE );#endif
arch/mips/loongson64/env.c +9 -1
@@ -13,6 +13,8 @@* Copyright (C) 2009 Lemote Inc. * Author: Wu Zhangjin, [email protected] */ + +#include <linux/dma-map-ops.h> #include <linux/export.h> #include <linux/pci_ids.h> #include <asm/bootinfo.h>
@@ -147,8 +149,14 @@ void __init prom_lefi_init_env(void) loongson_sysconf.dma_mask_bits = eirq_source->dma_mask_bits;if (loongson_sysconf.dma_mask_bits <32 || - loongson_sysconf.dma_mask_bits >64 ) + loongson_sysconf.dma_mask_bits >64 ) { loongson_sysconf.dma_mask_bits =32 ; + dma_default_coherent = true; + }else { + dma_default_coherent = !eirq_source->dma_noncoherent; + } + +pr_info ("Firmware: Coherent DMA: %s\n" , dma_default_coherent ?"on" :"off" ); loongson_sysconf.restart_addr = boot_p->reset_system.ResetWarm; loongson_sysconf.poweroff_addr = boot_p->reset_system.Shutdown;
arch/mips/loongson64/init.c +31 -16
69 lines not on this page · raw message
arch/parisc/Kconfig +5 -2
@@ -113,9 +113,12 @@ config ARCH_HAS_ILOG2_U64 default n config GENERIC_BUG - bool - default y + def_bool y depends on BUG + select GENERIC_BUG_RELATIVE_POINTERS if 64BIT + +config GENERIC_BUG_RELATIVE_POINTERS + bool config GENERIC_HWEIGHT bool
arch/parisc/include/asm/bug.h +18 -18
@@ -17,26 +17,27 @@#define PARISC_BUG_BREAK_ASM "break 0x1f, 0x1fff"#define PARISC_BUG_BREAK_INSN 0x03ffe01f/* PARISC_BUG_BREAK_ASM */ -#if defined(CONFIG_64BIT ) -#define ASM_WORD_INSN ".dword\t" +#ifdef CONFIG_GENERIC_BUG_RELATIVE_POINTERS +# define __BUG_REL (val) ".word " __stringify(val) " - ."#else -#define ASM_WORD_INSN ".word\t" +# define __BUG_REL (val) ".word " __stringify(val)#endif +#ifdef CONFIG_DEBUG_BUGVERBOSE #define BUG () \ do { \ asm volatile("\n" \ "1:\t" PARISC_BUG_BREAK_ASM "\n" \ "\t.pushsection __bug_table,\"a\"\n" \ - "\t.align %4\n" \ - "2:\t" ASM_WORD_INSN "1b, %c0\n" \ + "\t.align 4\n" \ + "2:\t" __BUG_REL(1b) "\n" \ + "\t" __BUG_REL(%c0) "\n" \ "\t.short %1, %2\n" \ - "\t.blockz %3-2*%4-2*2\n" \ + "\t.blockz %3-2*4-2*2\n" \ "\t.popsection" \ : : "i" (__FILE__), "i" (__LINE__), \ - "i" (0), "i" (sizeof(struct bug_entry)), \ - "i" (sizeof(long)) ); \ + "i" (0), "i" (sizeof(struct bug_entry)) ); \ unreachable(); \ } while(0)
@@ -54,15 +55,15 @@ asmvolatile ("\n" \"1:\t" PARISC_BUG_BREAK_ASM "\n" \"\t.pushsection __bug_table,\"a\"\n" \ -"\t.align %4\n" \ -"2:\t" ASM_WORD_INSN "1b, %c0\n" \ +"\t.align 4\n" \ + "2:\t" __BUG_REL(1b) "\n" \ + "\t" __BUG_REL(%c0) "\n" \"\t.short %1, %2\n" \ -"\t.blockz %3-2*%4-2*2\n" \ +"\t.blockz %3-2*4-2*2\n" \"\t.popsection" \ : : "i" (__FILE__), "i" (__LINE__), \"i" (BUGFLAG_WARNING |(flags)), \ -"i" (sizeof (struct bug_entry )), \ -"i" (sizeof (long )) ); \ + "i" (sizeof(struct bug_entry)) ); \ } while(0) #else#define __WARN_FLAGS (flags) \
@@ -70,14 +71,13 @@ asmvolatile ("\n" \"1:\t" PARISC_BUG_BREAK_ASM "\n" \"\t.pushsection __bug_table,\"a\"\n" \ -"\t.align %2\n" \ -"2:\t" ASM_WORD_INSN "1b\n" \ +"\t.align 4\n" \ + "2:\t" __BUG_REL(1b) "\n" \"\t.short %0\n" \ -"\t.blockz %1-%2-2\n" \ +"\t.blockz %1-4-2\n" \"\t.popsection" \ : : "i" (BUGFLAG_WARNING|(flags)), \ -"i" (sizeof (struct bug_entry )), \ -"i" (sizeof (long )) ); \ + "i" (sizeof(struct bug_entry)) ); \ } while(0)#endif
arch/powerpc/kernel/trace/ftrace_entry.S +2 -2
@@ -62,7 +62,7 @@ .endif /* Save previous stack pointer (r1) */ - addi r8, r1, SWITCH_FRAME_SIZE + addi r8, r1, SWITCH_FRAME_SIZE+STACK_FRAME_MIN_SIZE PPC_STL r8, GPR1(r1) .if \allregs == 1
@@ -182,7 +182,7 @@ ftrace_no_trace: mflr r3 mtctr r3 REST_GPR(3, r1) - addi r1, r1, SWITCH_FRAME_SIZE + addi r1, r1, SWITCH_FRAME_SIZE+STACK_FRAME_MIN_SIZE mtlr r0 bctr #endif
arch/riscv/Kconfig.socs +1 -0
@@ -29,6 +29,7 @@ config SOC_STARFIVE bool "StarFive SoCs" select PINCTRL select RESET_CONTROLLER + select ARM_AMBA help This enables support for StarFive SoC platform hardware.
arch/riscv/errata/andes/errata.c +13 -7
@@ -38,29 +38,35 @@ static long ax45mp_iocp_sw_workaround(void)return ret.error ?0 : ret.value; } -static bool errata_probe_iocp (unsigned int stage,unsigned long arch_id,unsigned long impid) +static void errata_probe_iocp (unsigned int stage,unsigned long arch_id,unsigned long impid) { +static bool done; +if (!IS_ENABLED (CONFIG_ERRATA_ANDES_CMO )) -return false; +return ; + +if (done) +return ; + + done = true;if (arch_id !=ANDESTECH_AX45MP_MARCHID || impid !=ANDESTECH_AX45MP_MIMPID ) -return false; +return ;if (!ax45mp_iocp_sw_workaround ()) -return false; +return ;/* Set this just to make core cbo code happy */ riscv_cbom_block_size =1 ;riscv_noncoherent_supported (); - -return true; } void __init_or_module andes_errata_patch_func(struct alt_entry *begin, struct alt_entry *end,unsigned long archid,unsigned long impid,unsigned int stage) { -errata_probe_iocp (stage, archid, impid); +if (stage ==RISCV_ALTERNATIVES_BOOT ) +errata_probe_iocp (stage, archid, impid);/* we have nothing to patch here ATM so just return back */ }
arch/riscv/kernel/traps_misaligned.c +2 -4
@@ -342,16 +342,14 @@ int handle_misaligned_store(struct pt_regs *regs) } else if ((insn & INSN_MASK_C_SD) == INSN_MATCH_C_SD) { len =8 ; val.data_ulong =GET_RS2S (insn, regs); - }else if ((insn &INSN_MASK_C_SDSP ) ==INSN_MATCH_C_SDSP && - ((insn >>SH_RD ) &0x1f )) { + }else if ((insn &INSN_MASK_C_SDSP ) ==INSN_MATCH_C_SDSP ) { len =8 ; val.data_ulong =GET_RS2C (insn, regs);#endif }else if ((insn &INSN_MASK_C_SW ) ==INSN_MATCH_C_SW ) { len =4 ; val.data_ulong =GET_RS2S (insn, regs); - }else if ((insn &INSN_MASK_C_SWSP ) ==INSN_MATCH_C_SWSP && - ((insn >>SH_RD ) &0x1f )) { + }else if ((insn &INSN_MASK_C_SWSP ) ==INSN_MATCH_C_SWSP ) { len =4 ; val.data_ulong =GET_RS2C (insn, regs); }else {
arch/s390/mm/pgtable.c +1 -1
@@ -756,7 +756,7 @@ void ptep_zap_unused(struct mm_struct *mm, unsigned long addr,pte_clear (mm, addr, ptep); }if (reset) -pgste_val (pgste) &= ~_PGSTE_GPS_USAGE_MASK; +pgste_val (pgste) &= ~(_PGSTE_GPS_USAGE_MASK | _PGSTE_GPS_NODAT);pgste_set_unlock (ptep, pgste);preempt_enable (); }
arch/x86/coco/tdx/tdx.c +1 -0
@@ -10,6 +10,7 @@#include <asm/coco.h> #include <asm/tdx.h> #include <asm/vmx.h> +#include <asm/ia32.h> #include <asm/insn.h> #include <asm/insn-eval.h> #include <asm/pgtable.h>
arch/x86/entry/common.c +96 -1
121 lines not on this page · raw message
arch/x86/entry/entry_64_compat.S +0 -77
80 lines not on this page · raw message
arch/x86/include/asm/ia32.h +22 -1
@@ -68,6 +68,27 @@ extern void ia32_pick_mmap_layout(struct mm_struct *mm);#endif -#endif /* CONFIG_IA32_EMULATION */ +extern bool __ia32_enabled; + +static inline bool ia32_enabled (void ) +{ +return __ia32_enabled; +} + +static inline void ia32_disable (void ) +{ + __ia32_enabled = false; +} + +#else /* !CONFIG_IA32_EMULATION */ + +static inline bool ia32_enabled (void ) +{ +return IS_ENABLED (CONFIG_X86_32 ); +} + +static inline void ia32_disable (void ) {} + +#endif #endif /* _ASM_X86_IA32_H */
arch/x86/include/asm/idtentry.h +4 -0
@@ -569,6 +569,10 @@ DECLARE_IDTENTRY_RAW(X86_TRAP_UD, exc_invalid_op);DECLARE_IDTENTRY_RAW (X86_TRAP_BP , exc_int3);DECLARE_IDTENTRY_RAW_ERRORCODE (X86_TRAP_PF , exc_page_fault); +#if defined(CONFIG_IA32_EMULATION ) +DECLARE_IDTENTRY_RAW (IA32_SYSCALL_VECTOR , int80_emulation); +#endif +#ifdef CONFIG_X86_MCE #ifdef CONFIG_X86_64 DECLARE_IDTENTRY_MCE (X86_TRAP_MC , exc_machine_check);
arch/x86/include/asm/proto.h +0 -4
@@ -32,10 +32,6 @@ void entry_SYSCALL_compat(void);void entry_SYSCALL_compat_safe_stack (void );void entry_SYSRETL_compat_unsafe_stack (void );void entry_SYSRETL_compat_end (void ); -void entry_INT80_compat (void ); -#ifdef CONFIG_XEN_PV -void xen_entry_INT80_compat (void ); -#endif #endif void x86_configure_nx (void );
arch/x86/kernel/cpu/amd.c +3 -0
@@ -1315,6 +1315,9 @@ static void zenbleed_check_cpu(void *unused)void amd_check_microcode (void ) { +if (boot_cpu_data.x86_vendor !=X86_VENDOR_AMD ) +return ; +on_each_cpu (zenbleed_check_cpu,NULL ,1 ); }
arch/x86/kernel/idt.c +1 -1
@@ -117,7 +117,7 @@ static const __initconst struct idt_data def_idts[] = { SYSG(X86_TRAP_OF, asm_exc_overflow),#if defined(CONFIG_IA32_EMULATION ) - SYSG(IA32_SYSCALL_VECTOR, entry_INT80_compat), + SYSG(IA32_SYSCALL_VECTOR, asm_int80_emulation),#elif defined(CONFIG_X86_32 ) SYSG(IA32_SYSCALL_VECTOR, entry_INT80_32),#endif
arch/x86/kernel/sev.c +7 -4
@@ -1234,10 +1234,6 @@ void setup_ghcb(void)if (!cc_platform_has (CC_ATTR_GUEST_STATE_ENCRYPT ))return ; -/* First make sure the hypervisor talks a supported protocol. */ -if (!sev_es_negotiate_protocol ()) -sev_es_terminate (SEV_TERM_SET_GEN ,GHCB_SEV_ES_GEN_REQ ); -/* * Check whether the runtime #VC exception handler is active. It uses * the per-CPU GHCB page which is set up by sev_es_init_vc_handling().
@@ -1254,6 +1250,13 @@ void setup_ghcb(void)return ; } +/* +* Make sure the hypervisor talks a supported protocol. +* This gets called only in the BSP boot phase. +*/ +if (!sev_es_negotiate_protocol ()) +sev_es_terminate (SEV_TERM_SET_GEN ,GHCB_SEV_ES_GEN_REQ ); +/* * Clear the boot_ghcb. The first exception comes in before the bss * section is cleared.
arch/x86/kvm/svm/svm.c +5 -3
@@ -1873,15 +1873,17 @@ void svm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0)bool old_paging =is_paging (vcpu);#ifdef CONFIG_X86_64 -if (vcpu->arch.efer &EFER_LME && !vcpu->arch.guest_state_protected) { +if (vcpu->arch.efer &EFER_LME ) {if (!is_paging (vcpu) && (cr0 &X86_CR0_PG )) { vcpu->arch.efer |=EFER_LMA ; - svm->vmcb->save.efer |=EFER_LMA |EFER_LME ; +if (!vcpu->arch.guest_state_protected) + svm->vmcb->save.efer |=EFER_LMA |EFER_LME ; }if (is_paging (vcpu) && !(cr0 &X86_CR0_PG )) { vcpu->arch.efer &= ~EFER_LMA ; - svm->vmcb->save.efer &= ~(EFER_LMA |EFER_LME ); +if (!vcpu->arch.guest_state_protected) + svm->vmcb->save.efer &= ~(EFER_LMA |EFER_LME ); } }#endif
arch/x86/mm/mem_encrypt_amd.c +11 -0
@@ -34,6 +34,7 @@#include <asm/msr.h> #include <asm/cmdline.h> #include <asm/sev.h> +#include <asm/ia32.h> #include "mm_internal.h"
@@ -517,6 +518,16 @@ void __init sme_early_init(void)*/ if (sev_status &MSR_AMD64_SEV_ES_ENABLED ) x86_cpuinit.parallel_bringup = false; + +/* +* The VMM is capable of injecting interrupt 0x80 and triggering the +* compatibility syscall path. +* +* By default, the 32-bit emulation is disabled in order to ensure +* the safety of the VM. +*/ +if (sev_status &MSR_AMD64_SEV_ENABLED ) +ia32_disable (); }void __init mem_encrypt_free_decrypted_mem (void )
arch/x86/xen/enlighten_pv.c +1 -1
@@ -704,7 +704,7 @@ static struct trap_array_entry trap_array[] = { TRAP_ENTRY(exc_int3, false ), TRAP_ENTRY(exc_overflow, false ),#ifdef CONFIG_IA32_EMULATION - { entry_INT80_compat, xen_entry_INT80_compat, false }, +TRAP_ENTRY (int80_emulation, false ), #endifTRAP_ENTRY (exc_page_fault, false ), TRAP_ENTRY(exc_divide_error, false ),
arch/x86/xen/xen-asm.S +1 -1
@@ -156,7 +156,7 @@ xen_pv_trap asm_xenpv_exc_machine_check #endif /* CONFIG_X86_MCE */ xen_pv_trap asm_exc_simd_coprocessor_error #ifdef CONFIG_IA32_EMULATION -xen_pv_trap entry_INT80_compat +xen_pv_trap asm_int80_emulation #endif xen_pv_trap asm_exc_xen_unknown_trap xen_pv_trap asm_exc_xen_hypervisor_callback
drivers/base/cpu.c +3 -3
@@ -144,7 +144,7 @@ static DEVICE_ATTR(release, S_IWUSR, NULL, cpu_release_store);#endif /* CONFIG_ARCH_CPU_PROBE_RELEASE */ #endif /* CONFIG_HOTPLUG_CPU */ -#ifdef CONFIG_KEXEC +#ifdef CONFIG_KEXEC_CORE #include <linux/kexec.h> static ssize_t crash_notes_show(struct device *dev,
@@ -189,14 +189,14 @@ static const struct attribute_group crash_note_cpu_attr_group = {#endif static const struct attribute_group *common_cpu_attr_groups[] = { -#ifdef CONFIG_KEXEC +#ifdef CONFIG_KEXEC_CORE &crash_note_cpu_attr_group, #endifNULL };static const struct attribute_group *hotplugable_cpu_attr_groups[] = { -#ifdef CONFIG_KEXEC +#ifdef CONFIG_KEXEC_CORE &crash_note_cpu_attr_group, #endifNULL
drivers/base/devcoredump.c +3 -0
@@ -362,6 +362,7 @@ void dev_coredumpm(struct device *dev, struct module *owner, devcd->devcd_dev.class = &devcd_class;mutex_lock (&devcd->mutex); +dev_set_uevent_suppress (&devcd->devcd_dev, true);if (device_add (&devcd->devcd_dev)) goto put_device;
@@ -376,6 +377,8 @@ void dev_coredumpm(struct device *dev, struct module *owner, "devcoredump"))dev_warn (dev,"devcoredump create_link failed\n" ); +dev_set_uevent_suppress (&devcd->devcd_dev, false); +kobject_uevent (&devcd->devcd_dev.kobj,KOBJ_ADD );INIT_DELAYED_WORK (&devcd->del_wk, devcd_del);schedule_delayed_work (&devcd->del_wk,DEVCD_TIMEOUT );mutex_unlock (&devcd->mutex);
drivers/base/memory.c +15 -3
@@ -180,6 +180,9 @@ static inline unsigned long memblk_nr_poison(struct memory_block *mem) }#endif +/* +* Must acquire mem_hotplug_lock in write mode. +*/ static int memory_block_online (struct memory_block *mem) {unsigned long start_pfn =section_nr_to_pfn (mem->start_section_nr);
@@ -204,10 +207,11 @@ static int memory_block_online(struct memory_block *mem)if (mem->altmap) nr_vmemmap_pages = mem->altmap->free; +mem_hotplug_begin ();if (nr_vmemmap_pages) { ret =mhp_init_memmap_on_memory (start_pfn, nr_vmemmap_pages, zone);if (ret) -return ret; + goto out; } ret = online_pages(start_pfn + nr_vmemmap_pages,
@@ -215,7 +219,7 @@ static int memory_block_online(struct memory_block *mem)if (ret) {if (nr_vmemmap_pages)mhp_deinit_memmap_on_memory (start_pfn, nr_vmemmap_pages); -return ret; + goto out; }/*
@@ -227,9 +231,14 @@ static int memory_block_online(struct memory_block *mem) nr_vmemmap_pages); mem->zone = zone; +out: +mem_hotplug_done ();return ret; } +/* +* Must acquire mem_hotplug_lock in write mode. +*/ static int memory_block_offline (struct memory_block *mem) {unsigned long start_pfn =section_nr_to_pfn (mem->start_section_nr);
@@ -247,6 +256,7 @@ static int memory_block_offline(struct memory_block *mem)if (mem->altmap) nr_vmemmap_pages = mem->altmap->free; +mem_hotplug_begin ();if (nr_vmemmap_pages)adjust_present_page_count (pfn_to_page (start_pfn), mem->group, -nr_vmemmap_pages);
@@ -258,13 +268,15 @@ static int memory_block_offline(struct memory_block *mem)if (nr_vmemmap_pages)adjust_present_page_count (pfn_to_page (start_pfn), mem->group, nr_vmemmap_pages); -return ret; + goto out; }if (nr_vmemmap_pages)mhp_deinit_memmap_on_memory (start_pfn, nr_vmemmap_pages); mem->zone =NULL ; +out: +mem_hotplug_done ();return ret; }
drivers/base/regmap/regcache.c +1 -2
@@ -410,8 +410,7 @@ int regcache_sync(struct regmap *map) rb_entry(node, struct regmap_range_node, node);/* If there's nothing in the cache there's nothing to sync */ - ret =regcache_read (map, this->selector_reg, &i); -if (ret !=0 ) +if (regcache_read (map, this->selector_reg, &i) !=0 )continue ; ret =_regmap_write (map, this->selector_reg, i);
drivers/firmware/arm_scmi/perf.c +51 -36
179 lines not on this page · raw message
drivers/gpio/gpiolib-sysfs.c +9 -6
@@ -474,14 +474,17 @@ static ssize_t export_store(const struct class *class, goto done; status =gpiod_set_transitory (desc, false); -if (!status) { - status =gpiod_export (desc, true); -if (status <0 ) -gpiod_free (desc); -else -set_bit (FLAG_SYSFS , &desc->flags); +if (status) { +gpiod_free (desc); + goto done; } + status =gpiod_export (desc, true); +if (status <0 ) +gpiod_free (desc); +else +set_bit (FLAG_SYSFS , &desc->flags); + done:if (status)pr_debug ("%s: status %d\n" , __func__, status);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +1 -1
@@ -207,7 +207,7 @@ static int amdgpu_cs_pass1(struct amdgpu_cs_parser *p, }for (i =0 ; i < p->nchunks; i++) { -struct drm_amdgpu_cs_chunk __user **chunk_ptr =NULL ; +struct drm_amdgpu_cs_chunk __user *chunk_ptr =NULL ;struct drm_amdgpu_cs_chunk user_chunk;uint32_t __user *cdata;
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +0 -4
@@ -3478,10 +3478,6 @@ static void amdgpu_device_set_mcbp(struct amdgpu_device *adev) adev->gfx.mcbp = true; else if (amdgpu_mcbp == 0) adev->gfx.mcbp = false; - else if ((adev->ip_versions[GC_HWIP][0] >= IP_VERSION(9, 0, 0)) && - (adev->ip_versions[GC_HWIP][0] < IP_VERSION(10, 0, 0)) && - adev->gfx.num_gfx_rings) - adev->gfx.mcbp = true; if (amdgpu_sriov_vf(adev)) adev->gfx.mcbp = true;
drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell.h +3 -2
@@ -357,8 +357,9 @@ int amdgpu_doorbell_init(struct amdgpu_device *adev);void amdgpu_doorbell_fini (struct amdgpu_device *adev);int amdgpu_doorbell_create_kernel_doorbells (struct amdgpu_device *adev);uint32_t amdgpu_doorbell_index_on_bar (struct amdgpu_device *adev, -struct amdgpu_bo *db_bo, -uint32_t doorbell_index); +struct amdgpu_bo *db_bo, +uint32_t doorbell_index, +uint32_t db_size);#define RDOORBELL32 (index) amdgpu_mm_rdoorbell(adev, (index))#define WDOORBELL32 (index, v) amdgpu_mm_wdoorbell(adev, (index), (v))
drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c +10 -5
@@ -113,20 +113,25 @@ void amdgpu_mm_wdoorbell64(struct amdgpu_device *adev, u32 index, u64 v)* * @adev: amdgpu_device pointer * @db_bo: doorbell object's bo -* @db_index: doorbell relative index in this doorbell object +* @doorbell_index: doorbell relative index in this doorbell object +* @db_size: doorbell size is in byte * * returns doorbell's absolute index in BAR */ uint32_t amdgpu_doorbell_index_on_bar (struct amdgpu_device *adev, -struct amdgpu_bo *db_bo, -uint32_t doorbell_index) +struct amdgpu_bo *db_bo, +uint32_t doorbell_index, +uint32_t db_size) {int db_bo_offset; db_bo_offset =amdgpu_bo_gpu_offset_no_check (db_bo); -/* doorbell index is 32 bit but doorbell's size is 64-bit, so *2 */ -return db_bo_offset /sizeof (u32) + doorbell_index *2 ; +/* doorbell index is 32 bit but doorbell's size can be 32 bit +* or 64 bit, so *db_size(in byte)/4 for alignment. +*/ +return db_bo_offset /sizeof (u32) + doorbell_index * +DIV_ROUND_UP (db_size,4 ); }/**
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c +3 -2
@@ -2220,8 +2220,6 @@ static int gmc_v9_0_sw_fini(void *handle)if (adev->ip_versions[GC_HWIP ][0 ] ==IP_VERSION (9 ,4 ,3 ))amdgpu_gmc_sysfs_fini (adev); - adev->gmc.num_mem_partitions =0 ; -kfree (adev->gmc.mem_partitions);amdgpu_gmc_ras_fini (adev);amdgpu_gem_force_release (adev);
@@ -2235,6 +2233,9 @@ static int gmc_v9_0_sw_fini(void *handle)amdgpu_bo_free_kernel (&adev->gmc.pdb0_bo,NULL , &adev->gmc.ptr_pdb0);amdgpu_bo_fini (adev); + adev->gmc.num_mem_partitions =0 ; +kfree (adev->gmc.mem_partitions); +return 0 ; }
drivers/gpu/drm/amd/amdgpu/mmhub_v1_8.c +3 -3
@@ -130,6 +130,9 @@ static void mmhub_v1_8_init_system_aperture_regs(struct amdgpu_device *adev)uint64_t value;int i; +if (amdgpu_sriov_vf (adev)) +return ; + inst_mask = adev->aid_mask;for_each_inst (i, inst_mask) {/* Program the AGP BAR */
@@ -139,9 +142,6 @@ static void mmhub_v1_8_init_system_aperture_regs(struct amdgpu_device *adev)WREG32_SOC15 (MMHUB , i, regMC_VM_AGP_TOP, adev->gmc.agp_end >>24 ); -if (amdgpu_sriov_vf (adev)) -return ; -/* Program the system aperture low logical page number. */ WREG32_SOC15 (MMHUB , i, regMC_VM_SYSTEM_APERTURE_LOW_ADDR,min (adev->gmc.fb_start, adev->gmc.agp_start) >>18 );
drivers/gpu/drm/amd/amdgpu/psp_v13_0.c +7 -3
@@ -60,7 +60,7 @@ MODULE_FIRMWARE("amdgpu/psp_14_0_0_ta.bin");#define GFX_CMD_USB_PD_USE_LFB 0x480/* Retry times for vmbx ready wait */ -#define PSP_VMBX_POLLING_LIMIT 20000 +#define PSP_VMBX_POLLING_LIMIT 3000/* VBIOS gfl defines */ #define MBOX_READY_MASK 0x80000000
@@ -161,14 +161,18 @@ static int psp_v13_0_wait_for_vmbx_ready(struct psp_context *psp)static int psp_v13_0_wait_for_bootloader (struct psp_context *psp) {struct amdgpu_device *adev = psp->adev; -int retry_loop, ret; +int retry_loop, retry_cnt, ret; + retry_cnt = + (adev->ip_versions[MP0_HWIP ][0 ] ==IP_VERSION (13 ,0 ,6 )) ? +PSP_VMBX_POLLING_LIMIT : +10 ;/* Wait for bootloader to signify that it is ready having bit 31 of * C2PMSG_35 set to 1. All other bits are expected to be cleared. * If there is an error in processing command, bits[7:0] will be set. * This is applicable for PSP v13.0.6 and newer. */ -for (retry_loop =0 ; retry_loop <10 ; retry_loop++) { +for (retry_loop =0 ; retry_loop < retry_cnt; retry_loop++) { ret =psp_wait_for ( psp,SOC15_REG_OFFSET (MP0 ,0 , regMP0_SMN_C2PMSG_35),0x80000000 ,0xffffffff , false);
drivers/gpu/drm/amd/amdgpu/soc15.c +2 -1
@@ -325,7 +325,8 @@ static u32 soc15_get_xclk(struct amdgpu_device *adev)u32 reference_clock = adev->clock.spll.reference_freq;if (adev->ip_versions[MP1_HWIP ][0 ] ==IP_VERSION (12 ,0 ,0 ) || - adev->ip_versions[MP1_HWIP ][0 ] ==IP_VERSION (12 ,0 ,1 )) + adev->ip_versions[MP1_HWIP ][0 ] ==IP_VERSION (12 ,0 ,1 ) || + adev->ip_versions[MP1_HWIP ][0 ] ==IP_VERSION (13 ,0 ,6 ))return 10000 ;if (adev->ip_versions[MP1_HWIP ][0 ] ==IP_VERSION (10 ,0 ,0 ) || adev->ip_versions[MP1_HWIP ][0 ] ==IP_VERSION (10 ,0 ,1 ))
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +2 -1
@@ -407,7 +407,8 @@ static int allocate_doorbell(struct qcm_process_device *qpd, q->properties.doorbell_off =amdgpu_doorbell_index_on_bar (dev->adev, qpd->proc_doorbells, - q->doorbell_id); + q->doorbell_id, + dev->kfd->device_info.doorbell_size);return 0 ; }
drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c +8 -2
@@ -161,7 +161,10 @@ void __iomem *kfd_get_kernel_doorbell(struct kfd_dev *kfd,if (inx >=KFD_MAX_NUM_OF_QUEUES_PER_PROCESS )return NULL ; - *doorbell_off =amdgpu_doorbell_index_on_bar (kfd->adev, kfd->doorbells, inx); + *doorbell_off =amdgpu_doorbell_index_on_bar (kfd->adev, + kfd->doorbells, + inx, + kfd->device_info.doorbell_size); inx *=2 ; pr_debug("Get kernel queue doorbell\n"
@@ -240,7 +243,10 @@ phys_addr_t kfd_get_process_doorbells(struct kfd_process_device *pdd)return 0 ; } - first_db_index =amdgpu_doorbell_index_on_bar (adev, pdd->qpd.proc_doorbells,0 ); + first_db_index =amdgpu_doorbell_index_on_bar (adev, + pdd->qpd.proc_doorbells, +0 , + pdd->dev->kfd->device_info.doorbell_size);return adev->doorbell.base + first_db_index *sizeof (uint32_t ); }
drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c +2 -1
@@ -377,7 +377,8 @@ int pqm_create_queue(struct process_queue_manager *pqm,*/ uint32_t first_db_index =amdgpu_doorbell_index_on_bar (pdd->dev->adev, pdd->qpd.proc_doorbells, -0 ); +0 , + pdd->dev->kfd->device_info.doorbell_size); *p_doorbell_offset_in_process = (q->properties.doorbell_off - first_db_index) *sizeof (uint32_t );
drivers/gpu/drm/bridge/Kconfig +1 -0
@@ -313,6 +313,7 @@ config DRM_TOSHIBA_TC358768 select REGMAP_I2C select DRM_PANEL select DRM_MIPI_DSI + select VIDEOMODE_HELPERS help Toshiba TC358768AXBG/TC358778XBG DSI bridge chip driver.
drivers/gpu/drm/drm_atomic_helper.c +52 -26
118 lines not on this page · raw message
drivers/gpu/drm/i915/display/icl_dsi.c +7 -0
@@ -1440,6 +1440,13 @@ static void gen11_dsi_post_disable(struct intel_atomic_state *state,static enum drm_mode_status gen11_dsi_mode_valid (struct drm_connector *connector,struct drm_display_mode *mode) { +struct drm_i915_private *i915 =to_i915 (connector->dev); +enum drm_mode_status status; + + status =intel_cpu_transcoder_mode_valid (i915, mode); +if (status !=MODE_OK ) +return status; +/* FIXME: DSC? */ return intel_dsi_mode_valid (connector, mode); }
drivers/gpu/drm/i915/display/intel_crt.c +5 -0
@@ -348,8 +348,13 @@ intel_crt_mode_valid(struct drm_connector *connector,struct drm_device *dev = connector->dev;struct drm_i915_private *dev_priv =to_i915 (dev);int max_dotclk = dev_priv->max_dotclk_freq; +enum drm_mode_status status;int max_clock; + status =intel_cpu_transcoder_mode_valid (dev_priv, mode); +if (status !=MODE_OK ) +return status; +if (mode->flags &DRM_MODE_FLAG_DBLSCAN )return MODE_NO_DBLESCAN ;
drivers/gpu/drm/i915/display/intel_display.c +11 -1
@@ -7279,7 +7279,7 @@ int intel_atomic_commit(struct drm_device *dev, struct drm_atomic_state *_state,for_each_new_intel_crtc_in_state (state, crtc, new_crtc_state, i)intel_color_cleanup_commit (new_crtc_state); -drm_atomic_helper_cleanup_planes (dev, &state->base); +drm_atomic_helper_unprepare_planes (dev, &state->base);intel_runtime_pm_put (&dev_priv->runtime_pm, state->wakeref);return ret; }
@@ -7660,6 +7660,16 @@ enum drm_mode_status intel_mode_valid(struct drm_device *dev, mode->vtotal > vtotal_max)return MODE_V_ILLEGAL ; +return MODE_OK ; +} + +enum drm_mode_status intel_cpu_transcoder_mode_valid (struct drm_i915_private *dev_priv, +const struct drm_display_mode *mode) +{ +/* +* Additional transcoder timing limits, +* excluding BXT/GLK DSI transcoders. +*/ if (DISPLAY_VER (dev_priv) >=5 ) {if (mode->hdisplay <64 || mode->htotal - mode->hdisplay <32 )
drivers/gpu/drm/i915/display/intel_display.h +3 -0
@@ -405,6 +405,9 @@ enum drm_mode_status intel_mode_valid_max_plane_size(struct drm_i915_private *dev_priv, const struct drm_display_mode *mode, bool bigjoiner); +enum drm_mode_status +intel_cpu_transcoder_mode_valid (struct drm_i915_private *i915, +const struct drm_display_mode *mode);enum phy intel_port_to_phy (struct drm_i915_private *i915,enum port port);bool is_trans_port_sync_mode (const struct intel_crtc_state *state);bool is_trans_port_sync_master (const struct intel_crtc_state *state);
drivers/gpu/drm/i915/display/intel_dp.c +4 -0
@@ -1127,6 +1127,10 @@ intel_dp_mode_valid(struct drm_connector *_connector,enum drm_mode_status status;bool dsc = false, bigjoiner = false; + status =intel_cpu_transcoder_mode_valid (dev_priv, mode); +if (status !=MODE_OK ) +return status; +if (mode->flags &DRM_MODE_FLAG_DBLCLK )return MODE_H_ILLEGAL ;
drivers/gpu/drm/i915/display/intel_dp_mst.c +16 -4
@@ -921,6 +921,10 @@ intel_dp_mst_mode_valid_ctx(struct drm_connector *connector,return 0 ; } + *status =intel_cpu_transcoder_mode_valid (dev_priv, mode); +if (*status !=MODE_OK ) +return 0 ; +if (mode->flags &DRM_MODE_FLAG_DBLSCAN ) { *status =MODE_NO_DBLESCAN ;return 0 ;
@@ -955,6 +959,10 @@ intel_dp_mst_mode_valid_ctx(struct drm_connector *connector,if (intel_dp_need_bigjoiner (intel_dp, mode->hdisplay, target_clock)) { bigjoiner = true; max_dotclk *=2 ; + +/* TODO: add support for bigjoiner */ + *status =MODE_CLOCK_HIGH ; +return 0 ; } if (DISPLAY_VER(dev_priv) >= 10 &&
@@ -988,11 +996,15 @@ intel_dp_mst_mode_valid_ctx(struct drm_connector *connector,* Big joiner configuration needs DSC for TGL which is not true for * XE_LPD where uncompressed joiner is supported. */ -if (DISPLAY_VER (dev_priv) <13 && bigjoiner && !dsc) -return MODE_CLOCK_HIGH ; +if (DISPLAY_VER (dev_priv) <13 && bigjoiner && !dsc) { + *status =MODE_CLOCK_HIGH ; +return 0 ; + } -if (mode_rate > max_rate && !dsc) -return MODE_CLOCK_HIGH ; +if (mode_rate > max_rate && !dsc) { + *status =MODE_CLOCK_HIGH ; +return 0 ; + } *status =intel_mode_valid_max_plane_size (dev_priv, mode, false);return 0 ;
drivers/gpu/drm/i915/display/intel_dvo.c +6 -0
@@ -217,11 +217,17 @@ intel_dvo_mode_valid(struct drm_connector *_connector, struct drm_display_mode *mode) {struct intel_connector *connector =to_intel_connector (_connector); +struct drm_i915_private *i915 =to_i915 (connector->base.dev);struct intel_dvo *intel_dvo =intel_attached_dvo (connector);const struct drm_display_mode *fixed_mode =intel_panel_fixed_mode (connector, mode);int max_dotclk =to_i915 (connector->base.dev)->max_dotclk_freq;int target_clock = mode->clock; +enum drm_mode_status status; + + status =intel_cpu_transcoder_mode_valid (i915, mode); +if (status !=MODE_OK ) +return status;if (mode->flags &DRM_MODE_FLAG_DBLSCAN )return MODE_NO_DBLESCAN ;
drivers/gpu/drm/i915/display/intel_hdmi.c +4 -0
@@ -1986,6 +1986,10 @@ intel_hdmi_mode_valid(struct drm_connector *connector,bool ycbcr_420_only;enum intel_output_format sink_format; + status =intel_cpu_transcoder_mode_valid (dev_priv, mode); +if (status !=MODE_OK ) +return status; +if ((mode->flags &DRM_MODE_FLAG_3D_MASK ) ==DRM_MODE_FLAG_3D_FRAME_PACKING ) clock *=2 ;
drivers/gpu/drm/i915/display/intel_lvds.c +5 -0
@@ -389,11 +389,16 @@ intel_lvds_mode_valid(struct drm_connector *_connector, struct drm_display_mode *mode) {struct intel_connector *connector =to_intel_connector (_connector); +struct drm_i915_private *i915 =to_i915 (connector->base.dev);const struct drm_display_mode *fixed_mode =intel_panel_fixed_mode (connector, mode);int max_pixclk =to_i915 (connector->base.dev)->max_dotclk_freq;enum drm_mode_status status; + status =intel_cpu_transcoder_mode_valid (i915, mode); +if (status !=MODE_OK ) +return status; +if (mode->flags &DRM_MODE_FLAG_DBLSCAN )return MODE_NO_DBLESCAN ;
drivers/gpu/drm/i915/display/intel_sdvo.c +7 -1
@@ -1906,13 +1906,19 @@ static enum drm_mode_status intel_sdvo_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode) { + struct drm_i915_private *i915 = to_i915(connector->dev);struct intel_sdvo *intel_sdvo =intel_attached_sdvo (to_intel_connector (connector));struct intel_sdvo_connector *intel_sdvo_connector =to_intel_sdvo_connector (connector); -int max_dotclk =to_i915 (connector->dev)->max_dotclk_freq;bool has_hdmi_sink =intel_has_hdmi_sink (intel_sdvo_connector, connector->state); +int max_dotclk = i915->max_dotclk_freq; +enum drm_mode_status status;int clock = mode->clock; + status =intel_cpu_transcoder_mode_valid (i915, mode); +if (status !=MODE_OK ) +return status; +if (mode->flags &DRM_MODE_FLAG_DBLSCAN )return MODE_NO_DBLESCAN ;
drivers/gpu/drm/i915/display/intel_tv.c +7 -1
@@ -958,8 +958,14 @@ static enum drm_mode_status intel_tv_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode) { + struct drm_i915_private *i915 = to_i915(connector->dev);const struct tv_mode *tv_mode =intel_tv_mode_find (connector->state); -int max_dotclk =to_i915 (connector->dev)->max_dotclk_freq; +int max_dotclk = i915->max_dotclk_freq; +enum drm_mode_status status; + + status =intel_cpu_transcoder_mode_valid (i915, mode); +if (status !=MODE_OK ) +return status;if (mode->flags &DRM_MODE_FLAG_DBLSCAN )return MODE_NO_DBLESCAN ;
drivers/gpu/drm/i915/display/vlv_dsi.c +17 -1
@@ -1540,9 +1540,25 @@ static const struct drm_encoder_funcs intel_dsi_funcs = { .destroy = intel_dsi_encoder_destroy, }; +static enum drm_mode_status vlv_dsi_mode_valid (struct drm_connector *connector, +struct drm_display_mode *mode) +{ +struct drm_i915_private *i915 =to_i915 (connector->dev); + +if (IS_VALLEYVIEW (i915) ||IS_CHERRYVIEW (i915)) { +enum drm_mode_status status; + + status =intel_cpu_transcoder_mode_valid (i915, mode); +if (status !=MODE_OK ) +return status; + } + +return intel_dsi_mode_valid (connector, mode); +} +static const struct drm_connector_helper_funcs intel_dsi_connector_helper_funcs = { .get_modes = intel_dsi_get_modes, - .mode_valid = intel_dsi_mode_valid, + .mode_valid = vlv_dsi_mode_valid, .atomic_check = intel_digital_connector_atomic_check, };
drivers/gpu/drm/nouveau/dispnv50/disp.c +1 -1
@@ -2310,7 +2310,7 @@ nv50_disp_atomic_commit(struct drm_device *dev, err_cleanup:if (ret) -drm_atomic_helper_cleanup_planes (dev, state); +drm_atomic_helper_unprepare_planes (dev, state); done:pm_runtime_put_autosuspend (dev->dev);return ret;
drivers/gpu/drm/nouveau/include/nvkm/core/event.h +2 -2
@@ -14,7 +14,7 @@ struct nvkm_event {int index_nr;spinlock_t refs_lock; -spinlock_t list_lock; +rwlock_t list_lock;int *refs;struct list_head ntfy;
@@ -38,7 +38,7 @@ nvkm_event_init(const struct nvkm_event_func *func, struct nvkm_subdev *subdev, int types_nr, int index_nr, struct nvkm_event *event) { spin_lock_init(&event->refs_lock); -spin_lock_init (&event->list_lock); +rwlock_init (&event->list_lock);return __nvkm_event_init (func, subdev, types_nr, index_nr, event); }
drivers/gpu/drm/nouveau/nvkm/core/event.c +6 -6
@@ -81,17 +81,17 @@ nvkm_event_ntfy_state(struct nvkm_event_ntfy *ntfy)static void nvkm_event_ntfy_remove (struct nvkm_event_ntfy *ntfy) { -spin_lock_irq (&ntfy->event->list_lock); +write_lock_irq (&ntfy->event->list_lock);list_del_init (&ntfy->head); -spin_unlock_irq (&ntfy->event->list_lock); +write_unlock_irq (&ntfy->event->list_lock); }static void nvkm_event_ntfy_insert (struct nvkm_event_ntfy *ntfy) { -spin_lock_irq (&ntfy->event->list_lock); +write_lock_irq (&ntfy->event->list_lock);list_add_tail (&ntfy->head, &ntfy->event->ntfy); -spin_unlock_irq (&ntfy->event->list_lock); +write_unlock_irq (&ntfy->event->list_lock); } static void
@@ -176,7 +176,7 @@ nvkm_event_ntfy(struct nvkm_event *event, int id, u32 bits)return ;nvkm_trace (event->subdev,"event: ntfy %08x on %d\n" , bits, id); -spin_lock_irqsave (&event->list_lock, flags); +read_lock_irqsave (&event->list_lock, flags);list_for_each_entry_safe (ntfy, ntmp, &event->ntfy, head) {if (ntfy->id == id && ntfy->bits & bits) {
@@ -185,7 +185,7 @@ nvkm_event_ntfy(struct nvkm_event *event, int id, u32 bits) } } -spin_unlock_irqrestore (&event->list_lock, flags); +read_unlock_irqrestore (&event->list_lock, flags); }void
drivers/hwmon/acpi_power_meter.c +4 -0
@@ -31,6 +31,7 @@#define POWER_METER_CAN_NOTIFY (1 << 3)#define POWER_METER_IS_BATTERY (1 << 8)#define UNKNOWN_HYSTERESIS 0xFFFFFFFF +#define UNKNOWN_POWER 0xFFFFFFFF#define METER_NOTIFY_CONFIG 0x80#define METER_NOTIFY_TRIP 0x81
@@ -348,6 +349,9 @@ static ssize_t show_power(struct device *dev,update_meter (resource);mutex_unlock (&resource->lock); +if (resource->power ==UNKNOWN_POWER ) +return -ENODATA ; +return sprintf (buf,"%llu\n" , resource->power *1000 ); }
drivers/hwmon/nzxt-kraken2.c +2 -2
@@ -161,13 +161,13 @@ static int kraken2_probe(struct hid_device *hdev, ret =hid_hw_start (hdev,HID_CONNECT_HIDRAW );if (ret) {hid_err (hdev,"hid hw start failed with %d\n" , ret); - goto fail_and_stop; +return ret; } ret =hid_hw_open (hdev);if (ret) {hid_err (hdev,"hid hw open failed with %d\n" , ret); - goto fail_and_close; + goto fail_and_stop; } priv->hwmon_dev = hwmon_device_register_with_info(&hdev->dev, "kraken2",
drivers/hwtracing/coresight/coresight-etm-perf.c +2 -2
@@ -493,7 +493,7 @@ static void etm_event_start(struct perf_event *event, int flags) goto fail_end_stop;/* Finally enable the tracer */ -if (coresight_enable_source (csdev,CS_MODE_PERF , event)) +if (source_ops (csdev)->enable (csdev, event,CS_MODE_PERF )) goto fail_disable_path;/*
@@ -587,7 +587,7 @@ static void etm_event_stop(struct perf_event *event, int mode)return ;/* stop tracer */ -coresight_disable_source (csdev, event); +source_ops (csdev)->disable (csdev, event);/* tell the core */ event->hw.state =PERF_HES_STOPPED ;
drivers/hwtracing/coresight/coresight-etm4x-core.c +3 -3
@@ -2224,7 +2224,7 @@ static void clear_etmdrvdata(void *info)per_cpu (delayed_probe, cpu) =NULL ; }
Lines of this file are not shown. View the raw message.
drivers/hwtracing/coresight/ultrasoc-smb.c +23 -35
58 lines not on this page · raw message
drivers/hwtracing/coresight/ultrasoc-smb.h +3 -3
Lines of this file are not shown. View the raw message.
drivers/i2c/busses/i2c-designware-common.c +8 -8
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/hns/hns_roce_hw_v2.c +9 -4
Lines of this file are not shown. View the raw message.
drivers/infiniband/ulp/rtrs/rtrs-srv.c +27 -10
Lines of this file are not shown. View the raw message.
drivers/net/arcnet/com20020-pci.c +46 -43
89 lines not on this page · raw message
drivers/net/dsa/microchip/ksz_common.c +12 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/aquantia/atlantic/aq_ptp.c +5 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/aquantia/atlantic/aq_ptp.h +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/aquantia/atlantic/aq_ring.c +12 -6
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/tg3.c +36 -6
42 lines not on this page · raw message
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c +29 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns/hns_enet.c +31 -22
53 lines not on this page · raw message
drivers/net/ethernet/hisilicon/hns/hns_enet.h +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/iavf/iavf_ethtool.c +2 -10
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/iavf/iavf_txrx.h +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_vf_vsi_vlan_ops.c +8 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/mbox.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/mcs.c +15 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/mcs.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/mcs_reg.h +27 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c +1 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c +8 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +7 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +9 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c +10 -10
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c +95 -32
127 lines not on this page · raw message
drivers/net/ethernet/pensando/ionic/ionic_dev.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/pensando/ionic/ionic_lif.c +8 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/realtek/r8169_main.c +6 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwmac5.c +19 -26
45 lines not on this page · raw message
drivers/net/ethernet/stmicro/stmmac/dwmac5.h +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/hwif.h +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +7 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/platform/mellanox/mlxbf-bootctl.c +26 -13
Lines of this file are not shown. View the raw message.
drivers/platform/surface/aggregator/core.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/scsi/sd.c +23 -30
53 lines not on this page · raw message
drivers/tty/serial/amba-pl011.c +54 -58
112 lines not on this page · raw message
fs/nilfs2/sufile.c +35 -7
42 lines not on this page · raw message
fs/smb/client/cifsfs.c +159 -15
174 lines not on this page · raw message
kernel/events/core.c +38 -23
61 lines not on this page · raw message
kernel/trace/trace.c +59 -99
158 lines not on this page · raw message
scripts/gcc-plugins/randomize_layout_plugin.c +1 -2
Lines of this file are not shown. View the raw message.
tools/perf/pmu-events/arch/arm64/ampere/ampereone/metrics.json +2 -0
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.