Skip to contentSkip to conversation

Linux 5.15.54

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Jul 12, 2022 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.15.54 kernel.

All users of the 5.15 kernel series must upgrade.

The updated 5.15.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.15.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

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

 Documentation/devicetree/bindings/dma/allwinner,sun50i-a64-dma.yaml |    2 
 Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml        |    3 
 MAINTAINERS                                                         |    3 
 Makefile                                                            |   17 
 arch/arm/boot/dts/at91-sam9x60ek.dts                                |    3 
 arch/arm/boot/dts/at91-sama5d2_icp.dts                              |    6 
 arch/arm/boot/dts/stm32mp151.dtsi                                   |    4 
 arch/arm/configs/mxs_defconfig                                      |    1 
 arch/arm/include/asm/arch_gicv3.h                                   |    7 
 arch/arm/mach-at91/pm.c                                             |   10 
 arch/arm/mach-meson/platsmp.c                                       |    2 
 arch/arm64/boot/dts/freescale/imx8mp-evk.dts                        |   54 -
 arch/arm64/boot/dts/freescale/imx8mp-phyboard-pollux-rdk.dts        |   48 -
 arch/arm64/boot/dts/qcom/msm8992-bullhead-rev-101.dts               |    2 
 arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts                   |    2 
 arch/arm64/boot/dts/qcom/msm8994.dtsi                               |    4 
 arch/arm64/boot/dts/qcom/sdm845.dtsi                                |    2 
 arch/arm64/include/asm/arch_gicv3.h                                 |    6 
 arch/arm64/net/bpf_jit_comp.c                                       |    5 
 arch/powerpc/boot/crt0.S                                            |   31 -
 arch/powerpc/crypto/md5-asm.S                                       |   10 
 arch/powerpc/crypto/sha1-powerpc-asm.S                              |    6 
 arch/powerpc/include/asm/ppc_asm.h                                  |   43 -
 arch/powerpc/kernel/entry_32.S                                      |   23 
 arch/powerpc/kernel/exceptions-64e.S                                |   14 
 arch/powerpc/kernel/exceptions-64s.S                                |    6 
 arch/powerpc/kernel/head_32.h                                       |    3 
 arch/powerpc/kernel/head_booke.h                                    |    3 
 arch/powerpc/kernel/interrupt_64.S                                  |   34 -
 arch/powerpc/kernel/optprobes_head.S                                |    4 
 arch/powerpc/kernel/tm.S                                            |   38 -
 arch/powerpc/kernel/trace/ftrace_64_mprofile.S                      |   15 
 arch/powerpc/kvm/book3s_hv_rmhandlers.S                             |    5 
 arch/powerpc/kvm/book3s_hv_uvmem.c                                  |    2 
 arch/powerpc/lib/test_emulate_step_exec_instr.S                     |    8 
 arch/powerpc/platforms/powernv/rng.c                                |   16 
 arch/riscv/configs/defconfig                                        |    8 
 arch/riscv/configs/rv32_defconfig                                   |    1 
 arch/riscv/mm/init.c                                                |    1 
 arch/s390/boot/compressed/decompressor.h                            |    1 
 arch/s390/boot/startup.c                                            |    8 
 arch/s390/kernel/entry.h                                            |    1 
 arch/s390/kernel/setup.c                                            |   31 -
 arch/s390/kernel/vmlinux.lds.S                                      |    1 
 arch/s390/kvm/kvm-s390.c                                            |   19 
 arch/s390/kvm/kvm-s390.h                                            |    4 
 arch/s390/kvm/priv.c                                                |   15 
 arch/x86/kernel/cpu/mce/core.c                                      |    8 
 arch/x86/kvm/mmu/page_track.c                                       |    4 
 arch/x86/kvm/mmu/tdp_mmu.c                                          |    9 
 arch/x86/kvm/x86.c                                                  |    4 
 block/bio.c                                                         |   11 
 block/blk-iolatency.c                                               |    2 
 block/blk-rq-qos.h                                                  |   23 
 drivers/base/core.c                                                 |    3 
 drivers/base/memory.c                                               |    2 
 drivers/base/power/runtime.c                                        |   20 
 drivers/block/Kconfig                                               |    1 
 drivers/block/drbd/drbd_main.c                                      |    8 
 drivers/block/virtio_blk.c                                          |  158 +++--
 drivers/bluetooth/btmtksdio.c                                       |    3 
 drivers/bus/mhi/core/init.c                                         |    9 
 drivers/bus/mhi/core/internal.h                                     |    2 
 drivers/clk/renesas/r9a07g044-cpg.c                                 |    4 
 drivers/cxl/core/bus.c                                              |    4 
 drivers/dma-buf/dma-buf.c                                           |   19 
 drivers/dma/at_xdmac.c                                              |    5 
 drivers/dma/idxd/device.c                                           |    5 
 drivers/dma/imx-sdma.c                                              |    2 
 drivers/dma/lgm/lgm-dma.c                                           |    3 
 drivers/dma/pl330.c                                                 |    2 
 drivers/dma/qcom/bam_dma.c                                          |   39 -
 drivers/dma/ti/dma-crossbar.c                                       |    5 
 drivers/gpu/drm/amd/amdgpu/amdgpu.h                                 |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                          |   25 
 drivers/gpu/drm/amd/amdgpu/cik.c                                    |    2 
 drivers/gpu/drm/amd/amdgpu/nv.c                                     |    2 
 drivers/gpu/drm/amd/amdgpu/si.c                                     |    2 
 drivers/gpu/drm/amd/amdgpu/soc15.c                                  |    2 
 drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c                               |    2 
 drivers/gpu/drm/amd/amdgpu/vi.c                                     |   17 
 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c               |    2 
 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.h               |    7 
 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c               |   65 ++
 drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c             |    2 
 drivers/gpu/drm/i915/gem/i915_gem_context.c                         |    7 
 drivers/gpu/drm/i915/gem/i915_gem_object.c                          |    6 
 drivers/gpu/drm/i915/gt/intel_context_types.h                       |    8 
 drivers/gpu/drm/i915/gt/intel_engine_cs.c                           |    4 
 drivers/gpu/drm/i915/gt/intel_engine_pm.c                           |   23 
 drivers/gpu/drm/i915/gt/intel_engine_pm.h                           |    2 
 drivers/gpu/drm/i915/gt/intel_engine_types.h                        |    7 
 drivers/gpu/drm/i915/gt/intel_execlists_submission.c                |    2 
 drivers/gpu/drm/i915/gt/intel_ring_submission.c                     |    5 
 drivers/gpu/drm/i915/gt/mock_engine.c                               |    2 
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c                   |   12 
 drivers/gpu/drm/mediatek/mtk_disp_drv.h                             |   16 
 drivers/gpu/drm/mediatek/mtk_disp_ovl.c                             |   22 
 drivers/gpu/drm/mediatek/mtk_disp_rdma.c                            |   20 
 drivers/gpu/drm/mediatek/mtk_drm_crtc.c                             |  133 +++-
 drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c                         |    4 
 drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h                         |   29 
 drivers/i2c/busses/i2c-cadence.c                                    |    1 
 drivers/i2c/busses/i2c-piix4.c                                      |   16 
 drivers/iio/accel/mma8452.c                                         |    4 
 drivers/input/misc/cpcap-pwrbutton.c                                |    6 
 drivers/input/touchscreen/goodix.c                                  |  150 ++--
 drivers/input/touchscreen/goodix.h                                  |   75 ++
 drivers/iommu/intel/dmar.c                                          |    2 
 drivers/irqchip/irq-gic-v3.c                                        |   42 +
 drivers/media/platform/davinci/vpif.c                               |   97 ++-
 drivers/media/platform/omap3isp/ispstat.c                           |    5 
 drivers/media/rc/ir_toy.c                                           |    2 
 drivers/memory/renesas-rpc-if.c                                     |   48 +
 drivers/misc/cardreader/rtsx_usb.c                                  |   27 
 drivers/mtd/spi-nor/core.c                                          |    3 
 drivers/net/can/grcan.c                                             |    1 
 drivers/net/can/m_can/m_can.c                                       |    8 
 drivers/net/can/spi/mcp251xfd/mcp251xfd-regmap.c                    |   22 
 drivers/net/can/usb/gs_usb.c                                        |   23 
 drivers/net/can/usb/kvaser_usb/kvaser_usb.h                         |   25 
 drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c                    |  286 +++++----
 drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c                   |    4 
 drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c                    |  119 ++-
 drivers/net/dsa/qca8k.c                                             |   23 
 drivers/net/ethernet/ibm/ibmvnic.c                                  |  147 ++++
 drivers/net/ethernet/ibm/ibmvnic.h                                  |    1 
 drivers/net/ethernet/intel/i40e/i40e.h                              |   16 
 drivers/net/ethernet/intel/i40e/i40e_main.c                         |   73 ++
 drivers/net/ethernet/intel/i40e/i40e_register.h                     |   13 
 drivers/net/ethernet/intel/i40e/i40e_type.h                         |    1 
 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c                  |    4 
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c                     |   88 +-
 drivers/net/ethernet/qlogic/qed/qed_l2.c                            |   23 
 drivers/net/ethernet/qlogic/qede/qede_filter.c                      |   47 -
 drivers/net/ethernet/realtek/r8169_main.c                           |   10 
 drivers/net/usb/usbnet.c                                            |   17 
 drivers/net/wireless/ath/ath11k/core.c                              |    5 
 drivers/net/wireless/ath/ath11k/hw.h                                |    1 
 drivers/net/wireless/ath/ath11k/pci.c                               |   12 
 drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c                |    3 
 drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h                |    2 
 drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c                 |   31 -
 drivers/net/wireless/mediatek/mt76/mt7921/mac.c                     |   28 
 drivers/net/wireless/mediatek/mt76/mt7921/main.c                    |   33 -
 drivers/net/wireless/mediatek/mt76/mt7921/mcu.c                     |   47 -
 drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h                  |   11 
 drivers/pci/hotplug/pciehp.h                                        |    2 
 drivers/pci/hotplug/pciehp_core.c                                   |    2 
 drivers/pci/hotplug/pciehp_hpc.c                                    |   26 
 drivers/pci/pcie/portdrv.h                                          |    3 
 drivers/pci/pcie/portdrv_core.c                                     |   20 
 drivers/pci/pcie/portdrv_pci.c                                      |    3 
 drivers/pinctrl/sunxi/pinctrl-sun8i-a83t.c                          |   10 
 drivers/pinctrl/sunxi/pinctrl-sunxi.c                               |    2 
 drivers/platform/x86/wmi.c                                          |   39 -
 drivers/scsi/qla2xxx/qla_def.h                                      |    5 
 drivers/scsi/qla2xxx/qla_edif.c                                     |   39 -
 drivers/scsi/qla2xxx/qla_edif.h                                     |    1 
 drivers/scsi/qla2xxx/qla_init.c                                     |    2 
 drivers/scsi/qla2xxx/qla_nvme.c                                     |   27 
 drivers/scsi/qla2xxx/qla_os.c                                       |  102 +--
 drivers/soc/atmel/soc.c                                             |   12 
 drivers/tty/n_gsm.c                                                 |  263 +++++++-
 drivers/vdpa/mlx5/net/mlx5_vnet.c                                   |    7 
 drivers/video/fbdev/core/fbcon.c                                    |   33 +
 drivers/video/fbdev/core/fbmem.c                                    |   16 
 fs/btrfs/block-group.c                                              |  152 +++-
 fs/btrfs/block-group.h                                              |    2 
 fs/btrfs/ctree.c                                                    |   17 
 fs/btrfs/ctree.h                                                    |    8 
 fs/btrfs/delayed-ref.h                                              |    5 
 fs/btrfs/dev-replace.c                                              |   16 
 fs/btrfs/disk-io.c                                                  |    1 
 fs/btrfs/extent-tree.c                                              |   28 
 fs/btrfs/extent_io.c                                                |    8 
 fs/btrfs/file.c                                                     |   13 
 fs/btrfs/free-space-tree.c                                          |    4 
 fs/btrfs/inode.c                                                    |    3 
 fs/btrfs/ioctl.c                                                    |   96 +--
 fs/btrfs/qgroup.c                                                   |    3 
 fs/btrfs/relocation.c                                               |   25 
 fs/btrfs/scrub.c                                                    |    6 
 fs/btrfs/tree-log.c                                                 |    2 
 fs/btrfs/volumes.c                                                  |  310 ++++++----
 fs/btrfs/volumes.h                                                  |   28 
 fs/btrfs/zoned.c                                                    |    2 
 fs/btrfs/zoned.h                                                    |   17 
 fs/gfs2/file.c                                                      |    1 
 fs/io_uring.c                                                       |   10 
 fs/nfsd/nfs3proc.c                                                  |    6 
 fs/nfsd/vfs.c                                                       |   64 +-
 fs/nfsd/vfs.h                                                       |    4 
 fs/seq_file.c                                                       |   32 +
 fs/xfs/xfs_inode.c                                                  |    1 
 include/linux/blk_types.h                                           |    3 
 include/linux/bpf.h                                                 |    6 
 include/linux/compiler-gcc.h                                        |    8 
 include/linux/compiler_attributes.h                                 |   10 
 include/linux/compiler_types.h                                      |   12 
 include/linux/fbcon.h                                               |    4 
 include/linux/hugetlb.h                                             |    6 
 include/linux/list.h                                                |   10 
 include/linux/memregion.h                                           |    2 
 include/linux/mm.h                                                  |    8 
 include/linux/pm_runtime.h                                          |    5 
 include/linux/qed/qed_eth_if.h                                      |   21 
 include/linux/rtsx_usb.h                                            |    2 
 include/linux/seq_file.h                                            |    4 
 include/linux/stddef.h                                              |   61 +
 include/linux/vmalloc.h                                             |    5 
 include/net/netfilter/nf_tables.h                                   |   10 
 include/net/netfilter/nf_tables_ipv4.h                              |    7 
 include/net/netfilter/nf_tables_ipv6.h                              |    6 
 include/uapi/linux/netfilter/nf_tables.h                            |    2 
 include/uapi/linux/omap3isp.h                                       |   21 
 include/uapi/linux/stddef.h                                         |   41 +
 include/video/of_display_timing.h                                   |    2 
 kernel/bpf/core.c                                                   |    7 
 kernel/bpf/verifier.c                                               |  150 +---
 kernel/module.c                                                     |   79 +-
 lib/idr.c                                                           |    3 
 mm/filemap.c                                                        |   12 
 mm/hugetlb.c                                                        |   10 
 mm/hwpoison-inject.c                                                |    3 
 mm/madvise.c                                                        |    2 
 mm/memory-failure.c                                                 |  205 ++++--
 mm/slub.c                                                           |    2 
 mm/util.c                                                           |   50 +
 net/batman-adv/bridge_loop_avoidance.c                              |    2 
 net/bluetooth/hci_event.c                                           |   12 
 net/can/bcm.c                                                       |   18 
 net/netfilter/nf_tables_api.c                                       |    9 
 net/netfilter/nf_tables_core.c                                      |    2 
 net/netfilter/nf_tables_trace.c                                     |    4 
 net/netfilter/nft_exthdr.c                                          |    2 
 net/netfilter/nft_meta.c                                            |    2 
 net/netfilter/nft_payload.c                                         |   63 +-
 net/netfilter/nft_set_pipapo.c                                      |   48 +
 net/rose/rose_route.c                                               |    4 
 net/rxrpc/ar-internal.h                                             |    2 
 net/rxrpc/call_accept.c                                             |    6 
 net/rxrpc/call_object.c                                             |   18 
 net/rxrpc/net_ns.c                                                  |    2 
 net/rxrpc/proc.c                                                    |   10 
 net/xdp/xsk_buff_pool.c                                             |    1 
 scripts/checkpatch.pl                                               |    3 
 scripts/kernel-doc                                                  |    9 
 sound/pci/cs46xx/cs46xx.c                                           |   22 
 sound/pci/hda/patch_realtek.c                                       |    1 
 sound/soc/codecs/rt5682-i2c.c                                       |   36 -
 sound/soc/codecs/rt5682.c                                           |  125 +---
 sound/soc/codecs/rt5682.h                                           |    4 
 sound/soc/codecs/rt700.c                                            |   16 
 sound/soc/codecs/rt711-sdca.c                                       |   27 
 sound/soc/codecs/rt711.c                                            |   25 
 sound/usb/mixer_maps.c                                              |   16 
 sound/usb/quirks.c                                                  |    4 
 tools/testing/selftests/bpf/prog_tests/timer_crash.c                |   32 -
 tools/testing/selftests/bpf/progs/timer_crash.c                     |   54 -
 tools/testing/selftests/net/forwarding/lib.sh                       |    6 
 tools/testing/selftests/net/udpgro.sh                               |    2 
 tools/testing/selftests/net/udpgro_bench.sh                         |    2 
 tools/testing/selftests/net/udpgro_fwd.sh                           |    2 
 tools/testing/selftests/net/veth.sh                                 |    6 
 virt/kvm/kvm_main.c                                                 |   14 
 266 files changed, 3771 insertions(+), 2017 deletions(-)

Alexander Egorenkov (1):
s390/setup: preserve memory at OLDMEM_BASE and OLDMEM_SIZE

Alexander Gordeev (2):
s390/boot: allocate amode31 section in decompressor s390/setup: use physical pointers for memblock_reserve()

Alexey Dobriyan (1):
module: fix [e_shstrndx].sh_size=0 OOB access

Amelie Delaunay (1):
ARM: dts: stm32: use usbphyc ck_usbo_48m as USBH OHCI clock on stm32mp151

Andreas Gruenbacher (1):
gfs2: Fix gfs2_file_buffered_write endless loop workaround

Andrei Lalaev (1):
pinctrl: sunxi: sunxi_pconf_set: use correct offset

Andrew Gabbasov (1):
memory: renesas-rpc-if: Avoid unaligned bus access for HyperFlash

AngeloGioacchino Del Regno (2):
serial: 8250_mtk: Make sure to select the right FEATURE_SEL Revert "serial: 8250_mtk: Make sure to select the right FEATURE_SEL"

Arun Easi (2):
scsi: qla2xxx: Fix crash during module load unload test
scsi: qla2xxx: Fix loss of NVMe namespaces after driver reload test

Barnabás Pőcze (1):
platform/x86: wmi: introduce helper to convert driver to WMI driver

Bryan O'Donoghue (1):
dt-bindings: soc: qcom: smd-rpm: Fix missing MSM8936 compatible

CHANDAN VURDIGERE NATARAJ (1):
drm/amd/display: Fix by adding FPU protection for dcn30_internal_validate_bw

Caleb Connolly (1):
dmaengine: qcom: bam_dma: fix runtime PM underflow

Charles Keepax (2):
ASoC: rt711: Add endianness flag in snd_soc_component_driver
ASoC: rt711-sdca: Add endianness flag in snd_soc_component_driver

Christian Marangi (1):
net: dsa: qca8k: reset cpu port on MTU change

Christophe JAILLET (1):
dmaengine: lgm: Fix an error handling path in intel_ldma_probe()

Christophe Leroy (1):
powerpc/32: Don't use lmw/stmw for saving/restoring non volatile regs

Chuck Lever (2):
NFSD: De-duplicate net_generic(nf->nf_net, nfsd_net_id)
NFSD: COMMIT operations must not return NFS?ERR_INVAL

Chun-Kuang Hu (4):
drm/mediatek: Use mailbox rx_callback instead of cmdq_task_cb drm/mediatek: Remove the pointer of struct cmdq_client drm/mediatek: Detect CMDQ execution timeout drm/mediatek: Add cmdq_handle in mtk_crtc

Claudio Imbrenda (1):

      KVM: s390x: fix SCK locking

Claudiu Beznea (3):
ARM: at91: pm: use proper compatible for sama5d2's rtc
ARM: at91: pm: use proper compatibles for sam9x60's rtc and rtt
ARM: at91: pm: use proper compatibles for sama7g5's rtc and rtt

Dan Carpenter (1):
btrfs: fix error pointer dereference in btrfs_ioctl_rm_dev_v2()

Dan Williams (2):
cxl/port: Hold port reference until decoder release
memregion: Fix memregion_free() fallback definition

Daniel Borkmann (2):
bpf: Fix incorrect verifier simulation around jmp32's jeq/jne
bpf: Fix insufficient bounds propagation from adjust_scalar_min_max_vals

Daniel Starke (5):
tty: n_gsm: fix frame reception handling
tty: n_gsm: fix missing update of modem controls after DLCI open
tty: n_gsm: fix invalid use of MSC in advanced option
tty: n_gsm: fix sometimes uninitialized warning in gsm_dlci_modem_output()
tty: n_gsm: fix invalid gsmtty_write_room() result

Dave Jiang (1):
dmaengine: idxd: force wq context cleanup on device disable path

David Howells (1):
rxrpc: Fix locking issue

Derek Fang (2):
ASoC: rt5682: Avoid the unexpected IRQ event during going to suspend
ASoC: rt5682: Re-detect the combo jack after resuming

Dmitry Baryshkov (1):
arm64: dts: qcom: sdm845: use dispcc AHB clock for mdss node

Dmitry Osipenko (1):
dmaengine: pl330: Fix lockdep warning about non-static key

Dongliang Mu (1):
btrfs: don't access possibly stale fs_info data in device_list_add

Duoming Zhou (1):
net: rose: fix UAF bug caused by rose_t0timer_expiry

Eli Cohen (1):
vdpa/mlx5: Avoid processing works if workqueue was destroyed

Eric Sandeen (1):
xfs: remove incorrect ASSERT in xfs_rename

Eugen Hristev (2):
ARM: dts: at91: sam9x60ek: fix eeprom compatible and size
ARM: dts: at91: sama5d2_icp: fix eeprom compatibles

Fabio Estevam (1):
ARM: mxs_defconfig: Enable the framebuffer

Fabrice Gasnier (1):
ARM: dts: stm32: add missing usbh clock and fix clk order on stm32mp15

Filipe Manana (3):
btrfs: fix invalid delayed ref after subvolume creation failure
btrfs: fix warning when freeing leaf after subvolume creation failure
btrfs: fix deadlock between chunk allocation and chunk btree modifications

Florian Westphal (1):
netfilter: nft_payload: don't allow th access for fragments

Greg Kroah-Hartman (1):

      Linux 5.15.54

Guiling Deng (1):
fbdev: fbmem: Fix logo center image dx issue

Haibo Chen (1):
iio: accel: mma8452: use the correct logic to get mma8452_data

Hangbin Liu (1):
selftests/net: fix section name when using xdp_dummy.o

Hans de Goede (6):
Input: goodix - change goodix_i2c_write() len parameter type to int
Input: goodix - add a goodix.h header file
Input: goodix - refactor reset handling
Input: goodix - try not to touch the reset-pin on x86/ACPI devices platform/x86: wmi: Replace read_takes_no_args with a flags field platform/x86: wmi: Fix driver->notify() vs ->probe() race

Heiner Kallweit (1):
r8169: fix accessing unset transport header

Heinrich Schuchardt (1):
riscv: defconfig: enable DRM_NOUVEAU

Helge Deller (3):
fbmem: Check virtual screen sizes in fb_set_var()
fbcon: Disallow setting font bigger than screen size
fbcon: Prevent that screen size is smaller than font size

Hou Tao (1):
bpf, arm64: Use emit_addr_mov_i64() for BPF_PSEUDO_FUNC

Hsin-Yi Wang (1):
video: of_display_timing.h: include errno.h

Hui Wang (2):
serial: sc16is7xx: Clear RS485 bits in the shutdown Revert "serial: sc16is7xx: Clear RS485 bits in the shutdown"

Ivan Malov (1):
xsk: Clear page contiguity bit when unmapping pool

Jack Yu (1):
ASoC: rt5682: move clk related code to rt5682_i2c_probe

Jann Horn (1):
mm/slub: add missing TID updates on slab deactivation

Jason A. Donenfeld (1):
powerpc/powernv: delay rng platform device creation until later in boot

Jean Delvare (1):
i2c: piix4: Fix a memory leak in the EFCH MMIO support

Jens Axboe (2):
io_uring: ensure that fsnotify is always called
block: only mark bio as tracked if it really is tracked

Jimmy Assarsson (3):
can: kvaser_usb: replace run-time checks with struct kvaser_usb_driver_info
can: kvaser_usb: kvaser_usb_leaf: fix CAN clock frequency regression
can: kvaser_usb: kvaser_usb_leaf: fix bittiming limits

Johan Hovold (1):
media: davinci: vpif: fix use-after-free on driver unbind

Johannes Schickel (1):
ALSA: usb-audio: add mapping for MSI MPG X570S Carbon Max Wifi.

Johannes Thumshirn (1):
btrfs: zoned: encapsulate inode locking for zoned relocation

Josef Bacik (3):
btrfs: handle device lookup with btrfs_dev_lookup_args
btrfs: add a btrfs_get_dev_args_from_path helper
btrfs: use btrfs_get_dev_args_from_path in dev removal ioctls

Kees Cook (5):
stddef: Introduce struct_group() helper macro
media: omap3isp: Use struct_group() for memcpy() region Compiler Attributes: add __alloc_size() for better bounds checking
bus: mhi: core: Use correctly sized arguments for bit field
stddef: Introduce DECLARE_FLEX_ARRAY() helper

Konrad Dybcio (1):

      arm64: dts: qcom: msm8994: Fix CPU6/7 reg values

Lad Prabhakar (1):
clk: renesas: r9a07g044: Update multiplier and divider values for PLL2/3

Liang He (1):
can: grcan: grcan_probe(): remove extra of_node_get()

Linus Torvalds (1):
ida: don't use BUG_ON() for debugging

Liu Shixin (1):
mm/filemap: fix UAF in find_lock_entries

Lorenzo Bianconi (4):
mt76: mt7921: get rid of mt7921_mac_set_beacon_filter
mt76: mt7921: introduce mt7921_mcu_set_beacon_filter utility routine
mt76: mt7921: fix a possible race enabling/disabling runtime-pm
mt76: mt7921: do not always disable fw runtime-pm

Luis Chamberlain (1):
drbd: add error handling support for add_disk()

Lukas Wunner (2):
PCI/portdrv: Rename pm_iter() to pcie_port_device_iter()
PCI: pciehp: Ignore Link Down/Up caused by error-induced Hot Reset

Lukasz Cieplicki (1):
i40e: Fix dropped jumbo frames statistics

Manish Rangankar (1):
scsi: qla2xxx: Move heartbeat handling from DPC thread to workqueue

Marc Kleine-Budde (2):
can: m_can: m_can_chip_config(): actually enable internal timestamping
can: m_can: m_can_{read_fifo,echo_tx_event}(): shift timestamp to full 32 bits

Mario Limonciello (1):
drm/amd: Refactor amdgpu_aspm to be evaluated per device

Mark Rutland (2):
irqchip/gic-v3: Ensure pseudo-NMIs have an ISB between ack and handling irqchip/gic-v3: Refactor ISB + EOIR at ack time

Martin KaFai Lau (1):
bpf: Stop caching subprog index in the bpf_pseudo_func insn

Matthew Brost (1):
drm/i915: Disable bonding on gen12+ platforms

Maurizio Avogadro (1):
ALSA: usb-audio: add mapping for MSI MAG X570S Torpedo MAX.

Max Gurtovoy (1):
virtio-blk: avoid preallocating big SGL for data

Miaohe Lin (1):
mm/memory-failure.c: fix race with changing page compound again

Miaoqian Lin (3):
ARM: meson: Fix refcount leak in meson_smp_prepare_cpus
dmaengine: ti: Fix refcount leak in ti_dra7_xbar_route_allocate
dmaengine: ti: Add missing put_device in ti_dra7_xbar_route_allocate

Michael Strauss (1):
drm/amd/display: Set min dcfclk if pipe count is 0

Michael Walle (1):
dmaengine: at_xdma: handle errors of at_xdmac_alloc_desc() correctly

Michel Dänzer (1):
dma-buf/poll: Get a file reference for outstanding fence callbacks

Mihai Sain (1):
ARM: at91: fix soc detection for SAM9X60 SiPs

Naohiro Aota (1):
btrfs: zoned: use dedicated lock for data relocation

Naoya Horiguchi (3):
mm/hwpoison: mf_mutex for soft offline and unpoison
mm/hwpoison: fix race between hugetlb free/demotion and memory_failure_hugetlb() Revert "mm/memory-failure.c: fix race with changing page compound again"

Nicholas Piggin (2):
powerpc: flexible GPR range save/restore macros powerpc/tm: Fix more userspace r13 corruption

Niels Dossche (1):

      Bluetooth: protect le accept and resolv lists with hdev->lock

Nikolay Borisov (2):
btrfs: rename btrfs_alloc_chunk to btrfs_create_chunk
btrfs: add additional parameters to btrfs_init_tree_ref/btrfs_init_data_ref

Norbert Zulinski (1):
i40e: Fix VF's MAC Address change on VM

Oliver Hartkopp (1):
can: bcm: use call_rcu() instead of costly synchronize_rcu()

Oliver Neukum (1):
usbnet: fix memory leak in error case

Oliver Upton (1):
KVM: Don't create VM debugfs files outside of the VM directory

Pablo Neira Ayuso (4):
netfilter: nft_set_pipapo: release elements in clone from abort path
netfilter: nf_tables: stricter validation of element data
netfilter: nf_tables: convert pktinfo->tprot_set to flags field
netfilter: nft_payload: support for inner header matching / mangling

Palmer Dabbelt (2):
RISC-V: defconfigs: Set CONFIG_FB=y, for FB console riscv/mm: Add XIP_FIXUP for riscv_pfn_base

Paolo Bonzini (2):
mm: vmalloc: introduce array allocation functions
KVM: use __vcalloc for very large allocations

Paul Davey (1):
bus: mhi: Fix pm_state conversion to string

Pavel Begunkov (2):
block: use bdev_get_queue() in bio.c
io_uring: avoid io-wq -EAGAIN looping for !IOPOLL

Peng Fan (9):
arm64: dts: imx8mp-evk: correct mmc pad settings
arm64: dts: imx8mp-evk: correct gpio-led pad settings
arm64: dts: imx8mp-evk: correct vbus pad settings
arm64: dts: imx8mp-evk: correct eqos pad settings
arm64: dts: imx8mp-evk: correct I2C1 pad settings
arm64: dts: imx8mp-evk: correct I2C3 pad settings
arm64: dts: imx8mp-phyboard-pollux-rdk: correct uart pad settings
arm64: dts: imx8mp-phyboard-pollux-rdk: correct eqos pad settings
arm64: dts: imx8mp-phyboard-pollux-rdk: correct i2c2 & mmc settings

Peter Robinson (1):
dmaengine: imx-sdma: Allow imx8m for imx7 FW revs

Peter Ujfalusi (1):
ASoC: rt5682: Fix deadlock on resume

Pierre-Louis Bossart (1):

      ASoC: codecs: rt700/rt711/rt711-sdca: resume bus/codec in .set_jack_detect

Po-Hsu Lin (1):
Revert "selftests/bpf: Add test for bpf_timer overwriting crash"

Qu Wenruo (1):
btrfs: remove device item and update super block in the same transaction

Quinn Tran (2):
scsi: qla2xxx: Fix laggy FC remote port session recovery
scsi: qla2xxx: edif: Replace list_for_each_safe with list_for_each_entry_safe

Rafael J. Wysocki (1):
PM: runtime: Redefine pm_runtime_release_supplier()

Rex-BC Chen (1):
drm/mediatek: Add vblank register/unregister callback functions

Rhett Aultman (1):
can: gs_usb: gs_usb_open/close(): fix memory leak

Richard Gong (1):
drm/amdgpu: vi: disable ASPM on Intel Alder Lake based systems

Rick Lindsley (1):
ibmvnic: Properly dispose of all skbs during a failover.

Roi Dayan (4):
net/mlx5e: Check action fwd/drop flag exists also for nic flows net/mlx5e: Split actions_match_supported() into a sub function net/mlx5e: TC, Reject rules with drop and modify hdr action net/mlx5e: TC, Reject rules with forward and drop actions

Samuel Holland (2):
pinctrl: sunxi: a83t: Fix NAND function name for some pins
dt-bindings: dma: allwinner,sun50i-a64-dma: Fix min/max typo

Satish Nagireddy (1):
i2c: cadence: Unregister the clk notifier in error path

Sean Christopherson (3):
KVM: x86/mmu: Use yield-safe TDP MMU root iter in MMU notifier unmapping
KVM: x86/mmu: Use common TDP MMU zap helper for MMU notifier unmap hook
KVM: Initialize debugfs_dentry when a VM is created to avoid NULL deref

Sean Wang (2):
mt76: mt76_connac: fix MCU_CE_CMD_SET_ROC definition error
Bluetooth: btmtksdio: fix use-after-free at btmtksdio_recv_event

Sean Young (1):
media: ir_toy: prevent device from hanging during transmit

Sebastian Andrzej Siewior (1):
batman-adv: Use netif_rx().

Seevalamuthu Mariappan (1):
ath11k: add hw_param for wakeup_mhi

Shai Malin (1):
qed: Improve the stack space of filter_config()

Sherry Sun (1):
arm64: dts: imx8mp-evk: correct the uart2 pinctl value

Shuah Khan (4):
module: change to print useful messages from elf_validity_check()
misc: rtsx_usb: fix use of dma mapped buffer for usb bulk transfer
misc: rtsx_usb: use separate command and response buffers
misc: rtsx_usb: set return value in rsp_buf alloc err path

Stephan Gerhold (1):

      arm64: dts: qcom: msm8992-*: Fix vdd_lvs1_2-supply typo

Sukadev Bhattiprolu (3):
ibmvnic: init init_done_rc earlier
ibmvnic: clear fop when retrying probe
ibmvnic: Allow queueing resets during probe

Tadeusz Struk (1):
uapi/linux/stddef.h: Add include guards

Takashi Iwai (2):
ALSA: usb-audio: Workarounds for Behringer UMC 204/404 HD
ALSA: cs46xx: Fix missing snd_card_free() call at probe error

Tang Bin (1):
Input: cpcap-pwrbutton - handle errors from platform_get_irq()

Tejun Heo (1):
block: fix rq-qos breakage from skipping rq_qos_done_bio()

Thomas Hellström (2):
drm/i915/gt: Register the migrate contexts with their engines drm/i915: Fix a race between vma / object destruction and unbinding

Thomas Kopp (2):
can: mcp251xfd: mcp251xfd_regmap_crc_read(): improve workaround handling for mcp2517fd
can: mcp251xfd: mcp251xfd_regmap_crc_read(): update workaround broken CRC on TBC register

Tim Crawford (1):
ALSA: hda/realtek: Add quirk for Clevo L140PU

Tom Rix (1):
btrfs: fix use of uninitialized variable at rm device ioctl

Tudor Ambarus (1):
mtd: spi-nor: Skip erase logic when SPI_NOR_NO_ERASE is set

Ville Syrjälä (1):
drm/i915: Replace the unconditional clflush with drm_clflush_virt_range()

Vladimir Lypak (1):
dt-bindings: soc: qcom: smd-rpm: Add compatible for MSM8953 SoC

Vladimir Oltean (3):
selftests: forwarding: fix flood_unicast_test when h2 supports IFF_UNICAST_FLT
selftests: forwarding: fix learning_test when h1 supports IFF_UNICAST_FLT
selftests: forwarding: fix error message in learning_test

Wu Bo (1):
drbd: Fix double free problem in drbd_create_device

Xiaomeng Tong (2):
drbd: fix an invalid memory access caused by incorrect use of list iterator
ASoC: rt5682: fix an incorrect NULL check on list iterator

Ye Guojin (1):
virtio-blk: modify the value type of num in virtio_queue_rq()

Yian Chen (1):
iommu/vt-d: Fix PCI bus rescan device hot add

Zhenguo Zhao (2):
tty: n_gsm: Modify CR,PF bit when config requester
tty: n_gsm: Save dlci address open status when config requester

[email protected] (1):
tty: n_gsm: fix encoding of command/response bit

luofei (1):
mm/hwpoison: avoid the impact of hwpoison_filter() return value on mce handler

tiancyin (1):
drm/amd/vcn: fix an error msg on vcn 3.0

author maintainer
#1 lore raw
Documentation/devicetree/bindings/dma/allwinner,sun50i-a64-dma.yaml +1 -1
index b6e1ebfaf366..bb3cbc30d912 100644
@@ -64,7 +64,7 @@ if:
 then:
   properties:
     clocks:
-      maxItems: 2
+      minItems: 2
 
   required:
     - clock-names
Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml +3 -0
index cc3fe5ed7421..1b0062e3c1a4 100644
@@ -34,6 +34,8 @@ properties:
       - qcom,rpm-ipq6018
       - qcom,rpm-msm8226
       - qcom,rpm-msm8916
+      - qcom,rpm-msm8936
+      - qcom,rpm-msm8953
       - qcom,rpm-msm8974
       - qcom,rpm-msm8976
       - qcom,rpm-msm8996
@@ -57,6 +59,7 @@ if:
           - qcom,rpm-apq8084
           - qcom,rpm-msm8916
           - qcom,rpm-msm8974
+          - qcom,rpm-msm8953
 then:
   required:
     - qcom,smd-channels
MAINTAINERS +2 -1
index a60d7e0466af..edc32575828b 100644
@@ -7952,9 +7952,10 @@ F:	drivers/media/usb/go7007/
 
 GOODIX TOUCHSCREEN
 M:	Bastien Nocera <[email protected]>
+M:	Hans de Goede <[email protected]>
 L:	[email protected]
 S:	Maintained
-F:	drivers/input/touchscreen/goodix.c
+F:	drivers/input/touchscreen/goodix*
 
 GOOGLE ETHERNET DRIVERS
 M:	Jeroen de Borst <[email protected]>
Makefile +16 -1
index c7750d260a55..f8dc156aa302 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 15
-SUBLEVEL = 53
+SUBLEVEL = 54
 EXTRAVERSION =
 NAME = Trick or Treat
 
@@ -1011,6 +1011,21 @@ ifdef CONFIG_CC_IS_GCC
 KBUILD_CFLAGS += -Wno-maybe-uninitialized
 endif
 
+ifdef CONFIG_CC_IS_GCC
+# The allocators already balk at large sizes, so silence the compiler
+# warnings for bounds checks involving those possible values. While
+# -Wno-alloc-size-larger-than would normally be used here, earlier versions
+# of gcc (<9.1) weirdly don't handle the option correctly when _other_
+# warnings are produced (?!). Using -Walloc-size-larger-than=SIZE_MAX
+# doesn't work (as it is documented to), silently resolving to "0" prior to
+# version 9.1 (and producing an error more recently). Numeric values larger
+# than PTRDIFF_MAX also don't work prior to version 9.1, which are silently
+# ignored, continuing to default to PTRDIFF_MAX. So, left with no other
+# choice, we must perform a versioned check to disable this warning.
+# https://lore.kernel.org/lkml/[email protected]
+KBUILD_CFLAGS += $(call cc-ifversion, -ge, 0901, -Wno-alloc-size-larger-than)
+endif
+
 # disable invalid "can't wrap" optimizations for signed / pointers
 KBUILD_CFLAGS	+= -fno-strict-overflow
 
arch/arm/boot/dts/at91-sam9x60ek.dts +1 -2
index b1068cca4228..fd8dc1183b3e 100644
@@ -233,10 +233,9 @@ i2c0: i2c@600 {
 		status = "okay";
 
 		eeprom@53 {
-			compatible = "atmel,24c32";
+			compatible = "atmel,24c02";
 			reg = <0x53>;
 			pagesize = <16>;
-			size = <128>;
 			status = "okay";
 		};
 	};
arch/arm/boot/dts/at91-sama5d2_icp.dts +3 -3
index e06b58724ca8..fd1a288f686b 100644
@@ -323,21 +323,21 @@ &i2c1 {
 	status = "okay";
 
 	eeprom@50 {
-		compatible = "atmel,24c32";
+		compatible = "atmel,24c02";
 		reg = <0x50>;
 		pagesize = <16>;
 		status = "okay";
 	};
 
 	eeprom@52 {
-		compatible = "atmel,24c32";
+		compatible = "atmel,24c02";
 		reg = <0x52>;
 		pagesize = <16>;
 		status = "disabled";
 	};
 
 	eeprom@53 {
-		compatible = "atmel,24c32";
+		compatible = "atmel,24c02";
 		reg = <0x53>;
 		pagesize = <16>;
 		status = "disabled";
arch/arm/boot/dts/stm32mp151.dtsi +2 -2
index 6992a4b0ba79..a9b65b3bfda5 100644
@@ -1452,7 +1452,7 @@ stmmac_axi_config_0: stmmac-axi-config {
 		usbh_ohci: usb@5800c000 {
 			compatible = "generic-ohci";
 			reg = <0x5800c000 0x1000>;
-			clocks = <&rcc USBH>;
+			clocks = <&usbphyc>, <&rcc USBH>;
 			resets = <&rcc USBH_R>;
 			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
 			status = "disabled";
@@ -1461,7 +1461,7 @@ usbh_ohci: usb@5800c000 {
 		usbh_ehci: usb@5800d000 {
 			compatible = "generic-ehci";
 			reg = <0x5800d000 0x1000>;
-			clocks = <&rcc USBH>;
+			clocks = <&usbphyc>, <&rcc USBH>;
 			resets = <&rcc USBH_R>;
 			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
 			companion = <&usbh_ohci>;
arch/arm/configs/mxs_defconfig +1 -0
index ca32446b187f..f53086ddc48b 100644
@@ -93,6 +93,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y
 CONFIG_DRM=y
 CONFIG_DRM_PANEL_SEIKO_43WVF1G=y
 CONFIG_DRM_MXSFB=y
+CONFIG_FB=y
 CONFIG_FB_MODE_HELPERS=y
 CONFIG_LCD_CLASS_DEVICE=y
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
arch/arm/include/asm/arch_gicv3.h +1 -6
index 413abfb42989..f82a819eb0db 100644
@@ -48,6 +48,7 @@ static inline u32 read_ ## a64(void)		\
 	return read_sysreg(a32); 		\
 }						\
 
+CPUIF_MAP(ICC_EOIR1, ICC_EOIR1_EL1)
 CPUIF_MAP(ICC_PMR, ICC_PMR_EL1)
 CPUIF_MAP(ICC_AP0R0, ICC_AP0R0_EL1)
 CPUIF_MAP(ICC_AP0R1, ICC_AP0R1_EL1)
@@ -63,12 +64,6 @@ CPUIF_MAP(ICC_AP1R3, ICC_AP1R3_EL1)
 
 /* Low-level accessors */
 
-static inline void gic_write_eoir(u32 irq)
-{
-	write_sysreg(irq, ICC_EOIR1);
-	isb();
-}
-
 static inline void gic_write_dir(u32 val)
 {
 	write_sysreg(val, ICC_DIR);
arch/arm/mach-at91/pm.c +5 -5
index 8711d6824c1f..ed1050404ef0 100644
@@ -146,7 +146,7 @@ static const struct wakeup_source_info ws_info[] = {
 
 static const struct of_device_id sama5d2_ws_ids[] = {
 	{ .compatible = "atmel,sama5d2-gem",		.data = &ws_info[0] },
-	{ .compatible = "atmel,at91rm9200-rtc",		.data = &ws_info[1] },
+	{ .compatible = "atmel,sama5d2-rtc",		.data = &ws_info[1] },
 	{ .compatible = "atmel,sama5d3-udc",		.data = &ws_info[2] },
 	{ .compatible = "atmel,at91rm9200-ohci",	.data = &ws_info[2] },
 	{ .compatible = "usb-ohci",			.data = &ws_info[2] },
@@ -157,24 +157,24 @@ static const struct of_device_id sama5d2_ws_ids[] = {
 };
 
 static const struct of_device_id sam9x60_ws_ids[] = {
-	{ .compatible = "atmel,at91sam9x5-rtc",		.data = &ws_info[1] },
+	{ .compatible = "microchip,sam9x60-rtc",	.data = &ws_info[1] },
 	{ .compatible = "atmel,at91rm9200-ohci",	.data = &ws_info[2] },
 	{ .compatible = "usb-ohci",			.data = &ws_info[2] },
 	{ .compatible = "atmel,at91sam9g45-ehci",	.data = &ws_info[2] },
 	{ .compatible = "usb-ehci",			.data = &ws_info[2] },
-	{ .compatible = "atmel,at91sam9260-rtt",	.data = &ws_info[4] },
+	{ .compatible = "microchip,sam9x60-rtt",	.data = &ws_info[4] },
 	{ .compatible = "cdns,sam9x60-macb",		.data = &ws_info[5] },
 	{ /* sentinel */ }
 };
 
 static const struct of_device_id sama7g5_ws_ids[] = {
-	{ .compatible = "atmel,at91sam9x5-rtc",		.data = &ws_info[1] },
+	{ .compatible = "microchip,sama7g5-rtc",	.data = &ws_info[1] },
 	{ .compatible = "microchip,sama7g5-ohci",	.data = &ws_info[2] },
 	{ .compatible = "usb-ohci",			.data = &ws_info[2] },
 	{ .compatible = "atmel,at91sam9g45-ehci",	.data = &ws_info[2] },
 	{ .compatible = "usb-ehci",			.data = &ws_info[2] },
 	{ .compatible = "microchip,sama7g5-sdhci",	.data = &ws_info[3] },
-	{ .compatible = "atmel,at91sam9260-rtt",	.data = &ws_info[4] },
+	{ .compatible = "microchip,sama7g5-rtt",	.data = &ws_info[4] },
 	{ /* sentinel */ }
 };
 
arch/arm/mach-meson/platsmp.c +2 -0
index 4b8ad728bb42..32ac60b89fdc 100644
@@ -71,6 +71,7 @@ static void __init meson_smp_prepare_cpus(const char *scu_compatible,
 	}
 
 	sram_base = of_iomap(node, 0);
+	of_node_put(node);
 	if (!sram_base) {
 		pr_err("Couldn't map SRAM registers\n");
 		return;
@@ -91,6 +92,7 @@ static void __init meson_smp_prepare_cpus(const char *scu_compatible,
 	}
 
 	scu_base = of_iomap(node, 0);
+	of_node_put(node);
 	if (!scu_base) {
 		pr_err("Couldn't map SCU registers\n");
 		return;
arch/arm64/boot/dts/freescale/imx8mp-evk.dts +27 -27

110 lines not on this page · raw message

arch/arm64/boot/dts/freescale/imx8mp-phyboard-pollux-rdk.dts +24 -24

93 lines not on this page · raw message

arch/arm64/boot/dts/qcom/msm8992-bullhead-rev-101.dts +1 -1
index 1ccca83292ac..c7d191dc6d4b 100644
@@ -74,7 +74,7 @@ pm8994_regulators: pm8994-regulators {
 		vdd_l17_29-supply = <&vph_pwr>;
 		vdd_l20_21-supply = <&vph_pwr>;
 		vdd_l25-supply = <&pm8994_s5>;
-		vdd_lvs1_2 = <&pm8994_s4>;
+		vdd_lvs1_2-supply = <&pm8994_s4>;
 
 		/* S1, S2, S6 and S12 are managed by RPMPD */
 
arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts +1 -1
index 357d55496e75..a3d6340a0c55 100644
@@ -142,7 +142,7 @@ pm8994-regulators {
 		vdd_l17_29-supply = <&vph_pwr>;
 		vdd_l20_21-supply = <&vph_pwr>;
 		vdd_l25-supply = <&pm8994_s5>;
-		vdd_lvs1_2 = <&pm8994_s4>;
+		vdd_lvs1_2-supply = <&pm8994_s4>;
 
 		/* S1, S2, S6 and S12 are managed by RPMPD */
 
arch/arm64/boot/dts/qcom/msm8994.dtsi +2 -2
index 3c27671c8b5c..a8dc8163ee82 100644
@@ -93,7 +93,7 @@ CPU5: cpu@101 {
 		CPU6: cpu@102 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a57";
-			reg = <0x0 0x101>;
+			reg = <0x0 0x102>;
 			enable-method = "psci";
 			next-level-cache = <&L2_1>;
 		};
@@ -101,7 +101,7 @@ CPU6: cpu@102 {
 		CPU7: cpu@103 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a57";
-			reg = <0x0 0x101>;
+			reg = <0x0 0x103>;
 			enable-method = "psci";
 			next-level-cache = <&L2_1>;
 		};
arch/arm64/boot/dts/qcom/sdm845.dtsi +1 -1
index d20eacfc1017..ea7a272d267a 100644
@@ -4147,7 +4147,7 @@ mdss: mdss@ae00000 {
 
 			power-domains = <&dispcc MDSS_GDSC>;
 
-			clocks = <&gcc GCC_DISP_AHB_CLK>,
+			clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
 				 <&dispcc DISP_CC_MDSS_MDP_CLK>;
 			clock-names = "iface", "core";
 
arch/arm64/include/asm/arch_gicv3.h +0 -6
index 4ad22c3135db..5a0f792492af 100644
@@ -26,12 +26,6 @@
  * sets the GP register's most significant bits to 0 with an explicit cast.
  */
 
-static inline void gic_write_eoir(u32 irq)
-{
-	write_sysreg_s(irq, SYS_ICC_EOIR1_EL1);
-	isb();
-}
-
 static __always_inline void gic_write_dir(u32 irq)
 {
 	write_sysreg_s(irq, SYS_ICC_DIR_EL1);
arch/arm64/net/bpf_jit_comp.c +4 -1
index 95439bbe5df8..4895b4d7e150 100644
@@ -788,7 +788,10 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx,
 		u64 imm64;
 
 		imm64 = (u64)insn1.imm << 32 | (u32)imm;
-		emit_a64_mov_i64(dst, imm64, ctx);
+		if (bpf_pseudo_func(insn))
+			emit_addr_mov_i64(dst, imm64, ctx);
+		else
+			emit_a64_mov_i64(dst, imm64, ctx);
 
 		return 1;
 	}
arch/powerpc/boot/crt0.S +15 -16
index 1d83966f5ef6..e8f10a599659 100644
@@ -226,16 +226,19 @@ p_base:	mflr	r10		/* r10 now points to runtime addr of p_base */
 #ifdef __powerpc64__
 
 #define PROM_FRAME_SIZE 512
-#define SAVE_GPR(n, base)       std     n,8*(n)(base)
-#define REST_GPR(n, base)       ld      n,8*(n)(base)
-#define SAVE_2GPRS(n, base)     SAVE_GPR(n, base); SAVE_GPR(n+1, base)
-#define SAVE_4GPRS(n, base)     SAVE_2GPRS(n, base); SAVE_2GPRS(n+2, base)
-#define SAVE_8GPRS(n, base)     SAVE_4GPRS(n, base); SAVE_4GPRS(n+4, base)
-#define SAVE_10GPRS(n, base)    SAVE_8GPRS(n, base); SAVE_2GPRS(n+8, base)
-#define REST_2GPRS(n, base)     REST_GPR(n, base); REST_GPR(n+1, base)
-#define REST_4GPRS(n, base)     REST_2GPRS(n, base); REST_2GPRS(n+2, base)
-#define REST_8GPRS(n, base)     REST_4GPRS(n, base); REST_4GPRS(n+4, base)
-#define REST_10GPRS(n, base)    REST_8GPRS(n, base); REST_2GPRS(n+8, base)
+
+.macro OP_REGS op, width, start, end, base, offset
+	.Lreg=\start
+	.rept (\end - \start + 1)
+	\op	.Lreg,\offset+\width*.Lreg(\base)
+	.Lreg=.Lreg+1
+	.endr
+.endm
+
+#define SAVE_GPRS(start, end, base)	OP_REGS std, 8, start, end, base, 0
+#define REST_GPRS(start, end, base)	OP_REGS ld, 8, start, end, base, 0
+#define SAVE_GPR(n, base)		SAVE_GPRS(n, n, base)
+#define REST_GPR(n, base)		REST_GPRS(n, n, base)
 
 /* prom handles the jump into and return from firmware.  The prom args pointer
    is loaded in r3. */
@@ -246,9 +249,7 @@ prom:
 	stdu	r1,-PROM_FRAME_SIZE(r1) /* Save SP and create stack space */
 
 	SAVE_GPR(2, r1)
-	SAVE_GPR(13, r1)
-	SAVE_8GPRS(14, r1)
-	SAVE_10GPRS(22, r1)
+	SAVE_GPRS(13, 31, r1)
 	mfcr    r10
 	std     r10,8*32(r1)
 	mfmsr   r10
@@ -283,9 +284,7 @@ prom:
 
 	/* Restore other registers */
 	REST_GPR(2, r1)
-	REST_GPR(13, r1)
-	REST_8GPRS(14, r1)
-	REST_10GPRS(22, r1)
+	REST_GPRS(13, 31, r1)
 	ld      r10,8*32(r1)
 	mtcr	r10
 
arch/powerpc/crypto/md5-asm.S +3 -7
index 948d100a2934..fa6bc440cf4a 100644
@@ -38,15 +38,11 @@
 
 #define INITIALIZE \
 	PPC_STLU r1,-INT_FRAME_SIZE(r1); \
-	SAVE_8GPRS(14, r1);		/* push registers onto stack	*/ \
-	SAVE_4GPRS(22, r1);						   \
-	SAVE_GPR(26, r1)
+	SAVE_GPRS(14, 26, r1)		/* push registers onto stack	*/
 
 #define FINALIZE \
-	REST_8GPRS(14, r1);		/* pop registers from stack	*/ \
-	REST_4GPRS(22, r1);						   \
-	REST_GPR(26, r1);						   \
-	addi	r1,r1,INT_FRAME_SIZE;
+	REST_GPRS(14, 26, r1);		/* pop registers from stack	*/ \
+	addi	r1,r1,INT_FRAME_SIZE
 
 #ifdef __BIG_ENDIAN__
 #define LOAD_DATA(reg, off) \
arch/powerpc/crypto/sha1-powerpc-asm.S +2 -4
index 23e248beff71..f0d5ed557ab1 100644
@@ -125,8 +125,7 @@
 
 _GLOBAL(powerpc_sha_transform)
 	PPC_STLU r1,-INT_FRAME_SIZE(r1)
-	SAVE_8GPRS(14, r1)
-	SAVE_10GPRS(22, r1)
+	SAVE_GPRS(14, 31, r1)
 
 	/* Load up A - E */
 	lwz	RA(0),0(r3)	/* A */
@@ -184,7 +183,6 @@ _GLOBAL(powerpc_sha_transform)
 	stw	RD(0),12(r3)
 	stw	RE(0),16(r3)
 
-	REST_8GPRS(14, r1)
-	REST_10GPRS(22, r1)
+	REST_GPRS(14, 31, r1)
 	addi	r1,r1,INT_FRAME_SIZE
 	blr
arch/powerpc/include/asm/ppc_asm.h +27 -16

57 lines not on this page · raw message

arch/powerpc/kernel/entry_32.S +9 -14
index 61fdd53cdd9a..c62dd9815965 100644
@@ -90,8 +90,7 @@ transfer_to_syscall:
 	stw	r12,8(r1)
 	stw	r2,_TRAP(r1)
 	SAVE_GPR(0, r1)
-	SAVE_4GPRS(3, r1)
-	SAVE_2GPRS(7, r1)
+	SAVE_GPRS(3, 8, r1)
 	addi	r2,r10,-THREAD
 	SAVE_NVGPRS(r1)
 
@@ -139,7 +138,7 @@ syscall_exit_finish:
 	mtxer	r5
 	lwz	r0,GPR0(r1)
 	lwz	r3,GPR3(r1)
-	REST_8GPRS(4,r1)
+	REST_GPRS(4, 11, r1)
 	lwz	r12,GPR12(r1)
 	b	1b
 
@@ -232,9 +231,9 @@ fast_exception_return:
 	beq	3f			/* if not, we've got problems */
 #endif
 
-2:	REST_4GPRS(3, r11)
+2:	REST_GPRS(3, 6, r11)
 	lwz	r10,_CCR(r11)
-	REST_2GPRS(1, r11)
+	REST_GPRS(1, 2, r11)
 	mtcr	r10
 	lwz	r10,_LINK(r11)
 	mtlr	r10
@@ -298,16 +297,14 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_STCX_CHECKS_ADDRESS)
 	 * the reliable stack unwinder later on. Clear it.
 	 */
 	stw	r0,8(r1)
-	REST_4GPRS(7, r1)
-	REST_2GPRS(11, r1)
+	REST_GPRS(7, 12, r1)
 
 	mtcr	r3
 	mtlr	r4
 	mtctr	r5
 	mtspr	SPRN_XER,r6
 
-	REST_4GPRS(2, r1)
-	REST_GPR(6, r1)
+	REST_GPRS(2, 6, r1)
 	REST_GPR(0, r1)
 	REST_GPR(1, r1)
 	rfi
@@ -341,8 +338,7 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_STCX_CHECKS_ADDRESS)
 	lwz	r6,_CCR(r1)
 	li	r0,0
 
-	REST_4GPRS(7, r1)
-	REST_2GPRS(11, r1)
+	REST_GPRS(7, 12, r1)
 
 	mtlr	r3
 	mtctr	r4
@@ -354,7 +350,7 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_STCX_CHECKS_ADDRESS)
 	 */
 	stw	r0,8(r1)
 
-	REST_4GPRS(2, r1)
+	REST_GPRS(2, 5, r1)
 
 	bne-	cr1,1f /* emulate stack store */
 	mtcr	r6
@@ -430,8 +426,7 @@ _ASM_NOKPROBE_SYMBOL(interrupt_return)
 	bne	interrupt_return;					\
 	lwz	r0,GPR0(r1);						\
 	lwz	r2,GPR2(r1);						\
-	REST_4GPRS(3, r1);						\
-	REST_2GPRS(7, r1);						\
+	REST_GPRS(3, 8, r1);						\
 	lwz	r10,_XER(r1);						\
 	lwz	r11,_CTR(r1);						\
 	mtspr	SPRN_XER,r10;						\
arch/powerpc/kernel/exceptions-64e.S +4 -10
index 711c66b76df1..67dc4e3179a0 100644
@@ -198,8 +198,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_EMB_HV)
 
 	stdcx.	r0,0,r1		/* to clear the reservation */
 
-	REST_4GPRS(2, r1)
-	REST_4GPRS(6, r1)
+	REST_GPRS(2, 9, r1)
 
 	ld	r10,_CTR(r1)
 	ld	r11,_XER(r1)
@@ -375,9 +374,7 @@ ret_from_mc_except:
 exc_##n##_common:							    \
 	std	r0,GPR0(r1);		/* save r0 in stackframe */	    \
 	std	r2,GPR2(r1);		/* save r2 in stackframe */	    \
-	SAVE_4GPRS(3, r1);		/* save r3 - r6 in stackframe */    \
-	SAVE_2GPRS(7, r1);		/* save r7, r8 in stackframe */	    \
-	std	r9,GPR9(r1);		/* save r9 in stackframe */	    \
+	SAVE_GPRS(3, 9, r1);		/* save r3 - r9 in stackframe */    \
 	std	r10,_NIP(r1);		/* save SRR0 to stackframe */	    \
 	std	r11,_MSR(r1);		/* save SRR1 to stackframe */	    \
 	beq	2f;			/* if from kernel mode */	    \
@@ -1061,9 +1058,7 @@ bad_stack_book3e:
 	std	r11,_ESR(r1)
 	std	r0,GPR0(r1);		/* save r0 in stackframe */	    \
 	std	r2,GPR2(r1);		/* save r2 in stackframe */	    \
-	SAVE_4GPRS(3, r1);		/* save r3 - r6 in stackframe */    \
-	SAVE_2GPRS(7, r1);		/* save r7, r8 in stackframe */	    \
-	std	r9,GPR9(r1);		/* save r9 in stackframe */	    \
+	SAVE_GPRS(3, 9, r1);		/* save r3 - r9 in stackframe */    \
 	ld	r3,PACA_EXGEN+EX_R10(r13);/* get back r10 */		    \
 	ld	r4,PACA_EXGEN+EX_R11(r13);/* get back r11 */		    \
 	mfspr	r5,SPRN_SPRG_GEN_SCRATCH;/* get back r13 XXX can be wrong */ \
@@ -1077,8 +1072,7 @@ bad_stack_book3e:
 	std	r10,_LINK(r1)
 	std	r11,_CTR(r1)
 	std	r12,_XER(r1)
-	SAVE_10GPRS(14,r1)
-	SAVE_8GPRS(24,r1)
+	SAVE_GPRS(14, 31, r1)
 	lhz	r12,PACA_TRAP_SAVE(r13)
 	std	r12,_TRAP(r1)
 	addi	r11,r1,INT_FRAME_SIZE
arch/powerpc/kernel/exceptions-64s.S +2 -4
index eaf1f72131a1..277eccf0f086 100644
@@ -574,8 +574,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_CFAR)
 	ld	r10,IAREA+EX_CTR(r13)
 	std	r10,_CTR(r1)
 	std	r2,GPR2(r1)		/* save r2 in stackframe	*/
-	SAVE_4GPRS(3, r1)		/* save r3 - r6 in stackframe   */
-	SAVE_2GPRS(7, r1)		/* save r7, r8 in stackframe	*/
+	SAVE_GPRS(3, 8, r1)		/* save r3 - r8 in stackframe   */
 	mflr	r9			/* Get LR, later save to stack	*/
 	ld	r2,PACATOC(r13)		/* get kernel TOC into r2	*/
 	std	r9,_LINK(r1)
@@ -693,8 +692,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_CFAR)
 	mtlr	r9
 	ld	r9,_CCR(r1)
 	mtcr	r9
-	REST_8GPRS(2, r1)
-	REST_4GPRS(10, r1)
+	REST_GPRS(2, 13, r1)
 	REST_GPR(0, r1)
 	/* restore original r1. */
 	ld	r1,GPR1(r1)
arch/powerpc/kernel/head_32.h +1 -2
index 349c4a820231..261c79bdbe53 100644
@@ -115,8 +115,7 @@ _ASM_NOKPROBE_SYMBOL(\name\()_virt)
 	stw	r10,8(r1)
 	li	r10, \trapno
 	stw	r10,_TRAP(r1)
-	SAVE_4GPRS(3, r1)
-	SAVE_2GPRS(7, r1)
+	SAVE_GPRS(3, 8, r1)
 	SAVE_NVGPRS(r1)
 	stw	r2,GPR2(r1)
 	stw	r12,_NIP(r1)
arch/powerpc/kernel/head_booke.h +1 -2
index ef8d1b1c234e..bb6d5d0fc4ac 100644
@@ -87,8 +87,7 @@ END_BTB_FLUSH_SECTION
 	stw	r10, 8(r1)
 	li	r10, \trapno
 	stw	r10,_TRAP(r1)
-	SAVE_4GPRS(3, r1)
-	SAVE_2GPRS(7, r1)
+	SAVE_GPRS(3, 8, r1)
 	SAVE_NVGPRS(r1)
 	stw	r2,GPR2(r1)
 	stw	r12,_NIP(r1)
arch/powerpc/kernel/interrupt_64.S +13 -21
index 4c6d1a8dcefe..ff8c8c03f41a 100644
@@ -166,10 +166,9 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
 	 * The value of AMR only matters while we're in the kernel.
 	 */
 	mtcr	r2
-	ld	r2,GPR2(r1)
-	ld	r3,GPR3(r1)
-	ld	r13,GPR13(r1)
-	ld	r1,GPR1(r1)
+	REST_GPRS(2, 3, r1)
+	REST_GPR(13, r1)
+	REST_GPR(1, r1)
 	RFSCV_TO_USER
 	b	.	/* prevent speculative execution */
 
@@ -187,9 +186,8 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
 	mtctr	r3
 	mtlr	r4
 	mtspr	SPRN_XER,r5
-	REST_10GPRS(2, r1)
-	REST_2GPRS(12, r1)
-	ld	r1,GPR1(r1)
+	REST_GPRS(2, 13, r1)
+	REST_GPR(1, r1)
 	RFI_TO_USER
 .Lsyscall_vectored_\name\()_rst_end:
 
@@ -378,10 +376,9 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
 	 * The value of AMR only matters while we're in the kernel.
 	 */
 	mtcr	r2
-	ld	r2,GPR2(r1)
-	ld	r3,GPR3(r1)
-	ld	r13,GPR13(r1)
-	ld	r1,GPR1(r1)
+	REST_GPRS(2, 3, r1)
+	REST_GPR(13, r1)
+	REST_GPR(1, r1)
 	RFI_TO_USER
 	b	.	/* prevent speculative execution */
 
@@ -392,8 +389,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
 	mtctr	r3
 	mtspr	SPRN_XER,r4
 	ld	r0,GPR0(r1)
-	REST_8GPRS(4, r1)
-	ld	r12,GPR12(r1)
+	REST_GPRS(4, 12, r1)
 	b	.Lsyscall_restore_regs_cont
 .Lsyscall_rst_end:
 
@@ -522,17 +518,14 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_STCX_CHECKS_ADDRESS)
 	ld	r6,_XER(r1)
 	li	r0,0
 
-	REST_4GPRS(7, r1)
-	REST_2GPRS(11, r1)
-	REST_GPR(13, r1)
+	REST_GPRS(7, 13, r1)
 
 	mtcr	r3
 	mtlr	r4
 	mtctr	r5
 	mtspr	SPRN_XER,r6
 
-	REST_4GPRS(2, r1)
-	REST_GPR(6, r1)
+	REST_GPRS(2, 6, r1)
 	REST_GPR(0, r1)
 	REST_GPR(1, r1)
 	.ifc \srr,srr
@@ -629,8 +622,7 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_STCX_CHECKS_ADDRESS)
 	ld	r6,_CCR(r1)
 	li	r0,0
 
-	REST_4GPRS(7, r1)
-	REST_2GPRS(11, r1)
+	REST_GPRS(7, 12, r1)
 
 	mtlr	r3
 	mtctr	r4
@@ -642,7 +634,7 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_STCX_CHECKS_ADDRESS)
 	 */
 	std	r0,STACK_FRAME_OVERHEAD-16(r1)
 
-	REST_4GPRS(2, r1)
+	REST_GPRS(2, 5, r1)
 
 	bne-	cr1,1f /* emulate stack store */
 	mtcr	r6
arch/powerpc/kernel/optprobes_head.S +2 -2
index 19ea3312403c..5c7f0b4b784b 100644
@@ -10,8 +10,8 @@
 #include <asm/asm-offsets.h>
 
 #ifdef CONFIG_PPC64
-#define SAVE_30GPRS(base) SAVE_10GPRS(2,base); SAVE_10GPRS(12,base); SAVE_10GPRS(22,base)
-#define REST_30GPRS(base) REST_10GPRS(2,base); REST_10GPRS(12,base); REST_10GPRS(22,base)
+#define SAVE_30GPRS(base) SAVE_GPRS(2, 31, base)
+#define REST_30GPRS(base) REST_GPRS(2, 31, base)
 #define TEMPLATE_FOR_IMM_LOAD_INSNS	nop; nop; nop; nop; nop
 #else
 #define SAVE_30GPRS(base) stmw	r2, GPR2(base)
arch/powerpc/kernel/tm.S +19 -19
index 2b91f233b05d..5a0f023a26e9 100644
@@ -226,11 +226,8 @@ _GLOBAL(tm_reclaim)
 
 	/* Sync the userland GPRs 2-12, 14-31 to thread->regs: */
 	SAVE_GPR(0, r7)				/* user r0 */
-	SAVE_GPR(2, r7)				/* user r2 */
-	SAVE_4GPRS(3, r7)			/* user r3-r6 */
-	SAVE_GPR(8, r7)				/* user r8 */
-	SAVE_GPR(9, r7)				/* user r9 */
-	SAVE_GPR(10, r7)			/* user r10 */
+	SAVE_GPRS(2, 6, r7)			/* user r2-r6 */
+	SAVE_GPRS(8, 10, r7)			/* user r8-r10 */
 	ld	r3, GPR1(r1)			/* user r1 */
 	ld	r4, GPR7(r1)			/* user r7 */
 	ld	r5, GPR11(r1)			/* user r11 */
@@ -445,12 +442,9 @@ restore_gprs:
 	ld	r6, THREAD_TM_PPR(r3)
 
 	REST_GPR(0, r7)				/* GPR0 */
-	REST_2GPRS(2, r7)			/* GPR2-3 */
-	REST_GPR(4, r7)				/* GPR4 */
-	REST_4GPRS(8, r7)			/* GPR8-11 */
-	REST_2GPRS(12, r7)			/* GPR12-13 */
-
-	REST_NVGPRS(r7)				/* GPR14-31 */
+	REST_GPRS(2, 4, r7)			/* GPR2-4 */
+	REST_GPRS(8, 12, r7)			/* GPR8-12 */
+	REST_GPRS(14, 31, r7)			/* GPR14-31 */
 
 	/* Load up PPR and DSCR here so we don't run with user values for long */
 	mtspr	SPRN_DSCR, r5
@@ -486,18 +480,24 @@ restore_gprs:
 	REST_GPR(6, r7)
 
 	/*
-	 * Store r1 and r5 on the stack so that we can access them after we
-	 * clear MSR RI.
+	 * Store user r1 and r5 and r13 on the stack (in the unused save
+	 * areas / compiler reserved areas), so that we can access them after
+	 * we clear MSR RI.
 	 */
 
 	REST_GPR(5, r7)
 	std	r5, -8(r1)
-	ld	r5, GPR1(r7)
+	ld	r5, GPR13(r7)
 	std	r5, -16(r1)
+	ld	r5, GPR1(r7)
+	std	r5, -24(r1)
 
 	REST_GPR(7, r7)
 
-	/* Clear MSR RI since we are about to use SCRATCH0. EE is already off */
+	/* Stash the stack pointer away for use after recheckpoint */
+	std	r1, PACAR1(r13)
+
+	/* Clear MSR RI since we are about to clobber r13. EE is already off */
 	li	r5, 0
 	mtmsrd	r5, 1
 
@@ -508,9 +508,9 @@ restore_gprs:
 	 * until we turn MSR RI back on.
 	 */
 
-	SET_SCRATCH0(r1)
 	ld	r5, -8(r1)
-	ld	r1, -16(r1)
+	ld	r13, -16(r1)
+	ld	r1, -24(r1)
 
 	/* Commit register state as checkpointed state: */
 	TRECHKPT
@@ -526,9 +526,9 @@ restore_gprs:
 	 */
 
 	GET_PACA(r13)
-	GET_SCRATCH0(r1)
+	ld	r1, PACAR1(r13)
 
-	/* R1 is restored, so we are recoverable again.  EE is still off */
+	/* R13, R1 is restored, so we are recoverable again.  EE is still off */
 	li	r4, MSR_RI
 	mtmsrd	r4, 1
 
arch/powerpc/kernel/trace/ftrace_64_mprofile.S +6 -9
index f9fd5f743eba..d636fc755f60 100644
@@ -41,15 +41,14 @@ _GLOBAL(ftrace_regs_caller)
 
 	/* Save all gprs to pt_regs */
 	SAVE_GPR(0, r1)
-	SAVE_10GPRS(2, r1)
+	SAVE_GPRS(2, 11, r1)
 
 	/* Ok to continue? */
 	lbz	r3, PACA_FTRACE_ENABLED(r13)
 	cmpdi	r3, 0
 	beq	ftrace_no_trace
 
-	SAVE_10GPRS(12, r1)
-	SAVE_10GPRS(22, r1)
+	SAVE_GPRS(12, 31, r1)
 
 	/* Save previous stack pointer (r1) */
 	addi	r8, r1, SWITCH_FRAME_SIZE
@@ -108,10 +107,8 @@ ftrace_regs_call:
 #endif
 
 	/* Restore gprs */
-	REST_GPR(0,r1)
-	REST_10GPRS(2,r1)
-	REST_10GPRS(12,r1)
-	REST_10GPRS(22,r1)
+	REST_GPR(0, r1)
+	REST_GPRS(2, 31, r1)
 
 	/* Restore possibly modified LR */
 	ld	r0, _LINK(r1)
@@ -157,7 +154,7 @@ _GLOBAL(ftrace_caller)
 	stdu	r1, -SWITCH_FRAME_SIZE(r1)
 
 	/* Save all gprs to pt_regs */
-	SAVE_8GPRS(3, r1)
+	SAVE_GPRS(3, 10, r1)
 
 	lbz	r3, PACA_FTRACE_ENABLED(r13)
 	cmpdi	r3, 0
@@ -194,7 +191,7 @@ ftrace_call:
 	mtctr	r3
 
 	/* Restore gprs */
-	REST_8GPRS(3,r1)
+	REST_GPRS(3, 10, r1)
 
 	/* Restore callee's TOC */
 	ld	r2, 24(r1)
arch/powerpc/kvm/book3s_hv_rmhandlers.S +2 -3
index 32a4b4d412b9..81fc1e0ebe9a 100644
@@ -2711,8 +2711,7 @@ kvmppc_bad_host_intr:
 	std	r0, GPR0(r1)
 	std	r9, GPR1(r1)
 	std	r2, GPR2(r1)
-	SAVE_4GPRS(3, r1)
-	SAVE_2GPRS(7, r1)
+	SAVE_GPRS(3, 8, r1)
 	srdi	r0, r12, 32
 	clrldi	r12, r12, 32
 	std	r0, _CCR(r1)
@@ -2735,7 +2734,7 @@ kvmppc_bad_host_intr:
 	ld	r9, HSTATE_SCRATCH2(r13)
 	ld	r12, HSTATE_SCRATCH0(r13)
 	GET_SCRATCH0(r0)
-	SAVE_4GPRS(9, r1)
+	SAVE_GPRS(9, 12, r1)
 	std	r0, GPR13(r1)
 	SAVE_NVGPRS(r1)
 	ld	r5, HSTATE_CFAR(r13)
arch/powerpc/kvm/book3s_hv_uvmem.c +1 -1
index 3fbe710ff839..3d4ee75b0fb7 100644
@@ -251,7 +251,7 @@ int kvmppc_uvmem_slot_init(struct kvm *kvm, const struct kvm_memory_slot *slot)
 	p = kzalloc(sizeof(*p), GFP_KERNEL);
 	if (!p)
 		return -ENOMEM;
-	p->pfns = vzalloc(array_size(slot->npages, sizeof(*p->pfns)));
+	p->pfns = vcalloc(slot->npages, sizeof(*p->pfns));
 	if (!p->pfns) {
 		kfree(p);
 		return -ENOMEM;
arch/powerpc/lib/test_emulate_step_exec_instr.S +3 -5
index 9ef941d958d8..5473f9d03df3 100644
@@ -37,7 +37,7 @@ _GLOBAL(exec_instr)
 	 * The stack pointer (GPR1) and the thread pointer (GPR13) are not
 	 * saved as these should not be modified anyway.
 	 */
-	SAVE_2GPRS(2, r1)
+	SAVE_GPRS(2, 3, r1)
 	SAVE_NVGPRS(r1)
 
 	/*
@@ -75,8 +75,7 @@ _GLOBAL(exec_instr)
 
 	/* Load GPRs from pt_regs */
 	REST_GPR(0, r31)
-	REST_10GPRS(2, r31)
-	REST_GPR(12, r31)
+	REST_GPRS(2, 12, r31)
 	REST_NVGPRS(r31)
 
 	/* Placeholder for the test instruction */
@@ -99,8 +98,7 @@ _GLOBAL(exec_instr)
 	subi	r3, r3, GPR0
 	SAVE_GPR(0, r3)
 	SAVE_GPR(2, r3)
-	SAVE_8GPRS(4, r3)
-	SAVE_GPR(12, r3)
+	SAVE_GPRS(4, 12, r3)
 	SAVE_NVGPRS(r3)
 
 	/* Save resulting LR to pt_regs */
arch/powerpc/platforms/powernv/rng.c +10 -6
index 2b5a1a41234c..236bd2ba51b9 100644
@@ -176,12 +176,8 @@ static int __init pnv_get_random_long_early(unsigned long *v)
 		    NULL) != pnv_get_random_long_early)
 		return 0;
 
-	for_each_compatible_node(dn, NULL, "ibm,power-rng") {
-		if (rng_create(dn))
-			continue;
-		/* Create devices for hwrng driver */
-		of_platform_device_create(dn, NULL, NULL);
-	}
+	for_each_compatible_node(dn, NULL, "ibm,power-rng")
+		rng_create(dn);
 
 	if (!ppc_md.get_random_seed)
 		return 0;
@@ -205,10 +201,18 @@ void __init pnv_rng_init(void)
 
 static int __init pnv_rng_late_init(void)
 {
+	struct device_node *dn;
 	unsigned long v;
+
 	/* In case it wasn't called during init for some other reason. */
 	if (ppc_md.get_random_seed == pnv_get_random_long_early)
 		pnv_get_random_long_early(&v);
+
+	if (ppc_md.get_random_seed == powernv_get_random_long) {
+		for_each_compatible_node(dn, NULL, "ibm,power-rng")
+			of_platform_device_create(dn, NULL, NULL);
+	}
+
 	return 0;
 }
 machine_subsys_initcall(powernv, pnv_rng_late_init);
arch/riscv/configs/defconfig +5 -3
index 4ebc80315f01..f2a2f9c9ed49 100644
@@ -72,9 +72,11 @@ CONFIG_GPIOLIB=y
 CONFIG_GPIO_SIFIVE=y
 # CONFIG_PTP_1588_CLOCK is not set
 CONFIG_POWER_RESET=y
-CONFIG_DRM=y
-CONFIG_DRM_RADEON=y
-CONFIG_DRM_VIRTIO_GPU=y
+CONFIG_DRM=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_VIRTIO_GPU=m
+CONFIG_FB=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
 CONFIG_USB=y
 CONFIG_USB_XHCI_HCD=y
arch/riscv/configs/rv32_defconfig +1 -0
index 434ef5b64599..cdd113e7a291 100644
@@ -71,6 +71,7 @@ CONFIG_POWER_RESET=y
 CONFIG_DRM=y
 CONFIG_DRM_RADEON=y
 CONFIG_DRM_VIRTIO_GPU=y
+CONFIG_FB=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
 CONFIG_USB=y
 CONFIG_USB_XHCI_HCD=y
arch/riscv/mm/init.c +1 -0
index 7f130ac3b9f9..c58a7c77989b 100644
@@ -265,6 +265,7 @@ pgd_t early_pg_dir[PTRS_PER_PGD] __initdata __aligned(PAGE_SIZE);
 static pmd_t __maybe_unused early_dtb_pmd[PTRS_PER_PMD] __initdata __aligned(PAGE_SIZE);
 
 #ifdef CONFIG_XIP_KERNEL
+#define riscv_pfn_base         (*(unsigned long  *)XIP_FIXUP(&riscv_pfn_base))
 #define trampoline_pg_dir      ((pgd_t *)XIP_FIXUP(trampoline_pg_dir))
 #define fixmap_pte             ((pte_t *)XIP_FIXUP(fixmap_pte))
 #define early_pg_dir           ((pgd_t *)XIP_FIXUP(early_pg_dir))
arch/s390/boot/compressed/decompressor.h +1 -0
index a59f75c5b049..f75cc31a77dd 100644
@@ -24,6 +24,7 @@ struct vmlinux_info {
 	unsigned long dynsym_start;
 	unsigned long rela_dyn_start;
 	unsigned long rela_dyn_end;
+	unsigned long amode31_size;
 };
 
 /* Symbols defined by linker scripts */
arch/s390/boot/startup.c +8 -0
index b13352dd1e1c..1aa11a8f57dd 100644
@@ -15,6 +15,7 @@
 #include "uv.h"
 
 unsigned long __bootdata_preserved(__kaslr_offset);
+unsigned long __bootdata(__amode31_base);
 unsigned long __bootdata_preserved(VMALLOC_START);
 unsigned long __bootdata_preserved(VMALLOC_END);
 struct page *__bootdata_preserved(vmemmap);
@@ -233,6 +234,12 @@ static void offset_vmlinux_info(unsigned long offset)
 	vmlinux.dynsym_start += offset;
 }
 
+static unsigned long reserve_amode31(unsigned long safe_addr)
+{
+	__amode31_base = PAGE_ALIGN(safe_addr);
+	return safe_addr + vmlinux.amode31_size;
+}
+
 void startup_kernel(void)
 {
 	unsigned long random_lma;
@@ -247,6 +254,7 @@ void startup_kernel(void)
 	setup_lpp();
 	store_ipl_parmblock();
 	safe_addr = mem_safe_offset();
+	safe_addr = reserve_amode31(safe_addr);
 	safe_addr = read_ipl_report(safe_addr);
 	uv_query_info();
 	rescue_initrd(safe_addr);
arch/s390/kernel/entry.h +1 -0
index 7f2696e8d511..6083090be1f4 100644
@@ -70,5 +70,6 @@ extern struct exception_table_entry _stop_amode31_ex_table[];
 #define __amode31_data __section(".amode31.data")
 #define __amode31_ref __section(".amode31.refs")
 extern long _start_amode31_refs[], _end_amode31_refs[];
+extern unsigned long __amode31_base;
 
 #endif /* _ENTRY_H */
arch/s390/kernel/setup.c +13 -18
index 8ede12c4ba6b..36c1f31dfd66 100644
@@ -95,10 +95,10 @@ EXPORT_SYMBOL(console_irq);
  * relocated above 2 GB, because it has to use 31 bit addresses.
  * Such code and data is part of the .amode31 section.
  */
-unsigned long __amode31_ref __samode31 = __pa(&_samode31);
-unsigned long __amode31_ref __eamode31 = __pa(&_eamode31);
-unsigned long __amode31_ref __stext_amode31 = __pa(&_stext_amode31);
-unsigned long __amode31_ref __etext_amode31 = __pa(&_etext_amode31);
+unsigned long __amode31_ref __samode31 = (unsigned long)&_samode31;
+unsigned long __amode31_ref __eamode31 = (unsigned long)&_eamode31;
+unsigned long __amode31_ref __stext_amode31 = (unsigned long)&_stext_amode31;
+unsigned long __amode31_ref __etext_amode31 = (unsigned long)&_etext_amode31;
 struct exception_table_entry __amode31_ref *__start_amode31_ex_table = _start_amode31_ex_table;
 struct exception_table_entry __amode31_ref *__stop_amode31_ex_table = _stop_amode31_ex_table;
 
@@ -149,6 +149,7 @@ struct mem_detect_info __bootdata(mem_detect);
 struct initrd_data __bootdata(initrd_data);
 
 unsigned long __bootdata_preserved(__kaslr_offset);
+unsigned long __bootdata(__amode31_base);
 unsigned int __bootdata_preserved(zlib_dfltcc_support);
 EXPORT_SYMBOL(zlib_dfltcc_support);
 u64 __bootdata_preserved(stfle_fac_list[16]);
@@ -796,12 +797,12 @@ static void __init check_initrd(void)
  */
 static void __init reserve_kernel(void)
 {
-	unsigned long start_pfn = PFN_UP(__pa(_end));
-
 	memblock_reserve(0, STARTUP_NORMAL_OFFSET);
-	memblock_reserve((unsigned long)sclp_early_sccb, EXT_SCCB_READ_SCP);
-	memblock_reserve((unsigned long)_stext, PFN_PHYS(start_pfn)
-			 - (unsigned long)_stext);
+	memblock_reserve(OLDMEM_BASE, sizeof(unsigned long));
+	memblock_reserve(OLDMEM_SIZE, sizeof(unsigned long));
+	memblock_reserve(__amode31_base, __eamode31 - __samode31);
+	memblock_reserve(__pa(sclp_early_sccb), EXT_SCCB_READ_SCP);
+	memblock_reserve(__pa(_stext), _end - _stext);
 }
 
 static void __init setup_memory(void)
@@ -820,20 +821,14 @@ static void __init setup_memory(void)
 
 static void __init relocate_amode31_section(void)
 {
-	unsigned long amode31_addr, amode31_size;
-	long amode31_offset;
+	unsigned long amode31_size = __eamode31 - __samode31;
+	long amode31_offset = __amode31_base - __samode31;
 	long *ptr;
 
-	/* Allocate a new AMODE31 capable memory region */
-	amode31_size = __eamode31 - __samode31;
 	pr_info("Relocating AMODE31 section of size 0x%08lx\n", amode31_size);
-	amode31_addr = (unsigned long)memblock_alloc_low(amode31_size, PAGE_SIZE);
-	if (!amode31_addr)
-		panic("Failed to allocate memory for AMODE31 section\n");
-	amode31_offset = amode31_addr - __samode31;
 
 	/* Move original AMODE31 section to the new one */
-	memmove((void *)amode31_addr, (void *)__samode31, amode31_size);
+	memmove((void *)__amode31_base, (void *)__samode31, amode31_size);
 	/* Zero out the old AMODE31 section to catch invalid accesses within it */
 	memset((void *)__samode31, 0, amode31_size);
 
arch/s390/kernel/vmlinux.lds.S +1 -0
index 63bdb9e1bfc1..42c43521878f 100644
@@ -212,6 +212,7 @@ SECTIONS
 		QUAD(__dynsym_start)				/* dynsym_start */
 		QUAD(__rela_dyn_start)				/* rela_dyn_start */
 		QUAD(__rela_dyn_end)				/* rela_dyn_end */
+		QUAD(_eamode31 - _samode31)			/* amode31_size */
 	} :NONE
 
 	/* Debugging sections.	*/
arch/s390/kvm/kvm-s390.c +16 -3
index 402597f9d050..b456aa196c04 100644
@@ -3913,14 +3913,12 @@ static int kvm_s390_handle_requests(struct kvm_vcpu *vcpu)
 	return 0;
 }
 
-void kvm_s390_set_tod_clock(struct kvm *kvm,
-			    const struct kvm_s390_vm_tod_clock *gtod)
+static void __kvm_s390_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod)
 {
 	struct kvm_vcpu *vcpu;
 	union tod_clock clk;
 	int i;
 
-	mutex_lock(&kvm->lock);
 	preempt_disable();
 
 	store_tod_clock_ext(&clk);
@@ -3941,7 +3939,22 @@ void kvm_s390_set_tod_clock(struct kvm *kvm,
 
 	kvm_s390_vcpu_unblock_all(kvm);
 	preempt_enable();
+}
+
+void kvm_s390_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod)
+{
+	mutex_lock(&kvm->lock);
+	__kvm_s390_set_tod_clock(kvm, gtod);
+	mutex_unlock(&kvm->lock);
+}
+
+int kvm_s390_try_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod)
+{
+	if (!mutex_trylock(&kvm->lock))
+		return 0;
+	__kvm_s390_set_tod_clock(kvm, gtod);
 	mutex_unlock(&kvm->lock);
+	return 1;
 }
 
 /**
arch/s390/kvm/kvm-s390.h +2 -2
index 1539dd981104..f8803bf0ff17 100644
@@ -326,8 +326,8 @@ int kvm_s390_handle_sigp(struct kvm_vcpu *vcpu);
 int kvm_s390_handle_sigp_pei(struct kvm_vcpu *vcpu);
 
 /* implemented in kvm-s390.c */
-void kvm_s390_set_tod_clock(struct kvm *kvm,
-			    const struct kvm_s390_vm_tod_clock *gtod);
+void kvm_s390_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod);
+int kvm_s390_try_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod);
 long kvm_arch_fault_in_page(struct kvm_vcpu *vcpu, gpa_t gpa, int writable);
 int kvm_s390_store_status_unloaded(struct kvm_vcpu *vcpu, unsigned long addr);
 int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr);
arch/s390/kvm/priv.c +14 -1
index 417154b314a6..6a765fe22eaf 100644
@@ -102,7 +102,20 @@ static int handle_set_clock(struct kvm_vcpu *vcpu)
 		return kvm_s390_inject_prog_cond(vcpu, rc);
 
 	VCPU_EVENT(vcpu, 3, "SCK: setting guest TOD to 0x%llx", gtod.tod);
-	kvm_s390_set_tod_clock(vcpu->kvm, &gtod);
+	/*
+	 * To set the TOD clock the kvm lock must be taken, but the vcpu lock
+	 * is already held in handle_set_clock. The usual lock order is the
+	 * opposite.  As SCK is deprecated and should not be used in several
+	 * cases, for example when the multiple epoch facility or TOD clock
+	 * steering facility is installed (see Principles of Operation),  a
+	 * slow path can be used.  If the lock can not be taken via try_lock,
+	 * the instruction will be retried via -EAGAIN at a later point in
+	 * time.
+	 */
+	if (!kvm_s390_try_set_tod_clock(vcpu->kvm, &gtod)) {
+		kvm_s390_retry_instr(vcpu);
+		return -EAGAIN;
+	}
 
 	kvm_s390_set_psw_cc(vcpu, 0);
 	return 0;
arch/x86/kernel/cpu/mce/core.c +5 -3
index e23e74e2f928..848cfb013f58 100644
@@ -1297,10 +1297,12 @@ static void kill_me_maybe(struct callback_head *cb)
 
 	/*
 	 * -EHWPOISON from memory_failure() means that it already sent SIGBUS
-	 * to the current process with the proper error info, so no need to
-	 * send SIGBUS here again.
+	 * to the current process with the proper error info,
+	 * -EOPNOTSUPP means hwpoison_filter() filtered the error event,
+	 *
+	 * In both cases, no further processing is required.
 	 */
-	if (ret == -EHWPOISON)
+	if (ret == -EHWPOISON || ret == -EOPNOTSUPP)
 		return;
 
 	if (p->mce_vaddr != (void __user *)-1l) {
arch/x86/kvm/mmu/page_track.c +2 -2
index 21427e84a82e..630ae70bb6bd 100644
@@ -36,8 +36,8 @@ int kvm_page_track_create_memslot(struct kvm_memory_slot *slot,
 
 	for (i = 0; i < KVM_PAGE_TRACK_MAX; i++) {
 		slot->arch.gfn_track[i] =
-			kvcalloc(npages, sizeof(*slot->arch.gfn_track[i]),
-				 GFP_KERNEL_ACCOUNT);
+			__vcalloc(npages, sizeof(*slot->arch.gfn_track[i]),
+				  GFP_KERNEL_ACCOUNT);
 		if (!slot->arch.gfn_track[i])
 			goto track_free;
 	}
arch/x86/kvm/mmu/tdp_mmu.c +2 -7
index 853780eb033b..6c2bb60ccd88 100644
@@ -1098,13 +1098,8 @@ int kvm_tdp_mmu_map(struct kvm_vcpu *vcpu, gpa_t gpa, u32 error_code,
 bool kvm_tdp_mmu_unmap_gfn_range(struct kvm *kvm, struct kvm_gfn_range *range,
 				 bool flush)
 {
-	struct kvm_mmu_page *root;
-
-	for_each_tdp_mmu_root(kvm, root, range->slot->as_id)
-		flush = zap_gfn_range(kvm, root, range->start, range->end,
-				      range->may_block, flush, false);
-
-	return flush;
+	return __kvm_tdp_mmu_zap_gfn_range(kvm, range->slot->as_id, range->start,
+					   range->end, range->may_block, flush);
 }
 
 typedef bool (*tdp_handler_t)(struct kvm *kvm, struct tdp_iter *iter,
arch/x86/kvm/x86.c +2 -2
index 39aaa21e28f7..8974884ef2ad 100644
@@ -11552,7 +11552,7 @@ static int memslot_rmap_alloc(struct kvm_memory_slot *slot,
 		if (slot->arch.rmap[i])
 			continue;
 
-		slot->arch.rmap[i] = kvcalloc(lpages, sz, GFP_KERNEL_ACCOUNT);
+		slot->arch.rmap[i] = __vcalloc(lpages, sz, GFP_KERNEL_ACCOUNT);
 		if (!slot->arch.rmap[i]) {
 			memslot_rmap_free(slot);
 			return -ENOMEM;
@@ -11633,7 +11633,7 @@ static int kvm_alloc_memslot_metadata(struct kvm *kvm,
 
 		lpages = __kvm_mmu_slot_lpages(slot, npages, level);
 
-		linfo = kvcalloc(lpages, sizeof(*linfo), GFP_KERNEL_ACCOUNT);
+		linfo = __vcalloc(lpages, sizeof(*linfo), GFP_KERNEL_ACCOUNT);
 		if (!linfo)
 			goto out_free;
 
block/bio.c +5 -6
index 8381c6690dd6..b8a8bfba714f 100644
@@ -910,7 +910,7 @@ EXPORT_SYMBOL(bio_add_pc_page);
 int bio_add_zone_append_page(struct bio *bio, struct page *page,
 			     unsigned int len, unsigned int offset)
 {
-	struct request_queue *q = bio->bi_bdev->bd_disk->queue;
+	struct request_queue *q = bdev_get_queue(bio->bi_bdev);
 	bool same_page = false;
 
 	if (WARN_ON_ONCE(bio_op(bio) != REQ_OP_ZONE_APPEND))
@@ -1054,7 +1054,7 @@ static int bio_iov_bvec_set(struct bio *bio, struct iov_iter *iter)
 
 static int bio_iov_bvec_set_append(struct bio *bio, struct iov_iter *iter)
 {
-	struct request_queue *q = bio->bi_bdev->bd_disk->queue;
+	struct request_queue *q = bdev_get_queue(bio->bi_bdev);
 	struct iov_iter i = *iter;
 
 	iov_iter_truncate(&i, queue_max_zone_append_sectors(q) << 9);
@@ -1132,7 +1132,7 @@ static int __bio_iov_append_get_pages(struct bio *bio, struct iov_iter *iter)
 {
 	unsigned short nr_pages = bio->bi_max_vecs - bio->bi_vcnt;
 	unsigned short entries_left = bio->bi_max_vecs - bio->bi_vcnt;
-	struct request_queue *q = bio->bi_bdev->bd_disk->queue;
+	struct request_queue *q = bdev_get_queue(bio->bi_bdev);
 	unsigned int max_append_sectors = queue_max_zone_append_sectors(q);
 	struct bio_vec *bv = bio->bi_io_vec + bio->bi_vcnt;
 	struct page **pages = (struct page **)bv;
@@ -1470,11 +1470,10 @@ void bio_endio(struct bio *bio)
 	if (!bio_integrity_endio(bio))
 		return;
 
-	if (bio->bi_bdev && bio_flagged(bio, BIO_TRACKED))
-		rq_qos_done_bio(bio->bi_bdev->bd_disk->queue, bio);
+	rq_qos_done_bio(bio);
 
 	if (bio->bi_bdev && bio_flagged(bio, BIO_TRACE_COMPLETION)) {
-		trace_block_bio_complete(bio->bi_bdev->bd_disk->queue, bio);
+		trace_block_bio_complete(bdev_get_queue(bio->bi_bdev), bio);
 		bio_clear_flag(bio, BIO_TRACE_COMPLETION);
 	}
 
block/blk-iolatency.c +1 -1
index ce3847499d85..d85f30a85ee7 100644
@@ -601,7 +601,7 @@ static void blkcg_iolatency_done_bio(struct rq_qos *rqos, struct bio *bio)
 	int inflight = 0;
 
 	blkg = bio->bi_blkg;
-	if (!blkg || !bio_flagged(bio, BIO_TRACKED))
+	if (!blkg || !bio_flagged(bio, BIO_QOS_THROTTLED))
 		return;
 
 	iolat = blkg_to_lat(bio->bi_blkg);
block/blk-rq-qos.h +13 -10
index f000f83e0621..68267007da1c 100644
@@ -177,21 +177,22 @@ static inline void rq_qos_requeue(struct request_queue *q, struct request *rq)
 		__rq_qos_requeue(q->rq_qos, rq);
 }
 
-static inline void rq_qos_done_bio(struct request_queue *q, struct bio *bio)
+static inline void rq_qos_done_bio(struct bio *bio)
 {
-	if (q->rq_qos)
-		__rq_qos_done_bio(q->rq_qos, bio);
+	if (bio->bi_bdev && (bio_flagged(bio, BIO_QOS_THROTTLED) ||
+			     bio_flagged(bio, BIO_QOS_MERGED))) {
+		struct request_queue *q = bdev_get_queue(bio->bi_bdev);
+		if (q->rq_qos)
+			__rq_qos_done_bio(q->rq_qos, bio);
+	}
 }
 
 static inline void rq_qos_throttle(struct request_queue *q, struct bio *bio)
 {
-	/*
-	 * BIO_TRACKED lets controllers know that a bio went through the
-	 * normal rq_qos path.
-	 */
-	bio_set_flag(bio, BIO_TRACKED);
-	if (q->rq_qos)
+	if (q->rq_qos) {
+		bio_set_flag(bio, BIO_QOS_THROTTLED);
 		__rq_qos_throttle(q->rq_qos, bio);
+	}
 }
 
 static inline void rq_qos_track(struct request_queue *q, struct request *rq,
@@ -204,8 +205,10 @@ static inline void rq_qos_track(struct request_queue *q, struct request *rq,
 static inline void rq_qos_merge(struct request_queue *q, struct request *rq,
 				struct bio *bio)
 {
-	if (q->rq_qos)
+	if (q->rq_qos) {
+		bio_set_flag(bio, BIO_QOS_MERGED);
 		__rq_qos_merge(q->rq_qos, rq, bio);
+	}
 }
 
 static inline void rq_qos_queue_depth_changed(struct request_queue *q)
drivers/base/core.c +2 -1
index 8e73a34e1005..10e027e92692 100644
@@ -485,7 +485,8 @@ static void device_link_release_fn(struct work_struct *work)
 	/* Ensure that all references to the link object have been dropped. */
 	device_link_synchronize_removal();
 
-	pm_runtime_release_supplier(link, true);
+	pm_runtime_release_supplier(link);
+	pm_request_idle(link->supplier);
 
 	put_device(link->consumer);
 	put_device(link->supplier);
drivers/base/memory.c +2 -0
index c0d501a3a714..c778d1df7455 100644
@@ -555,6 +555,8 @@ static ssize_t hard_offline_page_store(struct device *dev,
 		return -EINVAL;
 	pfn >>= PAGE_SHIFT;
 	ret = memory_failure(pfn, 0);
+	if (ret == -EOPNOTSUPP)
+		ret = 0;
 	return ret ? ret : count;
 }
 
drivers/base/power/runtime.c +9 -11
index 44ae3909e64b..3179c9265471 100644
@@ -308,13 +308,10 @@ static int rpm_get_suppliers(struct device *dev)
 /**
  * pm_runtime_release_supplier - Drop references to device link's supplier.
  * @link: Target device link.
- * @check_idle: Whether or not to check if the supplier device is idle.
  *
- * Drop all runtime PM references associated with @link to its supplier device
- * and if @check_idle is set, check if that device is idle (and so it can be
- * suspended).
+ * Drop all runtime PM references associated with @link to its supplier device.
  */
-void pm_runtime_release_supplier(struct device_link *link, bool check_idle)
+void pm_runtime_release_supplier(struct device_link *link)
 {
 	struct device *supplier = link->supplier;
 
@@ -327,9 +324,6 @@ void pm_runtime_release_supplier(struct device_link *link, bool check_idle)
 	while (refcount_dec_not_one(&link->rpm_active) &&
 	       atomic_read(&supplier->power.usage_count) > 0)
 		pm_runtime_put_noidle(supplier);
-
-	if (check_idle)
-		pm_request_idle(supplier);
 }
 
 static void __rpm_put_suppliers(struct device *dev, bool try_to_suspend)
@@ -337,8 +331,11 @@ static void __rpm_put_suppliers(struct device *dev, bool try_to_suspend)
 	struct device_link *link;
 
 	list_for_each_entry_rcu(link, &dev->links.suppliers, c_node,
-				device_links_read_lock_held())
-		pm_runtime_release_supplier(link, try_to_suspend);
+				device_links_read_lock_held()) {
+		pm_runtime_release_supplier(link);
+		if (try_to_suspend)
+			pm_request_idle(link->supplier);
+	}
 }
 
 static void rpm_put_suppliers(struct device *dev)
@@ -1791,7 +1788,8 @@ void pm_runtime_drop_link(struct device_link *link)
 		return;
 
 	pm_runtime_drop_link_count(link->consumer);
-	pm_runtime_release_supplier(link, true);
+	pm_runtime_release_supplier(link);
+	pm_request_idle(link->supplier);
 }
 
 static bool pm_runtime_need_not_resume(struct device *dev)
drivers/block/Kconfig +1 -0
index f93cb989241c..28ed157b1203 100644
@@ -410,6 +410,7 @@ config XEN_BLKDEV_BACKEND
 config VIRTIO_BLK
 	tristate "Virtio block driver"
 	depends on VIRTIO
+	select SG_POOL
 	help
 	  This is the virtual block driver for virtio.  It can be used with
           QEMU based VMMs (like KVM or Xen).  Say Y or M.
drivers/block/drbd/drbd_main.c +4 -4
index 8ba2fe356f01..d59af26d7703 100644
@@ -2795,10 +2795,12 @@ enum drbd_ret_code drbd_create_device(struct drbd_config_context *adm_ctx, unsig
 
 	if (init_submitter(device)) {
 		err = ERR_NOMEM;
-		goto out_idr_remove_vol;
+		goto out_idr_remove_from_resource;
 	}
 
-	add_disk(disk);
+	err = add_disk(disk);
+	if (err)
+		goto out_idr_remove_from_resource;
 
 	/* inherit the connection state */
 	device->state.conn = first_connection(resource)->cstate;
@@ -2812,8 +2814,6 @@ enum drbd_ret_code drbd_create_device(struct drbd_config_context *adm_ctx, unsig
 	drbd_debugfs_device_add(device);
 	return NO_ERROR;
 
-out_idr_remove_vol:
-	idr_remove(&connection->peer_devices, vnr);
 out_idr_remove_from_resource:
 	for_each_connection(connection, resource) {
 		peer_device = idr_remove(&connection->peer_devices, vnr);
drivers/block/virtio_blk.c +101 -57

222 lines not on this page · raw message

drivers/bluetooth/btmtksdio.c +2 -1
index ff1f5dfbb6db..d66e4df171d2 100644
@@ -331,6 +331,7 @@ static int btmtksdio_recv_event(struct hci_dev *hdev, struct sk_buff *skb)
 {
 	struct btmtksdio_dev *bdev = hci_get_drvdata(hdev);
 	struct hci_event_hdr *hdr = (void *)skb->data;
+	u8 evt = hdr->evt;
 	int err;
 
 	/* Fix up the vendor event id with 0xff for vendor specific instead
@@ -355,7 +356,7 @@ static int btmtksdio_recv_event(struct hci_dev *hdev, struct sk_buff *skb)
 	if (err < 0)
 		goto err_free_skb;
 
-	if (hdr->evt == HCI_EV_VENDOR) {
+	if (evt == HCI_EV_VENDOR) {
 		if (test_and_clear_bit(BTMTKSDIO_TX_WAIT_VND_EVT,
 				       &bdev->tx_state)) {
 			/* Barrier to sync with other CPUs */
drivers/bus/mhi/core/init.c +6 -3
index 4183945fc2c4..d8787aaa176b 100644
@@ -77,11 +77,14 @@ static const char * const mhi_pm_state_str[] = {
 	[MHI_PM_STATE_LD_ERR_FATAL_DETECT] = "Linkdown or Error Fatal Detect",
 };
 
-const char *to_mhi_pm_state_str(enum mhi_pm_state state)
+const char *to_mhi_pm_state_str(u32 state)
 {
-	int index = find_last_bit((unsigned long *)&state, 32);
+	int index;
 
-	if (index >= ARRAY_SIZE(mhi_pm_state_str))
+	if (state)
+		index = __fls(state);
+
+	if (!state || index >= ARRAY_SIZE(mhi_pm_state_str))
 		return "Invalid State";
 
 	return mhi_pm_state_str[index];
drivers/bus/mhi/core/internal.h +1 -1
index c02c4d48b744..71f181402be9 100644
@@ -622,7 +622,7 @@ void mhi_free_bhie_table(struct mhi_controller *mhi_cntrl,
 enum mhi_pm_state __must_check mhi_tryset_pm_state(
 					struct mhi_controller *mhi_cntrl,
 					enum mhi_pm_state state);
-const char *to_mhi_pm_state_str(enum mhi_pm_state state);
+const char *to_mhi_pm_state_str(u32 state);
 int mhi_queue_state_transition(struct mhi_controller *mhi_cntrl,
 			       enum dev_st_transition state);
 void mhi_pm_st_worker(struct work_struct *work);
drivers/clk/renesas/r9a07g044-cpg.c +2 -2
index 1490446985e2..61609eddf7d0 100644
@@ -61,8 +61,8 @@ static const struct cpg_core_clk r9a07g044_core_clks[] __initconst = {
 	DEF_FIXED(".osc", R9A07G044_OSCCLK, CLK_EXTAL, 1, 1),
 	DEF_FIXED(".osc_div1000", CLK_OSC_DIV1000, CLK_EXTAL, 1, 1000),
 	DEF_SAMPLL(".pll1", CLK_PLL1, CLK_EXTAL, PLL146_CONF(0)),
-	DEF_FIXED(".pll2", CLK_PLL2, CLK_EXTAL, 133, 2),
-	DEF_FIXED(".pll3", CLK_PLL3, CLK_EXTAL, 133, 2),
+	DEF_FIXED(".pll2", CLK_PLL2, CLK_EXTAL, 200, 3),
+	DEF_FIXED(".pll3", CLK_PLL3, CLK_EXTAL, 200, 3),
 
 	DEF_FIXED(".pll2_div2", CLK_PLL2_DIV2, CLK_PLL2, 1, 2),
 	DEF_FIXED(".pll2_div16", CLK_PLL2_DIV16, CLK_PLL2, 1, 16),
drivers/cxl/core/bus.c +4 -0
index 267d8042bec2..0987a6423ee0 100644
@@ -182,6 +182,7 @@ static void cxl_decoder_release(struct device *dev)
 
 	ida_free(&port->decoder_ida, cxld->id);
 	kfree(cxld);
+	put_device(&port->dev);
 }
 
 static const struct device_type cxl_decoder_switch_type = {
@@ -481,6 +482,9 @@ cxl_decoder_alloc(struct cxl_port *port, int nr_targets, resource_size_t base,
 	if (rc < 0)
 		goto err;
 
+	/* need parent to stick around to release the id */
+	get_device(&port->dev);
+
 	*cxld = (struct cxl_decoder) {
 		.id = rc,
 		.range = {
drivers/dma-buf/dma-buf.c +13 -6
index f9217e300eea..968c3df2810e 100644
@@ -67,12 +67,9 @@ static void dma_buf_release(struct dentry *dentry)
 	BUG_ON(dmabuf->vmapping_counter);
 
 	/*
-	 * Any fences that a dma-buf poll can wait on should be signaled
-	 * before releasing dma-buf. This is the responsibility of each
-	 * driver that uses the reservation objects.
-	 *
-	 * If you hit this BUG() it means someone dropped their ref to the
-	 * dma-buf while still having pending operation to the buffer.
+	 * If you hit this BUG() it could mean:
+	 * * There's a file reference imbalance in dma_buf_poll / dma_buf_poll_cb or somewhere else
+	 * * dmabuf->cb_in/out.active are non-0 despite no pending fence callback
 	 */
 	BUG_ON(dmabuf->cb_in.active || dmabuf->cb_out.active);
 
@@ -200,6 +197,7 @@ static loff_t dma_buf_llseek(struct file *file, loff_t offset, int whence)
 static void dma_buf_poll_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
 {
 	struct dma_buf_poll_cb_t *dcb = (struct dma_buf_poll_cb_t *)cb;
+	struct dma_buf *dmabuf = container_of(dcb->poll, struct dma_buf, poll);
 	unsigned long flags;
 
 	spin_lock_irqsave(&dcb->poll->lock, flags);
@@ -207,6 +205,8 @@ static void dma_buf_poll_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
 	dcb->active = 0;
 	spin_unlock_irqrestore(&dcb->poll->lock, flags);
 	dma_fence_put(fence);
+	/* Paired with get_file in dma_buf_poll */
+	fput(dmabuf->file);
 }
 
 static bool dma_buf_poll_shared(struct dma_resv *resv,
@@ -282,8 +282,12 @@ static __poll_t dma_buf_poll(struct file *file, poll_table *poll)
 		spin_unlock_irq(&dmabuf->poll.lock);
 
 		if (events & EPOLLOUT) {
+			/* Paired with fput in dma_buf_poll_cb */
+			get_file(dmabuf->file);
+
 			if (!dma_buf_poll_shared(resv, dcb) &&
 			    !dma_buf_poll_excl(resv, dcb))
+
 				/* No callback queued, wake up any other waiters */
 				dma_buf_poll_cb(NULL, &dcb->cb);
 			else
@@ -303,6 +307,9 @@ static __poll_t dma_buf_poll(struct file *file, poll_table *poll)
 		spin_unlock_irq(&dmabuf->poll.lock);
 
 		if (events & EPOLLIN) {
+			/* Paired with fput in dma_buf_poll_cb */
+			get_file(dmabuf->file);
+
 			if (!dma_buf_poll_excl(resv, dcb))
 				/* No callback queued, wake up any other waiters */
 				dma_buf_poll_cb(NULL, &dcb->cb);
drivers/dma/at_xdmac.c +5 -0
index 177a537971a1..c5638afe9436 100644
@@ -1898,6 +1898,11 @@ static int at_xdmac_alloc_chan_resources(struct dma_chan *chan)
 	for (i = 0; i < init_nr_desc_per_channel; i++) {
 		desc = at_xdmac_alloc_desc(chan, GFP_KERNEL);
 		if (!desc) {
+			if (i == 0) {
+				dev_warn(chan2dev(chan),
+					 "can't allocate any descriptors\n");
+				return -EIO;
+			}
 			dev_warn(chan2dev(chan),
 				"only %d descriptors have been allocated\n", i);
 			break;
drivers/dma/idxd/device.c +1 -4
index e622245c9380..11d3f2aede71 100644
@@ -720,10 +720,7 @@ static void idxd_device_wqs_clear_state(struct idxd_device *idxd)
 	for (i = 0; i < idxd->max_wqs; i++) {
 		struct idxd_wq *wq = idxd->wqs[i];
 
-		if (wq->state == IDXD_WQ_ENABLED) {
-			idxd_wq_disable_cleanup(wq);
-			wq->state = IDXD_WQ_DISABLED;
-		}
+		idxd_wq_disable_cleanup(wq);
 		idxd_wq_device_reset_cleanup(wq);
 	}
 }
drivers/dma/imx-sdma.c +1 -1
index 2300d965a3f4..5215a5e39f3c 100644
@@ -2264,7 +2264,7 @@ MODULE_DESCRIPTION("i.MX SDMA driver");
 #if IS_ENABLED(CONFIG_SOC_IMX6Q)
 MODULE_FIRMWARE("imx/sdma/sdma-imx6q.bin");
 #endif
-#if IS_ENABLED(CONFIG_SOC_IMX7D)
+#if IS_ENABLED(CONFIG_SOC_IMX7D) || IS_ENABLED(CONFIG_SOC_IMX8M)
 MODULE_FIRMWARE("imx/sdma/sdma-imx7d.bin");
 #endif
 MODULE_LICENSE("GPL");
drivers/dma/lgm/lgm-dma.c +2 -1
index efe8bd3a0e2a..9b9184f964be 100644
@@ -1593,11 +1593,12 @@ static int intel_ldma_probe(struct platform_device *pdev)
 	d->core_clk = devm_clk_get_optional(dev, NULL);
 	if (IS_ERR(d->core_clk))
 		return PTR_ERR(d->core_clk);
-	clk_prepare_enable(d->core_clk);
 
 	d->rst = devm_reset_control_get_optional(dev, NULL);
 	if (IS_ERR(d->rst))
 		return PTR_ERR(d->rst);
+
+	clk_prepare_enable(d->core_clk);
 	reset_control_deassert(d->rst);
 
 	ret = devm_add_action_or_reset(dev, ldma_clk_disable, d);
drivers/dma/pl330.c +1 -1
index 110de8a60058..4ef68ddff75b 100644
@@ -2589,7 +2589,7 @@ static struct dma_pl330_desc *pl330_get_desc(struct dma_pl330_chan *pch)
 
 	/* If the DMAC pool is empty, alloc new */
 	if (!desc) {
-		DEFINE_SPINLOCK(lock);
+		static DEFINE_SPINLOCK(lock);
 		LIST_HEAD(pool);
 
 		if (!add_desc(&pool, &lock, GFP_ATOMIC, 1))
drivers/dma/qcom/bam_dma.c +11 -28
index c8a77b428b52..ca8c862c9747 100644
@@ -515,14 +515,6 @@ static int bam_alloc_chan(struct dma_chan *chan)
 	return 0;
 }
 
-static int bam_pm_runtime_get_sync(struct device *dev)
-{
-	if (pm_runtime_enabled(dev))
-		return pm_runtime_get_sync(dev);
-
-	return 0;
-}
-
 /**
  * bam_free_chan - Frees dma resources associated with specific channel
  * @chan: specified channel
@@ -538,7 +530,7 @@ static void bam_free_chan(struct dma_chan *chan)
 	unsigned long flags;
 	int ret;
 
-	ret = bam_pm_runtime_get_sync(bdev->dev);
+	ret = pm_runtime_get_sync(bdev->dev);
 	if (ret < 0)
 		return;
 
@@ -734,7 +726,7 @@ static int bam_pause(struct dma_chan *chan)
 	unsigned long flag;
 	int ret;
 
-	ret = bam_pm_runtime_get_sync(bdev->dev);
+	ret = pm_runtime_get_sync(bdev->dev);
 	if (ret < 0)
 		return ret;
 
@@ -760,7 +752,7 @@ static int bam_resume(struct dma_chan *chan)
 	unsigned long flag;
 	int ret;
 
-	ret = bam_pm_runtime_get_sync(bdev->dev);
+	ret = pm_runtime_get_sync(bdev->dev);
 	if (ret < 0)
 		return ret;
 
@@ -869,7 +861,7 @@ static irqreturn_t bam_dma_irq(int irq, void *data)
 	if (srcs & P_IRQ)
 		tasklet_schedule(&bdev->task);
 
-	ret = bam_pm_runtime_get_sync(bdev->dev);
+	ret = pm_runtime_get_sync(bdev->dev);
 	if (ret < 0)
 		return IRQ_NONE;
 
@@ -987,7 +979,7 @@ static void bam_start_dma(struct bam_chan *bchan)
 	if (!vd)
 		return;
 
-	ret = bam_pm_runtime_get_sync(bdev->dev);
+	ret = pm_runtime_get_sync(bdev->dev);
 	if (ret < 0)
 		return;
 
@@ -1350,11 +1342,6 @@ static int bam_dma_probe(struct platform_device *pdev)
 	if (ret)
 		goto err_unregister_dma;
 
-	if (!bdev->bamclk) {
-		pm_runtime_disable(&pdev->dev);
-		return 0;
-	}
-
 	pm_runtime_irq_safe(&pdev->dev);
 	pm_runtime_set_autosuspend_delay(&pdev->dev, BAM_DMA_AUTOSUSPEND_DELAY);
 	pm_runtime_use_autosuspend(&pdev->dev);
@@ -1438,10 +1425,8 @@ static int __maybe_unused bam_dma_suspend(struct device *dev)
 {
 	struct bam_device *bdev = dev_get_drvdata(dev);
 
-	if (bdev->bamclk) {
-		pm_runtime_force_suspend(dev);
-		clk_unprepare(bdev->bamclk);
-	}
+	pm_runtime_force_suspend(dev);
+	clk_unprepare(bdev->bamclk);
 
 	return 0;
 }
@@ -1451,13 +1436,11 @@ static int __maybe_unused bam_dma_resume(struct device *dev)
 	struct bam_device *bdev = dev_get_drvdata(dev);
 	int ret;
 
-	if (bdev->bamclk) {
-		ret = clk_prepare(bdev->bamclk);
-		if (ret)
-			return ret;
+	ret = clk_prepare(bdev->bamclk);
+	if (ret)
+		return ret;
 
-		pm_runtime_force_resume(dev);
-	}
+	pm_runtime_force_resume(dev);
 
 	return 0;
 }
drivers/dma/ti/dma-crossbar.c +5 -0
index 71d24fc07c00..f744ddbbbad7 100644
@@ -245,6 +245,7 @@ static void *ti_dra7_xbar_route_allocate(struct of_phandle_args *dma_spec,
 	if (dma_spec->args[0] >= xbar->xbar_requests) {
 		dev_err(&pdev->dev, "Invalid XBAR request number: %d\n",
 			dma_spec->args[0]);
+		put_device(&pdev->dev);
 		return ERR_PTR(-EINVAL);
 	}
 
@@ -252,12 +253,14 @@ static void *ti_dra7_xbar_route_allocate(struct of_phandle_args *dma_spec,
 	dma_spec->np = of_parse_phandle(ofdma->of_node, "dma-masters", 0);
 	if (!dma_spec->np) {
 		dev_err(&pdev->dev, "Can't get DMA master\n");
+		put_device(&pdev->dev);
 		return ERR_PTR(-EINVAL);
 	}
 
 	map = kzalloc(sizeof(*map), GFP_KERNEL);
 	if (!map) {
 		of_node_put(dma_spec->np);
+		put_device(&pdev->dev);
 		return ERR_PTR(-ENOMEM);
 	}
 
@@ -268,6 +271,8 @@ static void *ti_dra7_xbar_route_allocate(struct of_phandle_args *dma_spec,
 		mutex_unlock(&xbar->mutex);
 		dev_err(&pdev->dev, "Run out of free DMA requests\n");
 		kfree(map);
+		of_node_put(dma_spec->np);
+		put_device(&pdev->dev);
 		return ERR_PTR(-ENOMEM);
 	}
 	set_bit(map->xbar_out, xbar->dma_inuse);
drivers/gpu/drm/amd/amdgpu/amdgpu.h +1 -0
index 2eebefd26fa8..5f95d03fd46a 100644
@@ -1285,6 +1285,7 @@ int amdgpu_device_gpu_recover(struct amdgpu_device *adev,
 void amdgpu_device_pci_config_reset(struct amdgpu_device *adev);
 int amdgpu_device_pci_reset(struct amdgpu_device *adev);
 bool amdgpu_device_need_post(struct amdgpu_device *adev);
+bool amdgpu_device_should_use_aspm(struct amdgpu_device *adev);
 
 void amdgpu_cs_report_moved_bytes(struct amdgpu_device *adev, u64 num_bytes,
 				  u64 num_vis_bytes);
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +25 -0
index a926b5ebbfdf..d1af709cc7dc 100644
@@ -1309,6 +1309,31 @@ bool amdgpu_device_need_post(struct amdgpu_device *adev)
 	return true;
 }
 
+/**
+ * amdgpu_device_should_use_aspm - check if the device should program ASPM
+ *
+ * @adev: amdgpu_device pointer
+ *
+ * Confirm whether the module parameter and pcie bridge agree that ASPM should
+ * be set for this device.
+ *
+ * Returns true if it should be used or false if not.
+ */
+bool amdgpu_device_should_use_aspm(struct amdgpu_device *adev)
+{
+	switch (amdgpu_aspm) {
+	case -1:
+		break;
+	case 0:
+		return false;
+	case 1:
+		return true;
+	default:
+		return false;
+	}
+	return pcie_aspm_enabled(adev->pdev);
+}
+
 /* if we get transitioned to only one device, take VGA back */
 /**
  * amdgpu_device_vga_set_decode - enable/disable vga decode
drivers/gpu/drm/amd/amdgpu/cik.c +1 -1
index f10ce740a29c..de6d10390ab2 100644
@@ -1719,7 +1719,7 @@ static void cik_program_aspm(struct amdgpu_device *adev)
 	bool disable_l0s = false, disable_l1 = false, disable_plloff_in_l1 = false;
 	bool disable_clkreq = false;
 
-	if (amdgpu_aspm == 0)
+	if (!amdgpu_device_should_use_aspm(adev))
 		return;
 
 	if (pci_is_root_bus(adev->pdev->bus))
drivers/gpu/drm/amd/amdgpu/nv.c +1 -1
index 9cbed9a8f1c0..6e277236b44f 100644
@@ -584,7 +584,7 @@ static void nv_pcie_gen3_enable(struct amdgpu_device *adev)
 
 static void nv_program_aspm(struct amdgpu_device *adev)
 {
-	if (!amdgpu_aspm)
+	if (!amdgpu_device_should_use_aspm(adev))
 		return;
 
 	if (!(adev->flags & AMD_IS_APU) &&
drivers/gpu/drm/amd/amdgpu/si.c +1 -1
index e6d2f74a7976..7f99e130acd0 100644
@@ -2453,7 +2453,7 @@ static void si_program_aspm(struct amdgpu_device *adev)
 	bool disable_l0s = false, disable_l1 = false, disable_plloff_in_l1 = false;
 	bool disable_clkreq = false;
 
-	if (amdgpu_aspm == 0)
+	if (!amdgpu_device_should_use_aspm(adev))
 		return;
 
 	if (adev->flags & AMD_IS_APU)
drivers/gpu/drm/amd/amdgpu/soc15.c +1 -1
index 6439d5c3d8d8..bdb47ae96ce6 100644
@@ -689,7 +689,7 @@ static void soc15_pcie_gen3_enable(struct amdgpu_device *adev)
 
 static void soc15_program_aspm(struct amdgpu_device *adev)
 {
-	if (!amdgpu_aspm)
+	if (!amdgpu_device_should_use_aspm(adev))
 		return;
 
 	if (!(adev->flags & AMD_IS_APU) &&
drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c +1 -1
index 6e56bef4fdf8..1310617f030f 100644
@@ -1511,7 +1511,7 @@ static int vcn_v3_0_stop_dpg_mode(struct amdgpu_device *adev, int inst_idx)
 	struct dpg_pause_state state = {.fw_based = VCN_DPG_STATE__UNPAUSE};
 	uint32_t tmp;
 
-	vcn_v3_0_pause_dpg_mode(adev, 0, &state);
+	vcn_v3_0_pause_dpg_mode(adev, inst_idx, &state);
 
 	/* Wait for power status to be 1 */
 	SOC15_WAIT_ON_RREG(VCN, inst_idx, mmUVD_POWER_STATUS, 1,
drivers/gpu/drm/amd/amdgpu/vi.c +16 -1
index 6645ebbd2696..45f0188c4273 100644
@@ -81,6 +81,10 @@
 #include "mxgpu_vi.h"
 #include "amdgpu_dm.h"
 
+#if IS_ENABLED(CONFIG_X86)
+#include <asm/intel-family.h>
+#endif
+
 #define ixPCIE_LC_L1_PM_SUBSTATE	0x100100C6
 #define PCIE_LC_L1_PM_SUBSTATE__LC_L1_SUBSTATES_OVERRIDE_EN_MASK	0x00000001L
 #define PCIE_LC_L1_PM_SUBSTATE__LC_PCI_PM_L1_2_OVERRIDE_MASK	0x00000002L
@@ -1134,13 +1138,24 @@ static void vi_enable_aspm(struct amdgpu_device *adev)
 		WREG32_PCIE(ixPCIE_LC_CNTL, data);
 }
 
+static bool aspm_support_quirk_check(void)
+{
+#if IS_ENABLED(CONFIG_X86)
+	struct cpuinfo_x86 *c = &cpu_data(0);
+
+	return !(c->x86 == 6 && c->x86_model == INTEL_FAM6_ALDERLAKE);
+#else
+	return true;
+#endif
+}
+
 static void vi_program_aspm(struct amdgpu_device *adev)
 {
 	u32 data, data1, orig;
 	bool bL1SS = false;
 	bool bClkReqSupport = true;
 
-	if (!amdgpu_aspm)
+	if (!amdgpu_device_should_use_aspm(adev) || !aspm_support_quirk_check())
 		return;
 
 	if (adev->flags & AMD_IS_APU ||
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c +1 -1
index 0294d0cc4759..735c92a5aa36 100644
@@ -1856,7 +1856,7 @@ static struct pipe_ctx *dcn30_find_split_pipe(
 	return pipe;
 }
 
-static noinline bool dcn30_internal_validate_bw(
+noinline bool dcn30_internal_validate_bw(
 		struct dc *dc,
 		struct dc_state *context,
 		display_e2e_pipe_params_st *pipes,
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.h +7 -0
index b754b89beadf..b92e4cc0232f 100644
@@ -55,6 +55,13 @@ unsigned int dcn30_calc_max_scaled_time(
 
 bool dcn30_validate_bandwidth(struct dc *dc, struct dc_state *context,
 		bool fast_validate);
+bool dcn30_internal_validate_bw(
+		struct dc *dc,
+		struct dc_state *context,
+		display_e2e_pipe_params_st *pipes,
+		int *pipe_cnt_out,
+		int *vlevel_out,
+		bool fast_validate);
 void dcn30_calculate_wm_and_dlg(
 		struct dc *dc, struct dc_state *context,
 		display_e2e_pipe_params_st *pipes,
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c +64 -1

83 lines not on this page · raw message

drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c +1 -1
index 574a9d7f7a5e..918d5c7c2328 100644
@@ -338,7 +338,7 @@ sienna_cichlid_get_allowed_feature_mask(struct smu_context *smu,
 	if (smu->dc_controlled_by_gpio)
        *(uint64_t *)feature_mask |= FEATURE_MASK(FEATURE_ACDC_BIT);
 
-	if (amdgpu_aspm)
+	if (amdgpu_device_should_use_aspm(adev))
 		*(uint64_t *)feature_mask |= FEATURE_MASK(FEATURE_DS_LCLK_BIT);
 
 	return 0;
drivers/gpu/drm/i915/gem/i915_gem_context.c +7 -0
index ee0c0b712522..ba2e037a82e4 100644
@@ -442,6 +442,13 @@ set_proto_ctx_engines_bond(struct i915_user_extension __user *base, void *data)
 	u16 idx, num_bonds;
 	int err, n;
 
+	if (GRAPHICS_VER(i915) >= 12 && !IS_TIGERLAKE(i915) &&
+	    !IS_ROCKETLAKE(i915) && !IS_ALDERLAKE_S(i915)) {
+		drm_dbg(&i915->drm,
+			"Bonding on gen12+ aside from TGL, RKL, and ADL_S not supported\n");
+		return -ENODEV;
+	}
+
 	if (get_user(idx, &ext->virtual_index))
 		return -EFAULT;
 
drivers/gpu/drm/i915/gem/i915_gem_object.c +6 -0
index 6fb9afb65034..5f48d5ea5c15 100644
@@ -224,6 +224,12 @@ void __i915_gem_free_object(struct drm_i915_gem_object *obj)
 			GEM_BUG_ON(vma->obj != obj);
 			spin_unlock(&obj->vma.lock);
 
+			/* Verify that the vma is unbound under the vm mutex. */
+			mutex_lock(&vma->vm->mutex);
+			atomic_and(~I915_VMA_PIN_MASK, &vma->flags);
+			__i915_vma_unbind(vma);
+			mutex_unlock(&vma->vm->mutex);
+
 			__i915_vma_put(vma);
 
 			spin_lock(&obj->vma.lock);
drivers/gpu/drm/i915/gt/intel_context_types.h +8 -0
index e54351a170e2..a63631ea0ec4 100644
@@ -152,6 +152,14 @@ struct intel_context {
 	/** sseu: Control eu/slice partitioning */
 	struct intel_sseu sseu;
 
+	/**
+	 * pinned_contexts_link: List link for the engine's pinned contexts.
+	 * This is only used if this is a perma-pinned kernel context and
+	 * the list is assumed to only be manipulated during driver load
+	 * or unload time so no mutex protection currently.
+	 */
+	struct list_head pinned_contexts_link;
+
 	u8 wa_bb_page; /* if set, page num reserved for context workarounds */
 
 	struct {
drivers/gpu/drm/i915/gt/intel_engine_cs.c +4 -0
index 0d9105a31d84..eb99441e0ada 100644
@@ -320,6 +320,7 @@ static int intel_engine_setup(struct intel_gt *gt, enum intel_engine_id id)
 
 	BUILD_BUG_ON(BITS_PER_TYPE(engine->mask) < I915_NUM_ENGINES);
 
+	INIT_LIST_HEAD(&engine->pinned_contexts_list);
 	engine->id = id;
 	engine->legacy_idx = INVALID_ENGINE;
 	engine->mask = BIT(id);
@@ -875,6 +876,8 @@ intel_engine_create_pinned_context(struct intel_engine_cs *engine,
 		return ERR_PTR(err);
 	}
 
+	list_add_tail(&ce->pinned_contexts_link, &engine->pinned_contexts_list);
+
 	/*
 	 * Give our perma-pinned kernel timelines a separate lockdep class,
 	 * so that we can use them from within the normal user timelines
@@ -897,6 +900,7 @@ void intel_engine_destroy_pinned_context(struct intel_context *ce)
 	list_del(&ce->timeline->engine_link);
 	mutex_unlock(&hwsp->vm->mutex);
 
+	list_del(&ce->pinned_contexts_link);
 	intel_context_unpin(ce);
 	intel_context_put(ce);
 }
drivers/gpu/drm/i915/gt/intel_engine_pm.c +23 -0
index 1f07ac4e0672..dacd62773735 100644
@@ -298,6 +298,29 @@ void intel_engine_init__pm(struct intel_engine_cs *engine)
 	intel_engine_init_heartbeat(engine);
 }
 
+/**
+ * intel_engine_reset_pinned_contexts - Reset the pinned contexts of
+ * an engine.
+ * @engine: The engine whose pinned contexts we want to reset.
+ *
+ * Typically the pinned context LMEM images lose or get their content
+ * corrupted on suspend. This function resets their images.
+ */
+void intel_engine_reset_pinned_contexts(struct intel_engine_cs *engine)
+{
+	struct intel_context *ce;
+
+	list_for_each_entry(ce, &engine->pinned_contexts_list,
+			    pinned_contexts_link) {
+		/* kernel context gets reset at __engine_unpark() */
+		if (ce == engine->kernel_context)
+			continue;
+
+		dbg_poison_ce(ce);
+		ce->ops->reset(ce);
+	}
+}
+
 #if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)
 #include "selftest_engine_pm.c"
 #endif
drivers/gpu/drm/i915/gt/intel_engine_pm.h +2 -0
index 70ea46d6cfb0..8520c595f5e1 100644
@@ -69,4 +69,6 @@ intel_engine_create_kernel_request(struct intel_engine_cs *engine)
 
 void intel_engine_init__pm(struct intel_engine_cs *engine);
 
+void intel_engine_reset_pinned_contexts(struct intel_engine_cs *engine);
+
 #endif /* INTEL_ENGINE_PM_H */
drivers/gpu/drm/i915/gt/intel_engine_types.h +7 -0
index ed91bcff20eb..adc44c9fac6d 100644
@@ -304,6 +304,13 @@ struct intel_engine_cs {
 
 	struct intel_context *kernel_context; /* pinned */
 
+	/**
+	 * pinned_contexts_list: List of pinned contexts. This list is only
+	 * assumed to be manipulated during driver load- or unload time and
+	 * does therefore not have any additional protection.
+	 */
+	struct list_head pinned_contexts_list;
+
 	intel_engine_mask_t saturated; /* submitting semaphores too late? */
 
 	struct {
drivers/gpu/drm/i915/gt/intel_execlists_submission.c +2 -0
index cafb0608ffb4..416f5e0657f0 100644
@@ -2787,6 +2787,8 @@ static void execlists_sanitize(struct intel_engine_cs *engine)
 
 	/* And scrub the dirty cachelines for the HWSP */
 	clflush_cache_range(engine->status_page.addr, PAGE_SIZE);
+
+	intel_engine_reset_pinned_contexts(engine);
 }
 
 static void enable_error_interrupt(struct intel_engine_cs *engine)
drivers/gpu/drm/i915/gt/intel_ring_submission.c +4 -1
index 2958e2fae380..02e18e70c78e 100644
@@ -17,6 +17,7 @@
 #include "intel_ring.h"
 #include "shmem_utils.h"
 #include "intel_engine_heartbeat.h"
+#include "intel_engine_pm.h"
 
 /* Rough estimate of the typical request size, performing a flush,
  * set-context and then emitting the batch.
@@ -291,7 +292,9 @@ static void xcs_sanitize(struct intel_engine_cs *engine)
 	sanitize_hwsp(engine);
 
 	/* And scrub the dirty cachelines for the HWSP */
-	clflush_cache_range(engine->status_page.addr, PAGE_SIZE);
+	drm_clflush_virt_range(engine->status_page.addr, PAGE_SIZE);
+
+	intel_engine_reset_pinned_contexts(engine);
 }
 
 static void reset_prepare(struct intel_engine_cs *engine)
drivers/gpu/drm/i915/gt/mock_engine.c +2 -0
index 2c1af030310c..8b89215afe46 100644
@@ -376,6 +376,8 @@ int mock_engine_init(struct intel_engine_cs *engine)
 {
 	struct intel_context *ce;
 
+	INIT_LIST_HEAD(&engine->pinned_contexts_list);
+
 	engine->sched_engine = i915_sched_engine_create(ENGINE_MOCK);
 	if (!engine->sched_engine)
 		return -ENOMEM;
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c +9 -3
index 93c9de8f43e8..6e09a1cca37b 100644
@@ -2347,6 +2347,8 @@ static void guc_sanitize(struct intel_engine_cs *engine)
 
 	/* And scrub the dirty cachelines for the HWSP */
 	clflush_cache_range(engine->status_page.addr, PAGE_SIZE);
+
+	intel_engine_reset_pinned_contexts(engine);
 }
 
 static void setup_hwsp(struct intel_engine_cs *engine)
@@ -2422,9 +2424,13 @@ static inline void guc_init_lrc_mapping(struct intel_guc *guc)
 	 * and even it did this code would be run again.
 	 */
 
-	for_each_engine(engine, gt, id)
-		if (engine->kernel_context)
-			guc_kernel_context_pin(guc, engine->kernel_context);
+	for_each_engine(engine, gt, id) {
+		struct intel_context *ce;
+
+		list_for_each_entry(ce, &engine->pinned_contexts_list,
+				    pinned_contexts_link)
+			guc_kernel_context_pin(guc, ce);
+	}
 }
 
 static void guc_release(struct intel_engine_cs *engine)
drivers/gpu/drm/mediatek/mtk_disp_drv.h +10 -6
index 86c3068894b1..974462831133 100644
@@ -76,9 +76,11 @@ void mtk_ovl_layer_off(struct device *dev, unsigned int idx,
 void mtk_ovl_start(struct device *dev);
 void mtk_ovl_stop(struct device *dev);
 unsigned int mtk_ovl_supported_rotations(struct device *dev);
-void mtk_ovl_enable_vblank(struct device *dev,
-			   void (*vblank_cb)(void *),
-			   void *vblank_cb_data);
+void mtk_ovl_register_vblank_cb(struct device *dev,
+				void (*vblank_cb)(void *),
+				void *vblank_cb_data);
+void mtk_ovl_unregister_vblank_cb(struct device *dev);
+void mtk_ovl_enable_vblank(struct device *dev);
 void mtk_ovl_disable_vblank(struct device *dev);
 
 void mtk_rdma_bypass_shadow(struct device *dev);
@@ -93,9 +95,11 @@ void mtk_rdma_layer_config(struct device *dev, unsigned int idx,
 			   struct cmdq_pkt *cmdq_pkt);
 void mtk_rdma_start(struct device *dev);
 void mtk_rdma_stop(struct device *dev);
-void mtk_rdma_enable_vblank(struct device *dev,
-			    void (*vblank_cb)(void *),
-			    void *vblank_cb_data);
+void mtk_rdma_register_vblank_cb(struct device *dev,
+				 void (*vblank_cb)(void *),
+				 void *vblank_cb_data);
+void mtk_rdma_unregister_vblank_cb(struct device *dev);
+void mtk_rdma_enable_vblank(struct device *dev);
 void mtk_rdma_disable_vblank(struct device *dev);
 
 #endif
drivers/gpu/drm/mediatek/mtk_disp_ovl.c +17 -5
index 5326989d5206..411cf0f21661 100644
@@ -96,14 +96,28 @@ static irqreturn_t mtk_disp_ovl_irq_handler(int irq, void *dev_id)
 	return IRQ_HANDLED;
 }
 
-void mtk_ovl_enable_vblank(struct device *dev,
-			   void (*vblank_cb)(void *),
-			   void *vblank_cb_data)
+void mtk_ovl_register_vblank_cb(struct device *dev,
+				void (*vblank_cb)(void *),
+				void *vblank_cb_data)
 {
 	struct mtk_disp_ovl *ovl = dev_get_drvdata(dev);
 
 	ovl->vblank_cb = vblank_cb;
 	ovl->vblank_cb_data = vblank_cb_data;
+}
+
+void mtk_ovl_unregister_vblank_cb(struct device *dev)
+{
+	struct mtk_disp_ovl *ovl = dev_get_drvdata(dev);
+
+	ovl->vblank_cb = NULL;
+	ovl->vblank_cb_data = NULL;
+}
+
+void mtk_ovl_enable_vblank(struct device *dev)
+{
+	struct mtk_disp_ovl *ovl = dev_get_drvdata(dev);
+
 	writel(0x0, ovl->regs + DISP_REG_OVL_INTSTA);
 	writel_relaxed(OVL_FME_CPL_INT, ovl->regs + DISP_REG_OVL_INTEN);
 }
@@ -112,8 +126,6 @@ void mtk_ovl_disable_vblank(struct device *dev)
 {
 	struct mtk_disp_ovl *ovl = dev_get_drvdata(dev);
 
-	ovl->vblank_cb = NULL;
-	ovl->vblank_cb_data = NULL;
 	writel_relaxed(0x0, ovl->regs + DISP_REG_OVL_INTEN);
 }
 
drivers/gpu/drm/mediatek/mtk_disp_rdma.c +14 -6
index 75d7f45579e2..a6a6cb5f75af 100644
@@ -94,24 +94,32 @@ static void rdma_update_bits(struct device *dev, unsigned int reg,
 	writel(tmp, rdma->regs + reg);
 }
 
-void mtk_rdma_enable_vblank(struct device *dev,
-			    void (*vblank_cb)(void *),
-			    void *vblank_cb_data)
+void mtk_rdma_register_vblank_cb(struct device *dev,
+				 void (*vblank_cb)(void *),
+				 void *vblank_cb_data)
 {
 	struct mtk_disp_rdma *rdma = dev_get_drvdata(dev);
 
 	rdma->vblank_cb = vblank_cb;
 	rdma->vblank_cb_data = vblank_cb_data;
-	rdma_update_bits(dev, DISP_REG_RDMA_INT_ENABLE, RDMA_FRAME_END_INT,
-			 RDMA_FRAME_END_INT);
 }
 
-void mtk_rdma_disable_vblank(struct device *dev)
+void mtk_rdma_unregister_vblank_cb(struct device *dev)
 {
 	struct mtk_disp_rdma *rdma = dev_get_drvdata(dev);
 
 	rdma->vblank_cb = NULL;
 	rdma->vblank_cb_data = NULL;
+}
+
+void mtk_rdma_enable_vblank(struct device *dev)
+{
+	rdma_update_bits(dev, DISP_REG_RDMA_INT_ENABLE, RDMA_FRAME_END_INT,
+			 RDMA_FRAME_END_INT);
+}
+
+void mtk_rdma_disable_vblank(struct device *dev)
+{
 	rdma_update_bits(dev, DISP_REG_RDMA_INT_ENABLE, RDMA_FRAME_END_INT, 0);
 }
 
drivers/gpu/drm/mediatek/mtk_drm_crtc.c +113 -20

217 lines not on this page · raw message

drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c +4 -0
index 99cbf44463e4..22d23668b484 100644
@@ -276,6 +276,8 @@ static const struct mtk_ddp_comp_funcs ddp_ovl = {
 	.config = mtk_ovl_config,
 	.start = mtk_ovl_start,
 	.stop = mtk_ovl_stop,
+	.register_vblank_cb = mtk_ovl_register_vblank_cb,
+	.unregister_vblank_cb = mtk_ovl_unregister_vblank_cb,
 	.enable_vblank = mtk_ovl_enable_vblank,
 	.disable_vblank = mtk_ovl_disable_vblank,
 	.supported_rotations = mtk_ovl_supported_rotations,
@@ -292,6 +294,8 @@ static const struct mtk_ddp_comp_funcs ddp_rdma = {
 	.config = mtk_rdma_config,
 	.start = mtk_rdma_start,
 	.stop = mtk_rdma_stop,
+	.register_vblank_cb = mtk_rdma_register_vblank_cb,
+	.unregister_vblank_cb = mtk_rdma_unregister_vblank_cb,
 	.enable_vblank = mtk_rdma_enable_vblank,
 	.disable_vblank = mtk_rdma_disable_vblank,
 	.layer_nr = mtk_rdma_layer_nr,
drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h +22 -7
index bb914d976cf5..25cb50f2391f 100644
@@ -47,9 +47,11 @@ struct mtk_ddp_comp_funcs {
 		       unsigned int bpc, struct cmdq_pkt *cmdq_pkt);
 	void (*start)(struct device *dev);
 	void (*stop)(struct device *dev);
-	void (*enable_vblank)(struct device *dev,
-			      void (*vblank_cb)(void *),
-			      void *vblank_cb_data);
+	void (*register_vblank_cb)(struct device *dev,
+				   void (*vblank_cb)(void *),
+				   void *vblank_cb_data);
+	void (*unregister_vblank_cb)(struct device *dev);
+	void (*enable_vblank)(struct device *dev);
 	void (*disable_vblank)(struct device *dev);
 	unsigned int (*supported_rotations)(struct device *dev);
 	unsigned int (*layer_nr)(struct device *dev);
@@ -110,12 +112,25 @@ static inline void mtk_ddp_comp_stop(struct mtk_ddp_comp *comp)
 		comp->funcs->stop(comp->dev);
 }
 
-static inline void mtk_ddp_comp_enable_vblank(struct mtk_ddp_comp *comp,
-					      void (*vblank_cb)(void *),
-					      void *vblank_cb_data)
+static inline void mtk_ddp_comp_register_vblank_cb(struct mtk_ddp_comp *comp,
+						   void (*vblank_cb)(void *),
+						   void *vblank_cb_data)
+{
+	if (comp->funcs && comp->funcs->register_vblank_cb)
+		comp->funcs->register_vblank_cb(comp->dev, vblank_cb,
+						vblank_cb_data);
+}
+
+static inline void mtk_ddp_comp_unregister_vblank_cb(struct mtk_ddp_comp *comp)
+{
+	if (comp->funcs && comp->funcs->unregister_vblank_cb)
+		comp->funcs->unregister_vblank_cb(comp->dev);
+}
+
+static inline void mtk_ddp_comp_enable_vblank(struct mtk_ddp_comp *comp)
 {
 	if (comp->funcs && comp->funcs->enable_vblank)
-		comp->funcs->enable_vblank(comp->dev, vblank_cb, vblank_cb_data);
+		comp->funcs->enable_vblank(comp->dev);
 }
 
 static inline void mtk_ddp_comp_disable_vblank(struct mtk_ddp_comp *comp)
drivers/i2c/busses/i2c-cadence.c +1 -0
index b4c1ad19cdae..3d6f8ee355bf 100644
@@ -1338,6 +1338,7 @@ static int cdns_i2c_probe(struct platform_device *pdev)
 	return 0;
 
 err_clk_dis:
+	clk_notifier_unregister(id->clk, &id->clk_rate_change_nb);
 	clk_disable_unprepare(id->clk);
 	pm_runtime_disable(&pdev->dev);
 	pm_runtime_set_suspended(&pdev->dev);
drivers/i2c/busses/i2c-piix4.c +7 -9
index ac8e7d60672a..39cb1b7bb865 100644
@@ -161,7 +161,6 @@ static const char *piix4_aux_port_name_sb800 = " port 1";
 
 struct sb800_mmio_cfg {
 	void __iomem *addr;
-	struct resource *res;
 	bool use_mmio;
 };
 
@@ -179,13 +178,11 @@ static int piix4_sb800_region_request(struct device *dev,
 				      struct sb800_mmio_cfg *mmio_cfg)
 {
 	if (mmio_cfg->use_mmio) {
-		struct resource *res;
 		void __iomem *addr;
 
-		res = request_mem_region_muxed(SB800_PIIX4_FCH_PM_ADDR,
-					       SB800_PIIX4_FCH_PM_SIZE,
-					       "sb800_piix4_smb");
-		if (!res) {
+		if (!request_mem_region_muxed(SB800_PIIX4_FCH_PM_ADDR,
+					      SB800_PIIX4_FCH_PM_SIZE,
+					      "sb800_piix4_smb")) {
 			dev_err(dev,
 				"SMBus base address memory region 0x%x already in use.\n",
 				SB800_PIIX4_FCH_PM_ADDR);
@@ -195,12 +192,12 @@ static int piix4_sb800_region_request(struct device *dev,
 		addr = ioremap(SB800_PIIX4_FCH_PM_ADDR,
 			       SB800_PIIX4_FCH_PM_SIZE);
 		if (!addr) {
-			release_resource(res);
+			release_mem_region(SB800_PIIX4_FCH_PM_ADDR,
+					   SB800_PIIX4_FCH_PM_SIZE);
 			dev_err(dev, "SMBus base address mapping failed.\n");
 			return -ENOMEM;
 		}
 
-		mmio_cfg->res = res;
 		mmio_cfg->addr = addr;
 
 		return 0;
@@ -222,7 +219,8 @@ static void piix4_sb800_region_release(struct device *dev,
 {
 	if (mmio_cfg->use_mmio) {
 		iounmap(mmio_cfg->addr);
-		release_resource(mmio_cfg->res);
+		release_mem_region(SB800_PIIX4_FCH_PM_ADDR,
+				   SB800_PIIX4_FCH_PM_SIZE);
 		return;
 	}
 
drivers/iio/accel/mma8452.c +2 -2
index 373b59557afe..1f46a73aafea 100644
@@ -380,8 +380,8 @@ static ssize_t mma8452_show_scale_avail(struct device *dev,
 					struct device_attribute *attr,
 					char *buf)
 {
-	struct mma8452_data *data = iio_priv(i2c_get_clientdata(
-					     to_i2c_client(dev)));
+	struct iio_dev *indio_dev = dev_to_iio_dev(dev);
+	struct mma8452_data *data = iio_priv(indio_dev);
 
 	return mma8452_show_int_plus_micros(buf, data->chip_info->mma_scales,
 		ARRAY_SIZE(data->chip_info->mma_scales));
drivers/input/misc/cpcap-pwrbutton.c +5 -1
index 0abef63217e2..372cb44d0635 100644
@@ -54,9 +54,13 @@ static irqreturn_t powerbutton_irq(int irq, void *_button)
 static int cpcap_power_button_probe(struct platform_device *pdev)
 {
 	struct cpcap_power_button *button;
-	int irq = platform_get_irq(pdev, 0);
+	int irq;
 	int err;
 
+	irq = platform_get_irq(pdev, 0);
+	if (irq < 0)
+		return irq;
+
 	button = devm_kmalloc(&pdev->dev, sizeof(*button), GFP_KERNEL);
 	if (!button)
 		return -ENOMEM;
drivers/input/touchscreen/goodix.c +62 -88

159 lines not on this page · raw message

drivers/input/touchscreen/goodix.h new file +75 -0

75 lines not on this page · raw message

drivers/iommu/intel/dmar.c +1 -1
index b7708b93f3fa..3d9cb711e87b 100644

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

drivers/irqchip/irq-gic-v3.c +34 -8

42 lines not on this page · raw message

drivers/media/platform/davinci/vpif.c +71 -26

97 lines not on this page · raw message

drivers/media/platform/omap3isp/ispstat.c +3 -2
index 5b9b57f4d9bf..68cf68dbcace 100644

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

drivers/media/rc/ir_toy.c +1 -1
index 7f394277478b..53ae19fa103a 100644

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

drivers/memory/renesas-rpc-if.c +46 -2

48 lines not on this page · raw message

drivers/misc/cardreader/rtsx_usb.c +19 -8
index 1ef9b61077c4..f150d8769f19 100644

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

drivers/mtd/spi-nor/core.c +2 -1
index 90f39aabc1ff..d97cdbc2b9de 100644

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

drivers/net/can/grcan.c +0 -1
index daee3652ac8b..e098f594a749 100644

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

drivers/net/can/m_can/m_can.c +5 -3
index bff33a619acd..c4596fbe6d2f 100644

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

drivers/net/can/spi/mcp251xfd/mcp251xfd-regmap.c +11 -11
index 297491516a26..bb559663a3fa 100644

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

drivers/net/can/usb/gs_usb.c +21 -2
index d68d698f2606..e26b3d6f5b48 100644

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

drivers/net/can/usb/kvaser_usb/kvaser_usb.h +15 -10
index 390b6bde883c..61e67986b625 100644

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

drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c +159 -127

286 lines not on this page · raw message

drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c +2 -2
index dcee8dc828ec..fce3f069cdbc 100644

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

drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c +68 -51

119 lines not on this page · raw message

drivers/net/dsa/qca8k.c +21 -2
index a984f06f6f04..67869c8cbeaa 100644

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

drivers/net/ethernet/ibm/ibmvnic.c +132 -15

147 lines not on this page · raw message

drivers/net/ethernet/ibm/ibmvnic.h +1 -0
index 1a9ed9202654..b01c439965ff 100644

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

drivers/net/ethernet/intel/i40e/i40e.h +16 -0
index 56a3a6d1dbe4..210f09118ede 100644

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

drivers/net/ethernet/intel/i40e/i40e_main.c +73 -0

73 lines not on this page · raw message

drivers/net/ethernet/intel/i40e/i40e_register.h +13 -0
index 1908eed4fa5e..7339003aa17c 100644

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

drivers/net/ethernet/intel/i40e/i40e_type.h +1 -0
index 36a4ca1ffb1a..7b3f30beb757 100644

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

drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +4 -0
index 6c1e668f4ebf..d78ac5e7f658 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +56 -32

88 lines not on this page · raw message

drivers/net/ethernet/qlogic/qed/qed_l2.c +3 -20
index dfaf10edfabf..ba8c7a31cce1 100644

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

drivers/net/ethernet/qlogic/qede/qede_filter.c +19 -28

47 lines not on this page · raw message

drivers/net/ethernet/realtek/r8169_main.c +4 -6
index 2918947dd57c..2af4c76bcf02 100644

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

drivers/net/usb/usbnet.c +12 -5
index a0ea236ac60e..71bb0849ce48 100644

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

drivers/net/wireless/ath/ath11k/core.c +5 -0
index 7dcf6b13f794..48b4151e13a3 100644

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

drivers/net/wireless/ath/ath11k/hw.h +1 -0
index 62f5978b3005..4fe051625edf 100644

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

drivers/net/wireless/ath/ath11k/pci.c +8 -4
index 353a2d669fcd..7d0be9388f89 100644

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

drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c +0 -3
index af43bcb54578..306e9eaea917 100644

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

drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h +1 -1
index 77d4435e4581..72a70a7046fb 100644

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

drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c +22 -9
index 8d5e261cd10f..cfcf7964c688 100644

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

drivers/net/wireless/mediatek/mt76/mt7921/mac.c +0 -28
index bef8d4a76ed9..426e7a32bdc8 100644

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

drivers/net/wireless/mediatek/mt76/mt7921/main.c +2 -31
index 30252f408ddc..13a7ae3d8351 100644

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

drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +26 -21

47 lines not on this page · raw message

drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +3 -8
index 2d8bd6bfc820..32d4f2cab94e 100644

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

drivers/pci/hotplug/pciehp.h +2 -0
index 10d7e7e1b553..e0a614acee05 100644

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

drivers/pci/hotplug/pciehp_core.c +2 -0
index e7fe4b42f039..4042d87d539d 100644

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

drivers/pci/hotplug/pciehp_hpc.c +26 -0
index 8bedbc77fe95..60098a701e83 100644

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

drivers/pci/pcie/portdrv.h +3 -0
index 2ff5724b8f13..41fe1ffd5907 100644

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

drivers/pci/pcie/portdrv_core.c +10 -10
index 3ee63968deaa..604feeb84ee4 100644

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

drivers/pci/pcie/portdrv_pci.c +3 -0
index c7ff1eea225a..1af74c3d9d5d 100644

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

drivers/pinctrl/sunxi/pinctrl-sun8i-a83t.c +5 -5
index 4ada80317a3b..b5c1a8f363f3 100644

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

drivers/pinctrl/sunxi/pinctrl-sunxi.c +2 -0
index ce3f9ea41511..1431ab21aca6 100644

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

drivers/platform/x86/wmi.c +22 -17
index 1b65bb61ce88..c4f917d45b51 100644

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

drivers/scsi/qla2xxx/qla_def.h +3 -2
index 2ea35e47ea44..303ad60d1d49 100644

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

drivers/scsi/qla2xxx/qla_edif.c +9 -30
index a00fe88c6021..e40b9cc38214 100644

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

drivers/scsi/qla2xxx/qla_edif.h +0 -1
index 45cf87e33778..32800bfb32a3 100644

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

drivers/scsi/qla2xxx/qla_init.c +2 -0
index af8df5a800c6..c3ba2995209b 100644

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

drivers/scsi/qla2xxx/qla_nvme.c +19 -8
index 42b29f4fd937..1bf3ab10846a 100644

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

drivers/scsi/qla2xxx/qla_os.c +56 -46

102 lines not on this page · raw message

drivers/soc/atmel/soc.c +6 -6
index a490ad7e090f..9e3d37011447 100644

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

drivers/tty/n_gsm.c +219 -44

263 lines not on this page · raw message

drivers/vdpa/mlx5/net/mlx5_vnet.c +5 -2
index 174895372e7f..467a349dc26c 100644

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

drivers/video/fbdev/core/fbcon.c +33 -0
index a25b63b56223..bb83e7c53ae0 100644

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

drivers/video/fbdev/core/fbmem.c +14 -2
index 0371ad233fdf..6d7868cc1fca 100644

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

fs/btrfs/block-group.c +94 -58

152 lines not on this page · raw message

fs/btrfs/block-group.h +2 -0
index c72a71efcb18..37e55ebde735 100644

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

fs/btrfs/ctree.c +9 -8
index 899f85445925..341ce90d24b1 100644

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

fs/btrfs/ctree.h +7 -1
index 21c44846b002..d1838de0b39c 100644

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

fs/btrfs/delayed-ref.h +3 -2
index e22fba272e4f..31266ba1d430 100644

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

fs/btrfs/dev-replace.c +7 -9
index bdbc310a8f8c..781556e2a37f 100644

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

fs/btrfs/disk-io.c +1 -0
index 233d894f6feb..909d19656316 100644

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

fs/btrfs/extent-tree.c +17 -11
index 514adc83577f..f11616f61dd6 100644

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

fs/btrfs/extent_io.c +2 -6
index 6dd375ed6e3d..059bd0753e27 100644

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

fs/btrfs/file.c +8 -5
index a06c8366a8f4..1c597cd6c024 100644

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

fs/btrfs/free-space-tree.c +2 -2
index a33bca94d133..3abec44c6255 100644

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

fs/btrfs/inode.c +2 -1
index 044d584c3467..d644dcaf3004 100644

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

fs/btrfs/ioctl.c +55 -41

96 lines not on this page · raw message

fs/btrfs/qgroup.c +2 -1
index 2c803108ea94..4ca809fa80ea 100644

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

fs/btrfs/relocation.c +18 -7
index a6661f2ad2c0..429a198f8937 100644

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

fs/btrfs/scrub.c +4 -2
index 62f4bafbe54b..6f2787b21530 100644

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

fs/btrfs/tree-log.c +1 -1
index 1221d8483d63..bed6811476b0 100644

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

fs/btrfs/volumes.c +187 -123

310 lines not on this page · raw message

fs/btrfs/volumes.h +24 -4
index 4db10d071d67..30288b728bbb 100644

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

fs/btrfs/zoned.c +1 -1
index 596b2148807d..3bc2f92cd197 100644

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

fs/btrfs/zoned.h +17 -0
index 813aa3cddc11..3a826f7c2040 100644

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

fs/gfs2/file.c +1 -0
index 60390f9dc31f..e93185d804e0 100644

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

fs/io_uring.c +8 -2
index 189323740324..9bff14c5e2b2 100644

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

fs/nfsd/nfs3proc.c +0 -6
index b540489ea240..936eebd4c56d 100644

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

fs/nfsd/vfs.c +41 -23

64 lines not on this page · raw message

fs/nfsd/vfs.h +2 -2
index b21b76e6b9a8..3cf5a8a13da5 100644

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

fs/seq_file.c +32 -0
index 4a2cda04d3e2..b17ee4c4f618 100644

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

fs/xfs/xfs_inode.c +0 -1
index 2477e301fa82..c19f3ca605af 100644

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

include/linux/blk_types.h +2 -1
index 17c92c0f15b2..36ce3d0fb9f3 100644

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

include/linux/bpf.h +6 -0
index bb766a0b9b51..818cd594e922 100644

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

include/linux/compiler-gcc.h +8 -0
index bd2b881c6b63..b9d5f9c373a0 100644

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

include/linux/compiler_attributes.h +10 -0
index e6ec63403965..3de06a8fae73 100644

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

include/linux/compiler_types.h +12 -0
index b6ff83a714ca..4f2203c4a257 100644

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

include/linux/fbcon.h +4 -0
index ff5596dd30f8..2382dec6d6ab 100644

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

include/linux/hugetlb.h +6 -0
index 1faebe1cd0ed..22c1d935e22d 100644

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

include/linux/list.h +10 -0
index a119dd1990d4..d206ae93c06d 100644

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

include/linux/memregion.h +1 -1
index e11595256cac..c04c4fd2e209 100644

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

include/linux/mm.h +8 -0
index 85205adcdd0d..e4e1817bb3b8 100644

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

include/linux/pm_runtime.h +2 -3
index 016de5776b6d..90eaff8b78fc 100644

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

include/linux/qed/qed_eth_if.h +8 -13
index 812a4d751163..4df0bf0a0864 100644

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

include/linux/rtsx_usb.h +0 -2
index 159729cffd8e..3247ed8e9ff0 100644

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

include/linux/seq_file.h +4 -0
index 5733890df64f..0b429111f85e 100644

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

include/linux/stddef.h +61 -0

61 lines not on this page · raw message

include/linux/vmalloc.h +5 -0
index 4fe9e885bbfa..5535be1012a2 100644

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

include/net/netfilter/nf_tables.h +8 -2
index 2af1c2c64128..bcfee89012a1 100644

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

include/net/netfilter/nf_tables_ipv4.h +4 -3
index eb4c094cd54d..c4a6147b0ef8 100644

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

include/net/netfilter/nf_tables_ipv6.h +3 -3
index 7595e02b00ba..ec7eaeaf4f04 100644

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

include/uapi/linux/netfilter/nf_tables.h +2 -0
index e94d1fa554cb..07871c8a0601 100644

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

include/uapi/linux/omap3isp.h +13 -8
index 87b55755f4ff..d9db7ad43890 100644

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

include/uapi/linux/stddef.h +41 -0

41 lines not on this page · raw message

include/video/of_display_timing.h +2 -0
index e1126a74882a..eff166fdd81b 100644

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

kernel/bpf/core.c +7 -0
index 48eb9c329da6..15946c11524e 100644

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

kernel/bpf/verifier.c +61 -89

150 lines not on this page · raw message

kernel/module.c +58 -21

79 lines not on this page · raw message

lib/idr.c +2 -1
index f4ab4f4aa3c7..7ecdfdb5309e 100644

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

mm/filemap.c +7 -5
index 00e391e75880..dbc461703ff4 100644

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

mm/hugetlb.c +10 -0
index e4c717b08cfe..eed96302897a 100644

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

mm/hwpoison-inject.c +2 -1
index aff4d27ec235..a1d6fc3c78b9 100644

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

mm/madvise.c +2 -0
index 8e5ca01a6cc0..882767d58c27 100644

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

mm/memory-failure.c +127 -78

205 lines not on this page · raw message

mm/slub.c +2 -0
index b75eebc0350e..519bbbad7b2f 100644

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

mm/util.c +50 -0

50 lines not on this page · raw message

net/batman-adv/bridge_loop_avoidance.c +1 -1
index 17687848daec..11f6ef657d82 100644

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

net/bluetooth/hci_event.c +12 -0
index 5ac3aca6deeb..2337e9275863 100644

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

net/can/bcm.c +14 -4
index 508f67de0b80..e5ffd2bd62ab 100644

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

net/netfilter/nf_tables_api.c +8 -1
index 1b4bc588f8d6..65d96439e2be 100644

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

net/netfilter/nf_tables_core.c +1 -1
index 907e848dbc17..d4d8f613af51 100644

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

net/netfilter/nf_tables_trace.c +2 -2
index e4fe2f0780eb..84a7dea46efa 100644

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

net/netfilter/nft_exthdr.c +1 -1
index dbe1f2e7dd9e..9e927ab4df15 100644

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

net/netfilter/nft_meta.c +1 -1
index 44d9b38e5f90..14412f69a34e 100644

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

net/netfilter/nft_payload.c +58 -5

63 lines not on this page · raw message

net/netfilter/nft_set_pipapo.c +33 -15

48 lines not on this page · raw message

net/rose/rose_route.c +2 -2
index c0e04c261a15..764a726debb1 100644

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

net/rxrpc/ar-internal.h +1 -1
index dce056adb78c..f2d593e27b64 100644

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

net/rxrpc/call_accept.c +3 -3
index 1ae90fb97936..8b24ffbc72ef 100644

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

net/rxrpc/call_object.c +9 -9
index 043508fd8d8a..25c9a2cbf048 100644

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

net/rxrpc/net_ns.c +1 -1
index cc7e30733feb..e4d6d432515b 100644

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

net/rxrpc/proc.c +2 -8
index e2f990754f88..5a67955cc00f 100644

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

net/xdp/xsk_buff_pool.c +1 -0
index fc7fbfc1e586..ccedbbd27692 100644

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

scripts/checkpatch.pl +2 -1
index c27d2312cfc3..88cb294dc447 100755

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

scripts/kernel-doc +9 -0
index cfcb60737957..5d54b57ff90c 100755

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

sound/pci/cs46xx/cs46xx.c +13 -9
index bd60308769ff..8634004a606b 100644

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

sound/pci/hda/patch_realtek.c +1 -0
index 70664c9832d6..3c3eac2399da 100644

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

sound/soc/codecs/rt5682-i2c.c +26 -10
index b9d5d7a0975b..3d2d7c9ce66d 100644

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

sound/soc/codecs/rt5682.c +58 -67

125 lines not on this page · raw message

sound/soc/codecs/rt5682.h +3 -1
index 8e3244a62c16..52ff0d9c36c5 100644

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

sound/soc/codecs/rt700.c +13 -3
index 921382724f9c..614a40247679 100644

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

sound/soc/codecs/rt711-sdca.c +15 -12
index 2e992589f1e4..c15fb98eac86 100644

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

sound/soc/codecs/rt711.c +14 -11
index a7c5608a0ef8..fafb0ba8349f 100644

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

sound/usb/mixer_maps.c +16 -0
index 6ffd23f2ee65..997425ef0a29 100644

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

sound/usb/quirks.c +4 -0
index e8468f9b007d..12ce69b04f63 100644

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

tools/testing/selftests/bpf/prog_tests/timer_crash.c deleted +0 -32
deleted file mode 100644
index f74b82305da8..000000000000

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

tools/testing/selftests/bpf/progs/timer_crash.c deleted +0 -54

54 lines not on this page · raw message

tools/testing/selftests/net/forwarding/lib.sh +5 -1
index 92087d423bcf..c9507df9c05b 100644

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

tools/testing/selftests/net/udpgro.sh +1 -1
index f8a19f548ae9..ebbd0b282432 100755

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

tools/testing/selftests/net/udpgro_bench.sh +1 -1
index 820bc50f6b68..fad2d1a71cac 100755

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

tools/testing/selftests/net/udpgro_fwd.sh +1 -1
index 6f05e06f6761..1bcd82e1f662 100755

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

tools/testing/selftests/net/veth.sh +3 -3
index 19eac3e44c06..430895d1a2b6 100755

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

virt/kvm/kvm_main.c +10 -4
index fefdf3a6dae3..9eac68ae291e 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.