Skip to contentSkip to conversation

Linux 6.12.77

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Mar 13 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.12.77 kernel.

All users of the 6.12 kernel series must upgrade.

The updated 6.12.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.12.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/hwmon/aht10.rst                                      |   10 
 Makefile                                                           |    2 
 arch/Kconfig                                                       |    1 
 arch/arm/include/asm/string.h                                      |   14 
 arch/arm64/boot/dts/rockchip/rk3568.dtsi                           |    4 
 arch/arm64/boot/dts/rockchip/rk356x.dtsi                           |    2 
 arch/arm64/boot/dts/rockchip/rk3588-base.dtsi                      |    4 
 arch/arm64/boot/dts/rockchip/rk3588-extra.dtsi                     |    6 
 arch/arm64/kvm/sys_regs.c                                          |    3 
 arch/arm64/net/bpf_jit_comp.c                                      |    2 
 arch/loongarch/include/asm/setup.h                                 |    3 
 arch/loongarch/kernel/unwind_orc.c                                 |   32 
 arch/loongarch/kernel/unwind_prologue.c                            |    4 
 arch/loongarch/mm/tlb.c                                            |    1 
 arch/s390/include/asm/idle.h                                       |    1 
 arch/s390/kernel/idle.c                                            |   13 
 arch/s390/kernel/irq.c                                             |   10 
 arch/s390/kernel/vtime.c                                           |   18 
 arch/x86/entry/entry_fred.c                                        |    5 
 arch/x86/include/asm/efi.h                                         |    2 
 arch/x86/kernel/acpi/boot.c                                        |   12 
 arch/x86/kernel/cpu/topology.c                                     |   15 
 arch/x86/kvm/x86.c                                                 |    3 
 arch/x86/platform/efi/efi.c                                        |    2 
 arch/x86/platform/efi/quirks.c                                     |   55 
 drivers/acpi/apei/Makefile                                         |    4 
 drivers/ata/libata-core.c                                          |   18 
 drivers/ata/libata-eh.c                                            |   31 
 drivers/ata/libata-scsi.c                                          |  544 +++++--
 drivers/ata/libata.h                                               |   14 
 drivers/block/drbd/drbd_actlog.c                                   |   53 
 drivers/block/drbd/drbd_interval.h                                 |    5 
 drivers/block/drbd/drbd_req.c                                      |    3 
 drivers/clk/tegra/clk-tegra124-emc.c                               |    2 
 drivers/firmware/efi/mokvar-table.c                                |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c                            |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                         |    4 
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c                         |   32 
 drivers/gpu/drm/exynos/exynos_drm_vidi.c                           |   61 
 drivers/gpu/drm/logicvc/logicvc_drm.c                              |    4 
 drivers/gpu/drm/scheduler/sched_main.c                             |    1 
 drivers/gpu/drm/solomon/ssd130x.c                                  |    6 
 drivers/gpu/drm/tegra/dsi.c                                        |    6 
 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c                            |    4 
 drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c                         |    9 
 drivers/gpu/drm/xe/xe_reg_sr.c                                     |    4 
 drivers/gpu/drm/xe/xe_ring_ops.c                                   |    9 
 drivers/hid/hid-cmedia.c                                           |    2 
 drivers/hid/hid-creative-sb0540.c                                  |    2 
 drivers/hid/hid-ids.h                                              |    1 
 drivers/hid/hid-multitouch.c                                       |   83 +
 drivers/hid/hid-zydacron.c                                         |    2 
 drivers/hwmon/Kconfig                                              |    6 
 drivers/hwmon/aht10.c                                              |   21 
 drivers/hwmon/it87.c                                               |    5 
 drivers/hwmon/max16065.c                                           |   26 
 drivers/hwmon/max6639.c                                            |   83 -
 drivers/i2c/busses/i2c-i801.c                                      |   14 
 drivers/infiniband/hw/irdma/verbs.c                                |    2 
 drivers/infiniband/hw/mthca/mthca_provider.c                       |    5 
 drivers/input/mouse/synaptics_i2c.c                                |   13 
 drivers/iommu/intel/pasid.c                                        |    8 
 drivers/irqchip/irq-sifive-plic.c                                  |    7 
 drivers/mailbox/mailbox.c                                          |  132 -
 drivers/media/dvb-core/dmxdev.c                                    |    4 
 drivers/media/i2c/Kconfig                                          |    2 
 drivers/media/i2c/dw9714.c                                         |   56 
 drivers/memory/mtk-smi.c                                           |    3 
 drivers/net/arcnet/com20020-pci.c                                  |   16 
 drivers/net/bonding/bond_main.c                                    |    9 
 drivers/net/bonding/bond_options.c                                 |    2 
 drivers/net/can/spi/mcp251x.c                                      |   15 
 drivers/net/can/usb/ems_usb.c                                      |    7 
 drivers/net/can/usb/etas_es58x/es58x_core.c                        |    8 
 drivers/net/can/usb/f81604.c                                       |   45 
 drivers/net/can/usb/ucan.c                                         |    2 
 drivers/net/dsa/realtek/rtl8365mb.c                                |    2 
 drivers/net/ethernet/amd/xgbe/xgbe-common.h                        |    2 
 drivers/net/ethernet/amd/xgbe/xgbe-drv.c                           |   10 
 drivers/net/ethernet/amd/xgbe/xgbe-main.c                          |    1 
 drivers/net/ethernet/amd/xgbe/xgbe.h                               |    3 
 drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c                |    3 
 drivers/net/ethernet/intel/e1000e/defines.h                        |    1 
 drivers/net/ethernet/intel/e1000e/ich8lan.c                        |    9 
 drivers/net/ethernet/intel/i40e/i40e_main.c                        |   41 
 drivers/net/ethernet/intel/i40e/i40e_trace.h                       |    2 
 drivers/net/ethernet/intel/i40e/i40e_txrx.c                        |    5 
 drivers/net/ethernet/intel/iavf/iavf_main.c                        |   17 
 drivers/net/ethernet/intel/idpf/idpf_txrx.c                        |    2 
 drivers/net/ethernet/marvell/octeon_ep/octep_main.c                |   40 
 drivers/net/ethernet/marvell/octeon_ep/octep_rx.c                  |   27 
 drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_main.c          |   38 
 drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_rx.c            |   28 
 drivers/net/ethernet/mediatek/mtk_eth_soc.c                        |   15 
 drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c               |    2 
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c                  |   18 
 drivers/net/ethernet/ti/am65-cpsw-nuss.c                           |    2 
 drivers/net/ethernet/ti/cpsw_ale.c                                 |    9 
 drivers/net/ethernet/ti/icssg/icssg_prueth.c                       |    8 
 drivers/net/usb/kalmia.c                                           |    7 
 drivers/net/usb/kaweth.c                                           |   13 
 drivers/net/usb/pegasus.c                                          |   13 
 drivers/net/vxlan/vxlan_core.c                                     |    5 
 drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c               |    1 
 drivers/net/wireless/mediatek/mt76/mt7925/mac.c                    |    1 
 drivers/net/wireless/mediatek/mt76/mt7996/mac.c                    |    1 
 drivers/net/wireless/rsi/rsi_91x_mac80211.c                        |    2 
 drivers/net/wireless/st/cw1200/pm.c                                |    2 
 drivers/net/wireless/ti/wlcore/main.c                              |    4 
 drivers/nfc/pn533/usb.c                                            |    1 
 drivers/nvme/host/core.c                                           |    7 
 drivers/nvme/host/pr.c                                             |   10 
 drivers/of/kexec.c                                                 |   15 
 drivers/pci/controller/dwc/pcie-designware-ep.c                    |   38 
 drivers/pci/endpoint/pci-epc-core.c                                |  182 +-
 drivers/pci/probe.c                                                |    6 
 drivers/pinctrl/cirrus/pinctrl-cs42l43.c                           |    5 
 drivers/pinctrl/pinctrl-equilibrium.c                              |   31 
 drivers/platform/x86/dell/dell-wmi-base.c                          |    6 
 drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c |    1 
 drivers/platform/x86/thinkpad_acpi.c                               |    6 
 drivers/scsi/lpfc/lpfc_init.c                                      |    2 
 drivers/scsi/lpfc/lpfc_sli.c                                       |   36 
 drivers/scsi/lpfc/lpfc_sli4.h                                      |    3 
 drivers/scsi/pm8001/pm8001_sas.c                                   |    5 
 drivers/scsi/scsi_scan.c                                           |    1 
 drivers/staging/media/tegra-video/vi.c                             |   13 
 drivers/target/target_core_configfs.c                              |   15 
 drivers/ufs/core/ufshcd.c                                          |   18 
 drivers/usb/cdns3/core.c                                           |   11 
 drivers/xen/xen-acpi-processor.c                                   |    7 
 fs/btrfs/block-group.c                                             |   43 
 fs/btrfs/direct-io.c                                               |   16 
 fs/btrfs/disk-io.c                                                 |    6 
 fs/btrfs/inode.c                                                   |    2 
 fs/btrfs/misc.h                                                    |    7 
 fs/btrfs/scrub.c                                                   |    2 
 fs/btrfs/space-info.c                                              |   22 
 fs/btrfs/tree-checker.c                                            |    4 
 fs/btrfs/zoned.c                                                   |  271 +++
 fs/eventpoll.c                                                     |    5 
 fs/ext4/ext4.h                                                     |   43 
 fs/ext4/extents.c                                                  |   20 
 fs/ext4/mballoc-test.c                                             |    4 
 fs/ext4/mballoc.c                                                  |  718 +++++-----
 fs/ext4/mballoc.h                                                  |    9 
 fs/namespace.c                                                     |   20 
 fs/nfsd/nfsctl.c                                                   |    2 
 fs/smb/client/connect.c                                            |    1 
 fs/smb/client/smb2inode.c                                          |    4 
 fs/smb/client/smb2pdu.c                                            |   24 
 fs/smb/client/transport.c                                          |   21 
 fs/smb/server/mgmt/user_session.c                                  |    5 
 fs/smb/server/mgmt/user_session.h                                  |    1 
 fs/smb/server/smb2pdu.c                                            |   21 
 fs/squashfs/cache.c                                                |    3 
 fs/xattr.c                                                         |   35 
 include/linux/ima.h                                                |    4 
 include/linux/indirect_call_wrapper.h                              |   18 
 include/linux/ioport.h                                             |   32 
 include/linux/kexec.h                                              |    6 
 include/linux/libata.h                                             |    4 
 include/linux/mailbox_client.h                                     |    2 
 include/linux/mailbox_controller.h                                 |    9 
 include/linux/pci-epc.h                                            |   38 
 include/linux/platform_data/max6639.h                              |   15 
 include/linux/ring_buffer.h                                        |    1 
 include/linux/workqueue.h                                          |    8 
 include/net/act_api.h                                              |    1 
 include/net/bonding.h                                              |    1 
 include/net/ip_fib.h                                               |    2 
 include/net/netfilter/nf_tables.h                                  |    5 
 include/net/sch_generic.h                                          |   10 
 include/net/tc_act/tc_ife.h                                        |    4 
 include/net/xdp_sock_drv.h                                         |   24 
 include/net/xsk_buff_pool.h                                        |    3 
 include/uapi/linux/pci_regs.h                                      |    2 
 kernel/bpf/devmap.c                                                |   22 
 kernel/bpf/trampoline.c                                            |    4 
 kernel/cgroup/cpuset.c                                             |    2 
 kernel/events/core.c                                               |   42 
 kernel/events/uprobes.c                                            |   38 
 kernel/kexec_core.c                                                |   54 
 kernel/rseq.c                                                      |    5 
 kernel/trace/ring_buffer.c                                         |   21 
 kernel/trace/trace.c                                               |   13 
 kernel/trace/trace_events_trigger.c                                |    3 
 kernel/workqueue.c                                                 |   13 
 net/atm/lec.c                                                      |   26 
 net/bridge/br_device.c                                             |    2 
 net/bridge/br_input.c                                              |    2 
 net/can/bcm.c                                                      |    1 
 net/core/filter.c                                                  |    6 
 net/ipv4/sysctl_net_ipv4.c                                         |    5 
 net/ipv6/route.c                                                   |   11 
 net/mac80211/mesh.c                                                |    3 
 net/mac80211/mlme.c                                                |    3 
 net/netfilter/nf_tables_api.c                                      |    5 
 net/netfilter/nft_set_pipapo.c                                     |   51 
 net/netfilter/nft_set_pipapo.h                                     |    2 
 net/nfc/nci/core.c                                                 |   21 
 net/nfc/nci/data.c                                                 |   12 
 net/nfc/rawsock.c                                                  |   11 
 net/rds/tcp.c                                                      |   14 
 net/sched/act_ct.c                                                 |    6 
 net/sched/act_ife.c                                                |   93 -
 net/sched/cls_api.c                                                |    7 
 net/sched/sch_ets.c                                                |   12 
 net/sched/sch_fq.c                                                 |    1 
 net/wireless/core.c                                                |    1 
 net/wireless/radiotap.c                                            |    4 
 net/xdp/xsk.c                                                      |   28 
 net/xdp/xsk_buff_pool.c                                            |   15 
 rust/kernel/kunit.rs                                               |    8 
 security/apparmor/apparmorfs.c                                     |  225 +--
 security/apparmor/include/label.h                                  |   16 
 security/apparmor/include/lib.h                                    |   12 
 security/apparmor/include/match.h                                  |    1 
 security/apparmor/include/policy.h                                 |   10 
 security/apparmor/include/policy_ns.h                              |    2 
 security/apparmor/include/policy_unpack.h                          |   75 -
 security/apparmor/label.c                                          |   12 
 security/apparmor/match.c                                          |   58 
 security/apparmor/policy.c                                         |   77 -
 security/apparmor/policy_ns.c                                      |    2 
 security/apparmor/policy_unpack.c                                  |   49 
 security/integrity/ima/ima_kexec.c                                 |  148 +-
 sound/pci/hda/cs35l56_hda.c                                        |   14 
 sound/pci/hda/patch_conexant.c                                     |   11 
 sound/pci/hda/patch_realtek.c                                      |    2 
 sound/usb/endpoint.c                                               |    9 
 sound/usb/mixer_scarlett2.c                                        |   14 
 sound/usb/quirks.c                                                 |    2 
 sound/usb/validate.c                                               |    2 
 tools/testing/kunit/kunit_kernel.py                                |    6 
 tools/testing/kunit/kunit_tool_test.py                             |   26 
 tools/testing/selftests/arm64/abi/hwcap.c                          |    4 
 tools/testing/selftests/kselftest_harness.h                        |   15 
 tools/testing/selftests/net/mptcp/mptcp_join.sh                    |   13 
 tools/testing/selftests/net/mptcp/simult_flows.sh                  |   11 
 240 files changed, 3622 insertions(+), 1634 deletions(-)

Akhilesh Patil (1):
hwmon: (aht10) Add support for dht20

Al Viro (1):
xattr: switch to CLASS(fd)

Alban Bedel (1):
can: mcp251x: fix deadlock in error path of mcp251x_open

Alexandre Courbot (1):
rust: kunit: fix warning when !CONFIG_PRINTK

Allison Henderson (1):
net/rds: Fix circular locking dependency in rds_tcp_tune

Andrew Cooper (1):
x86/fred: Correct speculative safety in fred_extint()

Andrii Nakryiko (1):
uprobes: switch to RCU Tasks Trace flavor for better performance

Anup Patel (1):
mailbox: Allow controller specific mapping using fwnode

Ariel Silver (1):
wifi: mac80211: bounds-check link_id in ieee80211_ml_reconfiguration

Baokun Li (8):
ext4: add ext4_try_lock_group() to skip busy groups
ext4: factor out __ext4_mb_scan_group()
ext4: factor out ext4_mb_might_prefetch()
ext4: factor out ext4_mb_scan_group()
ext4: convert free groups order lists to xarrays
ext4: refactor choose group to scan group
ext4: implement linear-like traversal across order xarrays
ext4: fix potential null deref in ext4_mb_init()

Bart Van Assche (5):
drm/amdgpu: Unlock a mutex before destroying it drm/amdgpu: Fix locking bugs in error paths
hwmon: (it87) Check the it87_lock() return value
wifi: cw1200: Fix locking in error paths
wifi: wlcore: Fix a locking bug

Bjorn Helgaas (1):
PCI: Correct PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 value

Brad Spengler (1):
drm/vmwgfx: Fix invalid kref_put callback in vmw_bo_dirty_release

Breno Leitao (2):
ima: kexec: silence RCU list traversal warning
uprobes: Fix incorrect lockdep condition in filter_chain()

Brian Howard (1):
HID: multitouch: add quirks for Lenovo Yoga Book 9i

Brian Vazquez (1):
idpf: change IRQ naming to match netdev and ethtool queue numbering

Charles Haithcock (1):
i2c: i801: Revert "i2c: i801: replace acpi_lock with I2C bus lock"

Chintan Vankar (1):
net: ethernet: ti: am65-cpsw-nuss/cpsw-ale: Fix multicast entry handling in ALE table

Christian Brauner (1):
namespace: fix proc mount iteration

Christoph Böhmwalder (1):
drbd: fix null-pointer dereference on local read error

Damien Le Moal (13):
PCI: endpoint: Introduce pci_epc_function_is_valid()
PCI: endpoint: Introduce pci_epc_mem_map()/unmap()
PCI: dwc: endpoint: Implement the pci_epc_ops::align_addr() operation
ata: libata-scsi: Refactor ata_scsi_simulate()
ata: libata-scsi: Refactor ata_scsiop_read_cap()
ata: libata-scsi: Refactor ata_scsiop_maint_in()
ata: libata-scsi: Document all VPD page inquiry actors
ata: libata-scsi: Remove struct ata_scsi_args
ata: libata: Remove ATA_DFLAG_ZAC device flag
ata: libata: Introduce ata_port_eh_scheduled()
ata: libata-scsi: avoid Non-NCQ command starvation
ata: libata-core: fix cancellation of a port deferred qc work
ata: libata-eh: correctly handle deferred qc timeouts

Daniil Dulov (1):
wifi: cfg80211: cancel rfkill_block work in wiphy_unregister()

David Sterba (1):
btrfs: drop unused parameter fs_info from do_reclaim_sweep()

David Thomson (1):
xen/acpi-processor: fix _CST detection using undersized evaluation buffer

Davide Caratti (1):
net/sched: ets: fix divide by zero in the offload path

Eric Dumazet (2):
indirect_call_wrapper: do not reevaluate function pointer
net_sched: sch_fq: clear q->band_pkt_count[] in fq_reset()

Eric Naim (1):
ALSA: hda/realtek: Add quirk for Gigabyte G5 KF5 (2023)

Ethan Nelson-Moore (1):
net: arcnet: com20020-pci: fix support for 2.5Mbit cards

Felix Gu (2):
drm/logicvc: Fix device node reference leak in logicvc_drm_config_parse()
pinctrl: cirrus: cs42l43: Fix double-put in cs42l43_pin_probe()

Fernando Fernandez Mancera (2):
net: bridge: fix nd_tbl NULL dereference when IPv6 is disabled
net: vxlan: fix nd_tbl NULL dereference when IPv6 is disabled

Filipe Manana (2):
btrfs: get used bytes while holding lock at btrfs_reclaim_bgs_work()
btrfs: fix reclaimed bytes accounting after automatic block group reclaim

Florian Eckert (2):
pinctrl: equilibrium: rename irq_chip function callbacks
pinctrl: equilibrium: fix warning trace on load

Florian Westphal (1):
netfilter: nft_set_pipapo: split gc into unlink and reclaim phase

Francesco Lavra (1):
drm/solomon: Fix page start when updating rectangle in page addressing mode

Fuad Tabba (2):
KVM: arm64: Hide S1POE from guests when not supported by the host bpf, arm64: Force 8-byte alignment for JIT buffer to prevent atomic tearing

Geoffrey D. Bennett (3):
ALSA: scarlett2: Fix redeclaration of loop variable
ALSA: scarlett2: Fix DSP filter control array handling
ALSA: usb-audio: Remove VALIDATE_RATES quirk for Focusrite devices

Greg Kroah-Hartman (12):
nfc: pn533: properly drop the usb interface reference on disconnect
net: usb: kaweth: validate USB endpoints
net: usb: kalmia: validate USB endpoints
net: usb: pegasus: validate USB endpoints
can: ems_usb: ems_usb_read_bulk_callback(): check the proper length of a message
can: usb: f81604: correctly anchor the urb in the read bulk callback
can: ucan: Fix infinite loop from zero-length messages
can: usb: etas_es58x: correctly anchor the urb in the read bulk callback
can: usb: f81604: handle short interrupt urb messages properly
can: usb: f81604: handle bulk write errors properly
HID: Add HID_CLAIMED_INPUT guards in raw_event callbacks missing them Linux 6.12.77

Guenter Roeck (3):
dpaa2-switch: Fix interrupt storm after receiving bad if_id in IRQ handler
tracing: Add NULL pointer check to trigger_data_free()
ata: libata-eh: Fix detection of deferred qc timeouts

Gui-Dong Han (1):
hwmon: (max16065) Use READ/WRITE_ONCE to avoid compiler optimization induced race

Hao Yu (1):
hwmon: (aht10) Fix initialization commands for AHT20

Harshit Mogalapalli (2):
ima: verify the previous kernel's IMA buffer lies in addressable RAM of/kexec: refactor ima_get_kexec_buffer() to use ima_validate_range()

Heiko Carstens (2):
s390/idle: Fix cpu idle exit cpu time accounting s390/vtime: Fix virtual timer forwarding

Henrique Carvalho (1):
smb: client: fix cifs_pick_channel when channels are equally loaded

Hongyu Xie (1):
usb: cdns3: remove redundant if branch

Huacai Chen (1):
net: stmmac: dwmac-loongson: Set clk_csr_i to 100-150MHz

Ian Forbes (1):
drm/vmwgfx: Return the correct value in vmw_translate_ptr functions

Ian Ray (2):
HID: multitouch: new class MT_CLS_EGALAX_P80H84
net: nfc: nci: Fix zero-length proprietary notifications

Ilpo Järvinen (2):
resource: Add resource set range and size helpers
PCI: Use resource_set_range() that correctly sets ->end

Jakub Kicinski (4):
ipv6: fix NULL pointer deref in ip6_rt_get_dev_rcu()
nfc: nci: free skb on nci_transceive early error paths
nfc: nci: clear NCI_DATA_EXCHANGE before calling completion callback
nfc: rawsock: cancel tx_work before socket teardown

Jamal Hadi Salim (1):
net/sched: act_ife: Fix metalist update behavior

Jan Kara (1):
ext4: always allocate blocks only from groups inode can use

Jann Horn (1):
eventpoll: Fix integer overflow in ep_loop_check_proc()

Jason Gunthorpe (2):
IB/mthca: Add missed mthca_unmap_user_db() for mthca_create_srq() RDMA/irdma: Fix kernel stack leak in irdma_create_user_ah()

Jens Axboe (1):
media: dvb-core: fix wrong reinitialization of ringbuffer on reopen

Jeongjun Park (2):
drm/exynos: vidi: fix to avoid directly dereferencing user pointer
drm/exynos: vidi: use ctx->lock to protect struct vidi_context member variables related to memory alloc/free

Jiayuan Chen (3):
atm: lec: fix null-ptr-deref in lec_arp_clear_vccs bpf/bonding: reject vlan+srcmac xmit_hash_policy change when XDP is loaded
net: ipv6: fix panic when IPv4 route references loopback IPv6 nexthop

Jinhui Guo (1):
iommu/vt-d: Skip dev-iotlb flush for inaccessible PCIe device without scalable mode

Johan Hovold (4):
memory: mtk-smi: fix device leaks on common probe
memory: mtk-smi: fix device leak on larb probe drm/tegra: dsi: fix device leak on probe
clk: tegra: tegra124-emc: fix device leak on set_rate()

Johannes Berg (1):
wifi: radiotap: reject radiotap with unknown bits

Johannes Thumshirn (1):
btrfs: zoned: fix alloc_offset calculation for partly conventional block groups

John Johansen (6):
apparmor: fix: limit the number of levels of policy namespaces
apparmor: Fix double free of ns_name in aa_replace_profiles()
apparmor: fix unprivileged local user can do privileged policy management
apparmor: fix differential encoding verification
apparmor: fix race on rawdata dereference
apparmor: fix race between freeing data and fs accessing it

Jonathan Teh (1):
platform/x86: thinkpad_acpi: Fix errors reading battery thresholds

Joonwon Kang (1):
mailbox: Prevent out-of-bounds access in fw_mbox_index_xlate()

Jun Seo (1):
ALSA: usb-audio: Use correct version for UAC3 header validation

Junxiao Bi (1):
scsi: core: Fix refcount leak for tagset_refcnt

Kohei Enju (2):
bpf: Fix stack-out-of-bounds write in devmap
iavf: fix netdev->max_mtu to respect actual hardware limit

Koichiro Den (1):
net: sched: avoid qdisc_reset_all_tx_gt() vs dequeue race for lockless qdiscs

Krishna chaitanya chundru (1):
PCI: qcom: Don't wait for link if we can detect Link Up

Kuninori Morimoto (1):
ALSA: pci: hda: use snd_kcontrol_chip()

Kuniyuki Iwashima (1):
nfsd: Fix cred ref leak in nfsd_nl_threads_set_doit().

Kurt Borja (1):
platform/x86: dell-wmi: Add audio/mic mute key codes

Lang Xu (1):
bpf: Fix a UAF issue in bpf_trampoline_link_cgroup_shim

Lars Ellenberg (1):
drbd: fix "LOGIC BUG" in drbd_al_begin_io_nonblock()

Larysa Zaremba (5):
xdp: use modulo operation to calculate XDP frag tailroom
xsk: introduce helper to determine rxq->frag_size
i40e: fix registering XDP RxQ info
i40e: use xdp.frame_sz as XDP RxQ info frag_size
xdp: produce a warning when calculated tailroom is negative

Lewis Mason (1):
ALSA: hda/realtek: Add quirk for Samsung Galaxy Book3 Pro 360 (NP965QFG)

Lorenzo Bianconi (4):

      wifi: mt76: mt7996: Fix possible oob access in mt7996_mac_write_txwi_80211()
      wifi: mt76: mt7925: Fix possible oob access in mt7925_mac_write_txwi_80211()
      wifi: mt76: Fix possible oob access in mt76_connac2_mac_write_txwi_80211()
      net: ethernet: mtk_eth_soc: Reset prog ptr to old_prog in case of error in mtk_xdp_setup()

MD Danish Anwar (1):
net: ti: icssg-prueth: Fix ping failure after offload mode setup when link speed is not 1G

Maciej Fijalkowski (2):
xsk: Get rid of xdp_buff_xsk::xskb_list_node
xsk: s/free_list_node/list_node/

Marco Crivellari (2):
workqueue: Add system_percpu_wq and system_dfl_wq
Input: synaptics_i2c - replace use of system_wq with system_dfl_wq

Mario Limonciello (1):
drm/amd: Fix hang on amdgpu unload by using pci_dev_is_disconnected()

Mark Harmstone (5):
btrfs: fix incorrect key offset in error message in check_dev_extent_item()
btrfs: fix objectid value in error message in check_extent_data_ref()
btrfs: fix warning in scrub_verify_one_metadata()
btrfs: print correct subvol num if active swapfile prevents deletion
btrfs: fix compat mask in error messages in btrfs_check_features()

Massimiliano Pellizzer (5):
apparmor: validate DFA start states are in bounds in unpack_pdb
apparmor: fix memory leak in verify_header
apparmor: replace recursive profile removal with iterative approach
apparmor: fix side-effect bug in match_char() macro usage
apparmor: fix missing bounds check on DEFAULT table in verify_dfa()

Mathias Krause (1):
scsi: lpfc: Properly set WC for DPP mapping

Mathieu Desnoyers (1):
rseq: Clarify rseq registration rseq_size bound check comment

Matthew Brost (1):
drm/xe: Do not preempt fence signaling CS instructions

Matthias Fend (2):
media: dw9714: move power sequences to dedicated functions
media: dw9714: add support for powerdown pin

Matthieu Baerts (NGI0) (1):
selftests: mptcp: join: check removing signal+subflow endp

Mieczyslaw Nalewaj (1):
net: dsa: realtek: rtl8365mb: fix rtl8365mb_phy_ocp_write return value

Mike Rapoport (Microsoft) (1):
x86/efi: defer freeing of boot services memory

Ming Lei (1):
nvme: fix admin queue leak on controller reset

Minseong Kim (1):
Input: synaptics_i2c - guard polling restart in resume

Miquel Sabaté Solà (1):
btrfs: define the AUTO_KFREE/AUTO_KVFREE helper macros

Nam Cao (1):
irqchip/sifive-plic: Fix frozen interrupt due to affinity setting

Namjae Jeon (2):
ksmbd: check return value of xa_store() in krb5_authenticate
ksmbd: add chann_lock to protect ksmbd_chann_list xarray

Naohiro Aota (4):
btrfs: zoned: fixup last alloc pointer after extent removal for RAID1
btrfs: zoned: fixup last alloc pointer after extent removal for DUP
btrfs: zoned: fix stripe width calculation
btrfs: zoned: fixup last alloc pointer after extent removal for RAID0/10

Naresh Solanki (1):
hwmon: (max6639) : Configure based on DT property

Nathan Chancellor (1):
ACPI: APEI: GHES: Disable KASAN instrumentation when compile testing with clang < 18

Nikhil P. Rao (2):
xsk: Fix fragment node deletion to prevent buffer leak
xsk: Fix zero-copy AF_XDP fragment drop

Niklas Cassel (6):
PCI: dwc: ep: Use align addr function for dw_pcie_ep_raise_{msi,msix}_irq()
PCI: dwc: ep: Flush MSI-X write before unmapping its ATU entry
PCI: dw-rockchip: Don't wait for link since we can detect Link Up Revert "PCI: dw-rockchip: Don't wait for link since we can detect Link Up" Revert "PCI: qcom: Don't wait for link if we can detect Link Up"
ata: libata: cancel pending work after clearing deferred_qc

Oliver Hartkopp (1):
can: bcm: fix locking for bcm_op runtime updates

Olivier Sobrie (1):
hwmon: (max6639) fix inverted polarity

Ovidiu Panait (1):
net: stmmac: Fix error handling in VLAN add and delete paths

Paolo Abeni (1):
selftests: mptcp: more stable simult_flows tests

Paulo Alcantara (1):
smb: client: fix broken multichannel with krb5+signing

Peng Fan (2):
mailbox: Use dev_err when there is error
mailbox: Use guard/scoped_guard for con_mutex

Peter Wang (1):
scsi: ufs: core: Move link recovery for hibern8 exit failure to wl_resume

Peter Zijlstra (1):
perf: Fix __perf_event_overflow() vs perf_remove_from_context() race

Phillip Lougher (1):
Squashfs: check metadata block offset is within range

Prithvi Tambewagh (1):
scsi: target: Fix recursive locking in __configfs_open_file()

Qing Wang (1):
tracing: Fix WARN_ON in tracing_buffers_mmap_close

Qu Wenruo (1):
btrfs: always fallback to buffered write if the inode requires checksum

Raju Rangoju (2):
amd-xgbe: fix MAC_TCR_SS register width for 2.5G and 10M speeds
amd-xgbe: fix sleep while atomic on suspend/resume

Ricardo Ribalda (1):
media: dw9714: Fix powerup sequence

Richard Fitzgerald (1):
ALSA: hda: cs35l56: Fix signedness error in cs35l56_hda_posture_put()

Salomon Dushimirimana (1):

      scsi: pm8001: Fix use-after-free in pm8001_queue_command()

Sean Christopherson (1):
KVM: x86: Ignore -EBUSY when checking nested events from vcpu_block()

Sebastian Andrzej Siewior (1):
LoongArch/orc: Use RCU in all users of __module_address().

Sebastian Krzyszkowiak (1):
wifi: rsi: Don't default to -EOPNOTSUPP in rsi_mac80211_config

Shawn Lin (2):
arm64: dts: rockchip: Fix rk356x PCIe range mappings
arm64: dts: rockchip: Fix rk3588 PCIe range mappings

Shuicheng Lin (1):
drm/xe/reg_sr: Fix leak on xa_store failure

Shuvam Pandey (1):
kunit: tool: copy caller args in run_kernel to prevent mutation

Stefan Hajnoczi (1):
nvme: reject invalid pr_read_keys() num_keys values

Steven Chen (4):
ima: rename variable the seq_file "file" to "ima_kexec_file"
ima: define and call ima_alloc_kexec_file_buf()
kexec: define functions to map and unmap segments
ima: kexec: define functions to copy IMA log at soft boot

Sun Jian (1):
selftests/harness: order TEST_F and XFAIL_ADD constructors

Sun YangKai (1):
btrfs: fix periodic reclaim condition

Sungwoo Kim (1):
nvme: fix memory allocation in nvme_pr_read_keys()

Takashi Iwai (4):
ALSA: usb-audio: Cap the packet size pre-calculations
ALSA: usb-audio: Use inclusive terms
ALSA: hda/conexant: Add quirk for HP ZBook Studio G4
ALSA: hda/conexant: Fix headphone jack handling on Acer Swift SF314

Thomas Gleixner (1):
i40e: Fix preempt count leak in napi poll tracepoint

Thomas Richard (TI) (1):
usb: cdns3: fix role switching during resume

Thomas Weißschuh (1):
ARM: clean up the memset64() C wrapper

Thorsten Blum (3):
drm/amdgpu: Replace kzalloc + copy_from_user with memdup_user platform/x86: dell-wmi-sysman: Don't hex dump plaintext password data
smb: client: Don't log plaintext credentials in cifs_set_cifscreds

Théo Lebrun (1):
usb: cdns3: call cdns_power_is_lost() only once in cdns_resume()

Tiezhu Yang (3):
LoongArch: Remove unnecessary checks for ORC unwinder
LoongArch: Handle percpu handler address for ORC unwinder
LoongArch: Remove some extern variables in source files

Tudor Ambarus (3):
mailbox: don't protect of_parse_phandle_with_args with con_mutex
mailbox: sort headers alphabetically
mailbox: remove unused header files

Vahagn Vardanian (1):
wifi: mac80211: fix NULL pointer dereference in mesh_rx_csa_frame()

Victor Nogueira (1):
net/sched: Only allow act_ct to bind to clsact/ingress qdiscs and shared blocks

Vimlesh Kumar (4):
octeon_ep: Relocate counter updates before NAPI
octeon_ep: avoid compiler and IQ/OQ reordering
octeon_ep_vf: Relocate counter updates before NAPI
octeon_ep_vf: avoid compiler and IQ/OQ reordering

Vitaly Lifshits (1):
e1000e: clear DPG_EN after reset to avoid autonomous power-gating

Waiman Long (1):
cgroup/cpuset: Fix incorrect use of cpuset_update_tasks_cpumask() in update_cpumasks_hier()

Wake Liu (1):
kselftest/harness: Use helper to avoid zero-size memset warning

Wentao Liang (1):
drm/exynos/vidi: Remove redundant error handling in vidi_get_modes()

Yang Erkun (1):
ext4: correct the comments place for EXT4_EXT_MAY_ZEROOUT

Yazen Ghannam (1):
x86/acpi/boot: Correct acpi_is_processor_usable() check again

Yifan Wu (1):
selftest/arm64: Fix sve2p1_sigill() to hwcap test

Yujie Liu (1):
drm/sched: Fix kernel-doc warning for drm_sched_job_done()

Yung Chih Su (1):
net: ipv4: fix ARM64 alignment fault in multipath hash seed

Zhang Yi (1):
ext4: don't set EXT4_GET_BLOCKS_CONVERT when splitting before submitting I/O

ZhangGuoDong (2):
smb/client: fix buffer size for smb311_posix_qinfo in smb2_compound_op() smb/client: fix buffer size for smb311_posix_qinfo in SMB311_posix_query_info()

Zilin Guan (1):
media: tegra-video: Fix memory leak in __tegra_channel_try_format()

author maintainer
#1 lore raw
Documentation/hwmon/aht10.rst +9 -1
index 213644b4ecba..7903b6434326 100644
@@ -20,6 +20,14 @@ Supported chips:
 
       English: http://www.aosong.com/userfiles/files/media/Data%20Sheet%20AHT20.pdf
 
+  * Aosong DHT20
+
+    Prefix: 'dht20'
+
+    Addresses scanned: None
+
+    Datasheet: https://www.digikey.co.nz/en/htmldatasheets/production/9184855/0/0/1/101020932
+
 Author: Johannes Cornelis Draaijer <[email protected]>
 
 
@@ -33,7 +41,7 @@ The address of this i2c device may only be 0x38
 Special Features
 ----------------
 
-AHT20 has additional CRC8 support which is sent as the last byte of the sensor
+AHT20, DHT20 has additional CRC8 support which is sent as the last byte of the sensor
 values.
 
 Usage Notes
Makefile +1 -1
index ae059d188511..930fcea203d7 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 12
-SUBLEVEL = 76
+SUBLEVEL = 77
 EXTRAVERSION =
 NAME = Baby Opossum Posse
 
arch/Kconfig +1 -0
index 593452b43dd4..1812e4e4d714 100644
@@ -135,6 +135,7 @@ config KPROBES_ON_FTRACE
 config UPROBES
 	def_bool n
 	depends on ARCH_SUPPORTS_UPROBES
+	select TASKS_TRACE_RCU
 	help
 	  Uprobes is the user-space counterpart to kprobes: they
 	  enable instrumentation applications (such as 'perf probe')
arch/arm/include/asm/string.h +9 -5
index c35250c4991b..96fc6cf460ec 100644
@@ -39,13 +39,17 @@ static inline void *memset32(uint32_t *p, uint32_t v, __kernel_size_t n)
 }
 
 #define __HAVE_ARCH_MEMSET64
-extern void *__memset64(uint64_t *, uint32_t low, __kernel_size_t, uint32_t hi);
+extern void *__memset64(uint64_t *, uint32_t first, __kernel_size_t, uint32_t second);
 static inline void *memset64(uint64_t *p, uint64_t v, __kernel_size_t n)
 {
-	if (IS_ENABLED(CONFIG_CPU_LITTLE_ENDIAN))
-		return __memset64(p, v, n * 8, v >> 32);
-	else
-		return __memset64(p, v >> 32, n * 8, v);
+	union {
+		uint64_t val;
+		struct {
+			uint32_t first, second;
+		};
+	} word = { .val = v };
+
+	return __memset64(p, word.first, n * 8, word.second);
 }
 
 /*
arch/arm64/boot/dts/rockchip/rk3568.dtsi +2 -2
index 6fd67ae27117..0d16f74949b6 100644
@@ -97,7 +97,7 @@ pcie3x1: pcie@fe270000 {
 		      <0x0 0xf2000000 0x0 0x00100000>;
 		ranges = <0x01000000 0x0 0xf2100000 0x0 0xf2100000 0x0 0x00100000>,
 			 <0x02000000 0x0 0xf2200000 0x0 0xf2200000 0x0 0x01e00000>,
-			 <0x03000000 0x0 0x40000000 0x3 0x40000000 0x0 0x40000000>;
+			 <0x03000000 0x3 0x40000000 0x3 0x40000000 0x0 0x40000000>;
 		reg-names = "dbi", "apb", "config";
 		resets = <&cru SRST_PCIE30X1_POWERUP>;
 		reset-names = "pipe";
@@ -150,7 +150,7 @@ pcie3x2: pcie@fe280000 {
 		      <0x0 0xf0000000 0x0 0x00100000>;
 		ranges = <0x01000000 0x0 0xf0100000 0x0 0xf0100000 0x0 0x00100000>,
 			 <0x02000000 0x0 0xf0200000 0x0 0xf0200000 0x0 0x01e00000>,
-			 <0x03000000 0x0 0x40000000 0x3 0x80000000 0x0 0x40000000>;
+			 <0x03000000 0x3 0x80000000 0x3 0x80000000 0x0 0x40000000>;
 		reg-names = "dbi", "apb", "config";
 		resets = <&cru SRST_PCIE30X2_POWERUP>;
 		reset-names = "pipe";
arch/arm64/boot/dts/rockchip/rk356x.dtsi +1 -1
index bc0f57a26c2f..32ccc5755554 100644
@@ -1045,7 +1045,7 @@ pcie2x1: pcie@fe260000 {
 		power-domains = <&power RK3568_PD_PIPE>;
 		ranges = <0x01000000 0x0 0xf4100000 0x0 0xf4100000 0x0 0x00100000>,
 			 <0x02000000 0x0 0xf4200000 0x0 0xf4200000 0x0 0x01e00000>,
-			 <0x03000000 0x0 0x40000000 0x3 0x00000000 0x0 0x40000000>;
+			 <0x03000000 0x3 0x00000000 0x3 0x00000000 0x0 0x40000000>;
 		resets = <&cru SRST_PCIE20_POWERUP>;
 		reset-names = "pipe";
 		#address-cells = <3>;
arch/arm64/boot/dts/rockchip/rk3588-base.dtsi +2 -2
index ad4331bc0780..68801eb5713d 100644
@@ -1650,7 +1650,7 @@ pcie2x1l1: pcie@fe180000 {
 		power-domains = <&power RK3588_PD_PCIE>;
 		ranges = <0x01000000 0x0 0xf3100000 0x0 0xf3100000 0x0 0x00100000>,
 			 <0x02000000 0x0 0xf3200000 0x0 0xf3200000 0x0 0x00e00000>,
-			 <0x03000000 0x0 0x40000000 0x9 0xc0000000 0x0 0x40000000>;
+			 <0x03000000 0x9 0xc0000000 0x9 0xc0000000 0x0 0x40000000>;
 		reg = <0xa 0x40c00000 0x0 0x00400000>,
 		      <0x0 0xfe180000 0x0 0x00010000>,
 		      <0x0 0xf3000000 0x0 0x00100000>;
@@ -1701,7 +1701,7 @@ pcie2x1l2: pcie@fe190000 {
 		power-domains = <&power RK3588_PD_PCIE>;
 		ranges = <0x01000000 0x0 0xf4100000 0x0 0xf4100000 0x0 0x00100000>,
 			 <0x02000000 0x0 0xf4200000 0x0 0xf4200000 0x0 0x00e00000>,
-			 <0x03000000 0x0 0x40000000 0xa 0x00000000 0x0 0x40000000>;
+			 <0x03000000 0xa 0x00000000 0xa 0x00000000 0x0 0x40000000>;
 		reg = <0xa 0x41000000 0x0 0x00400000>,
 		      <0x0 0xfe190000 0x0 0x00010000>,
 		      <0x0 0xf4000000 0x0 0x00100000>;
arch/arm64/boot/dts/rockchip/rk3588-extra.dtsi +3 -3
index 0ce0934ec6b7..8af2e5b59e1a 100644
@@ -168,7 +168,7 @@ pcie3x4: pcie@fe150000 {
 		power-domains = <&power RK3588_PD_PCIE>;
 		ranges = <0x01000000 0x0 0xf0100000 0x0 0xf0100000 0x0 0x00100000>,
 			 <0x02000000 0x0 0xf0200000 0x0 0xf0200000 0x0 0x00e00000>,
-			 <0x03000000 0x0 0x40000000 0x9 0x00000000 0x0 0x40000000>;
+			 <0x03000000 0x9 0x00000000 0x9 0x00000000 0x0 0x40000000>;
 		reg = <0xa 0x40000000 0x0 0x00400000>,
 		      <0x0 0xfe150000 0x0 0x00010000>,
 		      <0x0 0xf0000000 0x0 0x00100000>;
@@ -254,7 +254,7 @@ pcie3x2: pcie@fe160000 {
 		power-domains = <&power RK3588_PD_PCIE>;
 		ranges = <0x01000000 0x0 0xf1100000 0x0 0xf1100000 0x0 0x00100000>,
 			 <0x02000000 0x0 0xf1200000 0x0 0xf1200000 0x0 0x00e00000>,
-			 <0x03000000 0x0 0x40000000 0x9 0x40000000 0x0 0x40000000>;
+			 <0x03000000 0x9 0x40000000 0x9 0x40000000 0x0 0x40000000>;
 		reg = <0xa 0x40400000 0x0 0x00400000>,
 		      <0x0 0xfe160000 0x0 0x00010000>,
 		      <0x0 0xf1000000 0x0 0x00100000>;
@@ -303,7 +303,7 @@ pcie2x1l0: pcie@fe170000 {
 		power-domains = <&power RK3588_PD_PCIE>;
 		ranges = <0x01000000 0x0 0xf2100000 0x0 0xf2100000 0x0 0x00100000>,
 			 <0x02000000 0x0 0xf2200000 0x0 0xf2200000 0x0 0x00e00000>,
-			 <0x03000000 0x0 0x40000000 0x9 0x80000000 0x0 0x40000000>;
+			 <0x03000000 0x9 0x80000000 0x9 0x80000000 0x0 0x40000000>;
 		reg = <0xa 0x40800000 0x0 0x00400000>,
 		      <0x0 0xfe170000 0x0 0x00010000>,
 		      <0x0 0xf2000000 0x0 0x00100000>;
arch/arm64/kvm/sys_regs.c +3 -0
index 5c09c788aaa6..94ba3bfca2ba 100644
@@ -1561,6 +1561,9 @@ static u64 __kvm_read_sanitised_id_reg(const struct kvm_vcpu *vcpu,
 	case SYS_ID_AA64MMFR3_EL1:
 		val &= ID_AA64MMFR3_EL1_TCRX | ID_AA64MMFR3_EL1_S1POE |
 			ID_AA64MMFR3_EL1_S1PIE;
+
+		if (!system_supports_poe())
+			val &= ~ID_AA64MMFR3_EL1_S1POE;
 		break;
 	case SYS_ID_MMFR4_EL1:
 		val &= ~ARM64_FEATURE_MASK(ID_MMFR4_EL1_CCIDX);
arch/arm64/net/bpf_jit_comp.c +1 -1
index 82b57436f2f1..9310196e0a09 100644
@@ -1880,7 +1880,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
 	extable_offset = round_up(prog_size + PLT_TARGET_SIZE, extable_align);
 	image_size = extable_offset + extable_size;
 	ro_header = bpf_jit_binary_pack_alloc(image_size, &ro_image_ptr,
-					      sizeof(u32), &header, &image_ptr,
+					      sizeof(u64), &header, &image_ptr,
 					      jit_fill_hole);
 	if (!ro_header) {
 		prog = orig_prog;
arch/loongarch/include/asm/setup.h +3 -0
index 3c2fb16b11b6..f81375e5e89c 100644
@@ -7,6 +7,7 @@
 #define _LOONGARCH_SETUP_H
 
 #include <linux/types.h>
+#include <linux/threads.h>
 #include <asm/sections.h>
 #include <uapi/asm/setup.h>
 
@@ -14,6 +15,8 @@
 
 extern unsigned long eentry;
 extern unsigned long tlbrentry;
+extern unsigned long pcpu_handlers[NR_CPUS];
+extern long exception_handlers[VECSIZE * 128 / sizeof(long)];
 extern char init_command_line[COMMAND_LINE_SIZE];
 extern void tlb_init(int cpu);
 extern void cpu_cache_init(void);
arch/loongarch/kernel/unwind_orc.c +19 -13
index 471652c0c865..e8b95f1bc578 100644
@@ -357,13 +357,21 @@ static bool is_entry_func(unsigned long addr)
 
 static inline unsigned long bt_address(unsigned long ra)
 {
-	extern unsigned long eentry;
+#if defined(CONFIG_NUMA) && !defined(CONFIG_PREEMPT_RT)
+	int cpu;
+	int vec_sz = sizeof(exception_handlers);
 
-	if (__kernel_text_address(ra))
-		return ra;
+	for_each_possible_cpu(cpu) {
+		if (!pcpu_handlers[cpu])
+			continue;
 
-	if (__module_text_address(ra))
-		return ra;
+		if (ra >= pcpu_handlers[cpu] &&
+		    ra < pcpu_handlers[cpu] + vec_sz) {
+			ra = ra + eentry - pcpu_handlers[cpu];
+			break;
+		}
+	}
+#endif
 
 	if (ra >= eentry && ra < eentry +  EXCCODE_INT_END * VECSIZE) {
 		unsigned long func;
@@ -382,10 +390,13 @@ static inline unsigned long bt_address(unsigned long ra)
 			break;
 		}
 
-		return func + offset;
+		ra = func + offset;
 	}
 
-	return ra;
+	if (__kernel_text_address(ra))
+		return ra;
+
+	return 0;
 }
 
 bool unwind_next_frame(struct unwind_state *state)
@@ -399,7 +410,7 @@ bool unwind_next_frame(struct unwind_state *state)
 		return false;
 
 	/* Don't let modules unload while we're reading their ORC data. */
-	preempt_disable();
+	guard(rcu)();
 
 	if (is_entry_func(state->pc))
 		goto end;
@@ -511,17 +522,12 @@ bool unwind_next_frame(struct unwind_state *state)
 		goto err;
 	}
 
-	if (!__kernel_text_address(state->pc))
-		goto err;
-
-	preempt_enable();
 	return true;
 
 err:
 	state->error = true;
 
 end:
-	preempt_enable();
 	state->stack_info.type = STACK_TYPE_UNKNOWN;
 	return false;
 }
arch/loongarch/kernel/unwind_prologue.c +0 -4
index c9ee6892d81c..d4c42dc67134 100644
@@ -22,10 +22,6 @@ extern const int unwind_hint_lasx;
 extern const int unwind_hint_lbt;
 extern const int unwind_hint_ri;
 extern const int unwind_hint_watch;
-extern unsigned long eentry;
-#ifdef CONFIG_NUMA
-extern unsigned long pcpu_handlers[NR_CPUS];
-#endif
 
 static inline bool scan_handlers(unsigned long entry_offset)
 {
arch/loongarch/mm/tlb.c +0 -1
index f46c15d6e7ea..24add95ecb65 100644
@@ -260,7 +260,6 @@ static void output_pgtable_bits_defines(void)
 #ifdef CONFIG_NUMA
 unsigned long pcpu_handlers[NR_CPUS];
 #endif
-extern long exception_handlers[VECSIZE * 128 / sizeof(long)];
 
 static void setup_tlb_handler(int cpu)
 {
arch/s390/include/asm/idle.h +1 -0
index 09f763b9eb40..133059d9a949 100644
@@ -23,5 +23,6 @@ extern struct device_attribute dev_attr_idle_count;
 extern struct device_attribute dev_attr_idle_time_us;
 
 void psw_idle(struct s390_idle_data *data, unsigned long psw_mask);
+void update_timer_idle(void);
 
 #endif /* _S390_IDLE_H */
arch/s390/kernel/idle.c +9 -4
index 39cb8d0ae348..0f9e53f0a068 100644
@@ -21,11 +21,10 @@
 
 static DEFINE_PER_CPU(struct s390_idle_data, s390_idle);
 
-void account_idle_time_irq(void)
+void update_timer_idle(void)
 {
 	struct s390_idle_data *idle = this_cpu_ptr(&s390_idle);
 	struct lowcore *lc = get_lowcore();
-	unsigned long idle_time;
 	u64 cycles_new[8];
 	int i;
 
@@ -35,13 +34,19 @@ void account_idle_time_irq(void)
 			this_cpu_add(mt_cycles[i], cycles_new[i] - idle->mt_cycles_enter[i]);
 	}
 
-	idle_time = lc->int_clock - idle->clock_idle_enter;
-
 	lc->steal_timer += idle->clock_idle_enter - lc->last_update_clock;
 	lc->last_update_clock = lc->int_clock;
 
 	lc->system_timer += lc->last_update_timer - idle->timer_idle_enter;
 	lc->last_update_timer = lc->sys_enter_timer;
+}
+
+void account_idle_time_irq(void)
+{
+	struct s390_idle_data *idle = this_cpu_ptr(&s390_idle);
+	unsigned long idle_time;
+
+	idle_time = get_lowcore()->int_clock - idle->clock_idle_enter;
 
 	/* Account time spent with enabled wait psw loaded as idle time. */
 	WRITE_ONCE(idle->idle_time, READ_ONCE(idle->idle_time) + idle_time);
arch/s390/kernel/irq.c +8 -2
index 2639a3d12736..1fe941dc86c3 100644
@@ -140,6 +140,10 @@ void noinstr do_io_irq(struct pt_regs *regs)
 	struct pt_regs *old_regs = set_irq_regs(regs);
 	bool from_idle;
 
+	from_idle = test_and_clear_cpu_flag(CIF_ENABLED_WAIT);
+	if (from_idle)
+		update_timer_idle();
+
 	irq_enter_rcu();
 
 	if (user_mode(regs)) {
@@ -148,7 +152,6 @@ void noinstr do_io_irq(struct pt_regs *regs)
 			current->thread.last_break = regs->last_break;
 	}
 
-	from_idle = test_and_clear_cpu_flag(CIF_ENABLED_WAIT);
 	if (from_idle)
 		account_idle_time_irq();
 
@@ -176,6 +179,10 @@ void noinstr do_ext_irq(struct pt_regs *regs)
 	struct pt_regs *old_regs = set_irq_regs(regs);
 	bool from_idle;
 
+	from_idle = test_and_clear_cpu_flag(CIF_ENABLED_WAIT);
+	if (from_idle)
+		update_timer_idle();
+
 	irq_enter_rcu();
 
 	if (user_mode(regs)) {
@@ -188,7 +195,6 @@ void noinstr do_ext_irq(struct pt_regs *regs)
 	regs->int_parm = get_lowcore()->ext_params;
 	regs->int_parm_long = get_lowcore()->ext_params2;
 
-	from_idle = test_and_clear_cpu_flag(CIF_ENABLED_WAIT);
 	if (from_idle)
 		account_idle_time_irq();
 
arch/s390/kernel/vtime.c +2 -16
index 234a0ba30510..122d30b10440 100644
@@ -225,10 +225,6 @@ static u64 vtime_delta(void)
 	return timer - lc->last_update_timer;
 }
 
-/*
- * Update process times based on virtual cpu times stored by entry.S
- * to the lowcore fields user_timer, system_timer & steal_clock.
- */
 void vtime_account_kernel(struct task_struct *tsk)
 {
 	struct lowcore *lc = get_lowcore();
@@ -238,27 +234,17 @@ void vtime_account_kernel(struct task_struct *tsk)
 		lc->guest_timer += delta;
 	else
 		lc->system_timer += delta;
-
-	virt_timer_forward(delta);
 }
 EXPORT_SYMBOL_GPL(vtime_account_kernel);
 
 void vtime_account_softirq(struct task_struct *tsk)
 {
-	u64 delta = vtime_delta();
-
-	get_lowcore()->softirq_timer += delta;
-
-	virt_timer_forward(delta);
+	get_lowcore()->softirq_timer += vtime_delta();
 }
 
 void vtime_account_hardirq(struct task_struct *tsk)
 {
-	u64 delta = vtime_delta();
-
-	get_lowcore()->hardirq_timer += delta;
-
-	virt_timer_forward(delta);
+	get_lowcore()->hardirq_timer += vtime_delta();
 }
 
 /*
arch/x86/entry/entry_fred.c +2 -3
index f004a4dc74c2..563e439b743f 100644
@@ -159,8 +159,6 @@ void __init fred_complete_exception_setup(void)
 static noinstr void fred_extint(struct pt_regs *regs)
 {
 	unsigned int vector = regs->fred_ss.vector;
-	unsigned int index = array_index_nospec(vector - FIRST_SYSTEM_VECTOR,
-						NR_SYSTEM_VECTORS);
 
 	if (WARN_ON_ONCE(vector < FIRST_EXTERNAL_VECTOR))
 		return;
@@ -169,7 +167,8 @@ static noinstr void fred_extint(struct pt_regs *regs)
 		irqentry_state_t state = irqentry_enter(regs);
 
 		instrumentation_begin();
-		sysvec_table[index](regs);
+		sysvec_table[array_index_nospec(vector - FIRST_SYSTEM_VECTOR,
+						NR_SYSTEM_VECTORS)](regs);
 		instrumentation_end();
 		irqentry_exit(regs, state);
 	} else {
arch/x86/include/asm/efi.h +1 -1
index 521aad70e41b..69920800da36 100644
@@ -138,7 +138,7 @@ extern void __init efi_apply_memmap_quirks(void);
 extern int __init efi_reuse_config(u64 tables, int nr_tables);
 extern void efi_delete_dummy_variable(void);
 extern void efi_crash_gracefully_on_page_fault(unsigned long phys_addr);
-extern void efi_free_boot_services(void);
+extern void efi_unmap_boot_services(void);
 
 void arch_efi_call_virt_setup(void);
 void arch_efi_call_virt_teardown(void);
arch/x86/kernel/acpi/boot.c +8 -4
index 63adda8a143f..a1acff7782db 100644
@@ -35,6 +35,7 @@
 #include <asm/smp.h>
 #include <asm/i8259.h>
 #include <asm/setup.h>
+#include <asm/hypervisor.h>
 
 #include "sleep.h" /* To include x86_acpi_suspend_lowlevel */
 static int __initdata acpi_force = 0;
@@ -164,11 +165,14 @@ static bool __init acpi_is_processor_usable(u32 lapic_flags)
 	if (lapic_flags & ACPI_MADT_ENABLED)
 		return true;
 
-	if (!acpi_support_online_capable ||
-	    (lapic_flags & ACPI_MADT_ONLINE_CAPABLE))
-		return true;
+	if (acpi_support_online_capable)
+		return lapic_flags & ACPI_MADT_ONLINE_CAPABLE;
 
-	return false;
+	/*
+	 * QEMU expects legacy "Enabled=0" LAPIC entries to be counted as usable
+	 * in order to support CPU hotplug in guests.
+	 */
+	return !hypervisor_is_type(X86_HYPER_NATIVE);
 }
 
 static int __init
arch/x86/kernel/cpu/topology.c +0 -15
index b2e313ea17bf..03d3e1f1a407 100644
@@ -27,7 +27,6 @@
 #include <xen/xen.h>
 
 #include <asm/apic.h>
-#include <asm/hypervisor.h>
 #include <asm/io_apic.h>
 #include <asm/mpspec.h>
 #include <asm/smp.h>
@@ -239,20 +238,6 @@ static __init void topo_register_apic(u32 apic_id, u32 acpi_id, bool present)
 		cpuid_to_apicid[cpu] = apic_id;
 		topo_set_cpuids(cpu, apic_id, acpi_id);
 	} else {
-		u32 pkgid = topo_apicid(apic_id, TOPO_PKG_DOMAIN);
-
-		/*
-		 * Check for present APICs in the same package when running
-		 * on bare metal. Allow the bogosity in a guest.
-		 */
-		if (hypervisor_is_type(X86_HYPER_NATIVE) &&
-		    topo_unit_count(pkgid, TOPO_PKG_DOMAIN, phys_cpu_present_map)) {
-			pr_info_once("Ignoring hot-pluggable APIC ID %x in present package.\n",
-				     apic_id);
-			topo_info.nr_rejected_cpus++;
-			return;
-		}
-
 		topo_info.nr_disabled_cpus++;
 	}
 
arch/x86/kvm/x86.c +1 -2
index 8f673aaa0490..0d9035993ed3 100644
@@ -11285,8 +11285,7 @@ static inline int vcpu_block(struct kvm_vcpu *vcpu)
 	if (is_guest_mode(vcpu)) {
 		int r = kvm_check_nested_events(vcpu);
 
-		WARN_ON_ONCE(r == -EBUSY);
-		if (r < 0)
+		if (r < 0 && r != -EBUSY)
 			return 0;
 	}
 
arch/x86/platform/efi/efi.c +1 -1
index 88a96816de9a..6727cff19d92 100644
@@ -858,7 +858,7 @@ static void __init __efi_enter_virtual_mode(void)
 	}
 
 	efi_check_for_embedded_firmwares();
-	efi_free_boot_services();
+	efi_unmap_boot_services();
 
 	if (!efi_is_mixed())
 		efi_native_runtime_setup();
arch/x86/platform/efi/quirks.c +52 -3

89 lines not on this page · raw message

drivers/acpi/apei/Makefile +4 -0
index 2c474e6477e1..346cdf0a0ef9 100644
@@ -1,6 +1,10 @@
 # SPDX-License-Identifier: GPL-2.0
 obj-$(CONFIG_ACPI_APEI)		+= apei.o
 obj-$(CONFIG_ACPI_APEI_GHES)	+= ghes.o
+# clang versions prior to 18 may blow out the stack with KASAN
+ifeq ($(CONFIG_COMPILE_TEST)_$(CONFIG_CC_IS_CLANG)_$(call clang-min-version, 180000),y_y_)
+KASAN_SANITIZE_ghes.o := n
+endif
 obj-$(CONFIG_ACPI_APEI_EINJ)	+= einj.o
 einj-y				:= einj-core.o
 einj-$(CONFIG_ACPI_APEI_EINJ_CXL) += einj-cxl.o
drivers/ata/libata-core.c +5 -13
index 39dcefb1fdd5..237d8fd2a2cf 100644
@@ -2439,18 +2439,7 @@ static void ata_dev_config_zac(struct ata_device *dev)
 	dev->zac_zones_optimal_nonseq = U32_MAX;
 	dev->zac_zones_max_open = U32_MAX;
 
-	/*
-	 * Always set the 'ZAC' flag for Host-managed devices.
-	 */
-	if (dev->class == ATA_DEV_ZAC)
-		dev->flags |= ATA_DFLAG_ZAC;
-	else if (ata_id_zoned_cap(dev->id) == 0x01)
-		/*
-		 * Check for host-aware devices.
-		 */
-		dev->flags |= ATA_DFLAG_ZAC;
-
-	if (!(dev->flags & ATA_DFLAG_ZAC))
+	if (!ata_dev_is_zac(dev))
 		return;
 
 	if (!ata_identify_page_supported(dev, ATA_LOG_ZONED_INFORMATION)) {
@@ -5532,6 +5521,7 @@ struct ata_port *ata_port_alloc(struct ata_host *host)
 	mutex_init(&ap->scsi_scan_mutex);
 	INIT_DELAYED_WORK(&ap->hotplug_task, ata_scsi_hotplug);
 	INIT_DELAYED_WORK(&ap->scsi_rescan_task, ata_scsi_dev_rescan);
+	INIT_WORK(&ap->deferred_qc_work, ata_scsi_deferred_qc_work);
 	INIT_LIST_HEAD(&ap->eh_done_q);
 	init_waitqueue_head(&ap->eh_wait_q);
 	init_completion(&ap->park_req_pending);
@@ -6152,9 +6142,11 @@ static void ata_port_detach(struct ata_port *ap)
 	/* wait till EH commits suicide */
 	ata_port_wait_eh(ap);
 
-	/* it better be dead now */
+	/* It better be dead now and not have any remaining deferred qc. */
 	WARN_ON(!(ap->pflags & ATA_PFLAG_UNLOADED));
+	WARN_ON(ap->deferred_qc);
 
+	cancel_work_sync(&ap->deferred_qc_work);
 	cancel_delayed_work_sync(&ap->hotplug_task);
 	cancel_delayed_work_sync(&ap->scsi_rescan_task);
 
drivers/ata/libata-eh.c +27 -4
index 205c62cf9e32..59788a34871a 100644
@@ -642,12 +642,29 @@ void ata_scsi_cmd_error_handler(struct Scsi_Host *host, struct ata_port *ap,
 		set_host_byte(scmd, DID_OK);
 
 		ata_qc_for_each_raw(ap, qc, i) {
-			if (qc->flags & ATA_QCFLAG_ACTIVE &&
-			    qc->scsicmd == scmd)
+			if (qc->scsicmd != scmd)
+				continue;
+			if ((qc->flags & ATA_QCFLAG_ACTIVE) ||
+			    qc == ap->deferred_qc)
 				break;
 		}
 
-		if (i < ATA_MAX_QUEUE) {
+		if (i < ATA_MAX_QUEUE && qc == ap->deferred_qc) {
+			/*
+			 * This is a deferred command that timed out while
+			 * waiting for the command queue to drain. Since the qc
+			 * is not active yet (deferred_qc is still set, so the
+			 * deferred qc work has not issued the command yet),
+			 * simply signal the timeout by finishing the SCSI
+			 * command and clear the deferred qc to prevent the
+			 * deferred qc work from issuing this qc.
+			 */
+			WARN_ON_ONCE(qc->flags & ATA_QCFLAG_ACTIVE);
+			ap->deferred_qc = NULL;
+			cancel_work(&ap->deferred_qc_work);
+			set_host_byte(scmd, DID_TIME_OUT);
+			scsi_eh_finish_cmd(scmd, &ap->eh_done_q);
+		} else if (i < ATA_MAX_QUEUE) {
 			/* the scmd has an associated qc */
 			if (!(qc->flags & ATA_QCFLAG_EH)) {
 				/* which hasn't failed yet, timeout */
@@ -826,7 +843,7 @@ void ata_port_wait_eh(struct ata_port *ap)
  retry:
 	spin_lock_irqsave(ap->lock, flags);
 
-	while (ap->pflags & (ATA_PFLAG_EH_PENDING | ATA_PFLAG_EH_IN_PROGRESS)) {
+	while (ata_port_eh_scheduled(ap)) {
 		prepare_to_wait(&ap->eh_wait_q, &wait, TASK_UNINTERRUPTIBLE);
 		spin_unlock_irqrestore(ap->lock, flags);
 		schedule();
@@ -920,6 +937,12 @@ static void ata_eh_set_pending(struct ata_port *ap, int fastdrain)
 
 	ap->pflags |= ATA_PFLAG_EH_PENDING;
 
+	/*
+	 * If we have a deferred qc, requeue it so that it is retried once EH
+	 * completes.
+	 */
+	ata_scsi_requeue_deferred_qc(ap);
+
 	if (!fastdrain)
 		return;
 
drivers/ata/libata-scsi.c +366 -178

908 lines not on this page · raw message

drivers/ata/libata.h +14 -0
index d07693bd054e..1a2d0f7115b5 100644
@@ -44,6 +44,18 @@ static inline bool ata_sstatus_online(u32 sstatus)
 	return (sstatus & 0xf) == 0x3;
 }
 
+static inline bool ata_dev_is_zac(struct ata_device *dev)
+{
+	/* Host managed device or host aware device */
+	return dev->class == ATA_DEV_ZAC ||
+		ata_id_zoned_cap(dev->id) == 0x01;
+}
+
+static inline bool ata_port_eh_scheduled(struct ata_port *ap)
+{
+	return ap->pflags & (ATA_PFLAG_EH_PENDING | ATA_PFLAG_EH_IN_PROGRESS);
+}
+
 #ifdef CONFIG_ATA_FORCE
 extern void ata_force_cbl(struct ata_port *ap);
 #else
@@ -154,6 +166,8 @@ void ata_scsi_sdev_config(struct scsi_device *sdev);
 int ata_scsi_dev_config(struct scsi_device *sdev, struct queue_limits *lim,
 		struct ata_device *dev);
 int __ata_scsi_queuecmd(struct scsi_cmnd *scmd, struct ata_device *dev);
+void ata_scsi_deferred_qc_work(struct work_struct *work);
+void ata_scsi_requeue_deferred_qc(struct ata_port *ap);
 
 /* libata-eh.c */
 extern unsigned int ata_internal_cmd_timeout(struct ata_device *dev, u8 cmd);
drivers/block/drbd/drbd_actlog.c +23 -30

82 lines not on this page · raw message

drivers/block/drbd/drbd_interval.h +4 -1
index 366489b72fe9..5d3213b81eed 100644
@@ -8,12 +8,15 @@
 struct drbd_interval {
 	struct rb_node rb;
 	sector_t sector;		/* start sector of the interval */
-	unsigned int size;		/* size in bytes */
 	sector_t end;			/* highest interval end in subtree */
+	unsigned int size;		/* size in bytes */
 	unsigned int local:1		/* local or remote request? */;
 	unsigned int waiting:1;		/* someone is waiting for completion */
 	unsigned int completed:1;	/* this has been completed already;
 					 * ignore for conflict detection */
+
+	/* to resume a partially successful drbd_al_begin_io_nonblock(); */
+	unsigned int partially_in_al_next_enr;
 };
 
 static inline void drbd_clear_interval(struct drbd_interval *i)
drivers/block/drbd/drbd_req.c +2 -1
index 380e6584a4ee..fce2060579eb 100644
@@ -621,7 +621,8 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what,
 		break;
 
 	case READ_COMPLETED_WITH_ERROR:
-		drbd_set_out_of_sync(peer_device, req->i.sector, req->i.size);
+		drbd_set_out_of_sync(first_peer_device(device),
+				req->i.sector, req->i.size);
 		drbd_report_io_error(device, req);
 		__drbd_chk_io_error(device, DRBD_READ_ERROR);
 		fallthrough;
drivers/clk/tegra/clk-tegra124-emc.c +1 -1
index 0f6fb776b229..5f1af6dfe715 100644
@@ -197,8 +197,8 @@ static struct tegra_emc *emc_ensure_emc_driver(struct tegra_clk_emc *tegra)
 	tegra->emc_node = NULL;
 
 	tegra->emc = platform_get_drvdata(pdev);
+	put_device(&pdev->dev);
 	if (!tegra->emc) {
-		put_device(&pdev->dev);
 		pr_err("%s: cannot find EMC driver\n", __func__);
 		return NULL;
 	}
drivers/firmware/efi/mokvar-table.c +1 -1
index 4eb0dff4dfaf..bd84a22805b5 100644
@@ -85,7 +85,7 @@ static struct kobject *mokvar_kobj;
  * as an alternative to ordinary EFI variables, due to platform-dependent
  * limitations. The memory occupied by this table is marked as reserved.
  *
- * This routine must be called before efi_free_boot_services() in order
+ * This routine must be called before efi_unmap_boot_services() in order
  * to guarantee that it can mark the table as reserved.
  *
  * Implicit inputs:
drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c +1 -0
index a7ecc33ddf22..ef5356b5a65e 100644
@@ -583,6 +583,7 @@ static void aca_error_fini(struct aca_error *aerr)
 		aca_bank_error_remove(aerr, bank_error);
 
 out_unlock:
+	mutex_unlock(&aerr->lock);
 	mutex_destroy(&aerr->lock);
 }
 
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +2 -2
index cab75f5c9f2f..361184355e23 100644
@@ -4648,7 +4648,7 @@ void amdgpu_device_fini_hw(struct amdgpu_device *adev)
 	 * before ip_fini_early to prevent kfd locking refcount issues by calling
 	 * amdgpu_amdkfd_suspend()
 	 */
-	if (drm_dev_is_unplugged(adev_to_drm(adev)))
+	if (pci_dev_is_disconnected(adev->pdev))
 		amdgpu_amdkfd_device_fini_sw(adev);
 
 	amdgpu_device_ip_fini_early(adev);
@@ -4660,7 +4660,7 @@ void amdgpu_device_fini_hw(struct amdgpu_device *adev)
 
 	amdgpu_gart_dummy_page_fini(adev);
 
-	if (drm_dev_is_unplugged(adev_to_drm(adev)))
+	if (pci_dev_is_disconnected(adev->pdev))
 		amdgpu_device_unmap_mmio(adev);
 
 }
drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c +13 -19
index 38face981c3e..0d3c18f04ac3 100644
@@ -171,13 +171,9 @@ static ssize_t ta_if_load_debugfs_write(struct file *fp, const char *buf, size_t
 
 	copy_pos += sizeof(uint32_t);
 
-	ta_bin = kzalloc(ta_bin_len, GFP_KERNEL);
-	if (!ta_bin)
-		return -ENOMEM;
-	if (copy_from_user((void *)ta_bin, &buf[copy_pos], ta_bin_len)) {
-		ret = -EFAULT;
-		goto err_free_bin;
-	}
+	ta_bin = memdup_user(&buf[copy_pos], ta_bin_len);
+	if (IS_ERR(ta_bin))
+		return PTR_ERR(ta_bin);
 
 	/* Set TA context and functions */
 	set_ta_context_funcs(psp, ta_type, &context);
@@ -327,26 +323,22 @@ static ssize_t ta_if_invoke_debugfs_write(struct file *fp, const char *buf, size
 		return -EFAULT;
 	copy_pos += sizeof(uint32_t);
 
-	shared_buf = kzalloc(shared_buf_len, GFP_KERNEL);
-	if (!shared_buf)
-		return -ENOMEM;
-	if (copy_from_user((void *)shared_buf, &buf[copy_pos], shared_buf_len)) {
-		ret = -EFAULT;
-		goto err_free_shared_buf;
-	}
+	shared_buf = memdup_user(&buf[copy_pos], shared_buf_len);
+	if (IS_ERR(shared_buf))
+		return PTR_ERR(shared_buf);
 
 	set_ta_context_funcs(psp, ta_type, &context);
 
 	if (!context || !context->initialized) {
 		dev_err(adev->dev, "TA is not initialized\n");
 		ret = -EINVAL;
-		goto err_free_shared_buf;
+		goto free_shared_buf;
 	}
 
 	if (!psp->ta_funcs || !psp->ta_funcs->fn_ta_invoke) {
 		dev_err(adev->dev, "Unsupported function to invoke TA\n");
 		ret = -EOPNOTSUPP;
-		goto err_free_shared_buf;
+		goto free_shared_buf;
 	}
 
 	context->session_id = ta_id;
@@ -354,7 +346,7 @@ static ssize_t ta_if_invoke_debugfs_write(struct file *fp, const char *buf, size
 	mutex_lock(&psp->ras_context.mutex);
 	ret = prep_ta_mem_context(&context->mem_context, shared_buf, shared_buf_len);
 	if (ret)
-		goto err_free_shared_buf;
+		goto unlock;
 
 	ret = psp_fn_ta_invoke(psp, cmd_id);
 	if (ret || context->resp_status) {
@@ -362,15 +354,17 @@ static ssize_t ta_if_invoke_debugfs_write(struct file *fp, const char *buf, size
 			ret, context->resp_status);
 		if (!ret) {
 			ret = -EINVAL;
-			goto err_free_shared_buf;
+			goto unlock;
 		}
 	}
 
 	if (copy_to_user((char *)&buf[copy_pos], context->mem_context.shared_buf, shared_buf_len))
 		ret = -EFAULT;
 
-err_free_shared_buf:
+unlock:
 	mutex_unlock(&psp->ras_context.mutex);
+
+free_shared_buf:
 	kfree(shared_buf);
 
 	return ret;
drivers/gpu/drm/exynos/exynos_drm_vidi.c +49 -12

142 lines not on this page · raw message

drivers/gpu/drm/logicvc/logicvc_drm.c +2 -2
index 01a37e28c080..6d88f8645988 100644
@@ -90,7 +90,6 @@ static int logicvc_drm_config_parse(struct logicvc_drm *logicvc)
 	struct device *dev = drm_dev->dev;
 	struct device_node *of_node = dev->of_node;
 	struct logicvc_drm_config *config = &logicvc->config;
-	struct device_node *layers_node;
 	int ret;
 
 	logicvc_of_property_parse_bool(of_node, LOGICVC_OF_PROPERTY_DITHERING,
@@ -126,7 +125,8 @@ static int logicvc_drm_config_parse(struct logicvc_drm *logicvc)
 	if (ret)
 		return ret;
 
-	layers_node = of_get_child_by_name(of_node, "layers");
+	struct device_node *layers_node __free(device_node) =
+		of_get_child_by_name(of_node, "layers");
 	if (!layers_node) {
 		drm_err(drm_dev, "Missing non-optional layers node\n");
 		return -EINVAL;
drivers/gpu/drm/scheduler/sched_main.c +1 -0
index 4dde0dc525ce..4f43c0fa4019 100644
@@ -404,6 +404,7 @@ static void drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
 /**
  * drm_sched_job_done - complete a job
  * @s_job: pointer to the job which is done
+ * @result: 0 on success, -ERRNO on error
  *
  * Finish the job's fence and wake up the worker thread.
  */
drivers/gpu/drm/solomon/ssd130x.c +2 -4
index e0fc12d514d7..cd8347396082 100644
@@ -736,6 +736,7 @@ static int ssd130x_update_rect(struct ssd130x_device *ssd130x,
 	unsigned int height = drm_rect_height(rect);
 	unsigned int line_length = DIV_ROUND_UP(width, 8);
 	unsigned int page_height = SSD130X_PAGE_HEIGHT;
+	u8 page_start = ssd130x->page_offset + y / page_height;
 	unsigned int pages = DIV_ROUND_UP(height, page_height);
 	struct drm_device *drm = &ssd130x->drm;
 	u32 array_idx = 0;
@@ -773,14 +774,11 @@ static int ssd130x_update_rect(struct ssd130x_device *ssd130x,
 	 */
 
 	if (!ssd130x->page_address_mode) {
-		u8 page_start;
-
 		/* Set address range for horizontal addressing mode */
 		ret = ssd130x_set_col_range(ssd130x, ssd130x->col_offset + x, width);
 		if (ret < 0)
 			return ret;
 
-		page_start = ssd130x->page_offset + y / page_height;
 		ret = ssd130x_set_page_range(ssd130x, page_start, pages);
 		if (ret < 0)
 			return ret;
@@ -812,7 +810,7 @@ static int ssd130x_update_rect(struct ssd130x_device *ssd130x,
 		 */
 		if (ssd130x->page_address_mode) {
 			ret = ssd130x_set_page_pos(ssd130x,
-						   ssd130x->page_offset + i,
+						   page_start + i,
 						   ssd130x->col_offset + x);
 			if (ret < 0)
 				return ret;
drivers/gpu/drm/tegra/dsi.c +2 -4
index 532a8f4bee7f..a796dc674237 100644
@@ -1540,11 +1540,9 @@ static int tegra_dsi_ganged_probe(struct tegra_dsi *dsi)
 			return -EPROBE_DEFER;
 
 		dsi->slave = platform_get_drvdata(gangster);
-
-		if (!dsi->slave) {
-			put_device(&gangster->dev);
+		put_device(&gangster->dev);
+		if (!dsi->slave)
 			return -EPROBE_DEFER;
-		}
 
 		dsi->slave->master = dsi;
 	}
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +2 -2
index 0c1bd3acf359..6b921db2dcd2 100644
@@ -1161,7 +1161,7 @@ static int vmw_translate_mob_ptr(struct vmw_private *dev_priv,
 	ret = vmw_user_bo_lookup(sw_context->filp, handle, &vmw_bo);
 	if (ret != 0) {
 		drm_dbg(&dev_priv->drm, "Could not find or use MOB buffer.\n");
-		return PTR_ERR(vmw_bo);
+		return ret;
 	}
 	vmw_bo_placement_set(vmw_bo, VMW_BO_DOMAIN_MOB, VMW_BO_DOMAIN_MOB);
 	ret = vmw_validation_add_bo(sw_context->ctx, vmw_bo);
@@ -1217,7 +1217,7 @@ static int vmw_translate_guest_ptr(struct vmw_private *dev_priv,
 	ret = vmw_user_bo_lookup(sw_context->filp, handle, &vmw_bo);
 	if (ret != 0) {
 		drm_dbg(&dev_priv->drm, "Could not find or use GMR region.\n");
-		return PTR_ERR(vmw_bo);
+		return ret;
 	}
 	vmw_bo_placement_set(vmw_bo, VMW_BO_DOMAIN_GMR | VMW_BO_DOMAIN_VRAM,
 			     VMW_BO_DOMAIN_GMR | VMW_BO_DOMAIN_VRAM);
drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c +8 -1
index de2498749e27..5bb710824d72 100644
@@ -274,6 +274,13 @@ int vmw_bo_dirty_add(struct vmw_bo *vbo)
 	return ret;
 }
 
+static void vmw_bo_dirty_free(struct kref *kref)
+{
+	struct vmw_bo_dirty *dirty = container_of(kref, struct vmw_bo_dirty, ref_count);
+
+	kvfree(dirty);
+}
+
 /**
  * vmw_bo_dirty_release - Release a dirty-tracking user from a buffer object
  * @vbo: The buffer object
@@ -288,7 +295,7 @@ void vmw_bo_dirty_release(struct vmw_bo *vbo)
 {
 	struct vmw_bo_dirty *dirty = vbo->dirty;
 
-	if (dirty && kref_put(&dirty->ref_count, (void *)kvfree))
+	if (dirty && kref_put(&dirty->ref_count, vmw_bo_dirty_free))
 		vbo->dirty = NULL;
 }
 
drivers/gpu/drm/xe/xe_reg_sr.c +3 -1
index d3773a985387..ae9e6df2f4e1 100644
@@ -102,10 +102,12 @@ int xe_reg_sr_add(struct xe_reg_sr *sr,
 	*pentry = *e;
 	ret = xa_err(xa_store(&sr->xa, idx, pentry, GFP_KERNEL));
 	if (ret)
-		goto fail;
+		goto fail_free;
 
 	return 0;
 
+fail_free:
+	kfree(pentry);
 fail:
 	xe_gt_err(gt,
 		  "discarding save-restore reg %04lx (clear: %08x, set: %08x, masked: %s, mcr: %s): ret=%d\n",
drivers/gpu/drm/xe/xe_ring_ops.c +9 -0
index fb31e09acb51..c9e8969f99fc 100644
@@ -259,6 +259,9 @@ static void __emit_job_gen12_simple(struct xe_sched_job *job, struct xe_lrc *lrc
 
 	i = emit_bb_start(batch_addr, ppgtt_flag, dw, i);
 
+	/* Don't preempt fence signaling */
+	dw[i++] = MI_ARB_ON_OFF | MI_ARB_DISABLE;
+
 	if (job->user_fence.used) {
 		i = emit_flush_dw(dw, i);
 		i = emit_store_imm_ppgtt_posted(job->user_fence.addr,
@@ -322,6 +325,9 @@ static void __emit_job_gen12_video(struct xe_sched_job *job, struct xe_lrc *lrc,
 
 	i = emit_bb_start(batch_addr, ppgtt_flag, dw, i);
 
+	/* Don't preempt fence signaling */
+	dw[i++] = MI_ARB_ON_OFF | MI_ARB_DISABLE;
+
 	if (job->user_fence.used) {
 		i = emit_flush_dw(dw, i);
 		i = emit_store_imm_ppgtt_posted(job->user_fence.addr,
@@ -371,6 +377,9 @@ static void __emit_job_gen12_render_compute(struct xe_sched_job *job,
 
 	i = emit_bb_start(batch_addr, ppgtt_flag, dw, i);
 
+	/* Don't preempt fence signaling */
+	dw[i++] = MI_ARB_ON_OFF | MI_ARB_DISABLE;
+
 	i = emit_render_cache_flush(job, dw, i);
 
 	if (job->user_fence.used)
drivers/hid/hid-cmedia.c +1 -1
index 528d7f361215..8bf5649b0c79 100644
@@ -99,7 +99,7 @@ static int cmhid_raw_event(struct hid_device *hid, struct hid_report *report,
 {
 	struct cmhid *cm = hid_get_drvdata(hid);
 
-	if (len != CM6533_JD_RAWEV_LEN)
+	if (len != CM6533_JD_RAWEV_LEN || !(hid->claimed & HID_CLAIMED_INPUT))
 		goto out;
 	if (memcmp(data+CM6533_JD_SFX_OFFSET, ji_sfx, sizeof(ji_sfx)))
 		goto out;
drivers/hid/hid-creative-sb0540.c +1 -1
index b4c8e7a5d3e0..dfd6add353d1 100644
@@ -153,7 +153,7 @@ static int creative_sb0540_raw_event(struct hid_device *hid,
 	u64 code, main_code;
 	int key;
 
-	if (len != 6)
+	if (len != 6 || !(hid->claimed & HID_CLAIMED_INPUT))
 		return 0;
 
 	/* From daemons/hw_hiddev.c sb0540_rec() in lirc */
drivers/hid/hid-ids.h +1 -0
index dfa39a37405e..0a65490dfcb4 100644
@@ -832,6 +832,7 @@
 #define USB_DEVICE_ID_LENOVO_X1_TAB3	0x60b5
 #define USB_DEVICE_ID_LENOVO_X12_TAB	0x60fe
 #define USB_DEVICE_ID_LENOVO_X12_TAB2	0x61ae
+#define USB_DEVICE_ID_LENOVO_YOGABOOK9I	0x6161
 #define USB_DEVICE_ID_LENOVO_OPTICAL_USB_MOUSE_600E	0x600e
 #define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_608D	0x608d
 #define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6019	0x6019
drivers/hid/hid-multitouch.c +81 -2

125 lines not on this page · raw message

drivers/hid/hid-zydacron.c +1 -1
index 3bdb26f45592..1aae80f848f5 100644
@@ -114,7 +114,7 @@ static int zc_raw_event(struct hid_device *hdev, struct hid_report *report,
 	unsigned key;
 	unsigned short index;
 
-	if (report->id == data[0]) {
+	if (report->id == data[0] && (hdev->claimed & HID_CLAIMED_INPUT)) {
 
 		/* break keys */
 		for (index = 0; index < 4; index++) {
drivers/hwmon/Kconfig +3 -3
index 58480a3f4683..19622dd6ec93 100644
@@ -245,12 +245,12 @@ config SENSORS_ADT7475
 	  will be called adt7475.
 
 config SENSORS_AHT10
-	tristate "Aosong AHT10, AHT20"
+	tristate "Aosong AHT10, AHT20, DHT20"
 	depends on I2C
 	select CRC8
 	help
-	  If you say yes here, you get support for the Aosong AHT10 and AHT20
-	  temperature and humidity sensors
+	  If you say yes here, you get support for the Aosong AHT10, AHT20 and
+	  DHT20 temperature and humidity sensors
 
 	  This driver can also be built as a module. If so, the module
 	  will be called aht10.
drivers/hwmon/aht10.c +18 -3
index 312ef3e98754..4099b5ba0982 100644
@@ -37,6 +37,10 @@
 #define AHT10_CMD_MEAS	0b10101100
 #define AHT10_CMD_RST	0b10111010
 
+#define AHT20_CMD_INIT	0b10111110
+
+#define DHT20_CMD_INIT	0b01110001
+
 /*
  * Flags in the answer byte/command
  */
@@ -48,11 +52,12 @@
 
 #define AHT10_MAX_POLL_INTERVAL_LEN	30
 
-enum aht10_variant { aht10, aht20 };
+enum aht10_variant { aht10, aht20, dht20};
 
 static const struct i2c_device_id aht10_id[] = {
 	{ "aht10", aht10 },
 	{ "aht20", aht20 },
+	{ "dht20", dht20 },
 	{ },
 };
 MODULE_DEVICE_TABLE(i2c, aht10_id);
@@ -77,6 +82,7 @@ MODULE_DEVICE_TABLE(i2c, aht10_id);
  *              AHT10/AHT20
  *   @crc8: crc8 support flag
  *   @meas_size: measurements data size
+ *   @init_cmd: Initialization command
  */
 
 struct aht10_data {
@@ -92,6 +98,7 @@ struct aht10_data {
 	int humidity;
 	bool crc8;
 	unsigned int meas_size;
+	u8 init_cmd;
 };
 
 /**
@@ -101,13 +108,13 @@ struct aht10_data {
  */
 static int aht10_init(struct aht10_data *data)
 {
-	const u8 cmd_init[] = {AHT10_CMD_INIT, AHT10_CAL_ENABLED | AHT10_MODE_CYC,
+	const u8 cmd_init[] = {data->init_cmd, AHT10_CAL_ENABLED | AHT10_MODE_CYC,
 			       0x00};
 	int res;
 	u8 status;
 	struct i2c_client *client = data->client;
 
-	res = i2c_master_send(client, cmd_init, 3);
+	res = i2c_master_send(client, cmd_init, sizeof(cmd_init));
 	if (res < 0)
 		return res;
 
@@ -352,9 +359,17 @@ static int aht10_probe(struct i2c_client *client)
 		data->meas_size = AHT20_MEAS_SIZE;
 		data->crc8 = true;
 		crc8_populate_msb(crc8_table, AHT20_CRC8_POLY);
+		data->init_cmd = AHT20_CMD_INIT;
+		break;
+	case dht20:
+		data->meas_size = AHT20_MEAS_SIZE;
+		data->crc8 = true;
+		crc8_populate_msb(crc8_table, AHT20_CRC8_POLY);
+		data->init_cmd = DHT20_CMD_INIT;
 		break;
 	default:
 		data->meas_size = AHT10_MEAS_SIZE;
+		data->init_cmd = AHT10_CMD_INIT;
 		break;
 	}
 
drivers/hwmon/it87.c +4 -1
index e233aafa8856..5cfb98a0512f 100644
@@ -3590,10 +3590,13 @@ static int it87_resume(struct device *dev)
 {
 	struct platform_device *pdev = to_platform_device(dev);
 	struct it87_data *data = dev_get_drvdata(dev);
+	int err;
 
 	it87_resume_sio(pdev);
 
-	it87_lock(data);
+	err = it87_lock(data);
+	if (err)
+		return err;
 
 	it87_check_pwm(dev);
 	it87_check_limit_regs(data);
drivers/hwmon/max16065.c +13 -13
index 4c9e7892a73c..43fbb9b26b10 100644
@@ -151,27 +151,27 @@ static struct max16065_data *max16065_update_device(struct device *dev)
 		int i;
 
 		for (i = 0; i < data->num_adc; i++)
-			data->adc[i]
-			  = max16065_read_adc(client, MAX16065_ADC(i));
+			WRITE_ONCE(data->adc[i],
+				   max16065_read_adc(client, MAX16065_ADC(i)));
 
 		if (data->have_current) {
-			data->adc[MAX16065_NUM_ADC]
-			  = max16065_read_adc(client, MAX16065_CSP_ADC);
-			data->curr_sense
-			  = i2c_smbus_read_byte_data(client,
-						     MAX16065_CURR_SENSE);
+			WRITE_ONCE(data->adc[MAX16065_NUM_ADC],
+				   max16065_read_adc(client, MAX16065_CSP_ADC));
+			WRITE_ONCE(data->curr_sense,
+				   i2c_smbus_read_byte_data(client, MAX16065_CURR_SENSE));
 		}
 
 		for (i = 0; i < 2; i++)
-			data->fault[i]
-			  = i2c_smbus_read_byte_data(client, MAX16065_FAULT(i));
+			WRITE_ONCE(data->fault[i],
+				   i2c_smbus_read_byte_data(client, MAX16065_FAULT(i)));
 
 		/*
 		 * MAX16067 and MAX16068 have separate undervoltage and
 		 * overvoltage alarm bits. Squash them together.
 		 */
 		if (data->chip == max16067 || data->chip == max16068)
-			data->fault[0] |= data->fault[1];
+			WRITE_ONCE(data->fault[0],
+				   data->fault[0] | data->fault[1]);
 
 		data->last_updated = jiffies;
 		data->valid = true;
@@ -185,7 +185,7 @@ static ssize_t max16065_alarm_show(struct device *dev,
 {
 	struct sensor_device_attribute_2 *attr2 = to_sensor_dev_attr_2(da);
 	struct max16065_data *data = max16065_update_device(dev);
-	int val = data->fault[attr2->nr];
+	int val = READ_ONCE(data->fault[attr2->nr]);
 
 	if (val < 0)
 		return val;
@@ -203,7 +203,7 @@ static ssize_t max16065_input_show(struct device *dev,
 {
 	struct sensor_device_attribute *attr = to_sensor_dev_attr(da);
 	struct max16065_data *data = max16065_update_device(dev);
-	int adc = data->adc[attr->index];
+	int adc = READ_ONCE(data->adc[attr->index]);
 
 	if (unlikely(adc < 0))
 		return adc;
@@ -216,7 +216,7 @@ static ssize_t max16065_current_show(struct device *dev,
 				     struct device_attribute *da, char *buf)
 {
 	struct max16065_data *data = max16065_update_device(dev);
-	int curr_sense = data->curr_sense;
+	int curr_sense = READ_ONCE(data->curr_sense);
 
 	if (unlikely(curr_sense < 0))
 		return curr_sense;
drivers/hwmon/max6639.c +60 -23

114 lines not on this page · raw message

drivers/i2c/busses/i2c-i801.c +10 -4
index be7ca6a0ebeb..24363acfc3f8 100644
@@ -303,9 +303,10 @@ struct i801_priv {
 
 	/*
 	 * If set to true the host controller registers are reserved for
-	 * ACPI AML use.
+	 * ACPI AML use. Needs extra protection by acpi_lock.
 	 */
 	bool acpi_reserved;
+	struct mutex acpi_lock;
 };
 
 #define FEATURE_SMBUS_PEC	BIT(0)
@@ -893,8 +894,11 @@ static s32 i801_access(struct i2c_adapter *adap, u16 addr,
 	int hwpec, ret;
 	struct i801_priv *priv = i2c_get_adapdata(adap);
 
-	if (priv->acpi_reserved)
+	mutex_lock(&priv->acpi_lock);
+	if (priv->acpi_reserved) {
+		mutex_unlock(&priv->acpi_lock);
 		return -EBUSY;
+	}
 
 	pm_runtime_get_sync(&priv->pci_dev->dev);
 
@@ -935,6 +939,7 @@ static s32 i801_access(struct i2c_adapter *adap, u16 addr,
 
 	pm_runtime_mark_last_busy(&priv->pci_dev->dev);
 	pm_runtime_put_autosuspend(&priv->pci_dev->dev);
+	mutex_unlock(&priv->acpi_lock);
 	return ret;
 }
 
@@ -1586,7 +1591,7 @@ i801_acpi_io_handler(u32 function, acpi_physical_address address, u32 bits,
 	 * further access from the driver itself. This device is now owned
 	 * by the system firmware.
 	 */
-	i2c_lock_bus(&priv->adapter, I2C_LOCK_SEGMENT);
+	mutex_lock(&priv->acpi_lock);
 
 	if (!priv->acpi_reserved && i801_acpi_is_smbus_ioport(priv, address)) {
 		priv->acpi_reserved = true;
@@ -1606,7 +1611,7 @@ i801_acpi_io_handler(u32 function, acpi_physical_address address, u32 bits,
 	else
 		status = acpi_os_write_port(address, (u32)*value, bits);
 
-	i2c_unlock_bus(&priv->adapter, I2C_LOCK_SEGMENT);
+	mutex_unlock(&priv->acpi_lock);
 
 	return status;
 }
@@ -1666,6 +1671,7 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)
 	priv->adapter.dev.parent = &dev->dev;
 	acpi_use_parent_companion(&priv->adapter.dev);
 	priv->adapter.retries = 3;
+	mutex_init(&priv->acpi_lock);
 
 	priv->pci_dev = dev;
 	priv->features = id->driver_data;
drivers/infiniband/hw/irdma/verbs.c +1 -1
index c33a36d5c43c..ac01b6c10327 100644
@@ -4589,7 +4589,7 @@ static int irdma_create_user_ah(struct ib_ah *ibah,
 #define IRDMA_CREATE_AH_MIN_RESP_LEN offsetofend(struct irdma_create_ah_resp, rsvd)
 	struct irdma_ah *ah = container_of(ibah, struct irdma_ah, ibah);
 	struct irdma_device *iwdev = to_iwdev(ibah->pd->device);
-	struct irdma_create_ah_resp uresp;
+	struct irdma_create_ah_resp uresp = {};
 	struct irdma_ah *parent_ah;
 	int err;
 
drivers/infiniband/hw/mthca/mthca_provider.c +3 -2
index 6a1e2e79ddc3..c01ac0e478c6 100644
@@ -428,6 +428,8 @@ static int mthca_create_srq(struct ib_srq *ibsrq,
 
 	if (context && ib_copy_to_udata(udata, &srq->srqn, sizeof(__u32))) {
 		mthca_free_srq(to_mdev(ibsrq->device), srq);
+		mthca_unmap_user_db(to_mdev(ibsrq->device), &context->uar,
+				    context->db_tab, ucmd.db_index);
 		return -EFAULT;
 	}
 
@@ -436,6 +438,7 @@ static int mthca_create_srq(struct ib_srq *ibsrq,
 
 static int mthca_destroy_srq(struct ib_srq *srq, struct ib_udata *udata)
 {
+	mthca_free_srq(to_mdev(srq->device), to_msrq(srq));
 	if (udata) {
 		struct mthca_ucontext *context =
 			rdma_udata_to_drv_context(
@@ -446,8 +449,6 @@ static int mthca_destroy_srq(struct ib_srq *srq, struct ib_udata *udata)
 		mthca_unmap_user_db(to_mdev(srq->device), &context->uar,
 				    context->db_tab, to_msrq(srq)->db_index);
 	}
-
-	mthca_free_srq(to_mdev(srq->device), to_msrq(srq));
 	return 0;
 }
 
drivers/input/mouse/synaptics_i2c.c +8 -5
index a0d707e47d93..29da66af36d7 100644
@@ -372,7 +372,7 @@ static irqreturn_t synaptics_i2c_irq(int irq, void *dev_id)
 {
 	struct synaptics_i2c *touch = dev_id;
 
-	mod_delayed_work(system_wq, &touch->dwork, 0);
+	mod_delayed_work(system_dfl_wq, &touch->dwork, 0);
 
 	return IRQ_HANDLED;
 }
@@ -448,7 +448,7 @@ static void synaptics_i2c_work_handler(struct work_struct *work)
 	 * We poll the device once in THREAD_IRQ_SLEEP_SECS and
 	 * if error is detected, we try to reset and reconfigure the touchpad.
 	 */
-	mod_delayed_work(system_wq, &touch->dwork, delay);
+	mod_delayed_work(system_dfl_wq, &touch->dwork, delay);
 }
 
 static int synaptics_i2c_open(struct input_dev *input)
@@ -461,7 +461,7 @@ static int synaptics_i2c_open(struct input_dev *input)
 		return ret;
 
 	if (polling_req)
-		mod_delayed_work(system_wq, &touch->dwork,
+		mod_delayed_work(system_dfl_wq, &touch->dwork,
 				msecs_to_jiffies(NO_DATA_SLEEP_MSECS));
 
 	return 0;
@@ -615,13 +615,16 @@ static int synaptics_i2c_resume(struct device *dev)
 	int ret;
 	struct i2c_client *client = to_i2c_client(dev);
 	struct synaptics_i2c *touch = i2c_get_clientdata(client);
+	struct input_dev *input = touch->input;
 
 	ret = synaptics_i2c_reset_config(client);
 	if (ret)
 		return ret;
 
-	mod_delayed_work(system_wq, &touch->dwork,
-				msecs_to_jiffies(NO_DATA_SLEEP_MSECS));
+	guard(mutex)(&input->mutex);
+	if (input_device_enabled(input))
+		mod_delayed_work(system_dfl_wq, &touch->dwork,
+				 msecs_to_jiffies(NO_DATA_SLEEP_MSECS));
 
 	return 0;
 }
drivers/iommu/intel/pasid.c +8 -0
index 90fdfa5f7d1d..3d1d43675bf2 100644
@@ -867,6 +867,14 @@ static void __context_flush_dev_iotlb(struct device_domain_info *info)
 	if (!info->ats_enabled)
 		return;
 
+	/*
+	 * Skip dev-IOTLB flush for inaccessible PCIe devices to prevent the
+	 * Intel IOMMU from waiting indefinitely for an ATS invalidation that
+	 * cannot complete.
+	 */
+	if (!pci_device_is_present(to_pci_dev(info->dev)))
+		return;
+
 	qi_flush_dev_iotlb(info->iommu, PCI_DEVID(info->bus, info->devfn),
 			   info->pfsid, info->ats_qdep, 0, MAX_AGAW_PFN_WIDTH);
 
drivers/irqchip/irq-sifive-plic.c +6 -1
index c0cf4fed13e0..b58b3cd807d4 100644
@@ -154,8 +154,13 @@ static void plic_irq_disable(struct irq_data *d)
 static void plic_irq_eoi(struct irq_data *d)
 {
 	struct plic_handler *handler = this_cpu_ptr(&plic_handlers);
+	u32 __iomem *reg;
+	bool enabled;
+
+	reg = handler->enable_base + (d->hwirq / 32) * sizeof(u32);
+	enabled = readl(reg) & BIT(d->hwirq % 32);
 
-	if (unlikely(irqd_irq_disabled(d))) {
+	if (unlikely(!enabled)) {
 		plic_toggle(handler, d->hwirq, 1);
 		writel(d->hwirq, handler->hart_base + CONTEXT_CLAIM);
 		plic_toggle(handler, d->hwirq, 0);
drivers/mailbox/mailbox.c +66 -66

211 lines not on this page · raw message

drivers/media/dvb-core/dmxdev.c +3 -1
index 804fb339f735..a67cce02d157 100644
@@ -168,7 +168,9 @@ static int dvb_dvr_open(struct inode *inode, struct file *file)
 			mutex_unlock(&dmxdev->mutex);
 			return -ENOMEM;
 		}
-		dvb_ringbuffer_init(&dmxdev->dvr_buffer, mem, DVR_BUFFER_SIZE);
+		dmxdev->dvr_buffer.data = mem;
+		dmxdev->dvr_buffer.size = DVR_BUFFER_SIZE;
+		dvb_ringbuffer_reset(&dmxdev->dvr_buffer);
 		if (dmxdev->may_do_mmap)
 			dvb_vb2_init(&dmxdev->dvr_vb2_ctx, "dvr",
 				     file->f_flags & O_NONBLOCK);
drivers/media/i2c/Kconfig +1 -1
index 5cb596f38de3..470307135254 100644
@@ -748,7 +748,7 @@ config VIDEO_AK7375
 
 config VIDEO_DW9714
 	tristate "DW9714 lens voice coil support"
-	depends on I2C && VIDEO_DEV
+	depends on GPIOLIB && I2C && VIDEO_DEV
 	select MEDIA_CONTROLLER
 	select VIDEO_V4L2_SUBDEV_API
 	select V4L2_ASYNC
drivers/media/i2c/dw9714.c +42 -14

111 lines not on this page · raw message

drivers/memory/mtk-smi.c +3 -0
index 2bc034dff691..2d7f7cc5bfa9 100644
@@ -564,6 +564,7 @@ static int mtk_smi_larb_probe(struct platform_device *pdev)
 err_pm_disable:
 	pm_runtime_disable(dev);
 	device_link_remove(dev, larb->smi_common_dev);
+	put_device(larb->smi_common_dev);
 	return ret;
[… more lines in the raw message]

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

drivers/net/arcnet/com20020-pci.c +15 -1
index 0472bcdff130..b5729d6c0b47 100644

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

drivers/net/bonding/bond_main.c +7 -2
index dd1f8cad953b..2ac455a9d1bb 100644

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

drivers/net/bonding/bond_options.c +2 -0
index a37b47b8ea8e..33af81a55a45 100644

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

drivers/net/can/spi/mcp251x.c +14 -1
index ec5c64006a16..74906aa98be3 100644

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

drivers/net/can/usb/ems_usb.c +6 -1
index fac8ac79df59..d8c881130e90 100644

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

drivers/net/can/usb/etas_es58x/es58x_core.c +7 -1
index d483cb7cfbcd..154588cb7b32 100644

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

drivers/net/can/usb/f81604.c +40 -5

45 lines not on this page · raw message

drivers/net/can/usb/ucan.c +1 -1
index 07406daf7c88..6c90b4a7d955 100644

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

drivers/net/dsa/realtek/rtl8365mb.c +1 -1
index ad7044b295ec..74a8336174e5 100644

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

drivers/net/ethernet/amd/xgbe/xgbe-common.h +1 -1
index aa25a8a0a106..d99d2295eab0 100644

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

drivers/net/ethernet/amd/xgbe/xgbe-drv.c +0 -10
index e6a249236022..c6fcddbff3f5 100644

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

drivers/net/ethernet/amd/xgbe/xgbe-main.c +0 -1
index 0e8698928e4d..6e8fafb2acba 100644

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

drivers/net/ethernet/amd/xgbe/xgbe.h +0 -3
index 7526a0906b39..c98461252053 100644

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

drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c +2 -1
index e78f40078477..a7c8ec0bdfe5 100644

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

drivers/net/ethernet/intel/e1000e/defines.h +1 -0
index ba331899d186..d4a1041e456d 100644

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

drivers/net/ethernet/intel/e1000e/ich8lan.c +9 -0
index df4e7d781cb1..f9328caefe44 100644

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

drivers/net/ethernet/intel/i40e/i40e_main.c +24 -17

41 lines not on this page · raw message

drivers/net/ethernet/intel/i40e/i40e_trace.h +1 -1
index 759f3d1c4c8f..dde0ccd789ed 100644

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

drivers/net/ethernet/intel/i40e/i40e_txrx.c +3 -2
index ca7517a68a2c..bca8398a6ab4 100644

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

drivers/net/ethernet/intel/iavf/iavf_main.c +16 -1
index 422af897d933..dcd4f172ddc8 100644

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

drivers/net/ethernet/intel/idpf/idpf_txrx.c +1 -1
index 3ddf7b1e85ef..6d33783ac8db 100644

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

drivers/net/ethernet/marvell/octeon_ep/octep_main.c +28 -12
index 449c55c09b4a..fd515964869a 100644

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

drivers/net/ethernet/marvell/octeon_ep/octep_rx.c +19 -8
index f2a7c6a76c74..74de19166488 100644

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

drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_main.c +28 -10
index b9430c4a33a3..72c1e9415efa 100644

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

drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_rx.c +20 -8
index 6f865dbbba6c..b579d5b545c4 100644

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

drivers/net/ethernet/mediatek/mtk_eth_soc.c +12 -3
index 64d86068b51e..45d4bac984a5 100644

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

drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c +1 -1
index 702ea5a00b56..aced7589d20d 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +14 -4
index 112287a6e9ab..396216633149 100644

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

drivers/net/ethernet/ti/am65-cpsw-nuss.c +1 -1
index 6b5cff087686..68049bb2bd98 100644

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

drivers/net/ethernet/ti/cpsw_ale.c +4 -5
index dc5e247ca5d1..a6bb09545c60 100644

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

drivers/net/ethernet/ti/icssg/icssg_prueth.c +8 -0
index 055c5765bd86..5e1133c322a7 100644

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

drivers/net/usb/kalmia.c +7 -0
index 613fc6910f14..ee9c48f7f68f 100644

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

drivers/net/usb/kaweth.c +13 -0
index e01d14f6c366..cb2472b59e10 100644

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

drivers/net/usb/pegasus.c +12 -1
index 0f16a133c75d..475b066081c7 100644

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

drivers/net/vxlan/vxlan_core.c +5 -0
index c78451ed06ec..2dbd7772363b 100644

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

drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c +1 -0
index a3db65254e37..268f414f0a02 100644

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

drivers/net/wireless/mediatek/mt76/mt7925/mac.c +1 -0
index f1bd0c174acf..2ab439f28e16 100644

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

drivers/net/wireless/mediatek/mt76/mt7996/mac.c +1 -0
index 0990a3d481f2..b7a5426c933d 100644

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

drivers/net/wireless/rsi/rsi_91x_mac80211.c +1 -1
index c92bb8815320..85fd5090e0b8 100644

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

drivers/net/wireless/st/cw1200/pm.c +2 -0
index a20ab577a364..212b6f2af8de 100644

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

drivers/net/wireless/ti/wlcore/main.c +2 -2
index 42805ed7ca12..da6db99b0d57 100644

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

drivers/nfc/pn533/usb.c +1 -0
index 018a80674f06..0f12f86ebb02 100644

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

drivers/nvme/host/core.c +7 -0
index a766290b1ee8..de4b9e9db45d 100644

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

drivers/nvme/host/pr.c +7 -3
index 80dd09aa01a3..e1d07f824b13 100644

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

drivers/of/kexec.c +3 -12
index 5b924597a4de..81f272b15476 100644

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

drivers/pci/controller/dwc/pcie-designware-ep.c +28 -10
index 00289948f9c1..189675747b2b 100644

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

drivers/pci/endpoint/pci-epc-core.c +134 -48

182 lines not on this page · raw message

drivers/pci/probe.c +2 -4
index 9e419f14738a..9e71eb4d1010 100644

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

drivers/pinctrl/cirrus/pinctrl-cs42l43.c +2 -3
index 8b3f3b945e20..7734dae06a4a 100644

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

drivers/pinctrl/pinctrl-equilibrium.c +19 -12
index c82491da2cc9..5204466c6b3e 100644

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

drivers/platform/x86/dell/dell-wmi-base.c +6 -0
index 841a5414d28a..01f3ff21c888 100644

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

drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c +0 -1
index 86ec962aace9..e586f7957946 100644

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

drivers/platform/x86/thinkpad_acpi.c +4 -2
index 2c67d9758e6b..e4fe90b70e50 100644

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

drivers/scsi/lpfc/lpfc_init.c +2 -0
index 08e6b8ed601c..5b9830a28c8d 100644

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

drivers/scsi/lpfc/lpfc_sli.c +30 -6
index 2a1f2b201715..7dba06fa82d8 100644

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

drivers/scsi/lpfc/lpfc_sli4.h +3 -0
index c1e9ec0243ba..9caada8cbe58 100644

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

drivers/scsi/pm8001/pm8001_sas.c +3 -2
index 4daab8b6d675..0f911228cb2f 100644

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

drivers/scsi/scsi_scan.c +1 -0
index 36e0b3105460..372807485517 100644

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

drivers/staging/media/tegra-video/vi.c +8 -5
index 57a856a21e90..463410349d07 100644

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

drivers/target/target_core_configfs.c +6 -9
index 68b40e01d5a0..5af0c64d6a55 100644

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

drivers/ufs/core/ufshcd.c +9 -9
index ba0cc2a051ff..ad5866149e24 100644

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

drivers/usb/cdns3/core.c +5 -6
index 465e9267b49c..f0e32227c0b7 100644

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

drivers/xen/xen-acpi-processor.c +2 -5
index 296703939846..520756159d3d 100644

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

fs/btrfs/block-group.c +35 -8

43 lines not on this page · raw message

fs/btrfs/direct-io.c +16 -0
index fb414643f223..8ce58aa4189f 100644

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

fs/btrfs/disk-io.c +3 -3
index 034cd7b1d0f5..fa4d22f6f29d 100644

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

fs/btrfs/inode.c +1 -1
index b1d9595762ef..09ebe5acbe43 100644

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

fs/btrfs/misc.h +7 -0
index 0d599fd847c9..1212674d7a1b 100644

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

fs/btrfs/scrub.c +1 -1
index 3cbb9f22d394..513c2bfa8d62 100644

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

fs/btrfs/space-info.c +12 -10
index cae4ec21bab4..af19f7a3e74a 100644

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

fs/btrfs/tree-checker.c +2 -2
index 3bb7a376bd3f..60bba7fbeb35 100644

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

fs/btrfs/zoned.c +259 -12

271 lines not on this page · raw message

fs/eventpoll.c +3 -2
index 8711fac20804..aa4318271eee 100644

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

fs/ext4/ext4.h +16 -27

43 lines not on this page · raw message

fs/ext4/extents.c +12 -8
index 05d4a6330086..bd556a3eac19 100644

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

fs/ext4/mballoc-test.c +0 -4
index 8eacba6e780a..0f81094fc0db 100644

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

fs/ext4/mballoc.c +399 -319

718 lines not on this page · raw message

fs/ext4/mballoc.h +8 -1
index f8280de3e882..15a049f05d04 100644

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

fs/namespace.c +15 -5
index 3869d2b32ac2..df6d6a2c6b89 100644

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

fs/nfsd/nfsctl.c +1 -1
index eb012f943912..d80be50dad76 100644

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

fs/smb/client/connect.c +0 -1
index 3c83bda8298e..823b4e1ce2d0 100644

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

fs/smb/client/smb2inode.c +2 -2
index 1c65787657dd..cac14c7b3fbc 100644

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

fs/smb/client/smb2pdu.c +11 -13
index 23e61ecf1b51..b6821815248e 100644

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

fs/smb/client/transport.c +10 -11
index a77e5a489b1c..98c27dda2410 100644

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

fs/smb/server/mgmt/user_session.c +5 -0
index 66198ed26aec..352cf9e47ebe 100644

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

fs/smb/server/mgmt/user_session.h +1 -0
index c5749d6ec715..cba7f688f6b5 100644

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

fs/smb/server/smb2pdu.c +18 -3
index ac8248479cba..0d7ba57c1ca6 100644

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

fs/squashfs/cache.c +3 -0
index 5062326d0efb..25bf038b880a 100644

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

fs/xattr.c +14 -21
index 0191ac2590e0..23b9e4b1f3dd 100644

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

include/linux/ima.h +4 -0
index 0bae61a15b60..abf8923f8fc5 100644

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

include/linux/indirect_call_wrapper.h +11 -7
index 35227d47cfc9..dc272b514a01 100644

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

include/linux/ioport.h +32 -0
index 6e9fb667a1c5..5385349f0b8a 100644

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

include/linux/kexec.h +6 -0
index f0e9f8eda7a3..7d6b12f8b8d0 100644

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

include/linux/libata.h +3 -1
index 1983a98e3d67..14c835f5d661 100644

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

include/linux/mailbox_client.h +1 -1
index 734694912ef7..c6eea9afb943 100644

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

include/linux/mailbox_controller.h +6 -3
index 6fee33cb52f5..b91379922cb3 100644

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

include/linux/pci-epc.h +38 -0
index 42ef06136bd1..de8cc3658220 100644

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

include/linux/platform_data/max6639.h deleted +0 -15
deleted file mode 100644
index 65bfdb4fdc15..000000000000

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

include/linux/ring_buffer.h +1 -0
index d8424abcf726..03934249b91e 100644

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

include/linux/workqueue.h +5 -3
index 59c2695e12e7..23642bb1a103 100644

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

include/net/act_api.h +1 -0
index 77ee0c657e2c..d8103b2270d9 100644

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

include/net/bonding.h +1 -0
index 9fb40a592020..66940d41d485 100644

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

include/net/ip_fib.h +1 -1
index 967e4dc555fa..339b92cd5cec 100644

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

include/net/netfilter/nf_tables.h +5 -0
index d440583aa4b2..79296ed87b9b 100644

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

include/net/sch_generic.h +10 -0
index 1e002b1dea62..75a0d6095d2e 100644

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

include/net/tc_act/tc_ife.h +1 -3
index c7f24a2da1ca..24d4d5a62b3c 100644

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

include/net/xdp_sock_drv.h +17 -7
index 0a5dca2b2b3f..997e28dd3896 100644

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

include/net/xsk_buff_pool.h +1 -2
index 823fd5c7a3b1..e21062cf6229 100644

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

include/uapi/linux/pci_regs.h +1 -1
index f3c9de0a497c..bf6c143551ec 100644

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

kernel/bpf/devmap.c +17 -5
index 3aa002a47a96..39b7efa396b8 100644

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

kernel/bpf/trampoline.c +1 -3
index dbe7754b4f4e..894cd6f205f5 100644

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

kernel/cgroup/cpuset.c +1 -1
index 1b93eb7b29c5..77b07548c302 100644

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

kernel/events/core.c +41 -1

42 lines not on this page · raw message

kernel/events/uprobes.c +16 -22
index e30c4dd345f4..e3c8d9900ca7 100644

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

kernel/kexec_core.c +54 -0

54 lines not on this page · raw message

kernel/rseq.c +3 -2
index 810005f927d7..e6ee81dd1e45 100644

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

kernel/trace/ring_buffer.c +21 -0
index 9e72543e0099..6958ae79464d 100644

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

kernel/trace/trace.c +13 -0
index fb76a7262abf..a543bb9d86b8 100644

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

kernel/trace/trace_events_trigger.c +3 -0
index d5dbda9b0e4b..1e4e699c2547 100644

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

kernel/workqueue.c +9 -4
index 9f7f7244bdc8..3840d7ce9cda 100644

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

net/atm/lec.c +15 -11
index 42e8047c6510..4a8ca2d7ff59 100644

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

net/bridge/br_device.c +1 -1
index 26b79feb385d..3768cc9c8ecb 100644

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

net/bridge/br_input.c +1 -1
index 44459c9d2ce7..e22088b07e70 100644

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

net/can/bcm.c +1 -0
index e33ff2a5b20c..152cc29e87d7 100644

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

net/core/filter.c +4 -2
index 182a7388e84f..1f96c3aa01ca 100644

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

net/ipv4/sysctl_net_ipv4.c +3 -2
index a79b2a52ce01..8d411cce0aed 100644

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

net/ipv6/route.c +5 -6
index aeac45af3a22..7b9279d4c363 100644

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

net/mac80211/mesh.c +3 -0
index 37e11320553e..00bdf36e333e 100644

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

net/mac80211/mlme.c +3 -0
index e0766a817f4a..61e793592638 100644

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

net/netfilter/nf_tables_api.c +0 -5
index 8dccd3598166..c1b9b00907bb 100644

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

net/netfilter/nft_set_pipapo.c +43 -8

51 lines not on this page · raw message

net/netfilter/nft_set_pipapo.h +2 -0
index 4a2ff85ce1c4..49000f5510b2 100644

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

net/nfc/nci/core.c +18 -3
index 1bdaf680b488..18ff1c23769a 100644

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

net/nfc/nci/data.c +8 -4
index 3d36ea5701f0..7a3fb2a397a1 100644

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

net/nfc/rawsock.c +11 -0
index 5125392bb68e..028b4daafaf8 100644

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

net/rds/tcp.c +10 -4
index 3cc2f303bf78..b66dfcc3efaa 100644

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

net/sched/act_ct.c +6 -0
index 2197eb625658..945b64be4c1f 100644

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

net/sched/act_ife.c +44 -49

93 lines not on this page · raw message

net/sched/cls_api.c +7 -0
index a3bab5e27e71..d301d0ea2d31 100644

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

net/sched/sch_ets.c +8 -4
index 306e046276d4..a4b07b661b77 100644

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

net/sched/sch_fq.c +1 -0
index 1af9768cd8ff..682daf79af37 100644

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

net/wireless/core.c +1 -0
index 73c051f129d3..46e70f2e39cc 100644

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

net/wireless/radiotap.c +2 -2
index b7e3e46ec16d..e58c81cd79ee 100644

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

net/xdp/xsk.c +17 -11
index f031b07baa57..ed1aeaded9be 100644

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

net/xdp/xsk_buff_pool.c +7 -8
index b69dbd8615fc..9db08365fcb0 100644

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

rust/kernel/kunit.rs +8 -0
index 824da0e9738a..7b38fca9f242 100644

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

security/apparmor/apparmorfs.c +134 -91

225 lines not on this page · raw message

security/apparmor/include/label.h +8 -8
index 2a72e6b17d68..5aca0f612f8f 100644

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

security/apparmor/include/lib.h +12 -0
index 1ec00113a056..e76470c8b84c 100644

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

security/apparmor/include/match.h +1 -0
index dfc93631b43d..14c0401f97c1 100644

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

security/apparmor/include/policy.h +5 -5
index 75088cc310b6..dbd6af6034f1 100644

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

security/apparmor/include/policy_ns.h +2 -0
index d646070fd966..cc6e84151812 100644

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

security/apparmor/include/policy_unpack.h +45 -30

75 lines not on this page · raw message

security/apparmor/label.c +8 -4
index af25ca6b6b83..3bcc45437b44 100644

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

security/apparmor/match.c +42 -16

58 lines not on this page · raw message

security/apparmor/policy.c +67 -10

77 lines not on this page · raw message

security/apparmor/policy_ns.c +2 -0
index 1f02cfe1d974..06c0bde97a63 100644

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

security/apparmor/policy_unpack.c +37 -12

49 lines not on this page · raw message

security/integrity/ima/ima_kexec.c +128 -20

148 lines not on this page · raw message

sound/pci/hda/cs35l56_hda.c +7 -7
index 7823f71012a8..2a936f43fad2 100644

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

sound/pci/hda/patch_conexant.c +11 -0
index 482e801a496a..b7c9eba9236d 100644

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

sound/pci/hda/patch_realtek.c +2 -0
index 85178a0303a5..c13def0f1e1a 100644

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

sound/usb/endpoint.c +6 -3
index cb94c2cad221..9d22613f71e2 100644

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

sound/usb/mixer_scarlett2.c +5 -9
index f6292c4b8d21..124284010417 100644

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

sound/usb/quirks.c +1 -1
index 947467112409..41752b819746 100644

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

sound/usb/validate.c +1 -1
index 4bb4893f6e74..f62b7cc041dc 100644

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

tools/testing/kunit/kunit_kernel.py +4 -2
index 61931c4926fd..12b0f2ee5665 100644

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

tools/testing/kunit/kunit_tool_test.py +26 -0
index 2beb7327e53f..70e5d0abe87f 100755

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

tools/testing/selftests/arm64/abi/hwcap.c +2 -2
index 265654ec48b9..097bd51e14ca 100644

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

tools/testing/selftests/kselftest_harness.h +12 -3
index 666c9fde76da..a4e5b8613bab 100644

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

tools/testing/selftests/net/mptcp/mptcp_join.sh +13 -0
index 631dd9889321..91271cfb950f 100755

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

tools/testing/selftests/net/mptcp/simult_flows.sh +7 -4
index 8fa77c8e9b65..8c71b18fdad3 100755

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

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

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