Linux 5.15.181
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.15.181 kernel.
All users of the 5.15 kernel series must upgrade.
The updated 5.15.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.15.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/scsi/libsas.rst | 2 Makefile | 5 arch/arm64/boot/dts/mediatek/mt8173.dtsi | 6 arch/arm64/include/asm/cputype.h | 4 arch/arm64/include/asm/fpsimd.h | 4 arch/arm64/include/asm/kvm_host.h | 17 arch/arm64/include/asm/kvm_hyp.h | 7 arch/arm64/include/asm/processor.h | 7 arch/arm64/include/asm/spectre.h | 1 arch/arm64/kernel/fpsimd.c | 117 +++- arch/arm64/kernel/process.c | 3 arch/arm64/kernel/proton-pack.c | 218 ++++---- arch/arm64/kernel/ptrace.c | 3 arch/arm64/kernel/signal.c | 3 arch/arm64/kvm/arm.c | 1 arch/arm64/kvm/fpsimd.c | 72 +- arch/arm64/kvm/hyp/entry.S | 5 arch/arm64/kvm/hyp/include/hyp/switch.h | 86 ++- arch/arm64/kvm/hyp/nvhe/hyp-main.c | 9 arch/arm64/kvm/hyp/nvhe/switch.c | 52 +- arch/arm64/kvm/hyp/vhe/switch.c | 4 arch/arm64/kvm/reset.c | 3 arch/mips/dec/prom/init.c | 2 arch/mips/include/asm/ds1287.h | 2 arch/mips/include/asm/mips-cm.h | 22 arch/mips/kernel/cevt-ds1287.c | 1 arch/mips/kernel/mips-cm.c | 14 arch/parisc/kernel/pdt.c | 2 arch/powerpc/kernel/rtas.c | 4 arch/riscv/include/asm/kgdb.h | 9 arch/riscv/include/asm/syscall.h | 7 arch/riscv/kernel/kgdb.c | 6 arch/riscv/kernel/setup.c | 36 + arch/s390/kvm/trace-s390.h | 4 arch/sparc/mm/tlb.c | 5 arch/x86/entry/entry.S | 2 arch/x86/events/intel/ds.c | 8 arch/x86/events/intel/uncore_snbep.c | 107 ---- arch/x86/kernel/cpu/amd.c | 2 arch/x86/kernel/cpu/bugs.c | 30 - arch/x86/kernel/e820.c | 17 arch/x86/kvm/svm/avic.c | 60 +- arch/x86/kvm/vmx/posted_intr.c | 28 - arch/x86/mm/tlb.c | 6 arch/x86/platform/pvh/head.S | 7 block/blk-cgroup.c | 24 block/blk-iocost.c | 7 crypto/crypto_null.c | 39 + drivers/acpi/platform_profile.c | 20 drivers/acpi/pptt.c | 4 drivers/ata/ahci.c | 2 drivers/ata/libata-eh.c | 11 drivers/ata/pata_pxa.c | 6 drivers/ata/sata_sx4.c | 118 +--- drivers/auxdisplay/hd44780.c | 9 drivers/base/devres.c | 7 drivers/block/loop.c | 9 drivers/bluetooth/btrtl.c | 2 drivers/bluetooth/hci_ldisc.c | 19 drivers/bluetooth/hci_uart.h | 1 drivers/bus/mhi/host/main.c | 16 drivers/char/virtio_console.c | 7 drivers/clk/clk.c | 4 drivers/clocksource/timer-stm32-lp.c | 4 drivers/comedi/drivers/jr3_pci.c | 17 drivers/cpufreq/cppc_cpufreq.c | 2 drivers/cpufreq/cpufreq.c | 8 drivers/cpufreq/scmi-cpufreq.c | 10 drivers/cpufreq/scpi-cpufreq.c | 13 drivers/crypto/atmel-sha204a.c | 7 drivers/crypto/caam/qi.c | 6 drivers/crypto/ccp/sp-pci.c | 15 drivers/dma-buf/udmabuf.c | 2 drivers/dma/dmatest.c | 6 drivers/gpio/gpio-tegra186.c | 95 ++- drivers/gpio/gpio-zynq.c | 1 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 6 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 10 drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 2 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 20 drivers/gpu/drm/amd/display/dc/core/dc_link.c | 2 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 22 drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c | 2 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c | 3 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubp.c | 2 drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_thermal.c | 4 drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c | 4 drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_thermal.c | 2 drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c | 3 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 2 drivers/gpu/drm/drm_atomic_helper.c | 2 drivers/gpu/drm/drm_panel.c | 5 drivers/gpu/drm/drm_panel_orientation_quirks.c | 10 drivers/gpu/drm/i915/gt/intel_engine_cs.c | 7 drivers/gpu/drm/mediatek/mtk_dpi.c | 9 drivers/gpu/drm/msm/adreno/a6xx.xml.h | 4 drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 148 +++-- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 14 drivers/gpu/drm/msm/adreno/a6xx_gpu.h | 1 drivers/gpu/drm/nouveau/nouveau_bo.c | 3 drivers/gpu/drm/nouveau/nouveau_gem.c | 3 drivers/gpu/drm/sti/Makefile | 2 drivers/gpu/drm/tiny/repaper.c | 4 drivers/hid/usbhid/hid-pidff.c | 60 +- drivers/hsi/clients/ssi_protocol.c | 1 drivers/i2c/busses/i2c-cros-ec-tunnel.c | 3 drivers/i3c/master.c | 3 drivers/i3c/master/svc-i3c-master.c | 2 drivers/iio/adc/ad7768-1.c | 5 drivers/infiniband/core/umem_odp.c | 6 drivers/infiniband/hw/bnxt_re/qplib_fp.c | 3 drivers/infiniband/hw/hns/hns_roce_main.c | 2 drivers/infiniband/hw/qib/qib_fs.c | 1 drivers/infiniband/hw/usnic/usnic_ib_main.c | 14 drivers/iommu/amd/iommu.c | 2 drivers/mcb/mcb-parse.c | 2 drivers/md/dm-cache-target.c | 24 drivers/md/dm-integrity.c | 3 drivers/md/raid1.c | 26 - drivers/md/raid10.c | 1 drivers/media/common/siano/smsdvb-main.c | 2 drivers/media/i2c/adv748x/adv748x.h | 2 drivers/media/i2c/ccs/ccs-core.c | 6 drivers/media/i2c/ov7251.c | 4 drivers/media/platform/qcom/venus/hfi_parser.c | 100 ++- drivers/media/platform/qcom/venus/hfi_venus.c | 18 drivers/media/rc/streamzap.c | 135 ++--- drivers/media/test-drivers/vim2m.c | 6 drivers/media/v4l2-core/v4l2-dv-timings.c | 4 drivers/mfd/ene-kb3930.c | 2 drivers/misc/mei/hw-me-regs.h | 1 drivers/misc/mei/pci-me.c | 1 drivers/misc/pci_endpoint_test.c | 6 drivers/mtd/inftlcore.c | 9 drivers/mtd/mtdpstore.c | 12 drivers/mtd/nand/raw/brcmnand/brcmnand.c | 2 drivers/mtd/nand/raw/r852.c | 3 drivers/net/dsa/b53/b53_common.c | 10 drivers/net/dsa/mv88e6xxx/chip.c | 32 + drivers/net/dsa/mv88e6xxx/devlink.c | 3 drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 1 drivers/net/ethernet/intel/igc/igc_defines.h | 1 drivers/net/ethernet/intel/igc/igc_main.c | 1 drivers/net/ethernet/intel/igc/igc_ptp.c | 93 ++- drivers/net/ethernet/microsoft/mana/mana.h | 2 drivers/net/ethernet/microsoft/mana/mana_en.c | 21 drivers/net/phy/phy_led_triggers.c | 23 drivers/net/ppp/ppp_synctty.c | 5 drivers/net/wireless/ath/ath10k/sdio.c | 5 drivers/net/wireless/atmel/at76c50x-usb.c | 2 drivers/net/wireless/mediatek/mt76/eeprom.c | 4 drivers/net/wireless/mediatek/mt76/mt76x2/usb.c | 1 drivers/net/wireless/ti/wl1251/tx.c | 4 drivers/ntb/hw/idt/ntb_hw_idt.c | 18 drivers/ntb/ntb_transport.c | 2 drivers/nvme/host/core.c | 9 drivers/nvme/target/fc.c | 39 - drivers/nvme/target/fcloop.c | 2 drivers/of/irq.c | 13 drivers/pci/controller/pcie-brcmstb.c | 13 drivers/pci/controller/vmd.c | 12 drivers/pci/pci.c | 107 ++-- drivers/pci/probe.c | 54 +- drivers/pci/remove.c | 7 drivers/perf/arm_pmu.c | 8 drivers/phy/tegra/xusb.c | 2 drivers/pinctrl/qcom/pinctrl-msm.c | 12 drivers/platform/x86/asus-laptop.c | 9 drivers/pwm/pwm-fsl-ftm.c | 6 drivers/pwm/pwm-mediatek.c | 8 drivers/pwm/pwm-rcar.c | 24 drivers/s390/char/sclp_con.c | 17 drivers/s390/char/sclp_tty.c | 12 drivers/scsi/aic94xx/aic94xx.h | 1 drivers/scsi/aic94xx/aic94xx_init.c | 1 drivers/scsi/aic94xx/aic94xx_tmf.c | 9 drivers/scsi/hisi_sas/hisi_sas.h | 14 drivers/scsi/hisi_sas/hisi_sas_main.c | 363 ++++++-------- drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 2 drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 13 drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 16 drivers/scsi/isci/init.c | 1 drivers/scsi/isci/task.c | 18 drivers/scsi/isci/task.h | 4 drivers/scsi/lpfc/lpfc_els.c | 51 + drivers/scsi/lpfc/lpfc_hbadisc.c | 2 drivers/scsi/mvsas/mv_defs.h | 5 drivers/scsi/mvsas/mv_init.c | 1 drivers/scsi/mvsas/mv_sas.c | 31 - drivers/scsi/mvsas/mv_sas.h | 1 drivers/scsi/pm8001/pm8001_hwi.c | 4 drivers/scsi/pm8001/pm8001_init.c | 1 drivers/scsi/pm8001/pm8001_sas.c | 27 - drivers/scsi/pm8001/pm8001_sas.h | 11 drivers/scsi/scsi_transport_iscsi.c | 7 drivers/scsi/st.c | 2 drivers/scsi/ufs/ufs_bsg.c | 1 drivers/soc/samsung/exynos-chipid.c | 74 ++ drivers/soc/ti/omap_prm.c | 2 drivers/spi/spi-cadence-quadspi.c | 6 drivers/thermal/rockchip_thermal.c | 1 drivers/tty/serial/sifive.c | 6 drivers/usb/cdns3/cdns3-gadget.c | 2 drivers/usb/chipidea/ci_hdrc_imx.c | 44 + drivers/usb/class/cdc-wdm.c | 21 drivers/usb/core/quirks.c | 9 drivers/usb/dwc3/dwc3-pci.c | 10 drivers/usb/dwc3/gadget.c | 6 drivers/usb/gadget/udc/aspeed-vhub/dev.c | 3 drivers/usb/host/max3421-hcd.c | 7 drivers/usb/host/ohci-pci.c | 23 drivers/usb/host/xhci-ring.c | 11 drivers/usb/serial/ftdi_sio.c | 2 drivers/usb/serial/ftdi_sio_ids.h | 5 drivers/usb/serial/option.c | 3 drivers/usb/serial/usb-serial-simple.c | 7 drivers/usb/storage/unusual_uas.h | 7 drivers/vdpa/mlx5/core/mr.c | 7 drivers/video/backlight/led_bl.c | 11 drivers/video/fbdev/omap2/omapfb/dss/dispc.c | 6 drivers/xen/Kconfig | 2 drivers/xen/xenfs/xensyms.c | 4 fs/Kconfig | 1 fs/btrfs/super.c | 3 fs/cifs/cifs_debug.c | 4 fs/cifs/cifsglob.h | 1 fs/cifs/cifsproto.h | 7 fs/cifs/connect.c | 2 fs/cifs/fs_context.c | 5 fs/cifs/ioctl.c | 3 fs/cifs/smb2misc.c | 11 fs/cifs/smb2ops.c | 48 + fs/cifs/smb2pdu.c | 10 fs/cifs/transport.c | 43 - fs/ext4/block_validity.c | 5 fs/ext4/inode.c | 75 ++ fs/ext4/namei.c | 2 fs/ext4/super.c | 19 fs/ext4/xattr.c | 11 fs/f2fs/f2fs.h | 12 fs/f2fs/node.c | 9 fs/f2fs/super.c | 27 - fs/f2fs/sysfs.c | 14 fs/fuse/virtio_fs.c | 3 fs/hfs/bnode.c | 6 fs/hfsplus/bnode.c | 6 fs/isofs/export.c | 2 fs/jbd2/journal.c | 1 fs/jfs/jfs_dinode.h | 2 fs/jfs/jfs_dmap.c | 12 fs/jfs/jfs_imap.c | 10 fs/jfs/jfs_incore.h | 2 fs/jfs/jfs_txnmgr.c | 4 fs/jfs/jfs_xtree.c | 4 fs/jfs/jfs_xtree.h | 37 - fs/ksmbd/oplock.c | 2 fs/ksmbd/smb2misc.c | 22 fs/ksmbd/smb2pdu.c | 49 + fs/ksmbd/transport_ipc.c | 7 fs/namespace.c | 3 fs/nfs/Kconfig | 2 fs/nfs/internal.h | 22 fs/nfs/nfs4session.h | 4 fs/nfsd/Kconfig | 1 fs/nfsd/nfs4state.c | 2 fs/nfsd/nfsfh.h | 7 fs/ntfs3/file.c | 1 fs/proc/array.c | 53 +- include/linux/backing-dev.h | 1 include/linux/blk-cgroup.h | 1 include/linux/filter.h | 9 include/linux/nfs.h | 13 include/linux/pci.h | 1 include/linux/sched/task_stack.h | 2 include/linux/soc/samsung/exynos-chipid.h | 6 include/net/bluetooth/bluetooth.h | 1 include/net/net_namespace.h | 1 include/net/sctp/structs.h | 3 include/net/sock.h | 10 include/scsi/libsas.h | 10 include/uapi/linux/kfd_ioctl.h | 2 include/uapi/linux/landlock.h | 2 include/xen/interface/xen-mca.h | 2 init/Kconfig | 3 kernel/bpf/helpers.c | 14 kernel/bpf/syscall.c | 17 kernel/dma/contiguous.c | 3 kernel/locking/lockdep.c | 3 kernel/sched/cpufreq_schedutil.c | 18 kernel/trace/ftrace.c | 1 kernel/trace/trace_events.c | 4 kernel/trace/trace_events_filter.c | 4 lib/sg_split.c | 2 lib/string.c | 15 lib/test_ubsan.c | 18 mm/filemap.c | 2 mm/gup.c | 4 mm/memory-failure.c | 11 mm/memory.c | 4 mm/vmscan.c | 2 net/8021q/vlan_dev.c | 31 - net/bluetooth/af_bluetooth.c | 22 net/bluetooth/hci_event.c | 5 net/bluetooth/l2cap_core.c | 3 net/bluetooth/sco.c | 18 net/core/dev.c | 1 net/core/filter.c | 80 +-- net/core/net_namespace.c | 21 net/core/page_pool.c | 8 net/core/rtnetlink.c | 2 net/core/selftests.c | 18 net/core/sock.c | 10 net/dsa/tag_8021q.c | 2 net/ethtool/netlink.c | 8 net/ipv6/route.c | 6 net/mac80211/iface.c | 3 net/mac80211/mesh_hwmp.c | 14 net/mctp/af_mctp.c | 3 net/mptcp/sockopt.c | 16 net/mptcp/subflow.c | 23 net/netfilter/ipvs/ip_vs_ctl.c | 10 net/netfilter/nft_set_pipapo_avx2.c | 3 net/openvswitch/actions.c | 4 net/openvswitch/flow_netlink.c | 3 net/phonet/pep.c | 41 + net/sched/sch_hfsc.c | 23 net/sctp/socket.c | 22 net/sctp/transport.c | 2 net/tipc/link.c | 1 net/tipc/monitor.c | 3 net/tls/tls_main.c | 6 security/landlock/errata.h | 87 +++ security/landlock/setup.c | 30 + security/landlock/setup.h | 3 security/landlock/syscalls.c | 22 sound/pci/hda/hda_intel.c | 15 sound/soc/codecs/lpass-wsa-macro.c | 117 +++- sound/soc/codecs/wcd934x.c | 2 sound/soc/fsl/fsl_audmix.c | 16 sound/soc/qcom/qdsp6/q6asm-dai.c | 19 sound/usb/midi.c | 80 ++- sound/virtio/virtio_pcm.c | 21 tools/objtool/check.c | 3 tools/power/cpupower/bench/parse.c | 4 tools/testing/ktest/ktest.pl | 8 tools/testing/selftests/landlock/base_test.c | 46 + tools/testing/selftests/mincore/mincore_selftest.c | 3 tools/testing/selftests/ublk/test_stripe_04.sh | 24 tools/testing/selftests/vm/charge_reserved_hugetlb.sh | 4 tools/testing/selftests/vm/hugetlb_reparenting_test.sh | 2 352 files changed, 3456 insertions(+), 1946 deletions(-)
Abdun Nihaal (3):
wifi: at76c50x: fix use after free access in at76_disconnect
wifi: wl1251: fix memory leak in wl1251_tx_work
cxgb4: fix memory leak in cxgb4_init_ethtool_filters() error pathAbhinav Kumar (1):
drm: allow encoder mode_set even when connectors change for crtc
Adam Xue (1):
USB: serial: option: add Sierra Wireless EM9291
Akhil P Oommen (4):
drm/msm/a6xx: Improve gpu recovery sequence drm/msm/a6xx: Handle GMU prepare-slumber hfi failure drm/msm/a6xx: Avoid gx gbit halt during rpm suspend drm/msm/a6xx: Fix stale rpmh votes from GPU
Al Viro (1):
qibfs: fix _another_ leak
Alex Williamson (1):
Revert "PCI: Avoid reset when disabled via sysfs"
Alexander Potapenko (1):
kmsan: disable strscpy() optimization under KMSAN
Alexander Stein (1):
usb: host: max3421-hcd: Add missing spi_device_id table
Alexander Usyskin (1):
mei: me: add panther lake H DID
Alexandra Diupina (1):
cifs: avoid NULL pointer dereference in dbg call
Alexandre Torgue (1):
clocksource/drivers/stm32-lptimer: Use wakeup capable instead of init wakeup
Alexey Klimov (1):
ASoC: qdsp6: q6asm-dai: fix q6asm_dai_compr_set_params error path
Andreas Gruenbacher (1):
writeback: fix false warning in inode_to_wb()
Andrew Wyatt (2):
drm: panel-orientation-quirks: Add support for AYANEO 2S
drm: panel-orientation-quirks: Add new quirk for GPD Win 2
Andrii Nakryiko (1):
bpf: avoid holding freeze_mutex during mmap operation
Andy Shevchenko (1):
usb: dwc3: gadget: Avoid using reserved endpoints on Intel Merrifield
AngeloGioacchino Del Regno (1):
drm/mediatek: mtk_dpi: Explicitly manage TVD clock in power on/off
Ard Biesheuvel (1):
x86/pvh: Call C code via the kernel virtual mapping
Arnaud Lecomte (1):
net: ppp: Add bound checking for skb data on ppp_sync_txmung
Arnd Bergmann (2):
dma/contiguous: avoid warning about unused size_bytes
ntb: reduce stack usage in idt_scan_mws
Arseniy Krasnov (2):
Bluetooth: hci_uart: fix race during initialization
Bluetooth: hci_uart: Fix another race during initialization
Artem Sadovnikov (1):
ext4: fix off-by-one error in do_split
Ayush Jain (1):
ktest: Fix Test Failures Due to Missing LOG_FILE Directories
Baoquan He (1):
mm/gup: fix wrongly calculated returned value in fault_in_safe_writeable()
Ben Dooks (1):
bpf: Add endian modifiers to fix endian warnings
Bhupesh (1):
ext4: ignore xattrs past end
Björn Töpel (1):
riscv: Properly export reserved regions in /proc/iomem
Boqun Feng (1):
locking/lockdep: Decrease nr_unused_locks if lock unused in zap_class()
Chao Yu (2):
f2fs: fix to avoid out-of-bounds access in f2fs_truncate_inode_blocks()
f2fs: check validation of fault attrs in f2fs_build_fault_attr()
Chen Hanxiao (1):
ipvs: properly dereference pe in ip_vs_add_service
Chen-Yu Tsai (1):
arm64: dts: mediatek: mt8173: Fix disp-pwm compatible string
ChenXiaoSong (1):
smb/server: fix potential null-ptr-deref of lease_ctx_info in smb2_open()
Chengchang Tang (1):
RDMA/hns: Fix wrong maximum DMA segment size
Chenyuan Yang (3):
mfd: ene-kb3930: Fix a potential NULL pointer dereference
soc: samsung: exynos-chipid: Add NULL pointer check in exynos_chipid_probe()
usb: gadget: aspeed: Add NULL pointer check in ast_vhub_init_dev()
Chris Bainbridge (1):
drm/nouveau: prime: fix ttm_bo_delayed_delete oops
Chris Wilson (1):
drm/i915/gt: Cleanup partial engine discovery failures
Christopher S M Hall (4):
igc: fix PTM cycle trigger logic
igc: move ktime snapshot into PTM retry loop
igc: handle the IGC_PTP_ENABLED flag correctly
igc: cleanup PTP module if probe fails
Cong Wang (2):
net_sched: hfsc: Fix a UAF vulnerability in class handling
net_sched: hfsc: Fix a potential UAF in hfsc_dequeue() too
Craig Hesling (1):
USB: serial: simple: add OWON HDS200 series oscilloscope support
Dan Carpenter (1):
Bluetooth: btrtl: Prevent potential NULL dereference
Daniel Kral (1):
ahci: add PCI ID for Marvell 88SE9215 SATA Controller
Daniel Wagner (3):
nvmet-fcloop: swap list_add_tail arguments
nvmet-fc: take tgtport reference only once
nvmet-fc: put ref when assoc->del_work is already scheduled
Dapeng Mi (1):
perf/x86/intel: Allow to update user space GPRs from PEBS records
Dave Kleikamp (1):
jfs: define xtree root and page independently
David Yat Sin (1):
drm/amdkfd: clamp queue size to minimum
Denis Arefev (7):
asus-laptop: Fix an uninitialized variable
drm/amd/pm: Prevent division by zero drm/amd/pm/powerplay: Prevent division by zero drm/amd/pm/powerplay/hwmgr/smu7_thermal: Prevent division by zero drm/amd/pm/swsmu/smu13/smu_v13_0: Prevent division by zero drm/amd/pm/powerplay/hwmgr/vega20_thermal: Prevent division by zero
ksmbd: Prevent integer overflow in calculation of deadtime
Douglas Anderson (6):
arm64: cputype: Add QCOM_CPU_PART_KRYO_3XX_GOLD
arm64: cputype: Add MIDR_CORTEX_A76AE
arm64: errata: Add QCOM_KRYO_4XX_GOLD to the spectre_bhb_k24_list
arm64: errata: Assume that unknown CPUs _are_ vulnerable to Spectre BHB
arm64: errata: Add KRYO 2XX/3XX/4XX silver cores to Spectre BHB safe list
arm64: errata: Add newer ARM cores to the spectre_bhb_loop_affected() lists
Edward Adam Davis (4):
jfs: Prevent copying of nlink with value 0 from disk inode
jfs: add sanity check for agwidth in dbMount
isofs: Prevent the use of too small fid fs/ntfs3: Fix WARNING in ntfs_extend_initialized_size
Enzo Matsumiya (2):
smb: client: fix UAF in async decryption
cifs: print TIDs as hex
Eric Biggers (1):
nfs: add missing selections of CONFIG_CRC32
Eric Dumazet (2):
net: make sock_inuse_add() available
net: defer final 'struct net' free in netns dismantle
Fedor Pchelkin (4):
ntb: use 64-bit arithmetic for the MSI doorbell mask
usb: chipidea: ci_hdrc_imx: fix usbmisc handling
usb: chipidea: ci_hdrc_imx: fix call balance of regulator routines
usb: chipidea: ci_hdrc_imx: implement usb_phy_init() error handling
Felix Huettner (1):
net: openvswitch: fix race on port output
Florian Westphal (1):
nft_set_pipapo: fix incorrect avx2 match of 5th field octet
Frode Isaksen (1):
usb: dwc3: gadget: check that event count does not exceed event buffer length
Frédéric Danis (1):
Bluetooth: l2cap: Check encryption key size on incoming connection
Fuad Tabba (1):
KVM: arm64: Calculate cptr_el2 traps on activating traps
Gabriele Paoloni (1):
tracing: fix return value in __ftrace_event_enable_disable for TRACE_REG_UNREGISTER
Gang Yan (1):
mptcp: fix NULL pointer in can_accept_new_subflow
Gavrilov Ilia (1):
wifi: mac80211: fix integer overflow in hwmp_route_info_get()
Geert Uytterhoeven (2):
pwm: rcar: Simplify multiplication/shift logic
PCI: Fix dropping valid root bus resources with .end = zero
Greg Kroah-Hartman (1):
Linux 5.15.181
Gregory CLEMENT (1):
MIPS: cm: Detect CM quirks from device tree
Guixin Liu (2):
scsi: ufs: bsg: Set bsg_queue to NULL after removal
gpio: tegra186: fix resource handling in ACPI probe path
Halil Pasic (1):
virtio_console: fix missing byte order handling for cols and rows
Hannes Reinecke (4):
ata: sata_sx4: Drop pointless VPRINTK() calls and convert the remaining ones
nvme: requeue namespace scan on missed AENs
nvme: re-read ANA log page after ns scan completes
nvme: fixup scan failure for non-ANA multipath controllers
Haoxiang Li (5):
wifi: mt76: Add check for devm_kstrdup()
auxdisplay: hd44780: Fix an API misuse in hd44780.c
mcb: fix a double free bug in chameleon_parse_gdd() s390/sclp: Add check for get_zeroed_page() s390/tty: Fix a potential memory leak bug
Heiko Stuebner (1):
clk: check for disabled clock-provider in of_clk_get_hw_from_clkspec()
Henry Martin (3):
ata: pata_pxa: Fix potential NULL pointer dereference in pxa_ata_probe()
cpufreq: scmi: Fix null-ptr-deref in scmi_cpufreq_get_rate()
cpufreq: scpi: Fix null-ptr-deref in scpi_cpufreq_get_rate()
Herbert Xu (2):
crypto: caam/qi - Fix drv_ctx refcount bug
crypto: null - Use spin lock instead of mutex
Hersen Wu (1):
drm/amd/display: Stop amdgpu_dm initialize when link nums greater than max_links
Herve Codina (1):
backlight: led_bl: Hold led_access lock when calling led_sysfs_disable()
Hou Tao (1):
bpf: Check rcu_read_lock_trace_held() before calling bpf map helpers
Huacai Chen (1):
USB: OHCI: Add quirk for LS7A OHCI controller (rev 0x02)
Ian Abbott (1):
comedi: jr3_pci: Fix synchronous deletion of timer
Icenowy Zheng (1):
wifi: mt76: mt76x2u: add TP-Link TL-WDN6200 ID to device table
Igor Pylypiv (1):
scsi: pm80xx: Set phy_attached to zero when device is gone
Ilya Maximets (2):
net: openvswitch: fix nested key length validation in the set() action
openvswitch: fix lockup on tx to unregistering netdev with carrier
Jakub Kicinski (1):
net: tls: explicitly disallow disconnect
James Smart (1):
scsi: lpfc: Fix null pointer dereference after failing to issue FLOGI and PLOGI
Jan Beulich (1):
xenfs/xensyms: respect hypervisor's "next" indication
Jan Kara (1):
jbd2: remove wrong sb->s_sequence check
Jann Horn (1):
ext4: don't treat fhandle lookup of ea_inode as FS corruption
Jason Andryuk (1):
xen: Change xen-acpi-processor dom0 dependency
Jason Xing (1):
page_pool: avoid infinite loop to schedule delayed worker
Jean-Marc Eurin (1):
ACPI PPTT: Fix coding mistakes in a couple of sizeof() calls
Jeff Hugo (1):
bus: mhi: host: Fix race between unprepare and queue_buf
Jeff Layton (1):
nfs: move nfs_fhandle_hash to common include file
Jiasheng Jiang (2):
mtd: Add check for devm_kcalloc()
mtd: Replace kcalloc() with devm_kcalloc()
Johannes Berg (1):
Revert "wifi: mac80211: Update skb's control block key in ieee80211_tx_dequeue()"
Johannes Kimmel (1):
btrfs: correctly escape subvol in btrfs_show_options()
John Garry (6):
scsi: hisi_sas: Start delivery hisi_sas_task_exec() directly
scsi: hisi_sas: Pass abort structure for internal abort
scsi: hisi_sas: Factor out task prep and delivery code
scsi: hisi_sas: Fix setting of hisi_sas_slot.is_internal
scsi: libsas: Delete lldd_clear_aca callback
scsi: libsas: Add struct sas_tmf_task
John Stultz (1):
sound/virtio: Fix cancel_sync warnings on uninitialized work_structs
Jonas Gorski (1):
net: b53: enable BPDU reception for management port
Jonathan Cameron (1):
iio: adc: ad7768-1: Move setting of val a bit later to avoid unnecessary return value check
Josh Poimboeuf (6):
pwm: mediatek: Prevent divide-by-zero in pwm_mediatek_config()
objtool, ASoC: codecs: wcd934x: Remove potential undefined behavior in wcd934x_slim_irq_handler()
objtool: Stop UNRET validation on UD2
x86/bugs: Use SBPB in write_ibpb() if applicable
x86/bugs: Don't fill RSB on VMEXIT with eIBRS+retpoline
x86/bugs: Don't fill RSB on context switch with eIBRS
Kai Mäkisara (1):
scsi: st: Fix array overflow in st_setup()
Kai-Heng Feng (1):
PCI: Coalesce host bridge contiguous apertures
Kaixin Wang (1):
HSI: ssi_protocol: Fix use after free vulnerability in ssi_protocol Driver Due to Race Condition
Kamal Dasu (1):
mtd: rawnand: brcmnand: fix PM resume warning
Kan Liang (3):
perf/x86/intel/uncore: Fix the scale of IIO free running counters on SNR perf/x86/intel/uncore: Fix the scale of IIO free running counters on ICX perf/x86/intel/uncore: Fix the scale of IIO free running counters on SPR
Kang Yang (1):
wifi: ath10k: avoid NULL pointer error during sdio remove
Karina Yankevich (1):
media: v4l2-dv-timings: prevent possible overflow in v4l2_detect_gtf()
Kees Cook (1):
xen/mcelog: Add __nonstring annotations for unterminated strings
Kirill A. Shutemov (1):
mm: fix apply_to_existing_page_range()
Krzysztof Kozlowski (2):
gpio: zynq: Fix wakeup source leaks on device unbind
soc: samsung: exynos-chipid: avoid soc_device_to_device()
Kunihiko Hayashi (3):
misc: pci_endpoint_test: Avoid issue of interrupts remaining after request_irq error
misc: pci_endpoint_test: Fix displaying 'irq_type' after 'request_irq' error
misc: pci_endpoint_test: Fix 'irq_type' to convey the correct type
Kunwu Chan (1):
pmdomain: ti: Add a null pointer check to the omap_prm_domain_init
Leonid Arapov (1):
fbdev: omapfb: Add 'plane' value check
Li Lingfeng (1):
nfsd: decrease sc_count directly if fail to queue dl_recall
Li Nan (1):
blk-iocost: do not WARN if iocg was already offlined
Luca Ceresoli (1):
drm/bridge: panel: forbid initializing a panel with unknown connector type
Lucas De Marchi (1):
drivers: base: devres: Allow to release group on device release
Luiz Augusto von Dentz (2):
Bluetooth: hci_event: Fix sending MGMT_EV_DEVICE_FOUND for invalid address
Bluetooth: SCO: Fix UAF on sco_sock_timeout
Ma Ke (2):
PCI: Fix reference leak in pci_alloc_child_bus()
PCI: Fix reference leak in pci_register_host_bridge()
Manjunatha Venkatesh (1):
i3c: Add NULL pointer check in i3c_master_queue_ibi()
Marc Zyngier (2):
KVM: arm64: Always start with clearing SVE flag on load
cpufreq: cppc: Fix invalid return value in .get() callback
Marek Behún (6):
net: dsa: mv88e6xxx: workaround RGMII transmit delay erratum for 6320 family
net: dsa: mv88e6xxx: fix VTU methods for 6320 family
crypto: atmel-sha204a - Set hwrng quality to lowest possible
net: dsa: mv88e6xxx: fix atu_move_port_mask for 6341 family
net: dsa: mv88e6xxx: enable PVT for 6321 switch
net: dsa: mv88e6xxx: enable .port_set_policy() for 6320 family
Mark Brown (6):
KVM: arm64: Get rid of host SVE tracking/saving
KVM: arm64: Discard any SVE state when entering KVM guests arm64/fpsimd: Track the saved FPSIMD state type separately to TIF_SVE arm64/fpsimd: Have KVM explicitly say which FP registers to save arm64/fpsimd: Stop using TIF_SVE to manage register saving in KVM selftests/mm: generate a temporary mountpoint for cgroup filesystem
Mark Rutland (5):
perf: arm_pmu: Don't disable counter in armpmu_add()
KVM: arm64: Unconditionally save+flush host FPSIMD/SVE/SME state
KVM: arm64: Remove host FPSIMD saving for non-protected KVM
KVM: arm64: Remove VHE host restore of CPACR_EL1.ZEN
KVM: arm64: Eagerly switch ZCR_EL{1,2}
Mathieu Desnoyers (1):
mm: add missing release barrier on PGDAT_RECLAIM_LOCKED unlock
Matt Johnston (1):
net: mctp: Set SOCK_RCU_FREE
Matthew Auld (1):
drm/amdgpu/dma_buf: fix page_link check
Matthew Majewski (1):
media: vim2m: print device name after registering device
Matthieu Baerts (NGI0) (2):
mptcp: only inc MPJoinAckHMacFailure for HMAC failures
mptcp: sockopt: fix getting IPV6_V6ONLY
Max Grobecker (1):
x86/cpu: Don't clear X86_FEATURE_LAHF_LM flag in init_amd_k8() on AMD when running in a virtual machine
Maxim Mikityanskiy (1):
ALSA: hda: intel: Fix Optimus when GPU has no sound
Maxime Chevallier (1):
net: ethtool: Don't call .cleanup_data when prepare_data fails
Meir Elisha (1):
md/raid1: Add check for missing source disk in process_checks()
Miao Li (2):
usb: quirks: add DELAY_INIT quirk for Silicon Motion Flash Drive
usb: quirks: Add delay init quirk for SanDisk 3.2Gen1 Flash Drive
Miaoqian Lin (2):
scsi: iscsi: Fix missing scsi_host_put() in error path
phy: tegra: xusb: Fix return value of tegra_xusb_find_port_node function
Michael Ehrenreich (1):
USB: serial: ftdi_sio: add support for Abacus Electrics Optical Probe
Michal Pecio (1):
usb: xhci: Avoid Stop Endpoint retry loop if the endpoint seems Running
Michal Schmidt (1):
bnxt_re: avoid shift undefined behavior in bnxt_qplib_alloc_init_hwq
Mickaël Salaün (1):
landlock: Add the errata interface
Mikulas Patocka (1):
dm-integrity: set ti->error on memory allocation failure
Ming Lei (1):
selftests: ublk: fix test_stripe_04
Ming-Hung Tsai (1):
dm cache: fix flushing uninitialized delayed_work on cache_ctr error
Miquel Raynal (1):
spi: cadence-qspi: Fix probe on AM62A LP SK
Mostafa Saleh (1):
ubsan: Fix panic from test_ubsan_out_of_bounds
Murad Masimov (2):
media: streamzap: prevent processing IR data on URB failure
media: streamzap: fix race between device disconnection and urb callback
Myrrh Periwinkle (1):
x86/e820: Fix handling of subpage regions when calculating nosave ranges in e820__register_nosave_regions()
Namjae Jeon (1):
ksmbd: fix potencial out-of-bounds when buffer offset is invalid
Nathan Chancellor (4):
ACPI: platform-profile: Fix CFI violation when accessing sysfs files
riscv: Avoid fortify warning in syscall_get_arguments()
kbuild: Add '-fno-builtin-wcslen'
f2fs: Add inline to f2fs_build_fault_attr() stub
Nathan Lynch (1):
powerpc/rtas: Prevent Spectre v1 gadget construction in sys_rtas()
Nikita Zhandarovich (1):
drm/repaper: fix integer overflows in repeat functions
Niklas Cassel (1):
ata: libata-eh: Do not use ATAPI DMA for a device limited to PIO mode
Niklas Söderlund (1):
media: i2c: adv748x: Fix test pattern selection mask
Ojaswin Mujoo (2):
ext4: protect ext4_release_dquot against freezing
ext4: make block validity check resistent to sb bh corruption
Oleg Nesterov (2):
fs/proc: do_task_stat: use sig->stats_lock to gather the threads/children stats sched/isolation: Make CONFIG_CPU_ISOLATION depend on CONFIG_SMP
Oleksij Rempel (1):
net: selftests: initialize TCP header and skb payload with zero
Oliver Neukum (6):
USB: storage: quirk for ADATA Portable HDD CH94
USB: VLI disk crashes if LPM is used
USB: wdm: handle IO errors in wdm_wwan_port_start
USB: wdm: close race between wdm_open and wdm_wwan_port_stop
USB: wdm: wdm_wwan_port_tx_complete mutex in atomic context
USB: wdm: add annotation
Pali Rohár (1):
PCI: Assign PCI domain IDs by ida_alloc()
Paolo Abeni (1):
ipv6: release nexthop on device removal
Paulo Alcantara (5):
smb: client: fix potential UAF in cifs_dump_full_key()
smb: client: fix use-after-free bug in cifs_debug_data_proc_show()
smb: client: fix NULL ptr deref in crypto_aead_setkey()
smb: client: fix potential deadlock when releasing mids
smb: client: fix potential UAF in cifs_stats_proc_show()
Pei Li (1):
jfs: Fix shift-out-of-bounds in dbDiscardAG
Peter Collingbourne (1):
string: Add load_unaligned_zeropad() code path to sized_strscpy()
Philip Yang (1):
drm/amdkfd: Fix pqm_destroy_queue race with GPU reset
Qingfang Deng (1):
net: phy: leds: fix memory leak
Qiuxu Zhuo (1):
selftests/mincore: Allow read-ahead pages to reach the end of the file
Qun-Wei Lin (1):
sched/task_stack: fix object_is_on_stack() for KASAN tagged pointers
Rafael J. Wysocki (2):
cpufreq/sched: Fix the usage of CPUFREQ_NEED_UPDATE_LIMITS
cpufreq: Reference count policy in cpufreq_update_limits()
Ralph Siemsen (1):
usb: cdns3: Fix deadlock when using NCM gadget
Rand Deeb (2):
fs/jfs: cast inactags to s64 to prevent potential overflow fs/jfs: Prevent integer overflow in AG size calculation
Remi Pommarel (2):
wifi: mac80211: Update skb's control block key in ieee80211_tx_dequeue()
wifi: mac80211: Purge vif txq in ieee80211_do_stop()
Ricard Wanderlof (1):
ALSA: usb-audio: Fix CME quirk for UF series keyboards
Ricardo Cañuelo Navarro (1):
sctp: detect and prevent references to a freed transport in sendmsg
Rob Herring (1):
PCI: Fix use-after-free in pci_bus_release_domain_nr()
Rolf Eike Beer (1):
drm/sti: remove duplicate object names
Roman Li (1):
drm/amd/display: Fix gpu reset in multidisplay config
Roman Smirnov (1):
cifs: fix integer overflow in match_server()
Ross Lagerwall (1):
PCI: Release resource invalidated by coalescing
Ryan Roberts (1):
sparc/mm: disable preemption in lazy mmu mode
Ryo Takakura (2):
PCI: vmd: Make vmd_dev::cfg_lock a raw_spinlock_t type
serial: sifive: lock port in startup()/shutdown() callbacks
Rémi Denis-Courmont (1):
phonet/pep: fix racy skb_queue_empty() use
Sakari Ailus (4):
media: i2c: ccs: Set the device's runtime PM status correctly in remove
media: i2c: ccs: Set the device's runtime PM status correctly in probe
media: i2c: ov7251: Set enable GPIO low in probe
media: i2c: ov7251: Introduce 1 ms delay between regulators and en GPIO
Sam Protsenko (1):
soc: samsung: exynos-chipid: Pass revision reg offsets
Sean Christopherson (3):
iommu/amd: Return an error if vCPU affinity is set for non-vCPU IRTE
KVM: SVM: Allocate IR data using atomic allocation
KVM: x86: Reset IRTE to host control if *new* route isn't postable
Sean Young (4):
media: streamzap: remove unnecessary ir_raw_event_reset and handle
media: streamzap: no need for usb pid/vid in device name
media: streamzap: less chatter
media: streamzap: remove unused struct members
Sebastian Andrzej Siewior (1):
xdp: Reset bpf_redirect_info before running a xdp's BPF prog.
Sergiu Cuciurean (1):
iio: adc: ad7768-1: Fix conversion result sign
Shay Drory (1):
RDMA/core: Silence oversized kvmalloc() warning
Shengjiu Wang (1):
ASoC: fsl_audmix: register card device depends on 'dais' property
Shuai Xue (1):
mm/hwpoison: do not send SIGBUS to processes with recovered clean pages
Si-Wei Liu (1):
vdpa/mlx5: Fix oversized null mkey longer than 32bit
Souradeep Chakrabarti (1):
net: mana: Fix error handling in mana_create_txq/rxq's NAPI cleanup
Srinivas Kandagatla (2):
ASoC: codecs:lpass-wsa-macro: Fix vi feedback rate
ASoC: codecs:lpass-wsa-macro: Fix logic of enabling vi channels
Srinivasan Shanmugam (2):
drm/amd/display: Fix out-of-bounds access in 'dcn21_link_encoder_create' drm/amd/display: Add null checks for 'stream' and 'plane' before dereferencing
Stanimir Varbanov (1):
PCI: brcmstb: Fix missing of_node_put() in brcm_pcie_probe()
Stanislav Fomichev (1):
net: vlan: don't propagate flags on open
Stanley Chu (1):
i3c: master: svc: Use readsb helper for reading MDB
Stephan Gerhold (1):
pinctrl: qcom: Clear latched interrupt status when changing IRQ type
Steven Rostedt (1):
tracing: Fix filter string testing
T Pratham (1):
lib: scatterlist: fix sg_split_phys to preserve original scatterlist offsets
Thadeu Lima de Souza Cascardo (1):
i2c: cros-ec-tunnel: defer probe if parent EC is not present
Thierry Reding (1):
gpio: tegra186: Force one interrupt per bank
Thomas Bogendoerfer (1):
MIPS: cm: Fix warning if MIPS_CM is disabled
Thomas Weißschuh (3):
loop: properly send KOBJ_CHANGED uevent for disk device
loop: LOOP_SET_FD: send uevents for partitions
KVM: s390: Don't use %pK through tracepoints
Thorsten Leemhuis (1):
module: sign with sha512 instead of sha1 by default
Tim Huang (1):
drm/amd/display: fix double free issue during amdgpu module unload
Tom Lendacky (1):
crypto: ccp - Fix check for the primary ASP device
Tomasz Pakuła (3):
HID: pidff: Convert infinite length from Linux API to PID standard
HID: pidff: Do not send effect envelope if it's empty
HID: pidff: Fix null pointer dereference in pidff_find_fields
Trevor Woerner (1):
thermal/drivers/rockchip: Add missing rk3328 mapping entry
Trond Myklebust (2):
umount: Allow superblock owners to force umount
filemap: Fix bounds checking in filemap_read()
Tung Nguyen (2):
tipc: fix memory leak in tipc_link_xmit
tipc: fix NULL pointer dereference in tipc_mon_reinit_self()
Tuo Li (1):
scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan()
Uwe Kleine-König (4):
pwm: rcar: Improve register calculation
pwm: fsl-ftm: Handle clk_get_rate() returning 0
auxdisplay: hd44780: Convert to platform remove callback returning void
backlight: led_bl: Convert to platform remove callback returning void
Vasiliy Kovalev (1):
hfs/hfsplus: fix slab-out-of-bounds in hfs_bnode_read_key
Vikash Garodia (4):
media: venus: hfi: add a check to handle OOB in sfr region
media: venus: hfi: add check to handle incorrect queue size
media: venus: hfi_parser: add check to avoid out of bound access
media: venus: hfi_parser: refactor hfi packet parsing logic
Vinicius Costa Gomes (1):
dmaengine: dmatest: Fix dmatest waiting less when interrupted
Vitaly Prosyak (1):
drm/amdgpu: fix usage slab after free
Vladimir Oltean (2):
net: dsa: mv88e6xxx: avoid unregistering devlink regions which were never registered
net: dsa: avoid refcount warnings when ds->ops->tag_8021q_vlan_del() fails
Wang Liang (1):
net: fix crash when config small gso_max_size/gso_ipv4_max_size
WangYuli (6):
riscv: KGDB: Do not inline arch_kgdb_breakpoint()
riscv: KGDB: Remove ".option norvc/.option rvc" for kgdb_compiled_break
nvmet-fc: Remove unused functions
MIPS: dec: Declare which_prom() as static
MIPS: cevt-ds1287: Add missing ds1287.h include
MIPS: ds1287: Match ds1287_set_base_clock() function types
Wentao Liang (3):
ata: sata_sx4: Add error handling in pdc20621_i2c_read()
mtd: inftlcore: Add error check for inftl_read_oob()
mtd: rawnand: Add status chack in r852_ready()
Willem de Bruijn (1):
bpf: support SKF_NET_OFF and SKF_LL_OFF on skb frags
Xiangsheng Hou (1):
virtiofs: add filesystem context source name check
Xiaogang Chen (1):
udmabuf: fix a buf size overflow issue during udmabuf creation
Xiaxi Shen (1):
ext4: fix timer use-after-free on failed mount
Xingui Yang (2):
scsi: hisi_sas: Enable force phy when SATA disk directly connected
scsi: hisi_sas: Fix I/O errors caused by hardware port ID changes
Yu Kuai (2):
md/raid10: fix missing discard IO accounting
blk-cgroup: support to track if policy is online
Yu-Chun Lin (1):
parisc: PDT: Fix missing prototype warning
Yuan Can (1):
media: siano: Fix error handling in smsdvb_module_init()
Yue Haibing (1):
RDMA/usnic: Fix passing zero to PTR_ERR in usnic_ib_pci_probe()
Yunlong Xing (1):
loop: aio inherit the ioprio of original request
Zhang Xiaoxu (1):
cifs: Fix UAF in cifs_demultiplex_thread()
Zhikai Zhai (1):
drm/amd/display: Update Cursor request mode to the beginning prefetch always
Zhongqiu Han (2):
pm: cpupower: bench: Prevent NULL dereference on malloc failure
jfs: Fix uninit-value access of imap allocated in the diMount() function
Zijun Hu (3):
of/irq: Fix device node refcount leakages in of_irq_count() of/irq: Fix device node refcount leakage in API irq_of_parse_and_map() of/irq: Fix device node refcount leakages in of_irq_init()
zhoumin (1):
ftrace: Add cond_resched() to ftrace_graph_set_hash()
Greg Kroah-Hartman
maintainerDocumentation/scsi/libsas.rst +0 -2
@@ -207,7 +207,6 @@ Management Functions (TMFs) described in SAM:: /* Task Management Functions. Must be called from process context. */ int (*lldd_abort_task)(struct sas_task *); int (*lldd_abort_task_set)(struct domain_device *, u8 *lun); - int (*lldd_clear_aca)(struct domain_device *, u8 *lun); int (*lldd_clear_task_set)(struct domain_device *, u8 *lun); int (*lldd_I_T_nexus_reset)(struct domain_device *); int (*lldd_lu_reset)(struct domain_device *, u8 *lun);
@@ -262,7 +261,6 @@ can look like this (called last thing from probe()) my_ha->sas_ha.lldd_abort_task = my_abort_task; my_ha->sas_ha.lldd_abort_task_set = my_abort_task_set; - my_ha->sas_ha.lldd_clear_aca = my_clear_aca; my_ha->sas_ha.lldd_clear_task_set = my_clear_task_set; my_ha->sas_ha.lldd_I_T_nexus_reset= NULL; (2) my_ha->sas_ha.lldd_lu_reset = my_lu_reset;
Makefile +4 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 15 -SUBLEVEL = 180 +SUBLEVEL = 181 EXTRAVERSION = NAME = Trick or Treat
@@ -1066,6 +1066,9 @@ KBUILD_CFLAGS += $(call cc-option,-Werror=incompatible-pointer-types) # Require designated initializers for all marked structures KBUILD_CFLAGS += $(call cc-option,-Werror=designated-init) +# Ensure compilers do not transform certain loops into calls to wcslen() +KBUILD_CFLAGS += -fno-builtin-wcslen + # change __FILE__ to the relative path from the srctree KBUILD_CPPFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=)
arch/arm64/boot/dts/mediatek/mt8173.dtsi +2 -4
@@ -1260,8 +1260,7 @@ dpi0_out: endpoint { }; pwm0: pwm@1401e000 { - compatible = "mediatek,mt8173-disp-pwm", - "mediatek,mt6595-disp-pwm"; + compatible = "mediatek,mt8173-disp-pwm"; reg = <0 0x1401e000 0 0x1000>; #pwm-cells = <2>; clocks = <&mmsys CLK_MM_DISP_PWM026M>,
@@ -1271,8 +1270,7 @@ pwm0: pwm@1401e000 { }; pwm1: pwm@1401f000 { - compatible = "mediatek,mt8173-disp-pwm", - "mediatek,mt6595-disp-pwm"; + compatible = "mediatek,mt8173-disp-pwm"; reg = <0 0x1401f000 0 0x1000>; #pwm-cells = <2>; clocks = <&mmsys CLK_MM_DISP_PWM126M>,
arch/arm64/include/asm/cputype.h +4 -0
@@ -75,6 +75,7 @@#define ARM_CPU_PART_CORTEX_A76 0xD0B#define ARM_CPU_PART_NEOVERSE_N1 0xD0C#define ARM_CPU_PART_CORTEX_A77 0xD0D +#define ARM_CPU_PART_CORTEX_A76AE 0xD0E#define ARM_CPU_PART_NEOVERSE_V1 0xD40#define ARM_CPU_PART_CORTEX_A78 0xD41#define ARM_CPU_PART_CORTEX_A78AE 0xD42
@@ -111,6 +112,7 @@#define QCOM_CPU_PART_KRYO 0x200#define QCOM_CPU_PART_KRYO_2XX_GOLD 0x800#define QCOM_CPU_PART_KRYO_2XX_SILVER 0x801 +#define QCOM_CPU_PART_KRYO_3XX_GOLD 0x802#define QCOM_CPU_PART_KRYO_3XX_SILVER 0x803#define QCOM_CPU_PART_KRYO_4XX_GOLD 0x804#define QCOM_CPU_PART_KRYO_4XX_SILVER 0x805
@@ -139,6 +141,7 @@#define MIDR_CORTEX_A76 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A76)#define MIDR_NEOVERSE_N1 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N1)#define MIDR_CORTEX_A77 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A77) +#define MIDR_CORTEX_A76AE MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A76AE)#define MIDR_NEOVERSE_V1 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V1)#define MIDR_CORTEX_A78 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78)#define MIDR_CORTEX_A78AE MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78AE)
@@ -170,6 +173,7 @@#define MIDR_QCOM_KRYO MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO)#define MIDR_QCOM_KRYO_2XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_2XX_GOLD)#define MIDR_QCOM_KRYO_2XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_2XX_SILVER) +#define MIDR_QCOM_KRYO_3XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_3XX_GOLD)#define MIDR_QCOM_KRYO_3XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_3XX_SILVER)#define MIDR_QCOM_KRYO_4XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_4XX_GOLD)#define MIDR_QCOM_KRYO_4XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_4XX_SILVER)
arch/arm64/include/asm/fpsimd.h +3 -1
@@ -44,9 +44,11 @@ extern void fpsimd_signal_preserve_current_state(void);extern void fpsimd_preserve_current_state (void );extern void fpsimd_restore_current_state (void );extern void fpsimd_update_current_state (struct user_fpsimd_state const *state); +extern void fpsimd_kvm_prepare (void );extern void fpsimd_bind_state_to_cpu (struct user_fpsimd_state *state, -void *sve_state,unsigned int sve_vl); +void *sve_state,unsigned int sve_vl, +enum fp_type *type,enum fp_type to_save);extern void fpsimd_flush_task_state (struct task_struct *target);extern void fpsimd_save_and_flush_cpu_state (void );
arch/arm64/include/asm/kvm_host.h +13 -4
@@ -64,6 +64,7 @@ enum kvm_mode kvm_get_mode(void);DECLARE_STATIC_KEY_FALSE (userspace_irqchip_in_use);extern unsigned int kvm_sve_max_vl; +extern unsigned int kvm_host_sve_max_vl;int kvm_arm_init_sve (void ); u32 __attribute_const__ kvm_target_cpu(void);
@@ -280,7 +281,19 @@ struct vcpu_reset_state {struct kvm_vcpu_arch {struct kvm_cpu_context ctxt; + +/* +* Guest floating point state +* +* The architecture has two main floating point extensions, +* the original FPSIMD and SVE. These have overlapping +* register views, with the FPSIMD V registers occupying the +* low 128 bits of the SVE Z registers. When the core +* floating point code saves the register state of a task it +* records which view it saved in fp_type. +*/ void *sve_state; +enum fp_type fp_type;unsigned int sve_max_vl;/* Stage 2 paging state used by the hardware on next switch */
@@ -289,7 +302,6 @@ struct kvm_vcpu_arch {/* Values of trap registers for the guest. */ u64 hcr_el2;u64 mdcr_el2; -u64 cptr_el2;/* Values of trap registers for the host before guest entry. */ u64 mdcr_el2_host;
@@ -321,7 +333,6 @@ struct kvm_vcpu_arch {struct kvm_guest_debug_arch external_debug_state;struct thread_info *host_thread_info;/* hyp VA */ -struct user_fpsimd_state *host_fpsimd_state;/* hyp VA */ struct {/* {Break,watch}point registers */
@@ -410,8 +421,6 @@ struct kvm_vcpu_arch {#define KVM_ARM64_DEBUG_DIRTY (1 << 0)#define KVM_ARM64_FP_ENABLED (1 << 1)/* guest FP regs loaded */ #define KVM_ARM64_FP_HOST (1 << 2)/* host FP regs loaded */ -#define KVM_ARM64_HOST_SVE_IN_USE (1 << 3)/* backup for host TIF_SVE */ -#define KVM_ARM64_HOST_SVE_ENABLED (1 << 4)/* SVE enabled for EL0 */ #define KVM_ARM64_GUEST_HAS_SVE (1 << 5)/* SVE exposed to guest */ #define KVM_ARM64_VCPU_SVE_FINALIZED (1 << 6)/* SVE config completed */ #define KVM_ARM64_GUEST_HAS_PTRAUTH (1 << 7)/* PTRAUTH exposed to guest */
arch/arm64/include/asm/kvm_hyp.h +7 -0
@@ -117,5 +117,12 @@ void __noreturn __host_enter(struct kvm_cpu_context *host_ctxt);extern u64 kvm_nvhe_sym (id_aa64mmfr0_el1_sys_val );extern u64 kvm_nvhe_sym (id_aa64mmfr1_el1_sys_val ); +extern unsigned int kvm_nvhe_sym (kvm_host_sve_max_vl ); + +static inline bool guest_owns_fp_regs (struct kvm_vcpu *vcpu) +{ +return vcpu->arch.flags &KVM_ARM64_FP_ENABLED ; +} +#endif /* __ARM64_KVM_HYP_H__ */
arch/arm64/include/asm/processor.h +7 -0
@@ -115,6 +115,12 @@ struct debug_info {#endif }; +enum fp_type { +FP_STATE_CURRENT ,/* Save based on current task state. */ +FP_STATE_FPSIMD , +FP_STATE_SVE , +}; +struct cpu_context {unsigned long x19;unsigned long x20;
@@ -145,6 +151,7 @@ struct thread_struct {struct user_fpsimd_state fpsimd_state; } uw; +enum fp_type fp_type;/* registers FPSIMD or SVE? */ unsigned int fpsimd_cpu;void *sve_state;/* SVE registers, if any */ unsigned int sve_vl;/* SVE vector length */
arch/arm64/include/asm/spectre.h +0 -1
@@ -97,7 +97,6 @@ enum mitigation_state arm64_get_meltdown_state(void);enum mitigation_state arm64_get_spectre_bhb_state (void );bool is_spectre_bhb_affected (const struct arm64_cpu_capabilities *entry,int scope); -u8 spectre_bhb_loop_affected (int scope);void spectre_bhb_enable_mitigation (const struct arm64_cpu_capabilities *__unused);bool try_emulate_el1_ssbs (struct pt_regs *regs,u32 instr);#endif /* __ASSEMBLY__ */
arch/arm64/kernel/fpsimd.c +84 -33
202 lines not on this page · raw message
arch/arm64/kernel/process.c +3 -0
@@ -307,6 +307,9 @@ int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src) dst->thread.sve_state =NULL ;clear_tsk_thread_flag (dst,TIF_SVE ); + + dst->thread.fp_type =FP_STATE_FPSIMD ; +/* clear any pending asynchronous tag fault raised by the parent */ clear_tsk_thread_flag (dst,TIF_MTE_ASYNC_FAULT );
arch/arm64/kernel/proton-pack.c +118 -100
281 lines not on this page · raw message
arch/arm64/kernel/ptrace.c +3 -0
@@ -829,6 +829,7 @@ static int sve_set(struct task_struct *target, ret =__fpr_set (target, regset, pos, count, kbuf, ubuf,SVE_PT_FPSIMD_OFFSET );clear_tsk_thread_flag (target,TIF_SVE ); + target->thread.fp_type =FP_STATE_FPSIMD ; goto out; }
@@ -848,6 +849,7 @@ static int sve_set(struct task_struct *target,if (!target->thread.sve_state) { ret = -ENOMEM ;clear_tsk_thread_flag (target,TIF_SVE ); + target->thread.fp_type =FP_STATE_FPSIMD ; goto out; }
@@ -858,6 +860,7 @@ static int sve_set(struct task_struct *target,*/ fpsimd_sync_to_sve (target);set_tsk_thread_flag (target,TIF_SVE ); + target->thread.fp_type =FP_STATE_SVE ;BUILD_BUG_ON (SVE_PT_SVE_OFFSET !=sizeof (header)); start =SVE_PT_SVE_OFFSET ;
arch/arm64/kernel/signal.c +3 -0
@@ -207,6 +207,7 @@ static int restore_fpsimd_context(struct fpsimd_context __user *ctx)__get_user_error (fpsimd.fpcr, &ctx->fpcr, err);clear_thread_flag (TIF_SVE ); + current->thread.fp_type =FP_STATE_FPSIMD ;/* load the hardware registers from the fpsimd_state structure */ if (!err)
@@ -271,6 +272,7 @@ static int restore_sve_fpsimd_context(struct user_ctxs *user)if (sve.head.size <=sizeof (*user->sve)) {clear_thread_flag (TIF_SVE ); + current->thread.fp_type =FP_STATE_FPSIMD ; goto fpsimd_only; }
@@ -303,6 +305,7 @@ static int restore_sve_fpsimd_context(struct user_ctxs *user)return -EFAULT ;set_thread_flag (TIF_SVE ); + current->thread.fp_type =FP_STATE_SVE ; fpsimd_only:/* copy the FP and status/control registers */
arch/arm64/kvm/arm.c +0 -1
@@ -1138,7 +1138,6 @@ static int kvm_arch_vcpu_ioctl_vcpu_init(struct kvm_vcpu *vcpu, }vcpu_reset_hcr (vcpu); - vcpu->arch.cptr_el2 =CPTR_EL2_DEFAULT ;/* * Handle the "start in power-off" case.
arch/arm64/kvm/fpsimd.c +33 -39
117 lines not on this page · raw message
arch/arm64/kvm/hyp/entry.S +5 -0
@@ -44,6 +44,11 @@ alternative_if ARM64_HAS_RAS_EXTN alternative_else_nop_endif mrs x1, isr_el1 cbz x1, 1f + + // Ensure that __guest_enter() always provides a context + // synchronization event so that callers don't need ISBs for anything + // that would usually be synchonized by the ERET. + isb mov x0, #ARM_EXCEPTION_IRQ ret
arch/arm64/kvm/hyp/include/hyp/switch.h +58 -28
113 lines not on this page · raw message
arch/arm64/kvm/hyp/nvhe/hyp-main.c +4 -5
@@ -19,13 +19,17 @@ DEFINE_PER_CPU(struct kvm_nvhe_init_params, kvm_init_params); +unsigned int kvm_host_sve_max_vl; +void __kvm_hyp_host_forward_smc (struct kvm_cpu_context *host_ctxt);static void handle___kvm_vcpu_run (struct kvm_cpu_context *host_ctxt) { DECLARE_REG(struct kvm_vcpu *, vcpu, host_ctxt, 1); +fpsimd_lazy_switch_to_guest (kern_hyp_va (vcpu));cpu_reg (host_ctxt,1 ) =__kvm_vcpu_run (kern_hyp_va (vcpu)); +fpsimd_lazy_switch_to_host (kern_hyp_va (vcpu)); }static void handle___kvm_adjust_pc (struct kvm_cpu_context *host_ctxt)
@@ -237,11 +241,6 @@ void handle_trap(struct kvm_cpu_context *host_ctxt)case ESR_ELx_EC_SMC64:handle_host_smc (host_ctxt);break ; -case ESR_ELx_EC_SVE: -sysreg_clear_set (cptr_el2,CPTR_EL2_TZ ,0 ); -isb (); -sve_cond_update_zcr_vq (ZCR_ELx_LEN_MASK,SYS_ZCR_EL2 ); -break ;case ESR_ELx_EC_IABT_LOW:case ESR_ELx_EC_DABT_LOW:handle_host_mem_abort (host_ctxt);
arch/arm64/kvm/hyp/nvhe/switch.c +36 -16
75 lines not on this page · raw message
arch/arm64/kvm/hyp/vhe/switch.c +4 -0
@@ -114,6 +114,8 @@ static int __kvm_vcpu_run_vhe(struct kvm_vcpu *vcpu)sysreg_save_host_state_vhe (host_ctxt); +fpsimd_lazy_switch_to_guest (vcpu); +/* * ARM erratum 1165522 requires us to configure both stage 1 and * stage 2 translation for the guest context before we clear
@@ -144,6 +146,8 @@ static int __kvm_vcpu_run_vhe(struct kvm_vcpu *vcpu)__deactivate_traps (vcpu); +fpsimd_lazy_switch_to_host (vcpu); +sysreg_restore_host_state_vhe (host_ctxt);if (vcpu->arch.flags &KVM_ARM64_FP_ENABLED )
arch/arm64/kvm/reset.c +3 -0
@@ -42,11 +42,14 @@ static u32 kvm_ipa_limit; PSR_AA32_I_BIT | PSR_AA32_F_BIT)unsigned int kvm_sve_max_vl; +unsigned int kvm_host_sve_max_vl;int kvm_arm_init_sve (void ) {if (system_supports_sve ()) { kvm_sve_max_vl = sve_max_virtualisable_vl; + kvm_host_sve_max_vl = sve_max_vl; +kvm_nvhe_sym (kvm_host_sve_max_vl) = kvm_host_sve_max_vl;/* * The get_sve_reg()/set_sve_reg() ioctl interface will need
arch/mips/dec/prom/init.c +1 -1
@@ -42,7 +42,7 @@ int (*__pmax_close)(int);* Detect which PROM the DECSTATION has, and set the callback vectors * appropriately. */ -void __init which_prom (s32 magic,s32 *prom_vec) +static void __init which_prom (s32 magic,s32 *prom_vec) {/* * No sign of the REX PROM's magic number means we assume a non-REX
arch/mips/include/asm/ds1287.h +1 -1
@@ -8,7 +8,7 @@#define __ASM_DS1287_Hextern int ds1287_timer_state (void ); -extern void ds1287_set_base_clock (unsigned int clock); +extern int ds1287_set_base_clock (unsigned int hz);extern int ds1287_clockevent_init (int irq);#endif
arch/mips/include/asm/mips-cm.h +22 -0
@@ -47,6 +47,16 @@ extern phys_addr_t __mips_cm_phys_base(void);*/ extern int mips_cm_is64; +/* +* mips_cm_is_l2_hci_broken - determine if HCI is broken +* +* Some CM reports show that Hardware Cache Initialization is +* complete, but in reality it's not the case. They also incorrectly +* indicate that Hardware Cache Initialization is supported. This +* flags allows warning about this broken feature. +*/ +extern bool mips_cm_is_l2_hci_broken; +/** * mips_cm_error_report - Report CM cache errors */
@@ -85,6 +95,18 @@ static inline bool mips_cm_present(void)#endif } +/** +* mips_cm_update_property - update property from the device tree +* +* Retrieve the properties from the device tree if a CM node exist and +* update the internal variable based on this. +*/ +#ifdef CONFIG_MIPS_CM +extern void mips_cm_update_property (void ); +#else +static inline void mips_cm_update_property (void ) {} +#endif +/** * mips_cm_has_l2sync - determine whether an L2-only sync region is present *
arch/mips/kernel/cevt-ds1287.c +1 -0
@@ -10,6 +10,7 @@#include <linux/mc146818rtc.h> #include <linux/irq.h> +#include <asm/ds1287.h> #include <asm/time.h> int ds1287_timer_state (void )
arch/mips/kernel/mips-cm.c +14 -0
@@ -5,6 +5,7 @@*/ #include <linux/errno.h> +#include <linux/of.h> #include <linux/percpu.h> #include <linux/spinlock.h>
@@ -14,6 +15,7 @@void __iomem *mips_gcr_base;void __iomem *mips_cm_l2sync_base;int mips_cm_is64; +bool mips_cm_is_l2_hci_broken;static char *cm2_tr[8 ] = {"mem" ,"gcr" ,"gic" ,"mmio" ,
@@ -238,6 +240,18 @@ static void mips_cm_probe_l2sync(void) mips_cm_l2sync_base =ioremap (addr,MIPS_CM_L2SYNC_SIZE ); } +void mips_cm_update_property (void ) +{ +struct device_node *cm_node; + + cm_node =of_find_compatible_node (of_root,NULL ,"mobileye,eyeq6-cm" ); +if (!cm_node) +return ; +pr_info ("HCI (Hardware Cache Init for the L2 cache) in GCR_L2_RAM_CONFIG from the CM3 is broken" ); + mips_cm_is_l2_hci_broken = true; +of_node_put (cm_node); +} +int mips_cm_probe (void ) {phys_addr_t addr;
arch/parisc/kernel/pdt.c +2 -0
@@ -62,6 +62,7 @@ static unsigned long pdt_entry[MAX_PDT_ENTRIES] __page_aligned_bss;#define PDT_ADDR_PERM_ERR (pdt_type != PDT_PDC ? 2UL : 0UL)#define PDT_ADDR_SINGLE_ERR 1UL +#ifdef CONFIG_PROC_FS /* report PDT entries via /proc/meminfo */ void arch_report_meminfo (struct seq_file *m) {
@@ -73,6 +74,7 @@ void arch_report_meminfo(struct seq_file *m)seq_printf (m,"PDT_cur_entries: %7lu\n" , pdt_status.pdt_entries); } +#endif static int get_info_pat_new (void ) {
arch/powerpc/kernel/rtas.c +4 -0
@@ -16,6 +16,7 @@#include <linux/capability.h> #include <linux/delay.h> #include <linux/cpu.h> +#include <linux/nospec.h> #include <linux/sched.h> #include <linux/smp.h> #include <linux/completion.h>
@@ -1076,6 +1077,9 @@ SYSCALL_DEFINE1(rtas, struct rtas_args __user *, uargs) || nargs + nret > ARRAY_SIZE(args.args))return -EINVAL ; + nargs =array_index_nospec (nargs,ARRAY_SIZE (args.args)); + nret =array_index_nospec (nret,ARRAY_SIZE (args.args) - nargs); +/* Copy in args. */ if (copy_from_user (args.args, uargs->args, nargs *sizeof (rtas_arg_t)) !=0 )
arch/riscv/include/asm/kgdb.h +1 -8
@@ -19,16 +19,9 @@#ifndef __ASSEMBLY__ +void arch_kgdb_breakpoint (void );extern unsigned long kgdb_compiled_break; -static inline void arch_kgdb_breakpoint (void ) -{ - asm(".global kgdb_compiled_break\n" -".option norvc\n" -"kgdb_compiled_break: ebreak\n" -".option rvc\n" ); -} -#endif /* !__ASSEMBLY__ */ #define DBG_REG_ZERO "zero"
arch/riscv/include/asm/syscall.h +5 -2
@@ -60,8 +60,11 @@ static inline void syscall_get_arguments(struct task_struct *task, unsigned long *args) { args[0 ] = regs->orig_a0; - args++; -memcpy (args, ®s->a1,5 *sizeof (args[0 ])); + args[1 ] = regs->a1; + args[2 ] = regs->a2; + args[3 ] = regs->a3; + args[4 ] = regs->a4; + args[5 ] = regs->a5; } static inline void syscall_set_arguments(struct task_struct *task,
arch/riscv/kernel/kgdb.c +6 -0
@@ -273,6 +273,12 @@ void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc) regs->epc = pc; } +noinline void arch_kgdb_breakpoint(void) +{ + asm(".global kgdb_compiled_break\n" +"kgdb_compiled_break: ebreak\n" ); +} +void kgdb_arch_handle_qxfer_pkt (char *remcom_in_buffer,char *remcom_out_buffer) {
arch/riscv/kernel/setup.c +35 -1
@@ -84,6 +84,9 @@ static struct resource bss_res = { .name = "Kernel bss", };static struct resource elfcorehdr_res = { .name ="ELF Core hdr" , };#endif +static int num_standard_resources; +static struct resource *standard_resources; +static int __init add_resource (struct resource *parent,struct resource *res) {
@@ -157,7 +160,7 @@ static void __init init_resources(void)struct resource *res =NULL ;struct resource *mem_res =NULL ;size_t mem_res_sz =0 ; -int num_resources =0 , res_idx =0 ; +int num_resources =0 , res_idx =0 , non_resv_res =0 ;int ret =0 ;/* + 1 as memblock_alloc() might increase memblock.reserved.cnt */
@@ -221,6 +224,7 @@ static void __init init_resources(void)/* Add /memory regions to the resource tree */ for_each_mem_region (region) { res = &mem_res[res_idx--]; + non_resv_res++;if (unlikely (memblock_is_nomap (region))) { res->name ="Reserved" ;
@@ -238,6 +242,9 @@ static void __init init_resources(void) goto error; } + num_standard_resources = non_resv_res; + standard_resources = &mem_res[res_idx +1 ]; +/* Clean-up any unused pre-allocated resources */ if (res_idx >=0 )memblock_free (__pa (mem_res), (res_idx +1 ) *sizeof (*mem_res));
@@ -249,6 +256,33 @@ static void __init init_resources(void)memblock_free (__pa (mem_res), mem_res_sz); } +static int __init reserve_memblock_reserved_regions (void ) +{ +u64 i, j; + +for (i =0 ; i < num_standard_resources; i++) { +struct resource *mem = &standard_resources[i]; +phys_addr_t r_start, r_end, mem_size =resource_size (mem); + +if (!memblock_is_region_reserved (mem->start, mem_size)) +continue ; + +for_each_reserved_mem_range (j, &r_start, &r_end) { +resource_size_t start, end; + + start =max (PFN_PHYS (PFN_DOWN (r_start)), mem->start); + end =min (PFN_PHYS (PFN_UP (r_end)) -1 , mem->end); + +if (start > mem->end || end < mem->start) +continue ; + +reserve_region_with_split (mem, start, end,"Reserved" ); + } + } + +return 0 ; +} +arch_initcall (reserve_memblock_reserved_regions);static void __init parse_dtb (void ) {
arch/s390/kvm/trace-s390.h +2 -2
@@ -56,7 +56,7 @@ TRACE_EVENT(kvm_s390_create_vcpu, __entry->sie_block = sie_block; ), -TP_printk ("create cpu %d at 0x%pK, sie block at 0x%pK" , +TP_printk ("create cpu %d at 0x%p, sie block at 0x%p" , __entry->id, __entry->vcpu, __entry->sie_block) );
@@ -255,7 +255,7 @@ TRACE_EVENT(kvm_s390_enable_css, __entry->kvm = kvm; ), -TP_printk ("enabling channel I/O support (kvm @ %pK)\n" , +TP_printk ("enabling channel I/O support (kvm @ %p)\n" , __entry->kvm) );
arch/sparc/mm/tlb.c +4 -1
@@ -52,8 +52,10 @@ void flush_tlb_pending(void)void arch_enter_lazy_mmu_mode (void ) { -struct tlb_batch *tb =this_cpu_ptr (&tlb_batch); +struct tlb_batch *tb; +preempt_disable (); + tb =this_cpu_ptr (&tlb_batch); tb->active =1 ; }
@@ -64,6 +66,7 @@ void arch_leave_lazy_mmu_mode(void)if (tb->tlb_nr)flush_tlb_pending (); tb->active =0 ; +preempt_enable (); } static void tlb_batch_add_one(struct mm_struct *mm, unsigned long vaddr,
arch/x86/entry/entry.S +1 -1
@@ -16,7 +16,7 @@ SYM_FUNC_START(entry_ibpb) movl $MSR_IA32_PRED_CMD, %ecx - movl $PRED_CMD_IBPB, %eax + movl _ASM_RIP(x86_pred_cmd), %eax xorl %edx, %edx wrmsr
arch/x86/events/intel/ds.c +5 -3
@@ -1101,8 +1101,10 @@ static u64 pebs_update_adaptive_cfg(struct perf_event *event)* + precise_ip < 2 for the non event IP * + For RTM TSX weight we need GPRs for the abort code. */ - gprs = (sample_type &PERF_SAMPLE_REGS_INTR ) && - (attr->sample_regs_intr &PEBS_GP_REGS ); + gprs = ((sample_type &PERF_SAMPLE_REGS_INTR ) && + (attr->sample_regs_intr &PEBS_GP_REGS )) || + ((sample_type &PERF_SAMPLE_REGS_USER ) && + (attr->sample_regs_user &PEBS_GP_REGS )); tsx_weight = (sample_type & PERF_SAMPLE_WEIGHT_TYPE) && ((attr->config & INTEL_ARCH_EVENT_MASK) ==
@@ -1701,7 +1703,7 @@ static void setup_pebs_adaptive_sample_data(struct perf_event *event, regs->flags &= ~PERF_EFLAGS_EXACT ; } -if (sample_type &PERF_SAMPLE_REGS_INTR ) +if (sample_type & (PERF_SAMPLE_REGS_INTR |PERF_SAMPLE_REGS_USER ))adaptive_pebs_save_regs (regs, gprs); }
arch/x86/events/intel/uncore_snbep.c +10 -97
151 lines not on this page · raw message
arch/x86/kernel/cpu/amd.c +1 -1
@@ -811,7 +811,7 @@ static void init_amd_k8(struct cpuinfo_x86 *c)* (model = 0x14) and later actually support it. * (AMD Erratum #110, docId: 25759). */ -if (c->x86_model <0x14 &&cpu_has (c,X86_FEATURE_LAHF_LM )) { +if (c->x86_model <0x14 &&cpu_has (c,X86_FEATURE_LAHF_LM ) && !cpu_has (c,X86_FEATURE_HYPERVISOR )) {clear_cpu_cap (c,X86_FEATURE_LAHF_LM );if (!rdmsrl_amd_safe (0xc001100d , &value)) { value &= ~BIT_64 (32 );
arch/x86/kernel/cpu/bugs.c +15 -15
@@ -1553,7 +1553,7 @@ static void __init spec_ctrl_disable_kernel_rrsba(void) rrsba_disabled = true; } -static void __init spectre_v2_determine_rsb_fill_type_at_vmexit (enum spectre_v2_mitigation mode) +static void __init spectre_v2_select_rsb_mitigation (enum spectre_v2_mitigation mode) {/* * Similar to context switches, there are two types of RSB attacks
@@ -1577,27 +1577,30 @@ static void __init spectre_v2_determine_rsb_fill_type_at_vmexit(enum spectre_v2_*/ switch (mode) {case SPECTRE_V2_NONE : -return ; +break ; -case SPECTRE_V2_EIBRS_LFENCE :case SPECTRE_V2_EIBRS : +case SPECTRE_V2_EIBRS_LFENCE : +case SPECTRE_V2_EIBRS_RETPOLINE :if (boot_cpu_has_bug (X86_BUG_EIBRS_PBRSB )) { -setup_force_cpu_cap (X86_FEATURE_RSB_VMEXIT_LITE );pr_info ("Spectre v2 / PBRSB-eIBRS: Retire a single CALL on VMEXIT\n" ); +setup_force_cpu_cap (X86_FEATURE_RSB_VMEXIT_LITE ); } -return ; +break ; -case SPECTRE_V2_EIBRS_RETPOLINE :case SPECTRE_V2_RETPOLINE :case SPECTRE_V2_LFENCE :case SPECTRE_V2_IBRS : +pr_info ("Spectre v2 / SpectreRSB: Filling RSB on context switch and VMEXIT\n" ); +setup_force_cpu_cap (X86_FEATURE_RSB_CTXSW );setup_force_cpu_cap (X86_FEATURE_RSB_VMEXIT ); -pr_info ("Spectre v2 / SpectreRSB : Filling RSB on VMEXIT\n" ); -return ; - } +break ; -pr_warn_once ("Unknown Spectre v2 mode, disabling RSB mitigation at VM exit" ); -dump_stack (); +default : +pr_warn_once ("Unknown Spectre v2 mode, disabling RSB mitigation\n" ); +dump_stack (); +break ; + } }/*
@@ -1822,10 +1825,7 @@ static void __init spectre_v2_select_mitigation(void)* * FIXME: Is this pointless for retbleed-affected AMD? */ -setup_force_cpu_cap (X86_FEATURE_RSB_CTXSW ); -pr_info ("Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch\n" ); - -spectre_v2_determine_rsb_fill_type_at_vmexit (mode); +spectre_v2_select_rsb_mitigation (mode);/* * Retpoline protects the kernel, but doesn't protect firmware. IBRS
arch/x86/kernel/e820.c +8 -9
@@ -753,22 +753,21 @@ void __init e820__memory_setup_extended(u64 phys_addr, u32 data_len)void __init e820__register_nosave_regions (unsigned long limit_pfn) {int i; -unsigned long pfn =0 ; +u64 last_addr =0 ;for (i =0 ; i < e820_table->nr_entries; i++) {struct e820_entry *entry = &e820_table->entries[i]; -if (pfn <PFN_UP (entry->addr)) -register_nosave_region (pfn,PFN_UP (entry->addr)); - - pfn =PFN_DOWN (entry->addr + entry->size); -if (entry->type !=E820_TYPE_RAM && entry->type !=E820_TYPE_RESERVED_KERN ) -register_nosave_region (PFN_UP (entry->addr), pfn); +continue ; -if (pfn >= limit_pfn) -break ; +if (last_addr < entry->addr) +register_nosave_region (PFN_DOWN (last_addr),PFN_UP (entry->addr)); + + last_addr = entry->addr + entry->size; } + +register_nosave_region (PFN_DOWN (last_addr), limit_pfn); }#ifdef CONFIG_ACPI
arch/x86/kvm/svm/avic.c +32 -28
90 lines not on this page · raw message
arch/x86/kvm/vmx/posted_intr.c +10 -18
@@ -270,6 +270,7 @@ int pi_update_irte(struct kvm *kvm, unsigned int host_irq, uint32_t guest_irq, {struct kvm_kernel_irq_routing_entry *e;struct kvm_irq_routing_table *irq_rt; +bool enable_remapped_mode = true;struct kvm_lapic_irq irq;struct kvm_vcpu *vcpu;struct vcpu_data vcpu_info;
@@ -308,21 +309,8 @@ int pi_update_irte(struct kvm *kvm, unsigned int host_irq, uint32_t guest_irq,kvm_set_msi_irq (kvm, e, &irq);if (!kvm_intr_is_single_vcpu (kvm, &irq, &vcpu) || - !kvm_irq_is_postable (&irq)) { -/* -* Make sure the IRTE is in remapped mode if -* we don't handle it in posted mode. -*/ - ret =irq_set_vcpu_affinity (host_irq,NULL ); -if (ret <0 ) { -printk (KERN_INFO -"failed to back to remapped mode, irq: %u\n" , - host_irq); - goto out; - } - + !kvm_irq_is_postable (&irq))continue ; - } vcpu_info.pi_desc_addr =__pa (&to_vmx (vcpu)->pi_desc); vcpu_info.vector = irq.vector;
@@ -330,11 +318,12 @@ int pi_update_irte(struct kvm *kvm, unsigned int host_irq, uint32_t guest_irq,trace_kvm_pi_irte_update (host_irq, vcpu->vcpu_id, e->gsi, vcpu_info.vector, vcpu_info.pi_desc_addr, set); -if (set) - ret =irq_set_vcpu_affinity (host_irq, &vcpu_info); -else - ret =irq_set_vcpu_affinity (host_irq,NULL ); +if (!set) +continue ; + + enable_remapped_mode = false; + ret =irq_set_vcpu_affinity (host_irq, &vcpu_info);if (ret <0 ) {printk (KERN_INFO "%s: failed to update PI IRTE\n" , __func__);
@@ -342,6 +331,9 @@ int pi_update_irte(struct kvm *kvm, unsigned int host_irq, uint32_t guest_irq, } } +if (enable_remapped_mode) + ret =irq_set_vcpu_affinity (host_irq,NULL ); + ret =0 ; out:srcu_read_unlock (&kvm->irq_srcu, idx);
arch/x86/mm/tlb.c +3 -3
@@ -384,9 +384,9 @@ static void cond_mitigation(struct task_struct *next) prev_mm =this_cpu_read (cpu_tlbstate.last_user_mm_spec);/* -* Avoid user/user BTB poisoning by flushing the branch predictor -* when switching between processes. This stops one process from -* doing Spectre-v2 attacks on another. +* Avoid user->user BTB/RSB poisoning by flushing them when switching +* between processes. This stops one process from doing Spectre-v2 +* attacks on another. * * Both, the conditional and the always IBPB mode use the mm * pointer to avoid the IBPB when switching between tasks of the
arch/x86/platform/pvh/head.S +6 -1
@@ -99,7 +99,12 @@ SYM_CODE_START_LOCAL(pvh_start_xen) xor %edx, %edx wrmsr - call xen_prepare_pvh + /* Call xen_prepare_pvh() via the kernel virtual mapping */ + leaq xen_prepare_pvh(%rip), %rax + subq phys_base(%rip), %rax + addq $__START_KERNEL_map, %rax + ANNOTATE_RETPOLINE_SAFE + call *%rax /* startup_64 expects boot_params in %rsi. */ mov $_pa(pvh_bootparams), %rsi
block/blk-cgroup.c +17 -7
@@ -192,6 +192,7 @@ static struct blkcg_gq *blkg_alloc(struct blkcg *blkcg, struct request_queue *q, blkg->pd[i] = pd; pd->blkg = blkg; pd->plid = i; + pd->online = false; }return blkg;
@@ -289,8 +290,11 @@ static struct blkcg_gq *blkg_create(struct blkcg *blkcg,for (i =0 ; i <BLKCG_MAX_POLS ; i++) {struct blkcg_policy *pol = blkcg_policy[i]; -if (blkg->pd[i] && pol->pd_online_fn) - pol->pd_online_fn (blkg->pd[i]); +if (blkg->pd[i]) { +if (pol->pd_online_fn) + pol->pd_online_fn (blkg->pd[i]); + blkg->pd[i]->online = true; + } } } blkg->online = true;
@@ -390,8 +394,11 @@ static void blkg_destroy(struct blkcg_gq *blkg)for (i =0 ; i <BLKCG_MAX_POLS ; i++) {struct blkcg_policy *pol = blkcg_policy[i]; -if (blkg->pd[i] && pol->pd_offline_fn) - pol->pd_offline_fn (blkg->pd[i]); +if (blkg->pd[i] && blkg->pd[i]->online) { +if (pol->pd_offline_fn) + pol->pd_offline_fn (blkg->pd[i]); + blkg->pd[i]->online = false; + } } blkg->online = false;
@@ -1367,6 +1374,7 @@ int blkcg_activate_policy(struct request_queue *q, blkg->pd[pol->plid] = pd; pd->blkg = blkg; pd->plid = pol->plid; + pd->online = false; }/* all allocated, init in the same order */
@@ -1374,9 +1382,11 @@ int blkcg_activate_policy(struct request_queue *q,list_for_each_entry_reverse (blkg, &q->blkg_list, q_node) pol->pd_init_fn (blkg->pd[pol->plid]); -if (pol->pd_online_fn) -list_for_each_entry_reverse (blkg, &q->blkg_list, q_node) +list_for_each_entry_reverse (blkg, &q->blkg_list, q_node) { +if (pol->pd_online_fn) pol->pd_online_fn (blkg->pd[pol->plid]); + blkg->pd[pol->plid]->online = true; + }__set_bit (pol->plid, q->blkcg_pols); ret =0 ;
@@ -1438,7 +1448,7 @@ void blkcg_deactivate_policy(struct request_queue *q,spin_lock (&blkcg->lock);if (blkg->pd[pol->plid]) { -if (pol->pd_offline_fn) +if (blkg->pd[pol->plid]->online && pol->pd_offline_fn) pol->pd_offline_fn (blkg->pd[pol->plid]); pol->pd_free_fn (blkg->pd[pol->plid]); blkg->pd[pol->plid] =NULL ;
block/blk-iocost.c +5 -2
@@ -1435,8 +1435,11 @@ static void iocg_pay_debt(struct ioc_gq *iocg, u64 abs_vpay,lockdep_assert_held (&iocg->ioc->lock);lockdep_assert_held (&iocg->waitq.lock); -/* make sure that nobody messed with @iocg */ -WARN_ON_ONCE (list_empty (&iocg->active_list)); +/* +* make sure that nobody messed with @iocg. Check iocg->pd.online +* to avoid warn when removing blkcg or disk. +*/ +WARN_ON_ONCE (list_empty (&iocg->active_list) && iocg->pd.online);WARN_ON_ONCE (iocg->inuse >1 ); iocg->abs_vdebt -=min (abs_vpay, iocg->abs_vdebt);
crypto/crypto_null.c +26 -13
@@ -17,10 +17,10 @@#include <crypto/internal/skcipher.h> #include <linux/init.h> #include <linux/module.h> -#include <linux/mm.h> +#include <linux/spinlock.h> #include <linux/string.h> -static DEFINE_MUTEX (crypto_default_null_skcipher_lock); +static DEFINE_SPINLOCK (crypto_default_null_skcipher_lock);static struct crypto_sync_skcipher *crypto_default_null_skcipher;static int crypto_default_null_skcipher_refcnt;
@@ -152,23 +152,32 @@ MODULE_ALIAS_CRYPTO("cipher_null");struct crypto_sync_skcipher *crypto_get_default_null_skcipher (void ) { +struct crypto_sync_skcipher *ntfm =NULL ;struct crypto_sync_skcipher *tfm; -mutex_lock (&crypto_default_null_skcipher_lock); +spin_lock_bh (&crypto_default_null_skcipher_lock); tfm = crypto_default_null_skcipher;if (!tfm) { - tfm =crypto_alloc_sync_skcipher ("ecb(cipher_null)" ,0 ,0 ); -if (IS_ERR (tfm)) - goto unlock; - - crypto_default_null_skcipher = tfm; +spin_unlock_bh (&crypto_default_null_skcipher_lock); + + ntfm =crypto_alloc_sync_skcipher ("ecb(cipher_null)" ,0 ,0 ); +if (IS_ERR (ntfm)) +return ntfm; + +spin_lock_bh (&crypto_default_null_skcipher_lock); + tfm = crypto_default_null_skcipher; +if (!tfm) { + tfm = ntfm; + ntfm =NULL ; + crypto_default_null_skcipher = tfm; + } } crypto_default_null_skcipher_refcnt++; +spin_unlock_bh (&crypto_default_null_skcipher_lock); -unlock: -mutex_unlock (&crypto_default_null_skcipher_lock); +crypto_free_sync_skcipher (ntfm);return tfm; }
@@ -176,12 +185,16 @@ EXPORT_SYMBOL_GPL(crypto_get_default_null_skcipher);void crypto_put_default_null_skcipher (void ) { -mutex_lock (&crypto_default_null_skcipher_lock); +struct crypto_sync_skcipher *tfm =NULL ; + +spin_lock_bh (&crypto_default_null_skcipher_lock);if (!--crypto_default_null_skcipher_refcnt) { -crypto_free_sync_skcipher (crypto_default_null_skcipher); + tfm = crypto_default_null_skcipher; crypto_default_null_skcipher =NULL ; } -mutex_unlock (&crypto_default_null_skcipher_lock); +spin_unlock_bh (&crypto_default_null_skcipher_lock); + +crypto_free_sync_skcipher (tfm); }EXPORT_SYMBOL_GPL (crypto_put_default_null_skcipher);
drivers/acpi/platform_profile.c +10 -10
@@ -22,8 +22,8 @@ static const char * const profile_names[] = { };static_assert (ARRAY_SIZE (profile_names) ==PLATFORM_PROFILE_LAST ); -static ssize_t platform_profile_choices_show (struct device *dev, -struct device_attribute *attr, +static ssize_t platform_profile_choices_show (struct kobject *kobj, +struct kobj_attribute *attr,char *buf) {int len =0 ;
@@ -49,8 +49,8 @@ static ssize_t platform_profile_choices_show(struct device *dev,return len; } -static ssize_t platform_profile_show (struct device *dev, -struct device_attribute *attr, +static ssize_t platform_profile_show (struct kobject *kobj, +struct kobj_attribute *attr,char *buf) {enum platform_profile_option profile =PLATFORM_PROFILE_BALANCED ;
@@ -77,8 +77,8 @@ static ssize_t platform_profile_show(struct device *dev,return sysfs_emit (buf,"%s\n" , profile_names[profile]); } -static ssize_t platform_profile_store (struct device *dev, -struct device_attribute *attr, +static ssize_t platform_profile_store (struct kobject *kobj, +struct kobj_attribute *attr,const char *buf,size_t count) {int err, i;
@@ -115,12 +115,12 @@ static ssize_t platform_profile_store(struct device *dev,return count; } -static DEVICE_ATTR_RO (platform_profile_choices); -static DEVICE_ATTR_RW (platform_profile); +static struct kobj_attribute attr_platform_profile_choices =__ATTR_RO (platform_profile_choices); +static struct kobj_attribute attr_platform_profile =__ATTR_RW (platform_profile);static struct attribute *platform_profile_attrs[] = { - &dev_attr_platform_profile_choices.attr, - &dev_attr_platform_profile.attr, + &attr_platform_profile_choices.attr, + &attr_platform_profile.attr,NULL };
drivers/acpi/pptt.c +2 -2
@@ -217,7 +217,7 @@ static int acpi_pptt_leaf_node(struct acpi_table_header *table_hdr, node_entry =ACPI_PTR_DIFF (node, table_hdr); entry = ACPI_ADD_PTR(struct acpi_subtable_header, table_hdr,sizeof (struct acpi_table_pptt )); - proc_sz =sizeof (struct acpi_pptt_processor *); + proc_sz =sizeof (struct acpi_pptt_processor );while ((unsigned long )entry + proc_sz < table_end) { cpu_node = (struct acpi_pptt_processor *)entry;
@@ -258,7 +258,7 @@ static struct acpi_pptt_processor *acpi_find_processor_node(struct acpi_table_he table_end = (unsigned long )table_hdr + table_hdr->length; entry = ACPI_ADD_PTR(struct acpi_subtable_header, table_hdr,sizeof (struct acpi_table_pptt )); - proc_sz =sizeof (struct acpi_pptt_processor *); + proc_sz =sizeof (struct acpi_pptt_processor );/* find the processor structure associated with this cpuid */ while ((unsigned long )entry + proc_sz < table_end) {
drivers/ata/ahci.c +2 -0
@@ -595,6 +595,8 @@ static const struct pci_device_id ahci_pci_tbl[] = { .driver_data = board_ahci_yes_fbs }, { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a3), .driver_data = board_ahci_yes_fbs }, + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9215), + .driver_data = board_ahci_yes_fbs }, { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9230), .driver_data = board_ahci_yes_fbs }, { PCI_DEVICE(PCI_VENDOR_ID_TTI, 0x0642), /* highpoint rocketraid 642L */
drivers/ata/libata-eh.c +9 -2
@@ -1479,8 +1479,15 @@ unsigned int atapi_eh_request_sense(struct ata_device *dev, tf.flags |=ATA_TFLAG_ISADDR |ATA_TFLAG_DEVICE ; tf.command =ATA_CMD_PACKET ; -/* is it pointless to prefer PIO for "safety reasons"? */ -if (ap->flags &ATA_FLAG_PIO_DMA ) { +/* +* Do not use DMA if the connected device only supports PIO, even if the +* port prefers PIO commands via DMA. +* +* Ideally, we should call atapi_check_dma() to check if it is safe for +* the LLD to use DMA for REQUEST_SENSE, but we don't have a qc. +* Since we can't check the command, perhaps we should only use pio? +*/ +if ((ap->flags &ATA_FLAG_PIO_DMA ) && !(dev->flags &ATA_DFLAG_PIO )) { tf.protocol =ATAPI_PROT_DMA ; tf.feature |=ATAPI_PKT_DMA ; }else {
drivers/ata/pata_pxa.c +6 -0
@@ -223,10 +223,16 @@ static int pxa_ata_probe(struct platform_device *pdev) ap->ioaddr.cmd_addr =devm_ioremap (&pdev->dev, cmd_res->start,resource_size (cmd_res)); +if (!ap->ioaddr.cmd_addr) +return -ENOMEM ; ap->ioaddr.ctl_addr =devm_ioremap (&pdev->dev, ctl_res->start,resource_size (ctl_res)); +if (!ap->ioaddr.ctl_addr) +return -ENOMEM ; ap->ioaddr.bmdma_addr =devm_ioremap (&pdev->dev, dma_res->start,resource_size (dma_res)); +if (!ap->ioaddr.bmdma_addr) +return -ENOMEM ;/* * Adjust register offsets
drivers/ata/sata_sx4.c +44 -74
322 lines not on this page · raw message
drivers/auxdisplay/hd44780.c +4 -5
@@ -313,13 +313,13 @@ static int hd44780_probe(struct platform_device *pdev) fail3:kfree (hd); fail2: -kfree (lcd); +charlcd_free (lcd); fail1:kfree (hdc);return ret; } -static int hd44780_remove (struct platform_device *pdev) +static void hd44780_remove (struct platform_device *pdev) {struct charlcd *lcd =platform_get_drvdata (pdev);struct hd44780_common *hdc = lcd->drvdata;
@@ -328,8 +328,7 @@ static int hd44780_remove(struct platform_device *pdev)kfree (hdc->hd44780);kfree (lcd->drvdata); -kfree (lcd); -return 0 ; +charlcd_free (lcd); }static const struct of_device_id hd44780_of_match[] = {
@@ -340,7 +339,7 @@ MODULE_DEVICE_TABLE(of, hd44780_of_match);static struct platform_driver hd44780_driver = { .probe = hd44780_probe, - .remove = hd44780_remove, + .remove_new = hd44780_remove, .driver = { .name ="hd44780" , .of_match_table = hd44780_of_match,
drivers/base/devres.c +7 -0
@@ -682,6 +682,13 @@ int devres_release_group(struct device *dev, void *id)spin_unlock_irqrestore (&dev->devres_lock, flags);release_nodes (dev, &todo); + }else if (list_empty (&dev->devres_head)) { +/* +* dev is probably dying via devres_release_all(): groups +* have already been removed and are on the process of +* being released - don't touch and don't warn. +*/ +spin_unlock_irqrestore (&dev->devres_lock, flags); }else {WARN_ON (1 );spin_unlock_irqrestore (&dev->devres_lock, flags);
drivers/block/loop.c +5 -4
@@ -605,7 +605,7 @@ static int lo_rw_aio(struct loop_device *lo, struct loop_cmd *cmd, cmd->iocb.ki_filp = file; cmd->iocb.ki_complete = lo_rw_aio_complete; cmd->iocb.ki_flags =IOCB_DIRECT ; - cmd->iocb.ki_ioprio =IOPRIO_PRIO_VALUE (IOPRIO_CLASS_NONE ,0 ); + cmd->iocb.ki_ioprio =req_get_ioprio (rq);if (rw ==WRITE ) ret =call_write_iter (file, &cmd->iocb, &iter);
@@ -792,19 +792,20 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,* dependency. */ fput (old_file); +dev_set_uevent_suppress (disk_to_dev (lo->lo_disk),0 );if (partscan)loop_reread_partitions (lo); error =0 ; done: -/* enable and uncork uevent now that we are done */ -dev_set_uevent_suppress (disk_to_dev (lo->lo_disk),0 ); +kobject_uevent (&disk_to_dev (lo->lo_disk)->kobj,KOBJ_CHANGE );return error; out_err:loop_global_unlock (lo, is_loop); out_putf:fput (file); +dev_set_uevent_suppress (disk_to_dev (lo->lo_disk),0 ); goto done; }
@@ -1316,8 +1317,8 @@ static int loop_configure(struct loop_device *lo, fmode_t mode,if (partscan) lo->lo_disk->flags &= ~GENHD_FL_NO_PART ; -/* enable and uncork uevent now that we are done */ dev_set_uevent_suppress (disk_to_dev (lo->lo_disk),0 ); +kobject_uevent (&disk_to_dev (lo->lo_disk)->kobj,KOBJ_CHANGE );loop_global_unlock (lo, is_loop);if (partscan)
drivers/bluetooth/btrtl.c +2 -0
@@ -677,6 +677,8 @@ struct btrtl_device_info *btrtl_initialize(struct hci_dev *hdev,rtl_dev_err (hdev,"mandatory config file %s not found" , btrtl_dev->ic_info->cfg_name); ret = btrtl_dev->cfg_len; +if (!ret) + ret = -EINVAL ; goto err_free; } }
drivers/bluetooth/hci_ldisc.c +14 -5
@@ -102,7 +102,8 @@ static inline struct sk_buff *hci_uart_dequeue(struct hci_uart *hu)if (!skb) {percpu_down_read (&hu->proto_lock); -if (test_bit (HCI_UART_PROTO_READY , &hu->flags)) +if (test_bit (HCI_UART_PROTO_READY , &hu->flags) || +test_bit (HCI_UART_PROTO_INIT , &hu->flags)) skb = hu->proto->dequeue (hu);percpu_up_read (&hu->proto_lock);
@@ -124,7 +125,8 @@ int hci_uart_tx_wakeup(struct hci_uart *hu)if (!percpu_down_read_trylock (&hu->proto_lock))return 0 ; -if (!test_bit (HCI_UART_PROTO_READY , &hu->flags)) +if (!test_bit (HCI_UART_PROTO_READY , &hu->flags) && + !test_bit (HCI_UART_PROTO_INIT , &hu->flags)) goto no_schedule;set_bit (HCI_UART_TX_WAKEUP , &hu->tx_state);
@@ -278,7 +280,8 @@ static int hci_uart_send_frame(struct hci_dev *hdev, struct sk_buff *skb)percpu_down_read (&hu->proto_lock); -if (!test_bit (HCI_UART_PROTO_READY , &hu->flags)) { +if (!test_bit (HCI_UART_PROTO_READY , &hu->flags) && + !test_bit (HCI_UART_PROTO_INIT , &hu->flags)) {percpu_up_read (&hu->proto_lock);return -EUNATCH ; }
@@ -579,7 +582,8 @@ static void hci_uart_tty_wakeup(struct tty_struct *tty)if (tty != hu->tty)return ; -if (test_bit (HCI_UART_PROTO_READY , &hu->flags)) +if (test_bit (HCI_UART_PROTO_READY , &hu->flags) || +test_bit (HCI_UART_PROTO_INIT , &hu->flags))hci_uart_tx_wakeup (hu); }
@@ -605,7 +609,8 @@ static void hci_uart_tty_receive(struct tty_struct *tty, const u8 *data,percpu_down_read (&hu->proto_lock); -if (!test_bit (HCI_UART_PROTO_READY , &hu->flags)) { +if (!test_bit (HCI_UART_PROTO_READY , &hu->flags) && + !test_bit (HCI_UART_PROTO_INIT , &hu->flags)) {percpu_up_read (&hu->proto_lock);return ; }
@@ -706,12 +711,16 @@ static int hci_uart_set_proto(struct hci_uart *hu, int id) hu->proto = p; +set_bit (HCI_UART_PROTO_INIT , &hu->flags); + err =hci_uart_register_dev (hu);if (err) {return err; }set_bit (HCI_UART_PROTO_READY , &hu->flags); +clear_bit (HCI_UART_PROTO_INIT , &hu->flags); +return 0 ; }
drivers/bluetooth/hci_uart.h +1 -0
@@ -90,6 +90,7 @@ struct hci_uart {#define HCI_UART_REGISTERED 1#define HCI_UART_PROTO_READY 2#define HCI_UART_NO_SUSPEND_NOTIFIER 3 +#define HCI_UART_PROTO_INIT 4/* TX states */ #define HCI_UART_SENDING 1
drivers/bus/mhi/host/main.c +10 -6
@@ -1192,11 +1192,16 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,struct mhi_ring_element *mhi_tre;struct mhi_buf_info *buf_info;int eot, eob, chain, bei; -int ret; +int ret =0 ;/* Protect accesses for reading and incrementing WP */ write_lock_bh (&mhi_chan->lock); +if (mhi_chan->ch_state !=MHI_CH_STATE_ENABLED ) { + ret = -ENODEV ; + goto out; + } + buf_ring = &mhi_chan->buf_ring; tre_ring = &mhi_chan->tre_ring;
@@ -1214,10 +1219,8 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,if (!info->pre_mapped) { ret = mhi_cntrl->map_single (mhi_cntrl, buf_info); -if (ret) { -write_unlock_bh (&mhi_chan->lock); -return ret; - } +if (ret) + goto out; } eob = !!(flags &MHI_EOB );
@@ -1234,9 +1237,10 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,mhi_add_ring_element (mhi_cntrl, tre_ring);mhi_add_ring_element (mhi_cntrl, buf_ring); +out:write_unlock_bh (&mhi_chan->lock); -return 0 ; +return ret; } int mhi_queue_buf(struct mhi_device *mhi_dev, enum dma_data_direction dir,
drivers/char/virtio_console.c +4 -3
@@ -1614,8 +1614,8 @@ static void handle_control_message(struct virtio_device *vdev,break ;case VIRTIO_CONSOLE_RESIZE : {struct { -__u16 rows; -__u16 cols; +__virtio16 rows; +__virtio16 cols; } size;if (!is_console_port (port))
@@ -1623,7 +1623,8 @@ static void handle_control_message(struct virtio_device *vdev,memcpy (&size, buf->buf + buf->offset +sizeof (*cpkt),sizeof (size)); -set_console_size (port, size.rows, size.cols); +set_console_size (port,virtio16_to_cpu (vdev, size.rows), +virtio16_to_cpu (vdev, size.cols)); port->cons.hvc->irq_requested =1 ;resize_console (port);
drivers/clk/clk.c +4 -0
@@ -4993,6 +4993,10 @@ of_clk_get_hw_from_clkspec(struct of_phandle_args *clkspec)if (!clkspec)return ERR_PTR (-EINVAL ); +/* Check if node in clkspec is in disabled/fail state */ +if (!of_device_is_available (clkspec->np)) +return ERR_PTR (-ENOENT ); +mutex_lock (&of_clk_mutex);list_for_each_entry (provider, &of_clk_providers, link) {if (provider->node == clkspec->np) {
drivers/clocksource/timer-stm32-lp.c +1 -3
@@ -168,9 +168,7 @@ static int stm32_clkevent_lp_probe(struct platform_device *pdev) }if (of_property_read_bool (pdev->dev.parent->of_node,"wakeup-source" )) { - ret =device_init_wakeup (&pdev->dev, true); -if (ret) - goto out_clk_disable; +device_set_wakeup_capable (&pdev->dev, true); ret =dev_pm_set_wake_irq (&pdev->dev, irq);if (ret)
drivers/comedi/drivers/jr3_pci.c +12 -5
@@ -88,6 +88,7 @@ struct jr3_pci_poll_delay {struct jr3_pci_dev_private {struct timer_list timer;struct comedi_device *dev; +bool timer_enable; };union jr3_pci_single_range {
@@ -597,10 +598,11 @@ static void jr3_pci_poll_dev(struct timer_list *t) delay = sub_delay.max; } } +if (devpriv->timer_enable) { + devpriv->timer.expires = jiffies +msecs_to_jiffies (delay); +add_timer (&devpriv->timer); + }spin_unlock_irqrestore (&dev->spinlock, flags); - - devpriv->timer.expires = jiffies +msecs_to_jiffies (delay); -add_timer (&devpriv->timer); } static struct jr3_pci_subdev_private *
@@ -749,6 +751,7 @@ static int jr3_pci_auto_attach(struct comedi_device *dev, devpriv->dev = dev;timer_setup (&devpriv->timer, jr3_pci_poll_dev,0 ); devpriv->timer.expires = jiffies +msecs_to_jiffies (1000 ); + devpriv->timer_enable = true;add_timer (&devpriv->timer);return 0 ;
@@ -758,8 +761,12 @@ static void jr3_pci_detach(struct comedi_device *dev) {struct jr3_pci_dev_private *devpriv = dev->private; -if (devpriv) -del_timer_sync (&devpriv->timer); +if (devpriv) { +spin_lock_bh (&dev->spinlock); + devpriv->timer_enable = false; +spin_unlock_bh (&dev->spinlock); +timer_delete_sync (&devpriv->timer); + }comedi_pci_detach (dev); }
drivers/cpufreq/cppc_cpufreq.c +1 -1
@@ -620,7 +620,7 @@ static unsigned int cppc_cpufreq_get_rate(unsigned int cpu)int ret;if (!policy) -return -ENODEV ; +return 0 ; cpu_data = policy->driver_data;
drivers/cpufreq/cpufreq.c +8 -0
@@ -2654,10 +2654,18 @@ EXPORT_SYMBOL(cpufreq_update_policy);*/ void cpufreq_update_limits (unsigned int cpu) { +struct cpufreq_policy *policy; + + policy =cpufreq_cpu_get (cpu); +if (!policy) +return ; +if (cpufreq_driver->update_limits) cpufreq_driver->update_limits (cpu);else cpufreq_update_policy (cpu); + +cpufreq_cpu_put (policy); }EXPORT_SYMBOL_GPL (cpufreq_update_limits);
drivers/cpufreq/scmi-cpufreq.c +8 -2
@@ -32,11 +32,17 @@ static const struct scmi_perf_proto_ops *perf_ops;static unsigned int scmi_cpufreq_get_rate (unsigned int cpu) { -struct cpufreq_policy *policy =cpufreq_cpu_get_raw (cpu); -struct scmi_data *priv = policy->driver_data; +struct cpufreq_policy *policy; +struct scmi_data *priv;unsigned long rate;int ret; + policy =cpufreq_cpu_get_raw (cpu); +if (unlikely (!policy)) +return 0 ; + + priv = policy->driver_data; + ret = perf_ops->freq_get (ph, priv->domain_id, &rate, false);if (ret)return 0 ;
drivers/cpufreq/scpi-cpufreq.c +10 -3
@@ -37,9 +37,16 @@ static struct scpi_ops *scpi_ops;static unsigned int scpi_cpufreq_get_rate (unsigned int cpu) { -struct cpufreq_policy *policy =cpufreq_cpu_get_raw (cpu); -struct scpi_data *priv = policy->driver_data; -unsigned long rate =clk_get_rate (priv->clk); +struct cpufreq_policy *policy; +struct scpi_data *priv; +unsigned long rate; + + policy =cpufreq_cpu_get_raw (cpu); +if (unlikely (!policy)) +return 0 ; + + priv = policy->driver_data; + rate =clk_get_rate (priv->clk);return rate /1000 ; }
drivers/crypto/atmel-sha204a.c +6 -1
@@ -107,7 +107,12 @@ static int atmel_sha204a_probe(struct i2c_client *client, i2c_priv->hwrng.name =dev_name (&client->dev); i2c_priv->hwrng.read = atmel_sha204a_rng_read; - i2c_priv->hwrng.quality =1024 ; + +/* +* According to review by Bill Cox [1], this HWRNG has very low entropy. +* [1] https://www.metzdowd.com/pipermail/cryptography/2014-December/023858.html +*/ + i2c_priv->hwrng.quality =1 ; ret =devm_hwrng_register (&client->dev, &i2c_priv->hwrng);if (ret)
drivers/crypto/caam/qi.c +3 -3
@@ -115,12 +115,12 @@ int caam_qi_enqueue(struct device *qidev, struct caam_drv_req *req)qm_fd_addr_set64 (&fd, addr); do { + refcount_inc(&req->drv_ctx->refcnt); ret = qman_enqueue(req->drv_ctx->req_fq, &fd); - if (likely(!ret)) { - refcount_inc(&req->drv_ctx->refcnt); + if (likely(!ret)) return 0; - } + refcount_dec(&req->drv_ctx->refcnt); if (ret != -EBUSY) break; num_retries++;
drivers/crypto/ccp/sp-pci.c +9 -6
@@ -118,14 +118,17 @@ static bool sp_pci_is_master(struct sp_device *sp) pdev_new =to_pci_dev (dev_new); pdev_cur =to_pci_dev (dev_cur); -if (pdev_new->bus->number < pdev_cur->bus->number) -return true; +if (pci_domain_nr (pdev_new->bus) !=pci_domain_nr (pdev_cur->bus)) +return pci_domain_nr (pdev_new->bus) <pci_domain_nr (pdev_cur->bus); -if (PCI_SLOT (pdev_new->devfn) <PCI_SLOT (pdev_cur->devfn)) -return true; +if (pdev_new->bus->number != pdev_cur->bus->number) +return pdev_new->bus->number < pdev_cur->bus->number; -if (PCI_FUNC (pdev_new->devfn) <PCI_FUNC (pdev_cur->devfn)) -return true; +if (PCI_SLOT (pdev_new->devfn) !=PCI_SLOT (pdev_cur->devfn)) +return PCI_SLOT (pdev_new->devfn) <PCI_SLOT (pdev_cur->devfn); + +if (PCI_FUNC (pdev_new->devfn) !=PCI_FUNC (pdev_cur->devfn)) +return PCI_FUNC (pdev_new->devfn) <PCI_FUNC (pdev_cur->devfn);return false; }
drivers/dma-buf/udmabuf.c +1 -1
@@ -186,7 +186,7 @@ static long udmabuf_create(struct miscdevice *device,if (!ubuf)return -ENOMEM ; - pglimit = (size_limit_mb *1024 *1024 ) >>PAGE_SHIFT ; + pglimit = ((u64 )size_limit_mb *1024 *1024 ) >>PAGE_SHIFT ;for (i =0 ; i < head->count; i++) {if (!IS_ALIGNED (list[i].offset,PAGE_SIZE )) goto err;
drivers/dma/dmatest.c +3 -3
@@ -828,9 +828,9 @@ static int dmatest_func(void *data) }else {dma_async_issue_pending (chan); -wait_event_freezable_timeout (thread->done_wait, - done->done, -msecs_to_jiffies (params->timeout)); +wait_event_timeout (thread->done_wait, + done->done, +msecs_to_jiffies (params->timeout)); status =dma_async_is_tx_complete (chan, cookie,NULL ,NULL );
drivers/gpio/gpio-tegra186.c +76 -19
144 lines not on this page · raw message
drivers/gpio/gpio-zynq.c +1 -0
@@ -1012,6 +1012,7 @@ static int zynq_gpio_remove(struct platform_device *pdev) ret =pm_runtime_get_sync (&pdev->dev);if (ret <0 )dev_warn (&pdev->dev,"pm_runtime_get_sync() Failed\n" ); +device_init_wakeup (&pdev->dev,0 );gpiochip_remove (&gpio->chip);clk_disable_unprepare (gpio->clk);device_set_wakeup_capable (&pdev->dev,0 );
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +1 -1
@@ -4008,8 +4008,8 @@ void amdgpu_device_fini_hw(struct amdgpu_device *adev)void amdgpu_device_fini_sw (struct amdgpu_device *adev) { -amdgpu_fence_driver_sw_fini (adev);amdgpu_device_ip_fini (adev); +amdgpu_fence_driver_sw_fini (adev);release_firmware (adev->firmware.gpu_info_fw); adev->firmware.gpu_info_fw =NULL ; adev->accel_working = false;
drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c +1 -1
@@ -225,7 +225,7 @@ static void amdgpu_dma_buf_unmap(struct dma_buf_attachment *attach, struct sg_table *sgt, enum dma_data_direction dir) { -if (sgt->sgl->page_link) { + if (sg_page(sgt->sgl)) {dma_unmap_sgtable (attach->dev, sgt, dir,0 );sg_free_table (sgt);kfree (sgt);
drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c +3 -3
@@ -220,15 +220,15 @@ int amdgpu_vce_sw_fini(struct amdgpu_device *adev)drm_sched_entity_destroy (&adev->vce.entity); -amdgpu_bo_free_kernel (&adev->vce.vcpu_bo, &adev->vce.gpu_addr, - (void **)&adev->vce.cpu_addr); -for (i =0 ; i < adev->vce.num_rings; i++)amdgpu_ring_fini (&adev->vce.ring[i]);release_firmware (adev->vce.fw);mutex_destroy (&adev->vce.idle_mutex); +amdgpu_bo_free_kernel (&adev->vce.vcpu_bo, &adev->vce.gpu_addr, + (void **)&adev->vce.cpu_addr); +return 0 ; }
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +10 -0
@@ -191,6 +191,11 @@ static int set_queue_properties_from_user(struct queue_properties *q_properties,return -EINVAL ; } +if (args->ring_size <KFD_MIN_QUEUE_RING_SIZE ) { + args->ring_size =KFD_MIN_QUEUE_RING_SIZE ; +pr_debug ("Size lower. clamped to KFD_MIN_QUEUE_RING_SIZE" ); + } +if (!access_ok ((const void __user *) args->read_pointer_address,sizeof (uint32_t ))) {pr_err ("Can't access read pointer\n" );
@@ -395,6 +400,11 @@ static int kfd_ioctl_update_queue(struct file *filp, struct kfd_process *p,return -EINVAL ; } +if (args->ring_size <KFD_MIN_QUEUE_RING_SIZE ) { + args->ring_size =KFD_MIN_QUEUE_RING_SIZE ; +pr_debug ("Size lower. clamped to KFD_MIN_QUEUE_RING_SIZE" ); + } + properties.queue_address = args->ring_base_address; properties.queue_size = args->ring_size; properties.queue_percent = args->queue_percentage;
drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c +1 -1
@@ -384,7 +384,7 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid)pr_err ("Pasid 0x%x destroy queue %d failed, ret %d\n" , pqm->process->pasid, pqn->q->properties.queue_id, retval); -if (retval != -ETIME ) +if (retval != -ETIME && retval != -EIO ) goto err_destroy_queue; }
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +10 -10
@@ -2590,16 +2590,16 @@ static void dm_gpureset_commit_state(struct dc_state *dc_state,for (k =0 ; k < dc_state->stream_count; k++) { bundle->stream_update.stream = dc_state->streams[k];
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/core/dc_link.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +9 -13
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubp.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_thermal.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_thermal.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/drm_panel_orientation_quirks.c +8 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/gt/intel_engine_cs.c +6 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/msm/adreno/a6xx_gmu.c +89 -59
148 lines not on this page · raw message
drivers/hid/usbhid/hid-pidff.c +41 -19
60 lines not on this page · raw message
drivers/i2c/busses/i2c-cros-ec-tunnel.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/bnxt_re/qplib_fp.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/hns/hns_roce_main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/usnic/usnic_ib_main.c +7 -7
Lines of this file are not shown. View the raw message.
drivers/media/common/siano/smsdvb-main.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/venus/hfi_parser.c +74 -26
100 lines not on this page · raw message
drivers/media/platform/qcom/venus/hfi_venus.c +16 -2
Lines of this file are not shown. View the raw message.
drivers/media/rc/streamzap.c +55 -80
135 lines not on this page · raw message
drivers/media/v4l2-core/v4l2-dv-timings.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/mtd/nand/raw/brcmnand/brcmnand.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igc/igc_defines.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igc/igc_main.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igc/igc_ptp.c +56 -37
93 lines not on this page · raw message
drivers/net/ethernet/microsoft/mana/mana.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microsoft/mana/mana_en.c +13 -8
Lines of this file are not shown. View the raw message.
drivers/net/wireless/atmel/at76c50x-usb.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/eeprom.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt76x2/usb.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/pci/pci.c +60 -47
107 lines not on this page · raw message
drivers/pci/probe.c +47 -7
54 lines not on this page · raw message
drivers/scsi/hisi_sas/hisi_sas_main.c +167 -196
363 lines not on this page · raw message
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +13 -3
Lines of this file are not shown. View the raw message.
drivers/scsi/lpfc/lpfc_els.c +35 -16
51 lines not on this page · raw message
drivers/soc/samsung/exynos-chipid.c +61 -13
74 lines not on this page · raw message
drivers/usb/chipidea/ci_hdrc_imx.c +31 -13
44 lines not on this page · raw message
drivers/usb/gadget/udc/aspeed-vhub/dev.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/video/fbdev/omap2/omapfb/dss/dispc.c +5 -1
Lines of this file are not shown. View the raw message.
fs/cifs/smb2ops.c +28 -20
48 lines not on this page · raw message
fs/cifs/transport.c +24 -19
43 lines not on this page · raw message
fs/ext4/inode.c +52 -23
75 lines not on this page · raw message
fs/ksmbd/smb2pdu.c +26 -23
49 lines not on this page · raw message
fs/proc/array.c +29 -24
53 lines not on this page · raw message
include/linux/soc/samsung/exynos-chipid.h +2 -4
Lines of this file are not shown. View the raw message.
net/core/filter.c +44 -36
80 lines not on this page · raw message
net/phonet/pep.c +32 -9
41 lines not on this page · raw message
security/landlock/errata.h new file +87 -0
87 lines not on this page · raw message
sound/soc/codecs/lpass-wsa-macro.c +84 -33
117 lines not on this page · raw message
sound/usb/midi.c +74 -6
80 lines not on this page · raw message
tools/testing/selftests/landlock/base_test.c +45 -1
46 lines not on this page · raw message
tools/testing/selftests/mincore/mincore_selftest.c +0 -3
Lines of this file are not shown. View the raw message.
tools/testing/selftests/ublk/test_stripe_04.sh new file +24 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/vm/charge_reserved_hugetlb.sh +2 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/vm/hugetlb_reparenting_test.sh +1 -1
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.