Linux 6.7.6
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.7.6 kernel.
All users of the 6.7 kernel series must upgrade.
The updated 6.7.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.7.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-class-net-statistics | 48 Documentation/arch/arm64/silicon-errata.rst | 7 Documentation/netlink/specs/dpll.yaml | 4 Documentation/networking/devlink/devlink-port.rst | 2 Documentation/sphinx/kernel_feat.py | 2 Makefile | 2 arch/Kconfig | 1 arch/arc/include/asm/jump_label.h | 4 arch/arm/include/asm/jump_label.h | 4 arch/arm64/include/asm/alternative-macros.h | 4 arch/arm64/include/asm/cputype.h | 4 arch/arm64/include/asm/jump_label.h | 4 arch/arm64/kernel/cpu_errata.c | 3 arch/arm64/kernel/fpsimd.c | 2 arch/arm64/kernel/signal.c | 4 arch/arm64/kvm/pkvm.c | 27 arch/csky/include/asm/jump_label.h | 4 arch/loongarch/include/asm/jump_label.h | 4 arch/loongarch/mm/kasan_init.c | 3 arch/mips/include/asm/checksum.h | 3 arch/mips/include/asm/jump_label.h | 4 arch/mips/include/asm/ptrace.h | 2 arch/mips/kernel/ptrace.c | 7 arch/parisc/Kconfig | 1 arch/parisc/include/asm/assembly.h | 1 arch/parisc/include/asm/extable.h | 64 arch/parisc/include/asm/jump_label.h | 4 arch/parisc/include/asm/special_insns.h | 6 arch/parisc/include/asm/uaccess.h | 48 arch/parisc/kernel/cache.c | 6 arch/parisc/kernel/drivers.c | 3 arch/parisc/kernel/unaligned.c | 44 arch/parisc/mm/fault.c | 11 arch/powerpc/include/asm/jump_label.h | 4 arch/powerpc/include/asm/reg.h | 2 arch/powerpc/include/asm/thread_info.h | 2 arch/powerpc/include/asm/uaccess.h | 12 arch/powerpc/kernel/cpu_setup_6xx.S | 20 arch/powerpc/kernel/cpu_specs_e500mc.h | 3 arch/powerpc/kernel/interrupt_64.S | 4 arch/powerpc/kernel/iommu.c | 4 arch/powerpc/kernel/irq_64.c | 2 arch/powerpc/mm/kasan/init_32.c | 1 arch/powerpc/platforms/pseries/lpar.c | 8 arch/riscv/include/asm/bitops.h | 8 arch/riscv/include/asm/cpufeature.h | 4 arch/riscv/include/asm/jump_label.h | 4 arch/s390/include/asm/jump_label.h | 4 arch/s390/kvm/vsie.c | 1 arch/s390/mm/gmap.c | 1 arch/sparc/include/asm/jump_label.h | 4 arch/um/Makefile | 4 arch/um/include/asm/cpufeature.h | 2 arch/x86/Kconfig.cpu | 2 arch/x86/include/asm/barrier.h | 18 arch/x86/include/asm/cpufeature.h | 2 arch/x86/include/asm/cpufeatures.h | 2 arch/x86/include/asm/jump_label.h | 6 arch/x86/include/asm/processor.h | 18 arch/x86/include/asm/rmwcc.h | 2 arch/x86/include/asm/special_insns.h | 2 arch/x86/include/asm/uaccess.h | 10 arch/x86/kernel/cpu/amd.c | 3 arch/x86/kernel/cpu/common.c | 7 arch/x86/kernel/cpu/hygon.c | 3 arch/x86/kernel/fpu/signal.c | 13 arch/x86/kvm/svm/svm_ops.h | 6 arch/x86/kvm/vmx/pmu_intel.c | 2 arch/x86/kvm/vmx/vmx.c | 4 arch/x86/kvm/vmx/vmx_ops.h | 6 arch/x86/kvm/x86.c | 3 arch/x86/mm/ident_map.c | 23 arch/xtensa/include/asm/jump_label.h | 4 block/blk-mq.c | 9 block/blk-wbt.c | 4 crypto/algif_hash.c | 5 drivers/android/binder.c | 10 drivers/base/core.c | 15 drivers/base/power/domain.c | 2 drivers/connector/cn_proc.c | 5 drivers/crypto/ccp/sev-dev.c | 10 drivers/dpll/dpll_netlink.c | 20 drivers/dpll/dpll_nl.c | 4 drivers/dpll/dpll_nl.h | 2 drivers/firewire/core-device.c | 7 drivers/firmware/efi/libstub/Makefile | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 1 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 9 drivers/gpu/drm/amd/amdgpu/cik_ih.c | 6 drivers/gpu/drm/amd/amdgpu/cz_ih.c | 5 drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 2 drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 8 drivers/gpu/drm/amd/amdgpu/iceland_ih.c | 5 drivers/gpu/drm/amd/amdgpu/ih_v6_0.c | 6 drivers/gpu/drm/amd/amdgpu/ih_v6_1.c | 7 drivers/gpu/drm/amd/amdgpu/navi10_ih.c | 6 drivers/gpu/drm/amd/amdgpu/si_ih.c | 6 drivers/gpu/drm/amd/amdgpu/soc21.c | 4 drivers/gpu/drm/amd/amdgpu/tonga_ih.c | 6 drivers/gpu/drm/amd/amdgpu/vega10_ih.c | 6 drivers/gpu/drm/amd/amdgpu/vega20_ih.c | 6 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 14 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c | 15 drivers/gpu/drm/amd/display/dc/dml/Makefile | 6 drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c | 2 drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c | 29 drivers/gpu/drm/amd/display/dc/inc/core_types.h | 2 drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c | 5 drivers/gpu/drm/drm_buddy.c | 6 drivers/gpu/drm/drm_prime.c | 2 drivers/gpu/drm/i915/display/intel_dp.c | 3 drivers/gpu/drm/i915/display/intel_vdsc_regs.h | 4 drivers/gpu/drm/msm/msm_gem_prime.c | 4 drivers/gpu/drm/msm/msm_gpu.c | 11 drivers/gpu/drm/msm/msm_iommu.c | 32 drivers/gpu/drm/msm/msm_ringbuffer.c | 7 drivers/gpu/drm/nouveau/include/nvkm/subdev/gsp.h | 2 drivers/gpu/drm/nouveau/nouveau_fence.c | 24 drivers/gpu/drm/nouveau/nouveau_fence.h | 1 drivers/gpu/drm/nouveau/nouveau_svm.c | 2 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c | 61 drivers/gpu/drm/virtio/virtgpu_drv.c | 1 drivers/hid/bpf/hid_bpf_dispatch.c | 83 - drivers/hid/bpf/hid_bpf_dispatch.h | 4 drivers/hid/bpf/hid_bpf_jmp_table.c | 40 drivers/hid/i2c-hid/i2c-hid-of.c | 1 drivers/hid/wacom_sys.c | 63 drivers/hid/wacom_wac.c | 9 drivers/i2c/busses/Makefile | 6 drivers/i2c/busses/i2c-i801.c | 4 drivers/i2c/busses/i2c-pasemi-core.c | 6 drivers/i2c/busses/i2c-qcom-geni.c | 14 drivers/iio/accel/Kconfig | 2 drivers/iio/adc/ad4130.c | 12 drivers/iio/imu/bno055/Kconfig | 1 drivers/iio/industrialio-core.c | 5 drivers/iio/light/hid-sensor-als.c | 1 drivers/iio/magnetometer/rm3100-core.c | 10 drivers/iio/pressure/bmp280-spi.c | 1 drivers/interconnect/qcom/sc8180x.c | 1 drivers/interconnect/qcom/sm8550.c | 1 drivers/irqchip/irq-brcmstb-l2.c | 5 drivers/irqchip/irq-gic-v3-its.c | 62 drivers/irqchip/irq-loongson-eiointc.c | 2 drivers/md/dm-core.h | 2 drivers/md/dm-crypt.c | 38 drivers/md/dm-ioctl.c | 3 drivers/md/dm-table.c | 9 drivers/md/dm-verity-target.c | 26 drivers/md/dm-verity.h | 1 drivers/md/md.c | 7 drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c | 2 drivers/media/rc/bpf-lirc.c | 6 drivers/media/rc/ir_toy.c | 2 drivers/media/rc/lirc_dev.c | 5 drivers/media/rc/rc-core-priv.h | 2 drivers/misc/fastrpc.c | 2 drivers/mmc/core/slot-gpio.c | 6 drivers/mmc/host/sdhci-pci-o2micro.c | 30 drivers/net/bonding/bond_main.c | 5 drivers/net/can/dev/netlink.c | 2 drivers/net/dsa/mv88e6xxx/chip.c | 2 drivers/net/ethernet/intel/i40e/i40e_main.c | 2 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 38 drivers/net/ethernet/mellanox/mlx5/core/dpll.c | 2 drivers/net/ethernet/microchip/lan966x/lan966x_lag.c | 9 drivers/net/ethernet/netronome/nfp/flower/conntrack.c | 46 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c | 2 drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 1 drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c | 6 drivers/net/ethernet/stmicro/stmmac/common.h | 56 drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 15 drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c | 15 drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c | 15 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c | 15 drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 129 + drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 136 - drivers/net/ethernet/ti/cpsw.c | 2 drivers/net/ethernet/ti/cpsw_new.c | 3 drivers/net/hyperv/netvsc.c | 5 drivers/net/hyperv/netvsc_drv.c | 82 - drivers/net/wireless/intel/iwlwifi/fw/acpi.c | 15 drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 1 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 3 drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 4 drivers/net/wireless/intel/iwlwifi/mvm/time-event.c | 3 drivers/net/xen-netback/netback.c | 84 - drivers/of/property.c | 65 drivers/of/unittest.c | 12 drivers/pci/controller/dwc/pcie-designware-ep.c | 3 drivers/pci/pci.c | 37 drivers/perf/cxl_pmu.c | 2 drivers/pmdomain/mediatek/mtk-pm-domains.c | 15 drivers/pmdomain/renesas/r8a77980-sysc.c | 3 drivers/s390/net/qeth_l3_main.c | 9 drivers/scsi/fcoe/fcoe_ctlr.c | 20 drivers/scsi/storvsc_drv.c | 12 drivers/spi/spi-imx.c | 9 drivers/spi/spi-omap2-mcspi.c | 137 - drivers/spi/spi-ppc4xx.c | 5 drivers/staging/iio/impedance-analyzer/ad5933.c | 2 drivers/thunderbolt/tb_regs.h | 2 drivers/thunderbolt/usb4.c | 2 drivers/tty/serial/max310x.c | 53 drivers/tty/serial/mxs-auart.c | 5 drivers/tty/serial/serial_core.c | 2 drivers/usb/chipidea/ci.h | 2 drivers/usb/chipidea/core.c | 44 drivers/usb/common/ulpi.c | 2 drivers/usb/core/hub.c | 46 drivers/usb/dwc3/gadget.c | 6 drivers/usb/gadget/function/f_mass_storage.c | 20 drivers/usb/typec/tcpm/tcpm.c | 3 drivers/usb/typec/ucsi/ucsi.c | 2 drivers/usb/typec/ucsi/ucsi_acpi.c | 17 drivers/xen/events/events_base.c | 8 fs/btrfs/block-group.c | 80 fs/btrfs/block-group.h | 7 fs/btrfs/delalloc-space.c | 29 fs/btrfs/disk-io.c | 13 fs/btrfs/inode.c | 26 fs/btrfs/ioctl.c | 5 fs/btrfs/qgroup.c | 14 fs/btrfs/send.c | 2 fs/btrfs/transaction.c | 38 fs/ceph/caps.c | 3 fs/ext4/mballoc.c | 39 fs/ext4/move_extent.c | 6 fs/hugetlbfs/inode.c | 21 fs/namespace.c | 11 fs/nfsd/nfs4state.c | 11 fs/nilfs2/file.c | 8 fs/nilfs2/recovery.c | 7 fs/nilfs2/segment.c | 8 fs/proc/array.c | 66 fs/smb/client/connect.c | 14 fs/smb/client/fs_context.c | 11 fs/smb/client/namespace.c | 16 fs/smb/client/smb2ops.c | 2 fs/smb/server/smb2pdu.c | 8 fs/tracefs/event_inode.c | 808 ++-------- fs/tracefs/inode.c | 102 - fs/tracefs/internal.h | 44 fs/zonefs/file.c | 42 fs/zonefs/super.c | 66 include/linux/backing-dev-defs.h | 7 include/linux/compiler-gcc.h | 20 include/linux/compiler_types.h | 11 include/linux/gpio/driver.h | 12 include/linux/iio/adc/ad_sigma_delta.h | 4 include/linux/iio/common/st_sensors.h | 4 include/linux/iio/imu/adis.h | 3 include/linux/lsm_hook_defs.h | 4 include/linux/mman.h | 1 include/linux/netfilter/ipset/ip_set.h | 4 include/linux/ptrace.h | 4 include/linux/serial_core.h | 32 include/net/tls.h | 5 include/sound/tas2781.h | 1 init/Kconfig | 9 io_uring/net.c | 5 kernel/sched/membarrier.c | 6 kernel/sys.c | 50 kernel/trace/ftrace.c | 10 kernel/trace/ring_buffer.c | 2 kernel/trace/trace.c | 78 kernel/trace/trace_btf.c | 4 kernel/trace/trace_events_synth.c | 3 kernel/trace/trace_events_trigger.c | 6 kernel/trace/trace_osnoise.c | 6 kernel/trace/trace_probe.c | 32 kernel/trace/trace_probe.h | 3 kernel/workqueue.c | 8 lib/kobject.c | 24 mm/backing-dev.c | 2 mm/damon/sysfs-schemes.c | 2 mm/huge_memory.c | 14 mm/memory-failure.c | 2 mm/memory.c | 4 mm/mmap.c | 6 mm/page-writeback.c | 4 mm/userfaultfd.c | 15 net/can/j1939/j1939-priv.h | 3 net/can/j1939/main.c | 2 net/can/j1939/socket.c | 46 net/handshake/handshake-test.c | 5 net/hsr/hsr_device.c | 4 net/mac80211/tx.c | 5 net/mptcp/pm_userspace.c | 13 net/mptcp/protocol.c | 25 net/mptcp/protocol.h | 7 net/mptcp/subflow.c | 4 net/netfilter/ipset/ip_set_bitmap_gen.h | 14 net/netfilter/ipset/ip_set_core.c | 39 net/netfilter/ipset/ip_set_hash_gen.h | 19 net/netfilter/ipset/ip_set_list_set.c | 13 net/netfilter/nft_set_pipapo_avx2.c | 2 net/nfc/nci/core.c | 4 net/openvswitch/flow_netlink.c | 49 net/tls/tls_sw.c | 135 - net/wireless/core.c | 3 samples/bpf/asm_goto_workaround.h | 8 scripts/link-vmlinux.sh | 9 scripts/mksysmap | 13 scripts/mod/modpost.c | 3 scripts/mod/sumversion.c | 7 security/security.c | 45 sound/pci/hda/Kconfig | 4 sound/pci/hda/patch_conexant.c | 18 sound/pci/hda/patch_cs8409.c | 1 sound/pci/hda/patch_realtek.c | 20 sound/pci/hda/tas2781_hda_i2c.c | 2 sound/soc/amd/yc/acp6x-mach.c | 14 sound/soc/codecs/rt5645.c | 1 sound/soc/codecs/tas2781-comlib.c | 3 sound/soc/codecs/tas2781-i2c.c | 2 sound/soc/codecs/wcd938x.c | 2 sound/soc/intel/avs/core.c | 3 sound/soc/intel/avs/topology.c | 2 sound/soc/sof/ipc3-topology.c | 55 sound/soc/sof/ipc3.c | 2 tools/arch/x86/include/asm/rmwcc.h | 2 tools/include/linux/compiler_types.h | 4 tools/testing/selftests/dt/test_unprobed_devices.sh | 13 tools/testing/selftests/landlock/common.h | 48 tools/testing/selftests/landlock/fs_test.c | 11 tools/testing/selftests/landlock/net_test.c | 13 tools/testing/selftests/mm/charge_reserved_hugetlb.sh | 2 tools/testing/selftests/mm/ksm_tests.c | 2 tools/testing/selftests/mm/map_hugetlb.c | 7 tools/testing/selftests/mm/va_high_addr_switch.sh | 6 tools/testing/selftests/mm/write_hugetlb_memory.sh | 2 tools/testing/selftests/net/forwarding/bridge_locked_port.sh | 4 tools/testing/selftests/net/forwarding/bridge_mdb.sh | 14 tools/testing/selftests/net/forwarding/tc_flower_l2_miss.sh | 8 tools/testing/selftests/net/mptcp/config | 3 tools/testing/selftests/net/mptcp/mptcp_join.sh | 10 tools/testing/selftests/net/mptcp/mptcp_lib.sh | 11 tools/testing/selftests/net/mptcp/settings | 2 tools/testing/selftests/net/mptcp/userspace_pm.sh | 31 tools/testing/selftests/net/test_bridge_backup_port.sh | 394 ++-- tools/tracing/rtla/Makefile | 7 tools/tracing/rtla/src/osnoise_hist.c | 9 tools/tracing/rtla/src/osnoise_top.c | 6 tools/tracing/rtla/src/timerlat_hist.c | 9 tools/tracing/rtla/src/timerlat_top.c | 6 tools/tracing/rtla/src/utils.c | 14 tools/tracing/rtla/src/utils.h | 2 tools/verification/rv/Makefile | 7 tools/verification/rv/src/in_kernel.c | 2 350 files changed, 3331 insertions(+), 2533 deletions(-)
Aaron Conole (1):
net: openvswitch: limit the number of recursions from action sets
Aleksander Mazur (1):
x86/Kconfig: Transmeta Crusoe is CPU family 5, not 6
Alex Williamson (1):
PCI: Fix active state requirement in PME polling
Alexander Stein (1):
mmc: slot-gpio: Allow non-sleeping GPIO ro
Alexandra Winter (1):
s390/qeth: Fix potential loss of L3-IP@ in case of network issues
Alexey Khoroshilov (1):
ASoC: rt5645: Fix deadlock in rt5645_jack_detect_work()
Amadeusz Sławiński (1):
ASoC: Intel: avs: Fix dynamic port assignment when TDM is set
Andrei Vagin (1):
x86/fpu: Stop relying on userspace for info to fault in xsave buffer
Andrew Lunn (1):
net: dsa: mv88e6xxx: Fix failed probe due to unsupported C45 reads
Andy Chi (1):
ALSA: hda/realtek: fix mute/micmute LEDs for HP ZBook Power
Arnd Bergmann (3):
nouveau/svm: fix kvcalloc() argument order
i2c: pasemi: split driver into two separate modules
kallsyms: ignore ARMv4 thunks along with others
Arunpravin Paneer Selvam (1):
drm/buddy: Fix alloc_range() error handling code
Audra Mitchell (1):
selftests/mm: Update va_high_addr_switch.sh to check CPU for la57 flag
Baokun Li (2):
ext4: fix double-free of blocks due to wrong extents moved_len
ext4: avoid bb_free and bb_fragments inconsistency in mb_free_blocks()
Benjamin Tissoires (2):
HID: bpf: remove double fdget()
HID: bpf: actually free hdev memory after attaching a HID-BPF program
Bibo Mao (1):
irqchip/loongson-eiointc: Use correct struct type in eiointc_domain_alloc()
Boris Burkov (2):
btrfs: forbid creating subvol qgroups
btrfs: forbid deleting live subvol qgroup
Borislav Petkov (AMD) (1):
x86/barrier: Do not serialize MSR accesses on AMD
Breno Leitao (1):
net: sysfs: Fix /sys/class/net/<iface> path for statistics
Carlos Llamas (1):
binder: signal epoll threads of self-work
Carlos Song (1):
spi: imx: fix the burst length at DMA mode and CPU mode
Cezary Rojewski (1):
ASoC: Intel: avs: Fix pci_probe() error path
Christian A. Ehrhardt (3):
of: unittest: Fix compile in the non-dynamic case
usb: ucsi: Add missing ppm_lock
usb: ucsi_acpi: Fix command completion handling
Christian Borntraeger (1):
KVM: s390: vsie: fix race during shadow creation
Christian Brauner (1):
fs: relax mount_setattr() permission checks
Chuck Lever (1):
net/handshake: Fix handshake_req_destroy_test1
Cosmin Tanislav (2):
iio: adc: ad4130: zero-initialize clock init data
iio: adc: ad4130: only set GPIO_CTRL if pin is unused
Curtis Malainey (1):
ASoC: SOF: IPC3: fix message bounds on ipc ops
Damien Le Moal (2):
zonefs: Improve error handling
block: fix partial zone append completion handling in req_bio_endio()
Dan Carpenter (4):
wifi: iwlwifi: Fix some error codes
wifi: iwlwifi: uninitialized variable in iwl_acpi_get_ppag_table()
cifs: fix underflow in parse_server_interfaces()
PCI: dwc: Fix a 64bit bug in dw_pcie_ep_raise_msix_irq()
Daniel Basilio (1):
nfp: use correct macro for LengthSelect in BAR config
Daniel Bristot de Oliveira (7):
tracing/timerlat: Move hrtimer_init to timerlat_fd open() tools/rv: Fix curr_reactor uninitialized variable tools/rv: Fix Makefile compiler options for clang tools/rtla: Remove unused sched_getattr() function tools/rtla: Fix clang warning about mount_point var size tools/rtla: Fix uninitialized bucket/data->bucket_size warning tools/rtla: Fix Makefile compiler options for clang
Daniel de Villiers (1):
nfp: flower: prevent re-adding mac index for bonded port
Dave Airlie (2):
nouveau: offload fence uevents work to workqueue nouveau/gsp: use correct size for registry rpc.
David Engraf (1):
powerpc/cputable: Add missing PPC_FEATURE_BOOKE on PPC64 Book-E
David McFarland (1):
drm/amd: Don't init MEC2 firmware when it fails to load
David Schiller (1):
staging: iio: ad5933: fix type mismatch regression
David Senoner (1):
ALSA: hda/realtek: Fix the external mic not being recognised for Acer Swift 1 SF114-32
David Sterba (1):
btrfs: send: return EOPNOTSUPP on unknown flags
Dinghao Liu (1):
iio: core: fix memleak in iio_device_register_sysfs
Doug Berger (1):
irqchip/irq-brcmstb-l2: Add write memory barrier before exit
Easwar Hariharan (1):
arm64: Subscribe Microsoft Azure Cobalt 100 to ARM Neoverse N2 errata
Edson Juliano Drosdeck (1):
ALSA: hda/realtek: Enable headset mic on Vaio VJFE-ADL
Ekansh Gupta (1):
misc: fastrpc: Mark all sessions as invalid in cb_remove
Emmanuel Grumbach (1):
wifi: iwlwifi: mvm: fix a crash when we run out of stations
Eniac Zhang (1):
ALSA: hda/realtek: fix mute/micmute LED For HP mt645
Erick Archer (1):
eventfs: Use kcalloc() instead of kzalloc()
Esben Haabendal (1):
net: stmmac: do not clear TBS enable bit on link up/down
Eugen Hristev (1):
pmdomain: mediatek: fix race conditions with genpd
Fangzhi Zuo (2):
drm/amd/display: Fix dcn35 8k30 Underflow/Corruption Issue drm/amd/display: Fix MST Null Ptr for RV
Fedor Pchelkin (2):
nfc: nci: free rx_data_reassembly skb on NCI device cleanup
ksmbd: free aux buffer if ksmbd_iov_pin_rsp_read fails
Filipe Manana (6):
btrfs: add and use helper to check if block group is used
btrfs: do not delete unused block group if it may be used soon
btrfs: add new unused block groups to the list of unused block groups
btrfs: don't refill whole delayed refs block reserve when starting transaction
btrfs: don't reserve space for checksums when writing to nocow files
btrfs: reject encoded write if inode has nodatasum flag set
Fred Ai (1):
mmc: sdhci-pci-o2micro: Fix a warm reboot issue that disk can't be detected by BIOS
Friedrich Vock (1):
drm/amdgpu: Reset IH OVERFLOW_CLEAR bit
Gaurav Batra (1):
powerpc/pseries/iommu: Fix iommu initialisation during DLPAR add
Geert Uytterhoeven (1):
pmdomain: renesas: r8a77980-sysc: CR7 must be always on
Geliang Tang (2):
selftests: mptcp: add mptcp_lib_kill_wait
mptcp: check addrs list in userspace_pm_get_local_id
Gergo Koteles (1):
ASoC: tas2781: add module parameter to tascodec_init()
Greg Kroah-Hartman (2):
Revert "kobject: Remove redundant checks for whether ktype is NULL" Linux 6.7.6
Guenter Roeck (1):
MIPS: Add 'memory' clobber to csum_ipv6_magic() inline assembler
Gui-Dong Han (1):
serial: core: Fix atomicity violation in uart_tiocmget
Hangbin Liu (1):
selftests/net: convert test_bridge_backup_port.sh to run it in unique namespace
Helge Deller (3):
parisc: Prevent hung tasks when printing inventory on serial console
parisc: Fix random data corruption from exception handler
parisc: BTLB: Fix crash when setting up BTLB at CPU bringup
Herbert Xu (1):
crypto: algif_hash - Remove bogus SGL free on zero-length error path
Hojin Nam (1):
perf: CXL: fix mismatched cpmu event opcode
Horatiu Vultur (1):
lan966x: Fix crash when adding interface under a lag
Hu Yadi (2):
selftests/landlock: Fix net_test build with old libc selftests/landlock: Fix fs_test build with old libc
Huacai Chen (1):
LoongArch: Fix earlycon parameter if KASAN enabled
Hugo Villeneuve (4):
serial: max310x: set default value when reading clock ready bit
serial: max310x: improve crystal stable clock detection
serial: max310x: fail probe if clock crystal is unstable
serial: max310x: prevent infinite while() loop in port startupHui Zhou (2):
nfp: flower: add hardware offload check for post ct entry
nfp: flower: fix hardware offload for the transfer layer port
Ido Schimmel (5):
selftests: net: Fix bridge backup port test flakiness
selftests: forwarding: Fix layer 2 miss test flakiness
selftests: forwarding: Fix bridge MDB test flakiness
selftests: forwarding: Suppress grep warnings
selftests: forwarding: Fix bridge locked port test flakiness
Ivan Vecera (2):
i40e: Do not allow untrusted VF to remove administratively set MAC
i40e: Fix waiting for queues of all VSIs to be disabled
Jakub Kicinski (5):
net: tls: factor out tls_*crypt_async_wait()
tls: fix race between async notify and socket close
tls: fix race between tx work scheduling and socket close
net: tls: handle backlogging of crypto requests
net: tls: fix returned read length with async decrypt
James Hershaw (1):
nfp: enable NETDEV_XDP_ACT_REDIRECT feature flag
Jan Beulich (1):
xen-netback: properly sync TX responses
Jan Kara (1):
blk-wbt: Fix detection of dirty-throttled tasks
Jan Kiszka (1):
riscv/efistub: Ensure GP-relative addressing is not used
Jason Gerecke (1):
HID: wacom: Do not register input devices until after hid_hw_start
Jean Delvare (1):
i2c: i801: Fix block process call transactions
Jens Axboe (1):
io_uring/net: fix multishot accept overflow handling
Jiangfeng Xiao (1):
powerpc/kasan: Fix addr error caused by page alignment
Jiaxun Yang (2):
ptrace: Introduce exception_ip arch hook mm/memory: Use exception ip to search exception tables
Jiri Pirko (2):
dpll: fix possible deadlock during netlink dump operation net/mlx5: DPLL, Fix possible use after free after delayed work timer triggers
Jiri Slaby (SUSE) (2):
serial: core: introduce uart_port_tx_flags()
serial: mxs-auart: fix tx
Johan Hovold (1):
HID: i2c-hid-of: fix NULL-deref on failed power up
Johannes Berg (3):
wifi: iwlwifi: fix double-free bug
wifi: cfg80211: fix wiphy delayed work queueing
wifi: mac80211: reload info pointer in ieee80211_tx_dequeue()
John Kacur (1):
tools/rtla: Exit with EXIT_SUCCESS when help is invoked
Josef Bacik (1):
btrfs: don't drop extent_map for free space inode on write error
José Relvas (1):
ALSA: hda/realtek: Apply headset jack quirk for non-bass alc287 thinkpads
Jozsef Kadlecsik (2):
netfilter: ipset: fix performance regression in swap operation
netfilter: ipset: Missing gc cancellations fixed
Junxiao Bi (1):
md: bypass block throttle for superblock update
Kailang Yang (1):
ALSA: hda/realtek - Add speaker pin verbtable for Dell dual speaker platform
Keqi Wang (1):
connector/cn_proc: revert "connector: Fix proc_event_num_listeners count not cleared"
Kim Phillips (1):
crypto: ccp - Fix null pointer dereference in __sev_platform_shutdown_locked
Konrad Dybcio (3):
interconnect: qcom: sc8180x: Mark CO0 BCM keepalive
interconnect: qcom: sm8550: Enable sync_state
pmdomain: core: Move the unused cleanup to a _sync initcall
Krzysztof Kozlowski (3):
ASoC: codecs: wcd938x: handle deferred probe
gpiolib: add gpio_device_get_base() stub for !GPIOLIB
gpiolib: add gpiod_to_gpio_device() stub for !GPIOLIB
Lee Duncan (1):
scsi: Revert "scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock"
Lijo Lazar (1):
drm/amdgpu: Avoid fetching VRAM vendor info
Linus Torvalds (9):
work around gcc bugs with 'asm goto' with outputs update workarounds for gcc "asm goto" issue
eventfs: Initialize the tracefs inode properly
tracefs: Avoid using the ei->dentry pointer unnecessarily
tracefs: dentry lookup crapectomy
eventfs: Remove unused d_parent pointer field
eventfs: Clean up dentry ops and add revalidate function
eventfs: Get rid of dentry pointers without refcounts sched/membarrier: reduce the ability to hammer on sys_membarrier
Lokesh Gidra (1):
userfaultfd: fix mmap_changing checking in mfill_atomic_hugetlb
Luka Guzenko (1):
ALSA: hda/realtek: Enable Mute LED on HP Laptop 14-fq0xxx
Lukas Bulwahn (1):
ALSA: hda/cs35l56: select intended config FW_CS_DSP
Magnus Karlsson (1):
bonding: do not report NETDEV_XDP_ACT_XSK_ZEROCOPY
Manasi Navare (1):
drm/i915/dsc: Fix the macro that calculates DSCC_/DSCA_ PPS reg address
Marc Zyngier (3):
irqchip/gic-v3-its: Handle non-coherent GICv4 redistributors irqchip/gic-v3-its: Restore quirk probing for ACPI-based systems irqchip/gic-v3-its: Fix GICv4.1 VPE affinity update
Mario Limonciello (3):
Revert "drm/amd: flush any delayed gfxoff on suspend entry"
iio: accel: bma400: Fix a compilation problem
ASoC: amd: yc: Add DMI quirk for Lenovo Ideapad Pro 5 16ARP8
Mark Brown (2):
arm64/signal: Don't assume that TIF_SVE means we saved SVE state
usb: typec: tpcm: Fix issues with power being removed during reset
Masami Hiramatsu (Google) (5):
tracing/trigger: Fix to return error if failed to alloc snapshot tracing/probes: Fix to show a parse error for bad type for $comm tracing/probes: Fix to set arg size and fmt after setting type from BTF tracing/probes: Fix to search structure fields correctly
ftrace: Fix DIRECT_CALLS to use SAVE_REGS by default
Matthias Schiffer (1):
powerpc/6xx: set High BAT Enable flag on G2_LE cores
Matthieu Baerts (NGI0) (5):
selftests: mptcp: add missing kconfig for NF Filter
selftests: mptcp: add missing kconfig for NF Filter in v6
selftests: mptcp: add missing kconfig for NF Mangle
selftests: mptcp: increase timeout to 30 min
selftests: mptcp: allow changing subtests prefix
Maxime Jayat (1):
can: netlink: Fix TDCO calculation using the old data bittiming
Maximilian Heyne (1):
xen/events: close evtchn after mapping cleanup
Michael Ellerman (2):
powerpc/kasan: Limit KASAN thread size increase to 32KB Revert "powerpc/pseries/iommu: Fix iommu initialisation during DLPAR add"
Michael Kelley (1):
scsi: storvsc: Fix ring buffer size calculation
Mickaël Salaün (1):
selftests/landlock: Fix capability for net_test
Mikulas Patocka (2):
dm-crypt, dm-verity: disable tasklets
dm: limit the number of targets and parameter size area
Mingwei Zhang (1):
KVM: x86/pmu: Fix type length error when reading pmu->fixed_ctr_ctrl
Miri Korenblit (1):
wifi: iwlwifi: clear link_id in time_event
Mohammad Rahimi (1):
thunderbolt: Fix setting the CNS bit in ROUTER_CS_5
Muhammad Usama Anjum (1):
selftests/mm: switch to bash from sh
Nathan Chancellor (4):
kbuild: Fix changing ELF file type for output of gen_btf for big endian
um: Fix adding '-no-pie' for clang
modpost: Add '.ltext' and '.ltext.*' to TEXT_SECTIONS drm/amd/display: Increase frame-larger-than for all display_mode_vba files
Naveen N Rao (1):
powerpc/64: Set task pt_regs->link to the LR value on scv entry
NeilBrown (1):
nfsd: don't take fi_lock in nfsd_break_deleg_cb()
Nico Pache (1):
selftests: mm: fix map_hugetlb failure on 64K page size systems
Nikita Zhandarovich (1):
net: hsr: remove WARN_ONCE() in send_hsr_supervision_frame()
Nuno Sa (4):
iio: commom: st_sensors: ensure proper DMA alignment
iio: adc: ad_sigma_delta: ensure proper DMA alignment
iio: imu: adis: ensure proper DMA alignment
of: property: fix typo in io-channels
Nícolas F. R. A. Prado (1):
kselftest: dt: Stop relying on dirname to improve performance
Oleg Nesterov (4):
getrusage: move thread_group_cputime_adjusted() outside of lock_task_sighand()
getrusage: use sig->stats_lock rather than lock_task_sighand()
fs/proc: do_task_stat: move thread_group_cputime_adjusted() outside of lock_task_sighand() fs/proc: do_task_stat: use sig->stats_lock to gather the threads/children stats
Oleksij Rempel (1):
can: j1939: Fix UAF in j1939_sk_match_filter during setsockopt(SO_J1939_FILTER)
Oliver Neukum (1):
USB: hub: check for alternate port before enabling A_ALT_HNP_SUPPORT
Ondrej Mosnacek (2):
lsm: fix default return value of the socket_getpeersec_*() hooks
lsm: fix the logic in security_inode_getsecctx()
Oscar Salvador (1):
fs,hugetlb: fix NULL pointer dereference in hugetlbs_fill_super
Paolo Abeni (4):
mptcp: fix data re-injection from stale subflow
mptcp: drop the push_pending field
mptcp: fix rcv space initialization
mptcp: really cope with fastopen race
Parav Pandit (1):
devlink: Fix command annotation documentation
Paulo Alcantara (1):
smb: client: set correct id, uid and cruid for multiuser automounts
Petr Pavlu (1):
tracing: Fix HAVE_DYNAMIC_FTRACE_WITH_REGS ifdef
Petr Tesarik (1):
net: stmmac: protect updates of 64-bit statistics counters
Philip Yang (1):
drm/prime: Support page array >= 4GB
Prakash Sangappa (1):
mm: hugetlb pages should not be reserved by shmat() if SHM_NORESERVE
Prasad Pandit (1):
KVM: x86: make KVM_REQ_NMI request iff NMI pending for vcpu
Qu Wenruo (1):
btrfs: do not ASSERT() if the newly created subvolume already got read
Radek Krejci (1):
modpost: trim leading spaces when processing source files list
Randy Dunlap (1):
iio: imu: bno055: serdev requires REGMAP
Ranjani Sridharan (1):
ASoC: SOF: ipc3-topology: Fix pipeline tear down logic
Rishabh Dave (1):
ceph: prevent use-after-free in encode_cap_msg()
Rob Clark (3):
drm/msm/gem: Fix double resv lock aquire Revert "drm/msm/gpu: Push gpu lock down past runpm" drm/msm: Wire up tlb ops
Roman Li (1):
drm/amd/display: Fix array-index-out-of-bounds in dcn35_clkmgr
Ryan Roberts (2):
mm: thp_get_unmapped_area must honour topdown preference selftests/mm: ksm_tests should only MADV_HUGEPAGE valid memory
Ryusuke Konishi (3):
nilfs2: fix data corruption in dsync block recovery for small block sizes
nilfs2: fix hang in nilfs_lookup_dirty_data_buffers()
nilfs2: fix potential bug in end_buffer_async_write
Sabrina Dubroca (1):
net: tls: fix use-after-free with partial reads and async decrypt
Sam Protsenko (1):
iio: pressure: bmp280: Add missing bmp085 to SPI id table
Samuel Holland (1):
scs: add CONFIG_MMU dependency for vfree_atomic()
Saravana Kannan (5):
driver core: Fix device_link_flag_is_sync_state_only()
of: property: Improve finding the consumer of a remote-endpoint property
of: property: Improve finding the supplier of a remote-endpoint property driver core: fw_devlink: Improve detection of overlapping cycles
of: property: Add in-ports/out-ports support to of_graph_get_port_parent()
Sean Anderson (1):
usb: ulpi: Fix debugfs directory leak
Sean Young (1):
media: rc: bpf attach/detach requires write permission
Sebastian Ene (1):
KVM: arm64: Fix circular locking dependency
Sebastian Ott (1):
drm/virtio: Set segment size for virtio_gpu device
SeongJae Park (1):
mm/damon/sysfs-schemes: fix wrong DAMOS tried regions update timeout setup
Shivaprasad G Bhat (1):
powerpc/iommu: Fix the missing iommu_group_put() during platform domain attach
Shradha Gupta (1):
hv_netvsc: Register VF in netvsc_probe if NET_DEVICE_REGISTER missed
Shrikanth Hegde (1):
powerpc/pseries: fix accuracy of stolen time
Shuming Fan (1):
ALSA: hda/realtek: add IDs for Dell dual spk platform
Sidhartha Kumar (1):
fs/hugetlbfs/inode.c: mm/memory-failure.c: fix hugetlbfs hwpoison handling
Sinthu Raja (2):
net: ethernet: ti: cpsw: enable mac_managed_pm to fix mdio
net: ethernet: ti: cpsw_new: enable mac_managed_pm to fix mdio
Souradeep Chakrabarti (1):
hv_netvsc: Fix race condition between netvsc_probe and netvsc_remove
Srinivas Pandruvada (1):
iio: hid-sensor-als: Return 0 for HID_USAGE_SENSOR_TIME_TIMESTAMP
Steve French (1):
smb: Fix regression in writes when non-standard maximum write size negotiated
Steve Wahl (1):
x86/mm/ident_map: Use gbpages only where full GB page should be mapped.
Steven Rostedt (Google) (16):
tracing: Fix wasted memory in saved_cmdlines logic
eventfs: Remove "lookup" parameter from create_dir/file_dentry()
eventfs: Stop using dcache_readdir() for getdents()
eventfs: Have eventfs_iterate() stop immediately if ei->is_freed is set
eventfs: Do ctx->pos update for all iterations in eventfs_iterate()
eventfs: Read ei->entries before ei->children in eventfs_iterate()
eventfs: Shortcut eventfs_iterate() by skipping entries already read
eventfs: Have the inodes all for files and directories all be the same
eventfs: Do not create dentries nor inodes in iterate_shared
eventfs: Save directory inodes in the eventfs_inode structure
tracefs: Zero out the tracefs_inode when allocating it
eventfs: Warn if an eventfs_inode is freed without is_freed being set
eventfs: Restructure eventfs_inode structure to be more condensed
eventfs: Remove fsnotify*() functions from lookup()
eventfs: Keep all directory links at 1
tracing: Inform kmemleak of saved_cmdlines allocation
Takashi Sakamoto (1):
firewire: core: correct documentation of fw_csr_string() kernel API
Tatsunosuke Tobita (1):
HID: wacom: generic: Avoid reporting a serial of '0' to userspace
Techno Mooney (1):
ASoC: amd: yc: Add DMI quirk for MSI Bravo 15 C7VF
Tejun Heo (1):
Revert "workqueue: Override implicit ordered attribute in workqueue_apply_unbound_cpumask()"
Thong (1):
drm/amdgpu/soc21: update VCN 4 max HEVC encoding resolution
Thorsten Blum (1):
tracing/synthetic: Fix trace_string() return value
Timur Tabi (1):
drm/nouveau: fix several DMA buffer leaks
Tom Chung (1):
drm/amd/display: Preserve original aspect ratio in create stream
Tomi Valkeinen (1):
media: Revert "media: rkisp1: Drop IRQF_SHARED"
Udipto Goswami (1):
usb: core: Prevent null pointer dereference in update_port_device_state
Uttkarsh Aggarwal (1):
usb: dwc3: gadget: Fix NULL pointer dereference in dwc3_gadget_suspend
Uwe Kleine-König (1):
spi: ppc4xx: Drop write-only variable
Vaishnav Achath (1):
spi: omap2-mcspi: Revert FIFO support without DMA
Vegard Nossum (1):
docs: kernel_feat.py: fix build error for missing files
Viken Dadhaniya (1):
i2c: qcom-geni: Correct I2C TRE sequence
Ville Syrjälä (1):
drm/i915/dp: Limit SST link rate to <=8.1Gbps
Vincent Donnefort (1):
ring-buffer: Clean ring_buffer_poll_wait() error return
Vitaly Rodionov (1):
ALSA: hda/cs8409: Suppress vmaster control for Dolphin models
Wenjing Liu (1):
drm/amd/display: fix incorrect mpc_combine array size
Xu Yang (1):
usb: chipidea: core: handle power lost in workqueue
Yang Shi (2):
mm: huge_memory: don't force huge page alignment on 32 bit
mm: mmap: map MAP_STACK to VM_NOHUGEPAGE
Zach O'Keefe (1):
mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again
Zhikai Zhai (1):
drm/amd/display: Add align done check
Zhipeng Lu (1):
media: ir_toy: fix a memleak in irtoy_tx
Ziqi Zhao (1):
can: j1939: prevent deadlock by changing j1939_socks_lock to rwlock
bo liu (1):
ALSA: hda/conexant: Add quirk for SWS JS201D
limingming3 (1):
tools/rtla: Replace setting prio with nice for SCHED_OTHER
yuan linyu (1):
usb: f_mass_storage: forbid async queue when shutdown happen
zhili.liu (1):
iio: magnetometer: rm3100: add boundary check for the value read from RM3100_REG_TMRC
Greg Kroah-Hartman
maintainerDocumentation/ABI/testing/sysfs-class-net-statistics +24 -24
@@ -1,4 +1,4 @@ -What: /sys/class/<iface>/statistics/collisions +What: /sys/class/net/<iface>/statistics/collisions Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -6,7 +6,7 @@ Description: Indicates the number of collisions seen by this network device. This value might not be relevant with all MAC layers. -What: /sys/class/<iface>/statistics/multicast +What: /sys/class/net/<iface>/statistics/multicast Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -14,7 +14,7 @@ Description: Indicates the number of multicast packets received by this network device. -What: /sys/class/<iface>/statistics/rx_bytes +What: /sys/class/net/<iface>/statistics/rx_bytes Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -23,7 +23,7 @@ Description: See the network driver for the exact meaning of when this value is incremented. -What: /sys/class/<iface>/statistics/rx_compressed +What: /sys/class/net/<iface>/statistics/rx_compressed Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -32,7 +32,7 @@ Description: network device. This value might only be relevant for interfaces that support packet compression (e.g: PPP). -What: /sys/class/<iface>/statistics/rx_crc_errors +What: /sys/class/net/<iface>/statistics/rx_crc_errors Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -41,7 +41,7 @@ Description: by this network device. Note that the specific meaning might depend on the MAC layer used by the interface. -What: /sys/class/<iface>/statistics/rx_dropped +What: /sys/class/net/<iface>/statistics/rx_dropped Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -51,7 +51,7 @@ Description: packet processing. See the network driver for the exact meaning of this value. -What: /sys/class/<iface>/statistics/rx_errors +What: /sys/class/net/<iface>/statistics/rx_errors Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -59,7 +59,7 @@ Description: Indicates the number of receive errors on this network device. See the network driver for the exact meaning of this value. -What: /sys/class/<iface>/statistics/rx_fifo_errors +What: /sys/class/net/<iface>/statistics/rx_fifo_errors Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -68,7 +68,7 @@ Description: network device. See the network driver for the exact meaning of this value. -What: /sys/class/<iface>/statistics/rx_frame_errors +What: /sys/class/net/<iface>/statistics/rx_frame_errors Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -78,7 +78,7 @@ Description: on the MAC layer protocol used. See the network driver for the exact meaning of this value. -What: /sys/class/<iface>/statistics/rx_length_errors +What: /sys/class/net/<iface>/statistics/rx_length_errors Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -87,7 +87,7 @@ Description: error, oversized or undersized. See the network driver for the exact meaning of this value. -What: /sys/class/<iface>/statistics/rx_missed_errors +What: /sys/class/net/<iface>/statistics/rx_missed_errors Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -96,7 +96,7 @@ Description: due to lack of capacity in the receive side. See the network driver for the exact meaning of this value. -What: /sys/class/<iface>/statistics/rx_nohandler +What: /sys/class/net/<iface>/statistics/rx_nohandler Date: February 2016 KernelVersion: 4.6 Contact: [email protected]
@@ -104,7 +104,7 @@ Description: Indicates the number of received packets that were dropped on an inactive device by the network core. -What: /sys/class/<iface>/statistics/rx_over_errors +What: /sys/class/net/<iface>/statistics/rx_over_errors Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -114,7 +114,7 @@ Description: (e.g: larger than MTU). See the network driver for the exact meaning of this value. -What: /sys/class/<iface>/statistics/rx_packets +What: /sys/class/net/<iface>/statistics/rx_packets Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -122,7 +122,7 @@ Description: Indicates the total number of good packets received by this network device. -What: /sys/class/<iface>/statistics/tx_aborted_errors +What: /sys/class/net/<iface>/statistics/tx_aborted_errors Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -132,7 +132,7 @@ Description: a medium collision). See the network driver for the exact meaning of this value. -What: /sys/class/<iface>/statistics/tx_bytes +What: /sys/class/net/<iface>/statistics/tx_bytes Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -143,7 +143,7 @@ Description: transmitted packets or all packets that have been queued for transmission. -What: /sys/class/<iface>/statistics/tx_carrier_errors +What: /sys/class/net/<iface>/statistics/tx_carrier_errors Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -152,7 +152,7 @@ Description: because of carrier errors (e.g: physical link down). See the network driver for the exact meaning of this value. -What: /sys/class/<iface>/statistics/tx_compressed +What: /sys/class/net/<iface>/statistics/tx_compressed Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -161,7 +161,7 @@ Description: this might only be relevant for devices that support compression (e.g: PPP). -What: /sys/class/<iface>/statistics/tx_dropped +What: /sys/class/net/<iface>/statistics/tx_dropped Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -170,7 +170,7 @@ Description: See the driver for the exact reasons as to why the packets were dropped. -What: /sys/class/<iface>/statistics/tx_errors +What: /sys/class/net/<iface>/statistics/tx_errors Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -179,7 +179,7 @@ Description: a network device. See the driver for the exact reasons as to why the packets were dropped. -What: /sys/class/<iface>/statistics/tx_fifo_errors +What: /sys/class/net/<iface>/statistics/tx_fifo_errors Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -188,7 +188,7 @@ Description: FIFO error. See the driver for the exact reasons as to why the packets were dropped. -What: /sys/class/<iface>/statistics/tx_heartbeat_errors +What: /sys/class/net/<iface>/statistics/tx_heartbeat_errors Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -197,7 +197,7 @@ Description: reported as heartbeat errors. See the driver for the exact reasons as to why the packets were dropped. -What: /sys/class/<iface>/statistics/tx_packets +What: /sys/class/net/<iface>/statistics/tx_packets Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
@@ -206,7 +206,7 @@ Description: device. See the driver for whether this reports the number of all attempted or successful transmissions. -What: /sys/class/<iface>/statistics/tx_window_errors +What: /sys/class/net/<iface>/statistics/tx_window_errors Date: April 2005 KernelVersion: 2.6.12 Contact: [email protected]
Documentation/arch/arm64/silicon-errata.rst +7 -0
@@ -235,3 +235,10 @@ stable kernels. +----------------+-----------------+-----------------+-----------------------------+ | ASR | ASR8601 | #8601001 | N/A | +----------------+-----------------+-----------------+-----------------------------+ ++----------------+-----------------+-----------------+-----------------------------+ +| Microsoft | Azure Cobalt 100| #2139208 | ARM64_ERRATUM_2139208 | ++----------------+-----------------+-----------------+-----------------------------+ +| Microsoft | Azure Cobalt 100| #2067961 | ARM64_ERRATUM_2067961 | ++----------------+-----------------+-----------------+-----------------------------+ +| Microsoft | Azure Cobalt 100| #2253138 | ARM64_ERRATUM_2253138 | ++----------------+-----------------+-----------------+-----------------------------+
Documentation/netlink/specs/dpll.yaml +0 -4
@@ -374,8 +374,6 @@ operations: - type dump: - pre: dpll-lock-dumpit - post: dpll-unlock-dumpit reply: *dev-attrs -
@@ -462,8 +460,6 @@ operations: - phase-adjust dump: - pre: dpll-lock-dumpit - post: dpll-unlock-dumpit request: attributes: - id
Documentation/networking/devlink/devlink-port.rst +1 -1
@@ -126,7 +126,7 @@ Users may also set the RoCE capability of the function using `devlink port function set roce` command. Users may also set the function as migratable using -'devlink port function set migratable' command. +`devlink port function set migratable` command. Users may also set the IPsec crypto capability of the function using `devlink port function set ipsec_crypto` command.
Documentation/sphinx/kernel_feat.py +1 -1
@@ -109,7 +109,7 @@ class KernelFeat(Directive): else: out_lines += line + "\n" - nodeList = self.nestedParse(out_lines, fname) + nodeList = self.nestedParse(out_lines, self.arguments[0]) return nodeList def nestedParse(self, lines, fname):
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 7 -SUBLEVEL = 5 +SUBLEVEL = 6 EXTRAVERSION = NAME = Hurr durr I'ma ninja sloth
arch/Kconfig +1 -0
@@ -681,6 +681,7 @@ config SHADOW_CALL_STACK bool "Shadow Call Stack" depends on ARCH_SUPPORTS_SHADOW_CALL_STACK depends on DYNAMIC_FTRACE_WITH_ARGS || DYNAMIC_FTRACE_WITH_REGS || !FUNCTION_GRAPH_TRACER + depends on MMU help This option enables the compiler's Shadow Call Stack, which uses a shadow stack to protect function return addresses from
arch/arc/include/asm/jump_label.h +2 -2
@@ -31,7 +31,7 @@ static __always_inline bool arch_static_branch(struct static_key *key,bool branch) { - asm_volatile_goto(".balign "__stringify(JUMP_LABEL_NOP_SIZE)" \n" + asm goto(".balign "__stringify(JUMP_LABEL_NOP_SIZE)" \n""1: \n" "nop \n" ".pushsection __jump_table, \"aw\" \n"
@@ -47,7 +47,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, static __always_inline bool arch_static_branch_jump(struct static_key *key,bool branch) { - asm_volatile_goto(".balign "__stringify(JUMP_LABEL_NOP_SIZE)" \n" + asm goto(".balign "__stringify(JUMP_LABEL_NOP_SIZE)" \n""1: \n" "b %l[l_yes] \n" ".pushsection __jump_table, \"aw\" \n"
arch/arm/include/asm/jump_label.h +2 -2
@@ -11,7 +11,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool branch) { - asm_volatile_goto("1:\n\t" + asm goto("1:\n\t" WASM(nop) "\n\t"".pushsection __jump_table, \"aw\"\n\t" ".word 1b, %l[l_yes], %c0\n\t"
@@ -25,7 +25,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch) { - asm_volatile_goto("1:\n\t" + asm goto("1:\n\t" WASM(b) " %l[l_yes]\n\t"".pushsection __jump_table, \"aw\"\n\t" ".word 1b, %l[l_yes], %c0\n\t"
arch/arm64/include/asm/alternative-macros.h +2 -2
@@ -229,7 +229,7 @@ alternative_has_cap_likely(const unsigned long cpucap)if (!cpucap_is_possible (cpucap))return false; -asm_volatile_goto ( + asm goto( ALTERNATIVE_CB("b %l[l_no]", %[cpucap], alt_cb_patch_nops) : : [cpucap] "i" (cpucap)
@@ -247,7 +247,7 @@ alternative_has_cap_unlikely(const unsigned long cpucap)if (!cpucap_is_possible (cpucap))return false; -asm_volatile_goto ( + asm goto( ALTERNATIVE("nop", "b %l[l_yes]", %[cpucap]) : : [cpucap] "i" (cpucap)
arch/arm64/include/asm/cputype.h +4 -0
@@ -61,6 +61,7 @@#define ARM_CPU_IMP_HISI 0x48#define ARM_CPU_IMP_APPLE 0x61#define ARM_CPU_IMP_AMPERE 0xC0 +#define ARM_CPU_IMP_MICROSOFT 0x6D#define ARM_CPU_PART_AEM_V8 0xD0F#define ARM_CPU_PART_FOUNDATION 0xD00
@@ -135,6 +136,8 @@#define AMPERE_CPU_PART_AMPERE1 0xAC3 +#define MICROSOFT_CPU_PART_AZURE_COBALT_100 0xD49/* Based on r0p0 of ARM Neoverse N2 */ +#define MIDR_CORTEX_A53 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A53)#define MIDR_CORTEX_A57 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A57)#define MIDR_CORTEX_A72 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A72)
@@ -193,6 +196,7 @@#define MIDR_APPLE_M2_BLIZZARD_MAX MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M2_BLIZZARD_MAX)#define MIDR_APPLE_M2_AVALANCHE_MAX MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M2_AVALANCHE_MAX)#define MIDR_AMPERE1 MIDR_CPU_MODEL(ARM_CPU_IMP_AMPERE, AMPERE_CPU_PART_AMPERE1) +#define MIDR_MICROSOFT_AZURE_COBALT_100 MIDR_CPU_MODEL(ARM_CPU_IMP_MICROSOFT, MICROSOFT_CPU_PART_AZURE_COBALT_100)/* Fujitsu Erratum 010001 affects A64FX 1.0 and 1.1, (v0r0 and v1r0) */ #define MIDR_FUJITSU_ERRATUM_010001 MIDR_FUJITSU_A64FX
arch/arm64/include/asm/jump_label.h +2 -2
@@ -18,7 +18,7 @@ static __always_inline bool arch_static_branch(struct static_key * const key,const bool branch) { -asm_volatile_goto ( + asm goto("1: nop \n\t" " .pushsection __jump_table, \"aw\" \n\t" " .align 3 \n\t"
@@ -35,7 +35,7 @@ static __always_inline bool arch_static_branch(struct static_key * const key, static __always_inline bool arch_static_branch_jump(struct static_key * const key,const bool branch) { -asm_volatile_goto ( + asm goto("1: b %l[l_yes] \n\t" " .pushsection __jump_table, \"aw\" \n\t" " .align 3 \n\t"
arch/arm64/kernel/cpu_errata.c +3 -0
@@ -374,6 +374,7 @@ static const struct midr_range erratum_1463225[] = {static const struct midr_range trbe_overwrite_fill_mode_cpus[] = { #ifdef CONFIG_ARM64_ERRATUM_2139208MIDR_ALL_VERSIONS (MIDR_NEOVERSE_N2 ), +MIDR_ALL_VERSIONS (MIDR_MICROSOFT_AZURE_COBALT_100 ), #endif #ifdef CONFIG_ARM64_ERRATUM_2119858 MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
@@ -387,6 +388,7 @@ static const struct midr_range trbe_overwrite_fill_mode_cpus[] = {static const struct midr_range tsb_flush_fail_cpus[] = { #ifdef CONFIG_ARM64_ERRATUM_2067961MIDR_ALL_VERSIONS (MIDR_NEOVERSE_N2 ), +MIDR_ALL_VERSIONS (MIDR_MICROSOFT_AZURE_COBALT_100 ), #endif #ifdef CONFIG_ARM64_ERRATUM_2054223 MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
@@ -399,6 +401,7 @@ static const struct midr_range tsb_flush_fail_cpus[] = {static struct midr_range trbe_write_out_of_range_cpus[] = { #ifdef CONFIG_ARM64_ERRATUM_2253138MIDR_ALL_VERSIONS (MIDR_NEOVERSE_N2 ), +MIDR_ALL_VERSIONS (MIDR_MICROSOFT_AZURE_COBALT_100 ), #endif #ifdef CONFIG_ARM64_ERRATUM_2224489 MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
arch/arm64/kernel/fpsimd.c +1 -1
@@ -1628,7 +1628,7 @@ void fpsimd_preserve_current_state(void)void fpsimd_signal_preserve_current_state (void ) {fpsimd_preserve_current_state (); -if (test_thread_flag (TIF_SVE )) +if (current->thread.fp_type ==FP_STATE_SVE )sve_to_fpsimd (current); }
arch/arm64/kernel/signal.c +2 -2
@@ -242,7 +242,7 @@ static int preserve_sve_context(struct sve_context __user *ctx) vl =task_get_sme_vl (current); vq =sve_vq_from_vl (vl); flags |=SVE_SIG_FLAG_SM ; - }else if (test_thread_flag (TIF_SVE )) { + }else if (current->thread.fp_type ==FP_STATE_SVE ) { vq =sve_vq_from_vl (vl); }
@@ -878,7 +878,7 @@ static int setup_sigframe_layout(struct rt_sigframe_user_layout *user,if (system_supports_sve () ||system_supports_sme ()) {unsigned int vq =0 ; -if (add_all ||test_thread_flag (TIF_SVE ) || +if (add_all || current->thread.fp_type ==FP_STATE_SVE ||thread_sm_enabled (¤t->thread)) {int vl =max (sve_max_vl (),sme_max_vl ());
arch/arm64/kvm/pkvm.c +17 -10
@@ -101,6 +101,17 @@ void __init kvm_hyp_reserve(void) hyp_mem_base); } +static void __pkvm_destroy_hyp_vm (struct kvm *host_kvm) +{ +if (host_kvm->arch.pkvm.handle) { +WARN_ON (kvm_call_hyp_nvhe (__pkvm_teardown_vm, + host_kvm->arch.pkvm.handle)); + } + + host_kvm->arch.pkvm.handle =0 ; +free_hyp_memcache (&host_kvm->arch.pkvm.teardown_mc); +} +/* * Allocates and donates memory for hypervisor VM structs at EL2. *
@@ -181,7 +192,7 @@ static int __pkvm_create_hyp_vm(struct kvm *host_kvm)return 0 ; destroy_vm: -pkvm_destroy_hyp_vm (host_kvm); +__pkvm_destroy_hyp_vm (host_kvm);return ret; free_vm:free_pages_exact (hyp_vm, hyp_vm_sz);
@@ -194,23 +205,19 @@ int pkvm_create_hyp_vm(struct kvm *host_kvm) {int ret =0 ; -mutex_lock (&host_kvm->lock); +mutex_lock (&host_kvm->arch.config_lock);if (!host_kvm->arch.pkvm.handle) ret =__pkvm_create_hyp_vm (host_kvm); -mutex_unlock (&host_kvm->lock); +mutex_unlock (&host_kvm->arch.config_lock);return ret; }void pkvm_destroy_hyp_vm (struct kvm *host_kvm) { -if (host_kvm->arch.pkvm.handle) { -WARN_ON (kvm_call_hyp_nvhe (__pkvm_teardown_vm, - host_kvm->arch.pkvm.handle)); - } - - host_kvm->arch.pkvm.handle =0 ; -free_hyp_memcache (&host_kvm->arch.pkvm.teardown_mc); +mutex_lock (&host_kvm->arch.config_lock); +__pkvm_destroy_hyp_vm (host_kvm); +mutex_unlock (&host_kvm->arch.config_lock); }int pkvm_init_host_vm (struct kvm *host_kvm)
arch/csky/include/asm/jump_label.h +2 -2
@@ -12,7 +12,7 @@ static __always_inline bool arch_static_branch(struct static_key *key,bool branch) { -asm_volatile_goto ( + asm goto("1: nop32 \n" " .pushsection __jump_table, \"aw\" \n" " .align 2 \n"
@@ -29,7 +29,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, static __always_inline bool arch_static_branch_jump(struct static_key *key,bool branch) { -asm_volatile_goto ( + asm goto("1: bsr32 %l[label] \n" " .pushsection __jump_table, \"aw\" \n" " .align 2 \n"
arch/loongarch/include/asm/jump_label.h +2 -2
@@ -22,7 +22,7 @@ static __always_inline bool arch_static_branch(struct static_key * const key, const bool branch) { -asm_volatile_goto ( + asm goto("1: nop \n\t" JUMP_TABLE_ENTRY : :"i" (&((char *)key)[branch]) : : l_yes);
@@ -35,7 +35,7 @@ static __always_inline bool arch_static_branch(struct static_key * const key, co static __always_inline bool arch_static_branch_jump(struct static_key * const key, const bool branch) { -asm_volatile_goto ( + asm goto("1: b %l[l_yes] \n\t" JUMP_TABLE_ENTRY : :"i" (&((char *)key)[branch]) : : l_yes);
arch/loongarch/mm/kasan_init.c +3 -0
@@ -44,6 +44,9 @@ void *kasan_mem_to_shadow(const void *addr)unsigned long xrange = (maddr >>XRANGE_SHIFT ) &0xffff ;unsigned long offset =0 ; +if (maddr >=FIXADDR_START ) +return (void *)(kasan_early_shadow_page); + maddr &=XRANGE_SHADOW_MASK ;switch (xrange) {case XKPRANGE_CC_SEG :
arch/mips/include/asm/checksum.h +2 -1
@@ -241,7 +241,8 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr, " .set pop" : "=&r" (sum), "=&r" (tmp) : "r" (saddr), "r" (daddr), - "0" (htonl(len)), "r" (htonl(proto)), "r" (sum)); + "0" (htonl(len)), "r" (htonl(proto)), "r" (sum) + : "memory");return csum_fold (sum); }
arch/mips/include/asm/jump_label.h +2 -2
@@ -36,7 +36,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool branch) { -asm_volatile_goto ("1:\t" B_INSN " 2f\n\t" + asm goto("1:\t" B_INSN " 2f\n\t" "2:\t.insn\n\t" ".pushsection __jump_table, \"aw\"\n\t" WORD_INSN " 1b, %l[l_yes], %0\n\t"
@@ -50,7 +50,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch) { -asm_volatile_goto ("1:\t" J_INSN " %l[l_yes]\n\t" + asm goto("1:\t" J_INSN " %l[l_yes]\n\t" ".pushsection __jump_table, \"aw\"\n\t" WORD_INSN " 1b, %l[l_yes], %0\n\t" ".popsection\n\t"
arch/mips/include/asm/ptrace.h +2 -0
@@ -154,6 +154,8 @@ static inline long regs_return_value(struct pt_regs *regs) }#define instruction_pointer (regs) ((regs)->cp0_epc) +extern unsigned long exception_ip (struct pt_regs *regs); +#define exception_ip (regs) exception_ip(regs)#define profile_pc (regs) instruction_pointer(regs)extern asmlinkage long syscall_trace_enter (struct pt_regs *regs,long syscall);
arch/mips/kernel/ptrace.c +7 -0
@@ -31,6 +31,7 @@#include <linux/seccomp.h> #include <linux/ftrace.h> +#include <asm/branch.h> #include <asm/byteorder.h> #include <asm/cpu.h> #include <asm/cpu-info.h>
@@ -48,6 +49,12 @@#define CREATE_TRACE_POINTS #include <trace/events/syscalls.h> +unsigned long exception_ip (struct pt_regs *regs) +{ +return exception_epc (regs); +} +EXPORT_SYMBOL (exception_ip); +/* * Called by kernel/ptrace.c when detaching.. *
arch/parisc/Kconfig +0 -1
@@ -25,7 +25,6 @@ config PARISC select RTC_DRV_GENERIC select INIT_ALL_POSSIBLE select BUG - select BUILDTIME_TABLE_SORT select HAVE_KERNEL_UNCOMPRESSED select HAVE_PCI select HAVE_PERF_EVENTS
arch/parisc/include/asm/assembly.h +1 -0
@@ -576,6 +576,7 @@ .section __ex_table,"aw" ! \ .align 4 ! \ .word (fault_addr - .), (except_addr - .) ! \ + or %r0,%r0,%r0 ! \ .previous
arch/parisc/include/asm/extable.h new file +64 -0
64 lines not on this page · raw message
arch/parisc/include/asm/jump_label.h +2 -2
@@ -12,7 +12,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool branch) { -asm_volatile_goto ("1:\n\t" + asm goto("1:\n\t" "nop\n\t" ".pushsection __jump_table, \"aw\"\n\t" ".align %1\n\t"
@@ -29,7 +29,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch) { -asm_volatile_goto ("1:\n\t" + asm goto("1:\n\t" "b,n %l[l_yes]\n\t" ".pushsection __jump_table, \"aw\"\n\t" ".align %1\n\t"
arch/parisc/include/asm/special_insns.h +4 -2
@@ -8,7 +8,8 @@"copy %%r0,%0\n" \"8:\tlpa %%r0(%1),%0\n" \"9:\n" \ -ASM_EXCEPTIONTABLE_ENTRY (8b ,9b ) \ +ASM_EXCEPTIONTABLE_ENTRY (8b ,9b , \ +"or %%r0,%%r0,%%r0" ) \ : "=&r" (pa) \: " r" (va) \ : " memory" \
@@ -22,7 +23,8 @@"copy %%r0,%0\n" \"8:\tlpa %%r0(%%sr3,%1),%0\n" \"9:\n" \ -ASM_EXCEPTIONTABLE_ENTRY (8b ,9b ) \ +ASM_EXCEPTIONTABLE_ENTRY (8b ,9b , \ +"or %%r0,%%r0,%%r0" ) \ : "=&r" (pa) \: " r" (va) \ : " memory" \
arch/parisc/include/asm/uaccess.h +7 -41
94 lines not on this page · raw message
arch/parisc/kernel/cache.c +3 -3
@@ -58,7 +58,7 @@ int pa_serialize_tlb_flushes __ro_after_init;struct pdc_cache_info cache_info__ro_after_init ;#ifndef CONFIG_PA20 -struct pdc_btlb_info btlb_info__ro_after_init ; +struct pdc_btlb_info btlb_info;#endif DEFINE_STATIC_KEY_TRUE (parisc_has_cache);
@@ -850,7 +850,7 @@ SYSCALL_DEFINE3(cacheflush, unsigned long, addr, unsigned long, bytes,#endif " fic,m %3(%4,%0)\n" "2: sync\n" -ASM_EXCEPTIONTABLE_ENTRY_EFAULT (1b ,2b ) +ASM_EXCEPTIONTABLE_ENTRY_EFAULT (1b ,2b ,"%1" ) : "+r" (start), "+r" (error) : "r" (end), "r" (dcache_stride), "i" (SR_USER)); }
@@ -865,7 +865,7 @@ SYSCALL_DEFINE3(cacheflush, unsigned long, addr, unsigned long, bytes,#endif " fdc,m %3(%4,%0)\n" "2: sync\n" -ASM_EXCEPTIONTABLE_ENTRY_EFAULT (1b ,2b ) +ASM_EXCEPTIONTABLE_ENTRY_EFAULT (1b ,2b ,"%1" ) : "+r" (start), "+r" (error) : "r" (end), "r" (icache_stride), "i" (SR_USER)); }
arch/parisc/kernel/drivers.c +3 -0
@@ -1004,6 +1004,9 @@ static __init int qemu_print_iodc_data(struct device *lin_dev, void *data)pr_info ("\n" ); +/* Prevent hung task messages when printing on serial console */ +cond_resched (); +pr_info ("#define HPA_%08lx_DESCRIPTION \"%s\"\n" , hpa,parisc_hardware_description (&dev->id));
arch/parisc/kernel/unaligned.c +22 -22
92 lines not on this page · raw message
arch/parisc/mm/fault.c +8 -3
@@ -150,11 +150,16 @@ int fixup_exception(struct pt_regs *regs)* Fix up get_user() and put_user(). * ASM_EXCEPTIONTABLE_ENTRY_EFAULT() sets the least-significant * bit in the relative address of the fixup routine to indicate -* that gr[ASM_EXCEPTIONTABLE_REG] should be loaded with -* -EFAULT to report a userspace access error. +* that the register encoded in the "or %r0,%r0,register" +* opcode should be loaded with -EFAULT to report a userspace +* access error. */ if (fix->fixup &1 ) { - regs->gr[ASM_EXCEPTIONTABLE_REG ] = -EFAULT ; +int fault_error_reg = fix->err_opcode &0x1f ; +if (!WARN_ON (!fault_error_reg)) + regs->gr[fault_error_reg] = -EFAULT ; +pr_debug ("Unalignment fixup of register %d at %pS\n" , + fault_error_reg, (void *)regs->iaoq[0 ]);/* zero target register for get_user() */ if (parisc_acctyp (0 , regs->iir) ==VM_READ ) {
arch/powerpc/include/asm/jump_label.h +2 -2
@@ -17,7 +17,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool branch) { -asm_volatile_goto ("1:\n\t" + asm goto("1:\n\t" "nop # arch_static_branch\n\t" ".pushsection __jump_table, \"aw\"\n\t" ".long 1b - ., %l[l_yes] - .\n\t"
@@ -32,7 +32,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch) { -asm_volatile_goto ("1:\n\t" + asm goto("1:\n\t" "b %l[l_yes] # arch_static_branch_jump\n\t" ".pushsection __jump_table, \"aw\"\n\t" ".long 1b - ., %l[l_yes] - .\n\t"
arch/powerpc/include/asm/reg.h +2 -0
@@ -617,6 +617,8 @@#endif #define SPRN_HID2 0x3F8/* Hardware Implementation Register 2 */ #define SPRN_HID2_GEKKO 0x398/* Gekko HID2 Register */ +#define SPRN_HID2_G2_LE 0x3F3/* G2_LE HID2 Register */ +#define HID2_G2_LE_HBE (1<<18)/* High BAT Enable (G2_LE) */ #define SPRN_IABR 0x3F2/* Instruction Address Breakpoint Register */ #define SPRN_IABR2 0x3FA/* 83xx */ #define SPRN_IBCR 0x135/* 83xx Insn Breakpoint Control Reg */
arch/powerpc/include/asm/thread_info.h +1 -1
@@ -14,7 +14,7 @@#ifdef __KERNEL__ -#ifdef CONFIG_KASAN +#if defined(CONFIG_KASAN ) &&CONFIG_THREAD_SHIFT <15 #define MIN_THREAD_SHIFT (CONFIG_THREAD_SHIFT + 1)#else #define MIN_THREAD_SHIFT CONFIG_THREAD_SHIFT
arch/powerpc/include/asm/uaccess.h +6 -6
@@ -74,7 +74,7 @@ __pu_failed: \/* -mprefixed can generate offsets beyond range, fall back hack */ #ifdef CONFIG_PPC_KERNEL_PREFIXED #define __put_user_asm_goto (x, addr, label, op) \ - asm_volatile_goto( \ + asm goto( \ "1: " op " %0,0(%1) # put_user\n" \ EX_TABLE(1b, %l2) \ : \
@@ -83,7 +83,7 @@ __pu_failed: \ : label)#else #define __put_user_asm_goto (x, addr, label, op) \ - asm_volatile_goto( \ + asm goto( \ "1: " op "%U1%X1 %0,%1 # put_user\n" \ EX_TABLE(1b, %l2) \ : \
@@ -97,7 +97,7 @@ __pu_failed: \ __put_user_asm_goto(x, ptr, label, "std")#else /* __powerpc64__ */ #define __put_user_asm2_goto (x, addr, label) \ - asm_volatile_goto( \ + asm goto( \ "1: stw%X1 %0, %1\n" \ "2: stw%X1 %L0, %L1\n" \ EX_TABLE(1b, %l2) \
@@ -146,7 +146,7 @@ do { \/* -mprefixed can generate offsets beyond range, fall back hack */ #ifdef CONFIG_PPC_KERNEL_PREFIXED #define __get_user_asm_goto (x, addr, label, op) \ - asm_volatile_goto( \ + asm_goto_output( \ "1: "op" %0,0(%1) # get_user\n" \ EX_TABLE(1b, %l2) \ : "=r" (x) \
@@ -155,7 +155,7 @@ do { \ : label)#else #define __get_user_asm_goto (x, addr, label, op) \ - asm_volatile_goto( \ + asm_goto_output( \ "1: "op"%U1%X1 %0, %1 # get_user\n" \ EX_TABLE(1b, %l2) \ : "=r" (x) \
@@ -169,7 +169,7 @@ do { \ __get_user_asm_goto(x, addr, label, "ld")#else /* __powerpc64__ */ #define __get_user_asm2_goto (x, addr, label) \ - asm_volatile_goto( \ + asm_goto_output( \ "1: lwz%X1 %0, %1\n" \ "2: lwz%X1 %L0, %L1\n" \ EX_TABLE(1b, %l2) \
arch/powerpc/kernel/cpu_setup_6xx.S +19 -1
@@ -26,6 +26,15 @@ BEGIN_FTR_SECTION bl __init_fpu_registers END_FTR_SECTION_IFCLR(CPU_FTR_FPU_UNAVAILABLE) bl setup_common_caches + + /* + * This assumes that all cores using __setup_cpu_603 with + * MMU_FTR_USE_HIGH_BATS are G2_LE compatible + */ +BEGIN_MMU_FTR_SECTION + bl setup_g2_le_hid2 +END_MMU_FTR_SECTION_IFSET(MMU_FTR_USE_HIGH_BATS) + mtlr r5 blr _GLOBAL(__setup_cpu_604)
@@ -115,6 +124,16 @@ SYM_FUNC_START_LOCAL(setup_604_hid0) blr SYM_FUNC_END(setup_604_hid0) +/* Enable high BATs for G2_LE and derivatives like e300cX */ +SYM_FUNC_START_LOCAL(setup_g2_le_hid2) + mfspr r11,SPRN_HID2_G2_LE + oris r11,r11,HID2_G2_LE_HBE@h + mtspr SPRN_HID2_G2_LE,r11 + sync + isync + blr +SYM_FUNC_END(setup_g2_le_hid2) + /* 7400 <= rev 2.7 and 7410 rev = 1.0 suffer from some * erratas we work around here. * Moto MPC710CE.pdf describes them, those are errata
@@ -495,4 +514,3 @@ _GLOBAL(__restore_cpu_setup) mtcr r7 blr _ASM_NOKPROBE_SYMBOL(__restore_cpu_setup) -
arch/powerpc/kernel/cpu_specs_e500mc.h +2 -1
@@ -8,7 +8,8 @@#ifdef CONFIG_PPC64 #define COMMON_USER_BOOKE (PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \ - PPC_FEATURE_HAS_FPU | PPC_FEATURE_64) + PPC_FEATURE_HAS_FPU | PPC_FEATURE_64 | \ + PPC_FEATURE_BOOKE)#else #define COMMON_USER_BOOKE (PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \ PPC_FEATURE_BOOKE)
arch/powerpc/kernel/interrupt_64.S +2 -2
@@ -52,7 +52,8 @@ _ASM_NOKPROBE_SYMBOL(system_call_vectored_\name) mr r10,r1 ld r1,PACAKSAVE(r13) std r10,0(r1) - std r11,_NIP(r1) + std r11,_LINK(r1) + std r11,_NIP(r1) /* Saved LR is also the next instruction */ std r12,_MSR(r1) std r0,GPR0(r1) std r10,GPR1(r1)
@@ -70,7 +71,6 @@ _ASM_NOKPROBE_SYMBOL(system_call_vectored_\name) std r9,GPR13(r1) SAVE_NVGPRS(r1) std r11,_XER(r1) - std r11,_LINK(r1) std r11,_CTR(r1) li r11,\trapnr
arch/powerpc/kernel/iommu.c +3 -1
@@ -1290,8 +1290,10 @@ spapr_tce_platform_iommu_attach_dev(struct iommu_domain *platform_domain,int ret = -EINVAL ;/* At first attach the ownership is already set */ -if (!domain) +if (!domain) { +iommu_group_put (grp);return 0 ; + }if (!grp)return -ENODEV ;
arch/powerpc/kernel/irq_64.c +1 -1
@@ -230,7 +230,7 @@ notrace __no_kcsan void arch_local_irq_restore(unsigned long mask)* This allows interrupts to be unmasked without hard disabling, and * also without new hard interrupts coming in ahead of pending ones. */ -asm_volatile_goto ( + asm goto("1: \n" " lbz 9,%0(13) \n" " cmpwi 9,0 \n"
arch/powerpc/mm/kasan/init_32.c +1 -0
@@ -64,6 +64,7 @@ int __init __weak kasan_init_region(void *start, size_t size)if (ret)return ret; + k_start = k_start &PAGE_MASK ; block =memblock_alloc (k_end - k_start,PAGE_SIZE );if (!block)return -ENOMEM ;
arch/powerpc/platforms/pseries/lpar.c +6 -2
@@ -662,8 +662,12 @@ u64 pseries_paravirt_steal_clock(int cpu) {struct lppaca *lppaca = &lppaca_of (cpu); -return be64_to_cpu (READ_ONCE (lppaca->enqueue_dispatch_tb)) + -be64_to_cpu (READ_ONCE (lppaca->ready_enqueue_tb)); +/* +* VPA steal time counters are reported at TB frequency. Hence do a +* conversion to ns before returning +*/ +return tb_to_ns (be64_to_cpu (READ_ONCE (lppaca->enqueue_dispatch_tb)) + +be64_to_cpu (READ_ONCE (lppaca->ready_enqueue_tb))); }#endif
arch/riscv/include/asm/bitops.h +4 -4
@@ -39,7 +39,7 @@ static __always_inline unsigned long variable__ffs(unsigned long word) {int num; -asm_volatile_goto (ALTERNATIVE ("j %l[legacy]" ,"nop" ,0 , + asm goto(ALTERNATIVE("j %l[legacy]", "nop", 0, RISCV_ISA_EXT_ZBB, 1) : : : : legacy);
@@ -95,7 +95,7 @@ static __always_inline unsigned long variable__fls(unsigned long word) {int num; -asm_volatile_goto (ALTERNATIVE ("j %l[legacy]" ,"nop" ,0 , + asm goto(ALTERNATIVE("j %l[legacy]", "nop", 0, RISCV_ISA_EXT_ZBB, 1) : : : : legacy);
@@ -154,7 +154,7 @@ static __always_inline int variable_ffs(int x)if (!x)return 0 ; -asm_volatile_goto (ALTERNATIVE ("j %l[legacy]" ,"nop" ,0 , + asm goto(ALTERNATIVE("j %l[legacy]", "nop", 0, RISCV_ISA_EXT_ZBB, 1) : : : : legacy);
@@ -209,7 +209,7 @@ static __always_inline int variable_fls(unsigned int x)if (!x)return 0 ; -asm_volatile_goto (ALTERNATIVE ("j %l[legacy]" ,"nop" ,0 , + asm goto(ALTERNATIVE("j %l[legacy]", "nop", 0, RISCV_ISA_EXT_ZBB, 1) : : : : legacy);
arch/riscv/include/asm/cpufeature.h +2 -2
@@ -78,7 +78,7 @@ riscv_has_extension_likely(const unsigned long ext) "ext must be < RISCV_ISA_EXT_MAX");if (IS_ENABLED (CONFIG_RISCV_ALTERNATIVE )) { -asm_volatile_goto ( + asm goto( ALTERNATIVE("j %l[l_no]", "nop", 0, %[ext], 1) : : [ext] "i" (ext)
@@ -101,7 +101,7 @@ riscv_has_extension_unlikely(const unsigned long ext) "ext must be < RISCV_ISA_EXT_MAX");if (IS_ENABLED (CONFIG_RISCV_ALTERNATIVE )) { -asm_volatile_goto ( + asm goto( ALTERNATIVE("nop", "j %l[l_yes]", 0, %[ext], 1) : : [ext] "i" (ext)
arch/riscv/include/asm/jump_label.h +2 -2
@@ -17,7 +17,7 @@ static __always_inline bool arch_static_branch(struct static_key * const key,const bool branch) { -asm_volatile_goto ( + asm goto(" .align 2 \n\t" " .option push \n\t" " .option norelax \n\t"
@@ -39,7 +39,7 @@ static __always_inline bool arch_static_branch(struct static_key * const key, static __always_inline bool arch_static_branch_jump(struct static_key * const key,const bool branch) { -asm_volatile_goto ( + asm goto(" .align 2 \n\t" " .option push \n\t" " .option norelax \n\t"
arch/s390/include/asm/jump_label.h +2 -2
@@ -25,7 +25,7 @@*/ static __always_inline bool arch_static_branch(struct static_key *key, bool branch) { -asm_volatile_goto ("0: brcl 0,%l[label]\n" + asm goto("0: brcl 0,%l[label]\n" ".pushsection __jump_table,\"aw\"\n" ".balign 8\n" ".long 0b-.,%l[label]-.\n"
@@ -39,7 +39,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch) { -asm_volatile_goto ("0: brcl 15,%l[label]\n" + asm goto("0: brcl 15,%l[label]\n" ".pushsection __jump_table,\"aw\"\n" ".balign 8\n" ".long 0b-.,%l[label]-.\n"
arch/s390/kvm/vsie.c +0 -1
@@ -1220,7 +1220,6 @@ static int acquire_gmap_shadow(struct kvm_vcpu *vcpu, gmap =gmap_shadow (vcpu->arch.gmap, asce, edat);if (IS_ERR (gmap))return PTR_ERR (gmap); - gmap->private = vcpu->kvm; vcpu->kvm->stat.gmap_shadow_create++;WRITE_ONCE (vsie_page->gmap, gmap);return 0 ;
arch/s390/mm/gmap.c +1 -0
@@ -1691,6 +1691,7 @@ struct gmap *gmap_shadow(struct gmap *parent, unsigned long asce,return ERR_PTR (-ENOMEM ); new->mm = parent->mm; new->parent =gmap_get (parent); + new->private = parent->private; new->orig_asce = asce; new->edat_level = edat_level; new->initialized = false;
arch/sparc/include/asm/jump_label.h +2 -2
@@ -10,7 +10,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool branch) { -asm_volatile_goto ("1:\n\t" + asm goto("1:\n\t" "nop\n\t" "nop\n\t" ".pushsection __jump_table, \"aw\"\n\t"
@@ -26,7 +26,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch) { -asm_volatile_goto ("1:\n\t" + asm goto("1:\n\t" "b %l[l_yes]\n\t" "nop\n\t" ".pushsection __jump_table, \"aw\"\n\t"
arch/um/Makefile +3 -1
@@ -115,7 +115,9 @@ archprepare: $(Q)$(MAKE) $(build)=$(HOST_DIR)/um include/generated/user_constants.h LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static -LINK-$(CONFIG_LD_SCRIPT_DYN) += $(call cc-option, -no-pie) +ifdef CONFIG_LD_SCRIPT_DYN +LINK-$(call gcc-min-version, 60100)$(CONFIG_CC_IS_CLANG) += -no-pie +endif LINK-$(CONFIG_LD_SCRIPT_DYN_RPATH) += -Wl,-rpath,/lib CFLAGS_NO_HARDENING := $(call cc-option, -fno-PIC,) $(call cc-option, -fno-pic,) \
arch/um/include/asm/cpufeature.h +1 -1
@@ -75,7 +75,7 @@ extern void setup_clear_cpu_cap(unsigned int bit);*/ static __always_inline bool _static_cpu_has(u16 bit) { -asm_volatile_goto ("1: jmp 6f\n" + asm goto("1: jmp 6f\n" "2:\n" ".skip -(((5f-4f) - (2b-1b)) > 0) * " "((5f-4f) - (2b-1b)),0x90\n"
arch/x86/Kconfig.cpu +1 -1
@@ -375,7 +375,7 @@ config X86_CMOV config X86_MINIMUM_CPU_FAMILY int default "64" if X86_64 - default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCRUSOE || MCORE2 || MK7 || MK8) + default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCORE2 || MK7 || MK8) default "5" if X86_32 && X86_CMPXCHG64 default "4"
arch/x86/include/asm/barrier.h +0 -18
@@ -81,22 +81,4 @@ do { \#include <asm-generic/barrier.h> -/* -* Make previous memory operations globally visible before -* a WRMSR. -* -* MFENCE makes writes visible, but only affects load/store -* instructions. WRMSR is unfortunately not a load/store -* instruction and is unaffected by MFENCE. The LFENCE ensures -* that the WRMSR is not reordered. -* -* Most WRMSRs are full serializing instructions themselves and -* do not require this barrier. This is only required for the -* IA32_TSC_DEADLINE and X2APIC MSRs. -*/ -static inline void weak_wrmsr_fence (void ) -{ - asmvolatile ("mfence; lfence" : : :"memory" ); -} -#endif /* _ASM_X86_BARRIER_H */
arch/x86/include/asm/cpufeature.h +1 -1
@@ -168,7 +168,7 @@ extern void clear_cpu_cap(struct cpuinfo_x86 *c, unsigned int bit);*/ static __always_inline bool _static_cpu_has(u16 bit) { -asm_volatile_goto ( + asm goto( ALTERNATIVE_TERNARY("jmp 6f", %P[feature], "", "jmp %l[t_no]")".pushsection .altinstr_aux,\"ax\"\n" "6:\n"
arch/x86/include/asm/cpufeatures.h +1 -1
@@ -308,10 +308,10 @@#define X86_FEATURE_SMBA (11*32+21)/* "" Slow Memory Bandwidth Allocation */ #define X86_FEATURE_BMEC (11*32+22)/* "" Bandwidth Monitoring Event Configuration */ #define X86_FEATURE_USER_SHSTK (11*32+23)/* Shadow stack support for user mode applications */ -#define X86_FEATURE_SRSO (11*32+24)/* "" AMD BTB untrain RETs */ #define X86_FEATURE_SRSO_ALIAS (11*32+25)/* "" AMD BTB untrain RETs through aliasing */ #define X86_FEATURE_IBPB_ON_VMEXIT (11*32+26)/* "" Issue an IBPB only on VMEXIT */ +#define X86_FEATURE_APIC_MSRS_FENCE (11*32+27)/* "" IA32_TSC_DEADLINE and X2APIC MSRs need fencing */ /* Intel-defined CPU features, CPUID level 0x00000007:1 (EAX), word 12 */ #define X86_FEATURE_AVX_VNNI (12*32+ 4)/* AVX VNNI instructions */
arch/x86/include/asm/jump_label.h +3 -3
@@ -24,7 +24,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool branch) { - asm_volatile_goto("1:" + asm goto("1:" "jmp %l[l_yes] # objtool NOPs this \n\t" JUMP_TABLE_ENTRY : :"i" (key),"i" (2 | branch) : : l_yes);
@@ -38,7 +38,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran static __always_inline bool arch_static_branch(struct static_key * const key, const bool branch) { - asm_volatile_goto("1:" + asm goto("1:" ".byte " __stringify(BYTES_NOP5) "\n\t" JUMP_TABLE_ENTRY : : "i" (key), "i" (branch) : : l_yes);
@@ -52,7 +52,7 @@ static __always_inline bool arch_static_branch(struct static_key * const key, co static __always_inline bool arch_static_branch_jump(struct static_key * const key, const bool branch) { - asm_volatile_goto("1:" + asm goto("1:" "jmp %l[l_yes]\n\t" JUMP_TABLE_ENTRY : :"i" (key),"i" (branch) : : l_yes);
arch/x86/include/asm/processor.h +18 -0
@@ -749,4 +749,22 @@ enum mds_mitigations {extern bool gds_ucode_mitigated (void ); +/* +* Make previous memory operations globally visible before +* a WRMSR. +* +* MFENCE makes writes visible, but only affects load/store +* instructions. WRMSR is unfortunately not a load/store +* instruction and is unaffected by MFENCE. The LFENCE ensures +* that the WRMSR is not reordered. +* +* Most WRMSRs are full serializing instructions themselves and +* do not require this barrier. This is only required for the +* IA32_TSC_DEADLINE and X2APIC MSRs. +*/ +static inline void weak_wrmsr_fence (void ) +{ +alternative ("mfence; lfence" ,"" ,ALT_NOT (X86_FEATURE_APIC_MSRS_FENCE )); +} +#endif /* _ASM_X86_PROCESSOR_H */
arch/x86/include/asm/rmwcc.h +1 -1
@@ -13,7 +13,7 @@#define __GEN_RMWcc (fullop, _var, cc, clobbers, ...) \ ({ \ bool c = false; \ - asm_volatile_goto (fullop "; j" #cc " %l[cc_label]" \ + asm goto (fullop "; j" #cc " %l[cc_label]" \ : : [var] "m" (_var), ## __VA_ARGS__ \ : clobbers : cc_label); \ if (0) { \
arch/x86/include/asm/special_insns.h +1 -1
@@ -205,7 +205,7 @@ static inline void clwb(volatile void *__p)#ifdef CONFIG_X86_USER_SHADOW_STACK static inline int write_user_shstk_64 (u64 __user *addr,u64 val) { - asm_volatile_goto("1: wrussq %[val], (%[addr])\n" + asm goto("1: wrussq %[val], (%[addr])\n" _ASM_EXTABLE(1b, %l[fail]) :: [addr] "r" (addr), [val] "r" (val) :: fail);
arch/x86/include/asm/uaccess.h +5 -5
@@ -133,7 +133,7 @@ extern int __get_user_bad(void);#ifdef CONFIG_X86_32 #define __put_user_goto_u64 (x, addr, label) \ - asm_volatile_goto("\n" \ + asm goto("\n" \ "1: movl %%eax,0(%1)\n" \ "2: movl %%edx,4(%1)\n" \ _ASM_EXTABLE_UA(1b, %l2) \
@@ -295,7 +295,7 @@ do { \ } while (0)#define __get_user_asm (x, addr, itype, ltype, label) \ - asm_volatile_goto("\n" \ + asm_goto_output("\n" \ "1: mov"itype" %[umem],%[output]\n" \ _ASM_EXTABLE_UA(1b, %l2) \ : [output] ltype(x) \
@@ -375,7 +375,7 @@ do { \__typeof__ (_ptr) _old = (__typeof__ (_ptr))(_pold); \ __typeof__(*(_ptr)) __old = *_old; \ __typeof__(*(_ptr)) __new = (_new); \ -asm_volatile_goto ("\n" \ +asm_goto_output ("\n" \"1: " LOCK_PREFIX "cmpxchg" itype" %[new], %[ptr]\n" \ _ASM_EXTABLE_UA(1b, %l[label]) \ : CC_OUT(z) (success), \
@@ -394,7 +394,7 @@ do { \__typeof__ (_ptr) _old = (__typeof__ (_ptr))(_pold); \ __typeof__(*(_ptr)) __old = *_old; \ __typeof__(*(_ptr)) __new = (_new); \ - asm_volatile_goto("\n" \ + asm_goto_output("\n" \ "1: " LOCK_PREFIX "cmpxchg8b %[ptr]\n" \ _ASM_EXTABLE_UA(1b, %l[label]) \ : CC_OUT(z) (success), \
@@ -477,7 +477,7 @@ struct __large_struct { unsigned long buf[100]; };* aliasing issues. */ #define __put_user_goto (x, addr, itype, ltype, label) \ - asm_volatile_goto("\n" \ + asm goto("\n" \ "1: mov"itype" %0,%1\n" \ _ASM_EXTABLE_UA(1b, %l2) \ : : ltype(x), "m" (__m(addr)) \
arch/x86/kernel/cpu/amd.c +3 -0
@@ -1162,6 +1162,9 @@ static void init_amd(struct cpuinfo_x86 *c)if (!cpu_has (c,X86_FEATURE_HYPERVISOR ) &&cpu_has_amd_erratum (c, amd_erratum_1485))msr_set_bit (MSR_ZEN4_BP_CFG ,MSR_ZEN4_BP_CFG_SHARED_BTB_FIX_BIT ); + +/* AMD CPUs don't need fencing after x2APIC/TSC_DEADLINE MSR writes. */ +clear_cpu_cap (c,X86_FEATURE_APIC_MSRS_FENCE ); }#ifdef CONFIG_X86_32
arch/x86/kernel/cpu/common.c +7 -0
@@ -1856,6 +1856,13 @@ static void identify_cpu(struct cpuinfo_x86 *c) c->topo.apicid = apic->phys_pkg_id (c->topo.initial_apicid,0 );#endif + +/* +* Set default APIC and TSC_DEADLINE MSR fencing flag. AMD and +* Hygon will clear it in ->c_init() below. +*/ +set_cpu_cap (c,X86_FEATURE_APIC_MSRS_FENCE ); +/* * Vendor-specific initialization. In this section we * canonicalize the feature flags, meaning if there are
arch/x86/kernel/cpu/hygon.c +3 -0
@@ -354,6 +354,9 @@ static void init_hygon(struct cpuinfo_x86 *c)set_cpu_bug (c,X86_BUG_SYSRET_SS_ATTRS );check_null_seg_clears_base (c); + +/* Hygon CPUs don't need fencing after x2APIC/TSC_DEADLINE MSR writes. */ +clear_cpu_cap (c,X86_FEATURE_APIC_MSRS_FENCE ); }static void cpu_detect_tlb_hygon (struct cpuinfo_x86 *c)
arch/x86/kernel/fpu/signal.c +5 -8
@@ -274,12 +274,13 @@ static int __restore_fpregs_from_user(void __user *buf, u64 ufeatures,* Attempt to restore the FPU registers directly from user memory. * Pagefaults are handled and any errors returned are fatal. */ -static bool restore_fpregs_from_user (void __user *buf,u64 xrestore, -bool fx_only,unsigned int size) +static bool restore_fpregs_from_user (void __user *buf,u64 xrestore,bool fx_only) {struct fpu *fpu = ¤t->thread.fpu;int ret; +/* Restore enabled features only. */ + xrestore &= fpu->fpstate->user_xfeatures; retry:fpregs_lock ();/* Ensure that XFD is up to date */
@@ -309,7 +310,7 @@ static bool restore_fpregs_from_user(void __user *buf, u64 xrestore,if (ret !=X86_TRAP_PF )return false; -if (!fault_in_readable (buf, size)) +if (!fault_in_readable (buf, fpu->fpstate->user_size)) goto retry;return false; }
@@ -339,7 +340,6 @@ static bool __fpu_restore_sig(void __user *buf, void __user *buf_fx,struct user_i387_ia32_struct env;bool success, fx_only = false;union fpregs_state *fpregs; -unsigned int state_size;u64 user_xfeatures =0 ;if (use_xsave ()) {
@@ -349,17 +349,14 @@ static bool __fpu_restore_sig(void __user *buf, void __user *buf_fx,return false; fx_only = !fx_sw_user.magic1; - state_size = fx_sw_user.xstate_size; user_xfeatures = fx_sw_user.xfeatures; }else { user_xfeatures =XFEATURE_MASK_FPSSE ; - state_size = fpu->fpstate->user_size; }if (likely (!ia32_fxstate)) {/* Restore the FPU registers directly from user memory. */ -return restore_fpregs_from_user (buf_fx, user_xfeatures, fx_only, - state_size); +return restore_fpregs_from_user (buf_fx, user_xfeatures, fx_only); }/*
arch/x86/kvm/svm/svm_ops.h +3 -3
@@ -8,7 +8,7 @@ #define svm_asm(insn, clobber...) \ do { \ - asm_volatile_goto("1: " __stringify(insn) "\n\t" \ + asm goto("1: " __stringify(insn) "\n\t" \ _ASM_EXTABLE(1b, %l[fault]) \ ::: clobber : fault); \ return; \
@@ -18,7 +18,7 @@ fault: \ #define svm_asm1(insn, op1, clobber...) \ do { \ - asm_volatile_goto("1: " __stringify(insn) " %0\n\t" \ + asm goto("1: " __stringify(insn) " %0\n\t" \ _ASM_EXTABLE(1b, %l[fault]) \ :: op1 : clobber : fault); \ return; \
@@ -28,7 +28,7 @@ fault: \ #define svm_asm2(insn, op1, op2, clobber...) \ do { \ - asm_volatile_goto("1: " __stringify(insn) " %1, %0\n\t" \ + asm goto("1: " __stringify(insn) " %1, %0\n\t" \ _ASM_EXTABLE(1b, %l[fault]) \ :: op1, op2 : clobber : fault); \ return; \
arch/x86/kvm/vmx/pmu_intel.c +1 -1
@@ -71,7 +71,7 @@ static int fixed_pmc_events[] = {static void reprogram_fixed_counters (struct kvm_pmu *pmu,u64 data) {struct kvm_pmc *pmc; -u8 old_fixed_ctr_ctrl = pmu->fixed_ctr_ctrl; +u64 old_fixed_ctr_ctrl = pmu->fixed_ctr_ctrl;int i; pmu->fixed_ctr_ctrl = data;
arch/x86/kvm/vmx/vmx.c +2 -2
@@ -745,7 +745,7 @@ static int vmx_set_guest_uret_msr(struct vcpu_vmx *vmx,*/ static int kvm_cpu_vmxoff (void ) { - asm_volatile_goto("1: vmxoff\n\t" + asm goto("1: vmxoff\n\t" _ASM_EXTABLE(1b, %l[fault]) ::: "cc", "memory" : fault);
@@ -2789,7 +2789,7 @@ static int kvm_cpu_vmxon(u64 vmxon_pointer)cr4_set_bits (X86_CR4_VMXE ); - asm_volatile_goto("1: vmxon %[vmxon_pointer]\n\t" + asm goto("1: vmxon %[vmxon_pointer]\n\t" _ASM_EXTABLE(1b, %l[fault]) : : [vmxon_pointer] "m"(vmxon_pointer) : : fault);
arch/x86/kvm/vmx/vmx_ops.h +3 -3
@@ -94,7 +94,7 @@ static __always_inline unsigned long __vmcs_readl(unsigned long field)#ifdef CONFIG_CC_HAS_ASM_GOTO_OUTPUT -asm_volatile_goto ("1: vmread %[field], %[output]\n\t" +asm_goto_output ("1: vmread %[field], %[output]\n\t" "jna %l[do_fail]\n\t" _ASM_EXTABLE(1b, %l[do_exception])
@@ -188,7 +188,7 @@ static __always_inline unsigned long vmcs_readl(unsigned long field) #define vmx_asm1(insn, op1, error_args...) \ do { \ - asm_volatile_goto("1: " __stringify(insn) " %0\n\t" \ + asm goto("1: " __stringify(insn) " %0\n\t" \ ".byte 0x2e\n\t"/* branch not taken hint */ \"jna %l[error]\n\t" \ _ASM_EXTABLE(1b, %l[fault]) \
@@ -205,7 +205,7 @@ fault: \ #define vmx_asm2(insn, op1, op2, error_args...) \ do { \ - asm_volatile_goto("1: " __stringify(insn) " %1, %0\n\t" \ + asm goto("1: " __stringify(insn) " %1, %0\n\t" \ ".byte 0x2e\n\t"/* branch not taken hint */ \"jna %l[error]\n\t" \ _ASM_EXTABLE(1b, %l[fault]) \
arch/x86/kvm/x86.c +2 -1
@@ -5405,7 +5405,8 @@ static int kvm_vcpu_ioctl_x86_set_vcpu_events(struct kvm_vcpu *vcpu,if (events->flags &KVM_VCPUEVENT_VALID_NMI_PENDING ) { vcpu->arch.nmi_pending =0 ;atomic_set (&vcpu->arch.nmi_queued, events->nmi.pending); -kvm_make_request (KVM_REQ_NMI , vcpu); +if (events->nmi.pending) +kvm_make_request (KVM_REQ_NMI , vcpu); }static_call (kvm_x86_set_nmi_mask)(vcpu, events->nmi.masked);
arch/x86/mm/ident_map.c +18 -5
@@ -26,18 +26,31 @@ static int ident_pud_init(struct x86_mapping_info *info, pud_t *pud_page,for (; addr < end; addr = next) {pud_t *pud = pud_page +pud_index (addr);pmd_t *pmd; +bool use_gbpage; next = (addr &PUD_MASK ) +PUD_SIZE ;if (next > end) next = end; -if (info->direct_gbpages) { -pud_t pudval; +/* if this is already a gbpage, this portion is already mapped */ +if (pud_large (*pud)) +continue ; + +/* Is using a gbpage allowed? */ + use_gbpage = info->direct_gbpages; -if (pud_present (*pud)) -continue ; +/* Don't use gbpage if it maps more than the requested region. */ +/* at the begining: */ + use_gbpage &= ((addr & ~PUD_MASK ) ==0 ); +/* ... or at the end: */ + use_gbpage &= ((next & ~PUD_MASK ) ==0 ); + +/* Never overwrite existing mappings */ + use_gbpage &= !pud_present (*pud); + +if (use_gbpage) { +pud_t pudval; - addr &=PUD_MASK ; pudval =__pud ((addr - info->offset) | info->page_flag);set_pud (pud, pudval);continue ;
arch/xtensa/include/asm/jump_label.h +2 -2
@@ -13,7 +13,7 @@ static __always_inline bool arch_static_branch(struct static_key *key,bool branch) { -asm_volatile_goto ("1:\n\t" + asm goto("1:\n\t" "_nop\n\t" ".pushsection __jump_table, \"aw\"\n\t" ".word 1b, %l[l_yes], %c0\n\t"
@@ -38,7 +38,7 @@ static __always_inline bool arch_static_branch_jump(struct static_key *key,* make it reachable and wrap both into a no-transform block * to avoid any assembler interference with this. */ -asm_volatile_goto ("1:\n\t" + asm goto("1:\n\t" ".begin no-transform\n\t" "_j %l[l_yes]\n\t" "2:\n\t"
block/blk-mq.c +7 -2
@@ -772,11 +772,16 @@ static void req_bio_endio(struct request *rq, struct bio *bio,/* * Partial zone append completions cannot be supported as the * BIO fragments may end up not being written sequentially. +* For such case, force the completed nbytes to be equal to +* the BIO size so that bio_advance() sets the BIO remaining +* size to 0 and we end up calling bio_endio() before returning. */ -if (bio->bi_iter.bi_size != nbytes) +if (bio->bi_iter.bi_size != nbytes) { bio->bi_status =BLK_STS_IOERR ; -else + nbytes = bio->bi_iter.bi_size; + }else { bio->bi_iter.bi_sector = rq->__sector; + } }bio_advance (bio, nbytes);
block/blk-wbt.c +2 -2
@@ -165,9 +165,9 @@ static void wb_timestamp(struct rq_wb *rwb, unsigned long *var)*/ static bool wb_recent_wait (struct rq_wb *rwb) { -struct bdi_writeback *wb = &rwb->rqos.disk->bdi->wb; +struct backing_dev_info *bdi = rwb->rqos.disk->bdi; -return time_before (jiffies, wb->dirty_sleep +HZ ); +return time_before (jiffies, bdi->last_bdp_sleep +HZ ); } static inline struct rq_wait *get_rq_wait(struct rq_wb *rwb,
crypto/algif_hash.c +3 -2
@@ -91,13 +91,13 @@ static int hash_sendmsg(struct socket *sock, struct msghdr *msg,if (!(msg->msg_flags &MSG_MORE )) { err =hash_alloc_result (sk, ctx);if (err) - goto unlock_free; + goto unlock_free_result;ahash_request_set_crypt (&ctx->req,NULL , ctx->result,0 ); err =crypto_wait_req (crypto_ahash_final (&ctx->req), &ctx->wait);if (err) - goto unlock_free; + goto unlock_free_result; } goto done_more; }
@@ -170,6 +170,7 @@ static int hash_sendmsg(struct socket *sock, struct msghdr *msg, unlock_free:af_alg_free_sg (&ctx->sgl); +unlock_free_result:hash_free_result (sk, ctx); ctx->more = false; goto unlock;
drivers/android/binder.c +10 -0
@@ -478,6 +478,16 @@ binder_enqueue_thread_work_ilocked(struct binder_thread *thread, {WARN_ON (!list_empty (&thread->waiting_thread_node));binder_enqueue_work_ilocked (work, &thread->todo); + +/* (e)poll-based threads require an explicit wakeup signal when +* queuing their own work; they rely on these events to consume +* messages without I/O block. Without it, threads risk waiting +* indefinitely without handling the work. +*/ +if (thread->looper &BINDER_LOOPER_STATE_POLL && + thread->pid == current->pid && !thread->process_todo) +wake_up_interruptible_sync (&thread->wait); + thread->process_todo = true; }
drivers/base/core.c +11 -4
@@ -284,10 +284,12 @@ static bool device_is_ancestor(struct device *dev, struct device *target)return false; } +#define DL_MARKER_FLAGS (DL_FLAG_INFERRED | \ + DL_FLAG_CYCLE | \ + DL_FLAG_MANAGED)static inline bool device_link_flag_is_sync_state_only (u32 flags) { -return (flags & ~(DL_FLAG_INFERRED |DL_FLAG_CYCLE )) == - (DL_FLAG_SYNC_STATE_ONLY |DL_FLAG_MANAGED ); +return (flags & ~DL_MARKER_FLAGS ) ==DL_FLAG_SYNC_STATE_ONLY ; }/**
@@ -2058,9 +2060,14 @@ static int fw_devlink_create_devlink(struct device *con,/* * SYNC_STATE_ONLY device links don't block probing and supports cycles. -* So cycle detection isn't necessary and shouldn't be done. +* So, one might expect that cycle detection isn't necessary for them. +* However, if the device link was marked as SYNC_STATE_ONLY because +* it's part of a cycle, then we still need to do cycle detection. This +* is because the consumer and supplier might be part of multiple cycles +* and we need to detect all those cycles. */ -if (!(flags &DL_FLAG_SYNC_STATE_ONLY )) { +if (!device_link_flag_is_sync_state_only (flags) || + flags &DL_FLAG_CYCLE ) {device_links_write_lock ();if (__fw_devlink_relax_cycles (con, sup_handle)) {__fwnode_link_cycle (link);
drivers/base/power/domain.c +1 -1
@@ -1111,7 +1111,7 @@ static int __init genpd_power_off_unused(void)return 0 ; } -late_initcall (genpd_power_off_unused); +late_initcall_sync (genpd_power_off_unused);#ifdef CONFIG_PM_SLEEP
drivers/connector/cn_proc.c +2 -3
@@ -108,9 +108,8 @@ static inline void send_msg(struct cn_msg *msg) filter_data[1 ] =0 ; } -if (cn_netlink_send_mult (msg, msg->len,0 ,CN_IDX_PROC ,GFP_NOWAIT , - cn_filter, (void *)filter_data) == -ESRCH ) -atomic_set (&proc_event_num_listeners,0 ); +cn_netlink_send_mult (msg, msg->len,0 ,CN_IDX_PROC ,GFP_NOWAIT , + cn_filter, (void *)filter_data);local_unlock (&local_event.lock); }
drivers/crypto/ccp/sev-dev.c +8 -2
@@ -534,10 +534,16 @@ EXPORT_SYMBOL_GPL(sev_platform_init);static int __sev_platform_shutdown_locked (int *error) { -struct sev_device *sev = psp_master->sev_data; +struct psp_device *psp = psp_master; +struct sev_device *sev;int ret; -if (!sev || sev->state ==SEV_STATE_UNINIT ) +if (!psp || !psp->sev_data) +return 0 ; + + sev = psp->sev_data; + +if (sev->state ==SEV_STATE_UNINIT )return 0 ; ret =__sev_do_cmd_locked (SEV_CMD_SHUTDOWN ,NULL , error);
drivers/dpll/dpll_netlink.c +6 -14
@@ -1171,6 +1171,7 @@ int dpll_nl_pin_get_dumpit(struct sk_buff *skb, struct netlink_callback *cb)unsigned long i;int ret =0 ; +mutex_lock (&dpll_lock);xa_for_each_marked_start (&dpll_pin_xa, i, pin,DPLL_REGISTERED , ctx->idx) {if (!dpll_pin_available (pin))
@@ -1190,6 +1191,8 @@ int dpll_nl_pin_get_dumpit(struct sk_buff *skb, struct netlink_callback *cb) }genlmsg_end (skb, hdr); } +mutex_unlock (&dpll_lock); +if (ret == -EMSGSIZE ) { ctx->idx = i;return skb->len;
@@ -1345,6 +1348,7 @@ int dpll_nl_device_get_dumpit(struct sk_buff *skb, struct netlink_callback *cb)unsigned long i;int ret =0 ; +mutex_lock (&dpll_lock);xa_for_each_marked_start (&dpll_device_xa, i, dpll,DPLL_REGISTERED , ctx->idx) { hdr = genlmsg_put(skb, NETLINK_CB(cb->skb).portid,
@@ -1361,6 +1365,8 @@ int dpll_nl_device_get_dumpit(struct sk_buff *skb, struct netlink_callback *cb) }genlmsg_end (skb, hdr); } +mutex_unlock (&dpll_lock); +if (ret == -EMSGSIZE ) { ctx->idx = i;return skb->len;
@@ -1411,20 +1417,6 @@ dpll_unlock_doit(const struct genl_split_ops *ops, struct sk_buff *skb,mutex_unlock (&dpll_lock); } -int dpll_lock_dumpit (struct netlink_callback *cb) -{ -mutex_lock (&dpll_lock); - -return 0 ; -} - -int dpll_unlock_dumpit (struct netlink_callback *cb) -{ -mutex_unlock (&dpll_lock); - -return 0 ; -} -int dpll_pin_pre_doit (const struct genl_split_ops *ops,struct sk_buff *skb,struct genl_info *info) {
drivers/dpll/dpll_nl.c +0 -4
@@ -95,9 +95,7 @@ static const struct genl_split_ops dpll_nl_ops[] = { }, { .cmd = DPLL_CMD_DEVICE_GET, - .start = dpll_lock_dumpit, .dumpit = dpll_nl_device_get_dumpit, - .done = dpll_unlock_dumpit, .flags = GENL_ADMIN_PERM | GENL_CMD_CAP_DUMP, }, {
@@ -129,9 +127,7 @@ static const struct genl_split_ops dpll_nl_ops[] = { }, { .cmd = DPLL_CMD_PIN_GET, - .start = dpll_lock_dumpit, .dumpit = dpll_nl_pin_get_dumpit, - .done = dpll_unlock_dumpit, .policy = dpll_pin_get_dump_nl_policy, .maxattr = DPLL_A_PIN_ID, .flags = GENL_ADMIN_PERM | GENL_CMD_CAP_DUMP,
drivers/dpll/dpll_nl.h +0 -2
@@ -30,8 +30,6 @@ dpll_post_doit(const struct genl_split_ops *ops, struct sk_buff *skb,void dpll_pin_post_doit (const struct genl_split_ops *ops,struct sk_buff *skb,struct genl_info *info); -int dpll_lock_dumpit (struct netlink_callback *cb); -int dpll_unlock_dumpit (struct netlink_callback *cb);int dpll_nl_device_id_get_doit (struct sk_buff *skb,struct genl_info *info);int dpll_nl_device_get_doit (struct sk_buff *skb,struct genl_info *info);
drivers/firewire/core-device.c +3 -4
@@ -100,10 +100,9 @@ static int textual_leaf_to_string(const u32 *block, char *buf, size_t size)* @buf: where to put the string * @size: size of @buf, in bytes * -* The string is taken from a minimal ASCII text descriptor leaf after -* the immediate entry with @key. The string is zero-terminated. -* An overlong string is silently truncated such that it and the -* zero byte fit into @size. +* The string is taken from a minimal ASCII text descriptor leaf just after the entry with the +* @key. The string is zero-terminated. An overlong string is silently truncated such that it +* and the zero byte fit into @size. * * Returns strlen(buf) or a negative error code. */
drivers/firmware/efi/libstub/Makefile +1 -1
@@ -28,7 +28,7 @@ cflags-$(CONFIG_ARM) += -DEFI_HAVE_STRLEN -DEFI_HAVE_STRNLEN \ -DEFI_HAVE_MEMCHR -DEFI_HAVE_STRRCHR \ -DEFI_HAVE_STRCMP -fno-builtin -fpic \ $(call cc-option,-mno-single-pic-base) -cflags-$(CONFIG_RISCV) += -fpic -DNO_ALTERNATIVE +cflags-$(CONFIG_RISCV) += -fpic -DNO_ALTERNATIVE -mno-relax cflags-$(CONFIG_LOONGARCH) += -fpie cflags-$(CONFIG_EFI_PARAMS_FROM_FDT) += -I$(srctree)/scripts/dtc/libfdt
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +0 -1
@@ -4496,7 +4496,6 @@ int amdgpu_device_suspend(struct drm_device *dev, bool fbcon)drm_fb_helper_set_suspend_unlocked (adev_to_drm (adev)->fb_helper, true);cancel_delayed_work_sync (&adev->delayed_init_work); -flush_delayed_work (&adev->gfx.gfx_off_delay_work);amdgpu_ras_suspend (adev);
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c +8 -1
@@ -723,8 +723,15 @@ void amdgpu_gfx_off_ctrl(struct amdgpu_device *adev, bool enable)if (adev->gfx.gfx_off_req_count ==0 && !adev->gfx.gfx_off_state) { -schedule_delayed_work (&adev->gfx.gfx_off_delay_work, +/* If going to s2idle, no need to wait */ +if (adev->in_s0ix) { +if (!amdgpu_dpm_set_powergating_by_smu (adev, +AMD_IP_BLOCK_TYPE_GFX , true)) + adev->gfx.gfx_off_state = true; + }else { +schedule_delayed_work (&adev->gfx.gfx_off_delay_work, delay); + } } }else {if (adev->gfx.gfx_off_req_count ==0 ) {
drivers/gpu/drm/amd/amdgpu/cik_ih.c +6 -0
@@ -204,6 +204,12 @@ static u32 cik_ih_get_wptr(struct amdgpu_device *adev, tmp =RREG32 (mmIH_RB_CNTL); tmp |=IH_RB_CNTL__WPTR_OVERFLOW_CLEAR_MASK ;WREG32 (mmIH_RB_CNTL, tmp); + +/* Unset the CLEAR_OVERFLOW bit immediately so new overflows +* can be detected. +*/ + tmp &= ~IH_RB_CNTL__WPTR_OVERFLOW_CLEAR_MASK ; +WREG32 (mmIH_RB_CNTL, tmp); }return (wptr & ih->ptr_mask); }
drivers/gpu/drm/amd/amdgpu/cz_ih.c +5 -0
@@ -216,6 +216,11 @@ static u32 cz_ih_get_wptr(struct amdgpu_device *adev, tmp =REG_SET_FIELD (tmp,IH_RB_CNTL ,WPTR_OVERFLOW_CLEAR ,1 );WREG32 (mmIH_RB_CNTL, tmp); +/* Unset the CLEAR_OVERFLOW bit immediately so new overflows +* can be detected. +*/ + tmp =REG_SET_FIELD (tmp,IH_RB_CNTL ,WPTR_OVERFLOW_CLEAR ,0 ); +WREG32 (mmIH_RB_CNTL, tmp); out:return (wptr & ih->ptr_mask);
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c +0 -2
@@ -4027,8 +4027,6 @@ static int gfx_v10_0_init_microcode(struct amdgpu_device *adev) err =0 ; adev->gfx.mec2_fw =NULL ; } -amdgpu_gfx_cp_init_microcode (adev,AMDGPU_UCODE_ID_CP_MEC2 ); -amdgpu_gfx_cp_init_microcode (adev,AMDGPU_UCODE_ID_CP_MEC2_JT );gfx_v10_0_check_fw_write_wait (adev); out:
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c +0 -8
@@ -1947,14 +1947,6 @@ static int gmc_v9_0_init_mem_ranges(struct amdgpu_device *adev)static void gmc_v9_4_3_init_vram_info (struct amdgpu_device *adev) { -static const u32 regBIF_BIOS_SCRATCH_4 =0x50 ; -u32 vram_info; - -/* Only for dGPU, vendor informaton is reliable */ -if (!amdgpu_sriov_vf (adev) && !(adev->flags &AMD_IS_APU )) { - vram_info =RREG32 (regBIF_BIOS_SCRATCH_4); - adev->gmc.vram_vendor = vram_info &0xF ; - } adev->gmc.vram_type =AMDGPU_VRAM_TYPE_HBM ; adev->gmc.vram_width =128 *64 ; }
drivers/gpu/drm/amd/amdgpu/iceland_ih.c +5 -0
@@ -215,6 +215,11 @@ static u32 iceland_ih_get_wptr(struct amdgpu_device *adev, tmp =REG_SET_FIELD (tmp,IH_RB_CNTL ,WPTR_OVERFLOW_CLEAR ,1 );WREG32 (mmIH_RB_CNTL, tmp); +/* Unset the CLEAR_OVERFLOW bit immediately so new overflows +* can be detected. +*/ + tmp =REG_SET_FIELD (tmp,IH_RB_CNTL ,WPTR_OVERFLOW_CLEAR ,0 ); +WREG32 (mmIH_RB_CNTL, tmp); out:return (wptr & ih->ptr_mask);
drivers/gpu/drm/amd/amdgpu/ih_v6_0.c +6 -0
@@ -418,6 +418,12 @@ static u32 ih_v6_0_get_wptr(struct amdgpu_device *adev, tmp =RREG32_NO_KIQ (ih_regs->ih_rb_cntl); tmp =REG_SET_FIELD (tmp,IH_RB_CNTL ,WPTR_OVERFLOW_CLEAR ,1 );WREG32_NO_KIQ (ih_regs->ih_rb_cntl, tmp); + +/* Unset the CLEAR_OVERFLOW bit immediately so new overflows +* can be detected. +*/ + tmp =REG_SET_FIELD (tmp,IH_RB_CNTL ,WPTR_OVERFLOW_CLEAR ,0 ); +WREG32_NO_KIQ (ih_regs->ih_rb_cntl, tmp); out:return (wptr & ih->ptr_mask); }
drivers/gpu/drm/amd/amdgpu/ih_v6_1.c +7 -0
@@ -418,6 +418,13 @@ static u32 ih_v6_1_get_wptr(struct amdgpu_device *adev, tmp =RREG32_NO_KIQ (ih_regs->ih_rb_cntl); tmp =REG_SET_FIELD (tmp,IH_RB_CNTL ,WPTR_OVERFLOW_CLEAR ,1 );WREG32_NO_KIQ (ih_regs->ih_rb_cntl, tmp); + +/* Unset the CLEAR_OVERFLOW bit immediately so new overflows +* can be detected. +*/ + tmp =REG_SET_FIELD (tmp,IH_RB_CNTL ,WPTR_OVERFLOW_CLEAR ,0 ); +WREG32_NO_KIQ (ih_regs->ih_rb_cntl, tmp); + out:return (wptr & ih->ptr_mask); }
drivers/gpu/drm/amd/amdgpu/navi10_ih.c +6 -0
@@ -442,6 +442,12 @@ static u32 navi10_ih_get_wptr(struct amdgpu_device *adev, tmp =RREG32_NO_KIQ (ih_regs->ih_rb_cntl); tmp =REG_SET_FIELD (tmp,IH_RB_CNTL ,WPTR_OVERFLOW_CLEAR ,1 );WREG32_NO_KIQ (ih_regs->ih_rb_cntl, tmp); + +/* Unset the CLEAR_OVERFLOW bit immediately so new overflows +* can be detected. +*/ + tmp =REG_SET_FIELD (tmp,IH_RB_CNTL ,WPTR_OVERFLOW_CLEAR ,0 ); +WREG32_NO_KIQ (ih_regs->ih_rb_cntl, tmp); out:return (wptr & ih->ptr_mask); }
drivers/gpu/drm/amd/amdgpu/si_ih.c +6 -0
@@ -119,6 +119,12 @@ static u32 si_ih_get_wptr(struct amdgpu_device *adev, tmp =RREG32 (IH_RB_CNTL ); tmp |=IH_RB_CNTL__WPTR_OVERFLOW_CLEAR_MASK ;WREG32 (IH_RB_CNTL , tmp); + +/* Unset the CLEAR_OVERFLOW bit immediately so new overflows +* can be detected. +*/ + tmp &= ~IH_RB_CNTL__WPTR_OVERFLOW_CLEAR_MASK ; +WREG32 (IH_RB_CNTL , tmp); }return (wptr & ih->ptr_mask); }
drivers/gpu/drm/amd/amdgpu/soc21.c +2 -2
@@ -50,13 +50,13 @@ static const struct amd_ip_funcs soc21_common_ip_funcs;/* SOC21 */ static const struct amdgpu_video_codec_info vcn_4_0_0_video_codecs_encode_array_vcn0[] = { {codec_info_build (AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC ,4096 ,2304 ,0 )}, - {codec_info_build (AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC ,4096 ,2304 ,0 )}, + {codec_info_build (AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC ,8192 ,4352 ,0 )}, {codec_info_build (AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_AV1 ,8192 ,4352 ,0 )}, };static const struct amdgpu_video_codec_info vcn_4_0_0_video_codecs_encode_array_vcn1[] = { {codec_info_build (AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC ,4096 ,2304 ,0 )}, - {codec_info_build (AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC ,4096 ,2304 ,0 )}, + {codec_info_build (AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC ,8192 ,4352 ,0 )}, };static const struct amdgpu_video_codecs vcn_4_0_0_video_codecs_encode_vcn0 = {
drivers/gpu/drm/amd/amdgpu/tonga_ih.c +6 -0
@@ -219,6 +219,12 @@ static u32 tonga_ih_get_wptr(struct amdgpu_device *adev, tmp =REG_SET_FIELD (tmp,IH_RB_CNTL ,WPTR_OVERFLOW_CLEAR ,1 );WREG32 (mmIH_RB_CNTL, tmp); +/* Unset the CLEAR_OVERFLOW bit immediately so new overflows +* can be detected. +*/ + tmp =REG_SET_FIELD (tmp,IH_RB_CNTL ,WPTR_OVERFLOW_CLEAR ,0 ); +WREG32 (mmIH_RB_CNTL, tmp); + out:return (wptr & ih->ptr_mask); }
drivers/gpu/drm/amd/amdgpu/vega10_ih.c +6 -0
@@ -373,6 +373,12 @@ static u32 vega10_ih_get_wptr(struct amdgpu_device *adev, tmp =REG_SET_FIELD (tmp,IH_RB_CNTL ,WPTR_OVERFLOW_CLEAR ,1 );WREG32_NO_KIQ (ih_regs->ih_rb_cntl, tmp); +/* Unset the CLEAR_OVERFLOW bit immediately so new overflows +* can be detected. +*/ + tmp =REG_SET_FIELD (tmp,IH_RB_CNTL ,WPTR_OVERFLOW_CLEAR ,0 ); +WREG32_NO_KIQ (ih_regs->ih_rb_cntl, tmp); + out:return (wptr & ih->ptr_mask); }
drivers/gpu/drm/amd/amdgpu/vega20_ih.c +6 -0
@@ -421,6 +421,12 @@ static u32 vega20_ih_get_wptr(struct amdgpu_device *adev, tmp =REG_SET_FIELD (tmp,IH_RB_CNTL ,WPTR_OVERFLOW_CLEAR ,1 );WREG32_NO_KIQ (ih_regs->ih_rb_cntl, tmp); +/* Unset the CLEAR_OVERFLOW bit immediately so new overflows +* can be detected. +*/ + tmp =REG_SET_FIELD (tmp,IH_RB_CNTL ,WPTR_OVERFLOW_CLEAR ,0 ); +WREG32_NO_KIQ (ih_regs->ih_rb_cntl, tmp); + out:return (wptr & ih->ptr_mask); }
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +9 -5
@@ -6110,7 +6110,9 @@ create_stream_for_sink(struct drm_connector *connector,if (recalculate_timing) { freesync_mode =get_highest_refresh_rate_mode (aconnector, false);drm_mode_copy (&saved_mode, &mode); + saved_mode.picture_aspect_ratio = mode.picture_aspect_ratio;drm_mode_copy (&mode, freesync_mode); + mode.picture_aspect_ratio = saved_mode.picture_aspect_ratio; }else {decide_crtc_timing_for_drm_display_mode ( &mode, preferred_mode, scale);
@@ -10440,11 +10442,13 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev, goto fail; } - ret =compute_mst_dsc_configs_for_state (state, dm_state->context, vars); -if (ret) { -DRM_DEBUG_DRIVER ("compute_mst_dsc_configs_for_state() failed\n" ); - ret = -EINVAL ; - goto fail; +if (dc_resource_is_dsc_encoding_supported (dc)) { + ret =compute_mst_dsc_configs_for_state (state, dm_state->context, vars); +if (ret) { +DRM_DEBUG_DRIVER ("compute_mst_dsc_configs_for_state() failed\n" ); + ret = -EINVAL ; + goto fail; + } } ret =dm_update_mst_vcpi_slots_for_dsc (state, dm_state->context, vars);
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c +11 -4
@@ -654,10 +654,13 @@ static void dcn35_clk_mgr_helper_populate_bw_params(struct clk_mgr_internal *clkstruct clk_limit_table_entry def_max = bw_params->clk_table.entries[bw_params->clk_table.num_entries -1 ];uint32_t max_fclk =0 , min_pstate =0 , max_dispclk =0 , max_dppclk =0 ;uint32_t max_pstate =0 , max_dram_speed_mts =0 , min_dram_speed_mts =0 ; +uint32_t num_memps, num_fclk, num_dcfclk;int i;/* Determine min/max p-state values. */ -for (i =0 ; i < clock_table->NumMemPstatesEnabled; i++) { + num_memps = (clock_table->NumMemPstatesEnabled >NUM_MEM_PSTATE_LEVELS ) ?NUM_MEM_PSTATE_LEVELS : + clock_table->NumMemPstatesEnabled; +for (i =0 ; i < num_memps; i++) {uint32_t dram_speed_mts =calc_dram_speed_mts (&clock_table->MemPstateTable[i]);if (is_valid_clock_value (dram_speed_mts) && dram_speed_mts > max_dram_speed_mts) {
@@ -669,7 +672,7 @@ static void dcn35_clk_mgr_helper_populate_bw_params(struct clk_mgr_internal *clk min_dram_speed_mts = max_dram_speed_mts; min_pstate = max_pstate; -for (i =0 ; i < clock_table->NumMemPstatesEnabled; i++) { +for (i =0 ; i < num_memps; i++) {uint32_t dram_speed_mts =calc_dram_speed_mts (&clock_table->MemPstateTable[i]);if (is_valid_clock_value (dram_speed_mts) && dram_speed_mts < min_dram_speed_mts) {
@@ -698,9 +701,13 @@ static void dcn35_clk_mgr_helper_populate_bw_params(struct clk_mgr_internal *clk/* Base the clock table on dcfclk, need at least one entry regardless of pmfw table */ ASSERT (clock_table->NumDcfClkLevelsEnabled >0 ); - max_fclk =find_max_clk_value (clock_table->FclkClocks_Freq, clock_table->NumFclkLevelsEnabled); + num_fclk = (clock_table->NumFclkLevelsEnabled >NUM_FCLK_DPM_LEVELS ) ?NUM_FCLK_DPM_LEVELS : + clock_table->NumFclkLevelsEnabled; + max_fclk =find_max_clk_value (clock_table->FclkClocks_Freq, num_fclk); -for (i =0 ; i < clock_table->NumDcfClkLevelsEnabled; i++) { + num_dcfclk = (clock_table->NumFclkLevelsEnabled >NUM_DCFCLK_DPM_LEVELS ) ?NUM_DCFCLK_DPM_LEVELS : + clock_table->NumDcfClkLevelsEnabled; +for (i =0 ; i < num_dcfclk; i++) {int j;/* First search defaults for the clocks we don't read using closest lower or equal default dcfclk */
drivers/gpu/drm/amd/display/dc/dml/Makefile +3 -3
@@ -72,11 +72,11 @@ CFLAGS_$(AMDDALPATH)/dc/dml/display_mode_lib.o := $(dml_ccflags) CFLAGS_$(AMDDALPATH)/dc/dml/display_mode_vba.o := $(dml_ccflags) CFLAGS_$(AMDDALPATH)/dc/dml/dcn10/dcn10_fpu.o := $(dml_ccflags) CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/dcn20_fpu.o := $(dml_ccflags) -CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20.o := $(dml_ccflags) +CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20.o := $(dml_ccflags) $(frame_warn_flag) CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20.o := $(dml_ccflags) -CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20v2.o := $(dml_ccflags) +CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20v2.o := $(dml_ccflags) $(frame_warn_flag) CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20v2.o := $(dml_ccflags) -CFLAGS_$(AMDDALPATH)/dc/dml/dcn21/display_mode_vba_21.o := $(dml_ccflags) +CFLAGS_$(AMDDALPATH)/dc/dml/dcn21/display_mode_vba_21.o := $(dml_ccflags) $(frame_warn_flag) CFLAGS_$(AMDDALPATH)/dc/dml/dcn21/display_rq_dlg_calc_21.o := $(dml_ccflags) CFLAGS_$(AMDDALPATH)/dc/dml/dcn30/display_mode_vba_30.o := $(dml_ccflags) $(frame_warn_flag) CFLAGS_$(AMDDALPATH)/dc/dml/dcn30/display_rq_dlg_calc_30.o := $(dml_ccflags)
drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c +1 -1
@@ -1089,7 +1089,7 @@ struct pipe_slice_table {struct pipe_ctx *pri_pipe;struct dc_plane_state *plane;int slice_count; - } mpc_combines[MAX_SURFACES ]; + } mpc_combines[MAX_PLANES ];int mpc_combine_count; };
drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c +11 -18
@@ -791,35 +791,28 @@ static void populate_dml_surface_cfg_from_plane_state(enum dml_project_id dml2_p } } -/*TODO no support for mpc combine, need rework - should calculate scaling params based on plane+stream*/ -static struct scaler_data get_scaler_data_for_plane (const struct dc_plane_state *in,const struct dc_state *context) +static struct scaler_data get_scaler_data_for_plane (const struct dc_plane_state *in,struct dc_state *context) {int i; -struct scaler_data data = {0 }; +struct pipe_ctx *temp_pipe = &context->res_ctx.temp_pipe; + +memset (temp_pipe,0 ,sizeof (struct pipe_ctx ));for (i =0 ; i <MAX_PIPES ; i++) {const struct pipe_ctx *pipe = &context->res_ctx.pipe_ctx[i];if (pipe->plane_state == in && !pipe->prev_odm_pipe) { -const struct pipe_ctx *next_pipe = pipe->next_odm_pipe; - - data = context->res_ctx.pipe_ctx[i].plane_res.scl_data; -while (next_pipe) { - data.h_active += next_pipe->plane_res.scl_data.h_active; - data.recout.width += next_pipe->plane_res.scl_data.recout.width; -if (in->rotation ==ROTATION_ANGLE_0 || in->rotation ==ROTATION_ANGLE_180 ) { - data.viewport.width += next_pipe->plane_res.scl_data.viewport.width; - }else { - data.viewport.height += next_pipe->plane_res.scl_data.viewport.height; - } - next_pipe = next_pipe->next_odm_pipe; - } + temp_pipe->stream = pipe->stream; + temp_pipe->plane_state = pipe->plane_state; + temp_pipe->plane_res.scl_data.taps = pipe->plane_res.scl_data.taps; + +resource_build_scaling_params (temp_pipe);break ; } }ASSERT (i <MAX_PIPES ); -return data; +return temp_pipe->plane_res.scl_data; }static void populate_dummy_dml_plane_cfg (struct dml_plane_cfg_st *out,unsigned int location,const struct dc_stream_state *in)
@@ -864,7 +857,7 @@ static void populate_dummy_dml_plane_cfg(struct dml_plane_cfg_st *out, unsigned out->ScalerEnabled[location] = false; } -static void populate_dml_plane_cfg_from_plane_state (struct dml_plane_cfg_st *out,unsigned int location,const struct dc_plane_state *in,const struct dc_state *context) +static void populate_dml_plane_cfg_from_plane_state (struct dml_plane_cfg_st *out,unsigned int location,const struct dc_plane_state *in,struct dc_state *context) {const struct scaler_data scaler_data =get_scaler_data_for_plane (in, context);
drivers/gpu/drm/amd/display/dc/inc/core_types.h +2 -0
@@ -462,6 +462,8 @@ struct resource_context {unsigned int hpo_dp_link_enc_to_link_idx[MAX_HPO_DP2_LINK_ENCODERS ];int hpo_dp_link_enc_ref_cnts[MAX_HPO_DP2_LINK_ENCODERS ];bool is_mpc_3dlut_acquired[MAX_PIPES ]; +/* solely used for build scalar data in dml2 */ +struct pipe_ctx temp_pipe; };struct dce_bw_output {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c +4 -1
@@ -517,6 +517,7 @@ enum link_training_result dp_check_link_loss_status( {enum link_training_result status =LINK_TRAINING_SUCCESS ;union lane_status lane_status; +union lane_align_status_updated dpcd_lane_status_updated;uint8_t dpcd_buf[6 ] = {0 };uint32_t lane;
@@ -532,10 +533,12 @@ enum link_training_result dp_check_link_loss_status(* check lanes status */ lane_status.raw =dp_get_nibble_at_index (&dpcd_buf[2 ], lane); + dpcd_lane_status_updated.raw = dpcd_buf[4 ];if (!lane_status.bits.CHANNEL_EQ_DONE_0 || !lane_status.bits.CR_DONE_0 || - !lane_status.bits.SYMBOL_LOCKED_0) { + !lane_status.bits.SYMBOL_LOCKED_0 || + !dp_is_interlane_aligned (dpcd_lane_status_updated)) {/* if one of the channel equalization, clock * recovery or symbol lock is dropped * consider it as (link has been
drivers/gpu/drm/drm_buddy.c +6 -0
@@ -539,6 +539,12 @@ static int __alloc_range(struct drm_buddy *mm, }while (1 );list_splice_tail (&allocated, blocks); + +if (total_allocated < size) { + err = -ENOSPC ; + goto err_free; + } +return 0 ; err_undo:
drivers/gpu/drm/drm_prime.c +1 -1
@@ -820,7 +820,7 @@ struct sg_table *drm_prime_pages_to_sg(struct drm_device *dev,if (max_segment ==0 ) max_segment =UINT_MAX ; err =sg_alloc_table_from_pages_segment (sg, pages, nr_pages,0 , - nr_pages <<PAGE_SHIFT , + (unsigned long )nr_pages <<PAGE_SHIFT , max_segment,GFP_KERNEL );if (err) {kfree (sg);
drivers/gpu/drm/i915/display/intel_dp.c +3 -0
@@ -2275,6 +2275,9 @@ intel_dp_compute_config_limits(struct intel_dp *intel_dp, limits->min_rate =intel_dp_common_rate (intel_dp,0 ); limits->max_rate =intel_dp_max_link_rate (intel_dp); +/* FIXME 128b/132b SST support missing */ + limits->max_rate =min (limits->max_rate,810000 ); + limits->min_lane_count =1 ; limits->max_lane_count =intel_dp_max_lane_count (intel_dp);
drivers/gpu/drm/i915/display/intel_vdsc_regs.h +2 -2
@@ -51,8 +51,8 @@#define DSCC_PICTURE_PARAMETER_SET_0 _MMIO(0x6BA00)#define _DSCA_PPS_0 0x6B200#define _DSCC_PPS_0 0x6BA00 -#define DSCA_PPS (pps) _MMIO(_DSCA_PPS_0 + (pps) * 4) -#define DSCC_PPS (pps) _MMIO(_DSCC_PPS_0 + (pps) * 4) +#define DSCA_PPS (pps) _MMIO(_DSCA_PPS_0 + ((pps) < 12 ? (pps) : (pps) + 12) * 4) +#define DSCC_PPS (pps) _MMIO(_DSCC_PPS_0 + ((pps) < 12 ? (pps) : (pps) + 12) * 4)#define _ICL_DSC0_PICTURE_PARAMETER_SET_0_PB 0x78270#define _ICL_DSC1_PICTURE_PARAMETER_SET_0_PB 0x78370#define _ICL_DSC0_PICTURE_PARAMETER_SET_0_PC 0x78470
drivers/gpu/drm/msm/msm_gem_prime.c +2 -2
@@ -26,7 +26,7 @@ int msm_gem_prime_vmap(struct drm_gem_object *obj, struct iosys_map *map) {void *vaddr; - vaddr =msm_gem_get_vaddr (obj); + vaddr =msm_gem_get_vaddr_locked (obj);if (IS_ERR (vaddr))return PTR_ERR (vaddr);iosys_map_set_vaddr (map, vaddr);
@@ -36,7 +36,7 @@ int msm_gem_prime_vmap(struct drm_gem_object *obj, struct iosys_map *map)void msm_gem_prime_vunmap (struct drm_gem_object *obj,struct iosys_map *map) { -msm_gem_put_vaddr (obj); +msm_gem_put_vaddr_locked (obj); } struct drm_gem_object *msm_gem_prime_import_sg_table(struct drm_device *dev,
drivers/gpu/drm/msm/msm_gpu.c +5 -6
@@ -749,12 +749,14 @@ void msm_gpu_submit(struct msm_gpu *gpu, struct msm_gem_submit *submit)struct msm_ringbuffer *ring = submit->ring;unsigned long flags; -pm_runtime_get_sync (&gpu->pdev->dev); +WARN_ON (!mutex_is_locked (&gpu->lock)); -mutex_lock (&gpu->lock); +pm_runtime_get_sync (&gpu->pdev->dev);msm_gpu_hw_init (gpu); + submit->seqno = submit->hw_fence->seqno; +update_sw_cntrs (gpu);/*
@@ -779,11 +781,8 @@ void msm_gpu_submit(struct msm_gpu *gpu, struct msm_gem_submit *submit) gpu->funcs->submit (gpu, submit); gpu->cur_ctx_seqno = submit->queue->ctx->seqno; -hangcheck_timer_reset (gpu); - -mutex_unlock (&gpu->lock); -pm_runtime_put (&gpu->pdev->dev); +hangcheck_timer_reset (gpu); }/*
drivers/gpu/drm/msm/msm_iommu.c +29 -3
@@ -21,6 +21,8 @@ struct msm_iommu_pagetable {struct msm_mmu base;struct msm_mmu *parent;struct io_pgtable_ops *pgtbl_ops; +const struct iommu_flush_ops *tlb; +struct device *iommu_dev;unsigned long pgsize_bitmap;/* Bitmap of page sizes in use */ phys_addr_t ttbr;u32 asid;
@@ -201,11 +203,33 @@ static const struct msm_mmu_funcs pagetable_funcs = {static void msm_iommu_tlb_flush_all (void *cookie) { +struct msm_iommu_pagetable *pagetable = cookie; +struct adreno_smmu_priv *adreno_smmu; + +if (!pm_runtime_get_if_in_use (pagetable->iommu_dev)) +return ; + + adreno_smmu =dev_get_drvdata (pagetable->parent->dev); + + pagetable->tlb->tlb_flush_all ((void *)adreno_smmu->cookie); + +pm_runtime_put_autosuspend (pagetable->iommu_dev); }static void msm_iommu_tlb_flush_walk (unsigned long iova,size_t size,size_t granule,void *cookie) { +struct msm_iommu_pagetable *pagetable = cookie; +struct adreno_smmu_priv *adreno_smmu; + +if (!pm_runtime_get_if_in_use (pagetable->iommu_dev)) +return ; + + adreno_smmu =dev_get_drvdata (pagetable->parent->dev); + + pagetable->tlb->tlb_flush_walk (iova, size, granule, (void *)adreno_smmu->cookie); + +pm_runtime_put_autosuspend (pagetable->iommu_dev); } static void msm_iommu_tlb_add_page(struct iommu_iotlb_gather *gather,
@@ -213,7 +237,7 @@ static void msm_iommu_tlb_add_page(struct iommu_iotlb_gather *gather, { } -static const struct iommu_flush_ops null_tlb_ops = { +static const struct iommu_flush_ops tlb_ops = { .tlb_flush_all = msm_iommu_tlb_flush_all, .tlb_flush_walk = msm_iommu_tlb_flush_walk, .tlb_add_page = msm_iommu_tlb_add_page,
@@ -254,10 +278,10 @@ struct msm_mmu *msm_iommu_pagetable_create(struct msm_mmu *parent)/* The incoming cfg will have the TTBR1 quirk enabled */ ttbr0_cfg.quirks &= ~IO_PGTABLE_QUIRK_ARM_TTBR1 ; - ttbr0_cfg.tlb = &null_tlb_ops; + ttbr0_cfg.tlb = &tlb_ops; pagetable->pgtbl_ops =alloc_io_pgtable_ops (ARM_64_LPAE_S1 , - &ttbr0_cfg, iommu->domain); + &ttbr0_cfg, pagetable);if (!pagetable->pgtbl_ops) {kfree (pagetable);
@@ -279,6 +303,8 @@ struct msm_mmu *msm_iommu_pagetable_create(struct msm_mmu *parent)/* Needed later for TLB flush */ pagetable->parent = parent; + pagetable->tlb = ttbr1_cfg->tlb; + pagetable->iommu_dev = ttbr1_cfg->iommu_dev; pagetable->pgsize_bitmap = ttbr0_cfg.pgsize_bitmap; pagetable->ttbr = ttbr0_cfg.arm_lpae_s1_cfg.ttbr;
drivers/gpu/drm/msm/msm_ringbuffer.c +5 -2
@@ -21,8 +21,6 @@ static struct dma_fence *msm_job_run(struct drm_sched_job *job)msm_fence_init (submit->hw_fence, fctx); - submit->seqno = submit->hw_fence->seqno; -mutex_lock (&priv->lru.lock);for (i =0 ; i < submit->nr_bos; i++) {
@@ -34,8 +32,13 @@ static struct dma_fence *msm_job_run(struct drm_sched_job *job)mutex_unlock (&priv->lru.lock); +/* TODO move submit path over to using a per-ring lock.. */ +mutex_lock (&gpu->lock); +msm_gpu_submit (gpu, submit); +mutex_unlock (&gpu->lock); +return dma_fence_get (submit->hw_fence); }
drivers/gpu/drm/nouveau/include/nvkm/subdev/gsp.h +1 -1
@@ -9,7 +9,7 @@#define GSP_PAGE_SIZE BIT(GSP_PAGE_SHIFT)struct nvkm_gsp_mem { -u32 size; +size_t size;void *data;dma_addr_t addr; };
drivers/gpu/drm/nouveau/nouveau_fence.c +18 -6
@@ -103,6 +103,7 @@ nouveau_fence_context_kill(struct nouveau_fence_chan *fctx, int error)void nouveau_fence_context_del (struct nouveau_fence_chan *fctx) { +cancel_work_sync (&fctx->uevent_work);nouveau_fence_context_kill (fctx,0 );nvif_event_dtor (&fctx->event); fctx->dead =1 ;
@@ -145,12 +146,13 @@ nouveau_fence_update(struct nouveau_channel *chan, struct nouveau_fence_chan *fcreturn drop; } -static int -nouveau_fence_wait_uevent_handler (struct nvif_event *event,void *repv,u32 repc) +static void +nouveau_fence_uevent_work (struct work_struct *work) { -struct nouveau_fence_chan *fctx =container_of (event,typeof (*fctx), event); + struct nouveau_fence_chan *fctx = container_of(work, struct nouveau_fence_chan, + uevent_work);unsigned long flags; -int ret =NVIF_EVENT_KEEP ; +int drop =0 ;spin_lock_irqsave (&fctx->lock, flags);if (!list_empty (&fctx->pending)) {
@@ -160,11 +162,20 @@ nouveau_fence_wait_uevent_handler(struct nvif_event *event, void *repv, u32 repc fence =list_entry (fctx->pending.next,typeof (*fence), head); chan =rcu_dereference_protected (fence->channel,lockdep_is_held (&fctx->lock));if (nouveau_fence_update (chan, fctx)) - ret =NVIF_EVENT_DROP ; + drop =1 ; } +if (drop) +nvif_event_block (&fctx->event); +spin_unlock_irqrestore (&fctx->lock, flags); +} -return ret; +static int +nouveau_fence_wait_uevent_handler (struct nvif_event *event,void *repv,u32 repc) +{ +struct nouveau_fence_chan *fctx =container_of (event,typeof (*fctx), event); +schedule_work (&fctx->uevent_work); +return NVIF_EVENT_KEEP ; }void
@@ -178,6 +189,7 @@ nouveau_fence_context_new(struct nouveau_channel *chan, struct nouveau_fence_cha } args;int ret; +INIT_WORK (&fctx->uevent_work, nouveau_fence_uevent_work);INIT_LIST_HEAD (&fctx->flip);INIT_LIST_HEAD (&fctx->pending);spin_lock_init (&fctx->lock);
drivers/gpu/drm/nouveau/nouveau_fence.h +1 -0
@@ -44,6 +44,7 @@ struct nouveau_fence_chan {u32 context;char name[32 ]; +struct work_struct uevent_work;struct nvif_event event;int notify_ref, dead, killed; };
drivers/gpu/drm/nouveau/nouveau_svm.c +1 -1
@@ -1011,7 +1011,7 @@ nouveau_svm_fault_buffer_ctor(struct nouveau_svm *svm, s32 oclass, int id)if (ret)return ret; - buffer->fault =kvcalloc (sizeof (*buffer->fault), buffer->entries,GFP_KERNEL ); + buffer->fault =kvcalloc (buffer->entries,sizeof (*buffer->fault),GFP_KERNEL );if (!buffer->fault)return -ENOMEM ;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c +39 -22
97 lines not on this page · raw message
drivers/gpu/drm/virtio/virtgpu_drv.c +1 -0
@@ -94,6 +94,7 @@ static int virtio_gpu_probe(struct virtio_device *vdev) goto err_free; } +dma_set_max_seg_size (dev->dev,dma_max_mapping_size (dev->dev) ?:UINT_MAX ); ret =virtio_gpu_init (vdev, dev);if (ret) goto err_free;
drivers/hid/bpf/hid_bpf_dispatch.c +61 -22
128 lines not on this page · raw message
drivers/hid/bpf/hid_bpf_dispatch.h +2 -2
@@ -12,9 +12,9 @@ struct hid_bpf_ctx_kern {int hid_bpf_preload_skel (void );void hid_bpf_free_links_and_skel (void ); -int hid_bpf_get_prog_attach_type (int prog_fd); +int hid_bpf_get_prog_attach_type (struct bpf_prog *prog);int __hid_bpf_attach_prog (struct hid_device *hdev,enum hid_bpf_prog_type prog_type,int prog_fd, -__u32 flags); +struct bpf_prog *prog,__u32 flags);void __hid_bpf_destroy_device (struct hid_device *hdev);int hid_bpf_prog_run (struct hid_device *hdev,enum hid_bpf_prog_type type,struct hid_bpf_ctx_kern *ctx_kern);
drivers/hid/bpf/hid_bpf_jmp_table.c +20 -20
@@ -196,6 +196,7 @@ static void __hid_bpf_do_release_prog(int map_fd, unsigned int idx)static void hid_bpf_release_progs (struct work_struct *work) {int i, j, n, map_fd =-1 ; +bool hdev_destroyed;if (!jmp_table.map)return ;
@@ -220,6 +221,12 @@ static void hid_bpf_release_progs(struct work_struct *work)if (entry->hdev) { hdev = entry->hdev; type = entry->type; +/* +* hdev is still valid, even if we are called after hid_destroy_device(): +* when hid_bpf_attach() gets called, it takes a ref on the dev through +* bus_find_device() +*/ + hdev_destroyed = hdev->bpf.destroyed;hid_bpf_populate_hdev (hdev, type);
@@ -232,12 +239,19 @@ static void hid_bpf_release_progs(struct work_struct *work)if (test_bit (next->idx, jmp_table.enabled))continue ; -if (next->hdev == hdev && next->type == type) +if (next->hdev == hdev && next->type == type) { +/* +* clear the hdev reference and decrement the device ref +* that was taken during bus_find_device() while calling +* hid_bpf_attach() +*/ next->hdev =NULL ; +put_device (&hdev->dev); + } } -/* if type was rdesc fixup, reconnect device */ -if (type ==HID_BPF_PROG_TYPE_RDESC_FIXUP ) +/* if type was rdesc fixup and the device is not gone, reconnect device */ +if (type ==HID_BPF_PROG_TYPE_RDESC_FIXUP && !hdev_destroyed)hid_bpf_reconnect (hdev); } }
@@ -333,15 +347,10 @@ static int hid_bpf_insert_prog(int prog_fd, struct bpf_prog *prog)return err; } -int hid_bpf_get_prog_attach_type (int prog_fd) +int hid_bpf_get_prog_attach_type (struct bpf_prog *prog) { -struct bpf_prog *prog =NULL ; -int i;int prog_type =HID_BPF_PROG_TYPE_UNDEF ; - - prog =bpf_prog_get (prog_fd); -if (IS_ERR (prog)) -return PTR_ERR (prog); +int i;for (i =0 ; i <HID_BPF_PROG_TYPE_MAX ; i++) {if (hid_bpf_btf_ids[i] == prog->aux->attach_btf_id) {
@@ -350,8 +359,6 @@ int hid_bpf_get_prog_attach_type(int prog_fd) } } -bpf_prog_put (prog); -return prog_type; }
@@ -388,19 +395,13 @@ static const struct bpf_link_ops hid_bpf_link_lops = {/* called from syscall */ noinline int__hid_bpf_attach_prog (struct hid_device *hdev,enum hid_bpf_prog_type prog_type, -int prog_fd,__u32 flags) +int prog_fd,struct bpf_prog *prog,__u32 flags) {struct bpf_link_primer link_primer;struct hid_bpf_link *link; -struct bpf_prog *prog =NULL ;struct hid_bpf_prog_entry *prog_entry;int cnt, err = -EINVAL , prog_table_idx =-1 ; -/* take a ref on the prog itself */ - prog =bpf_prog_get (prog_fd); -if (IS_ERR (prog)) -return PTR_ERR (prog); -mutex_lock (&hid_bpf_attach_lock); link =kzalloc (sizeof (*link),GFP_USER );
@@ -467,7 +468,6 @@ __hid_bpf_attach_prog(struct hid_device *hdev, enum hid_bpf_prog_type prog_type, err_unlock:mutex_unlock (&hid_bpf_attach_lock); -bpf_prog_put (prog);kfree (link);return err;
drivers/hid/i2c-hid/i2c-hid-of.c +1 -0
@@ -87,6 +87,7 @@ static int i2c_hid_of_probe(struct i2c_client *client)if (!ihid_of)return -ENOMEM ; + ihid_of->client = client; ihid_of->ops.power_up = i2c_hid_of_power_up; ihid_of->ops.power_down = i2c_hid_of_power_down;
drivers/hid/wacom_sys.c +43 -20
99 lines not on this page · raw message
drivers/hid/wacom_wac.c +8 -1
@@ -2574,7 +2574,14 @@ static void wacom_wac_pen_report(struct hid_device *hdev, wacom_wac->hid_data.tipswitch);input_report_key (input, wacom_wac->tool[0 ], sense);if (wacom_wac->serial[0 ]) { -input_event (input,EV_MSC ,MSC_SERIAL , wacom_wac->serial[0 ]); +/* +* xf86-input-wacom does not accept a serial number +* of '0'. Report the low 32 bits if possible, but +* if they are zero, report the upper ones instead. +*/ +__u32 serial_lo = wacom_wac->serial[0 ] &0xFFFFFFFFu ; +__u32 serial_hi = wacom_wac->serial[0 ] >>32 ; +input_event (input,EV_MSC ,MSC_SERIAL , (int )(serial_lo ? serial_lo : serial_hi));input_report_abs (input,ABS_MISC , sense ? id :0 ); }
drivers/i2c/busses/Makefile +2 -4
@@ -90,10 +90,8 @@ obj-$(CONFIG_I2C_NPCM) += i2c-npcm7xx.o obj-$(CONFIG_I2C_OCORES) += i2c-ocores.o obj-$(CONFIG_I2C_OMAP) += i2c-omap.o obj-$(CONFIG_I2C_OWL) += i2c-owl.o -i2c-pasemi-objs := i2c-pasemi-core.o i2c-pasemi-pci.o -obj-$(CONFIG_I2C_PASEMI) += i2c-pasemi.o -i2c-apple-objs := i2c-pasemi-core.o i2c-pasemi-platform.o -obj-$(CONFIG_I2C_APPLE) += i2c-apple.o +obj-$(CONFIG_I2C_PASEMI) += i2c-pasemi-core.o i2c-pasemi-pci.o +obj-$(CONFIG_I2C_APPLE) += i2c-pasemi-core.o i2c-pasemi-platform.o obj-$(CONFIG_I2C_PCA_PLATFORM) += i2c-pca-platform.o obj-$(CONFIG_I2C_PNX) += i2c-pnx.o obj-$(CONFIG_I2C_PXA) += i2c-pxa.o
drivers/i2c/busses/i2c-i801.c +2 -2
@@ -498,11 +498,10 @@ static int i801_block_transaction_by_block(struct i801_priv *priv,/* Set block buffer mode */ outb_p (inb_p (SMBAUXCTL (priv)) |SMBAUXCTL_E32B ,SMBAUXCTL (priv)); -inb_p (SMBHSTCNT (priv));/* reset the data buffer index */ -if (read_write ==I2C_SMBUS_WRITE ) { len = data->block[0 ];outb_p (len,SMBHSTDAT0 (priv)); +inb_p (SMBHSTCNT (priv));/* reset the data buffer index */ for (i =0 ; i < len; i++)outb_p (data->block[i+1 ],SMBBLKDAT (priv)); }
@@ -520,6 +519,7 @@ static int i801_block_transaction_by_block(struct i801_priv *priv, } data->block[0 ] = len; +inb_p (SMBHSTCNT (priv));/* reset the data buffer index */ for (i =0 ; i < len; i++) data->block[i +1 ] =inb_p (SMBBLKDAT (priv)); }
drivers/i2c/busses/i2c-pasemi-core.c +6 -0
@@ -369,6 +369,7 @@ int pasemi_i2c_common_probe(struct pasemi_smbus *smbus)return 0 ; } +EXPORT_SYMBOL_GPL (pasemi_i2c_common_probe);irqreturn_t pasemi_irq_handler (int irq,void *dev_id) {
@@ -378,3 +379,8 @@ irqreturn_t pasemi_irq_handler(int irq, void *dev_id)complete (&smbus->irq_completion);return IRQ_HANDLED ; } +EXPORT_SYMBOL_GPL (pasemi_irq_handler); + +MODULE_LICENSE ("GPL" ); +MODULE_AUTHOR ("Olof Johansson <[email protected]>" ); +MODULE_DESCRIPTION ("PA Semi PWRficient SMBus driver" );
drivers/i2c/busses/i2c-qcom-geni.c +7 -7
@@ -613,20 +613,20 @@ static int geni_i2c_gpi_xfer(struct geni_i2c_dev *gi2c, struct i2c_msg msgs[], i peripheral.addr = msgs[i].addr; + ret =geni_i2c_gpi (gi2c, &msgs[i], &config, + &tx_addr, &tx_buf,I2C_WRITE , gi2c->tx_c); +if (ret) + goto err; +if (msgs[i].flags &I2C_M_RD ) { ret =geni_i2c_gpi (gi2c, &msgs[i], &config, &rx_addr, &rx_buf,I2C_READ , gi2c->rx_c);if (ret) goto err; - } - - ret =geni_i2c_gpi (gi2c, &msgs[i], &config, - &tx_addr, &tx_buf,I2C_WRITE , gi2c->tx_c); -if (ret) - goto err; -if (msgs[i].flags &I2C_M_RD )dma_async_issue_pending (gi2c->rx_c); + } +dma_async_issue_pending (gi2c->tx_c); timeout =wait_for_completion_timeout (&gi2c->done,XFER_TIMEOUT );
drivers/iio/accel/Kconfig +2 -0
@@ -219,10 +219,12 @@ config BMA400 config BMA400_I2C tristate + select REGMAP_I2C depends on BMA400 config BMA400_SPI tristate + select REGMAP_SPI depends on BMA400 config BMC150_ACCEL
drivers/iio/adc/ad4130.c +8 -4
@@ -1821,7 +1821,7 @@ static int ad4130_setup_int_clk(struct ad4130_state *st) {struct device *dev = &st->spi->dev;struct device_node *of_node =dev_of_node (dev); -struct clk_init_data init; +struct clk_init_data init = {};const char *clk_name;int ret;
@@ -1891,10 +1891,14 @@ static int ad4130_setup(struct iio_dev *indio_dev)return ret;/* -* Configure all GPIOs for output. If configured, the interrupt function -* of P2 takes priority over the GPIO out function. +* Configure unused GPIOs for output. If configured, the interrupt +* function of P2 takes priority over the GPIO out function. */ - val =AD4130_IO_CONTROL_GPIO_CTRL_MASK ; + val =0 ; +for (i =0 ; i <AD4130_MAX_GPIOS ; i++) +if (st->pins_fn[i +AD4130_AIN2_P1 ] ==AD4130_PIN_FN_NONE ) + val |=FIELD_PREP (AD4130_IO_CONTROL_GPIO_CTRL_MASK ,BIT (i)); + val |=FIELD_PREP (AD4130_IO_CONTROL_INT_PIN_SEL_MASK , st->int_pin_sel); ret =regmap_write (st->regmap,AD4130_IO_CONTROL_REG , val);
drivers/iio/imu/bno055/Kconfig +1 -0
@@ -8,6 +8,7 @@ config BOSCH_BNO055 config BOSCH_BNO055_SERIAL tristate "Bosch BNO055 attached via UART" depends on SERIAL_DEV_BUS + select REGMAP select BOSCH_BNO055 help Enable this to support Bosch BNO055 IMUs attached via UART.
drivers/iio/industrialio-core.c +4 -1
@@ -1581,10 +1581,13 @@ static int iio_device_register_sysfs(struct iio_dev *indio_dev) ret =iio_device_register_sysfs_group (indio_dev, &iio_dev_opaque->chan_attr_group);if (ret) - goto error_clear_attrs; + goto error_free_chan_attrs;return 0 ; +error_free_chan_attrs: +kfree (iio_dev_opaque->chan_attr_group.attrs); + iio_dev_opaque->chan_attr_group.attrs =NULL ; error_clear_attrs:iio_free_chan_devattr_list (&iio_dev_opaque->channel_attr_list);
drivers/iio/light/hid-sensor-als.c +1 -0
@@ -226,6 +226,7 @@ static int als_capture_sample(struct hid_sensor_hub_device *hsdev,case HID_USAGE_SENSOR_TIME_TIMESTAMP : als_state->timestamp =hid_sensor_convert_timestamp (&als_state->common_attributes, *(s64 *)raw_data); + ret =0 ;break ;default :break ;
drivers/iio/magnetometer/rm3100-core.c +8 -2
@@ -530,6 +530,7 @@ int rm3100_common_probe(struct device *dev, struct regmap *regmap, int irq)struct rm3100_data *data;unsigned int tmp;int ret; +int samp_rate_index; indio_dev =devm_iio_device_alloc (dev,sizeof (*data));if (!indio_dev)
@@ -586,9 +587,14 @@ int rm3100_common_probe(struct device *dev, struct regmap *regmap, int irq) ret =regmap_read (regmap,RM3100_REG_TMRC , &tmp);if (ret <0 )return ret; + + samp_rate_index = tmp -RM3100_TMRC_OFFSET ; +if (samp_rate_index <0 || samp_rate_index >=RM3100_SAMP_NUM ) { +dev_err (dev,"The value read from RM3100_REG_TMRC is invalid!\n" ); +return -EINVAL ; + }/* Initializing max wait time, which is double conversion time. */ - data->conversion_time = rm3100_samp_rates[tmp -RM3100_TMRC_OFFSET ][2 ] - *2 ; + data->conversion_time = rm3100_samp_rates[samp_rate_index][2 ] *2 ;/* Cycle count values may not be what we want. */ if ((tmp -RM3100_TMRC_OFFSET ) ==0 )
drivers/iio/pressure/bmp280-spi.c +1 -0
@@ -91,6 +91,7 @@ static const struct of_device_id bmp280_of_spi_match[] = {MODULE_DEVICE_TABLE (of, bmp280_of_spi_match);static const struct spi_device_id bmp280_spi_id[] = { + {"bmp085" , (kernel_ulong_t)&bmp180_chip_info }, {"bmp180" , (kernel_ulong_t)&bmp180_chip_info }, {"bmp181" , (kernel_ulong_t)&bmp180_chip_info }, {"bmp280" , (kernel_ulong_t)&bmp280_chip_info },
drivers/interconnect/qcom/sc8180x.c +1 -0
@@ -1372,6 +1372,7 @@ static struct qcom_icc_bcm bcm_mm0 = {static struct qcom_icc_bcm bcm_co0 = { .name ="CO0" , + .keepalive = true, .num_nodes =1 ,
Lines of this file are not shown. View the raw message.
drivers/irqchip/irq-gic-v3-its.c +40 -22
62 lines not on this page · raw message
drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c +1 -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/i40e/i40e_virtchnl_pf.c +33 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/dpll.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c +7 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/flower/conntrack.c +43 -3
46 lines not on this page · raw message
drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/nfp_net_common.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/common.h +40 -16
56 lines not on this page · raw message
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c +7 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c +7 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c +7 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c +7 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c +87 -42
129 lines not on this page · raw message
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +69 -67
136 lines not on this page · raw message
drivers/net/hyperv/netvsc_drv.c +62 -20
82 lines not on this page · raw message
drivers/net/wireless/intel/iwlwifi/fw/acpi.c +9 -6
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/iwl-drv.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/time-event.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/xen-netback/netback.c +40 -44
84 lines not on this page · raw message
drivers/of/property.c +25 -40
65 lines not on this page · raw message
drivers/pci/controller/dwc/pcie-designware-ep.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/pmdomain/mediatek/mtk-pm-domains.c +7 -8
Lines of this file are not shown. View the raw message.
drivers/pmdomain/renesas/r8a77980-sysc.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/spi/spi-omap2-mcspi.c +8 -129
137 lines not on this page · raw message
drivers/staging/iio/impedance-analyzer/ad5933.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/tty/serial/max310x.c +43 -10
53 lines not on this page · raw message
drivers/usb/chipidea/core.c +24 -20
44 lines not on this page · raw message
drivers/usb/core/hub.c +32 -14
46 lines not on this page · raw message
drivers/usb/gadget/function/f_mass_storage.c +18 -2
Lines of this file are not shown. View the raw message.
fs/btrfs/block-group.c +78 -2
80 lines not on this page · raw message
fs/proc/array.c +37 -29
66 lines not on this page · raw message
fs/tracefs/event_inode.c +237 -571
808 lines not on this page · raw message
fs/tracefs/inode.c +22 -80
102 lines not on this page · raw message
fs/tracefs/internal.h +19 -25
44 lines not on this page · raw message
fs/zonefs/file.c +27 -15
42 lines not on this page · raw message
fs/zonefs/super.c +38 -28
66 lines not on this page · raw message
kernel/sys.c +32 -18
50 lines not on this page · raw message
kernel/trace/trace.c +40 -38
78 lines not on this page · raw message
net/can/j1939/socket.c +30 -16
46 lines not on this page · raw message
net/netfilter/ipset/ip_set_bitmap_gen.h +11 -3
Lines of this file are not shown. View the raw message.
net/openvswitch/flow_netlink.c +33 -16
49 lines not on this page · raw message
net/tls/tls_sw.c +62 -73
135 lines not on this page · raw message
security/security.c +40 -5
45 lines not on this page · raw message
sound/soc/sof/ipc3-topology.c +41 -14
55 lines not on this page · raw message
tools/testing/selftests/dt/test_unprobed_devices.sh +7 -6
Lines of this file are not shown. View the raw message.
tools/testing/selftests/landlock/common.h +40 -8
48 lines not on this page · raw message
tools/testing/selftests/landlock/fs_test.c +8 -3
Lines of this file are not shown. View the raw message.
tools/testing/selftests/landlock/net_test.c +11 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mm/charge_reserved_hugetlb.sh +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mm/map_hugetlb.c +7 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mm/va_high_addr_switch.sh +6 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mm/write_hugetlb_memory.sh +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/forwarding/bridge_locked_port.sh +2 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/forwarding/bridge_mdb.sh +9 -5
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/forwarding/tc_flower_l2_miss.sh +6 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/mptcp/config +3 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/mptcp/mptcp_join.sh +2 -8
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/mptcp/mptcp_lib.sh +10 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/mptcp/settings +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/mptcp/userspace_pm.sh +11 -20
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/test_bridge_backup_port.sh +205 -189
394 lines not on this page · 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.