Skip to contentSkip to conversation

Linux 5.10.237

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

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.10.237 kernel.

All users of the 5.10 kernel series must upgrade.

The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.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

------------

 Makefile                                                    |    5 
 arch/arm/mach-exynos/Kconfig                                |    1 
 arch/arm64/boot/dts/mediatek/mt8173.dtsi                    |    6 
 arch/arm64/include/asm/cputype.h                            |    4 
 arch/arm64/kernel/proton-pack.c                             |    1 
 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/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                        |   49 ---
 arch/x86/kernel/cpu/amd.c                                   |    2 
 arch/x86/kernel/cpu/bugs.c                                  |    8 
 arch/x86/kernel/e820.c                                      |   17 -
 arch/x86/kvm/svm/avic.c                                     |   60 ++--
 arch/x86/kvm/vmx/posted_intr.c                              |   28 --
 arch/x86/platform/pvh/head.S                                |    7 
 block/blk-cgroup.c                                          |   24 +
 block/blk-iocost.c                                          |    7 
 crypto/crypto_null.c                                        |   39 +-
 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/bluetooth/btrtl.c                                   |    2 
 drivers/bluetooth/hci_ldisc.c                               |   19 +
 drivers/bluetooth/hci_uart.h                                |    1 
 drivers/char/virtio_console.c                               |    7 
 drivers/clk/clk.c                                           |    4 
 drivers/clocksource/timer-stm32-lp.c                        |    4 
 drivers/cpufreq/cpufreq.c                                   |    8 
 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-zynq.c                                    |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c                 |    9 
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h                     |    3 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.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           |   14 -
 drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.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/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/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/iio/adc/ad7768-1.c                                  |    5 
 drivers/infiniband/core/umem_odp.c                          |    6 
 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/media/common/siano/smsdvb-main.c                    |    2 
 drivers/media/i2c/adv748x/adv748x.h                         |    2 
 drivers/media/i2c/ov7251.c                                  |    4 
 drivers/media/platform/qcom/venus/Makefile                  |    3 
 drivers/media/platform/qcom/venus/core.c                    |   17 -
 drivers/media/platform/qcom/venus/core.h                    |   41 ---
 drivers/media/platform/qcom/venus/helpers.c                 |   60 ++--
 drivers/media/platform/qcom/venus/helpers.h                 |    2 
 drivers/media/platform/qcom/venus/hfi.c                     |   18 +
 drivers/media/platform/qcom/venus/hfi_parser.c              |  159 +++++++++---
 drivers/media/platform/qcom/venus/hfi_parser.h              |    2 
 drivers/media/platform/qcom/venus/hfi_platform.c            |   49 +++
 drivers/media/platform/qcom/venus/hfi_platform.h            |   61 ++++
 drivers/media/platform/qcom/venus/hfi_platform_v4.c         |   60 ++++
 drivers/media/platform/qcom/venus/hfi_venus.c               |   18 +
 drivers/media/platform/qcom/venus/pm_helpers.c              |   12 
 drivers/media/platform/qcom/venus/vdec.c                    |    8 
 drivers/media/platform/qcom/venus/venc.c                    |   91 ++++--
 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                                     |    9 
 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                            |   25 +
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c          |    1 
 drivers/net/ethernet/intel/igc/igc_main.c                   |    1 
 drivers/net/ethernet/intel/igc/igc_ptp.c                    |    7 
 drivers/net/ethernet/mellanox/mlx5/core/en/rep/neigh.c      |   15 -
 drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c         |    6 
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c             |   33 ++
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.h             |    3 
 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/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                                    |   10 
 drivers/nvme/target/fc.c                                    |   14 -
 drivers/nvme/target/fcloop.c                                |    2 
 drivers/of/irq.c                                            |   13 
 drivers/pci/controller/pcie-brcmstb.c                       |   13 
 drivers/pci/pci.c                                           |  103 ++++---
 drivers/pci/probe.c                                         |   58 +++-
 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/platform/x86/intel_speed_select_if/isst_if_common.c |    2 
 drivers/pwm/pwm-fsl-ftm.c                                   |    6 
 drivers/pwm/pwm-mediatek.c                                  |   20 +
 drivers/pwm/pwm-rcar.c                                      |   24 -
 drivers/s390/block/dasd.c                                   |    5 
 drivers/scsi/lpfc/lpfc_hbadisc.c                            |    2 
 drivers/scsi/pm8001/pm8001_sas.c                            |    1 
 drivers/scsi/scsi_transport_iscsi.c                         |    7 
 drivers/scsi/st.c                                           |    2 
 drivers/scsi/ufs/ufs_bsg.c                                  |    1 
 drivers/soc/samsung/Kconfig                                 |   12 
 drivers/soc/samsung/Makefile                                |    3 
 drivers/soc/samsung/exynos-asv.c                            |   45 ---
 drivers/soc/samsung/exynos-asv.h                            |    2 
 drivers/soc/samsung/exynos-chipid.c                         |  137 ++++++++--
 drivers/soc/ti/omap_prm.c                                   |    2 
 drivers/spi/spi-cadence-quadspi.c                           |    6 
 drivers/staging/comedi/drivers/jr3_pci.c                    |   15 -
 drivers/staging/rtl8723bs/core/rtw_mlme.c                   |    2 
 drivers/thermal/rockchip_thermal.c                          |    1 
 drivers/tty/serial/sifive.c                                 |    6 
 drivers/usb/cdns3/gadget.c                                  |    2 
 drivers/usb/core/quirks.c                                   |    9 
 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/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/vfio/pci/vfio_pci.c                                 |   13 
 drivers/video/backlight/led_bl.c                            |    5 
 drivers/video/fbdev/omap2/omapfb/dss/dispc.c                |    6 
 drivers/xen/xenfs/xensyms.c                                 |    4 
 fs/Kconfig                                                  |    1 
 fs/btrfs/super.c                                            |    3 
 fs/cifs/cifs_debug.c                                        |    6 
 fs/cifs/cifsglob.h                                          |    9 
 fs/cifs/cifsproto.h                                         |    7 
 fs/cifs/connect.c                                           |    2 
 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                                             |   76 ++++-
 fs/ext4/namei.c                                             |    2 
 fs/ext4/super.c                                             |   19 +
 fs/ext4/xattr.c                                             |   11 
 fs/f2fs/node.c                                              |    9 
 fs/fuse/virtio_fs.c                                         |    3 
 fs/hfs/bnode.c                                              |    6 
 fs/hfsplus/bnode.c                                          |    6 
 fs/isofs/export.c                                           |    2 
 fs/jbd2/journal.c                                           |    1 
 fs/jfs/jfs_dmap.c                                           |   12 
 fs/jfs/jfs_imap.c                                           |    2 
 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/proc/array.c                                             |   52 ++-
 include/linux/backing-dev.h                                 |    1 
 include/linux/blk-cgroup.h                                  |    1 
 include/linux/filter.h                                      |    4 
 include/linux/nfs.h                                         |   13 
 include/linux/pci.h                                         |   12 
 include/linux/soc/samsung/exynos-chipid.h                   |    6 
 include/net/net_namespace.h                                 |    1 
 include/net/sctp/structs.h                                  |    3 
 include/uapi/linux/kfd_ioctl.h                              |    2 
 include/xen/interface/xen-mca.h                             |    2 
 init/Kconfig                                                |    3 
 kernel/bpf/helpers.c                                        |   11 
 kernel/bpf/syscall.c                                        |   17 -
 kernel/dma/contiguous.c                                     |    3 
 kernel/locking/lockdep.c                                    |    3 
 kernel/resource.c                                           |   41 ---
 kernel/sched/cpufreq_schedutil.c                            |   18 +
 kernel/trace/ftrace.c                                       |    1 
 kernel/trace/trace.h                                        |    4 
 kernel/trace/trace_events.c                                 |    4 
 kernel/trace/trace_events_filter.c                          |    4 
 kernel/trace/trace_events_hist.c                            |    7 
 kernel/trace/trace_events_synth.c                           |   82 ++++++
 kernel/trace/trace_synth.h                                  |    1 
 lib/sg_split.c                                              |    2 
 mm/memory.c                                                 |    4 
 mm/vmscan.c                                                 |    2 
 net/8021q/vlan_dev.c                                        |   31 --
 net/bluetooth/hci_event.c                                   |    5 
 net/core/dev.c                                              |    1 
 net/core/filter.c                                           |   80 +++---
 net/core/net_namespace.c                                    |   21 +
 net/core/page_pool.c                                        |    8 
 net/ipv4/inet_connection_sock.c                             |   19 +
 net/mac80211/iface.c                                        |    3 
 net/mac80211/mesh_hwmp.c                                    |   14 -
 net/mptcp/protocol.c                                        |   45 +++
 net/mptcp/subflow.c                                         |   15 -
 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/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 
 sound/pci/hda/hda_intel.c                                   |   15 +
 sound/soc/codecs/wcd934x.c                                  |    2 
 sound/soc/qcom/qdsp6/q6asm-dai.c                            |   19 -
 sound/usb/midi.c                                            |   80 +++++-
 tools/objtool/check.c                                       |    3 
 tools/power/cpupower/bench/parse.c                          |    4 
 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 
 265 files changed, 2371 insertions(+), 1187 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 path

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

Abhishek Sahu (1):
vfio/pci: fix memory leak during D3hot to D0 transition

Adam Xue (1):
USB: serial: option: add Sierra Wireless EM9291

Al Viro (1):
qibfs: fix _another_ leak

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

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

Ben Dooks (1):
bpf: Add endian modifiers to fix endian warnings

Bhupesh (1):
ext4: ignore xattrs past end

Boqun Feng (2):
locking/lockdep: Decrease nr_unused_locks if lock unused in zap_class()
PCI: Introduce domain_nr in pci_host_bridge

Chao Yu (1):
f2fs: fix to avoid out-of-bounds access in f2fs_truncate_inode_blocks()

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

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 (2):
igc: handle the IGC_PTP_ENABLED flag correctly
igc: cleanup PTP module if probe fails

Chunguang Xu (1):
nvme: avoid double free special payload

Colin Ian King (1):
media: venus: Fix uninitialized variable count being checked for zero

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 Golle (1):
pwm: mediatek: always use bus clock for PWM on MT7622

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

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

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

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

Denis Arefev (4):
asus-laptop: Fix an uninitialized variable drm/amd/pm/powerplay: Prevent division by zero drm/amd/pm/powerplay/hwmgr/smu7_thermal: Prevent division by zero drm/amd/pm/powerplay/hwmgr/vega20_thermal: Prevent division by zero

Douglas Anderson (3):
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

Douglas Raillard (1):
tracing: Fix synth event printk format for str fields

Duoming Zhou (1):
drivers: staging: rtl8723bs: Fix deadlock in rtw_surveydone_event_callback()

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

Enzo Matsumiya (2):
smb: client: fix UAF in async decryption
cifs: print TIDs as hex

Eric Biggers (2):
ext4: reject casefold inode flag without casefold feature
nfs: add missing selections of CONFIG_CRC32

Eric Dumazet (1):
net: defer final 'struct net' free in netns dismantle

Fabien Parent (1):
pwm: mediatek: Always use bus clock

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

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

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 (1):
pwm: rcar: Simplify multiplication/shift logic

Greg Kroah-Hartman (1):

      Linux 5.10.237

Gregory CLEMENT (1):
MIPS: cm: Detect CM quirks from device tree

Guixin Liu (1):
scsi: ufs: bsg: Set bsg_queue to NULL after removal

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

Hans de Goede (1):
drivers: staging: rtl8723bs: Fix locking in rtw_scan_timeout_handler()

Haoxiang Li (1):
mcb: fix a double free bug in chameleon_parse_gdd()

Heiko Stuebner (1):
clk: check for disabled clock-provider in of_clk_get_hw_from_clkspec()

Henry Martin (2):
ata: pata_pxa: Fix potential NULL pointer dereference in pxa_ata_probe()
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

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 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 Layton (1):
nfs: move nfs_fhandle_hash to common include file

Jiasheng Jiang (1):
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()

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 (5):
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

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 (2):
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

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 (5):
gpio: zynq: Fix wakeup source leaks on device unbind
soc: samsung: exynos-chipid: initialize later - with arch_initcall
soc: samsung: exynos-chipid: convert to driver and merge exynos-asv
soc: samsung: exynos-chipid: avoid soc_device_to_device()
soc: samsung: exynos-chipid: correct helpers __init annotation

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

Kuniyuki Iwashima (1):
tcp/dccp: Don't use timer_pending() in reqsk_queue_unlink().

Kunwu Chan (1):
pmdomain: ti: Add a null pointer check to the omap_prm_domain_init

Lee Jones (1):
drm/amd/amdgpu/amdgpu_vram_mgr: Add missing descriptions for 'dev' and 'dir'

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

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

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()

Marek Behún (3):
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

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

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

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

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

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

Miaohe Lin (1):
kernel/resource: fix kfree() of bootmem memory again

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

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

Miroslav Franc (1):
s390/dasd: fix double module refcount decrement

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()

Nathan Chancellor (2):
riscv: Avoid fortify warning in syscall_get_arguments()
kbuild: Add '-fno-builtin-wcslen'

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

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

Oliver Neukum (2):
USB: storage: quirk for ADATA Portable HDD CH94
USB: VLI disk crashes if LPM is used

Pali Rohár (1):
PCI: Assign PCI domain IDs by ida_alloc()

Paulo Alcantara (5):
smb: client: fix potential UAF in cifs_debug_files_proc_show()
smb: client: fix use-after-free bug in cifs_debug_data_proc_show()
smb: client: fix potential deadlock when releasing mids
smb: client: fix potential UAF in cifs_stats_proc_show()
smb: client: fix NULL ptr deref in crypto_aead_setkey()

Pei Li (1):
jfs: Fix shift-out-of-bounds in dbDiscardAG

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

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

Ramesh Errabolu (1):
drm/amdgpu: Remove amdgpu_device arg from free_sgt api (v2)

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

Ryan Roberts (1):
sparc/mm: disable preemption in lazy mmu mode

Ryo Takakura (1):
serial: sifive: lock port in startup()/shutdown() callbacks

Sakari Ailus (2):
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

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

Srinivas Pandruvada (1):
platform/x86: ISST: Correct command storage data length

Srinivasan Shanmugam (1):
drm/amd/display: Fix out-of-bounds access in 'dcn21_link_encoder_create'

Stanimir Varbanov (10):
PCI: brcmstb: Fix missing of_node_put() in brcm_pcie_probe()
media: venus: venc: Init the session only once in queue_setup
media: venus: Limit HFI sessions to the maximum supported
media: venus: hfi: Correct session init return error
media: venus: pm_helpers: Check instance state when calculate instance frequency
media: venus: Create hfi platform and move vpp/vsp there
media: venus: Rename venus_caps to hfi_plat_caps
media: venus: hfi_plat: Add codecs and capabilities ops
media: venus: Get codecs and capabilities from hfi platform
media: venus: hfi_parser: Check for instance after hfi platform get

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

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

Steven Rostedt (1):
tracing: Fix filter string testing

Steven Rostedt (Google) (1):
tracing: Allow synthetic events to pass around stacktraces

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

Thomas Bogendoerfer (1):
MIPS: cm: Fix warning if MIPS_CM is disabled

Thomas Weißschuh (1):
KVM: s390: Don't use %pK through tracepoints

Thorsten Leemhuis (1):
module: sign with sha512 instead of sha1 by default

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 (1):
umount: Allow superblock owners to force umount

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 (2):
pwm: rcar: Improve register calculation
pwm: fsl-ftm: Handle clk_get_rate() returning 0

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

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

Vlad Buslov (1):
net/mlx5e: Fix use-after-free of encap entry in neigh update handler

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

Yu Kuai (1):
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()

Zhang Xiaoxu (1):
cifs: Fix UAF in cifs_demultiplex_thread()

Zhongqiu Han (1):
pm: cpupower: bench: Prevent NULL dereference on malloc failure

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()

author maintainer
#1 lore raw
Makefile +4 -1
index e13f8f8a9ea9..b0e2f455eb87 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 10
-SUBLEVEL = 236
+SUBLEVEL = 237
 EXTRAVERSION =
 NAME = Dare mighty things
 
@@ -976,6 +976,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/arm/mach-exynos/Kconfig +0 -1
index b5df98ee5d17..4b554cc8fa58 100644
@@ -13,7 +13,6 @@ menuconfig ARCH_EXYNOS
 	select ARM_GIC
 	select EXYNOS_IRQ_COMBINER
 	select COMMON_CLK_SAMSUNG
-	select EXYNOS_ASV
 	select EXYNOS_CHIPID
 	select EXYNOS_THERMAL
 	select EXYNOS_PMU
arch/arm64/boot/dts/mediatek/mt8173.dtsi +2 -4
index 592c6bc10dd1..b4268950db18 100644
@@ -1193,8 +1193,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>,
@@ -1204,8 +1203,7 @@ pwm0: pwm@1401e000 {
 		};
 
 		pwm1: pwm@1401f000 {
-			compatible = "mediatek,mt8173-disp-pwm",
-				     "mediatek,mt6595-disp-pwm";
+			compatible = "mediatek,mt8173-disp-pwm";
 			reg = <0 0x1401f000 0 0x1000>;
 			#pwm-cells = <2>;
 			clocks = <&mmsys CLK_MM_DISP_PWM126M>,
arch/arm64/include/asm/cputype.h +4 -0
index d8305b4657d2..423bc03a21f2 100644
@@ -74,6 +74,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
@@ -110,6 +111,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
@@ -136,6 +138,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)
@@ -167,6 +170,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/kernel/proton-pack.c +1 -0
index 90337910c3f5..45fdfe70b69f 100644
@@ -874,6 +874,7 @@ u8 spectre_bhb_loop_affected(int scope)
 			MIDR_ALL_VERSIONS(MIDR_CORTEX_A76),
 			MIDR_ALL_VERSIONS(MIDR_CORTEX_A77),
 			MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N1),
+			MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_4XX_GOLD),
 			{},
 		};
 		static const struct midr_range spectre_bhb_k11_list[] = {
arch/mips/dec/prom/init.c +1 -1
index cc988bbd27fc..0880a5551d97 100644
@@ -42,7 +42,7 @@ int (*__pmax_close)(int);
  * Detect which PROM the DECSTATION has, and set the callback vectors
  * appropriately.
  */
-void __init which_prom(s32 magic, s32 *prom_vec)
+static void __init which_prom(s32 magic, s32 *prom_vec)
 {
 	/*
 	 * No sign of the REX PROM's magic number means we assume a non-REX
arch/mips/include/asm/ds1287.h +1 -1
index 46cfb01f9a14..51cb61fd4c03 100644
@@ -8,7 +8,7 @@
 #define __ASM_DS1287_H
 
 extern int ds1287_timer_state(void);
-extern void ds1287_set_base_clock(unsigned int clock);
+extern int ds1287_set_base_clock(unsigned int hz);
 extern int ds1287_clockevent_init(int irq);
 
 #endif
arch/mips/include/asm/mips-cm.h +22 -0
index 696b40beb774..8494466740cc 100644
@@ -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
index 9a47fbcd4638..de64d6bb7ba3 100644
@@ -10,6 +10,7 @@
 #include <linux/mc146818rtc.h>
 #include <linux/irq.h>
 
+#include <asm/ds1287.h>
 #include <asm/time.h>
 
 int ds1287_timer_state(void)
arch/mips/kernel/mips-cm.c +14 -0
index 72c8374a3900..a0d9cde26dc5 100644
@@ -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
index fcc761b0e11b..d20e8283c5b8 100644
@@ -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
index 5976a25c6264..a8299981798a 100644
@@ -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>
@@ -1173,6 +1174,9 @@ SYSCALL_DEFINE1(rtas, struct rtas_args __user *, uargs)
 	    || nargs + nret > ARRAY_SIZE(args.args))
 		return -EINVAL;
 
+	nargs = array_index_nospec(nargs, ARRAY_SIZE(args.args));
+	nret = array_index_nospec(nret, ARRAY_SIZE(args.args) - nargs);
+
 	/* Copy in args. */
 	if (copy_from_user(args.args, uargs->args,
 			   nargs * sizeof(rtas_arg_t)) != 0)
arch/riscv/include/asm/kgdb.h +1 -8
index 46677daf708b..cc11c4544cff 100644
@@ -19,16 +19,9 @@
 
 #ifndef	__ASSEMBLY__
 
+void arch_kgdb_breakpoint(void);
 extern unsigned long kgdb_compiled_break;
 
-static inline void arch_kgdb_breakpoint(void)
-{
-	asm(".global kgdb_compiled_break\n"
-	    ".option norvc\n"
-	    "kgdb_compiled_break: ebreak\n"
-	    ".option rvc\n");
-}
-
 #endif /* !__ASSEMBLY__ */
 
 #define DBG_REG_ZERO "zero"
arch/riscv/include/asm/syscall.h +5 -2
index 49350c8bd7b0..9fa0729bc669 100644
@@ -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, &regs->a1, 5 * sizeof(args[0]));
+	args[1] = regs->a1;
+	args[2] = regs->a2;
+	args[3] = regs->a3;
+	args[4] = regs->a4;
+	args[5] = regs->a5;
 }
 
 static inline void syscall_set_arguments(struct task_struct *task,
arch/riscv/kernel/kgdb.c +6 -0
index 963ed7edcff2..1d83b3696721 100644
@@ -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/s390/kvm/trace-s390.h +2 -2
index 6f0209d45164..9c5f546a2e1a 100644
@@ -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
index 20ee14739333..c7d396a2703f 100644
@@ -51,8 +51,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;
 }
 
@@ -63,6 +65,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
index f4419afc7147..bda217961172 100644
@@ -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
index 48f30ffef1f4..ed34e38e206b 100644
@@ -988,8 +988,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) &&
 		     ((attr->config & INTEL_ARCH_EVENT_MASK) ==
@@ -1572,7 +1574,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 +9 -40

81 lines not on this page · raw message

arch/x86/kernel/cpu/amd.c +1 -1
index c10f7dcaa7b7..5f0bdb53b006 100644
@@ -839,7 +839,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 +4 -4
index 725f827718a7..045ab6d0a98b 100644
@@ -1543,20 +1543,20 @@ static void __init spectre_v2_determine_rsb_fill_type_at_vmexit(enum spectre_v2_
 	case SPECTRE_V2_NONE:
 		return;
 
-	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;
 
-	case SPECTRE_V2_EIBRS_RETPOLINE:
 	case SPECTRE_V2_RETPOLINE:
 	case SPECTRE_V2_LFENCE:
 	case SPECTRE_V2_IBRS:
-		setup_force_cpu_cap(X86_FEATURE_RSB_VMEXIT);
 		pr_info("Spectre v2 / SpectreRSB : Filling RSB on VMEXIT\n");
+		setup_force_cpu_cap(X86_FEATURE_RSB_VMEXIT);
 		return;
 	}
 
arch/x86/kernel/e820.c +8 -9
index 7f57110f958e..bebaeb9ef83e 100644
@@ -753,22 +753,21 @@ void __init e820__memory_setup_extended(u64 phys_addr, u32 data_len)
 void __init e820__register_nosave_regions(unsigned long limit_pfn)
 {
 	int i;
-	unsigned long pfn = 0;
+	u64 last_addr = 0;
 
 	for (i = 0; i < e820_table->nr_entries; i++) {
 		struct e820_entry *entry = &e820_table->entries[i];
 
-		if (pfn < PFN_UP(entry->addr))
-			register_nosave_region(pfn, PFN_UP(entry->addr));
-
-		pfn = PFN_DOWN(entry->addr + entry->size);
-
 		if (entry->type != E820_TYPE_RAM && entry->type != E820_TYPE_RESERVED_KERN)
-			register_nosave_region(PFN_UP(entry->addr), pfn);
+			continue;
 
-		if (pfn >= limit_pfn)
-			break;
+		if (last_addr < entry->addr)
+			register_nosave_region(PFN_DOWN(last_addr), PFN_UP(entry->addr));
+
+		last_addr = entry->addr + entry->size;
 	}
+
+	register_nosave_region(PFN_DOWN(last_addr), limit_pfn);
 }
 
 #ifdef CONFIG_ACPI
arch/x86/kvm/svm/avic.c +32 -28

90 lines not on this page · raw message

arch/x86/kvm/vmx/posted_intr.c +10 -18
index 5f8acd2faa7c..e4c3da27524c 100644
@@ -255,6 +255,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;
@@ -293,21 +294,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;
@@ -315,11 +303,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__);
@@ -327,6 +316,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/platform/pvh/head.S +6 -1
index b0490701da2a..bfd4e63a90cb 100644
@@ -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
index 13a17ad646e0..dbd18b75ec91 100644
@@ -191,6 +191,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;
@@ -288,8 +289,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;
@@ -389,8 +393,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;
@@ -1364,6 +1371,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 */
@@ -1371,9 +1379,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;
@@ -1435,7 +1445,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
index 20b51868cf5a..6e895fa90602 100644
@@ -1389,8 +1389,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
index 5b84b0f7cc17..337867028653 100644
@@ -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/pptt.c +2 -2
index 4ae93350b70d..38581001811b 100644
@@ -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
index 04b53bb7a692..2bb9555663e7 100644
@@ -591,6 +591,8 @@ static const struct pci_device_id ahci_pci_tbl[] = {
 	  .driver_data = board_ahci_yes_fbs },
 	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a3),
 	  .driver_data = board_ahci_yes_fbs },
+	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9215),
+	  .driver_data = board_ahci_yes_fbs },
 	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9230),
 	  .driver_data = board_ahci_yes_fbs },
 	{ PCI_DEVICE(PCI_VENDOR_ID_TTI, 0x0642), /* highpoint rocketraid 642L */
drivers/ata/libata-eh.c +9 -2
index 48130b254396..e700024a8b48 100644
@@ -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
index 41430f79663c..3502bfb03c56 100644
@@ -223,10 +223,16 @@ static int pxa_ata_probe(struct platform_device *pdev)
 
 	ap->ioaddr.cmd_addr	= devm_ioremap(&pdev->dev, cmd_res->start,
 						resource_size(cmd_res));
+	if (!ap->ioaddr.cmd_addr)
+		return -ENOMEM;
 	ap->ioaddr.ctl_addr	= devm_ioremap(&pdev->dev, ctl_res->start,
 						resource_size(ctl_res));
+	if (!ap->ioaddr.ctl_addr)
+		return -ENOMEM;
 	ap->ioaddr.bmdma_addr	= devm_ioremap(&pdev->dev, dma_res->start,
 						resource_size(dma_res));
+	if (!ap->ioaddr.bmdma_addr)
+		return -ENOMEM;
 
 	/*
 	 * Adjust register offsets
drivers/ata/sata_sx4.c +44 -74

322 lines not on this page · raw message

drivers/bluetooth/btrtl.c +2 -0
index 3a9afc905f24..77de43d8d796 100644
@@ -625,6 +625,8 @@ struct btrtl_device_info *btrtl_initialize(struct hci_dev *hdev,
 			rtl_dev_err(hdev, "mandatory config file %s not found",
 				    btrtl_dev->ic_info->cfg_name);
 			ret = btrtl_dev->cfg_len;
+			if (!ret)
+				ret = -EINVAL;
 			goto err_free;
 		}
 	}
drivers/bluetooth/hci_ldisc.c +14 -5
index e7d78937f7d6..93bb58971dbe 100644
@@ -102,7 +102,8 @@ static inline struct sk_buff *hci_uart_dequeue(struct hci_uart *hu)
 	if (!skb) {
 		percpu_down_read(&hu->proto_lock);
 
-		if (test_bit(HCI_UART_PROTO_READY, &hu->flags))
+		if (test_bit(HCI_UART_PROTO_READY, &hu->flags) ||
+		    test_bit(HCI_UART_PROTO_INIT, &hu->flags))
 			skb = hu->proto->dequeue(hu);
 
 		percpu_up_read(&hu->proto_lock);
@@ -124,7 +125,8 @@ int hci_uart_tx_wakeup(struct hci_uart *hu)
 	if (!percpu_down_read_trylock(&hu->proto_lock))
 		return 0;
 
-	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags))
+	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags) &&
+	    !test_bit(HCI_UART_PROTO_INIT, &hu->flags))
 		goto no_schedule;
 
 	set_bit(HCI_UART_TX_WAKEUP, &hu->tx_state);
@@ -278,7 +280,8 @@ static int hci_uart_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
 
 	percpu_down_read(&hu->proto_lock);
 
-	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags)) {
+	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags) &&
+	    !test_bit(HCI_UART_PROTO_INIT, &hu->flags)) {
 		percpu_up_read(&hu->proto_lock);
 		return -EUNATCH;
 	}
@@ -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
index 4e039d7a16f8..4f33074860af 100644
@@ -89,6 +89,7 @@ struct hci_uart {
 #define HCI_UART_PROTO_SET	0
 #define HCI_UART_REGISTERED	1
 #define HCI_UART_PROTO_READY	2
+#define HCI_UART_PROTO_INIT	4
 
 /* TX states  */
 #define HCI_UART_SENDING	1
drivers/char/virtio_console.c +4 -3
index 1734b4341585..5c8f009bb6f7 100644
@@ -1617,8 +1617,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))
@@ -1626,7 +1626,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
index 7dc3b0cca252..950dfa059a20 100644
@@ -4858,6 +4858,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
index db2841d0beb8..90c10f378df2 100644
@@ -168,9 +168,7 @@ static int stm32_clkevent_lp_probe(struct platform_device *pdev)
 	}
 
 	if (of_property_read_bool(pdev->dev.parent->of_node, "wakeup-source")) {
-		ret = device_init_wakeup(&pdev->dev, true);
-		if (ret)
-			goto out_clk_disable;
+		device_set_wakeup_capable(&pdev->dev, true);
 
 		ret = dev_pm_set_wake_irq(&pdev->dev, irq);
 		if (ret)
drivers/cpufreq/cpufreq.c +8 -0
index 162de402b113..d13139497da4 100644
@@ -2593,10 +2593,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/scpi-cpufreq.c +10 -3
index c79cdf1be780..f990de8c6ed0 100644
@@ -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
index c96c14e7dab1..0ef92109ce22 100644
@@ -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
index 8e9f6097114e..82afae9ca907 100644
@@ -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
index c319e7e3917d..8efcdd6a2eab 100644
@@ -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
index 14b79458ac7f..597a92438afc 100644
@@ -177,7 +177,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
index a3a172173e34..915724fd7ea6 100644
@@ -825,9 +825,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-zynq.c +1 -0
index c288a7502de2..7f73f775d6ba 100644
@@ -1016,6 +1016,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_dma_buf.c +2 -7
index e93ccdc5faf4..e4d0a9377e71 100644
@@ -357,17 +357,12 @@ static void amdgpu_dma_buf_unmap(struct dma_buf_attachment *attach,
 				 struct sg_table *sgt,
 				 enum dma_data_direction dir)
 {
-	struct dma_buf *dma_buf = attach->dmabuf;
-	struct drm_gem_object *obj = dma_buf->priv;
-	struct amdgpu_bo *bo = gem_to_amdgpu_bo(obj);
-	struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev);
-
-	if (sgt->sgl->page_link) {
+	if (sg_page(sgt->sgl)) {
 		dma_unmap_sgtable(attach->dev, sgt, dir, 0);
 		sg_free_table(sgt);
 		kfree(sgt);
 	} else {
-		amdgpu_vram_mgr_free_sgt(adev, attach->dev, dir, sgt);
+		amdgpu_vram_mgr_free_sgt(attach->dev, dir, sgt);
 	}
 }
 
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h +1 -2
index a87951b2f06d..bd873b1b760c 100644
@@ -113,8 +113,7 @@ int amdgpu_vram_mgr_alloc_sgt(struct amdgpu_device *adev,
 			      struct device *dev,
 			      enum dma_data_direction dir,
 			      struct sg_table **sgt);
-void amdgpu_vram_mgr_free_sgt(struct amdgpu_device *adev,
-			      struct device *dev,
+void amdgpu_vram_mgr_free_sgt(struct device *dev,
 			      enum dma_data_direction dir,
 			      struct sg_table *sgt);
 uint64_t amdgpu_vram_mgr_usage(struct ttm_resource_manager *man);
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +3 -3
index 0c6b7c5ecfec..ad72db21b8d6 100644
@@ -530,13 +530,13 @@ int amdgpu_vram_mgr_alloc_sgt(struct amdgpu_device *adev,
 /**
  * amdgpu_vram_mgr_alloc_sgt - allocate and fill a sg table
  *
- * @adev: amdgpu device pointer
+ * @dev: device pointer
+ * @dir: data direction of resource to unmap
  * @sgt: sg table to free
  *
  * Free a previously allocate sg table.
  */
-void amdgpu_vram_mgr_free_sgt(struct amdgpu_device *adev,
-			      struct device *dev,
+void amdgpu_vram_mgr_free_sgt(struct device *dev,
 			      enum dma_data_direction dir,
 			      struct sg_table *sgt)
 {
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +10 -0
index 9a444b17530a..869c8786df5c 100644
@@ -190,6 +190,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");
@@ -394,6 +399,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
index 43c07ac2c6fc..cabe0012ab5b 100644
@@ -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 +7 -7
index 786cd892f179..260133562db5 100644
@@ -3397,17 +3397,17 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev)
 			goto fail;
 		}
 
+	if (link_cnt > (MAX_PIPES * 2)) {
+		DRM_ERROR(
+			"KMS: Cannot support more than %d display indexes\n",
+				MAX_PIPES * 2);
+		goto fail;
+	}
+
 	/* loops over all connectors on the board */
 	for (i = 0; i < link_cnt; i++) {
 		struct dc_link *link = NULL;
 
-		if (i > AMDGPU_DM_MAX_DISPLAY_INDEX) {
-			DRM_ERROR(
-				"KMS: Cannot support more than %d display indexes\n",
-					AMDGPU_DM_MAX_DISPLAY_INDEX);
-			continue;
-		}
-
 		aconnector = kzalloc(sizeof(*aconnector), GFP_KERNEL);
 		if (!aconnector)
 			goto fail;
drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c +1 -1
index 01c4e8753294..f02305089b56 100644
@@ -1698,7 +1698,7 @@ static struct link_encoder *dcn21_link_encoder_create(
 		kzalloc(sizeof(struct dcn21_link_encoder), GFP_KERNEL);
 	int link_regs_id;
 
-	if (!enc21)
+	if (!enc21 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
 		return NULL;
 
 	link_regs_id =
drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_thermal.c +2 -2
index 0b30f73649a8..49f97d612421 100644
@@ -261,10 +261,10 @@ int smu7_fan_ctrl_set_fan_speed_rpm(struct pp_hwmgr *hwmgr, uint32_t speed)
 	if (hwmgr->thermal_controller.fanInfo.bNoFan ||
 			(hwmgr->thermal_controller.fanInfo.
 			ucTachometerPulsesPerRevolution == 0) ||
-			speed == 0 ||
+			(!speed || speed > UINT_MAX/8) ||
 			(speed < hwmgr->thermal_controller.fanInfo.ulMinRPM) ||
 			(speed > hwmgr->thermal_controller.fanInfo.ulMaxRPM))
-		return 0;
+		return -EINVAL;
 
 	if (PP_CAP(PHM_PlatformCaps_MicrocodeFanControl))
 		smu7_fan_ctrl_stop_smc_fan_control(hwmgr);
drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c +2 -2
index 952cd3d7240e..303538efdc97 100644
@@ -311,10 +311,10 @@ int vega10_fan_ctrl_set_fan_speed_rpm(struct pp_hwmgr *hwmgr, uint32_t speed)
 	int result = 0;
 
 	if (hwmgr->thermal_controller.fanInfo.bNoFan ||
-	    speed == 0 ||
+	    (!speed || speed > UINT_MAX/8) ||
 	    (speed < hwmgr->thermal_controller.fanInfo.ulMinRPM) ||
 	    (speed > hwmgr->thermal_controller.fanInfo.ulMaxRPM))
-		return -1;
+		return -EINVAL;
 
 	if (PP_CAP(PHM_PlatformCaps_MicrocodeFanControl))
 		result = vega10_fan_ctrl_stop_smc_fan_control(hwmgr);
drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_thermal.c +1 -1
index 364162ddaa9c..87b7baa9492b 100644
@@ -189,7 +189,7 @@ int vega20_fan_ctrl_set_fan_speed_rpm(struct pp_hwmgr *hwmgr, uint32_t speed)
 	uint32_t tach_period, crystal_clock_freq;
 	int result = 0;
 
-	if (!speed)
+	if (!speed || speed > UINT_MAX/8)
 		return -EINVAL;
 
 	if (PP_CAP(PHM_PlatformCaps_MicrocodeFanControl)) {
drivers/gpu/drm/drm_atomic_helper.c +1 -1
index 0fde260b7edd..dee3b81dec58 100644
@@ -1268,7 +1268,7 @@ crtc_set_mode(struct drm_device *dev, struct drm_atomic_state *old_state)
 		mode = &new_crtc_state->mode;
 		adjusted_mode = &new_crtc_state->adjusted_mode;
 
-		if (!new_crtc_state->mode_changed)
+		if (!new_crtc_state->mode_changed && !new_crtc_state->connectors_changed)
 			continue;
 
 		DRM_DEBUG_ATOMIC("modeset on [ENCODER:%d:%s]\n",
drivers/gpu/drm/drm_panel.c +4 -1
index 7fd3de89ed07..acd29b4f43f8 100644
@@ -49,7 +49,7 @@ static LIST_HEAD(panel_list);
  * @dev: parent device of the panel
  * @funcs: panel operations
  * @connector_type: the connector type (DRM_MODE_CONNECTOR_*) corresponding to
- *	the panel interface
+ *	the panel interface (must NOT be DRM_MODE_CONNECTOR_Unknown)
  *
  * Initialize the panel structure for subsequent registration with
  * drm_panel_add().
@@ -57,6 +57,9 @@ static LIST_HEAD(panel_list);
 void drm_panel_init(struct drm_panel *panel, struct device *dev,
 		    const struct drm_panel_funcs *funcs, int connector_type)
 {
+	if (connector_type == DRM_MODE_CONNECTOR_Unknown)
+		DRM_WARN("%s: %s: a valid connector type is required!\n", __func__, dev_name(dev));
+
 	INIT_LIST_HEAD(&panel->list);
 	panel->dev = dev;
 	panel->funcs = funcs;
drivers/gpu/drm/drm_panel_orientation_quirks.c +8 -2
index bf90a5be956f..6fc9d638ccd2 100644
@@ -166,10 +166,10 @@ static const struct dmi_system_id orientation_data[] = {
 		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T103HAF"),
 		},
 		.driver_data = (void *)&lcd800x1280_rightside_up,
-	}, {	/* AYA NEO AYANEO 2 */
+	}, {	/* AYA NEO AYANEO 2/2S */
 		.matches = {
 		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"),
-		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "AYANEO 2"),
+		  DMI_MATCH(DMI_PRODUCT_NAME, "AYANEO 2"),
 		},
 		.driver_data = (void *)&lcd1200x1920_rightside_up,
 	}, {	/* AYA NEO 2021 */
@@ -235,6 +235,12 @@ static const struct dmi_system_id orientation_data[] = {
 		  DMI_EXACT_MATCH(DMI_BOARD_NAME, "Default string"),
 		},
 		.driver_data = (void *)&gpd_win2,
+	}, {	/* GPD Win 2 (correct DMI strings) */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "GPD"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "WIN2")
+		},
+		.driver_data = (void *)&lcd720x1280_rightside_up,
 	}, {	/* GPD Win 3 */
 		.matches = {
 		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "GPD"),
drivers/gpu/drm/i915/gt/intel_engine_cs.c +6 -1
index a19537706ed1..eb6f4d7f1e34 100644
@@ -904,8 +904,13 @@ int intel_engines_init(struct intel_gt *gt)
 			return err;
 
 		err = setup(engine);
-		if (err)
+		if (err) {
+			intel_engine_cleanup_common(engine);
 			return err;
+		}
+
+		/* The backend should now be responsible for cleanup */
+		GEM_BUG_ON(engine->release == NULL);
 
 		err = engine_init_common(engine);
 		if (err)
drivers/gpu/drm/mediatek/mtk_dpi.c +9 -0
index aa3d472c79d7..ac75c10aed2f 100644
@@ -369,6 +369,7 @@ static void mtk_dpi_power_off(struct mtk_dpi *dpi)
 
 	mtk_dpi_disable(dpi);
 	clk_disable_unprepare(dpi->pixel_clk);
+	clk_disable_unprepare(dpi->tvd_clk);
 	clk_disable_unprepare(dpi->engine_clk);
 }
 
@@ -385,6 +386,12 @@ static int mtk_dpi_power_on(struct mtk_dpi *dpi)
 		goto err_refcount;
 	}
 
+	ret = clk_prepare_enable(dpi->tvd_clk);
+	if (ret) {
+		dev_err(dpi->dev, "Failed to enable tvd pll: %d\n", ret);
+		goto err_engine;
+	}
+
 	ret = clk_prepare_enable(dpi->pixel_clk);
 	if (ret) {
 		dev_err(dpi->dev, "Failed to enable pixel clock: %d\n", ret);
@@ -394,6 +401,8 @@ static int mtk_dpi_power_on(struct mtk_dpi *dpi)
 	return 0;
 
 err_pixel:
+	clk_disable_unprepare(dpi->tvd_clk);
+err_engine:
 	clk_disable_unprepare(dpi->engine_clk);
 err_refcount:
 	dpi->refcount--;
drivers/gpu/drm/nouveau/nouveau_bo.c +3 -0
index 7633f56bc0a4..35263e17863b 100644
@@ -143,6 +143,9 @@ nouveau_bo_del_ttm(struct ttm_buffer_object *bo)
 	nouveau_bo_del_io_reserve_lru(bo);
 	nv10_bo_put_tile_region(dev, nvbo->tile, NULL);
 
+	if (bo->base.import_attach)
+		drm_prime_gem_destroy(&bo->base, bo->sg);
+
 	/*
 	 * If nouveau_bo_new() allocated this buffer, the GEM object was never
 	 * initialized, so don't attempt to release it.
drivers/gpu/drm/nouveau/nouveau_gem.c +0 -3
index 6504ebec1190..567b43aa4a31 100644
@@ -51,9 +51,6 @@ nouveau_gem_object_del(struct drm_gem_object *gem)
 		return;
 	}
 
-	if (gem->import_attach)
-		drm_prime_gem_destroy(gem, nvbo->bo.sg);
-
 	ttm_bo_put(&nvbo->bo);
 
 	pm_runtime_mark_last_busy(dev);
drivers/gpu/drm/sti/Makefile +0 -2
index f203ac5514ae..f778a4eee7c9 100644
@@ -7,8 +7,6 @@ sti-drm-y := \
 	sti_compositor.o \
 	sti_crtc.o \
 	sti_plane.o \
-	sti_crtc.o \
-	sti_plane.o \
 	sti_hdmi.o \
 	sti_hdmi_tx3g4c28phy.o \
 	sti_dvo.o \
drivers/gpu/drm/tiny/repaper.c +2 -2
index 2e01cf0a9876..6395b7016f13 100644
@@ -454,7 +454,7 @@ static void repaper_frame_fixed_repeat(struct repaper_epd *epd, u8 fixed_value,
 				       enum repaper_stage stage)
 {
 	u64 start = local_clock();
-	u64 end = start + (epd->factored_stage_time * 1000 * 1000);
+	u64 end = start + ((u64)epd->factored_stage_time * 1000 * 1000);
 
 	do {
 		repaper_frame_fixed(epd, fixed_value, stage);
@@ -465,7 +465,7 @@ static void repaper_frame_data_repeat(struct repaper_epd *epd, const u8 *image,
 				      const u8 *mask, enum repaper_stage stage)
 {
 	u64 start = local_clock();
-	u64 end = start + (epd->factored_stage_time * 1000 * 1000);
+	u64 end = start + ((u64)epd->factored_stage_time * 1000 * 1000);
 
 	do {
 		repaper_frame_data(epd, image, mask, stage);
drivers/hid/usbhid/hid-pidff.c +41 -19

109 lines not on this page · raw message

drivers/hsi/clients/ssi_protocol.c +1 -0
index 96d0eccca3aa..8f7c4fd100d6 100644
@@ -403,6 +403,7 @@ static void ssip_reset(struct hsi_client *cl)
 	del_timer(&ssi->rx_wd);
 	del_timer(&ssi->tx_wd);
 	del_timer(&ssi->keep_alive);
+	cancel_work_sync(&ssi->work);
 	ssi->main_state = 0;
 	ssi->send_state = 0;
 	ssi->recv_state = 0;
drivers/i2c/busses/i2c-cros-ec-tunnel.c +3 -0
index 790ea3fda693..69607ae7cdab 100644
@@ -247,6 +247,9 @@ static int ec_i2c_probe(struct platform_device *pdev)
 	u32 remote_bus;
 	int err;
 
+	if (!ec)
+		return dev_err_probe(dev, -EPROBE_DEFER, "couldn't find parent EC device\n");
+
 	if (!ec->cmd_xfer) {
 		dev_err(dev, "Missing sendrecv\n");
 		return -EINVAL;
drivers/i3c/master.c +3 -0
index 0d8210f40ff6..6d56d23d6429 100644
@@ -2282,6 +2282,9 @@ static void i3c_master_unregister_i3c_devs(struct i3c_master_controller *master)
  */
 void i3c_master_queue_ibi(struct i3c_dev_desc *dev, struct i3c_ibi_slot *slot)
 {
+	if (!dev->ibi || !slot)
+		return;
+
 	atomic_inc(&dev->ibi->pending_ibis);
 	queue_work(dev->common.master->wq, &slot->work);
 }
drivers/iio/adc/ad7768-1.c +2 -3
index 4afa50e5c058..2445ebc551dd 100644
@@ -142,7 +142,7 @@ static const struct iio_chan_spec ad7768_channels[] = {
 		.channel = 0,
 		.scan_index = 0,
 		.scan_type = {
-			.sign = 'u',
+			.sign = 's',
 			.realbits = 24,
 			.storagebits = 32,
 			.shift = 8,
@@ -369,12 +369,11 @@ static int ad7768_read_raw(struct iio_dev *indio_dev,
 			return ret;
 
 		ret = ad7768_scan_direct(indio_dev);
-		if (ret >= 0)
-			*val = ret;
 
 		iio_device_release_direct_mode(indio_dev);
 		if (ret < 0)
 			return ret;
+		*val = sign_extend32(ret, chan->scan_type.realbits - 1);
 
 		return IIO_VAL_INT;
 
drivers/infiniband/core/umem_odp.c +4 -2
index af4af4789ef2..dd69b20ed286 100644
@@ -78,12 +78,14 @@ static inline int ib_init_umem_odp(struct ib_umem_odp *umem_odp,
 
 		npfns = (end - start) >> PAGE_SHIFT;
 		umem_odp->pfn_list = kvcalloc(
-			npfns, sizeof(*umem_odp->pfn_list), GFP_KERNEL);
+			npfns, sizeof(*umem_odp->pfn_list),
+			GFP_KERNEL | __GFP_NOWARN);
 		if (!umem_odp->pfn_list)
 			return -ENOMEM;
 
 		umem_odp->dma_list = kvcalloc(
-			ndmas, sizeof(*umem_odp->dma_list), GFP_KERNEL);
+			ndmas, sizeof(*umem_odp->dma_list),
+			GFP_KERNEL | __GFP_NOWARN);
 		if (!umem_odp->dma_list) {
 			ret = -ENOMEM;
 			goto out_pfn_list;
drivers/infiniband/hw/hns/hns_roce_main.c +1 -1
index f520e43e4e14..3c79668c6b3b 100644
@@ -552,7 +552,7 @@ static int hns_roce_register_device(struct hns_roce_dev *hr_dev)
 		if (ret)
 			return ret;
 	}
-	dma_set_max_seg_size(dev, UINT_MAX);
+	dma_set_max_seg_size(dev, SZ_2G);
 	ret = ib_register_device(ib_dev, "hns_%d", dev);
 	if (ret) {
 		dev_err(dev, "ib_register_device failed!\n");
drivers/infiniband/hw/qib/qib_fs.c +1 -0
index e336d778e076..5ec67e3c2d03 100644
@@ -56,6 +56,7 @@ static int qibfs_mknod(struct inode *dir, struct dentry *dentry,
 	struct inode *inode = new_inode(dir->i_sb);
 
 	if (!inode) {
+		dput(dentry);
 		error = -EPERM;
 		goto bail;
 	}
drivers/infiniband/hw/usnic/usnic_ib_main.c +7 -7
index aa2e65fc5cd6..ea3e28e3e0b2 100644
@@ -378,7 +378,7 @@ static void *usnic_ib_device_add(struct pci_dev *dev)
 	if (!us_ibdev) {
 		usnic_err("Device %s context alloc failed\n",
 				netdev_name(pci_get_drvdata(dev)));
-		return ERR_PTR(-EFAULT);
+		return NULL;
 	}
 
 	us_ibdev->ufdev = usnic_fwd_dev_alloc(dev);
@@ -519,8 +519,8 @@ static struct usnic_ib_dev *usnic_ib_discover_pf(struct usnic_vnic *vnic)
 	}
 
 	us_ibdev = usnic_ib_device_add(parent_pci);
-	if (IS_ERR_OR_NULL(us_ibdev)) {
-		us_ibdev = us_ibdev ? us_ibdev : ERR_PTR(-EFAULT);
+	if (!us_ibdev) {
+		us_ibdev = ERR_PTR(-EFAULT);
 		goto out;
 	}
 
@@ -583,10 +583,10 @@ static int usnic_ib_pci_probe(struct pci_dev *pdev,
 	}
 
 	pf = usnic_ib_discover_pf(vf->vnic);
-	if (IS_ERR_OR_NULL(pf)) {
-		usnic_err("Failed to discover pf of vnic %s with err%ld\n",
-				pci_name(pdev), PTR_ERR(pf));
-		err = pf ? PTR_ERR(pf) : -EFAULT;
+	if (IS_ERR(pf)) {
+		err = PTR_ERR(pf);
+		usnic_err("Failed to discover pf of vnic %s with err%d\n",
+				pci_name(pdev), err);
 		goto out_clean_vnic;
 	}
 
drivers/iommu/amd/iommu.c +1 -1
index 0a061a196b53..a9a3f9c649c7 100644
@@ -3979,7 +3979,7 @@ static int amd_ir_set_vcpu_affinity(struct irq_data *data, void *vcpu_info)
 	 * we should not modify the IRTE
 	 */
 	if (!dev_data || !dev_data->use_vapic)
-		return 0;
+		return -EINVAL;
 
 	ir_data->cfg = irqd_cfg(data);
 	pi_data->ir_data = ir_data;
drivers/mcb/mcb-parse.c +1 -1
index 1ae37e693de0..d080e21df666 100644
@@ -101,7 +101,7 @@ static int chameleon_parse_gdd(struct mcb_bus *bus,
 
 	ret = mcb_device_register(bus, mdev);
 	if (ret < 0)
-		goto err;
+		return ret;
 
 	return 0;
 
drivers/md/dm-cache-target.c +15 -9
index 63eac25ec881..8a03357f8c93 100644
@@ -1960,16 +1960,13 @@ static void check_migrations(struct work_struct *ws)
  * This function gets called on the error paths of the constructor, so we
  * have to cope with a partially initialised struct.
  */
-static void destroy(struct cache *cache)
+static void __destroy(struct cache *cache)
 {
-	unsigned i;
-
 	mempool_exit(&cache->migration_pool);
 
 	if (cache->prison)
 		dm_bio_prison_destroy_v2(cache->prison);
 
-	cancel_delayed_work_sync(&cache->waker);
 	if (cache->wq)
 		destroy_workqueue(cache->wq);
 
@@ -1997,13 +1994,22 @@ static void destroy(struct cache *cache)
 	if (cache->policy)
 		dm_cache_policy_destroy(cache->policy);
 
+	bioset_exit(&cache->bs);
+
+	kfree(cache);
+}
+
+static void destroy(struct cache *cache)
+{
+	unsigned int i;
+
+	cancel_delayed_work_sync(&cache->waker);
+
 	for (i = 0; i < cache->nr_ctr_args ; i++)
 		kfree(cache->ctr_args[i]);
 	kfree(cache->ctr_args);
 
-	bioset_exit(&cache->bs);
-
-	kfree(cache);
+	__destroy(cache);
 }
 
 static void cache_dtr(struct dm_target *ti)
@@ -2616,7 +2622,7 @@ static int cache_create(struct cache_args *ca, struct cache **result)
 	*result = cache;
 	return 0;
 bad:
-	destroy(cache);
+	__destroy(cache);
 	return r;
 }
 
@@ -2667,7 +2673,7 @@ static int cache_ctr(struct dm_target *ti, unsigned argc, char **argv)
 
 	r = copy_ctr_args(cache, argc - 3, (const char **)argv + 3);
 	if (r) {
-		destroy(cache);
+		__destroy(cache);
 		goto out;
 	}
 
drivers/md/dm-integrity.c +3 -0
index 067be1d9f51c..934887f8a855 100644
@@ -4303,16 +4303,19 @@ static int dm_integrity_ctr(struct dm_target *ti, unsigned argc, char **argv)
 
 		ic->recalc_bitmap = dm_integrity_alloc_page_list(n_bitmap_pages);
 		if (!ic->recalc_bitmap) {
+			ti->error = "Could not allocate memory for bitmap";
 			r = -ENOMEM;
 			goto bad;
 		}
 		ic->may_write_bitmap = dm_integrity_alloc_page_list(n_bitmap_pages);
 		if (!ic->may_write_bitmap) {
+			ti->error = "Could not allocate memory for bitmap";
 			r = -ENOMEM;
 			goto bad;
 		}
 		ic->bbs = kvmalloc_array(ic->n_bitmap_blocks, sizeof(struct bitmap_block_status), GFP_KERNEL);
 		if (!ic->bbs) {
+			ti->error = "Could not allocate memory for bitmap";
 			r = -ENOMEM;
 			goto bad;
 		}
drivers/md/raid1.c +16 -10
index 3619db7e382a..dada9b2258a6 100644
@@ -2034,14 +2034,9 @@ static int fix_sync_read_error(struct r1bio *r1_bio)
 				if (!rdev_set_badblocks(rdev, sect, s, 0))
 					abort = 1;
 			}
-			if (abort) {
-				conf->recovery_disabled =
-					mddev->recovery_disabled;
-				set_bit(MD_RECOVERY_INTR, &mddev->recovery);
-				md_done_sync(mddev, r1_bio->sectors, 0);
-				put_buf(r1_bio);
+			if (abort)
 				return 0;
-			}
+
 			/* Try next page */
 			sectors -= s;
 			sect += s;
@@ -2181,10 +2176,21 @@ static void sync_request_write(struct mddev *mddev, struct r1bio *r1_bio)
 	int disks = conf->raid_disks * 2;
 	struct bio *wbio;
 
-	if (!test_bit(R1BIO_Uptodate, &r1_bio->state))
-		/* ouch - failed to read all of that. */
-		if (!fix_sync_read_error(r1_bio))
+	if (!test_bit(R1BIO_Uptodate, &r1_bio->state)) {
+		/*
+		 * ouch - failed to read all of that.
+		 * No need to fix read error for check/repair
+		 * because all member disks are read.
+		 */
+		if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery) ||
+		    !fix_sync_read_error(r1_bio)) {
+			conf->recovery_disabled = mddev->recovery_disabled;
+			set_bit(MD_RECOVERY_INTR, &mddev->recovery);
+			md_done_sync(mddev, r1_bio->sectors, 0);
+			put_buf(r1_bio);
 			return;
+		}
+	}
 
 	if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery))
 		process_checks(r1_bio);
drivers/media/common/siano/smsdvb-main.c +2 -0
index 7cc654bc52d3..660e348708e6 100644
@@ -1210,6 +1210,8 @@ static int __init smsdvb_module_init(void)
 	smsdvb_debugfs_register();
 
 	rc = smscore_register_hotplug(smsdvb_hotplug);
+	if (rc)
+		smsdvb_debugfs_unregister();
 
 	pr_debug("\n");
 
drivers/media/i2c/adv748x/adv748x.h +1 -1
index 1061f425ece5..20e2c738f6e7 100644
@@ -322,7 +322,7 @@ struct adv748x_state {
 
 /* Free run pattern select */
 #define ADV748X_SDP_FRP			0x14
-#define ADV748X_SDP_FRP_MASK		GENMASK(3, 1)
+#define ADV748X_SDP_FRP_MASK		GENMASK(2, 0)
 
 /* Saturation */
 #define ADV748X_SDP_SD_SAT_U		0xe3	/* user_map_rw_reg_e3 */
drivers/media/i2c/ov7251.c +3 -1
index 0c10203f822b..aab6ea94e5ae 100644
@@ -748,6 +748,8 @@ static int ov7251_set_power_on(struct ov7251 *ov7251)
 		return ret;
 	}
 
+	usleep_range(1000, 1100);
+
 	gpiod_set_value_cansleep(ov7251->enable_gpio, 1);
 
 	/* wait at least 65536 external clock cycles */
@@ -1330,7 +1332,7 @@ static int ov7251_probe(struct i2c_client *client)
 		return PTR_ERR(ov7251->analog_regulator);
 	}
 
-	ov7251->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_HIGH);
+	ov7251->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW);
 	if (IS_ERR(ov7251->enable_gpio)) {
 		dev_err(dev, "cannot get enable gpio\n");
 		return PTR_ERR(ov7251->enable_gpio);
drivers/media/platform/qcom/venus/Makefile +2 -1
index dfc636865709..09ebf4671692 100644
@@ -3,7 +3,8 @@
 
 venus-core-objs += core.o helpers.o firmware.o \
 		   hfi_venus.o hfi_msgs.o hfi_cmds.o hfi.o \
-		   hfi_parser.o pm_helpers.o dbgfs.o
+		   hfi_parser.o pm_helpers.o dbgfs.o \
+		   hfi_platform.o hfi_platform_v4.o \
 
 venus-dec-objs += vdec.o vdec_ctrls.o
 venus-enc-objs += venc.o venc_ctrls.o
drivers/media/platform/qcom/venus/core.c +0 -17
index 1859dd3f7f54..987b1d010c04 100644
@@ -529,17 +529,6 @@ static const struct freq_tbl sdm845_freq_table[] = {
 	{  244800, 100000000 },	/* 1920x1080@30 */
 };
 
-static const struct codec_freq_data sdm845_codec_freq_data[] =  {
-	{ V4L2_PIX_FMT_H264, VIDC_SESSION_TYPE_ENC, 675, 10 },
-	{ V4L2_PIX_FMT_HEVC, VIDC_SESSION_TYPE_ENC, 675, 10 },
-	{ V4L2_PIX_FMT_VP8, VIDC_SESSION_TYPE_ENC, 675, 10 },
-	{ V4L2_PIX_FMT_MPEG2, VIDC_SESSION_TYPE_DEC, 200, 10 },
-	{ V4L2_PIX_FMT_H264, VIDC_SESSION_TYPE_DEC, 200, 10 },
-	{ V4L2_PIX_FMT_HEVC, VIDC_SESSION_TYPE_DEC, 200, 10 },
-	{ V4L2_PIX_FMT_VP8, VIDC_SESSION_TYPE_DEC, 200, 10 },
-	{ V4L2_PIX_FMT_VP9, VIDC_SESSION_TYPE_DEC, 200, 10 },
-};
-
 static const struct bw_tbl sdm845_bw_table_enc[] = {
 	{ 1944000, 1612000, 0, 2416000, 0 },	/* 3840x2160@60 */
 	{  972000,  951000, 0, 1434000, 0 },	/* 3840x2160@30 */
@@ -561,8 +550,6 @@ static const struct venus_resources sdm845_res = {
 	.bw_tbl_enc_size = ARRAY_SIZE(sdm845_bw_table_enc),
 	.bw_tbl_dec = sdm845_bw_table_dec,
 	.bw_tbl_dec_size = ARRAY_SIZE(sdm845_bw_table_dec),
-	.codec_freq_data = sdm845_codec_freq_data,
-	.codec_freq_data_size = ARRAY_SIZE(sdm845_codec_freq_data),
 	.clks = {"core", "iface", "bus" },
 	.clks_num = 3,
 	.vcodec0_clks = { "core", "bus" },
@@ -584,8 +571,6 @@ static const struct venus_resources sdm845_res_v2 = {
 	.bw_tbl_enc_size = ARRAY_SIZE(sdm845_bw_table_enc),
 	.bw_tbl_dec = sdm845_bw_table_dec,
 	.bw_tbl_dec_size = ARRAY_SIZE(sdm845_bw_table_dec),
-	.codec_freq_data = sdm845_codec_freq_data,
-	.codec_freq_data_size = ARRAY_SIZE(sdm845_codec_freq_data),
 	.clks = {"core", "iface", "bus" },
 	.clks_num = 3,
 	.vcodec0_clks = { "vcodec0_core", "vcodec0_bus" },
@@ -635,8 +620,6 @@ static const struct venus_resources sc7180_res = {
 	.bw_tbl_enc_size = ARRAY_SIZE(sc7180_bw_table_enc),
 	.bw_tbl_dec = sc7180_bw_table_dec,
 	.bw_tbl_dec_size = ARRAY_SIZE(sc7180_bw_table_dec),
-	.codec_freq_data = sdm845_codec_freq_data,
-	.codec_freq_data_size = ARRAY_SIZE(sdm845_codec_freq_data),
 	.clks = {"core", "iface", "bus" },
 	.clks_num = 3,
 	.vcodec0_clks = { "vcodec0_core", "vcodec0_bus" },
drivers/media/platform/qcom/venus/core.h +5 -36

83 lines not on this page · raw message

drivers/media/platform/qcom/venus/helpers.c +27 -33

96 lines not on this page · raw message

drivers/media/platform/qcom/venus/helpers.h +1 -1
index a4a0562bc83f..5407979bf234 100644
@@ -33,7 +33,6 @@ int venus_helper_set_output_resolution(struct venus_inst *inst,
 				       unsigned int width, unsigned int height,
 				       u32 buftype);
 int venus_helper_set_work_mode(struct venus_inst *inst, u32 mode);
-int venus_helper_init_codec_freq_data(struct venus_inst *inst);
 int venus_helper_set_num_bufs(struct venus_inst *inst, unsigned int input_bufs,
 			      unsigned int output_bufs,
 			      unsigned int output2_bufs);
@@ -48,6 +47,7 @@ unsigned int venus_helper_get_opb_size(struct venus_inst *inst);
 void venus_helper_acquire_buf_ref(struct vb2_v4l2_buffer *vbuf);
 void venus_helper_release_buf_ref(struct venus_inst *inst, unsigned int idx);
 void venus_helper_init_instance(struct venus_inst *inst);
+int venus_helper_session_init(struct venus_inst *inst);
 int venus_helper_get_out_fmts(struct venus_inst *inst, u32 fmt, u32 *out_fmt,
 			      u32 *out2_fmt, bool ubwc);
 int venus_helper_alloc_dpb_bufs(struct venus_inst *inst);
drivers/media/platform/qcom/venus/hfi.c +14 -4
index 966b4d9b57a9..5fd53227c2c0 100644
@@ -178,6 +178,8 @@ static int wait_session_msg(struct venus_inst *inst)
 int hfi_session_create(struct venus_inst *inst, const struct hfi_inst_ops *ops)
 {
 	struct venus_core *core = inst->core;
+	bool max;
+	int ret;
 
 	if (!ops)
 		return -EINVAL;
@@ -187,11 +189,19 @@ int hfi_session_create(struct venus_inst *inst, const struct hfi_inst_ops *ops)
 	inst->ops = ops;
 
 	mutex_lock(&core->lock);
-	list_add_tail(&inst->list, &core->instances);
-	atomic_inc(&core->insts_count);
+
+	max = atomic_add_unless(&core->insts_count, 1,
+				core->max_sessions_supported);
+	if (!max) {
+		ret = -EAGAIN;
+	} else {
+		list_add_tail(&inst->list, &core->instances);
+		ret = 0;
+	}
+
 	mutex_unlock(&core->lock);
 
-	return 0;
+	return ret;
 }
 EXPORT_SYMBOL_GPL(hfi_session_create);
 
@@ -202,7 +212,7 @@ int hfi_session_init(struct venus_inst *inst, u32 pixfmt)
 	int ret;
 
 	if (inst->state != INST_UNINIT)
-		return -EINVAL;
+		return -EALREADY;
 
 	inst->hfi_codec = to_codec_type(pixfmt);
 	reinit_completion(&inst->done);
drivers/media/platform/qcom/venus/hfi_parser.c +124 -35

333 lines not on this page · raw message

drivers/media/platform/qcom/venus/hfi_parser.h +1 -1
index 264e6dd2415f..7f59d82110f9 100644
@@ -16,7 +16,7 @@ static inline u32 get_cap(struct venus_inst *inst, u32 type, u32 which)
 {
 	struct venus_core *core = inst->core;
 	struct hfi_capability *cap = NULL;
-	struct venus_caps *caps;
+	struct hfi_plat_caps *caps;
 	unsigned int i;
 
 	caps = venus_caps_by_codec(core, inst->hfi_codec, inst->session_type);
drivers/media/platform/qcom/venus/hfi_platform.c new file +49 -0

49 lines not on this page · raw message

drivers/media/platform/qcom/venus/hfi_platform.h new file +61 -0

61 lines not on this page · raw message

drivers/media/platform/qcom/venus/hfi_platform_v4.c new file +60 -0

60 lines not on this page · raw message

drivers/media/platform/qcom/venus/hfi_venus.c +16 -2
index 8b1375c97c81..91584d197af9 100644
@@ -188,6 +188,9 @@ static int venus_write_queue(struct venus_hfi_device *hdev,
 	/* ensure rd/wr indices's are read from memory */
 	rmb();
 
+	if (qsize > IFACEQ_QUEUE_SIZE / 4)
+		return -EINVAL;
+
 	if (wr_idx >= rd_idx)
 		empty_space = qsize - (wr_idx - rd_idx);
 	else
@@ -256,6 +259,9 @@ static int venus_read_queue(struct venus_hfi_device *hdev,
 	wr_idx = qhdr->write_idx;
 	qsize = qhdr->q_size;
 
+	if (qsize > IFACEQ_QUEUE_SIZE / 4)
+		return -EINVAL;
+
 	/* make sure data is valid before using it */
 	rmb();
 
@@ -978,18 +984,26 @@ static void venus_sfr_print(struct venus_hfi_device *hdev)
 {
 	struct device *dev = hdev->core->dev;
 	struct hfi_sfr *sfr = hdev->sfr.kva;
+	u32 size;
 	void *p;
 
 	if (!sfr)
 		return;
 
-	p = memchr(sfr->data, '\0', sfr->buf_size);
+	size = sfr->buf_size;
+	if (!size)
+		return;
+
+	if (size > ALIGNED_SFR_SIZE)
+		size = ALIGNED_SFR_SIZE;
+
+	p = memchr(sfr->data, '\0', size);
 	/*
 	 * SFR isn't guaranteed to be NULL terminated since SYS_ERROR indicates
 	 * that Venus is in the process of crashing.
 	 */
 	if (!p)
-		sfr->data[sfr->buf_size - 1] = '\0';
+		sfr->data[size - 1] = '\0';
 
 	dev_err_ratelimited(dev, "SFR message from FW: %s\n", sfr->data);
 }
drivers/media/platform/qcom/venus/pm_helpers.c +8 -4
index fd55352d743e..7c3541c35ab6 100644
@@ -18,6 +18,7 @@
 #include "hfi_parser.h"
 #include "hfi_venus_io.h"
 #include "pm_helpers.h"
+#include "hfi_platform.h"
 
 static bool legacy_binding;
 
@@ -506,7 +507,7 @@ min_loaded_core(struct venus_inst *inst, u32 *min_coreid, u32 *min_load)
 		if (inst_pos->state != INST_START)
 			continue;
 
-		vpp_freq = inst_pos->clk_data.codec_freq_data->vpp_freq;
+		vpp_freq = inst_pos->clk_data.vpp_freq;
 		coreid = inst_pos->clk_data.core_id;
 
 		mbs_per_sec = load_per_instance(inst_pos);
@@ -555,7 +556,7 @@ static int decide_core(struct venus_inst *inst)
 		return 0;
 
 	inst_load = load_per_instance(inst);
-	inst_load *= inst->clk_data.codec_freq_data->vpp_freq;
+	inst_load *= inst->clk_data.vpp_freq;
 	max_freq = core->res->freq_tbl[0].freq;
 
 	min_loaded_core(inst, &min_coreid, &min_load);
@@ -937,10 +938,13 @@ static unsigned long calculate_inst_freq(struct venus_inst *inst,
 
 	mbs_per_sec = load_per_instance(inst) / fps;
 
-	vpp_freq = mbs_per_sec * inst->clk_data.codec_freq_data->vpp_freq;
+	if (inst->state != INST_START)
+		return 0;
+
+	vpp_freq = mbs_per_sec * inst->clk_data.vpp_freq;
 	/* 21 / 20 is overhead factor */
 	vpp_freq += vpp_freq / 20;
-	vsp_freq = mbs_per_sec * inst->clk_data.codec_freq_data->vsp_freq;
+	vsp_freq = mbs_per_sec * inst->clk_data.vsp_freq;
 
 	/* 10 / 7 is overhead factor */
 	if (inst->session_type == VIDC_SESSION_TYPE_ENC)
drivers/media/platform/qcom/venus/vdec.c +2 -6
index d91030a134c0..68390143d37d 100644
@@ -767,8 +767,8 @@ static int vdec_session_init(struct venus_inst *inst)
 {
 	int ret;
 
-	ret = hfi_session_init(inst, inst->fmt_out->pixfmt);
-	if (ret == -EINVAL)
+	ret = venus_helper_session_init(inst);
+	if (ret == -EALREADY)
 		return 0;
 	else if (ret)
 		return ret;
@@ -778,10 +778,6 @@ static int vdec_session_init(struct venus_inst *inst)
 	if (ret)
 		goto deinit;
 
-	ret = venus_helper_init_codec_freq_data(inst);
-	if (ret)
-		goto deinit;
-
 	return 0;
 deinit:
 	hfi_session_deinit(inst);
drivers/media/platform/qcom/venus/venc.c +65 -26

97 lines not on this page · raw message

drivers/media/rc/streamzap.c +55 -80

135 lines not on this page · raw message

drivers/media/test-drivers/vim2m.c +3 -3
index a24624353f9e..2f95d7050097 100644

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

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

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

drivers/mfd/ene-kb3930.c +1 -1
index 1c32ff586816..148b2c0523ee 100644

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

drivers/misc/mei/hw-me-regs.h +1 -0
index dfe272fe6f7e..8aaab87b5054 100644

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

drivers/misc/mei/pci-me.c +1 -0
index 31012ea4c01a..e6d55511de47 100644

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

drivers/misc/pci_endpoint_test.c +5 -1
index cdb9a55a2c70..7ea1ac3fc65f 100644

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

drivers/mtd/inftlcore.c +5 -4
index a0d6c00e7b85..76e0c28cb7f4 100644

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

drivers/mtd/mtdpstore.c +3 -6
index a3ae8778f6a9..5594a22c0137 100644

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

drivers/mtd/nand/raw/brcmnand/brcmnand.c +1 -1
index 11d706ff30dd..cb3509051047 100644

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

drivers/mtd/nand/raw/r852.c +3 -0
index c742354c1b0b..df7bc0d1148e 100644

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

drivers/net/dsa/b53/b53_common.c +10 -0
index 2fc33019e814..d3428e62bef2 100644

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

drivers/net/dsa/mv88e6xxx/chip.c +21 -4
index 4cc60135589d..ebc858087394 100644

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

drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c +1 -0
index 7080cb6c83e4..0f36319eb311 100644

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

drivers/net/ethernet/intel/igc/igc_main.c +1 -0
index 65cf7035b02d..7593e8b7469c 100644

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

drivers/net/ethernet/intel/igc/igc_ptp.c +7 -0
index 25b238c6a675..d99f597a83be 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/rep/neigh.c +6 -9
index 58e27038c947..bbc182e9e535 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c +1 -5
index 2fdea05eec1d..552c07e52682 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +30 -3
index c6a81a51530d..6b4e028de9bf 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_tc.h +3 -0
index 4a2ce241522e..e7e5f0c080fb 100644

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

drivers/net/phy/phy_led_triggers.c +13 -10
index 59a94e07e7c5..ae28aa2f9a39 100644

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

drivers/net/ppp/ppp_synctty.c +5 -0
index 717431636275..11725cab4912 100644

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

drivers/net/wireless/ath/ath10k/sdio.c +3 -2
index 9d1b0890f310..418e40560f59 100644

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

drivers/net/wireless/atmel/at76c50x-usb.c +1 -1
index 404257800033..706de33d0ed4 100644

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

drivers/net/wireless/mediatek/mt76/mt76x2/usb.c +1 -0
index 4e003c7b62cf..82a193aac09d 100644

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

drivers/net/wireless/ti/wl1251/tx.c +3 -1
index 98cd39619d57..5771f61392ef 100644

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

drivers/ntb/hw/idt/ntb_hw_idt.c +7 -11
index 99711dd0b6e8..d39fc55f8b0c 100644

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

drivers/ntb/ntb_transport.c +1 -1
index 859570017ef3..17ae14002439 100644

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

drivers/nvme/host/core.c +10 -0
index 5f16fc9111a9..b19fba64beb0 100644

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

drivers/nvme/target/fc.c +0 -14
index 846fb41da643..321859753ae8 100644

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

drivers/nvme/target/fcloop.c +1 -1
index f2c5136bf2b8..f1aaabc5bec7 100644

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

drivers/of/irq.c +11 -2
index ddb3ed0483d9..5c4254ab5d83 100644

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

drivers/pci/controller/pcie-brcmstb.c +9 -4
index be6af5585dd6..bbc9786bc36c 100644

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

drivers/pci/pci.c +60 -43

103 lines not on this page · raw message

drivers/pci/probe.c +50 -8

58 lines not on this page · raw message

drivers/pci/remove.c +7 -0
index 95dec03d9f2a..fb69debd5e8d 100644

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

drivers/perf/arm_pmu.c +3 -5
index 7fd11ef5cb8a..8568b5a78c45 100644

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

drivers/phy/tegra/xusb.c +1 -1
index 856397def89a..8bd8d1f8eba2 100644

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

drivers/pinctrl/qcom/pinctrl-msm.c +6 -6
index 37526aa1fb2c..ad52846b6beb 100644

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

drivers/platform/x86/asus-laptop.c +6 -3
index 0edafe687fa9..b1084c4bc9da 100644

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

drivers/platform/x86/intel_speed_select_if/isst_if_common.c +1 -1
index 407afafc7e83..e0f7368e7e3e 100644

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

drivers/pwm/pwm-fsl-ftm.c +6 -0
index 59272a920479..8221f286f582 100644

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

drivers/pwm/pwm-mediatek.c +18 -2
index ab001ce55178..f2cb5e0347e3 100644

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

drivers/pwm/pwm-rcar.c +13 -11
index 7ab9eb6616d9..83da73895407 100644

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

drivers/s390/block/dasd.c +1 -4
index 0b09ed6ac133..a3eddca14cbf 100644

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

drivers/scsi/lpfc/lpfc_hbadisc.c +2 -0
index 68ff233f936e..3ff76ca147a5 100644

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

drivers/scsi/pm8001/pm8001_sas.c +1 -0
index a16ed0695f1a..3244f30dffec 100644

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

drivers/scsi/scsi_transport_iscsi.c +5 -2
index c636a6d3bdcc..548adbe54444 100644

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

drivers/scsi/st.c +1 -1
index 3b819c6b15a5..465fe83b49e9 100644

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

drivers/scsi/ufs/ufs_bsg.c +1 -0
index 05c7347eda18..a7e1b011202b 100644

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

drivers/soc/samsung/Kconfig +5 -7
index fc7f48a92288..5745d7e5908e 100644

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

drivers/soc/samsung/Makefile +1 -2
index 59e8e9453f27..0c523a8de4eb 100644

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

drivers/soc/samsung/exynos-asv.c +11 -34

45 lines not on this page · raw message

drivers/soc/samsung/exynos-asv.h +2 -0
index 3fd1f2acd999..dcbe154db31e 100644

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

drivers/soc/samsung/exynos-chipid.c +106 -31

137 lines not on this page · raw message

drivers/soc/ti/omap_prm.c +2 -0
index 4a782bfd753c..2ce8a8f4f005 100644

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

drivers/spi/spi-cadence-quadspi.c +6 -0
index 23d50a19ae27..8b31aaa1d0f1 100644

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

drivers/staging/comedi/drivers/jr3_pci.c +11 -4
index 7a02c4fa3cda..cc1232609f32 100644

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

drivers/staging/rtl8723bs/core/rtw_mlme.c +2 -0
index 9531ba54e95b..364e6cd76054 100644

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

drivers/thermal/rockchip_thermal.c +1 -0
index aa9e0e31ef98..f62ae8b0239c 100644

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

drivers/tty/serial/sifive.c +6 -0
index c234114b5052..34b38795096f 100644

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

drivers/usb/cdns3/gadget.c +2 -0
index eeea892248b5..45b5a909e190 100644

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

drivers/usb/core/quirks.c +9 -0
index e21541f80e40..d9936c530874 100644

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

drivers/usb/dwc3/gadget.c +6 -0
index 97e6c6fb49df..f3103baa7459 100644

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

drivers/usb/gadget/udc/aspeed-vhub/dev.c +3 -0
index d268306a7bfe..92755a2fe4ff 100644

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

drivers/usb/host/max3421-hcd.c +7 -0
index 44a35629d68c..db1b73486e90 100644

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

drivers/usb/host/ohci-pci.c +23 -0
index 41efe927d8f3..70153ce60128 100644

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

drivers/usb/serial/ftdi_sio.c +2 -0
index 39d862f25a70..749c8630cd0c 100644

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

drivers/usb/serial/ftdi_sio_ids.h +5 -0
index f4d729562355..9c95ca876bae 100644

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

drivers/usb/serial/option.c +3 -0
index 2d11cd74d360..99fa4fb56920 100644

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

drivers/usb/serial/usb-serial-simple.c +7 -0
index 24b8772a345e..bac5ab6377ae 100644

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

drivers/usb/storage/unusual_uas.h +7 -0
index 1f8c9b16a0fb..d460d71b4257 100644

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

drivers/vdpa/mlx5/core/mr.c +5 -2
index 4615f827cd0c..3259901c4c38 100644

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

drivers/vfio/pci/vfio_pci.c +13 -0
index 57ae8b46b836..7835712f730d 100644

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

drivers/video/backlight/led_bl.c +4 -1
index f54d256e2d54..1020e4405a4d 100644

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

drivers/video/fbdev/omap2/omapfb/dss/dispc.c +5 -1
index b2d6e6df2161..d852bef1d507 100644

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

drivers/xen/xenfs/xensyms.c +2 -2
index c6c73a33c44d..18bc11756ad3 100644

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

fs/Kconfig +1 -0
index 11b60d160f88..b2d01d27d4c3 100644

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

fs/btrfs/super.c +1 -2
index 139599c42b73..1c4a7eb488f3 100644

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

fs/cifs/cifs_debug.c +6 -0
index 53588d7517b4..11d0eaa603ca 100644

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

fs/cifs/cifsglob.h +9 -0
index 92a7628560cc..fab543bb0eaf 100644

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

fs/cifs/cifsproto.h +6 -1
index ca34cc1e1931..8c0ed2b60285 100644

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

fs/cifs/connect.c +1 -1
index a3c0e6a4e484..2c0522d97e03 100644

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

fs/cifs/smb2misc.c +6 -5
index 660e00eb4206..c0b80ba8875a 100644

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/smb2pdu.c +9 -1
index 03651cc6b7a5..4197096e7fdb 100644

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

fs/cifs/transport.c +24 -19

43 lines not on this page · raw message

fs/ext4/block_validity.c +2 -3
index 295e89d93295..5d5befac5622 100644

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

fs/ext4/inode.c +54 -22

76 lines not on this page · raw message

fs/ext4/namei.c +1 -1
index 703c4282b19e..b220d5ca7fd0 100644

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

fs/ext4/super.c +18 -1
index 20e89ffe9a06..3957ff246bff 100644

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

fs/ext4/xattr.c +10 -1
index d1d930d09cb8..4eb75216218a 100644

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

fs/f2fs/node.c +8 -1
index 348ad1d6199f..57baaba17174 100644

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

fs/fuse/virtio_fs.c +3 -0
index c50999ad9f7a..d405cdf36247 100644

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

fs/hfs/bnode.c +6 -0
index 397e02a56697..2251286cd83f 100644

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

fs/hfsplus/bnode.c +6 -0
index 177fae4e6581..cf6e5de7b9da 100644

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

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

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

fs/jbd2/journal.c +0 -1
index 972f30f527bb..23314218fb0d 100644

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

fs/jfs/jfs_dmap.c +9 -3
index ef220709c7f5..9dccebbee55a 100644

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

fs/jfs/jfs_imap.c +1 -1
index da3a1c27d349..84e2c67c9070 100644

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

fs/namespace.c +2 -1
index 7e67db7456b3..2f97112657ad 100644

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

fs/nfs/Kconfig +1 -1
index 14a72224b657..899e25e9b4eb 100644

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

fs/nfs/internal.h +0 -22
index 394a82d470d5..2fdc7c2a17fe 100644

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

fs/nfs/nfs4session.h +0 -4
index b996ee23f1ba..8ad99938aae1 100644

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

fs/nfsd/Kconfig +1 -0
index 6d2d498a5957..ba6cfc8caee3 100644

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

fs/nfsd/nfs4state.c +1 -1
index 311409be7374..bf78745b19ca 100644

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

fs/nfsd/nfsfh.h +0 -7
index 513e028b0bbe..40aee06ebd95 100644

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

fs/proc/array.c +30 -22

52 lines not on this page · raw message

include/linux/backing-dev.h +1 -0
index 44df4fcef65c..4e83ba0edd6d 100644

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

include/linux/blk-cgroup.h +1 -0
index b89099360a86..d0a5e62cf520 100644

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

include/linux/filter.h +4 -0
index 840b2a05c1b9..e3aca0dc7d9c 100644

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

include/linux/nfs.h +13 -0
index b06375e88e58..095a95c1fae8 100644

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

include/linux/pci.h +12 -0
index 30bc462fb196..d3d84eb466f0 100644

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

include/linux/soc/samsung/exynos-chipid.h +2 -4
index 8bca6763f99c..62f0e2531068 100644

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

include/net/net_namespace.h +1 -0
index 3cf6a5c17b84..1f985b64a666 100644

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

include/net/sctp/structs.h +2 -1
index 108eb62cdc2c..8d058b50f138 100644

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

include/uapi/linux/kfd_ioctl.h +2 -0
index 695b606da4b1..94af84e84554 100644

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

include/xen/interface/xen-mca.h +1 -1
index 7483a78d2425..20a3b320d1a5 100644

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

init/Kconfig +2 -1
index 9807c66b24bb..233166e54df3 100644

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

kernel/bpf/helpers.c +6 -5
index 31e3a5482156..238a51daefa4 100644

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

kernel/bpf/syscall.c +10 -7
index 008bb4e5c4dd..dc3d9a111cf1 100644

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

kernel/dma/contiguous.c +1 -2
index 16b95ff12e4d..3a4e094e4b1f 100644

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

kernel/locking/lockdep.c +3 -0
index b576dd00516b..47d939a0373d 100644

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

kernel/resource.c +8 -33

41 lines not on this page · raw message

kernel/sched/cpufreq_schedutil.c +15 -3
index d8b9e1d25200..c1307bbdc291 100644

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

kernel/trace/ftrace.c +1 -0
index feade7f3c2b0..7425989c3a12 100644

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

kernel/trace/trace.h +4 -0
index 7c90872f2435..f47938d8401a 100644

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

kernel/trace/trace_events.c +3 -1
index 4b5a8d7275be..92693e2140a9 100644

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

kernel/trace/trace_events_filter.c +2 -2
index c1db5b62d811..5f5a38d4780f 100644

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

kernel/trace/trace_events_hist.c +3 -4
index 059a106e62be..a0342b45a06d 100644

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

kernel/trace/trace_events_synth.c +80 -2

82 lines not on this page · raw message

kernel/trace/trace_synth.h +1 -0
index 4007fe95cf42..077c748a8b3a 100644

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

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

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

mm/memory.c +2 -2
index 29cce8aadb61..3ebf3f1da428 100644

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

mm/vmscan.c +1 -1
index 7b05304e5854..bfc384c84139 100644

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

net/8021q/vlan_dev.c +4 -27
index b7cf430006e5..c134f8210b21 100644

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

net/bluetooth/hci_event.c +3 -2
index 546795425119..7f26c1aab9a0 100644

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

net/core/dev.c +1 -0
index 2c11247509b4..c0dc524548ee 100644

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

net/core/filter.c +44 -36

80 lines not on this page · raw message

net/core/net_namespace.c +20 -1
index bcf3533cb8ff..feee95cf2991 100644

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

net/core/page_pool.c +7 -1
index 08fbf4049c10..a11809b3149b 100644

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

net/ipv4/inet_connection_sock.c +15 -4
index 6ebe43b4d28f..723aab818b52 100644

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

net/mac80211/iface.c +3 -0
index 55e3dfa7505d..644eabaf10e3 100644

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

net/mac80211/mesh_hwmp.c +10 -4
index 3db514c4c63a..4848e3c2f0af 100644

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

net/mptcp/protocol.c +45 -0

45 lines not on this page · raw message

net/mptcp/subflow.c +9 -6
index c3434069fb0a..9a8d0d877bd1 100644

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

net/netfilter/ipvs/ip_vs_ctl.c +5 -5
index fb9f1badeddb..4c9ef2ae4d68 100644

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

net/netfilter/nft_set_pipapo_avx2.c +2 -1
index 13c7e22c9384..0a23d297084d 100644

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

net/openvswitch/actions.c +3 -1
index 80fee9d118ee..a02ea493c269 100644

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

net/openvswitch/flow_netlink.c +2 -1
index cff18a5bbf38..3f8f43dbf44f 100644

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

net/sched/sch_hfsc.c +17 -6
index adcf87d417ae..aad090fd165b 100644

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

net/sctp/socket.c +14 -8
index f529574aa068..3d6c9e35781e 100644

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

net/sctp/transport.c +2 -0
index 60fcf31cdcfb..9c721d70df9c 100644

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

net/tipc/link.c +1 -0
index 5f849c730028..336d1bb2cf6a 100644

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

net/tipc/monitor.c +2 -1
index 1d90f39129ca..ba0a308d41d8 100644

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

net/tls/tls_main.c +6 -0
index ebf856cf821d..9d7b52370155 100644

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

sound/pci/hda/hda_intel.c +14 -1
index fad3e8853be0..407bbf9264ac 100644

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

sound/soc/codecs/wcd934x.c +1 -1
index 104751ac6cd1..8580f5e95ccf 100644

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

sound/soc/qcom/qdsp6/q6asm-dai.c +13 -6
index 84cf190aa01a..1bae6f70ea89 100644

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

sound/usb/midi.c +74 -6

80 lines not on this page · raw message

tools/objtool/check.c +3 -0
index bcc9948645a0..20ccdd60353b 100644

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

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

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

tools/testing/selftests/mincore/mincore_selftest.c +0 -3
index 2cf6f2f277ab..31820435825b 100644

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

tools/testing/selftests/ublk/test_stripe_04.sh new file +24 -0
new file mode 100755
index 000000000000..1f2b642381d1

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

tools/testing/selftests/vm/charge_reserved_hugetlb.sh +2 -2
index 28192ec98498..c44226b4e0bf 100644

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

tools/testing/selftests/vm/hugetlb_reparenting_test.sh +1 -1
index c665b16f1e37..a4123632942d 100644

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.