Skip to contentSkip to conversation

Linux 5.4.69

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Oct 1, 2020 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.4.69 kernel.

All users of the 5.4 kernel series must upgrade.

The updated 5.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.4.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/sound/wm8994.txt               |   18 
 Documentation/driver-api/libata.rst                              |    2 
 Makefile                                                         |    2 
 arch/arm/include/asm/kvm_emulate.h                               |   11 
 arch/arm/kernel/stacktrace.c                                     |    2 
 arch/arm/kernel/traps.c                                          |    6 
 arch/arm/mach-omap2/cpuidle34xx.c                                |    9 
 arch/arm/mach-omap2/cpuidle44xx.c                                |   26 
 arch/arm/mach-omap2/pm34xx.c                                     |    8 
 arch/arm64/include/asm/kvm_emulate.h                             |   12 
 arch/arm64/include/asm/sections.h                                |    1 
 arch/arm64/kernel/acpi.c                                         |   25 
 arch/arm64/kernel/cpufeature.c                                   |   12 
 arch/arm64/kernel/insn.c                                         |   22 
 arch/arm64/kernel/vmlinux.lds.S                                  |    3 
 arch/arm64/kvm/hyp/switch.c                                      |    2 
 arch/arm64/mm/fault.c                                            |   12 
 arch/m68k/q40/config.c                                           |    1 
 arch/mips/include/asm/cpu-type.h                                 |    1 
 arch/powerpc/include/asm/kvm_asm.h                               |    3 
 arch/powerpc/kernel/Makefile                                     |    2 
 arch/powerpc/kernel/eeh.c                                        |    2 
 arch/powerpc/kernel/traps.c                                      |    6 
 arch/powerpc/kvm/book3s_64_mmu_radix.c                           |    5 
 arch/powerpc/kvm/book3s_hv_tm.c                                  |   28 
 arch/powerpc/kvm/book3s_hv_tm_builtin.c                          |   16 
 arch/powerpc/mm/book3s64/iommu_api.c                             |   39 
 arch/powerpc/perf/imc-pmu.c                                      |  173 +++-
 arch/riscv/include/asm/ftrace.h                                  |    7 
 arch/riscv/kernel/ftrace.c                                       |   19 
 arch/s390/include/asm/pgtable.h                                  |   44 -
 arch/s390/include/asm/stacktrace.h                               |   11 
 arch/s390/kernel/irq.c                                           |    8 
 arch/s390/kernel/perf_cpum_sf.c                                  |    9 
 arch/s390/kernel/setup.c                                         |   15 
 arch/s390/kernel/smp.c                                           |    2 
 arch/x86/include/asm/crash.h                                     |    6 
 arch/x86/include/asm/nospec-branch.h                             |    4 
 arch/x86/include/asm/pkeys.h                                     |    5 
 arch/x86/kernel/apic/io_apic.c                                   |    1 
 arch/x86/kernel/crash.c                                          |   15 
 arch/x86/kernel/fpu/xstate.c                                     |    9 
 arch/x86/kvm/emulate.c                                           |    2 
 arch/x86/kvm/lapic.c                                             |    2 
 arch/x86/kvm/mmutrace.h                                          |    2 
 arch/x86/kvm/svm.c                                               |   11 
 arch/x86/kvm/vmx/vmx.c                                           |   26 
 arch/x86/kvm/x86.c                                               |   13 
 arch/x86/lib/usercopy_64.c                                       |    2 
 arch/x86/realmode/init.c                                         |    2 
 arch/xtensa/kernel/entry.S                                       |    4 
 arch/xtensa/kernel/ptrace.c                                      |   18 
 drivers/acpi/ec.c                                                |   16 
 drivers/ata/acard-ahci.c                                         |    6 
 drivers/ata/libahci.c                                            |    6 
 drivers/ata/libata-core.c                                        |    9 
 drivers/ata/libata-sff.c                                         |   12 
 drivers/ata/pata_macio.c                                         |    6 
 drivers/ata/pata_pxa.c                                           |    8 
 drivers/ata/pdc_adma.c                                           |    7 
 drivers/ata/sata_fsl.c                                           |    4 
 drivers/ata/sata_inic162x.c                                      |    4 
 drivers/ata/sata_mv.c                                            |   34 
 drivers/ata/sata_nv.c                                            |   18 
 drivers/ata/sata_promise.c                                       |    6 
 drivers/ata/sata_qstor.c                                         |    8 
 drivers/ata/sata_rcar.c                                          |    6 
 drivers/ata/sata_sil.c                                           |    8 
 drivers/ata/sata_sil24.c                                         |    6 
 drivers/ata/sata_sx4.c                                           |    6 
 drivers/atm/eni.c                                                |    2 
 drivers/base/arch_topology.c                                     |    4 
 drivers/base/regmap/internal.h                                   |    2 
 drivers/base/regmap/regcache.c                                   |    2 
 drivers/base/regmap/regmap.c                                     |   33 
 drivers/bluetooth/btrtl.c                                        |   20 
 drivers/bus/hisi_lpc.c                                           |   27 
 drivers/char/ipmi/bt-bmc.c                                       |   12 
 drivers/char/random.c                                            |   12 
 drivers/char/tlclk.c                                             |   17 
 drivers/char/tpm/tpm_crb.c                                       |  123 ++-
 drivers/char/tpm/tpm_ibmvtpm.c                                   |    9 
 drivers/char/tpm/tpm_ibmvtpm.h                                   |    1 
 drivers/clk/imx/clk-pfdv2.c                                      |    6 
 drivers/clk/socfpga/clk-pll-s10.c                                |    4 
 drivers/clk/ti/adpll.c                                           |   11 
 drivers/clocksource/h8300_timer8.c                               |    2 
 drivers/cpufreq/powernv-cpufreq.c                                |   13 
 drivers/crypto/chelsio/chcr_algo.c                               |    5 
 drivers/crypto/chelsio/chtls/chtls_io.c                          |   10 
 drivers/dax/bus.c                                                |    2 
 drivers/dax/bus.h                                                |    2 
 drivers/dax/dax-private.h                                        |    2 
 drivers/devfreq/tegra30-devfreq.c                                |    4 
 drivers/dma-buf/dma-buf.c                                        |    2 
 drivers/dma-buf/dma-fence.c                                      |   78 -
 drivers/dma/mediatek/mtk-hsdma.c                                 |    4 
 drivers/dma/stm32-dma.c                                          |    9 
 drivers/dma/stm32-mdma.c                                         |    9 
 drivers/dma/tegra20-apb-dma.c                                    |    3 
 drivers/dma/xilinx/zynqmp_dma.c                                  |   24 
 drivers/edac/ghes_edac.c                                         |    4 
 drivers/firmware/arm_sdei.c                                      |   26 
 drivers/gpio/gpio-rcar.c                                         |    4 
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c               |    3 
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c                |    3 
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c                 |    6 
 drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c                         |   31 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                       |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.c                          |   10 
 drivers/gpu/drm/amd/amdgpu/atom.c                                |    4 
 drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c                           |   58 -
 drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c                            |    2 
 drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c                            |   40 -
 drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c                            |   40 -
 drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c                            |   16 
 drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler.h                   |  139 +--
 drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx10.asm           |    1 
 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c            |    2 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c                |   32 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c          |    2 
 drivers/gpu/drm/amd/display/dc/core/dc_link.c                    |   67 -
 drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c                |   52 -
 drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c               |    5 
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dccg.c                |   26 
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dsc.c                 |    5 
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c            |    5 
 drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubp.c                |   35 
 drivers/gpu/drm/amd/display/dc/inc/hw/dsc.h                      |    1 
 drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c                 |    7 
 drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c               |    7 
 drivers/gpu/drm/exynos/exynos_drm_dsi.c                          |   20 
 drivers/gpu/drm/gma500/cdv_intel_display.c                       |    2 
 drivers/gpu/drm/mcde/mcde_display.c                              |   10 
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c                            |   27 
 drivers/gpu/drm/msm/msm_drv.c                                    |    6 
 drivers/gpu/drm/nouveau/dispnv50/disp.c                          |    4 
 drivers/gpu/drm/nouveau/nouveau_debugfs.c                        |    5 
 drivers/gpu/drm/nouveau/nouveau_gem.c                            |    4 
 drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c             |   17 
 drivers/gpu/drm/omapdrm/dss/dss.c                                |   43 -
 drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c                  |    4 
 drivers/gpu/drm/radeon/radeon_bios.c                             |   30 
 drivers/gpu/drm/scheduler/sched_main.c                           |   27 
 drivers/gpu/drm/sun4i/sun8i_csc.h                                |    2 
 drivers/gpu/drm/vc4/vc4_hdmi.c                                   |    1 
 drivers/hwtracing/coresight/coresight-etm4x.c                    |    1 
 drivers/hwtracing/intel_th/intel_th.h                            |    2 
 drivers/hwtracing/intel_th/msu.c                                 |   11 
 drivers/hwtracing/intel_th/pci.c                                 |    8 
 drivers/i2c/busses/i2c-aspeed.c                                  |    2 
 drivers/i2c/busses/i2c-tegra.c                                   |   93 +-
 drivers/i2c/i2c-core-base.c                                      |    2 
 drivers/infiniband/core/cm.c                                     |   25 
 drivers/infiniband/hw/cxgb4/cm.c                                 |    4 
 drivers/infiniband/hw/i40iw/i40iw_cm.c                           |    2 
 drivers/infiniband/hw/qedr/qedr_iw_cm.c                          |    2 
 drivers/infiniband/sw/rxe/rxe.c                                  |    2 
 drivers/infiniband/sw/rxe/rxe_qp.c                               |    7 
 drivers/infiniband/ulp/iser/iser_memory.c                        |   21 
 drivers/leds/leds-mlxreg.c                                       |    4 
 drivers/md/bcache/bcache.h                                       |    1 
 drivers/md/bcache/btree.c                                        |   12 
 drivers/md/bcache/super.c                                        |    1 
 drivers/md/dm-table.c                                            |   27 
 drivers/md/dm.c                                                  |   23 
 drivers/media/dvb-frontends/tda10071.c                           |    9 
 drivers/media/i2c/smiapp/smiapp-core.c                           |    3 
 drivers/media/mc/mc-device.c                                     |   65 -
 drivers/media/platform/qcom/venus/vdec.c                         |    5 
 drivers/media/platform/ti-vpe/cal.c                              |    6 
 drivers/media/usb/go7007/go7007-usb.c                            |    4 
 drivers/mfd/mfd-core.c                                           |   10 
 drivers/mmc/core/mmc.c                                           |    9 
 drivers/mtd/chips/cfi_cmdset_0002.c                              |    1 
 drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c                       |    4 
 drivers/mtd/nand/raw/omap_elm.c                                  |    1 
 drivers/mtd/parsers/cmdlinepart.c                                |   23 
 drivers/mtd/ubi/fastmap-wl.c                                     |   46 -
 drivers/mtd/ubi/fastmap.c                                        |   14 
 drivers/mtd/ubi/ubi.h                                            |    6 
 drivers/mtd/ubi/wl.c                                             |   32 
 drivers/mtd/ubi/wl.h                                             |    1 
 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c                 |    4 
 drivers/net/ethernet/intel/e1000/e1000_main.c                    |   18 
 drivers/net/ethernet/intel/iavf/iavf_main.c                      |    8 
 drivers/net/ethernet/intel/ice/ice_ethtool.c                     |   14 
 drivers/net/ethernet/qlogic/qed/qed_dev.c                        |   11 
 drivers/net/ethernet/qlogic/qed/qed_l2.c                         |    3 
 drivers/net/ethernet/qlogic/qed/qed_main.c                       |    2 
 drivers/net/ethernet/qlogic/qed/qed_sriov.c                      |    1 
 drivers/net/ethernet/qlogic/qede/qede_filter.c                   |    3 
 drivers/net/ethernet/qlogic/qede/qede_main.c                     |   11 
 drivers/net/ethernet/realtek/r8169_main.c                        |    3 
 drivers/net/ethernet/xilinx/xilinx_axienet.h                     |    2 
 drivers/net/ethernet/xilinx/xilinx_axienet_main.c                |   50 -
 drivers/net/ieee802154/adf7242.c                                 |    4 
 drivers/net/ieee802154/ca8210.c                                  |    1 
 drivers/net/wireless/ath/ar5523/ar5523.c                         |    2 
 drivers/net/wireless/ath/ath10k/debug.c                          |    3 
 drivers/net/wireless/ath/ath10k/sdio.c                           |   18 
 drivers/net/wireless/ath/ath10k/wmi.c                            |   49 -
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c      |    3 
 drivers/net/wireless/marvell/mwifiex/fw.h                        |    2 
 drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c               |    4 
 drivers/net/wireless/mediatek/mt76/agg-rx.c                      |    1 
 drivers/net/wireless/mediatek/mt76/dma.c                         |    9 
 drivers/net/wireless/mediatek/mt76/mac80211.c                    |   12 
 drivers/net/wireless/mediatek/mt76/mt7603/main.c                 |    2 
 drivers/net/wireless/mediatek/mt76/mt7615/main.c                 |    2 
 drivers/net/wireless/mediatek/mt76/mt76x02_util.c                |    2 
 drivers/net/wireless/ti/wlcore/main.c                            |    4 
 drivers/net/wireless/ti/wlcore/tx.c                              |    1 
 drivers/nvme/host/Kconfig                                        |    1 
 drivers/nvme/host/core.c                                         |   14 
 drivers/nvme/host/fc.c                                           |    4 
 drivers/nvme/host/multipath.c                                    |   21 
 drivers/nvme/host/nvme.h                                         |   19 
 drivers/nvme/host/pci.c                                          |    1 
 drivers/nvme/host/rdma.c                                         |    3 
 drivers/nvme/host/tcp.c                                          |    3 
 drivers/nvme/target/loop.c                                       |    3 
 drivers/nvme/target/rdma.c                                       |   30 
 drivers/opp/core.c                                               |   48 -
 drivers/opp/of.c                                                 |   30 
 drivers/opp/opp.h                                                |    6 
 drivers/pci/controller/dwc/pcie-tegra194.c                       |    5 
 drivers/pci/controller/pci-tegra.c                               |    3 
 drivers/pci/hotplug/pciehp_hpc.c                                 |   26 
 drivers/pci/iov.c                                                |    8 
 drivers/pci/rom.c                                                |   17 
 drivers/pci/setup-bus.c                                          |   38 
 drivers/phy/samsung/phy-s5pv210-usb2.c                           |    4 
 drivers/power/supply/max17040_battery.c                          |    2 
 drivers/rapidio/devices/rio_mport_cdev.c                         |   14 
 drivers/regulator/axp20x-regulator.c                             |    7 
 drivers/rtc/rtc-ds1374.c                                         |   15 
 drivers/rtc/rtc-sa1100.c                                         |   18 
 drivers/s390/block/dasd_fba.c                                    |    9 
 drivers/s390/cio/airq.c                                          |    8 
 drivers/s390/cio/cio.c                                           |    8 
 drivers/s390/crypto/zcrypt_api.c                                 |    3 
 drivers/scsi/aacraid/aachba.c                                    |    8 
 drivers/scsi/aacraid/commsup.c                                   |    2 
 drivers/scsi/aacraid/linit.c                                     |   46 -
 drivers/scsi/cxlflash/main.c                                     |    1 
 drivers/scsi/fnic/fnic_scsi.c                                    |    3 
 drivers/scsi/hpsa.c                                              |   80 +-
 drivers/scsi/libfc/fc_rport.c                                    |   13 
 drivers/scsi/lpfc/lpfc_attr.c                                    |   40 -
 drivers/scsi/lpfc/lpfc_ct.c                                      |  137 +--
 drivers/scsi/lpfc/lpfc_hbadisc.c                                 |   76 +
 drivers/scsi/lpfc/lpfc_hw.h                                      |   36 
 drivers/scsi/lpfc/lpfc_init.c                                    |    1 
 drivers/scsi/lpfc/lpfc_nportdisc.c                               |  233 +++++
 drivers/scsi/lpfc/lpfc_sli.c                                     |    4 
 drivers/scsi/mpt3sas/mpt3sas_ctl.c                               |    6 
 drivers/scsi/pm8001/pm8001_sas.c                                 |   50 -
 drivers/scsi/qedi/qedi_iscsi.c                                   |    3 
 drivers/scsi/qla2xxx/qla_init.c                                  |   43 -
 drivers/scsi/qla2xxx/qla_iocb.c                                  |  101 ++
 drivers/scsi/qla2xxx/qla_target.c                                |   21 
 drivers/scsi/ufs/ufshcd.c                                        |   14 
 drivers/soundwire/bus.c                                          |    2 
 drivers/soundwire/cadence_master.c                               |   80 +-
 drivers/soundwire/cadence_master.h                               |    1 
 drivers/soundwire/intel.c                                        |   14 
 drivers/staging/media/imx/imx-media-capture.c                    |    2 
 drivers/staging/rtl8188eu/core/rtw_recv.c                        |   19 
 drivers/thermal/rcar_thermal.c                                   |    6 
 drivers/tty/serial/8250/8250_omap.c                              |    8 
 drivers/tty/serial/8250/8250_port.c                              |   16 
 drivers/tty/serial/samsung.c                                     |    8 
 drivers/tty/serial/sifive.c                                      |   28 
 drivers/tty/serial/xilinx_uartps.c                               |    8 
 drivers/tty/vcc.c                                                |    1 
 drivers/usb/dwc3/gadget.c                                        |    2 
 drivers/usb/host/ehci-mv.c                                       |    8 
 drivers/vfio/pci/vfio_pci.c                                      |   13 
 fs/block_dev.c                                                   |   10 
 fs/btrfs/disk-io.c                                               |   11 
 fs/btrfs/extent-tree.c                                           |    2 
 fs/btrfs/inode.c                                                 |  201 ++---
 fs/btrfs/relocation.c                                            |   45 +
 fs/btrfs/tree-checker.c                                          |   40 -
 fs/ceph/caps.c                                                   |   14 
 fs/ceph/inode.c                                                  |    5 
 fs/cifs/cifsglob.h                                               |    9 
 fs/cifs/file.c                                                   |   21 
 fs/cifs/misc.c                                                   |   17 
 fs/cifs/smb1ops.c                                                |    8 
 fs/cifs/smb2misc.c                                               |   32 
 fs/cifs/smb2ops.c                                                |   89 +-
 fs/cifs/smb2pdu.h                                                |    2 
 fs/dcache.c                                                      |    4 
 fs/exec.c                                                        |   22 
 fs/ext4/inode.c                                                  |    2 
 fs/ext4/mballoc.c                                                |   11 
 fs/f2fs/gc.c                                                     |   10 
 fs/f2fs/node.c                                                   |    1 
 fs/fuse/dev.c                                                    |    1 
 fs/fuse/inode.c                                                  |    7 
 fs/gfs2/inode.c                                                  |   13 
 fs/iomap/buffered-io.c                                           |    7 
 fs/nfs/nfstrace.h                                                |   15 
 fs/nfs/pagelist.c                                                |   67 +
 fs/nfs/write.c                                                   |   10 
 fs/nfsd/filecache.c                                              |    8 
 fs/nfsd/nfs4state.c                                              |   73 +
 fs/nfsd/trace.h                                                  |   12 
 fs/proc/base.c                                                   |   10 
 fs/ubifs/io.c                                                    |   16 
 fs/ubifs/journal.c                                               |    1 
 fs/ubifs/orphan.c                                                |    9 
 fs/xfs/libxfs/xfs_attr_leaf.c                                    |   22 
 fs/xfs/libxfs/xfs_bmap.c                                         |   25 
 fs/xfs/libxfs/xfs_dir2_node.c                                    |    1 
 fs/xfs/libxfs/xfs_dir2_sf.c                                      |    2 
 fs/xfs/libxfs/xfs_iext_tree.c                                    |    2 
 fs/xfs/libxfs/xfs_inode_fork.c                                   |    8 
 fs/xfs/libxfs/xfs_inode_fork.h                                   |   14 
 fs/xfs/libxfs/xfs_trans_resv.c                                   |   96 +-
 fs/xfs/scrub/dir.c                                               |    3 
 fs/xfs/scrub/scrub.c                                             |    9 
 fs/xfs/xfs_bmap_util.c                                           |    8 
 fs/xfs/xfs_file.c                                                |   30 
 fs/xfs/xfs_fsmap.c                                               |    9 
 fs/xfs/xfs_ioctl.c                                               |    1 
 fs/xfs/xfs_trans.c                                               |    5 
 include/asm-generic/pgtable.h                                    |   10 
 include/linux/binfmts.h                                          |    8 
 include/linux/debugfs.h                                          |    5 
 include/linux/kprobes.h                                          |    5 
 include/linux/libata.h                                           |   13 
 include/linux/mmc/card.h                                         |    2 
 include/linux/nfs_page.h                                         |    2 
 include/linux/pci.h                                              |    1 
 include/linux/qed/qed_if.h                                       |    1 
 include/linux/sched/signal.h                                     |    9 
 include/linux/seqlock.h                                          |   11 
 include/linux/skbuff.h                                           |   14 
 include/linux/sunrpc/svc_rdma.h                                  |    5 
 include/net/sock.h                                               |    4 
 include/sound/hda_codec.h                                        |    5 
 include/trace/events/sctp.h                                      |    9 
 include/trace/events/sunrpc.h                                    |    1 
 init/init_task.c                                                 |    1 
 init/main.c                                                      |    2 
 kernel/Makefile                                                  |    2 
 kernel/audit_watch.c                                             |    2 
 kernel/bpf/hashtab.c                                             |    8 
 kernel/bpf/inode.c                                               |    4 
 kernel/events/core.c                                             |   12 
 kernel/fork.c                                                    |    5 
 kernel/kcmp.c                                                    |    8 
 kernel/kprobes.c                                                 |   44 -
 kernel/locking/lockdep.c                                         |   40 -
 kernel/locking/lockdep_internals.h                               |    6 
 kernel/notifier.c                                                |    5 
 kernel/printk/printk.c                                           |    3 
 kernel/sched/core.c                                              |    3 
 kernel/sched/fair.c                                              |   79 +-
 kernel/sys.c                                                     |    4 
 kernel/sysctl-test.c                                             |  392 ++++++++++
 kernel/time/timekeeping.c                                        |    3 
 kernel/trace/trace.c                                             |   20 
 kernel/trace/trace_entries.h                                     |    2 
 kernel/trace/trace_events.c                                      |    2 
 kernel/trace/trace_events_hist.c                                 |    1 
 kernel/trace/trace_preemptirq.c                                  |    4 
 kernel/workqueue.c                                               |    6 
 lib/Kconfig.debug                                                |   11 
 lib/string.c                                                     |   24 
 mm/filemap.c                                                     |    8 
 mm/gup.c                                                         |   18 
 mm/kmemleak.c                                                    |    2 
 mm/madvise.c                                                     |    2 
 mm/memcontrol.c                                                  |   26 
 mm/memory.c                                                      |  121 ++-
 mm/mmap.c                                                        |    2 
 mm/pagewalk.c                                                    |    4 
 mm/slub.c                                                        |   45 -
 mm/swap_state.c                                                  |    5 
 mm/swapfile.c                                                    |   12 
 mm/vmscan.c                                                      |   45 -
 net/atm/lec.c                                                    |    6 
 net/atm/proc.c                                                   |    3 
 net/batman-adv/bridge_loop_avoidance.c                           |  145 ++-
 net/batman-adv/bridge_loop_avoidance.h                           |    4 
 net/batman-adv/multicast.c                                       |   46 -
 net/batman-adv/multicast.h                                       |   15 
 net/batman-adv/routing.c                                         |    4 
 net/batman-adv/soft-interface.c                                  |   11 
 net/bluetooth/hci_event.c                                        |   25 
 net/bluetooth/l2cap_core.c                                       |   29 
 net/bluetooth/l2cap_sock.c                                       |   18 
 net/core/devlink.c                                               |    7 
 net/core/filter.c                                                |    4 
 net/core/neighbour.c                                             |    1 
 net/ipv4/route.c                                                 |    1 
 net/ipv4/tcp.c                                                   |    2 
 net/ipv6/ip6_fib.c                                               |    7 
 net/llc/af_llc.c                                                 |    2 
 net/mac80211/tx.c                                                |    6 
 net/mac802154/tx.c                                               |    8 
 net/netfilter/nf_conntrack_proto.c                               |    2 
 net/netfilter/nf_tables_api.c                                    |    3 
 net/openvswitch/meter.c                                          |    4 
 net/openvswitch/meter.h                                          |    2 
 net/sctp/outqueue.c                                              |    6 
 net/sunrpc/sched.c                                               |   20 
 net/sunrpc/svc_xprt.c                                            |   19 
 net/sunrpc/xprtrdma/svc_rdma_backchannel.c                       |   39 
 net/sunrpc/xprtrdma/svc_rdma_recvfrom.c                          |   11 
 net/tipc/socket.c                                                |   53 -
 net/tipc/topsrv.c                                                |    4 
 net/unix/af_unix.c                                               |   11 
 net/wireless/Kconfig                                             |    1 
 security/device_cgroup.c                                         |    3 
 security/selinux/hooks.c                                         |   12 
 security/selinux/selinuxfs.c                                     |    1 
 sound/hda/hdac_bus.c                                             |    4 
 sound/hda/hdac_regmap.c                                          |    1 
 sound/pci/asihpi/hpioctl.c                                       |    4 
 sound/pci/hda/hda_codec.c                                        |   28 
 sound/pci/hda/hda_controller.c                                   |   11 
 sound/pci/hda/hda_controller.h                                   |    2 
 sound/pci/hda/hda_intel.c                                        |   40 -
 sound/pci/hda/patch_realtek.c                                    |   13 
 sound/soc/codecs/max98090.c                                      |    8 
 sound/soc/codecs/pcm3168a.c                                      |    7 
 sound/soc/codecs/wm8994.c                                        |   10 
 sound/soc/codecs/wm_hubs.c                                       |    3 
 sound/soc/codecs/wm_hubs.h                                       |    1 
 sound/soc/img/img-i2s-out.c                                      |    8 
 sound/soc/intel/boards/bytcr_rt5640.c                            |   10 
 sound/soc/kirkwood/kirkwood-dma.c                                |    2 
 sound/soc/sof/ipc.c                                              |   12 
 sound/usb/midi.c                                                 |   29 
 sound/usb/mixer.c                                                |   10 
 sound/usb/quirks.c                                               |    7 
 tools/gpio/gpio-hammer.c                                         |   17 
 tools/objtool/check.c                                            |    2 
 tools/perf/builtin-stat.c                                        |    2 
 tools/perf/pmu-events/jevents.c                                  |   15 
 tools/perf/tests/shell/lib/probe_vfs_getname.sh                  |    2 
 tools/perf/tests/shell/record+zstd_comp_decomp.sh                |    3 
 tools/perf/trace/beauty/arch_errno_names.sh                      |    2 
 tools/perf/util/cpumap.c                                         |   10 
 tools/perf/util/cs-etm.c                                         |  126 ++-
 tools/perf/util/evsel.c                                          |    7 
 tools/perf/util/mem2node.c                                       |    3 
 tools/perf/util/metricgroup.c                                    |    3 
 tools/perf/util/parse-events.c                                   |    9 
 tools/perf/util/sort.c                                           |    2 
 tools/perf/util/symbol-elf.c                                     |    7 
 tools/power/x86/intel_pstate_tracer/intel_pstate_tracer.py       |   22 
 tools/testing/selftests/bpf/progs/test_tcpbpf_kern.c             |    1 
 tools/testing/selftests/bpf/test_tcpbpf.h                        |    1 
 tools/testing/selftests/bpf/test_tcpbpf_user.c                   |   25 
 tools/testing/selftests/ftrace/test.d/ftrace/func-filter-glob.tc |    2 
 tools/testing/selftests/ptrace/Makefile                          |    4 
 tools/testing/selftests/ptrace/vmaccess.c                        |   86 ++
 tools/testing/selftests/x86/syscall_nt.c                         |    1 
 virt/kvm/arm/mmio.c                                              |    2 
 virt/kvm/arm/mmu.c                                               |    2 
 virt/kvm/arm/vgic/vgic-init.c                                    |   11 
 virt/kvm/arm/vgic/vgic-its.c                                     |   11 
 virt/kvm/kvm_main.c                                              |    1 
 469 files changed, 5173 insertions(+), 2466 deletions(-)

Adrian Hunter (1):
perf kcore_copy: Fix module map when there are no modules loaded

Al Viro (1):
fix dget_parent() fastpath race

Alain Michaud (1):
Bluetooth: guard against controllers sending zero'd events

Alex Deucher (2):
drm/amdgpu/powerplay: fix AVFS handling with custom powerplay table drm/amdgpu/powerplay/smu7: fix AVFS handling with custom powerplay table

Alex Williamson (1):
vfio/pci: Clear error and request eventfd ctx after releasing

Alexander Duyck (1):
e1000: Do not perform reset in reset_task if we are already down

Alexander Shishkin (1):
intel_th: Disallow multi mode on devices where it's broken

Alexandre Belloni (2):
rtc: sa1100: fix possible race condition
rtc: ds1374: fix possible race condition

Alexey Kardashevskiy (1):
powerpc/book3s64: Fix error handling in mm_iommu_do_alloc()

Amelie Delaunay (2):
dmaengine: stm32-mdma: use vchan_terminate_vdesc() in .terminate_all
dmaengine: stm32-dma: use vchan_terminate_vdesc() in .terminate_all

Amol Grover (1):
device_cgroup: Fix RCU list debugging warning

Andre Przywara (2):
net: axienet: Convert DMA error handler to a work queue
net: axienet: Propagate failure of DMA descriptor setup

Andreas Gruenbacher (1):
iomap: Fix overflow in iomap_page_mkwrite

Andreas Steinmetz (1):
ALSA: usb-audio: Fix case when USB MIDI interface has more than one extra endpoint descriptor

Andrey Grodzovsky (1):
drm/scheduler: Avoid accessing freed bad job.

Andy Lutomirski (1):
selftests/x86/syscall_nt: Clear weird flags after each test

Anju T Sudhakar (1):
powerpc/perf: Implement a global lock to avoid races between trace, core and thread imc events.

Anshuman Khandual (1):
arm64/cpufeature: Drop TraceFilt feature exposure from ID_DFR0 register

Anson Huang (1):
clk: imx: Fix division by zero warning on pfdv2

Anthony Iliopoulos (1):
nvme: explicitly update mpath disk capacity on revalidation

Aric Cyr (1):
drm/amd/display: dal_ddc_i2c_payloads_create can fail causing panic

Arnd Bergmann (1):
mt76: fix LED link time failure

Aya Levin (1):
devlink: Fix reporter's recovery condition

Ayush Sawal (1):
crypto: chelsio - This fixes the kernel panic which occurs during a libkcapi test

Balsundar P (1):
scsi: aacraid: fix illegal IO beyond last LBA

Bart Van Assche (3):
scsi: ufs: Make ufshcd_add_command_trace() easier to read
scsi: ufs: Fix a race condition in the tracing code RDMA/rxe: Fix configuration of atomic queue pair attributes

Bernd Edlinger (6):
exec: Fix a deadlock in strace
selftests/ptrace: add test cases for dead-locks kernel/kcmp.c: Use new infrastructure to fix deadlocks in execve
proc: Use new infrastructure to fix deadlocks in execve
proc: io_accounting: Use new infrastructure to fix deadlocks in execve
perf: Use new infrastructure to fix deadlocks in execve

Bob Peterson (1):
gfs2: clean up iopen glock mess in gfs2_create_inode

Boris Brezillon (1):
mtd: parser: cmdline: Support MTD names containing one or more colons

Borislav Petkov (1):
EDAC/ghes: Check whether the driver is on the safe list correctly

Bradley Bolen (1):
mmc: core: Fix size overflow for mmc partitions

Brian Foster (1):
xfs: fix attr leaf header freemap.size underflow

Charan Teja Reddy (1):
dmabuf: fix NULL pointer dereference in dma_buf_release()

Chris Wilson (1):
dma-fence: Serialise signal enabling (dma_fence_enable_sw_signaling)

Christian Borntraeger (1):
s390/zcrypt: Fix ZCRYPT_PERDEV_REQCNT ioctl

Christophe JAILLET (5):
RDMA/iw_cgxb4: Fix an error handling path in 'c4iw_connect()'
perf cpumap: Fix snprintf overflow check
SUNRPC: Fix a potential buffer overflow in 'svc_print_xprts()'
scsi: aacraid: Fix error handling paths in aac_probe_one()
drm/exynos: dsi: Remove bridge node reference in error handling path in probe function

Chuck Lever (4):
SUNRPC: Capture completion of all RPC tasks
svcrdma: Fix leak of transport addresses
svcrdma: Fix backchannel return code
NFS: nfs_xdr_status should record the procedure name

Colin Ian King (2):
media: tda10071: fix unsigned sign extension overflow
USB: EHCI: ehci-mv: fix less than zero comparison of an unsigned int

Cong Wang (1):

      atm: fix a memory leak of vcc->user_back

Dan Carpenter (1):
media: staging/imx: Missing assignment in imx_media_capture_device_register()

Dan Williams (1):
dax: Fix alloc_dax_region() compile warning

Daniel Borkmann (1):
bpf: Fix clobbering of r2 in bpf_gen_ld_abs

Darrick J. Wong (4):
xfs: fix log reservation overflows when allocating large rt extents
xfs: don't ever return a stale pointer from __xfs_dir3_free_read
xfs: mark dir corrupt when lookup-by-hash fails
xfs: prohibit fs freezing when using empty transactions

Dave Chinner (2):
xfs: fix inode fork extent count overflow
xfs: properly serialise fallocate against AIO+DIO

Dave Hansen (1):
x86/pkeys: Add check for pkey "overflow"

David Francis (1):
drm/amd/display: Initialize DSC PPS variables to 0

David Sterba (1):
btrfs: don't force read-only after error in drop snapshot

Dennis Li (1):
drm/amdkfd: fix a memory leak issue

Dinghao Liu (11):
drm/nouveau/debugfs: fix runtime pm imbalance on error drm/nouveau: fix runtime pm imbalance on error drm/nouveau/dispnv50: fix runtime pm imbalance on error
gpio: rcar: Fix runtime PM imbalance on error
PCI: tegra194: Fix runtime PM imbalance on error
ASoC: img-i2s-out: Fix runtime PM imbalance on error
wlcore: fix runtime pm imbalance in wl1271_tx_work
wlcore: fix runtime pm imbalance in wlcore_regdomain_config
mtd: rawnand: gpmi: Fix runtime PM imbalance on error
mtd: rawnand: omap_elm: Fix runtime PM imbalance on error
PCI: tegra: Fix runtime PM imbalance on error

Dinh Nguyen (1):
clk: stratix10: use do_div() for 64-bit calculation

Divya Indi (2):
tracing: Verify if trace array exists before destroying it.
tracing: Adding NULL checks for trace_array descriptor pointer

Dmitry Baryshkov (2):
regmap: fix page selection for noinc reads
regmap: fix page selection for noinc writes

Dmitry Bogdanov (3):
net: qed: Disable aRFS for NPAR and 100G
net: qede: Disable aRFS for NPAR and 100G
net: qed: RDMA personality shouldn't fail VF load

Dmitry Monakhov (1):
ext4: mark block bitmap corrupted when found instead of BUGON

Dmitry Osipenko (3):
PM / devfreq: tegra30: Fix integer overflow on CPU's freq max out
i2c: tegra: Prevent interrupt triggering after transfer timeout
dmaengine: tegra-apb: Prevent race conditions on channel's freeing

Don Brace (1):
scsi: hpsa: correct race condition in offload enabled

Doug Smythies (1):
tools/power/x86/intel_pstate_tracer: changes for python 3 compatibility

Douglas Anderson (1):
bdev: Reduce time holding bd_mutex in sync in blkdev_close()

Eddie James (1):
i2c: aspeed: Mask IRQ status to relevant bits

Eelco Chaudron (1):
netfilter: conntrack: nf_conncount_init is failing with IPv6 disabled

Eric Dumazet (2):
net: silence data-races on sk_backlog.tail
mac802154: tx: fix use-after-free

Eric W. Biederman (1):
exec: Add exec_update_mutex to replace cred_guard_mutex

Felix Fietkau (4):
mt76: do not use devm API for led classdev
mt76: add missing locking around ampdu action
mt76: clear skb pointers from rx aggregation reorder buffer during cleanup
mt76: fix handling full tx queues in mt76_dma_tx_queue_skb_raw

Fuqian Huang (1):
m68k: q40: Fix info-leak in rtc_ioctl

Gabriel Ravier (1):
tools: gpio-hammer: Avoid potential overflow in main

Gao Xiang (1):
mm, THP, swap: fix allocating cluster for swapfile by mistake

Greg Kroah-Hartman (1):

      Linux 5.4.69

Guoju Fang (1):
bcache: fix a lost wake-up problem caused by mca_cannibalize_lock

Gustavo Romero (1):
KVM: PPC: Book3S HV: Treat TM-related invalid form instructions on P9 like the valid ones

Hans de Goede (2):
ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN Converter9 2-in-1
i2c: core: Call i2c_acpi_install_space_handler() before i2c_acpi_register_devices()

He Zhe (1):
KVM: LAPIC: Mark hrtimer for period or oneshot mode to expire in hard interrupt context

Heiner Kallweit (1):
r8169: improve RTL8168b FIFO overflow workaround

Hillf Danton (1):
Bluetooth: prefetch channel before killing sock

Hou Tao (2):
mtd: cfi_cmdset_0002: don't free cfi->cfiq in error path of cfi_amdstd_setup()
ubi: fastmap: Free unused fastmap anchor peb during detach

Howard Chung (1):
Bluetooth: L2CAP: handle l2cap config request during open state

Hui Wang (1):
ALSA: hda/realtek - Couldn't detect Mic if booting with headset plugged

Ian Rogers (5):
perf parse-events: Fix 3 use after frees found with clang ASAN
perf mem2node: Avoid double free related to realloc
perf evsel: Fix 2 memory leaks
perf trace: Fix the selection for architectures to generate the errno name tables perf metricgroup: Free metric_events on error

Icenowy Zheng (1):

      regulator: axp20x: fix LDO2/4 description

Ilya Leoshkevich (1):
s390/init: add missing __init annotations

Israel Rukshin (3):
nvme: Fix ctrl use-after-free during sysfs deletion
nvme: Fix controller creation races with teardown flow
nvmet-rdma: fix double free of rdma queue

Iurii Zaikin (1):
kernel/sysctl-test: Add null pointer test for sysctl.c:proc_dointvec()

Ivan Lazeev (1):
tpm_crb: fix fTPM on AMD Zen+ CPUs

Ivan Safonov (1):
staging:r8188eu: avoid skb_clone for amsdu to msdu conversion

Jack Zhang (1):
drm/amdgpu/sriov add amdgpu_amdkfd_pre_reset in gpu reset

Jaegeuk Kim (2):
f2fs: avoid kernel panic on corruption test
f2fs: stop GC when the victim becomes fully valid

Jaewon Kim (1):
mm/mmap.c: initialize align_offset explicitly for vm_unmapped_area

James Morse (2):
firmware: arm_sdei: Use cpus_read_lock() to avoid races with cpuhp
arm64: acpi: Make apei_claim_sea() synchronise with APEI's irq work

James Smart (7):
scsi: lpfc: Fix pt2pt discovery on SLI3 HBAs
scsi: lpfc: Fix kernel crash at lpfc_nvme_info_show during remote port bounce
scsi: lpfc: Fix incomplete NVME discovery when target
scsi: lpfc: Fix RQ buffer leakage when no IOCBs available
scsi: lpfc: Fix release of hwq to clear the eq relationship
scsi: lpfc: Fix coverity errors in fmdi attribute handling
scsi: lpfc: Fix initial FLOGI failure due to BBSCN not supported

James Zhu (1):
drm/amdgpu/vcn2.0: stall DPG when WPTR/RPTR reset

Jan Höppner (1):
s390/dasd: Fix zero write for FBA devices

Jaska Uimonen (1):
ASoC: SOF: ipc: check ipc return value before data copy

Jason Gunthorpe (1):
RDMA/cm: Remove a race freeing timewait_info

Javed Hasan (2):
scsi: libfc: Handling of extra kref
scsi: libfc: Skip additional kref updating work event

Jay Cornwall (1):
drm/amdkfd: Fix race in gfx10 context restore handler

Jeff Layton (2):
ceph: ensure we have a new cap before continuing in fill_inode
ceph: fix potential race in ceph_check_caps

Jia He (1):
mm: fix double page fault on arm64 if PTE_AF is cleared

Jin Yao (1):
perf parse-events: Use strcmp() to compare the PMU name

Jing Xiangfeng (1):
atm: eni: fix the missed pci_disable_device() for eni_init_one()

Jiri Olsa (1):
perf stat: Fix duration_time value for higher intervals

Jiri Pirko (1):
iavf: use tc_cls_can_offload_and_chain0() instead of chain check

Jiri Slaby (3):
ata: define AC_ERR_OK
ata: make qc_prep return ata_completion_errors
ata: sata_mv, avoid trigerrable BUG_ON

Joakim Tjernlund (1):
ALSA: usb-audio: Add delay quirk for H570e USB headsets

Joe Perches (1):
kernel/sys.c: avoid copying possible padding bytes in copy_to_user

Johannes Thumshirn (1):
btrfs: fix overflow when copying corrupt csums for a message

Johannes Weiner (1):
mm: memcontrol: fix stat-corrupting race in charge moving

John Clements (1):
drm/amdgpu: increase atombios cmd timeout

John Garry (2):
bus: hisi_lpc: Fixup IO ports addresses to avoid use-after-free in host removal perf jevents: Fix leak of mapfile memory

John Meneghini (1):
nvme-multipath: do not reset on unknown status

Jonathan Bakker (3):
power: supply: max17040: Correct voltage reading
phy: samsung: s5pv210-usb2: Add delay after reset
tty: serial: samsung: Correct clock selection logic

Jonathan Lebon (1):
selinux: allow labeling before policy is loaded

Jordan Crouse (1):
drm/msm/a5xx: Always set an OPP supported hardware value

Josef Bacik (4):
tracing: Set kernel_stack's caller size properly
btrfs: do not init a reloc root if we aren't relocating
btrfs: free the reloc_control in a consistent way
btrfs: fix setting last_trans for reloc roots

Josh Poimboeuf (1):
objtool: Fix noreturn detection for ignored functions

Jun Lei (1):
drm/amd/display: update nv1x stutter latencies

Kai Vehmanen (1):
ALSA: hda: enable regmap internal locking

Kai-Heng Feng (1):
ALSA: hda/realtek: Enable front panel headset LED on Lenovo ThinkStation P520

Kangjie Lu (1):
gma/gma500: fix a memory disclosure bug due to uninitialized bytes

Kevin Kou (1):
sctp: move trace_sctp_probe_path into sctp_outq_sack

Kirill A. Shutemov (1):
mm: avoid data corruption on CoW fault into PFN-mapped VMA

Krzysztof Kozlowski (1):
dt-bindings: sound: wm8994: Correct required supplies based on actual implementaion

Kuninori Morimoto (1):
ASoC: pcm3168a: ignore 0 Hz settings

Kusanagi Kouichi (1):
debugfs: Fix !DEBUG_FS debugfs_create_automount

Laurent Pinchart (1):
drm/omap: dss: Cleanup DSS ports on initialisation failure

Lee Jones (1):
mfd: mfd-core: Protect against NULL call-back function pointer

Leo Yan (2):
perf cs-etm: Swap packets for instruction samples perf cs-etm: Correct synthesizing instruction samples

Lianbo Jiang (1):
x86/kdump: Always reserve the low 1M when the crashkernel option is specified

Linus Lüssing (5):
batman-adv: bla: fix type misuse for backbone_gw hash indexing
batman-adv: mcast/TT: fix wrongly dropped or rerouted packets
batman-adv: mcast: fix duplicate mcast packets in BLA backbone from LAN
batman-adv: mcast: fix duplicate mcast packets in BLA backbone from mesh
batman-adv: mcast: fix duplicate mcast packets from BLA backbone to mesh

Liu Jian (1):
ieee802154: fix one possible memleak in ca8210_dev_com_init

Liu Song (1):
ubifs: Fix out-of-bounds memory access caused by abnormal value of node_len

Madhuparna Bhowmik (2):
drivers: char: tlclk.c: Avoid data race between init and interrupt handler
rapidio: avoid data race between file operation callbacks and mport_cdev_add().

Manish Mandlik (1):
Bluetooth: Fix refcount use-after-free issue

Marc Zyngier (1):
KVM: arm64: Assume write fault on S1PTW permission fault on instruction fetch

Marco Elver (1):
seqlock: Require WRITE_ONCE surrounding raw_seqcount_barrier

Marek Szyprowski (1):
drm/vc4/vc4_hdmi: fill ASoC card owner

Mark Rutland (1):
arm64: insn: consistently handle exit text

Markus Elfring (1):
CIFS: Use common error handling code in smb2_ioctl_query_info()

Markus Theil (1):
mac80211: skip mpath lookup also for control port tx

Martin Cerveny (1):
drm/sun4i: sun8i-csc: Secondary CSC register correction

Masami Hiramatsu (2):
kprobes: Fix to check probe enabled before disarm_kprobe_ftrace()
kprobes: tracing/kprobes: Fix to kill kprobes on initmem after boot

Matthias Fend (1):
dmaengine: zynqmp_dma: fix burst length configuration

Max Filippov (1):
xtensa: fix system_call interaction with ptrace

Maxim Mikityanskiy (1):
Bluetooth: btrtl: Use kvmalloc for FW allocations

Maximilian Luz (1):
mwifiex: Increase AES key storage size to 256 bits

Mert Dirik (1):
ar5523: Add USB ID of SMCWUSBT-G2 wireless adapter

Miaohe Lin (1):

      KVM: arm/arm64: vgic: Fix potential double free dist->spis in __kvm_vgic_destroy()

Miaoqing Pan (2):
ath10k: fix array out-of-bounds access
ath10k: fix memory leak for tpc_stats_final

Michael Ellerman (1):
powerpc/64s: Always disable branch profiling for prom_init.o

Michel Dänzer (1):
drm/amdgpu/dc: Require primary plane to be enabled whenever the CRTC is

Mike Snitzer (2):
dm table: do not allow request-based DM to stack on partitions
dm: fix bio splitting and its bio completion order for regular IO

Mikel Rychliski (1):
PCI: Use ioremap(), not phys_to_virt() for platform ROM

Miklos Szeredi (2):
fuse: don't check refcount after stealing page
fuse: update attr_version counter on fuse_notify_inval_inode()

Mikulas Patocka (1):
arch/x86/lib/usercopy_64.c: fix __copy_user_flushcache() cache writeback

Minchan Kim (1):
mm: validate pmd after splitting

Mohan Kumar (1):
ALSA: hda: Clear RIRB status before reading WP

Monk Liu (1):
drm/amdgpu: fix calltrace during kmd unload(v3)

Muchun Song (1):
kprobes: Fix compiler warning for !CONFIG_KPROBES_ON_FTRACE

Nathan Chancellor (2):
tracing: Use address-of operator on section symbols mm/kmemleak.c: use address-of operator on section symbols

Necip Fazil Yildiran (2):
nvme-tcp: fix kconfig dependency warning when !CRYPTO
lib80211: fix unmet direct dependendices config warning when !CRYPTO

Nicholas Johnson (1):
PCI: Avoid double hpmemsize MMIO window assignment

Nicholas Kazlauskas (1):
drm/amd/display: Free gamma after calculating legacy transfer function

Nicholas Piggin (1):
powerpc/traps: Make unrecoverable NMIs die instead of panic

Nick Desaulniers (1):
lib/string.c: implement stpcpy

Nikhil Devshatwar (1):
media: ti-vpe: cal: Restrict DMA to avoid memory corruption

Niklas Söderlund (1):
thermal: rcar_thermal: Handle probe error gracefully

Nilesh Javali (1):
scsi: qedi: Fix termination timeouts in session logout

Oleh Kravchenko (1):
leds: mlxreg: Fix possible buffer overflow

Oliver O'Halloran (1):
powerpc/eeh: Only dump stack once if an MMIO loop is detected

Omar Sandoval (2):
xfs: fix realtime file data space leak
btrfs: fix double __endio_write_update_ordered in direct I/O

Palmer Dabbelt (2):
tty: sifive: Finish transmission before changing the clock
RISC-V: Take text_mutex in ftrace_init_nop()

Pan Bian (3):
scsi: fnic: fix use after free
RDMA/qedr: Fix potential use after free
RDMA/i40iw: Fix potential use after free

Paolo Bonzini (2):
KVM: x86: fix incorrect comparison in trace event
KVM: x86: handle wrap around 32-bit address space

Paul Mackerras (1):
KVM: PPC: Book3S HV: Close race with page faults around memslot flushes

Paul Turner (1):
sched/fair: Eliminate bandwidth race between throttling and distribution

Pavel Machek (1):
drm/msm: fix leaks if initialization fails

Pavel Shilovsky (1):
CIFS: Properly process SMB3 lease breaks

Peter Ujfalusi (1):
serial: 8250_omap: Fix sleeping function called from invalid context during probe

Philip Yang (1):
drm/amdkfd: fix restore worker race condition

Pierre Crégut (1):
PCI/IOV: Serialize sysfs sriov_numvfs reads vs writes

Pierre-Louis Bossart (2):
soundwire: intel/cadence: fix startup sequence
soundwire: bus: disable pm_runtime in sdw_slave_delete

Pratik Rajesh Sampat (1):
cpufreq: powernv: Fix frame-size-overflow in powernv_cpufreq_work_fn

Qian Cai (7):
skbuff: fix a data race in skb_queue_len()
random: fix data races at timer_rand_state
netfilter: nf_tables: silence a RCU-list warning in nft_table_lookup() mm/swapfile: fix data races in try_to_unuse()
mm/vmscan.c: fix data races using kswapd_classzone_idx vfio/pci: fix memory leaks of eventfd ctx
mm/swap_state: fix a data race in swapin_nr_pages

Qiujun Huang (1):

      ext4: fix a data race at inode->i_disksize

Qu Wenruo (2):
btrfs: tree-checker: Check leaf chunk item size
btrfs: qgroup: fix data leak caused by race between writeback and truncate

Quinn Tran (3):
scsi: qla2xxx: Add error handling for PLOGI ELS passthrough
scsi: qla2xxx: Fix stuck session in GNL
scsi: qla2xxx: Retry PLOGI on FC-NVMe PRLI failure

Rafael J. Wysocki (1):
ACPI: EC: Reference count query handlers under lock

Raveendran Somu (1):
brcmfmac: Fix double freeing in the fmac usb data path

Raviteja Narayanam (1):
serial: uartps: Wait for tx_empty in console setup

Rodrigo Siqueira (1):
drm/amd/display: Stop if retimer is not available

Russell King (1):
ASoC: kirkwood: fix IRQ error handling

Sagar Biradar (1):
scsi: aacraid: Disabling TM path and only processing IOP reset

Sagi Grimberg (1):
nvme: fix possible deadlock when I/O is blocked

Sakari Ailus (1):
media: smiapp: Fix error handling at NVM reading

Sascha Hauer (1):
ubi: Fix producing anchor PEBs

Satendra Singh Thakur (1):
dmaengine: mediatek: hsdma_probe: fixed a memory leak when devm_request_irq fails

Sean Christopherson (1):
KVM: x86: Reset MMU context if guest toggles CR4.SMAP or CR4.PKE

Sebastian Andrzej Siewior (1):
workqueue: Remove the warning in wq_worker_sleeping()

Sergey Gorenko (1):
IB/iser: Always check sig MR before putting it to the free pool

Shreyas Joshi (1):
printk: handle blank console arguments passed in.

Sonny Sasaka (1):
Bluetooth: Handle Inquiry Cancel error after Inquiry Complete

Sreekanth Reddy (1):
scsi: mpt3sas: Free diag buffer without any status check

Stanimir Varbanov (1):
media: venus: vdec: Init registered list unconditionally

Stanislav Fomichev (1):
selftests/bpf: De-flake test_tcpbpf

Stefan Berger (1):
tpm: ibmvtpm: Wait for buffer to be set before proceeding

Stephan Gerhold (1):
drm/mcde: Handle pending vblank while disabling display

Stephane Eranian (1):
perf stat: Force error in fallback on :k events

Stephen Kitt (1):
clk/ti/adpll: allocate room for terminating null

Steve Grubb (1):
audit: CONFIG_CHANGE don't log internal bookkeeping as an event

Steve Rutherford (1):
KVM: Remove CREATE_IRQCHIP/SET_PIT2 race

Steven Price (1):
mm: pagewalk: fix termination condition in walk_pte_range()

Steven Rostedt (VMware) (1):
module: Remove accidental change of module_enable_x()

Stuart Hayes (1):
PCI: pciehp: Fix MSI interrupt race

Suzuki K Poulose (1):
coresight: etm4x: Fix use-after-free of per-cpu etm drvdata

Sven Eckelmann (1):
batman-adv: Add missing include for in_interrupt()

Sven Schnelle (2):
selftests/ftrace: fix glob selftest
lockdep: fix order in trace_hardirqs_off_caller()

Sylwester Nawrocki (2):
ASoC: wm8994: Skip setting of the WM8994_MICBIAS register for WM1811
ASoC: wm8994: Ensure the device is resumed in wm89xx_mic_detect functions

Takashi Iwai (6):
ALSA: usb-audio: Don't create a mixer element with bogus volume range
media: go7007: Fix URB type for interrupt handling
ALSA: hda: Skip controller resume if not needed
ALSA: hda: Fix potential race in unsol event handler
ALSA: hda: Always use jackpoll helper for jack update after resume
ALSA: hda: Workaround for spurious wakeups on some Intel platforms

Tang Bin (2):
USB: EHCI: ehci-mv: fix error handling in mv_ehci_probe() ipmi:bt-bmc: Fix error handling and status check

Thierry Reding (1):
i2c: tegra: Restore pinmux on system resume

Thomas Gleixner (3):
bpf: Remove recursion prevention from rcu free callback x86/speculation/mds: Mark mds_user_clear_cpu_buffers() __always_inline x86/ioapic: Unbreak check_timer()

Thomas Richter (3):
s390/cpum_sf: Use kzalloc and minor changes perf test: Fix test trace+probe_vfs_getname.sh on s390 perf tests: Fix test 68 zstd compression for s390

Tianjia Zhang (1):
clocksource/drivers/h8300_timer8: Fix wrong return value in h8300_8timer_init()

Tom Lendacky (1):
KVM: SVM: Add a dedicated INVD intercept routine

Tom Rix (3):
ieee802154/adf7242: check status of adf7242_read_reg
ALSA: asihpi: fix iounmap in error handler
tracing: fix double free

Tonghao Zhang (2):
net: openvswitch: use u64 for meter bucket
net: openvswitch: use div_u64() for 64-by-32 divisions

Tony Cheng (1):
drm/amd/display: fix workaround for incorrect double buffer register for DLG ADL and TTU

Tony Lindgren (1):
ARM: OMAP2+: Handle errors for cpu_pm

Trond Myklebust (5):
nfsd: Fix a soft lockup race in nfsd_file_mark_find_or_create()
nfsd: Fix a perf warning
nfsd: Don't add locks to closed or closing open stateids
NFS: Fix races nfs_page_group_destroy() vs nfs_destroy_unlinked_subrequests()
SUNRPC: Don't start a timer on an already queued rpc task

Tuong Lien (2):
tipc: fix link overflow issue at socket shutdown
tipc: fix memory leak in service subscripting

Tzung-Bi Shih (1):
ASoC: max98090: remove msleep in PLL unlocked workaround

Usha Ketineni (1):
ice: Fix to change Rx/Tx ring descriptor size via ethtool with DCBx

Vasily Averin (6):
vcc_seq_next should increase position index neigh_stat_seq_next() should increase position index rt_cpu_seq_next should increase position index ipv6_route_seq_next should increase position index mm/swapfile.c: swap_next should increase position index
selinux: sel_avc_get_stat_idx should increase position index

Vasily Gorbik (2):
s390: avoid misusing CALL_ON_STACK for task stack setup mm/gup: fix gup_fast with dynamic page table folding

Vignesh Raghavendra (2):
serial: 8250_port: Don't service RX FIFO if throttled
serial: 8250: 8250_omap: Terminate DMA before pushing data on RX timeout

Vincent Whitchurch (1):
ARM: 8948/1: Prevent OOB access in stacktrace

Viresh Kumar (1):
opp: Replace list_kref with a local counter

Waiman Long (2):
locking/lockdep: Decrement IRQ context counters when removing lock chain mm/slub: fix incorrect interpretation of s->offset

Walter Lozano (1):
opp: Increase parsed_static_opps in _of_add_opp_table_v1()

Wei Li (1):

      MIPS: Add the missing 'CPU_1074K' into __get_cpu_type()

Wei Yongjun (3):
sparc64: vcc: Fix error return code in vcc_probe()
dpaa2-eth: fix error return code in setup_dpni()
scsi: cxlflash: Fix error return code in cxlflash_probe()

Wen Gong (1):
ath10k: use kzalloc to read for ath10k_sdio_hif_diag_read

Wen Yang (2):
drm/omap: fix possible object reference leak
timekeeping: Prevent 32bit truncation in scale64_check_overflow()

Wenjing Liu (1):
drm/amd/display: fix image corruption with ODM 2:1 DSC 2 slice

Wesley Chalmers (1):
drm/amd/display: Do not double-buffer DTO adjustments

Will Deacon (1):
arm64: cpufeature: Relax checks for AArch32 support at EL[0-2]

Xianting Tian (1):
mm/filemap.c: clear page error before actual read

Xiaoming Ni (1):
kernel/notifier.c: intercept duplicate registrations to avoid infinite loops

Xie XiuQi (1):
perf util: Fix memory leak of prefix_if_not_in

Yonghong Song (1):
bpf: Fix a rcu warning for bpffs map pretty-print

Yu Chen (1):
usb: dwc3: Increase timeout for CmdAct cleared by device controller

Zeng Tao (2):
cpu-topology: Fix the potential data corruption vfio/pci: fix racy on error and request eventfd ctx

Zenghui Yu (2):
KVM: arm64: vgic-v3: Retire all pending LPIs on vcpu destroy
KVM: arm64: vgic-its: Fix memory leak on the error path of vgic_add_lpi()

Zhang Xiaoxu (1):
cifs: Fix double add page to memcg when cifs_readpages

Zhihao Cheng (2):
ubifs: ubifs_jnl_write_inode: Fix a memory leak bug
ubifs: ubifs_add_orphan: Fix a memory leak bug

Zhu Yanjun (1):
RDMA/rxe: Set sys_image_guid to be aligned with HW IB devices

Zhuang Yanying (1):
KVM: fix overflow of zero page refcount with ksm running

afzal mohammed (1):
s390/irq: replace setup_irq() by request_irq()

peter chang (1):

      scsi: pm80xx: Cleanup command when a reset times out

wanpeng li (1):

      KVM: nVMX: Hold KVM's srcu lock when syncing vmcs12->shadow

zhengbin (1):
media: mc-device.c: fix memleak in media_device_register_entity

author maintainer
#1 lore raw
Documentation/devicetree/bindings/sound/wm8994.txt +12 -6
index 68cccc4653ba..367b58ce1bb9 100644
@@ -14,9 +14,15 @@ Required properties:
   - #gpio-cells : Must be 2. The first cell is the pin number and the
     second cell is used to specify optional parameters (currently unused).
 
-  - AVDD2-supply, DBVDD1-supply, DBVDD2-supply, DBVDD3-supply, CPVDD-supply,
-    SPKVDD1-supply, SPKVDD2-supply : power supplies for the device, as covered
-    in Documentation/devicetree/bindings/regulator/regulator.txt
+  - power supplies for the device, as covered in
+    Documentation/devicetree/bindings/regulator/regulator.txt, depending
+    on compatible:
+    - for wlf,wm1811 and wlf,wm8958:
+      AVDD1-supply, AVDD2-supply, DBVDD1-supply, DBVDD2-supply, DBVDD3-supply,
+      DCVDD-supply, CPVDD-supply, SPKVDD1-supply, SPKVDD2-supply
+    - for wlf,wm8994:
+      AVDD1-supply, AVDD2-supply, DBVDD-supply, DCVDD-supply, CPVDD-supply,
+      SPKVDD1-supply, SPKVDD2-supply
 
 Optional properties:
 
@@ -73,11 +79,11 @@ wm8994: codec@1a {
 
 	lineout1-se;
 
+	AVDD1-supply = <&regulator>;
 	AVDD2-supply = <&regulator>;
 	CPVDD-supply = <&regulator>;
-	DBVDD1-supply = <&regulator>;
-	DBVDD2-supply = <&regulator>;
-	DBVDD3-supply = <&regulator>;
+	DBVDD-supply = <&regulator>;
+	DCVDD-supply = <&regulator>;
 	SPKVDD1-supply = <&regulator>;
 	SPKVDD2-supply = <&regulator>;
 };
Documentation/driver-api/libata.rst +1 -1
index 70e180e6b93d..9f3e5dc31184 100644
@@ -250,7 +250,7 @@ High-level taskfile hooks
 
 ::
 
-    void (*qc_prep) (struct ata_queued_cmd *qc);
+    enum ata_completion_errors (*qc_prep) (struct ata_queued_cmd *qc);
     int (*qc_issue) (struct ata_queued_cmd *qc);
 
 
Makefile +1 -1
index acb2499d9b05..adf384710677 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 4
-SUBLEVEL = 68
+SUBLEVEL = 69
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
arch/arm/include/asm/kvm_emulate.h +8 -3
index cbde9fa15792..c1747fcb86d3 100644
@@ -204,7 +204,7 @@ static inline int kvm_vcpu_dabt_get_rd(struct kvm_vcpu *vcpu)
 	return (kvm_vcpu_get_hsr(vcpu) & HSR_SRT_MASK) >> HSR_SRT_SHIFT;
 }
 
-static inline bool kvm_vcpu_dabt_iss1tw(struct kvm_vcpu *vcpu)
+static inline bool kvm_vcpu_abt_iss1tw(const struct kvm_vcpu *vcpu)
 {
 	return kvm_vcpu_get_hsr(vcpu) & HSR_DABT_S1PTW;
 }
@@ -236,16 +236,21 @@ static inline bool kvm_vcpu_trap_il_is32bit(struct kvm_vcpu *vcpu)
 	return kvm_vcpu_get_hsr(vcpu) & HSR_IL;
 }
 
-static inline u8 kvm_vcpu_trap_get_class(struct kvm_vcpu *vcpu)
+static inline u8 kvm_vcpu_trap_get_class(const struct kvm_vcpu *vcpu)
 {
 	return kvm_vcpu_get_hsr(vcpu) >> HSR_EC_SHIFT;
 }
 
-static inline bool kvm_vcpu_trap_is_iabt(struct kvm_vcpu *vcpu)
+static inline bool kvm_vcpu_trap_is_iabt(const struct kvm_vcpu *vcpu)
 {
 	return kvm_vcpu_trap_get_class(vcpu) == HSR_EC_IABT;
 }
 
+static inline bool kvm_vcpu_trap_is_exec_fault(const struct kvm_vcpu *vcpu)
+{
+	return kvm_vcpu_trap_is_iabt(vcpu) && !kvm_vcpu_abt_iss1tw(vcpu);
+}
+
 static inline u8 kvm_vcpu_trap_get_fault(struct kvm_vcpu *vcpu)
 {
 	return kvm_vcpu_get_hsr(vcpu) & HSR_FSC;
arch/arm/kernel/stacktrace.c +2 -0
index a082f6e4f0f4..76ea4178a55c 100644
@@ -116,6 +116,8 @@ static int save_trace(struct stackframe *frame, void *d)
 		return 0;
 
 	regs = (struct pt_regs *)frame->sp;
+	if ((unsigned long)&regs[1] > ALIGN(frame->sp, THREAD_SIZE))
+		return 0;
 
 	trace->entries[trace->nr_entries++] = regs->ARM_pc;
 
arch/arm/kernel/traps.c +4 -2
index c053abd1fb53..97a512551b21 100644
@@ -64,14 +64,16 @@ static void dump_mem(const char *, const char *, unsigned long, unsigned long);
 
 void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame)
 {
+	unsigned long end = frame + 4 + sizeof(struct pt_regs);
+
 #ifdef CONFIG_KALLSYMS
 	printk("[<%08lx>] (%ps) from [<%08lx>] (%pS)\n", where, (void *)where, from, (void *)from);
 #else
 	printk("Function entered at [<%08lx>] from [<%08lx>]\n", where, from);
 #endif
 
-	if (in_entry_text(from))
-		dump_mem("", "Exception stack", frame + 4, frame + 4 + sizeof(struct pt_regs));
+	if (in_entry_text(from) && end <= ALIGN(frame, THREAD_SIZE))
+		dump_mem("", "Exception stack", frame + 4, end);
 }
 
 void dump_backtrace_stm(u32 *stack, u32 instruction)
arch/arm/mach-omap2/cpuidle34xx.c +7 -2
index 532a3e4b98c6..090a8aafb25e 100644
@@ -109,6 +109,7 @@ static int omap3_enter_idle(struct cpuidle_device *dev,
 			    int index)
 {
 	struct omap3_idle_statedata *cx = &omap3_idle_data[index];
+	int error;
 
 	if (omap_irq_pending() || need_resched())
 		goto return_sleep_time;
@@ -125,8 +126,11 @@ static int omap3_enter_idle(struct cpuidle_device *dev,
 	 * Call idle CPU PM enter notifier chain so that
 	 * VFP context is saved.
 	 */
-	if (cx->mpu_state == PWRDM_POWER_OFF)
-		cpu_pm_enter();
+	if (cx->mpu_state == PWRDM_POWER_OFF) {
+		error = cpu_pm_enter();
+		if (error)
+			goto out_clkdm_set;
+	}
 
 	/* Execute ARM wfi */
 	omap_sram_idle();
@@ -139,6 +143,7 @@ static int omap3_enter_idle(struct cpuidle_device *dev,
 	    pwrdm_read_prev_pwrst(mpu_pd) == PWRDM_POWER_OFF)
 		cpu_pm_exit();
 
+out_clkdm_set:
 	/* Re-allow idle for C1 */
 	if (cx->flags & OMAP_CPUIDLE_CX_NO_CLKDM_IDLE)
 		clkdm_allow_idle(mpu_pd->pwrdm_clkdms[0]);
arch/arm/mach-omap2/cpuidle44xx.c +17 -9
index fe75d4fa6073..6f5f89711f25 100644
@@ -122,6 +122,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
 {
 	struct idle_statedata *cx = state_ptr + index;
 	u32 mpuss_can_lose_context = 0;
+	int error;
 
 	/*
 	 * CPU0 has to wait and stay ON until CPU1 is OFF state.
@@ -159,7 +160,9 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
 	 * Call idle CPU PM enter notifier chain so that
 	 * VFP and per CPU interrupt context is saved.
 	 */
-	cpu_pm_enter();
+	error = cpu_pm_enter();
+	if (error)
+		goto cpu_pm_out;
 
 	if (dev->cpu == 0) {
 		pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state);
@@ -169,13 +172,17 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
 		 * Call idle CPU cluster PM enter notifier chain
 		 * to save GIC and wakeupgen context.
 		 */
-		if (mpuss_can_lose_context)
-			cpu_cluster_pm_enter();
+		if (mpuss_can_lose_context) {
+			error = cpu_cluster_pm_enter();
+			if (error)
+				goto cpu_cluster_pm_out;
+		}
 	}
 
 	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
 	cpu_done[dev->cpu] = true;
 
+cpu_cluster_pm_out:
 	/* Wakeup CPU1 only if it is not offlined */
 	if (dev->cpu == 0 && cpumask_test_cpu(1, cpu_online_mask)) {
 
@@ -197,12 +204,6 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
 		}
 	}
 
-	/*
-	 * Call idle CPU PM exit notifier chain to restore
-	 * VFP and per CPU IRQ context.
-	 */
-	cpu_pm_exit();
-
 	/*
 	 * Call idle CPU cluster PM exit notifier chain
 	 * to restore GIC and wakeupgen context.
@@ -210,6 +211,13 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
 	if (dev->cpu == 0 && mpuss_can_lose_context)
 		cpu_cluster_pm_exit();
 
+	/*
+	 * Call idle CPU PM exit notifier chain to restore
+	 * VFP and per CPU IRQ context.
+	 */
+	cpu_pm_exit();
+
+cpu_pm_out:
 	tick_broadcast_exit();
 
 fail:
arch/arm/mach-omap2/pm34xx.c +6 -2
index 54254fc92c2e..fa66534a7ae2 100644
@@ -194,6 +194,7 @@ void omap_sram_idle(void)
 	int per_next_state = PWRDM_POWER_ON;
 	int core_next_state = PWRDM_POWER_ON;
 	u32 sdrc_pwr = 0;
+	int error;
 
 	mpu_next_state = pwrdm_read_next_pwrst(mpu_pwrdm);
 	switch (mpu_next_state) {
@@ -222,8 +223,11 @@ void omap_sram_idle(void)
 	pwrdm_pre_transition(NULL);
 
 	/* PER */
-	if (per_next_state == PWRDM_POWER_OFF)
-		cpu_cluster_pm_enter();
+	if (per_next_state == PWRDM_POWER_OFF) {
+		error = cpu_cluster_pm_enter();
+		if (error)
+			return;
+	}
 
 	/* CORE */
 	if (core_next_state < PWRDM_POWER_ON) {
arch/arm64/include/asm/kvm_emulate.h +10 -2
index f47081b40523..f65ff6b90f4a 100644
@@ -299,7 +299,7 @@ static inline int kvm_vcpu_dabt_get_rd(const struct kvm_vcpu *vcpu)
 	return (kvm_vcpu_get_hsr(vcpu) & ESR_ELx_SRT_MASK) >> ESR_ELx_SRT_SHIFT;
 }
 
-static inline bool kvm_vcpu_dabt_iss1tw(const struct kvm_vcpu *vcpu)
+static __always_inline bool kvm_vcpu_abt_iss1tw(const struct kvm_vcpu *vcpu)
 {
 	return !!(kvm_vcpu_get_hsr(vcpu) & ESR_ELx_S1PTW);
 }
@@ -307,7 +307,7 @@ static inline bool kvm_vcpu_dabt_iss1tw(const struct kvm_vcpu *vcpu)
 static inline bool kvm_vcpu_dabt_iswrite(const struct kvm_vcpu *vcpu)
 {
 	return !!(kvm_vcpu_get_hsr(vcpu) & ESR_ELx_WNR) ||
-		kvm_vcpu_dabt_iss1tw(vcpu); /* AF/DBM update */
+		kvm_vcpu_abt_iss1tw(vcpu); /* AF/DBM update */
 }
 
 static inline bool kvm_vcpu_dabt_is_cm(const struct kvm_vcpu *vcpu)
@@ -336,6 +336,11 @@ static inline bool kvm_vcpu_trap_is_iabt(const struct kvm_vcpu *vcpu)
 	return kvm_vcpu_trap_get_class(vcpu) == ESR_ELx_EC_IABT_LOW;
 }
 
+static inline bool kvm_vcpu_trap_is_exec_fault(const struct kvm_vcpu *vcpu)
+{
+	return kvm_vcpu_trap_is_iabt(vcpu) && !kvm_vcpu_abt_iss1tw(vcpu);
+}
+
 static inline u8 kvm_vcpu_trap_get_fault(const struct kvm_vcpu *vcpu)
 {
 	return kvm_vcpu_get_hsr(vcpu) & ESR_ELx_FSC;
@@ -373,6 +378,9 @@ static inline int kvm_vcpu_sys_get_rt(struct kvm_vcpu *vcpu)
 
 static inline bool kvm_is_write_fault(struct kvm_vcpu *vcpu)
 {
+	if (kvm_vcpu_abt_iss1tw(vcpu))
+		return true;
+
 	if (kvm_vcpu_trap_is_iabt(vcpu))
 		return false;
 
arch/arm64/include/asm/sections.h +1 -0
index 788ae971f11c..25a73aab438f 100644
@@ -15,6 +15,7 @@ extern char __hyp_text_start[], __hyp_text_end[];
 extern char __idmap_text_start[], __idmap_text_end[];
 extern char __initdata_begin[], __initdata_end[];
 extern char __inittext_begin[], __inittext_end[];
+extern char __exittext_begin[], __exittext_end[];
 extern char __irqentry_text_start[], __irqentry_text_end[];
 extern char __mmuoff_data_start[], __mmuoff_data_end[];
 extern char __entry_tramp_text_start[], __entry_tramp_text_end[];
arch/arm64/kernel/acpi.c +25 -0
index a100483b47c4..46ec402e97ed 100644
@@ -19,6 +19,7 @@
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <linux/irqdomain.h>
+#include <linux/irq_work.h>
 #include <linux/memblock.h>
 #include <linux/of_fdt.h>
 #include <linux/smp.h>
@@ -269,6 +270,7 @@ pgprot_t __acpi_get_mem_attribute(phys_addr_t addr)
 int apei_claim_sea(struct pt_regs *regs)
 {
 	int err = -ENOENT;
+	bool return_to_irqs_enabled;
 	unsigned long current_flags;
 
 	if (!IS_ENABLED(CONFIG_ACPI_APEI_GHES))
@@ -276,6 +278,12 @@ int apei_claim_sea(struct pt_regs *regs)
 
 	current_flags = local_daif_save_flags();
 
+	/* current_flags isn't useful here as daif doesn't tell us about pNMI */
+	return_to_irqs_enabled = !irqs_disabled_flags(arch_local_save_flags());
+
+	if (regs)
+		return_to_irqs_enabled = interrupts_enabled(regs);
+
 	/*
 	 * SEA can interrupt SError, mask it and describe this as an NMI so
 	 * that APEI defers the handling.
@@ -284,6 +292,23 @@ int apei_claim_sea(struct pt_regs *regs)
 	nmi_enter();
 	err = ghes_notify_sea();
 	nmi_exit();
+
+	/*
+	 * APEI NMI-like notifications are deferred to irq_work. Unless
+	 * we interrupted irqs-masked code, we can do that now.
+	 */
+	if (!err) {
+		if (return_to_irqs_enabled) {
+			local_daif_restore(DAIF_PROCCTX_NOIRQ);
+			__irq_enter();
+			irq_work_run();
+			__irq_exit();
+		} else {
+			pr_warn_ratelimited("APEI work queued but not completed");
+			err = -EINPROGRESS;
+		}
+	}
+
 	local_daif_restore(current_flags);
 
 	return err;
arch/arm64/kernel/cpufeature.c +4 -8
index f400cb29b811..f2ec84540414 100644
@@ -160,11 +160,10 @@ static const struct arm64_ftr_bits ftr_id_aa64pfr0[] = {
 	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_GIC_SHIFT, 4, 0),
 	S_ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_ASIMD_SHIFT, 4, ID_AA64PFR0_ASIMD_NI),
 	S_ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_FP_SHIFT, 4, ID_AA64PFR0_FP_NI),
-	/* Linux doesn't care about the EL3 */
 	ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL3_SHIFT, 4, 0),
-	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL2_SHIFT, 4, 0),
-	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL1_SHIFT, 4, ID_AA64PFR0_EL1_64BIT_ONLY),
-	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL0_SHIFT, 4, ID_AA64PFR0_EL0_64BIT_ONLY),
+	ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL2_SHIFT, 4, 0),
+	ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL1_SHIFT, 4, ID_AA64PFR0_EL1_64BIT_ONLY),
+	ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL0_SHIFT, 4, ID_AA64PFR0_EL0_64BIT_ONLY),
 	ARM64_FTR_END,
 };
 
@@ -320,7 +319,7 @@ static const struct arm64_ftr_bits ftr_id_pfr0[] = {
 };
 
 static const struct arm64_ftr_bits ftr_id_dfr0[] = {
-	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, 28, 4, 0),
+	/* [31:28] TraceFilt */
 	S_ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, 24, 4, 0xf),	/* PerfMon */
 	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, 20, 4, 0),
 	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, 16, 4, 0),
@@ -719,9 +718,6 @@ void update_cpu_features(int cpu,
 	taint |= check_update_ftr_reg(SYS_ID_AA64MMFR2_EL1, cpu,
 				      info->reg_id_aa64mmfr2, boot->reg_id_aa64mmfr2);
 
-	/*
-	 * EL3 is not our concern.
-	 */
 	taint |= check_update_ftr_reg(SYS_ID_AA64PFR0_EL1, cpu,
 				      info->reg_id_aa64pfr0, boot->reg_id_aa64pfr0);
 	taint |= check_update_ftr_reg(SYS_ID_AA64PFR1_EL1, cpu,
arch/arm64/kernel/insn.c +18 -4
index a612da533ea2..53bcf5386907 100644
@@ -21,6 +21,7 @@
 #include <asm/fixmap.h>
 #include <asm/insn.h>
 #include <asm/kprobes.h>
+#include <asm/sections.h>
 
 #define AARCH64_INSN_SF_BIT	BIT(31)
 #define AARCH64_INSN_N_BIT	BIT(22)
@@ -78,16 +79,29 @@ bool aarch64_insn_is_branch_imm(u32 insn)
 
 static DEFINE_RAW_SPINLOCK(patch_lock);
 
+static bool is_exit_text(unsigned long addr)
+{
+	/* discarded with init text/data */
+	return system_state < SYSTEM_RUNNING &&
+		addr >= (unsigned long)__exittext_begin &&
+		addr < (unsigned long)__exittext_end;
+}
+
+static bool is_image_text(unsigned long addr)
+{
+	return core_kernel_text(addr) || is_exit_text(addr);
+}
+
 static void __kprobes *patch_map(void *addr, int fixmap)
 {
 	unsigned long uintaddr = (uintptr_t) addr;
-	bool module = !core_kernel_text(uintaddr);
+	bool image = is_image_text(uintaddr);
 	struct page *page;
 
-	if (module && IS_ENABLED(CONFIG_STRICT_MODULE_RWX))
-		page = vmalloc_to_page(addr);
-	else if (!module)
+	if (image)
 		page = phys_to_page(__pa_symbol(addr));
+	else if (IS_ENABLED(CONFIG_STRICT_MODULE_RWX))
+		page = vmalloc_to_page(addr);
 	else
 		return addr;
 
arch/arm64/kernel/vmlinux.lds.S +3 -0
index 4f77de8ce138..0bab37b1acbe 100644
@@ -170,9 +170,12 @@ SECTIONS
 	__inittext_begin = .;
 
 	INIT_TEXT_SECTION(8)
+
+	__exittext_begin = .;
 	.exit.text : {
 		ARM_EXIT_KEEP(EXIT_TEXT)
 	}
+	__exittext_end = .;
 
 	. = ALIGN(4);
 	.altinstructions : {
arch/arm64/kvm/hyp/switch.c +1 -1
index 65660b614474..84964983198e 100644
@@ -496,7 +496,7 @@ static bool __hyp_text fixup_guest_exit(struct kvm_vcpu *vcpu, u64 *exit_code)
 			kvm_vcpu_trap_get_fault_type(vcpu) == FSC_FAULT &&
 			kvm_vcpu_dabt_isvalid(vcpu) &&
 			!kvm_vcpu_dabt_isextabt(vcpu) &&
-			!kvm_vcpu_dabt_iss1tw(vcpu);
+			!kvm_vcpu_abt_iss1tw(vcpu);
 
 		if (valid) {
 			int ret = __vgic_v2_perform_cpuif_access(vcpu);
arch/arm64/mm/fault.c +7 -5
index d26e6cd28953..2a7339aeb1ad 100644
@@ -654,11 +654,13 @@ static int do_sea(unsigned long addr, unsigned int esr, struct pt_regs *regs)
 
 	inf = esr_to_fault_info(esr);
 
-	/*
-	 * Return value ignored as we rely on signal merging.
-	 * Future patches will make this more robust.
-	 */
-	apei_claim_sea(regs);
+	if (user_mode(regs) && apei_claim_sea(regs) == 0) {
+		/*
+		 * APEI claimed this as a firmware-first notification.
+		 * Some processing deferred to task_work before ret_to_user().
+		 */
+		return 0;
+	}
 
 	if (esr & ESR_ELx_FnV)
 		siaddr = NULL;
arch/m68k/q40/config.c +1 -0
index e63eb5f06999..f31890078197 100644
@@ -264,6 +264,7 @@ static int q40_get_rtc_pll(struct rtc_pll_info *pll)
 {
 	int tmp = Q40_RTC_CTRL;
 
+	pll->pll_ctrl = 0;
 	pll->pll_value = tmp & Q40_RTC_PLL_MASK;
 	if (tmp & Q40_RTC_PLL_SIGN)
 		pll->pll_value = -pll->pll_value;
arch/mips/include/asm/cpu-type.h +1 -0
index 7bbb66760a07..1809c408736b 100644
@@ -47,6 +47,7 @@ static inline int __pure __get_cpu_type(const int cpu_type)
 	case CPU_34K:
 	case CPU_1004K:
 	case CPU_74K:
+	case CPU_1074K:
 	case CPU_M14KC:
 	case CPU_M14KEC:
 	case CPU_INTERAPTIV:
arch/powerpc/include/asm/kvm_asm.h +3 -0
index 635fb154b33f..a3633560493b 100644
@@ -150,4 +150,7 @@
 
 #define KVM_INST_FETCH_FAILED	-1
 
+/* Extract PO and XOP opcode fields */
+#define PO_XOP_OPCODE_MASK 0xfc0007fe
+
 #endif /* __POWERPC_KVM_ASM_H__ */
arch/powerpc/kernel/Makefile +1 -1
index dc0780f930d5..59260eb96291 100644
@@ -19,6 +19,7 @@ CFLAGS_btext.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
 CFLAGS_prom.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
 
 CFLAGS_prom_init.o += $(call cc-option, -fno-stack-protector)
+CFLAGS_prom_init.o += -DDISABLE_BRANCH_PROFILING
 
 ifdef CONFIG_FUNCTION_TRACER
 # Do not trace early boot code
@@ -36,7 +37,6 @@ KASAN_SANITIZE_btext.o := n
 ifdef CONFIG_KASAN
 CFLAGS_early_32.o += -DDISABLE_BRANCH_PROFILING
 CFLAGS_cputable.o += -DDISABLE_BRANCH_PROFILING
-CFLAGS_prom_init.o += -DDISABLE_BRANCH_PROFILING
 CFLAGS_btext.o += -DDISABLE_BRANCH_PROFILING
 endif
 
arch/powerpc/kernel/eeh.c +1 -1
index bc8a551013be..c35069294ecf 100644
@@ -503,7 +503,7 @@ int eeh_dev_check_failure(struct eeh_dev *edev)
 	rc = 1;
 	if (pe->state & EEH_PE_ISOLATED) {
 		pe->check_count++;
-		if (pe->check_count % EEH_MAX_FAILS == 0) {
+		if (pe->check_count == EEH_MAX_FAILS) {
 			dn = pci_device_to_OF_node(dev);
 			if (dn)
 				location = of_get_property(dn, "ibm,loc-code",
arch/powerpc/kernel/traps.c +3 -3
index 014ff0701f24..9432fc6af28a 100644
@@ -510,11 +510,11 @@ void system_reset_exception(struct pt_regs *regs)
 #ifdef CONFIG_PPC_BOOK3S_64
 	BUG_ON(get_paca()->in_nmi == 0);
 	if (get_paca()->in_nmi > 1)
-		nmi_panic(regs, "Unrecoverable nested System Reset");
+		die("Unrecoverable nested System Reset", regs, SIGABRT);
 #endif
 	/* Must die if the interrupt is not recoverable */
 	if (!(regs->msr & MSR_RI))
-		nmi_panic(regs, "Unrecoverable System Reset");
+		die("Unrecoverable System Reset", regs, SIGABRT);
 
 	if (saved_hsrrs) {
 		mtspr(SPRN_HSRR0, hsrr0);
@@ -858,7 +858,7 @@ void machine_check_exception(struct pt_regs *regs)
 
 	/* Must die if the interrupt is not recoverable */
 	if (!(regs->msr & MSR_RI))
-		nmi_panic(regs, "Unrecoverable Machine check");
+		die("Unrecoverable Machine check", regs, SIGBUS);
 
 	return;
 
arch/powerpc/kvm/book3s_64_mmu_radix.c +5 -0
index da8375437d16..9d7344835469 100644
@@ -1104,6 +1104,11 @@ void kvmppc_radix_flush_memslot(struct kvm *kvm,
 					 kvm->arch.lpid);
 		gpa += PAGE_SIZE;
 	}
+	/*
+	 * Increase the mmu notifier sequence number to prevent any page
+	 * fault that read the memslot earlier from writing a PTE.
+	 */
+	kvm->mmu_notifier_seq++;
 	spin_unlock(&kvm->mmu_lock);
 }
 
arch/powerpc/kvm/book3s_hv_tm.c +23 -5
index 0db937497169..cc90b8b82329 100644
@@ -3,6 +3,8 @@
  * Copyright 2017 Paul Mackerras, IBM Corp. <[email protected]>
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/kvm_host.h>
 
 #include <asm/kvm_ppc.h>
@@ -44,7 +46,18 @@ int kvmhv_p9_tm_emulation(struct kvm_vcpu *vcpu)
 	u64 newmsr, bescr;
 	int ra, rs;
 
-	switch (instr & 0xfc0007ff) {
+	/*
+	 * rfid, rfebb, and mtmsrd encode bit 31 = 0 since it's a reserved bit
+	 * in these instructions, so masking bit 31 out doesn't change these
+	 * instructions. For treclaim., tsr., and trechkpt. instructions if bit
+	 * 31 = 0 then they are per ISA invalid forms, however P9 UM, in section
+	 * 4.6.10 Book II Invalid Forms, informs specifically that ignoring bit
+	 * 31 is an acceptable way to handle these invalid forms that have
+	 * bit 31 = 0. Moreover, for emulation purposes both forms (w/ and wo/
+	 * bit 31 set) can generate a softpatch interrupt. Hence both forms
+	 * are handled below for these instructions so they behave the same way.
+	 */
+	switch (instr & PO_XOP_OPCODE_MASK) {
 	case PPC_INST_RFID:
 		/* XXX do we need to check for PR=0 here? */
 		newmsr = vcpu->arch.shregs.srr1;
@@ -105,7 +118,8 @@ int kvmhv_p9_tm_emulation(struct kvm_vcpu *vcpu)
 		vcpu->arch.shregs.msr = newmsr;
 		return RESUME_GUEST;
 
-	case PPC_INST_TSR:
+	/* ignore bit 31, see comment above */
+	case (PPC_INST_TSR & PO_XOP_OPCODE_MASK):
 		/* check for PR=1 and arch 2.06 bit set in PCR */
 		if ((msr & MSR_PR) && (vcpu->arch.vcore->pcr & PCR_ARCH_206)) {
 			/* generate an illegal instruction interrupt */
@@ -140,7 +154,8 @@ int kvmhv_p9_tm_emulation(struct kvm_vcpu *vcpu)
 		vcpu->arch.shregs.msr = msr;
 		return RESUME_GUEST;
 
-	case PPC_INST_TRECLAIM:
+	/* ignore bit 31, see comment above */
+	case (PPC_INST_TRECLAIM & PO_XOP_OPCODE_MASK):
 		/* check for TM disabled in the HFSCR or MSR */
 		if (!(vcpu->arch.hfscr & HFSCR_TM)) {
 			/* generate an illegal instruction interrupt */
@@ -176,7 +191,8 @@ int kvmhv_p9_tm_emulation(struct kvm_vcpu *vcpu)
 		vcpu->arch.shregs.msr &= ~MSR_TS_MASK;
 		return RESUME_GUEST;
 
-	case PPC_INST_TRECHKPT:
+	/* ignore bit 31, see comment above */
+	case (PPC_INST_TRECHKPT & PO_XOP_OPCODE_MASK):
 		/* XXX do we need to check for PR=0 here? */
 		/* check for TM disabled in the HFSCR or MSR */
 		if (!(vcpu->arch.hfscr & HFSCR_TM)) {
@@ -208,6 +224,8 @@ int kvmhv_p9_tm_emulation(struct kvm_vcpu *vcpu)
 	}
 
 	/* What should we do here? We didn't recognize the instruction */
-	WARN_ON_ONCE(1);
+	kvmppc_core_queue_program(vcpu, SRR1_PROGILL);
+	pr_warn_ratelimited("Unrecognized TM-related instruction %#x for emulation", instr);
+
 	return RESUME_GUEST;
 }
arch/powerpc/kvm/book3s_hv_tm_builtin.c +14 -2
index 217246279dfa..fad931f224ef 100644
@@ -23,7 +23,18 @@ int kvmhv_p9_tm_emulation_early(struct kvm_vcpu *vcpu)
 	u64 newmsr, msr, bescr;
 	int rs;
 
-	switch (instr & 0xfc0007ff) {
+	/*
+	 * rfid, rfebb, and mtmsrd encode bit 31 = 0 since it's a reserved bit
+	 * in these instructions, so masking bit 31 out doesn't change these
+	 * instructions. For the tsr. instruction if bit 31 = 0 then it is per
+	 * ISA an invalid form, however P9 UM, in section 4.6.10 Book II Invalid
+	 * Forms, informs specifically that ignoring bit 31 is an acceptable way
+	 * to handle TM-related invalid forms that have bit 31 = 0. Moreover,
+	 * for emulation purposes both forms (w/ and wo/ bit 31 set) can
+	 * generate a softpatch interrupt. Hence both forms are handled below
+	 * for tsr. to make them behave the same way.
+	 */
+	switch (instr & PO_XOP_OPCODE_MASK) {
 	case PPC_INST_RFID:
 		/* XXX do we need to check for PR=0 here? */
 		newmsr = vcpu->arch.shregs.srr1;
@@ -73,7 +84,8 @@ int kvmhv_p9_tm_emulation_early(struct kvm_vcpu *vcpu)
 		vcpu->arch.shregs.msr = newmsr;
 		return 1;
 
-	case PPC_INST_TSR:
+	/* ignore bit 31, see comment above */
+	case (PPC_INST_TSR & PO_XOP_OPCODE_MASK):
 		/* we know the MSR has the TS field = S (0b01) here */
 		msr = vcpu->arch.shregs.msr;
 		/* check for PR=1 and arch 2.06 bit set in PCR */
arch/powerpc/mm/book3s64/iommu_api.c +21 -18
index 56cc84520577..ef164851738b 100644
@@ -121,24 +121,6 @@ static long mm_iommu_do_alloc(struct mm_struct *mm, unsigned long ua,
 		goto free_exit;
 	}
 
-	pageshift = PAGE_SHIFT;
-	for (i = 0; i < entries; ++i) {
-		struct page *page = mem->hpages[i];
-
-		/*
-		 * Allow to use larger than 64k IOMMU pages. Only do that
-		 * if we are backed by hugetlb.
-		 */
-		if ((mem->pageshift > PAGE_SHIFT) && PageHuge(page))
-			pageshift = page_shift(compound_head(page));
-		mem->pageshift = min(mem->pageshift, pageshift);
-		/*
-		 * We don't need struct page reference any more, switch
-		 * to physical address.
-		 */
-		mem->hpas[i] = page_to_pfn(page) << PAGE_SHIFT;
-	}
-
 good_exit:
 	atomic64_set(&mem->mapped, 1);
 	mem->used = 1;
@@ -158,6 +140,27 @@ static long mm_iommu_do_alloc(struct mm_struct *mm, unsigned long ua,
 		}
 	}
 
+	if (mem->dev_hpa == MM_IOMMU_TABLE_INVALID_HPA) {
+		/*
+		 * Allow to use larger than 64k IOMMU pages. Only do that
+		 * if we are backed by hugetlb. Skip device memory as it is not
+		 * backed with page structs.
+		 */
+		pageshift = PAGE_SHIFT;
+		for (i = 0; i < entries; ++i) {
+			struct page *page = mem->hpages[i];
+
+			if ((mem->pageshift > PAGE_SHIFT) && PageHuge(page))
+				pageshift = page_shift(compound_head(page));
+			mem->pageshift = min(mem->pageshift, pageshift);
+			/*
+			 * We don't need struct page reference any more, switch
+			 * to physical address.
+			 */
+			mem->hpas[i] = page_to_pfn(page) << PAGE_SHIFT;
+		}
+	}
+
 	list_add_rcu(&mem->next, &mm->context.iommu_group_mem_list);
 
 	mutex_unlock(&mem_list_mutex);
arch/powerpc/perf/imc-pmu.c +149 -24

286 lines not on this page · raw message

arch/riscv/include/asm/ftrace.h +7 -0
index c6dcc5291f97..02fbc175142e 100644
@@ -63,4 +63,11 @@ do {									\
  * Let auipc+jalr be the basic *mcount unit*, so we make it 8 bytes here.
  */
 #define MCOUNT_INSN_SIZE 8
+
+#ifndef __ASSEMBLY__
+struct dyn_ftrace;
+int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec);
+#define ftrace_init_nop ftrace_init_nop
+#endif
+
 #endif
arch/riscv/kernel/ftrace.c +19 -0
index c40fdcdeb950..291c579e1245 100644
@@ -88,6 +88,25 @@ int ftrace_make_nop(struct module *mod, struct dyn_ftrace *rec,
 	return __ftrace_modify_call(rec->ip, addr, false);
 }
 
+
+/*
+ * This is called early on, and isn't wrapped by
+ * ftrace_arch_code_modify_{prepare,post_process}() and therefor doesn't hold
+ * text_mutex, which triggers a lockdep failure.  SMP isn't running so we could
+ * just directly poke the text, but it's simpler to just take the lock
+ * ourselves.
+ */
+int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec)
+{
+	int out;
+
+	ftrace_arch_code_modify_prepare();
+	out = ftrace_make_nop(mod, rec, MCOUNT_ADDR);
+	ftrace_arch_code_modify_post_process();
+
+	return out;
+}
+
 int ftrace_update_ftrace_func(ftrace_func_t func)
 {
 	int ret = __ftrace_modify_call((unsigned long)&ftrace_call,
arch/s390/include/asm/pgtable.h +32 -12

58 lines not on this page · raw message

arch/s390/include/asm/stacktrace.h +11 -0
index 0ae4bbf7779c..3679d224fd3c 100644
@@ -111,4 +111,15 @@ struct stack_frame {
 	r2;								\
 })
 
+#define CALL_ON_STACK_NORETURN(fn, stack)				\
+({									\
+	asm volatile(							\
+		"	la	15,0(%[_stack])\n"			\
+		"	xc	%[_bc](8,15),%[_bc](15)\n"		\
+		"	brasl	14,%[_fn]\n"				\
+		::[_bc] "i" (offsetof(struct stack_frame, back_chain)),	\
+		  [_stack] "a" (stack), [_fn] "X" (fn));		\
+	BUG();								\
+})
+
 #endif /* _ASM_S390_STACKTRACE_H */
arch/s390/kernel/irq.c +2 -6
index 8371855042dc..da550cb8b31b 100644
@@ -294,11 +294,6 @@ static irqreturn_t do_ext_interrupt(int irq, void *dummy)
 	return IRQ_HANDLED;
 }
 
-static struct irqaction external_interrupt = {
-	.name	 = "EXT",
-	.handler = do_ext_interrupt,
-};
-
 void __init init_ext_interrupts(void)
 {
 	int idx;
@@ -308,7 +303,8 @@ void __init init_ext_interrupts(void)
 
 	irq_set_chip_and_handler(EXT_INTERRUPT,
 				 &dummy_irq_chip, handle_percpu_irq);
-	setup_irq(EXT_INTERRUPT, &external_interrupt);
+	if (request_irq(EXT_INTERRUPT, do_ext_interrupt, 0, "EXT", NULL))
+		panic("Failed to register EXT interrupt\n");
 }
 
 static DEFINE_SPINLOCK(irq_subclass_lock);
arch/s390/kernel/perf_cpum_sf.c +4 -5
index 229e1e2f8253..996e447ead3a 100644
@@ -1429,8 +1429,8 @@ static int aux_output_begin(struct perf_output_handle *handle,
 		idx = aux->empty_mark + 1;
 		for (i = 0; i < range_scan; i++, idx++) {
 			te = aux_sdb_trailer(aux, idx);
-			te->flags = te->flags & ~SDB_TE_BUFFER_FULL_MASK;
-			te->flags = te->flags & ~SDB_TE_ALERT_REQ_MASK;
+			te->flags &= ~(SDB_TE_BUFFER_FULL_MASK |
+				       SDB_TE_ALERT_REQ_MASK);
 			te->overflow = 0;
 		}
 		/* Save the position of empty SDBs */
@@ -1477,8 +1477,7 @@ static bool aux_set_alert(struct aux_buffer *aux, unsigned long alert_index,
 	te = aux_sdb_trailer(aux, alert_index);
 	do {
 		orig_flags = te->flags;
-		orig_overflow = te->overflow;
-		*overflow = orig_overflow;
+		*overflow = orig_overflow = te->overflow;
 		if (orig_flags & SDB_TE_BUFFER_FULL_MASK) {
 			/*
 			 * SDB is already set by hardware.
@@ -1712,7 +1711,7 @@ static void *aux_buffer_setup(struct perf_event *event, void **pages,
 	}
 
 	/* Allocate aux_buffer struct for the event */
-	aux = kmalloc(sizeof(struct aux_buffer), GFP_KERNEL);
+	aux = kzalloc(sizeof(struct aux_buffer), GFP_KERNEL);
 	if (!aux)
 		goto no_aux;
 	sfb = &aux->sfb;
arch/s390/kernel/setup.c +4 -11
index 07b2b61a0289..61c02a162d37 100644
@@ -356,7 +356,6 @@ early_initcall(async_stack_realloc);
 
 void __init arch_call_rest_init(void)
 {
-	struct stack_frame *frame;
 	unsigned long stack;
 
 	stack = stack_alloc();
@@ -369,13 +368,7 @@ void __init arch_call_rest_init(void)
 	set_task_stack_end_magic(current);
 	stack += STACK_INIT_OFFSET;
 	S390_lowcore.kernel_stack = stack;
-	frame = (struct stack_frame *) stack;
-	memset(frame, 0, sizeof(*frame));
-	/* Branch to rest_init on the new stack, never returns */
-	asm volatile(
-		"	la	15,0(%[_frame])\n"
-		"	jg	rest_init\n"
-		: : [_frame] "a" (frame));
+	CALL_ON_STACK_NORETURN(rest_init, stack);
 }
 
 static void __init setup_lowcore_dat_off(void)
@@ -634,7 +627,7 @@ static struct notifier_block kdump_mem_nb = {
 /*
  * Make sure that the area behind memory_end is protected
  */
-static void reserve_memory_end(void)
+static void __init reserve_memory_end(void)
 {
 	if (memory_end_set)
 		memblock_reserve(memory_end, ULONG_MAX);
@@ -643,7 +636,7 @@ static void reserve_memory_end(void)
 /*
  * Make sure that oldmem, where the dump is stored, is protected
  */
-static void reserve_oldmem(void)
+static void __init reserve_oldmem(void)
 {
 #ifdef CONFIG_CRASH_DUMP
 	if (OLDMEM_BASE)
@@ -655,7 +648,7 @@ static void reserve_oldmem(void)
 /*
  * Make sure that oldmem, where the dump is stored, is protected
  */
-static void remove_oldmem(void)
+static void __init remove_oldmem(void)
 {
 #ifdef CONFIG_CRASH_DUMP
 	if (OLDMEM_BASE)
arch/s390/kernel/smp.c +1 -1
index 66bf050d785c..ad426cc656e5 100644
@@ -878,7 +878,7 @@ static void __no_sanitize_address smp_start_secondary(void *cpuvoid)
 	S390_lowcore.restart_source = -1UL;
 	__ctl_load(S390_lowcore.cregs_save_area, 0, 15);
 	__load_psw_mask(PSW_KERNEL_BITS | PSW_MASK_DAT);
-	CALL_ON_STACK(smp_init_secondary, S390_lowcore.kernel_stack, 0);
+	CALL_ON_STACK_NORETURN(smp_init_secondary, S390_lowcore.kernel_stack);
 }
 
 /* Upping and downing of CPUs */
arch/x86/include/asm/crash.h +6 -0
index ef5638f641f2..88eadd08ad70 100644
@@ -10,4 +10,10 @@ int crash_setup_memmap_entries(struct kimage *image,
 		struct boot_params *params);
 void crash_smp_send_stop(void);
 
+#ifdef CONFIG_KEXEC_CORE
+void __init crash_reserve_low_1M(void);
+#else
+static inline void __init crash_reserve_low_1M(void) { }
+#endif
+
 #endif /* _ASM_X86_CRASH_H */
arch/x86/include/asm/nospec-branch.h +2 -2
index 5c24a7b35166..b222a3595946 100644
@@ -320,7 +320,7 @@ DECLARE_STATIC_KEY_FALSE(mds_idle_clear);
  * combination with microcode which triggers a CPU buffer flush when the
  * instruction is executed.
  */
-static inline void mds_clear_cpu_buffers(void)
+static __always_inline void mds_clear_cpu_buffers(void)
 {
 	static const u16 ds = __KERNEL_DS;
 
@@ -341,7 +341,7 @@ static inline void mds_clear_cpu_buffers(void)
  *
  * Clear CPU buffers if the corresponding static key is enabled
  */
-static inline void mds_user_clear_cpu_buffers(void)
+static __always_inline void mds_user_clear_cpu_buffers(void)
 {
 	if (static_branch_likely(&mds_user_clear))
 		mds_clear_cpu_buffers();
arch/x86/include/asm/pkeys.h +5 -0
index 19b137f1b3be..2ff9b98812b7 100644
@@ -4,6 +4,11 @@
 
 #define ARCH_DEFAULT_PKEY	0
 
+/*
+ * If more than 16 keys are ever supported, a thorough audit
+ * will be necessary to ensure that the types that store key
+ * numbers and masks have sufficient capacity.
+ */
 #define arch_max_pkey() (boot_cpu_has(X86_FEATURE_OSPKE) ? 16 : 1)
 
 extern int arch_set_user_pkey_access(struct task_struct *tsk, int pkey,
arch/x86/kernel/apic/io_apic.c +1 -0
index ea6d9da9b094..4b6301946f45 100644
@@ -2256,6 +2256,7 @@ static inline void __init check_timer(void)
 	legacy_pic->init(0);
 	legacy_pic->make_irq(0);
 	apic_write(APIC_LVT0, APIC_DM_EXTINT);
+	legacy_pic->unmask(0);
 
 	unlock_ExtINT_logic();
 
arch/x86/kernel/crash.c +15 -0
index eb651fbde92a..ff25a2ea271c 100644
@@ -24,6 +24,7 @@
 #include <linux/export.h>
 #include <linux/slab.h>
 #include <linux/vmalloc.h>
+#include <linux/memblock.h>
 
 #include <asm/processor.h>
 #include <asm/hardirq.h>
@@ -39,6 +40,7 @@
 #include <asm/virtext.h>
 #include <asm/intel_pt.h>
 #include <asm/crash.h>
+#include <asm/cmdline.h>
 
 /* Used while preparing memory map entries for second kernel */
 struct crash_memmap_data {
@@ -68,6 +70,19 @@ static inline void cpu_crash_vmclear_loaded_vmcss(void)
 	rcu_read_unlock();
 }
 
+/*
+ * When the crashkernel option is specified, only use the low
+ * 1M for the real mode trampoline.
+ */
+void __init crash_reserve_low_1M(void)
+{
+	if (cmdline_find_option(boot_command_line, "crashkernel", NULL, 0) < 0)
+		return;
+
+	memblock_reserve(0, 1<<20);
+	pr_info("Reserving the low 1M of memory for crashkernel\n");
+}
+
 #if defined(CONFIG_SMP) && defined(CONFIG_X86_LOCAL_APIC)
 
 static void kdump_nmi_callback(int cpu, struct pt_regs *regs)
arch/x86/kernel/fpu/xstate.c +7 -2
index 755eb26cbec0..735d1f1bbabc 100644
@@ -895,8 +895,6 @@ const void *get_xsave_field_ptr(int xfeature_nr)
 
 #ifdef CONFIG_ARCH_HAS_PKEYS
 
-#define NR_VALID_PKRU_BITS (CONFIG_NR_PROTECTION_KEYS * 2)
-#define PKRU_VALID_MASK (NR_VALID_PKRU_BITS - 1)
 /*
  * This will go out and modify PKRU register to set the access
  * rights for @pkey to @init_val.
@@ -915,6 +913,13 @@ int arch_set_user_pkey_access(struct task_struct *tsk, int pkey,
 	if (!boot_cpu_has(X86_FEATURE_OSPKE))
 		return -EINVAL;
 
+	/*
+	 * This code should only be called with valid 'pkey'
+	 * values originating from in-kernel users.  Complain
+	 * if a bad value is observed.
+	 */
+	WARN_ON_ONCE(pkey >= arch_max_pkey());
+
 	/* Set the bits we need in PKRU:  */
 	if (init_val & PKEY_DISABLE_ACCESS)
 		new_pkru_bits |= PKRU_AD_BIT;
arch/x86/kvm/emulate.c +2 -0
index 128d3ad46e96..cc7823e7ef96 100644
@@ -5836,6 +5836,8 @@ int x86_emulate_insn(struct x86_emulate_ctxt *ctxt)
 	}
 
 	ctxt->eip = ctxt->_eip;
+	if (ctxt->mode != X86EMUL_MODE_PROT64)
+		ctxt->eip = (u32)ctxt->_eip;
 
 done:
 	if (rc == X86EMUL_PROPAGATE_FAULT) {
arch/x86/kvm/lapic.c +1 -1
index 6920f1d3b66f..9f793c9649cd 100644
@@ -1684,7 +1684,7 @@ static void start_sw_period(struct kvm_lapic *apic)
 
 	hrtimer_start(&apic->lapic_timer.timer,
 		apic->lapic_timer.target_expiration,
-		HRTIMER_MODE_ABS);
+		HRTIMER_MODE_ABS_HARD);
 }
 
 bool kvm_lapic_hv_timer_in_use(struct kvm_vcpu *vcpu)
arch/x86/kvm/mmutrace.h +1 -1
index 3c6522b84ff1..ffcd96fc02d0 100644
@@ -339,7 +339,7 @@ TRACE_EVENT(
 		/* These depend on page entry type, so compute them now.  */
 		__field(bool, r)
 		__field(bool, x)
-		__field(u8, u)
+		__field(signed char, u)
 	),
 
 	TP_fast_assign(
arch/x86/kvm/svm.c +7 -4
index 3243a80ea32c..b58495fde2e8 100644
@@ -787,9 +787,6 @@ static int skip_emulated_instruction(struct kvm_vcpu *vcpu)
 		if (!kvm_emulate_instruction(vcpu, EMULTYPE_SKIP))
 			return 0;
 	} else {
-		if (svm->next_rip - kvm_rip_read(vcpu) > MAX_INST_SIZE)
-			pr_err("%s: ip 0x%lx next 0x%llx\n",
-			       __func__, kvm_rip_read(vcpu), svm->next_rip);
 		kvm_rip_write(vcpu, svm->next_rip);
 	}
 	svm_set_interrupt_shadow(vcpu, 0);
@@ -3970,6 +3967,12 @@ static int iret_interception(struct vcpu_svm *svm)
 	return 1;
 }
 
+static int invd_interception(struct vcpu_svm *svm)
+{
+	/* Treat an INVD instruction as a NOP and just skip it. */
+	return kvm_skip_emulated_instruction(&svm->vcpu);
+}
+
 static int invlpg_interception(struct vcpu_svm *svm)
 {
 	if (!static_cpu_has(X86_FEATURE_DECODEASSISTS))
@@ -4822,7 +4825,7 @@ static int (*const svm_exit_handlers[])(struct vcpu_svm *svm) = {
 	[SVM_EXIT_RDPMC]			= rdpmc_interception,
 	[SVM_EXIT_CPUID]			= cpuid_interception,
 	[SVM_EXIT_IRET]                         = iret_interception,
-	[SVM_EXIT_INVD]                         = emulate_on_interception,
+	[SVM_EXIT_INVD]                         = invd_interception,
 	[SVM_EXIT_PAUSE]			= pause_interception,
 	[SVM_EXIT_HLT]				= halt_interception,
 	[SVM_EXIT_INVLPG]			= invlpg_interception,
arch/x86/kvm/vmx/vmx.c +21 -5
index a1e62dda5607..2a1ed3aae100 100644
@@ -1130,6 +1130,10 @@ void vmx_prepare_switch_to_guest(struct kvm_vcpu *vcpu)
 					   vmx->guest_msrs[i].mask);
 
 	}
+
+    	if (vmx->nested.need_vmcs12_to_shadow_sync)
+		nested_sync_vmcs12_to_shadow(vcpu);
+
 	if (vmx->guest_state_loaded)
 		return;
 
@@ -1537,7 +1541,7 @@ static int vmx_rtit_ctl_check(struct kvm_vcpu *vcpu, u64 data)
 
 static int skip_emulated_instruction(struct kvm_vcpu *vcpu)
 {
-	unsigned long rip;
+	unsigned long rip, orig_rip;
 
 	/*
 	 * Using VMCS.VM_EXIT_INSTRUCTION_LEN on EPT misconfig depends on
@@ -1549,8 +1553,17 @@ static int skip_emulated_instruction(struct kvm_vcpu *vcpu)
 	 */
 	if (!static_cpu_has(X86_FEATURE_HYPERVISOR) ||
 	    to_vmx(vcpu)->exit_reason != EXIT_REASON_EPT_MISCONFIG) {
-		rip = kvm_rip_read(vcpu);
-		rip += vmcs_read32(VM_EXIT_INSTRUCTION_LEN);
+		orig_rip = kvm_rip_read(vcpu);
+		rip = orig_rip + vmcs_read32(VM_EXIT_INSTRUCTION_LEN);
+#ifdef CONFIG_X86_64
+		/*
+		 * We need to mask out the high 32 bits of RIP if not in 64-bit
+		 * mode, but just finding out that we are in 64-bit mode is
+		 * quite expensive.  Only do it if there was a carry.
+		 */
+		if (unlikely(((rip ^ orig_rip) >> 31) == 3) && !is_64_bit_mode(vcpu))
+			rip = (u32)rip;
+#endif
 		kvm_rip_write(vcpu, rip);
 	} else {
 		if (!kvm_emulate_instruction(vcpu, EMULTYPE_SKIP))
@@ -6486,8 +6499,11 @@ static void vmx_vcpu_run(struct kvm_vcpu *vcpu)
 		vmcs_write32(PLE_WINDOW, vmx->ple_window);
 	}
 
-	if (vmx->nested.need_vmcs12_to_shadow_sync)
-		nested_sync_vmcs12_to_shadow(vcpu);
+	/*
+	 * We did this in prepare_switch_to_guest, because it needs to
+	 * be within srcu_read_lock.
+	 */
+	WARN_ON_ONCE(vmx->nested.need_vmcs12_to_shadow_sync);
 
 	if (test_bit(VCPU_REGS_RSP, (unsigned long *)&vcpu->arch.regs_dirty))
 		vmcs_writel(GUEST_RSP, vcpu->arch.regs[VCPU_REGS_RSP]);
arch/x86/kvm/x86.c +10 -3
index 8920ee7b2881..12e83297ea02 100644
@@ -973,6 +973,7 @@ int kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)
 	unsigned long old_cr4 = kvm_read_cr4(vcpu);
 	unsigned long pdptr_bits = X86_CR4_PGE | X86_CR4_PSE | X86_CR4_PAE |
 				   X86_CR4_SMEP;
+	unsigned long mmu_role_bits = pdptr_bits | X86_CR4_SMAP | X86_CR4_PKE;
 
 	if (kvm_valid_cr4(vcpu, cr4))
 		return 1;
@@ -1000,7 +1001,7 @@ int kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)
 	if (kvm_x86_ops->set_cr4(vcpu, cr4))
 		return 1;
 
-	if (((cr4 ^ old_cr4) & pdptr_bits) ||
+	if (((cr4 ^ old_cr4) & mmu_role_bits) ||
 	    (!(cr4 & X86_CR4_PCIDE) && (old_cr4 & X86_CR4_PCIDE)))
 		kvm_mmu_reset_context(vcpu);
 
@@ -5050,10 +5051,13 @@ long kvm_arch_vm_ioctl(struct file *filp,
 		r = -EFAULT;
 		if (copy_from_user(&u.ps, argp, sizeof(u.ps)))
 			goto out;
+		mutex_lock(&kvm->lock);
 		r = -ENXIO;
 		if (!kvm->arch.vpit)
-			goto out;
+			goto set_pit_out;
 		r = kvm_vm_ioctl_set_pit(kvm, &u.ps);
+set_pit_out:
+		mutex_unlock(&kvm->lock);
 		break;
 	}
 	case KVM_GET_PIT2: {
@@ -5073,10 +5077,13 @@ long kvm_arch_vm_ioctl(struct file *filp,
 		r = -EFAULT;
 		if (copy_from_user(&u.ps2, argp, sizeof(u.ps2)))
 			goto out;
+		mutex_lock(&kvm->lock);
 		r = -ENXIO;
 		if (!kvm->arch.vpit)
-			goto out;
+			goto set_pit2_out;
 		r = kvm_vm_ioctl_set_pit2(kvm, &u.ps2);
+set_pit2_out:
+		mutex_unlock(&kvm->lock);
 		break;
 	}
 	case KVM_REINJECT_CONTROL: {
arch/x86/lib/usercopy_64.c +1 -1
index b0dfac3d3df7..1847e993ac63 100644
@@ -120,7 +120,7 @@ long __copy_user_flushcache(void *dst, const void __user *src, unsigned size)
 	 */
 	if (size < 8) {
 		if (!IS_ALIGNED(dest, 4) || size != 4)
-			clean_cache_range(dst, 1);
+			clean_cache_range(dst, size);
 	} else {
 		if (!IS_ALIGNED(dest, 8)) {
 			dest = ALIGN(dest, boot_cpu_data.x86_clflush_size);
arch/x86/realmode/init.c +2 -0
index 7dce39c8c034..262f83cad355 100644
@@ -8,6 +8,7 @@
 #include <asm/pgtable.h>
 #include <asm/realmode.h>
 #include <asm/tlbflush.h>
+#include <asm/crash.h>
 
 struct real_mode_header *real_mode_header;
 u32 *trampoline_cr4_features;
@@ -34,6 +35,7 @@ void __init reserve_real_mode(void)
 
 	memblock_reserve(mem, size);
 	set_real_mode_mem(mem);
+	crash_reserve_low_1M();
 }
 
 static void __init setup_real_mode(void)
arch/xtensa/kernel/entry.S +2 -2
index 59671603c9c6..1f07876ea2ed 100644
@@ -1897,6 +1897,7 @@ ENTRY(system_call)
 
 	mov	a6, a2
 	call4	do_syscall_trace_enter
+	beqz	a6, .Lsyscall_exit
 	l32i	a7, a2, PT_SYSCALL
 
 1:
@@ -1911,8 +1912,6 @@ ENTRY(system_call)
 
 	addx4	a4, a7, a4
 	l32i	a4, a4, 0
-	movi	a5, sys_ni_syscall;
-	beq	a4, a5, 1f
 
 	/* Load args: arg0 - arg5 are passed via regs. */
 
@@ -1932,6 +1931,7 @@ ENTRY(system_call)
 
 	s32i	a6, a2, PT_AREG2
 	bnez	a3, 1f
+.Lsyscall_exit:
 	abi_ret(4)
 
 1:
arch/xtensa/kernel/ptrace.c +16 -2
index b964f0b2d886..145742d70a9f 100644
@@ -542,14 +542,28 @@ long arch_ptrace(struct task_struct *child, long request,
 	return ret;
 }
 
-void do_syscall_trace_enter(struct pt_regs *regs)
+void do_syscall_trace_leave(struct pt_regs *regs);
+int do_syscall_trace_enter(struct pt_regs *regs)
 {
+	if (regs->syscall == NO_SYSCALL)
+		regs->areg[2] = -ENOSYS;
+
 	if (test_thread_flag(TIF_SYSCALL_TRACE) &&
-	    tracehook_report_syscall_entry(regs))
+	    tracehook_report_syscall_entry(regs)) {
+		regs->areg[2] = -ENOSYS;
 		regs->syscall = NO_SYSCALL;
+		return 0;
+	}
+
+	if (regs->syscall == NO_SYSCALL) {
+		do_syscall_trace_leave(regs);
+		return 0;
+	}
 
 	if (test_thread_flag(TIF_SYSCALL_TRACEPOINT))
 		trace_sys_enter(regs, syscall_get_nr(current, regs));
+
+	return 1;
 }
 
 void do_syscall_trace_leave(struct pt_regs *regs)
drivers/acpi/ec.c +4 -12
index 57eacdcbf820..1ec55345252b 100644
@@ -1043,29 +1043,21 @@ void acpi_ec_unblock_transactions(void)
 /* --------------------------------------------------------------------------
                                 Event Management
    -------------------------------------------------------------------------- */
-static struct acpi_ec_query_handler *
-acpi_ec_get_query_handler(struct acpi_ec_query_handler *handler)
-{
-	if (handler)
-		kref_get(&handler->kref);
-	return handler;
-}
-
 static struct acpi_ec_query_handler *
 acpi_ec_get_query_handler_by_value(struct acpi_ec *ec, u8 value)
 {
 	struct acpi_ec_query_handler *handler;
-	bool found = false;
 
 	mutex_lock(&ec->mutex);
 	list_for_each_entry(handler, &ec->list, node) {
 		if (value == handler->query_bit) {
-			found = true;
-			break;
+			kref_get(&handler->kref);
+			mutex_unlock(&ec->mutex);
+			return handler;
 		}
 	}
 	mutex_unlock(&ec->mutex);
-	return found ? acpi_ec_get_query_handler(handler) : NULL;
+	return NULL;
 }
 
 static void acpi_ec_query_handler_release(struct kref *kref)
drivers/ata/acard-ahci.c +4 -2
index 753985c01517..46dc54d18f0b 100644
@@ -56,7 +56,7 @@ struct acard_sg {
 	__le32			size;	 /* bit 31 (EOT) max==0x10000 (64k) */
 };
 
-static void acard_ahci_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors acard_ahci_qc_prep(struct ata_queued_cmd *qc);
 static bool acard_ahci_qc_fill_rtf(struct ata_queued_cmd *qc);
 static int acard_ahci_port_start(struct ata_port *ap);
 static int acard_ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
@@ -210,7 +210,7 @@ static unsigned int acard_ahci_fill_sg(struct ata_queued_cmd *qc, void *cmd_tbl)
 	return si;
 }
 
-static void acard_ahci_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors acard_ahci_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct ahci_port_priv *pp = ap->private_data;
@@ -248,6 +248,8 @@ static void acard_ahci_qc_prep(struct ata_queued_cmd *qc)
 		opts |= AHCI_CMD_ATAPI | AHCI_CMD_PREFETCH;
 
 	ahci_fill_cmd_slot(pp, qc->hw_tag, opts);
+
+	return AC_ERR_OK;
 }
 
 static bool acard_ahci_qc_fill_rtf(struct ata_queued_cmd *qc)
drivers/ata/libahci.c +4 -2
index bff369d9a1a7..ea5bf5f4cbed 100644
@@ -57,7 +57,7 @@ static int ahci_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);
 static bool ahci_qc_fill_rtf(struct ata_queued_cmd *qc);
 static int ahci_port_start(struct ata_port *ap);
 static void ahci_port_stop(struct ata_port *ap);
-static void ahci_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors ahci_qc_prep(struct ata_queued_cmd *qc);
 static int ahci_pmp_qc_defer(struct ata_queued_cmd *qc);
 static void ahci_freeze(struct ata_port *ap);
 static void ahci_thaw(struct ata_port *ap);
@@ -1624,7 +1624,7 @@ static int ahci_pmp_qc_defer(struct ata_queued_cmd *qc)
 		return sata_pmp_qc_defer_cmd_switch(qc);
 }
 
-static void ahci_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors ahci_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct ahci_port_priv *pp = ap->private_data;
@@ -1660,6 +1660,8 @@ static void ahci_qc_prep(struct ata_queued_cmd *qc)
 		opts |= AHCI_CMD_ATAPI | AHCI_CMD_PREFETCH;
 
 	ahci_fill_cmd_slot(pp, qc->hw_tag, opts);
+
+	return AC_ERR_OK;
 }
 
 static void ahci_fbs_dec_intr(struct ata_port *ap)
drivers/ata/libata-core.c +7 -2
index 066b37963ad5..f67b3fb33d57 100644
@@ -4978,7 +4978,10 @@ int ata_std_qc_defer(struct ata_queued_cmd *qc)
 	return ATA_DEFER_LINK;
 }
 
-void ata_noop_qc_prep(struct ata_queued_cmd *qc) { }
+enum ata_completion_errors ata_noop_qc_prep(struct ata_queued_cmd *qc)
+{
+	return AC_ERR_OK;
+}
 
 /**
  *	ata_sg_init - Associate command with scatter-gather table.
@@ -5465,7 +5468,9 @@ void ata_qc_issue(struct ata_queued_cmd *qc)
 		return;
 	}
 
-	ap->ops->qc_prep(qc);
+	qc->err_mask |= ap->ops->qc_prep(qc);
+	if (unlikely(qc->err_mask))
+		goto err;
 	trace_ata_qc_issue(qc);
 	qc->err_mask |= ap->ops->qc_issue(qc);
 	if (unlikely(qc->err_mask))
drivers/ata/libata-sff.c +8 -4
index 4ed682da52ae..038db94216a9 100644
@@ -2679,12 +2679,14 @@ static void ata_bmdma_fill_sg_dumb(struct ata_queued_cmd *qc)
  *	LOCKING:
  *	spin_lock_irqsave(host lock)
  */
-void ata_bmdma_qc_prep(struct ata_queued_cmd *qc)
+enum ata_completion_errors ata_bmdma_qc_prep(struct ata_queued_cmd *qc)
 {
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	ata_bmdma_fill_sg(qc);
+
+	return AC_ERR_OK;
 }
 EXPORT_SYMBOL_GPL(ata_bmdma_qc_prep);
 
@@ -2697,12 +2699,14 @@ EXPORT_SYMBOL_GPL(ata_bmdma_qc_prep);
  *	LOCKING:
  *	spin_lock_irqsave(host lock)
  */
-void ata_bmdma_dumb_qc_prep(struct ata_queued_cmd *qc)
+enum ata_completion_errors ata_bmdma_dumb_qc_prep(struct ata_queued_cmd *qc)
 {
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	ata_bmdma_fill_sg_dumb(qc);
+
+	return AC_ERR_OK;
 }
 EXPORT_SYMBOL_GPL(ata_bmdma_dumb_qc_prep);
 
drivers/ata/pata_macio.c +4 -2
index 57f2ec71cfc3..1bfd0154dad5 100644
@@ -510,7 +510,7 @@ static int pata_macio_cable_detect(struct ata_port *ap)
 	return ATA_CBL_PATA40;
 }
 
-static void pata_macio_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors pata_macio_qc_prep(struct ata_queued_cmd *qc)
 {
 	unsigned int write = (qc->tf.flags & ATA_TFLAG_WRITE);
 	struct ata_port *ap = qc->ap;
@@ -523,7 +523,7 @@ static void pata_macio_qc_prep(struct ata_queued_cmd *qc)
 		   __func__, qc, qc->flags, write, qc->dev->devno);
 
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	table = (struct dbdma_cmd *) priv->dma_table_cpu;
 
@@ -568,6 +568,8 @@ static void pata_macio_qc_prep(struct ata_queued_cmd *qc)
 	table->command = cpu_to_le16(DBDMA_STOP);
 
 	dev_dbgdma(priv->dev, "%s: %d DMA list entries\n", __func__, pi);
+
+	return AC_ERR_OK;
 }
 
 
drivers/ata/pata_pxa.c +5 -3
index 4afcb8e63e21..41430f79663c 100644
@@ -44,25 +44,27 @@ static void pxa_ata_dma_irq(void *d)
 /*
  * Prepare taskfile for submission.
  */
-static void pxa_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors pxa_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct pata_pxa_data *pd = qc->ap->private_data;
 	struct dma_async_tx_descriptor *tx;
 	enum dma_transfer_direction dir;
 
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	dir = (qc->dma_dir == DMA_TO_DEVICE ? DMA_MEM_TO_DEV : DMA_DEV_TO_MEM);
 	tx = dmaengine_prep_slave_sg(pd->dma_chan, qc->sg, qc->n_elem, dir,
 				     DMA_PREP_INTERRUPT);
 	if (!tx) {
 		ata_dev_err(qc->dev, "prep_slave_sg() failed\n");
-		return;
+		return AC_ERR_OK;
 	}
 	tx->callback = pxa_ata_dma_irq;
 	tx->callback_param = pd;
 	pd->dma_cookie = dmaengine_submit(tx);
+
+	return AC_ERR_OK;
 }
 
 /*
drivers/ata/pdc_adma.c +4 -3
index cb490531b62e..5db55e1e2a61 100644
@@ -116,7 +116,7 @@ static int adma_ata_init_one(struct pci_dev *pdev,
 				const struct pci_device_id *ent);
 static int adma_port_start(struct ata_port *ap);
 static void adma_port_stop(struct ata_port *ap);
-static void adma_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors adma_qc_prep(struct ata_queued_cmd *qc);
 static unsigned int adma_qc_issue(struct ata_queued_cmd *qc);
 static int adma_check_atapi_dma(struct ata_queued_cmd *qc);
 static void adma_freeze(struct ata_port *ap);
@@ -295,7 +295,7 @@ static int adma_fill_sg(struct ata_queued_cmd *qc)
 	return i;
 }
 
-static void adma_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors adma_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct adma_port_priv *pp = qc->ap->private_data;
 	u8  *buf = pp->pkt;
@@ -306,7 +306,7 @@ static void adma_qc_prep(struct ata_queued_cmd *qc)
 
 	adma_enter_reg_mode(qc->ap);
 	if (qc->tf.protocol != ATA_PROT_DMA)
-		return;
+		return AC_ERR_OK;
 
 	buf[i++] = 0;	/* Response flags */
 	buf[i++] = 0;	/* reserved */
@@ -371,6 +371,7 @@ static void adma_qc_prep(struct ata_queued_cmd *qc)
 			printk("%s\n", obuf);
 	}
 #endif
+	return AC_ERR_OK;
 }
 
 static inline void adma_packet_start(struct ata_queued_cmd *qc)
drivers/ata/sata_fsl.c +3 -1
index ca6c706e9c25..d55ee244d693 100644
@@ -502,7 +502,7 @@ static unsigned int sata_fsl_fill_sg(struct ata_queued_cmd *qc, void *cmd_desc,
 	return num_prde;
 }
 
-static void sata_fsl_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors sata_fsl_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct sata_fsl_port_priv *pp = ap->private_data;
@@ -548,6 +548,8 @@ static void sata_fsl_qc_prep(struct ata_queued_cmd *qc)
 
 	VPRINTK("SATA FSL : xx_qc_prep, di = 0x%x, ttl = %d, num_prde = %d\n",
 		desc_info, ttl_dwords, num_prde);
+
+	return AC_ERR_OK;
 }
 
 static unsigned int sata_fsl_qc_issue(struct ata_queued_cmd *qc)
drivers/ata/sata_inic162x.c +3 -1
index 7f99e23bff88..a6b76cc12a66 100644
@@ -478,7 +478,7 @@ static void inic_fill_sg(struct inic_prd *prd, struct ata_queued_cmd *qc)
 	prd[-1].flags |= PRD_END;
 }
 
-static void inic_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors inic_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct inic_port_priv *pp = qc->ap->private_data;
 	struct inic_pkt *pkt = pp->pkt;
@@ -538,6 +538,8 @@ static void inic_qc_prep(struct ata_queued_cmd *qc)
 		inic_fill_sg(prd, qc);
 
 	pp->cpb_tbl[0] = pp->pkt_dma;
+
+	return AC_ERR_OK;
 }
 
 static unsigned int inic_qc_issue(struct ata_queued_cmd *qc)
drivers/ata/sata_mv.c +18 -16
index bde695a32097..d7228f8e9297 100644
@@ -592,8 +592,8 @@ static int mv5_scr_write(struct ata_link *link, unsigned int sc_reg_in, u32 val)
 static int mv_port_start(struct ata_port *ap);
 static void mv_port_stop(struct ata_port *ap);
 static int mv_qc_defer(struct ata_queued_cmd *qc);
-static void mv_qc_prep(struct ata_queued_cmd *qc);
-static void mv_qc_prep_iie(struct ata_queued_cmd *qc);
+static enum ata_completion_errors mv_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors mv_qc_prep_iie(struct ata_queued_cmd *qc);
 static unsigned int mv_qc_issue(struct ata_queued_cmd *qc);
 static int mv_hardreset(struct ata_link *link, unsigned int *class,
 			unsigned long deadline);
@@ -2031,7 +2031,7 @@ static void mv_rw_multi_errata_sata24(struct ata_queued_cmd *qc)
  *      LOCKING:
  *      Inherited from caller.
  */
-static void mv_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors mv_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct mv_port_priv *pp = ap->private_data;
@@ -2043,15 +2043,15 @@ static void mv_qc_prep(struct ata_queued_cmd *qc)
 	switch (tf->protocol) {
 	case ATA_PROT_DMA:
 		if (tf->command == ATA_CMD_DSM)
-			return;
+			return AC_ERR_OK;
 		/* fall-thru */
 	case ATA_PROT_NCQ:
 		break;	/* continue below */
 	case ATA_PROT_PIO:
 		mv_rw_multi_errata_sata24(qc);
-		return;
+		return AC_ERR_OK;
 	default:
-		return;
+		return AC_ERR_OK;
 	}
 
 	/* Fill in command request block
@@ -2098,12 +2098,10 @@ static void mv_qc_prep(struct ata_queued_cmd *qc)
 		 * non-NCQ mode are: [RW] STREAM DMA and W DMA FUA EXT, none
 		 * of which are defined/used by Linux.  If we get here, this
 		 * driver needs work.
-		 *
-		 * FIXME: modify libata to give qc_prep a return value and
-		 * return error here.
 		 */
-		BUG_ON(tf->command);
-		break;
+		ata_port_err(ap, "%s: unsupported command: %.2x\n", __func__,
+				tf->command);
+		return AC_ERR_INVALID;
 	}
 	mv_crqb_pack_cmd(cw++, tf->nsect, ATA_REG_NSECT, 0);
 	mv_crqb_pack_cmd(cw++, tf->hob_lbal, ATA_REG_LBAL, 0);
@@ -2116,8 +2114,10 @@ static void mv_qc_prep(struct ata_queued_cmd *qc)
 	mv_crqb_pack_cmd(cw++, tf->command, ATA_REG_CMD, 1);	/* last */
 
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 	mv_fill_sg(qc);
+
+	return AC_ERR_OK;
 }
 
 /**
@@ -2132,7 +2132,7 @@ static void mv_qc_prep(struct ata_queued_cmd *qc)
  *      LOCKING:
  *      Inherited from caller.
  */
-static void mv_qc_prep_iie(struct ata_queued_cmd *qc)
+static enum ata_completion_errors mv_qc_prep_iie(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct mv_port_priv *pp = ap->private_data;
@@ -2143,9 +2143,9 @@ static void mv_qc_prep_iie(struct ata_queued_cmd *qc)
 
 	if ((tf->protocol != ATA_PROT_DMA) &&
 	    (tf->protocol != ATA_PROT_NCQ))
-		return;
+		return AC_ERR_OK;
 	if (tf->command == ATA_CMD_DSM)
-		return;  /* use bmdma for this */
+		return AC_ERR_OK;  /* use bmdma for this */
 
 	/* Fill in Gen IIE command request block */
 	if (!(tf->flags & ATA_TFLAG_WRITE))
@@ -2186,8 +2186,10 @@ static void mv_qc_prep_iie(struct ata_queued_cmd *qc)
 		);
 
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 	mv_fill_sg(qc);
+
+	return AC_ERR_OK;
 }
 
 /**
drivers/ata/sata_nv.c +11 -7
index 7510303111fa..18b147c182b9 100644
@@ -297,7 +297,7 @@ static void nv_ck804_freeze(struct ata_port *ap);
 static void nv_ck804_thaw(struct ata_port *ap);
 static int nv_adma_slave_config(struct scsi_device *sdev);
 static int nv_adma_check_atapi_dma(struct ata_queued_cmd *qc);
-static void nv_adma_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors nv_adma_qc_prep(struct ata_queued_cmd *qc);
 static unsigned int nv_adma_qc_issue(struct ata_queued_cmd *qc);
 static irqreturn_t nv_adma_interrupt(int irq, void *dev_instance);
 static void nv_adma_irq_clear(struct ata_port *ap);
@@ -319,7 +319,7 @@ static void nv_mcp55_freeze(struct ata_port *ap);
 static void nv_swncq_error_handler(struct ata_port *ap);
 static int nv_swncq_slave_config(struct scsi_device *sdev);
 static int nv_swncq_port_start(struct ata_port *ap);
-static void nv_swncq_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors nv_swncq_qc_prep(struct ata_queued_cmd *qc);
 static void nv_swncq_fill_sg(struct ata_queued_cmd *qc);
 static unsigned int nv_swncq_qc_issue(struct ata_queued_cmd *qc);
 static void nv_swncq_irq_clear(struct ata_port *ap, u16 fis);
@@ -1344,7 +1344,7 @@ static int nv_adma_use_reg_mode(struct ata_queued_cmd *qc)
 	return 1;
 }
 
-static void nv_adma_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors nv_adma_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct nv_adma_port_priv *pp = qc->ap->private_data;
 	struct nv_adma_cpb *cpb = &pp->cpb[qc->hw_tag];
@@ -1356,7 +1356,7 @@ static void nv_adma_qc_prep(struct ata_queued_cmd *qc)
 			(qc->flags & ATA_QCFLAG_DMAMAP));
 		nv_adma_register_mode(qc->ap);
 		ata_bmdma_qc_prep(qc);
-		return;
+		return AC_ERR_OK;
 	}
 
 	cpb->resp_flags = NV_CPB_RESP_DONE;
@@ -1388,6 +1388,8 @@ static void nv_adma_qc_prep(struct ata_queued_cmd *qc)
 	cpb->ctl_flags = ctl_flags;
 	wmb();
 	cpb->resp_flags = 0;
+
+	return AC_ERR_OK;
 }
 
 static unsigned int nv_adma_qc_issue(struct ata_queued_cmd *qc)
@@ -1950,17 +1952,19 @@ static int nv_swncq_port_start(struct ata_port *ap)
 	return 0;
 }
 
-static void nv_swncq_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors nv_swncq_qc_prep(struct ata_queued_cmd *qc)
 {
 	if (qc->tf.protocol != ATA_PROT_NCQ) {
 		ata_bmdma_qc_prep(qc);
-		return;
+		return AC_ERR_OK;
 	}
 
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	nv_swncq_fill_sg(qc);
+
+	return AC_ERR_OK;
 }
 
 static void nv_swncq_fill_sg(struct ata_queued_cmd *qc)
drivers/ata/sata_promise.c +4 -2
index 5fd464765ddc..c451d7d1c817 100644
@@ -139,7 +139,7 @@ static int pdc_sata_scr_write(struct ata_link *link, unsigned int sc_reg, u32 va
 static int pdc_ata_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
 static int pdc_common_port_start(struct ata_port *ap);
 static int pdc_sata_port_start(struct ata_port *ap);
-static void pdc_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors pdc_qc_prep(struct ata_queued_cmd *qc);
 static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf);
 static void pdc_exec_command_mmio(struct ata_port *ap, const struct ata_taskfile *tf);
 static int pdc_check_atapi_dma(struct ata_queued_cmd *qc);
@@ -633,7 +633,7 @@ static void pdc_fill_sg(struct ata_queued_cmd *qc)
 	prd[idx - 1].flags_len |= cpu_to_le32(ATA_PRD_EOT);
 }
 
-static void pdc_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors pdc_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct pdc_port_priv *pp = qc->ap->private_data;
 	unsigned int i;
@@ -665,6 +665,8 @@ static void pdc_qc_prep(struct ata_queued_cmd *qc)
 	default:
 		break;
 	}
+
+	return AC_ERR_OK;
 }
 
 static int pdc_is_sataii_tx4(unsigned long flags)
drivers/ata/sata_qstor.c +5 -3
index c53c5a47204d..ef00ab644afb 100644
@@ -100,7 +100,7 @@ static int qs_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);
 static int qs_ata_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
 static int qs_port_start(struct ata_port *ap);
 static void qs_host_stop(struct ata_host *host);
-static void qs_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors qs_qc_prep(struct ata_queued_cmd *qc);
 static unsigned int qs_qc_issue(struct ata_queued_cmd *qc);
 static int qs_check_atapi_dma(struct ata_queued_cmd *qc);
 static void qs_freeze(struct ata_port *ap);
@@ -260,7 +260,7 @@ static unsigned int qs_fill_sg(struct ata_queued_cmd *qc)
 	return si;
 }
 
-static void qs_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors qs_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct qs_port_priv *pp = qc->ap->private_data;
 	u8 dflags = QS_DF_PORD, *buf = pp->pkt;
@@ -272,7 +272,7 @@ static void qs_qc_prep(struct ata_queued_cmd *qc)
 
 	qs_enter_reg_mode(qc->ap);
 	if (qc->tf.protocol != ATA_PROT_DMA)
-		return;
+		return AC_ERR_OK;
 
 	nelem = qs_fill_sg(qc);
 
@@ -295,6 +295,8 @@ static void qs_qc_prep(struct ata_queued_cmd *qc)
 
 	/* frame information structure (FIS) */
 	ata_tf_to_fis(&qc->tf, 0, 1, &buf[32]);
+
+	return AC_ERR_OK;
 }
 
 static inline void qs_packet_start(struct ata_queued_cmd *qc)
drivers/ata/sata_rcar.c +4 -2
index c35b7b993133..141ac600b64c 100644
@@ -550,12 +550,14 @@ static void sata_rcar_bmdma_fill_sg(struct ata_queued_cmd *qc)
 	prd[si - 1].addr |= cpu_to_le32(SATA_RCAR_DTEND);
 }
 
-static void sata_rcar_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors sata_rcar_qc_prep(struct ata_queued_cmd *qc)
 {
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	sata_rcar_bmdma_fill_sg(qc);
+
+	return AC_ERR_OK;
 }
 
 static void sata_rcar_bmdma_setup(struct ata_queued_cmd *qc)
drivers/ata/sata_sil.c +5 -3
index e6fbae2f645a..75321f1ceba5 100644
@@ -103,7 +103,7 @@ static void sil_dev_config(struct ata_device *dev);
 static int sil_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val);
 static int sil_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);
 static int sil_set_mode(struct ata_link *link, struct ata_device **r_failed);
-static void sil_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors sil_qc_prep(struct ata_queued_cmd *qc);
 static void sil_bmdma_setup(struct ata_queued_cmd *qc);
 static void sil_bmdma_start(struct ata_queued_cmd *qc);
 static void sil_bmdma_stop(struct ata_queued_cmd *qc);
@@ -317,12 +317,14 @@ static void sil_fill_sg(struct ata_queued_cmd *qc)
 		last_prd->flags_len |= cpu_to_le32(ATA_PRD_EOT);
 }
 
-static void sil_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors sil_qc_prep(struct ata_queued_cmd *qc)
 {
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	sil_fill_sg(qc);
+
+	return AC_ERR_OK;
 }
 
 static unsigned char sil_get_device_cache_line(struct pci_dev *pdev)
drivers/ata/sata_sil24.c +4 -2
index 7bef82de53ca..560070d4f1d0 100644
@@ -326,7 +326,7 @@ static void sil24_dev_config(struct ata_device *dev);
 static int sil24_scr_read(struct ata_link *link, unsigned sc_reg, u32 *val);
 static int sil24_scr_write(struct ata_link *link, unsigned sc_reg, u32 val);
 static int sil24_qc_defer(struct ata_queued_cmd *qc);
-static void sil24_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors sil24_qc_prep(struct ata_queued_cmd *qc);
 static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc);
 static bool sil24_qc_fill_rtf(struct ata_queued_cmd *qc);
 static void sil24_pmp_attach(struct ata_port *ap);
@@ -830,7 +830,7 @@ static int sil24_qc_defer(struct ata_queued_cmd *qc)
 	return ata_std_qc_defer(qc);
 }
 
-static void sil24_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors sil24_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct sil24_port_priv *pp = ap->private_data;
@@ -874,6 +874,8 @@ static void sil24_qc_prep(struct ata_queued_cmd *qc)
 
 	if (qc->flags & ATA_QCFLAG_DMAMAP)
 		sil24_fill_sg(qc, sge);
+
+	return AC_ERR_OK;
 }
 
 static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc)
drivers/ata/sata_sx4.c +4 -2
index 2277ba0c9c7f..2c7b30c5ea3d 100644
@@ -202,7 +202,7 @@ static void pdc_error_handler(struct ata_port *ap);
 static void pdc_freeze(struct ata_port *ap);
 static void pdc_thaw(struct ata_port *ap);
 static int pdc_port_start(struct ata_port *ap);
-static void pdc20621_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors pdc20621_qc_prep(struct ata_queued_cmd *qc);
 static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf);
 static void pdc_exec_command_mmio(struct ata_port *ap, const struct ata_taskfile *tf);
 static unsigned int pdc20621_dimm_init(struct ata_host *host);
@@ -530,7 +530,7 @@ static void pdc20621_nodata_prep(struct ata_queued_cmd *qc)
 	VPRINTK("ata pkt buf ofs %u, mmio copied\n", i);
 }
 
-static void pdc20621_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors pdc20621_qc_prep(struct ata_queued_cmd *qc)
 {
 	switch (qc->tf.protocol) {
 	case ATA_PROT_DMA:
@@ -542,6 +542,8 @@ static void pdc20621_qc_prep(struct ata_queued_cmd *qc)
 	default:
 		break;
 	}
+
+	return AC_ERR_OK;
 }
 
 static void __pdc20621_push_hdma(struct ata_queued_cmd *qc,
drivers/atm/eni.c +1 -1
index 9d0d65efcd94..bedaebd5a495 100644
@@ -2245,7 +2245,7 @@ static int eni_init_one(struct pci_dev *pci_dev,
 
 	rc = dma_set_mask_and_coherent(&pci_dev->dev, DMA_BIT_MASK(32));
 	if (rc < 0)
-		goto out;
+		goto err_disable;
 
 	rc = -ENOMEM;
 	eni_dev = kmalloc(sizeof(struct eni_dev), GFP_KERNEL);
drivers/base/arch_topology.c +2 -2
index 1eb81f113786..83e26fd188cc 100644
@@ -270,7 +270,7 @@ static int __init get_cpu_for_node(struct device_node *node)
 static int __init parse_core(struct device_node *core, int package_id,
 			     int core_id)
 {
-	char name[10];
+	char name[20];
 	bool leaf = true;
 	int i = 0;
 	int cpu;
@@ -317,7 +317,7 @@ static int __init parse_core(struct device_node *core, int package_id,
 
 static int __init parse_cluster(struct device_node *cluster, int depth)
 {
-	char name[10];
+	char name[20];
 	bool leaf = true;
 	bool has_cores = false;
 	struct device_node *c;
drivers/base/regmap/internal.h +1 -1
index 3d80c4b43f72..d7c01b70e43d 100644
@@ -259,7 +259,7 @@ bool regcache_set_val(struct regmap *map, void *base, unsigned int idx,
 int regcache_lookup_reg(struct regmap *map, unsigned int reg);
 
 int _regmap_raw_write(struct regmap *map, unsigned int reg,
-		      const void *val, size_t val_len);
+		      const void *val, size_t val_len, bool noinc);
 
 void regmap_async_complete_cb(struct regmap_async *async, int ret);
 
drivers/base/regmap/regcache.c +1 -1
index a93cafd7be4f..7f4b3b62492c 100644
@@ -717,7 +717,7 @@ static int regcache_sync_block_raw_flush(struct regmap *map, const void **data,
 
 	map->cache_bypass = true;
 
-	ret = _regmap_raw_write(map, base, *data, count * val_bytes);
+	ret = _regmap_raw_write(map, base, *data, count * val_bytes, false);
 	if (ret)
 		dev_err(map->dev, "Unable to sync registers %#x-%#x. %d\n",
 			base, cur - map->reg_stride, ret);
drivers/base/regmap/regmap.c +17 -16
index 927ebde1607b..e0893f1b1452 100644
@@ -1468,7 +1468,7 @@ static void regmap_set_work_buf_flag_mask(struct regmap *map, int max_bytes,
 }
 
 static int _regmap_raw_write_impl(struct regmap *map, unsigned int reg,
-				  const void *val, size_t val_len)
+				  const void *val, size_t val_len, bool noinc)
 {
 	struct regmap_range_node *range;
 	unsigned long flags;
@@ -1527,7 +1527,7 @@ static int _regmap_raw_write_impl(struct regmap *map, unsigned int reg,
 				win_residue, val_len / map->format.val_bytes);
 			ret = _regmap_raw_write_impl(map, reg, val,
 						     win_residue *
-						     map->format.val_bytes);
+						     map->format.val_bytes, noinc);
 			if (ret != 0)
 				return ret;
 
@@ -1541,7 +1541,7 @@ static int _regmap_raw_write_impl(struct regmap *map, unsigned int reg,
 			win_residue = range->window_len - win_offset;
 		}
 
-		ret = _regmap_select_page(map, &reg, range, val_num);
+		ret = _regmap_select_page(map, &reg, range, noinc ? 1 : val_num);
 		if (ret != 0)
 			return ret;
 	}
@@ -1749,7 +1749,8 @@ static int _regmap_bus_raw_write(void *context, unsigned int reg,
 				      map->work_buf +
 				      map->format.reg_bytes +
 				      map->format.pad_bytes,
-				      map->format.val_bytes);
+				      map->format.val_bytes,
+				      false);
 }
 
 static inline void *_regmap_map_get_context(struct regmap *map)
@@ -1843,7 +1844,7 @@ int regmap_write_async(struct regmap *map, unsigned int reg, unsigned int val)
 EXPORT_SYMBOL_GPL(regmap_write_async);
 
 int _regmap_raw_write(struct regmap *map, unsigned int reg,
-		      const void *val, size_t val_len)
+		      const void *val, size_t val_len, bool noinc)
 {
 	size_t val_bytes = map->format.val_bytes;
 	size_t val_count = val_len / val_bytes;
@@ -1864,7 +1865,7 @@ int _regmap_raw_write(struct regmap *map, unsigned int reg,
 
 	/* Write as many bytes as possible with chunk_size */
 	for (i = 0; i < chunk_count; i++) {
-		ret = _regmap_raw_write_impl(map, reg, val, chunk_bytes);
+		ret = _regmap_raw_write_impl(map, reg, val, chunk_bytes, noinc);
 		if (ret)
 			return ret;
 
@@ -1875,7 +1876,7 @@ int _regmap_raw_write(struct regmap *map, unsigned int reg,
 
 	/* Write remaining bytes */
 	if (val_len)
-		ret = _regmap_raw_write_impl(map, reg, val, val_len);
+		ret = _regmap_raw_write_impl(map, reg, val, val_len, noinc);
 
 	return ret;
 }
@@ -1908,7 +1909,7 @@ int regmap_raw_write(struct regmap *map, unsigned int reg,
 
 	map->lock(map->lock_arg);
 
-	ret = _regmap_raw_write(map, reg, val, val_len);
+	ret = _regmap_raw_write(map, reg, val, val_len, false);
 
 	map->unlock(map->lock_arg);
 
@@ -1966,7 +1967,7 @@ int regmap_noinc_write(struct regmap *map, unsigned int reg,
 			write_len = map->max_raw_write;
 		else
 			write_len = val_len;
-		ret = _regmap_raw_write(map, reg, val, write_len);
+		ret = _regmap_raw_write(map, reg, val, write_len, true);
 		if (ret)
 			goto out_unlock;
 		val = ((u8 *)val) + write_len;
@@ -2443,7 +2444,7 @@ int regmap_raw_write_async(struct regmap *map, unsigned int reg,
 
 	map->async = true;
 
-	ret = _regmap_raw_write(map, reg, val, val_len);
+	ret = _regmap_raw_write(map, reg, val, val_len, false);
 
 	map->async = false;
 
@@ -2454,7 +2455,7 @@ int regmap_raw_write_async(struct regmap *map, unsigned int reg,
 EXPORT_SYMBOL_GPL(regmap_raw_write_async);
 
 static int _regmap_raw_read(struct regmap *map, unsigned int reg, void *val,
-			    unsigned int val_len)
+			    unsigned int val_len, bool noinc)
 {
 	struct regmap_range_node *range;
 	int ret;
@@ -2467,7 +2468,7 @@ static int _regmap_raw_read(struct regmap *map, unsigned int reg, void *val,
 	range = _regmap_range_lookup(map, reg);
 	if (range) {
 		ret = _regmap_select_page(map, &reg, range,
-					  val_len / map->format.val_bytes);
+					  noinc ? 1 : val_len / map->format.val_bytes);
 		if (ret != 0)
 			return ret;
 	}
@@ -2505,7 +2506,7 @@ static int _regmap_bus_read(void *context, unsigned int reg,
 	if (!map->format.parse_val)
 		return -EINVAL;
 
-	ret = _regmap_raw_read(map, reg, work_val, map->format.val_bytes);
+	ret = _regmap_raw_read(map, reg, work_val, map->format.val_bytes, false);
 	if (ret == 0)
 		*val = map->format.parse_val(work_val);
 
@@ -2621,7 +2622,7 @@ int regmap_raw_read(struct regmap *map, unsigned int reg, void *val,
 
 		/* Read bytes that fit into whole chunks */
 		for (i = 0; i < chunk_count; i++) {
-			ret = _regmap_raw_read(map, reg, val, chunk_bytes);
+			ret = _regmap_raw_read(map, reg, val, chunk_bytes, false);
 			if (ret != 0)
 				goto out;
 
@@ -2632,7 +2633,7 @@ int regmap_raw_read(struct regmap *map, unsigned int reg, void *val,
 
 		/* Read remaining bytes */
 		if (val_len) {
-			ret = _regmap_raw_read(map, reg, val, val_len);
+			ret = _regmap_raw_read(map, reg, val, val_len, false);
 			if (ret != 0)
 				goto out;
 		}
@@ -2707,7 +2708,7 @@ int regmap_noinc_read(struct regmap *map, unsigned int reg,
 			read_len = map->max_raw_read;
 		else
 			read_len = val_len;
-		ret = _regmap_raw_read(map, reg, val, read_len);
+		ret = _regmap_raw_read(map, reg, val, read_len, true);
 		if (ret)
 			goto out_unlock;
 		val = ((u8 *)val) + read_len;
drivers/bluetooth/btrtl.c +11 -9
index bf3c02be6930..0dfaf90a31b0 100644
@@ -370,11 +370,11 @@ static int rtlbt_parse_firmware(struct hci_dev *hdev,
 	 * the end.
 	 */
 	len = patch_length;
-	buf = kmemdup(btrtl_dev->fw_data + patch_offset, patch_length,
-		      GFP_KERNEL);
+	buf = kvmalloc(patch_length, GFP_KERNEL);
 	if (!buf)
 		return -ENOMEM;
 
+	memcpy(buf, btrtl_dev->fw_data + patch_offset, patch_length - 4);
 	memcpy(buf + patch_length - 4, &epatch_info->fw_version, 4);
 
 	*_buf = buf;
@@ -460,8 +460,10 @@ static int rtl_load_file(struct hci_dev *hdev, const char *name, u8 **buff)
 	if (ret < 0)
 		return ret;
 	ret = fw->size;
-	*buff = kmemdup(fw->data, ret, GFP_KERNEL);
-	if (!*buff)
+	*buff = kvmalloc(fw->size, GFP_KERNEL);
+	if (*buff)
+		memcpy(*buff, fw->data, ret);
+	else
 		ret = -ENOMEM;
 
 	release_firmware(fw);
@@ -499,14 +501,14 @@ static int btrtl_setup_rtl8723b(struct hci_dev *hdev,
 		goto out;
 
 	if (btrtl_dev->cfg_len > 0) {
-		tbuff = kzalloc(ret + btrtl_dev->cfg_len, GFP_KERNEL);
+		tbuff = kvzalloc(ret + btrtl_dev->cfg_len, GFP_KERNEL);
 		if (!tbuff) {
 			ret = -ENOMEM;
 			goto out;
 		}
 
 		memcpy(tbuff, fw_data, ret);
-		kfree(fw_data);
+		kvfree(fw_data);
 
 		memcpy(tbuff + ret, btrtl_dev->cfg_data, btrtl_dev->cfg_len);
 		ret += btrtl_dev->cfg_len;
@@ -519,14 +521,14 @@ static int btrtl_setup_rtl8723b(struct hci_dev *hdev,
 	ret = rtl_download_firmware(hdev, fw_data, ret);
 
 out:
-	kfree(fw_data);
+	kvfree(fw_data);
 	return ret;
 }
 
 void btrtl_free(struct btrtl_device_info *btrtl_dev)
 {
-	kfree(btrtl_dev->fw_data);
-	kfree(btrtl_dev->cfg_data);
+	kvfree(btrtl_dev->fw_data);
+	kvfree(btrtl_dev->cfg_data);
 	kfree(btrtl_dev);
 }
 EXPORT_SYMBOL_GPL(btrtl_free);
drivers/bus/hisi_lpc.c +25 -2
index 20c957185af2..2e9252d37a18 100644
@@ -358,6 +358,26 @@ static int hisi_lpc_acpi_xlat_io_res(struct acpi_device *adev,
 	return 0;
 }
 
+/*
+ * Released firmware describes the IO port max address as 0x3fff, which is
+ * the max host bus address. Fixup to a proper range. This will probably
+ * never be fixed in firmware.
+ */
+static void hisi_lpc_acpi_fixup_child_resource(struct device *hostdev,
+					       struct resource *r)
+{
+	if (r->end != 0x3fff)
+		return;
+
+	if (r->start == 0xe4)
+		r->end = 0xe4 + 0x04 - 1;
+	else if (r->start == 0x2f8)
+		r->end = 0x2f8 + 0x08 - 1;
+	else
+		dev_warn(hostdev, "unrecognised resource %pR to fixup, ignoring\n",
+			 r);
+}
+
 /*
  * hisi_lpc_acpi_set_io_res - set the resources for a child
  * @child: the device node to be updated the I/O resource
@@ -419,8 +439,11 @@ static int hisi_lpc_acpi_set_io_res(struct device *child,
 		return -ENOMEM;
 	}
 	count = 0;
-	list_for_each_entry(rentry, &resource_list, node)
-		resources[count++] = *rentry->res;
+	list_for_each_entry(rentry, &resource_list, node) {
+		resources[count] = *rentry->res;
+		hisi_lpc_acpi_fixup_child_resource(hostdev, &resources[count]);
+		count++;
+	}
 
 	acpi_dev_free_resource_list(&resource_list);
 
drivers/char/ipmi/bt-bmc.c +6 -6
index 40b9927c072c..89a8faa9b6cf 100644
@@ -399,15 +399,15 @@ static int bt_bmc_config_irq(struct bt_bmc *bt_bmc,
 	struct device *dev = &pdev->dev;
 	int rc;
 
-	bt_bmc->irq = platform_get_irq(pdev, 0);
-	if (!bt_bmc->irq)
-		return -ENODEV;
+	bt_bmc->irq = platform_get_irq_optional(pdev, 0);
+	if (bt_bmc->irq < 0)
+		return bt_bmc->irq;
 
 	rc = devm_request_irq(dev, bt_bmc->irq, bt_bmc_irq, IRQF_SHARED,
 			      DEVICE_NAME, bt_bmc);
 	if (rc < 0) {
 		dev_warn(dev, "Unable to request IRQ %d\n", bt_bmc->irq);
-		bt_bmc->irq = 0;
+		bt_bmc->irq = rc;
 		return rc;
 	}
 
@@ -479,7 +479,7 @@ static int bt_bmc_probe(struct platform_device *pdev)
 
 	bt_bmc_config_irq(bt_bmc, pdev);
 
-	if (bt_bmc->irq) {
+	if (bt_bmc->irq >= 0) {
 		dev_info(dev, "Using IRQ %d\n", bt_bmc->irq);
 	} else {
 		dev_info(dev, "No IRQ; using timer\n");
@@ -505,7 +505,7 @@ static int bt_bmc_remove(struct platform_device *pdev)
 	struct bt_bmc *bt_bmc = dev_get_drvdata(&pdev->dev);
 
 	misc_deregister(&bt_bmc->miscdev);
-	if (!bt_bmc->irq)
+	if (bt_bmc->irq < 0)
 		del_timer_sync(&bt_bmc->poll_timer);
 	return 0;
 }
drivers/char/random.c +6 -6
index e877c20e0ee0..75a8f7f57269 100644
@@ -1223,14 +1223,14 @@ static void add_timer_randomness(struct timer_rand_state *state, unsigned num)
 	 * We take into account the first, second and third-order deltas
 	 * in order to make our estimate.
 	 */
-	delta = sample.jiffies - state->last_time;
-	state->last_time = sample.jiffies;
+	delta = sample.jiffies - READ_ONCE(state->last_time);
+	WRITE_ONCE(state->last_time, sample.jiffies);
 
-	delta2 = delta - state->last_delta;
-	state->last_delta = delta;
+	delta2 = delta - READ_ONCE(state->last_delta);
+	WRITE_ONCE(state->last_delta, delta);
 
-	delta3 = delta2 - state->last_delta2;
-	state->last_delta2 = delta2;
+	delta3 = delta2 - READ_ONCE(state->last_delta2);
+	WRITE_ONCE(state->last_delta2, delta2);
 
 	if (delta < 0)
 		delta = -delta;
drivers/char/tlclk.c +10 -7
index 6d81bb3bb503..896a3550fba9 100644
@@ -777,17 +777,21 @@ static int __init tlclk_init(void)
 {
 	int ret;
 
+	telclk_interrupt = (inb(TLCLK_REG7) & 0x0f);
+
+	alarm_events = kzalloc( sizeof(struct tlclk_alarms), GFP_KERNEL);
+	if (!alarm_events) {
+		ret = -ENOMEM;
+		goto out1;
+	}
+
 	ret = register_chrdev(tlclk_major, "telco_clock", &tlclk_fops);
 	if (ret < 0) {
 		printk(KERN_ERR "tlclk: can't get major %d.\n", tlclk_major);
+		kfree(alarm_events);
 		return ret;
 	}
 	tlclk_major = ret;
-	alarm_events = kzalloc( sizeof(struct tlclk_alarms), GFP_KERNEL);
-	if (!alarm_events) {
-		ret = -ENOMEM;
-		goto out1;
-	}
 
 	/* Read telecom clock IRQ number (Set by BIOS) */
 	if (!request_region(TLCLK_BASE, 8, "telco_clock")) {
@@ -796,7 +800,6 @@ static int __init tlclk_init(void)
 		ret = -EBUSY;
 		goto out2;
 	}
-	telclk_interrupt = (inb(TLCLK_REG7) & 0x0f);
 
 	if (0x0F == telclk_interrupt ) { /* not MCPBL0010 ? */
 		printk(KERN_ERR "telclk_interrupt = 0x%x non-mcpbl0010 hw.\n",
@@ -837,8 +840,8 @@ static int __init tlclk_init(void)
 	release_region(TLCLK_BASE, 8);
 out2:
 	kfree(alarm_events);
-out1:
 	unregister_chrdev(tlclk_major, "telco_clock");
+out1:
 	return ret;
 }
 
drivers/char/tpm/tpm_crb.c +90 -33

210 lines not on this page · raw message

drivers/char/tpm/tpm_ibmvtpm.c +9 -0
index e82013d587b4..64428dbed992 100644
@@ -581,6 +581,7 @@ static irqreturn_t ibmvtpm_interrupt(int irq, void *vtpm_instance)
 	 */
 	while ((crq = ibmvtpm_crq_get_next(ibmvtpm)) != NULL) {
 		ibmvtpm_crq_process(crq, ibmvtpm);
+		wake_up_interruptible(&ibmvtpm->crq_queue.wq);
 		crq->valid = 0;
 		smp_wmb();
 	}
@@ -628,6 +629,7 @@ static int tpm_ibmvtpm_probe(struct vio_dev *vio_dev,
 	}
 
 	crq_q->num_entry = CRQ_RES_BUF_SIZE / sizeof(*crq_q->crq_addr);
+	init_waitqueue_head(&crq_q->wq);
 	ibmvtpm->crq_dma_handle = dma_map_single(dev, crq_q->crq_addr,
 						 CRQ_RES_BUF_SIZE,
 						 DMA_BIDIRECTIONAL);
@@ -680,6 +682,13 @@ static int tpm_ibmvtpm_probe(struct vio_dev *vio_dev,
 	if (rc)
 		goto init_irq_cleanup;
 
+	if (!wait_event_timeout(ibmvtpm->crq_queue.wq,
+				ibmvtpm->rtce_buf != NULL,
+				HZ)) {
+		dev_err(dev, "CRQ response timed out\n");
+		goto init_irq_cleanup;
+	}
+
 	return tpm_chip_register(chip);
 init_irq_cleanup:
 	do {
drivers/char/tpm/tpm_ibmvtpm.h +1 -0
index 7983f1a33267..b92aa7d3e93e 100644
@@ -26,6 +26,7 @@ struct ibmvtpm_crq_queue {
 	struct ibmvtpm_crq *crq_addr;
 	u32 index;
 	u32 num_entry;
+	wait_queue_head_t wq;
 };
 
 struct ibmvtpm_dev {
drivers/clk/imx/clk-pfdv2.c +6 -0
index a03bbed662c6..2a46b9b61b46 100644
@@ -139,6 +139,12 @@ static int clk_pfdv2_set_rate(struct clk_hw *hw, unsigned long rate,
 	u32 val;
 	u8 frac;
 
+	if (!rate)
+		return -EINVAL;
+
+	/* PFD can NOT change rate without gating */
+	WARN_ON(clk_pfdv2_is_enabled(hw));
+
 	tmp = tmp * 18 + rate / 2;
 	do_div(tmp, rate);
 	frac = tmp;
drivers/clk/socfpga/clk-pll-s10.c +3 -1
index 4705eb544f01..8d7b1d0c4664 100644
@@ -39,7 +39,9 @@ static unsigned long clk_pll_recalc_rate(struct clk_hw *hwclk,
 	/* read VCO1 reg for numerator and denominator */
 	reg = readl(socfpgaclk->hw.reg);
 	refdiv = (reg & SOCFPGA_PLL_REFDIV_MASK) >> SOCFPGA_PLL_REFDIV_SHIFT;
-	vco_freq = (unsigned long long)parent_rate / refdiv;
+
+	vco_freq = parent_rate;
+	do_div(vco_freq, refdiv);
 
 	/* Read mdiv and fdiv from the fdbck register */
 	reg = readl(socfpgaclk->hw.reg + 0x4);
drivers/clk/ti/adpll.c +2 -9
index fdfb90058504..bb2f2836dab2 100644
@@ -194,15 +194,8 @@ static const char *ti_adpll_clk_get_name(struct ti_adpll_data *d,
 		if (err)
 			return NULL;
 	} else {
-		const char *base_name = "adpll";
-		char *buf;
-
-		buf = devm_kzalloc(d->dev, 8 + 1 + strlen(base_name) + 1 +
-				    strlen(postfix), GFP_KERNEL);
-		if (!buf)
-			return NULL;
-		sprintf(buf, "%08lx.%s.%s", d->pa, base_name, postfix);
-		name = buf;
+		name = devm_kasprintf(d->dev, GFP_KERNEL, "%08lx.adpll.%s",
+				      d->pa, postfix);
 	}
 
 	return name;
drivers/clocksource/h8300_timer8.c +1 -1
index 1d740a8c42ab..47114c2a7cb5 100644
@@ -169,7 +169,7 @@ static int __init h8300_8timer_init(struct device_node *node)
 		return PTR_ERR(clk);
 	}
 
-	ret = ENXIO;
+	ret = -ENXIO;
 	base = of_iomap(node, 0);
 	if (!base) {
 		pr_err("failed to map registers for clockevent\n");
drivers/cpufreq/powernv-cpufreq.c +8 -5
index 1806b1da4366..3a2f022f6bde 100644
@@ -902,6 +902,7 @@ static struct notifier_block powernv_cpufreq_reboot_nb = {
 void powernv_cpufreq_work_fn(struct work_struct *work)
 {
 	struct chip *chip = container_of(work, struct chip, throttle);
+	struct cpufreq_policy *policy;
 	unsigned int cpu;
 	cpumask_t mask;
 
@@ -916,12 +917,14 @@ void powernv_cpufreq_work_fn(struct work_struct *work)
 	chip->restore = false;
 	for_each_cpu(cpu, &mask) {
 		int index;
-		struct cpufreq_policy policy;
 
-		cpufreq_get_policy(&policy, cpu);
-		index = cpufreq_table_find_index_c(&policy, policy.cur);
-		powernv_cpufreq_target_index(&policy, index);
-		cpumask_andnot(&mask, &mask, policy.cpus);
+		policy = cpufreq_cpu_get(cpu);
+		if (!policy)
+			continue;
+		index = cpufreq_table_find_index_c(policy, policy->cur);
+		powernv_cpufreq_target_index(policy, index);
+		cpumask_andnot(&mask, &mask, policy->cpus);
+		cpufreq_cpu_put(policy);
 	}
 out:
 	put_online_cpus();
drivers/crypto/chelsio/chcr_algo.c +3 -2
index fe2eadc0ce83..2d30ed5a2674 100644
@@ -2480,8 +2480,9 @@ int chcr_aead_dma_map(struct device *dev,
 	else
 		reqctx->b0_dma = 0;
 	if (req->src == req->dst) {
-		error = dma_map_sg(dev, req->src, sg_nents(req->src),
-				   DMA_BIDIRECTIONAL);
+		error = dma_map_sg(dev, req->src,
+				sg_nents_for_len(req->src, dst_size),
+					DMA_BIDIRECTIONAL);
 		if (!error)
 			goto err;
 	} else {
drivers/crypto/chelsio/chtls/chtls_io.c +5 -5
index ce1f1d5d7cd5..c403d6b64e08 100644
@@ -1437,7 +1437,7 @@ static int chtls_pt_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
 				      csk->wr_max_credits))
 			sk->sk_write_space(sk);
 
-		if (copied >= target && !sk->sk_backlog.tail)
+		if (copied >= target && !READ_ONCE(sk->sk_backlog.tail))
 			break;
 
 		if (copied) {
@@ -1470,7 +1470,7 @@ static int chtls_pt_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
 				break;
 			}
 		}
-		if (sk->sk_backlog.tail) {
+		if (READ_ONCE(sk->sk_backlog.tail)) {
 			release_sock(sk);
 			lock_sock(sk);
 			chtls_cleanup_rbuf(sk, copied);
@@ -1615,7 +1615,7 @@ static int peekmsg(struct sock *sk, struct msghdr *msg,
 			break;
 		}
 
-		if (sk->sk_backlog.tail) {
+		if (READ_ONCE(sk->sk_backlog.tail)) {
 			/* Do not sleep, just process backlog. */
 			release_sock(sk);
 			lock_sock(sk);
@@ -1743,7 +1743,7 @@ int chtls_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
 				      csk->wr_max_credits))
 			sk->sk_write_space(sk);
 
-		if (copied >= target && !sk->sk_backlog.tail)
+		if (copied >= target && !READ_ONCE(sk->sk_backlog.tail))
 			break;
 
 		if (copied) {
@@ -1774,7 +1774,7 @@ int chtls_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
 			}
 		}
 
-		if (sk->sk_backlog.tail) {
+		if (READ_ONCE(sk->sk_backlog.tail)) {
 			release_sock(sk);
 			lock_sock(sk);
 			chtls_cleanup_rbuf(sk, copied);
drivers/dax/bus.c +1 -1
index 8fafbeab510a..eccdda1f7b71 100644
@@ -227,7 +227,7 @@ static void dax_region_unregister(void *region)
 
 struct dax_region *alloc_dax_region(struct device *parent, int region_id,
 		struct resource *res, int target_node, unsigned int align,
-		unsigned long pfn_flags)
+		unsigned long long pfn_flags)
 {
 	struct dax_region *dax_region;
 
drivers/dax/bus.h +1 -1
index 8619e3299943..9e4eba67e8b9 100644
@@ -11,7 +11,7 @@ struct dax_region;
 void dax_region_put(struct dax_region *dax_region);
 struct dax_region *alloc_dax_region(struct device *parent, int region_id,
 		struct resource *res, int target_node, unsigned int align,
-		unsigned long flags);
+		unsigned long long flags);
 
 enum dev_dax_subsys {
 	DEV_DAX_BUS,
drivers/dax/dax-private.h +1 -1
index 6ccca3b890d6..3107ce80e809 100644
@@ -32,7 +32,7 @@ struct dax_region {
 	struct device *dev;
 	unsigned int align;
 	struct resource res;
-	unsigned long pfn_flags;
+	unsigned long long pfn_flags;
 };
 
 /**
drivers/devfreq/tegra30-devfreq.c +3 -1
index a6ba75f4106d..e273011c83fb 100644
@@ -68,6 +68,8 @@
 
 #define KHZ							1000
 
+#define KHZ_MAX						(ULONG_MAX / KHZ)
+
 /* Assume that the bus is saturated if the utilization is 25% */
 #define BUS_SATURATION_RATIO					25
 
@@ -169,7 +171,7 @@ struct tegra_actmon_emc_ratio {
 };
 
 static struct tegra_actmon_emc_ratio actmon_emc_ratios[] = {
-	{ 1400000, ULONG_MAX },
+	{ 1400000,    KHZ_MAX },
 	{ 1200000,    750000 },
 	{ 1100000,    600000 },
 	{ 1000000,    500000 },
drivers/dma-buf/dma-buf.c +2 -0
index eba7e3fe769c..f6df6ef1b0fb 100644
@@ -59,6 +59,8 @@ static void dma_buf_release(struct dentry *dentry)
 	struct dma_buf *dmabuf;
 
 	dmabuf = dentry->d_fsdata;
+	if (unlikely(!dmabuf))
+		return;
 
 	BUG_ON(dmabuf->vmapping_counter);
 
drivers/dma-buf/dma-fence.c +35 -43

120 lines not on this page · raw message

drivers/dma/mediatek/mtk-hsdma.c +3 -1
index 1a2028e1c29e..4c58da742143 100644
@@ -997,7 +997,7 @@ static int mtk_hsdma_probe(struct platform_device *pdev)
 	if (err) {
 		dev_err(&pdev->dev,
 			"request_irq failed with err %d\n", err);
-		goto err_unregister;
+		goto err_free;
 	}
 
 	platform_set_drvdata(pdev, hsdma);
@@ -1006,6 +1006,8 @@ static int mtk_hsdma_probe(struct platform_device *pdev)
 
 	return 0;
 
+err_free:
+	of_dma_controller_free(pdev->dev.of_node);
 err_unregister:
 	dma_async_device_unregister(dd);
 
drivers/dma/stm32-dma.c +6 -3
index 5989b0893521..6c5771de32c6 100644
@@ -488,8 +488,10 @@ static int stm32_dma_terminate_all(struct dma_chan *c)
 
 	spin_lock_irqsave(&chan->vchan.lock, flags);
 
-	if (chan->busy) {
-		stm32_dma_stop(chan);
+	if (chan->desc) {
+		vchan_terminate_vdesc(&chan->desc->vdesc);
+		if (chan->busy)
+			stm32_dma_stop(chan);
 		chan->desc = NULL;
 	}
 
@@ -545,6 +547,8 @@ static void stm32_dma_start_transfer(struct stm32_dma_chan *chan)
 		if (!vdesc)
 			return;
 
+		list_del(&vdesc->node);
+
 		chan->desc = to_stm32_dma_desc(vdesc);
 		chan->next_sg = 0;
 	}
@@ -622,7 +626,6 @@ static void stm32_dma_handle_chan_done(struct stm32_dma_chan *chan)
 		} else {
 			chan->busy = false;
 			if (chan->next_sg == chan->desc->num_sgs) {
-				list_del(&chan->desc->vdesc.node);
 				vchan_cookie_complete(&chan->desc->vdesc);
 				chan->desc = NULL;
 			}
drivers/dma/stm32-mdma.c +6 -3
index 5838311cf990..ee1cbf3be75d 100644
@@ -1127,6 +1127,8 @@ static void stm32_mdma_start_transfer(struct stm32_mdma_chan *chan)
 		return;
 	}
 
+	list_del(&vdesc->node);
+
 	chan->desc = to_stm32_mdma_desc(vdesc);
 	hwdesc = chan->desc->node[0].hwdesc;
 	chan->curr_hwdesc = 0;
@@ -1242,8 +1244,10 @@ static int stm32_mdma_terminate_all(struct dma_chan *c)
 	LIST_HEAD(head);
 
 	spin_lock_irqsave(&chan->vchan.lock, flags);
-	if (chan->busy) {
-		stm32_mdma_stop(chan);
+	if (chan->desc) {
+		vchan_terminate_vdesc(&chan->desc->vdesc);
+		if (chan->busy)
+			stm32_mdma_stop(chan);
 		chan->desc = NULL;
 	}
 	vchan_get_all_descriptors(&chan->vchan, &head);
@@ -1331,7 +1335,6 @@ static enum dma_status stm32_mdma_tx_status(struct dma_chan *c,
 
 static void stm32_mdma_xfer_end(struct stm32_mdma_chan *chan)
 {
-	list_del(&chan->desc->vdesc.node);
 	vchan_cookie_complete(&chan->desc->vdesc);
 	chan->desc = NULL;
 	chan->busy = false;
drivers/dma/tegra20-apb-dma.c +1 -2
index 4a750e29bfb5..3fe27dbde5b2 100644
@@ -1287,8 +1287,7 @@ static void tegra_dma_free_chan_resources(struct dma_chan *dc)
 
 	dev_dbg(tdc2dev(tdc), "Freeing channel %d\n", tdc->id);
 
-	if (tdc->busy)
-		tegra_dma_terminate_all(dc);
+	tegra_dma_terminate_all(dc);
 
 	spin_lock_irqsave(&tdc->lock, flags);
 	list_splice_init(&tdc->pending_sg_req, &sg_req_list);
drivers/dma/xilinx/zynqmp_dma.c +15 -9
index 9c845c07b107..d47749a35863 100644
@@ -123,10 +123,12 @@
 /* Max transfer size per descriptor */
 #define ZYNQMP_DMA_MAX_TRANS_LEN	0x40000000
 
+/* Max burst lengths */
+#define ZYNQMP_DMA_MAX_DST_BURST_LEN    32768U
+#define ZYNQMP_DMA_MAX_SRC_BURST_LEN    32768U
+
 /* Reset values for data attributes */
 #define ZYNQMP_DMA_AXCACHE_VAL		0xF
-#define ZYNQMP_DMA_ARLEN_RST_VAL	0xF
-#define ZYNQMP_DMA_AWLEN_RST_VAL	0xF
 
 #define ZYNQMP_DMA_SRC_ISSUE_RST_VAL	0x1F
 
@@ -534,17 +536,19 @@ static void zynqmp_dma_handle_ovfl_int(struct zynqmp_dma_chan *chan, u32 status)
 
 static void zynqmp_dma_config(struct zynqmp_dma_chan *chan)
 {
-	u32 val;
+	u32 val, burst_val;
 
 	val = readl(chan->regs + ZYNQMP_DMA_CTRL0);
 	val |= ZYNQMP_DMA_POINT_TYPE_SG;
 	writel(val, chan->regs + ZYNQMP_DMA_CTRL0);
 
 	val = readl(chan->regs + ZYNQMP_DMA_DATA_ATTR);
+	burst_val = __ilog2_u32(chan->src_burst_len);
 	val = (val & ~ZYNQMP_DMA_ARLEN) |
-		(chan->src_burst_len << ZYNQMP_DMA_ARLEN_OFST);
+		((burst_val << ZYNQMP_DMA_ARLEN_OFST) & ZYNQMP_DMA_ARLEN);
[… more lines in the raw message]

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

drivers/edac/ghes_edac.c +4 -0
index 523dd56a798c..0031819402d0 100644

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

drivers/firmware/arm_sdei.c +14 -12
index eb2df89d4924..e497785cd99f 100644

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

drivers/gpio/gpio-rcar.c +3 -1
index 187984d26f47..f0b6c68e848e 100644

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

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c +3 -0
index d10f483f5e27..ce30d4e8bf25 100644

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

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c +3 -0
index e262f2ac07a3..92754cfb9808 100644

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

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +3 -3
index edb561baf8b9..f3fa271e3394 100644

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

drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c +18 -13
index 50dff69a0f6e..b1172d93c99c 100644

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

drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +2 -0
index 5e1dce424154..4105fbf57167 100644

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

drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.c +1 -9
index c8793e6cc3c5..6373bfb47d55 100644

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

drivers/gpu/drm/amd/amdgpu/atom.c +2 -2
index dd30f4e61a8c..cae426c7c086 100644

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

drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c +1 -57

58 lines not on this page · raw message

drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c +2 -0
index 791ba398f007..d92e92e5d50b 100644

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

drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +1 -39
index cc88ba76a8d4..467ed7fca884 100644

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

drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +1 -39
index 6004fdacc866..90dcc7afc9c4 100644

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

drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c +16 -0
index 36ad0c0e8efb..cd2cbe760e88 100644

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

drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler.h +70 -69

139 lines not on this page · raw message

drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx10.asm +1 -0
index cdaa523ce6be..4433bda2ce25 100644

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

drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +2 -0
index a2ed9c257cb0..e9a278440079 100644

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

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +10 -22
index 60e50181f6d3..2384aa018993 100644

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

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c +2 -0
index b43bb7f90e4e..2233d293a707 100644

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

drivers/gpu/drm/amd/display/dc/core/dc_link.c +29 -38

67 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c +25 -27

52 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c +5 -0
index a519dbc5ecb6..5641a9477d29 100644

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

drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dccg.c +0 -26
index 16476ed25536..206436632275 100644

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

drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dsc.c +4 -1
index 1b419407af94..5c45c39662fb 100644

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

drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +3 -2
index 05b98eadc289..08062de3fbeb 100644

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

drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubp.c +25 -10
index a00af513aa2b..c8f77bd0ce8a 100644

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

drivers/gpu/drm/amd/display/dc/inc/hw/dsc.h +1 -0
index 1ddb1c6fa149..75ecfdc5d5cd 100644

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

drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c +7 -0
index 3a2a1dc9a786..1b55f037ba4a 100644

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

drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c +7 -0
index beacfffbdc3e..ecbc9daea57e 100644

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

drivers/gpu/drm/exynos/exynos_drm_dsi.c +15 -5
index 8ed94c994800..b83acd696774 100644

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

drivers/gpu/drm/gma500/cdv_intel_display.c +2 -0
index f56852a503e8..8b784947ed3b 100644

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

drivers/gpu/drm/mcde/mcde_display.c +10 -0
index 751454ae3cd1..28ed50628501 100644

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

drivers/gpu/drm/msm/adreno/a5xx_gpu.c +20 -7
index 24b55103bfe0..c8fb21cc0d6f 100644

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

drivers/gpu/drm/msm/msm_drv.c +4 -2
index 4558d66761b3..108632a1f243 100644

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

drivers/gpu/drm/nouveau/dispnv50/disp.c +3 -1
index 419a02260bfa..ee2b1e1199e0 100644

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

drivers/gpu/drm/nouveau/nouveau_debugfs.c +4 -1
index 5c314f135dd1..3b13feca970f 100644

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

drivers/gpu/drm/nouveau/nouveau_gem.c +3 -1
index fbfe25422774..7d39d4949ee7 100644

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

drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c +15 -2
index 9b91da09dc5f..8d9812a51ef6 100644

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

drivers/gpu/drm/omapdrm/dss/dss.c +26 -17

43 lines not on this page · raw message

drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c +3 -1
index 31502857f013..ce67891eedd4 100644

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

drivers/gpu/drm/radeon/radeon_bios.c +19 -11
index 4d1490fbb075..756a50e8aff2 100644

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

drivers/gpu/drm/scheduler/sched_main.c +27 -0
index 30c5ddd6d081..134e9106ebac 100644

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

drivers/gpu/drm/sun4i/sun8i_csc.h +1 -1
index f42441b1b14d..a55a38ad849c 100644

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

drivers/gpu/drm/vc4/vc4_hdmi.c +1 -0
index d5f5ba410524..54435b72b761 100644

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

drivers/hwtracing/coresight/coresight-etm4x.c +1 -0
index a128b5063f46..83dccdeef906 100644

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

drivers/hwtracing/intel_th/intel_th.h +2 -0
index 6f4f5486fe6d..5fe694708b7a 100644

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

drivers/hwtracing/intel_th/msu.c +9 -2
index 255f8f41c8ff..3cd2489d398c 100644

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

drivers/hwtracing/intel_th/pci.c +6 -2
index 0d26484d6795..21fdf0b93516 100644

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

drivers/i2c/busses/i2c-aspeed.c +2 -0
index dad6e432de89..bdcc3c9d0abe 100644

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

drivers/i2c/busses/i2c-tegra.c +55 -38

93 lines not on this page · raw message

drivers/i2c/i2c-core-base.c +1 -1
index def62d5b42ca..2dfe2ffcf882 100644

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

drivers/infiniband/core/cm.c +15 -10
index 09af96ec41dd..c1d6a068f50f 100644

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

drivers/infiniband/hw/cxgb4/cm.c +2 -2
index 6b4e7235d2f5..30e08bcc9afb 100644

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

drivers/infiniband/hw/i40iw/i40iw_cm.c +1 -1
index b1df93b69df4..fa7a5ff498c7 100644

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

drivers/infiniband/hw/qedr/qedr_iw_cm.c +1 -1
index a7a926b7b562..6dea49e11f5f 100644

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

drivers/infiniband/sw/rxe/rxe.c +2 -0
index 70c4ea438664..de5f3efe9fcb 100644

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

drivers/infiniband/sw/rxe/rxe_qp.c +4 -3
index e2c6d1cedf41..f85273883794 100644

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

drivers/infiniband/ulp/iser/iser_memory.c +18 -3
index 2cc89a9b9e9b..ea8e611397a3 100644

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

drivers/leds/leds-mlxreg.c +2 -2
index cabe379071a7..82aea1cd0c12 100644

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

drivers/md/bcache/bcache.h +1 -0
index 217c838a1b40..859567ad3db4 100644

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

drivers/md/bcache/btree.c +8 -4
index 46556bde032e..8d06105fc9ff 100644

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

drivers/md/bcache/super.c +1 -0
index 2cbfcd99b7ee..63f5ce18311b 100644

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

drivers/md/dm-table.c +8 -19
index edc366075913..13ad79112661 100644

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

drivers/md/dm.c +2 -21
index 63d59e2ed158..667db23f10ee 100644

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

drivers/media/dvb-frontends/tda10071.c +5 -4
index 1953b00b3e48..685c0ac71819 100644

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

drivers/media/i2c/smiapp/smiapp-core.c +2 -1
index 42805dfbffeb..06edbe8749c6 100644

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

drivers/media/mc/mc-device.c +33 -32

65 lines not on this page · raw message

drivers/media/platform/qcom/venus/vdec.c +3 -2
index 59ae7a1e63bc..05b80a66e80e 100644

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

drivers/media/platform/ti-vpe/cal.c +4 -2
index 955a49b8e9c0..f06408009a9c 100644

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

drivers/media/usb/go7007/go7007-usb.c +3 -1
index ff2aa057c1fb..f889c9d740cd 100644

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

drivers/mfd/mfd-core.c +10 -0
index 23276a80e3b4..96d02b6f06fd 100644

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

drivers/mmc/core/mmc.c +4 -5
index b7159e243323..de14b5845f52 100644

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

drivers/mtd/chips/cfi_cmdset_0002.c +0 -1
index a4f2d8cdca12..c8b9ab40a102 100644

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

drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c +3 -1
index b9d5d55a5edb..ef89947ee319 100644

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

drivers/mtd/nand/raw/omap_elm.c +1 -0
index 5502ffbdd1e6..6e0e31eab7cc 100644

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

drivers/mtd/parsers/cmdlinepart.c +20 -3
index c86f2db8c882..0625b25620ca 100644

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

drivers/mtd/ubi/fastmap-wl.c +31 -15

46 lines not on this page · raw message

drivers/mtd/ubi/fastmap.c +5 -9
index 604772fc4a96..53f448e7433a 100644

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

drivers/mtd/ubi/ubi.h +4 -2
index 721b6aa7936c..a173eb707bdd 100644

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

drivers/mtd/ubi/wl.c +14 -18
index 3fcdefe2714d..5d77a38dba54 100644

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

drivers/mtd/ubi/wl.h +0 -1
index a9e2d669acd8..c93a53293786 100644

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

drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +3 -1
index 7a248cc1055a..7af7cc7c8669 100644

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

drivers/net/ethernet/intel/e1000/e1000_main.c +14 -4
index f93ed70709c6..a2ee28e487a6 100644

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

drivers/net/ethernet/intel/iavf/iavf_main.c +5 -3
index 34124c213d27..222ae76809aa 100644

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

drivers/net/ethernet/intel/ice/ice_ethtool.c +7 -7
index 62673e27af0e..fc9ff985a62b 100644

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

drivers/net/ethernet/qlogic/qed/qed_dev.c +10 -1
index 4456ce5325a7..a923c6553270 100644

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

drivers/net/ethernet/qlogic/qed/qed_l2.c +3 -0
index 1a5fc2ae351c..8a73482cb7a8 100644

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

drivers/net/ethernet/qlogic/qed/qed_main.c +2 -0
index e72f9f1d2e94..bc1f5b36b5bf 100644

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

drivers/net/ethernet/qlogic/qed/qed_sriov.c +1 -0
index dcb5c917f373..fb9c3ca5d36c 100644

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

drivers/net/ethernet/qlogic/qede/qede_filter.c +3 -0
index c8bdbf057d5a..5041994bf03f 100644

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

drivers/net/ethernet/qlogic/qede/qede_main.c +5 -6
index 2c3d654c8454..ce3e62e73e4c 100644

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

drivers/net/ethernet/realtek/r8169_main.c +1 -2
index 6fa9852e3f97..903212ad9bb2 100644

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

drivers/net/ethernet/xilinx/xilinx_axienet.h +1 -1
index 2dacfc85b3ba..04e51af32178 100644

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

drivers/net/ethernet/xilinx/xilinx_axienet_main.c +31 -19

50 lines not on this page · raw message

drivers/net/ieee802154/adf7242.c +3 -1
index 8dbccec6ac86..5945ac5f38ee 100644

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

drivers/net/ieee802154/ca8210.c +1 -0
index 430c93786153..25dbea302fb6 100644

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

drivers/net/wireless/ath/ar5523/ar5523.c +2 -0
index da2d179430ca..4c57e79e5779 100644

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

drivers/net/wireless/ath/ath10k/debug.c +2 -1
index bd2b5628f850..04c50a26a4f4 100644

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

drivers/net/wireless/ath/ath10k/sdio.c +14 -4
index 9870d2d095c8..8fe626deadeb 100644

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

drivers/net/wireless/ath/ath10k/wmi.c +31 -18

49 lines not on this page · raw message

drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c +1 -2
index eadc64454839..3d36b6ee158b 100644

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

drivers/net/wireless/marvell/mwifiex/fw.h +1 -1
index 1fb76d2f5d3f..8b9d0809daf6 100644

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

drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c +2 -2
index 7ae2c34f65db..4eaa493e3325 100644

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

drivers/net/wireless/mediatek/mt76/agg-rx.c +1 -0
index cbff0dfc9631..f8441fd65400 100644

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

drivers/net/wireless/mediatek/mt76/dma.c +8 -1
index 6249a46c1976..026d996612fb 100644

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

drivers/net/wireless/mediatek/mt76/mac80211.c +11 -1
index 1a2c143b34d0..8bd191347b9f 100644

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

drivers/net/wireless/mediatek/mt76/mt7603/main.c +2 -0
index 25d5b1608bc9..0a5695c3d924 100644

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

drivers/net/wireless/mediatek/mt76/mt7615/main.c +2 -0
index 87c748715b5d..38183aef0eb9 100644

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

drivers/net/wireless/mediatek/mt76/mt76x02_util.c +2 -0
index aec73a0295e8..de0d6f21c621 100644

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

drivers/net/wireless/ti/wlcore/main.c +3 -1
index 547ad538d8b6..5f74cf821068 100644

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

drivers/net/wireless/ti/wlcore/tx.c +1 -0
index 90e56d4c3df3..e20e18cd04ae 100644

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

drivers/nvme/host/Kconfig +1 -0
index 2b36f052bfb9..7b3f6555e67b 100644

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

drivers/nvme/host/core.c +9 -5
index 2d2673d360ff..2cd32901d95c 100644

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

drivers/nvme/host/fc.c +1 -3
index dae050d1f814..da801a14cd13 100644

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

drivers/nvme/host/multipath.c +9 -12
index 0a458f788088..3968f89f7855 100644

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

drivers/nvme/host/nvme.h +17 -2
index 2bd9f7c3084f..b7117fb09dd0 100644

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

drivers/nvme/host/pci.c +0 -1
index a91433bdf5de..75f26d2ec642 100644

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

drivers/nvme/host/rdma.c +1 -2
index f9444272f861..abe4fe496d05 100644

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

drivers/nvme/host/tcp.c +1 -2
index c782005ee99f..6d7a813e7183 100644

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

drivers/nvme/target/loop.c +1 -2
index 11f5aea97d1b..82b87a4c50f6 100644

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

drivers/nvme/target/rdma.c +18 -12
index 36d906a7f70d..b5314164479e 100644

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

drivers/opp/core.c +19 -29

48 lines not on this page · raw message

drivers/opp/of.c +15 -15
index 1e5fcdee043c..249738e1e0b7 100644

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

drivers/opp/opp.h +2 -4
index 01a500e2c40a..d14e27102730 100644

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

drivers/pci/controller/dwc/pcie-tegra194.c +2 -3
index f89f5acee72d..c06b05ab9f78 100644

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

drivers/pci/controller/pci-tegra.c +1 -2
index b71e753419c2..cfa3c83d6cc7 100644

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

drivers/pci/hotplug/pciehp_hpc.c +20 -6
index 356786a3b7f4..88b996764ff9 100644

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

drivers/pci/iov.c +7 -1
index deec9f9e0b61..9c116cbaa95d 100644

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

drivers/pci/rom.c +0 -17
index 137bf0cee897..8fc9a4e911e3 100644

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

drivers/pci/setup-bus.c +27 -11
index 5356630e0e48..44f4866d95d8 100644

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

drivers/phy/samsung/phy-s5pv210-usb2.c +4 -0
index 56a5083fe6f9..32be62e49804 100644

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

drivers/power/supply/max17040_battery.c +1 -1
index 62499018e68b..2e845045a3fc 100644

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

drivers/rapidio/devices/rio_mport_cdev.c +7 -7
index 10af330153b5..0b85a80ae7ef 100644

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

drivers/regulator/axp20x-regulator.c +4 -3
index 16f0c8570036..7075f42b9fcf 100644

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

drivers/rtc/rtc-ds1374.c +9 -6
index 367497914c10..28eb96cbaf98 100644

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

drivers/rtc/rtc-sa1100.c +10 -8
index 86fa723b3b76..795273269d58 100644

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

drivers/s390/block/dasd_fba.c +8 -1
index cbb770824226..1a44e321b54e 100644

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

drivers/s390/cio/airq.c +2 -6
index 427b2e24a8ce..cb466ed7eb5e 100644

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

drivers/s390/cio/cio.c +2 -6
index 18f5458f90e8..6d716db2a46a 100644

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

drivers/s390/crypto/zcrypt_api.c +2 -1
index 7fa0262e91af..ec41a8a76398 100644

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

drivers/scsi/aacraid/aachba.c +4 -4
index 0ed3f806ace5..2388143d59f5 100644

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

drivers/scsi/aacraid/commsup.c +1 -1
index 2142a649e865..90fb17c5dd69 100644

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

drivers/scsi/aacraid/linit.c +33 -13

46 lines not on this page · raw message

drivers/scsi/cxlflash/main.c +1 -0
index 93ef97af22df..67d681c53c29 100644

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

drivers/scsi/fnic/fnic_scsi.c +2 -1
index e3f5c91d5e4f..b60795893994 100644

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

drivers/scsi/hpsa.c +57 -23

80 lines not on this page · raw message

drivers/scsi/libfc/fc_rport.c +8 -5
index 6bb8917b99a1..64500417c22e 100644

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

drivers/scsi/lpfc/lpfc_attr.c +20 -20
index 25aa7a53d255..bb973901b672 100644

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

drivers/scsi/lpfc/lpfc_ct.c +69 -68

137 lines not on this page · raw message

drivers/scsi/lpfc/lpfc_hbadisc.c +52 -24

76 lines not on this page · raw message

drivers/scsi/lpfc/lpfc_hw.h +16 -20
index 436cdc8c5ef4..b5642c872593 100644

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

drivers/scsi/lpfc/lpfc_init.c +1 -0
index 95abffd9ad10..d4c83eca0ad2 100644

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

drivers/scsi/lpfc/lpfc_nportdisc.c +206 -27

233 lines not on this page · raw message

drivers/scsi/lpfc/lpfc_sli.c +4 -0
index a951e1c8165e..e2877d2b3cc0 100644

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

drivers/scsi/mpt3sas/mpt3sas_ctl.c +0 -6
index d5a62fea8fe3..bae7cf70ee17 100644

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

drivers/scsi/pm8001/pm8001_sas.c +37 -13

50 lines not on this page · raw message

drivers/scsi/qedi/qedi_iscsi.c +3 -0
index 0f57c8073406..0f2622a48311 100644

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

drivers/scsi/qla2xxx/qla_init.c +17 -26

43 lines not on this page · raw message

drivers/scsi/qla2xxx/qla_iocb.c +97 -4

101 lines not on this page · raw message

drivers/scsi/qla2xxx/qla_target.c +15 -6
index b75e6e4d58c0..a7acc266cec0 100644

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

drivers/scsi/ufs/ufshcd.c +7 -7
index 5e502e160554..d538b3d4f74a 100644

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

drivers/soundwire/bus.c +2 -0
index fc53dbe57f85..a90963812357 100644

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

drivers/soundwire/cadence_master.c +56 -24

80 lines not on this page · raw message

drivers/soundwire/cadence_master.h +1 -0
index 0b72b7094735..1a67728c5000 100644

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

drivers/soundwire/intel.c +12 -2
index 243af8198d1c..a2da04946f0b 100644

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

drivers/staging/media/imx/imx-media-capture.c +1 -1
index 46576e32581f..d151cd6d3188 100644

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

drivers/staging/rtl8188eu/core/rtw_recv.c +6 -13
index d4278361e002..a036ef104198 100644

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

drivers/thermal/rcar_thermal.c +4 -2
index d0873de718da..43f0cd2bd0ae 100644

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

drivers/tty/serial/8250/8250_omap.c +5 -3
index 836e736ae188..f2c6d9d3bb28 100644

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

drivers/tty/serial/8250/8250_port.c +15 -1
index 90f09ed6e5ad..5b673077639b 100644

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

drivers/tty/serial/samsung.c +4 -4
index 71f99e921759..c7683beb3412 100644

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

drivers/tty/serial/sifive.c +24 -4
index 38133eba83a8..b4343c6aa651 100644

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

drivers/tty/serial/xilinx_uartps.c +8 -0
index 8948970f795e..9359c80fbb9f 100644

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

drivers/tty/vcc.c +1 -0
index d2a1e1228c82..9ffd42e333b8 100644

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

drivers/usb/dwc3/gadget.c +1 -1
index 422554434251..809103254fc6 100644

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

drivers/usb/host/ehci-mv.c +3 -5
index 66ec1fdf9fe7..b6f196f5e252 100644

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

drivers/vfio/pci/vfio_pci.c +13 -0
index 0d16f9806655..a72fd5309b09 100644

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

fs/block_dev.c +10 -0
index 2dc9c73a4cb2..79272cdbe827 100644

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

fs/btrfs/disk-io.c +5 -6
index dd6fb2ee8040..cd65ef7c7c3f 100644

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

fs/btrfs/extent-tree.c +0 -2
index 31c1ed554d26..7658f3193175 100644

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

fs/btrfs/inode.c +80 -121

201 lines not on this page · raw message

fs/btrfs/relocation.c +42 -3

45 lines not on this page · raw message

fs/btrfs/tree-checker.c +39 -1
index 91ea38506fbb..84b8d6ebf98f 100644

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

fs/ceph/caps.c +13 -1
index b2695919435e..af563d73d252 100644

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

fs/ceph/inode.c +4 -1
index c07407586ce8..660a878e20ef 100644

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

fs/cifs/cifsglob.h +6 -3
index f9cbdfc1591b..b16c994414ab 100644

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

fs/cifs/file.c +14 -7
index 4959dbe740f7..31d578739341 100644

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

fs/cifs/misc.c +3 -14
index 5ad83bdb9bea..40ca394fd5de 100644

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

fs/cifs/smb1ops.c +3 -5
index 195766221a7a..e523c05a4487 100644

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

fs/cifs/smb2misc.c +7 -25
index 2fc96f7923ee..7d875a47d022 100644

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

fs/cifs/smb2ops.c +53 -36

89 lines not on this page · raw message

fs/cifs/smb2pdu.h +1 -1
index 0abfde6d0b05..f264e1d36fe1 100644

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

fs/dcache.c +3 -1
index e88cf0554e65..b2a7f1765f0b 100644

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

fs/exec.c +19 -3
index d62cd1d71098..de833553ae27 100644

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

fs/ext4/inode.c +1 -1
index a284d99a1ee5..95a8a04c77dd 100644

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

fs/ext4/mballoc.c +9 -2
index e1782b2e2e2d..e5d43d2ee474 100644

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

fs/f2fs/gc.c +8 -2
index e611d768efde..a78aa5480454 100644

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

fs/f2fs/node.c +0 -1
index 8a67b933ccd4..ed12e9668184 100644

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

fs/fuse/dev.c +0 -1
index 06dd38e76c62..f9022b702875 100644

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

fs/fuse/inode.c +7 -0
index 5dca643a257c..f58ab84b09fb 100644

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

fs/gfs2/inode.c +7 -6
index 8466166f22e3..988bb7b17ed8 100644

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

fs/iomap/buffered-io.c +3 -4
index e25901ae3ff4..a30ea7ecb790 100644

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

fs/nfs/nfstrace.h +13 -2
index 361cc10d6f95..c8081d2b4166 100644

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

fs/nfs/pagelist.c +45 -22

67 lines not on this page · raw message

fs/nfs/write.c +8 -2
index 58c8317dd7d8..613c3ef23e07 100644

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

fs/nfsd/filecache.c +6 -2
index 3007b8945d38..51c08ae79063 100644

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

fs/nfsd/nfs4state.c +43 -30

73 lines not on this page · raw message

fs/nfsd/trace.h +6 -6
index ffc78a0e28b2..b073bdc2e6e8 100644

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

fs/proc/base.c +5 -5
index ebea9501afb8..529d0c6ec6f9 100644

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

fs/ubifs/io.c +14 -2
index 8ceb51478800..7e4bfaf2871f 100644

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

fs/ubifs/journal.c +1 -0
index a6ae2428e4c9..5f2ac5ef0891 100644

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

fs/ubifs/orphan.c +7 -2
index 7dd740e3692d..283f9eb48410 100644

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

fs/xfs/libxfs/xfs_attr_leaf.c +13 -9
index 5472ed3ce694..de33efc9b4f9 100644

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

fs/xfs/libxfs/xfs_bmap.c +14 -11
index 19a600443b9e..f8db3fe616df 100644

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

fs/xfs/libxfs/xfs_dir2_node.c +1 -0
index 705c4f562758..99d5b2ed67f2 100644

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

fs/xfs/libxfs/xfs_dir2_sf.c +1 -1
index 85f14fc2a8da..ae16ca7c422a 100644

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

fs/xfs/libxfs/xfs_iext_tree.c +1 -1
index 7bc87408f1a0..52451809c478 100644

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

fs/xfs/libxfs/xfs_inode_fork.c +4 -4
index c643beeb5a24..8fdd0424070e 100644

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

fs/xfs/libxfs/xfs_inode_fork.h +8 -6
index 00c62ce170d0..7b845c052fb4 100644

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

fs/xfs/libxfs/xfs_trans_resv.c +77 -19

96 lines not on this page · raw message

fs/xfs/scrub/dir.c +3 -0
index 1e2e11721eb9..20eca2d8e7c7 100644

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

fs/xfs/scrub/scrub.c +9 -0
index 15c8c5f3f688..720bef577998 100644

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

fs/xfs/xfs_bmap_util.c +1 -7
index 0c71acc1b831..d6d78e127625 100644

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

fs/xfs/xfs_file.c +30 -0
index 1e2176190c86..203065a64765 100644

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

fs/xfs/xfs_fsmap.c +9 -0
index d082143feb5a..c13754e119be 100644

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

fs/xfs/xfs_ioctl.c +1 -0
index c93c4b7328ef..60c452631277 100644

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

fs/xfs/xfs_trans.c +5 -0
index f4795fdb7389..b32a66452d44 100644

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

include/asm-generic/pgtable.h +10 -0
index 818691846c90..6fd08cf04add 100644

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

include/linux/binfmts.h +7 -1
index b40fc633f3be..a345d9fed3d8 100644

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

include/linux/debugfs.h +3 -2
index 58424eb3b329..798f0b9b43ae 100644

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

include/linux/kprobes.h +5 -0
index 645fd401c856..a60488867dd0 100644

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

include/linux/libata.h +7 -6
index e752368ea351..3c3d8d6b1618 100644

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

include/linux/mmc/card.h +1 -1
index e459b38ef33c..cf3780a6ccc4 100644

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

include/linux/nfs_page.h +2 -0
index 0bbd587fac6a..7e9419d74b86 100644

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

include/linux/pci.h +0 -1
index f39f22f9ee47..e92bd9b32f36 100644

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

include/linux/qed/qed_if.h +1 -0
index b5db1ee96d78..65a7355ed07b 100644

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

include/linux/sched/signal.h +8 -1
index 88050259c466..a29df79540ce 100644

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

include/linux/seqlock.h +9 -2
index bcf4cf26b8c8..a42a29952889 100644

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

include/linux/skbuff.h +13 -1
index a62889c8bed7..68139cc2f3ca 100644

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

include/linux/sunrpc/svc_rdma.h +2 -3
index 26f282e5e082..77589ed787f5 100644

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

include/net/sock.h +2 -2
index 6d9c1131fe5c..e6a48ebb22aa 100644

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

include/sound/hda_codec.h +5 -0
index 9a0393cf024c..65c056ce9112 100644

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

include/trace/events/sctp.h +0 -9
index 7475c7be165a..d4aac3436595 100644

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

include/trace/events/sunrpc.h +1 -0
index ffa3c51dbb1a..28df77a948e5 100644

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

init/init_task.c +1 -0
index 9e5cbe5eab7b..bd403ed3e418 100644

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

init/main.c +2 -0
index 8c7d6b8ee6bd..fef9e610b74b 100644

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

kernel/Makefile +2 -0
index 42557f251fea..f2cc0d118a0b 100644

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

kernel/audit_watch.c +0 -2
index 4508d5e0cf69..8a8fd732ff6d 100644

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

kernel/bpf/hashtab.c +0 -8
index 039d64b1bfb7..728ffec52cf3 100644

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

kernel/bpf/inode.c +3 -1
index 218c09ff6a27..375d93eb71c7 100644

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

kernel/events/core.c +6 -6
index db1f5aa755f2..47646050efa0 100644

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

kernel/fork.c +3 -2
index 9180f4416dba..594272569a80 100644

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

kernel/kcmp.c +4 -4
index a0e3d7a0e8b8..b3ff9288c6cc 100644

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

kernel/kprobes.c +39 -5

44 lines not on this page · raw message

kernel/locking/lockdep.c +23 -17
index 9ab1a965c3b9..bca0f7f71cde 100644

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

kernel/locking/lockdep_internals.h +6 -0
index 18d85aebbb57..a525368b8cf6 100644

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

kernel/notifier.c +4 -1
index 157d7c29f720..f6d5ffe4e72e 100644

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

kernel/printk/printk.c +3 -0
index 971197f5d8ee..5569ef6bc183 100644

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

kernel/sched/core.c +2 -1
index 352239c411a4..79ce22de4409 100644

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

kernel/sched/fair.c +47 -32

79 lines not on this page · raw message

kernel/sys.c +3 -1
index a611d1d58c7d..3459a5ce0da0 100644

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

kernel/sysctl-test.c new file +392 -0

392 lines not on this page · raw message

kernel/time/timekeeping.c +1 -2
index ca69290bee2a..4fc2af4367a7 100644

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

kernel/trace/trace.c +16 -4
index f9c2bdbbd893..db8162b34ef6 100644

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

kernel/trace/trace_entries.h +1 -1
index fc8e97328e54..78c146efb862 100644

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

kernel/trace/trace_events.c +2 -0
index ed9eb97b64b4..309b2b3c5349 100644

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

kernel/trace/trace_events_hist.c +0 -1
index 8107574e8af9..a616b314fb7a 100644

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

kernel/trace/trace_preemptirq.c +2 -2
index 4d8e99fdbbbe..26b06b09c9f6 100644

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

kernel/workqueue.c +4 -2
index 1a0c224af6fb..4aa268582a22 100644

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

lib/Kconfig.debug +11 -0
index 6118d99117da..ee00c6c8a373 100644

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

lib/string.c +24 -0
index 08ec58cc673b..abfaa05181e2 100644

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

mm/filemap.c +8 -0
index 18c1f5830074..51b2cb5aa503 100644

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

mm/gup.c +9 -9
index 4a8e969a6e59..3ef769529548 100644

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

mm/kmemleak.c +1 -1
index 244607663363..312942d78405 100644

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

mm/madvise.c +1 -1
index 26f7954865ed..1107e99e498b 100644

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

mm/memcontrol.c +14 -12
index 402c8bc65e08..ca1632850fb7 100644

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

mm/memory.c +107 -14

121 lines not on this page · raw message

mm/mmap.c +2 -0
index a3584a90c55c..ba78f1f1b1bd 100644

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

mm/pagewalk.c +2 -2
index d48c2a986ea3..4eb09e089881 100644

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

mm/slub.c +30 -15

45 lines not on this page · raw message

mm/swap_state.c +3 -2
index 4ce014dc4571..7c434fcfff0d 100644

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

mm/swapfile.c +6 -6
index 891a3ef48651..cf62bdb7b304 100644

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

mm/vmscan.c +26 -19

45 lines not on this page · raw message

net/atm/lec.c +6 -0
index 5a77c235a212..3625a04a6c70 100644

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

net/atm/proc.c +1 -2
index d79221fd4dae..c31896707313 100644

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

net/batman-adv/bridge_loop_avoidance.c +117 -28

145 lines not on this page · raw message

net/batman-adv/bridge_loop_avoidance.h +2 -2
index 02b24a861a85..9370be015813 100644

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

net/batman-adv/multicast.c +36 -10

46 lines not on this page · raw message

net/batman-adv/multicast.h +15 -0
index 5d9e2bb29c97..403929013ac4 100644

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

net/batman-adv/routing.c +4 -0
index f0f864820dea..708e90cb18a6 100644

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

net/batman-adv/soft-interface.c +5 -6
index 5ee8e9a100f9..7f209390069e 100644

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

net/bluetooth/hci_event.c +23 -2
index 7bf6860fed78..fd436e5d7b54 100644

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

net/bluetooth/l2cap_core.c +17 -12
index a845786258a0..12a50e5a9f45 100644

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

net/bluetooth/l2cap_sock.c +15 -3
index a7be8b59b3c2..390a9afab647 100644

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

net/core/devlink.c +5 -2
index 5667cae57072..26c8993a17ae 100644

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

net/core/filter.c +2 -2
index cf2a68513bfd..c441f9961e91 100644

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

net/core/neighbour.c +1 -0
index 7b40d12f0c22..04953e5f2530 100644

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

net/ipv4/route.c +1 -0
index aa77f989ba81..7a5f64cf1fdd 100644

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

net/ipv4/tcp.c +1 -1
index 01ddfb4156e4..2ffa33b5ef40 100644

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

net/ipv6/ip6_fib.c +2 -5
index 96d80e50bf35..9ca6c32065ec 100644

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

net/llc/af_llc.c +1 -1
index 5abb7f9b7ee5..fa0f3c1543ba 100644

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

net/mac80211/tx.c +5 -1
index 30201aeb426c..f029e75ec815 100644

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

net/mac802154/tx.c +5 -3
index ab52811523e9..c829e4a75325 100644

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

net/netfilter/nf_conntrack_proto.c +2 -0
index a0560d175a7f..aaf4293ddd45 100644

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

net/netfilter/nf_tables_api.c +2 -1
index 2023650c2724..ff2d2b514506 100644

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

net/openvswitch/meter.c +2 -2
index 3323b79ff548..541eea74ef7a 100644

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

net/openvswitch/meter.h +1 -1
index f645913870bd..2e3fd6f1d7eb 100644

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

net/sctp/outqueue.c +6 -0
index 0dab62b67b9a..adceb226ffab 100644

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

net/sunrpc/sched.c +14 -6
index 987c4b1f0b17..53d8b82eda00 100644

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

net/sunrpc/svc_xprt.c +14 -5
index dc74519286be..fe4cd0b4c412 100644

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

net/sunrpc/xprtrdma/svc_rdma_backchannel.c +11 -28
index cf80394b2db3..68d2dcf0a1be 100644

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

net/sunrpc/xprtrdma/svc_rdma_recvfrom.c +5 -6
index d803d814a03a..fd5c1f1bb988 100644

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

net/tipc/socket.c +32 -21

53 lines not on this page · raw message

net/tipc/topsrv.c +3 -1
index 73dbed0c4b6b..931c426673c0 100644

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

net/unix/af_unix.c +9 -2
index b3369d678f1a..ecadd9e482c4 100644

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

net/wireless/Kconfig +1 -0
index 63cf7131f601..211007c091d5 100644

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

security/device_cgroup.c +2 -1
index 725674f3276d..5d7bb91c6487 100644

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

security/selinux/hooks.c +12 -0
index 552e73d90fd2..212f48025db8 100644

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

security/selinux/selinuxfs.c +1 -0
index e6c7643c3fc0..e9eaff90cbcc 100644

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

sound/hda/hdac_bus.c +4 -0
index 8f19876244eb..53be2cac98e7 100644

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

sound/hda/hdac_regmap.c +0 -1
index 2596a881186f..49780399c284 100644

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

sound/pci/asihpi/hpioctl.c +2 -2
index 496dcde9715d..9790f5108a16 100644

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

sound/pci/hda/hda_codec.c +17 -11
index 103011e7285a..6da296def283 100644

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

sound/pci/hda/hda_controller.c +9 -2
index 76b507058cb4..5e6081750bd9 100644

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

sound/pci/hda/hda_controller.h +1 -1
index 82e26442724b..a356fb0e5773 100644

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

sound/pci/hda/hda_intel.c +27 -13
index 7353d2ec359a..590ea262f2e2 100644

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

sound/pci/hda/patch_realtek.c +12 -1
index 54346ae47d11..4dfd714f718b 100644

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

sound/soc/codecs/max98090.c +7 -1
index 45da2b51543e..6b9d326e11b0 100644

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

sound/soc/codecs/pcm3168a.c +7 -0
index 88b75695fbf7..b37e5fbbd301 100644

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

sound/soc/codecs/wm8994.c +10 -0
index d5fb7f5dd551..6dbab3fc6537 100644

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

sound/soc/codecs/wm_hubs.c +3 -0
index e93af7edd8f7..dd421e2fe7b2 100644

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

sound/soc/codecs/wm_hubs.h +1 -0
index 4b8e5f0d6e32..988b29e63060 100644

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

sound/soc/img/img-i2s-out.c +6 -2
index 4b1853409633..9c4212f2f726 100644

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

sound/soc/intel/boards/bytcr_rt5640.c +10 -0
index f7964d1ec486..6012367f6fe4 100644

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

sound/soc/kirkwood/kirkwood-dma.c +1 -1
index 6f69f314f2c2..d2d5c25bf550 100644

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

sound/soc/sof/ipc.c +7 -5
index e7b1a80e2a14..f38f651da224 100644

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

sound/usb/midi.c +24 -5
index 0cb4142b05f6..bc9068b616bb 100644

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

sound/usb/mixer.c +10 -0
index 9079c380228f..8aa96ed0b1b5 100644

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

sound/usb/quirks.c +4 -3
index a756f50d9f07..cc75d9749e9f 100644

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

tools/gpio/gpio-hammer.c +16 -1
index 0e0060a6eb34..083399d276e4 100644

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

tools/objtool/check.c +1 -1
index 48b234d8f251..1b7e748170e5 100644

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

tools/perf/builtin-stat.c +1 -1
index 468fc49420ce..ac2feddc75fd 100644

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

tools/perf/pmu-events/jevents.c +9 -6
index d36ae65ae333..f4a0d72246cb 100644

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

tools/perf/tests/shell/lib/probe_vfs_getname.sh +1 -1
index 7cb99b433888..c2cc42daf924 100644

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

tools/perf/tests/shell/record+zstd_comp_decomp.sh +2 -1
index 63a91ec473bb..045723b3d992 100755

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

tools/perf/trace/beauty/arch_errno_names.sh +1 -1
index 22c9fc900c84..f8c44a85650b 100755

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

tools/perf/util/cpumap.c +5 -5
index a22c1114e880..324ec0456c83 100644

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

tools/perf/util/cs-etm.c +89 -37

126 lines not on this page · raw message

tools/perf/util/evsel.c +7 -0
index a844715a352d..9dd9e3f4ef59 100644

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

tools/perf/util/mem2node.c +2 -1
index 797d86a1ab09..c84f5841c7ab 100644

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

tools/perf/util/metricgroup.c +3 -0
index 940a6e7a6854..7753c3091478 100644

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

tools/perf/util/parse-events.c +4 -5
index 759a99f723fc..2d651c93b476 100644

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

tools/perf/util/sort.c +1 -1
index 43d1d410854a..4027906fd3e3 100644

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

tools/perf/util/symbol-elf.c +7 -0
index 66f4be1df573..2ec0a32da579 100644

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

tools/power/x86/intel_pstate_tracer/intel_pstate_tracer.py +11 -11
index 2d6d342b148f..1351975d0769 100755

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

tools/testing/selftests/bpf/progs/test_tcpbpf_kern.c +1 -0
index 2e233613d1fc..7fa4595d2b66 100644

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

tools/testing/selftests/bpf/test_tcpbpf.h +1 -0
index 7bcfa6207005..6220b95cbd02 100644

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

tools/testing/selftests/bpf/test_tcpbpf_user.c +18 -7
index 716b4e3be581..3ae127620463 100644

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

tools/testing/selftests/ftrace/test.d/ftrace/func-filter-glob.tc +1 -1
index 27a54a17da65..f4e92afab14b 100644

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

tools/testing/selftests/ptrace/Makefile +2 -2
index c0b7f89f0930..2f1f532c39db 100644

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

tools/testing/selftests/ptrace/vmaccess.c new file +86 -0

86 lines not on this page · raw message

tools/testing/selftests/x86/syscall_nt.c +1 -0
index 02309a195041..a765f62ee766 100644

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

virt/kvm/arm/mmio.c +1 -1
index f274fabb4301..1e9ec878d56d 100644

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

virt/kvm/arm/mmu.c +1 -1
index 1e1c4f6a85c7..8700402f3000 100644

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

virt/kvm/arm/vgic/vgic-init.c +9 -2
index 6f50c429196d..689910153889 100644

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

virt/kvm/arm/vgic/vgic-its.c +9 -2
index f8ad7096555d..35be0e2a4639 100644

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

virt/kvm/kvm_main.c +1 -0
index 4eed7fd8db93..1dfa49d26de9 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.