Skip to contentSkip to conversation

Linux 5.7.9

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

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.7.9 kernel.

All users of the 5.7 kernel series must upgrade.

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

thanks,

greg k-h

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

 Makefile                                                            |    2 
 arch/arc/include/asm/elf.h                                          |    2 
 arch/arc/kernel/entry.S                                             |   16 
 arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi                      |    4 
 arch/arm/mach-imx/pm-imx6.c                                         |   10 
 arch/arm64/include/asm/arch_gicv3.h                                 |    2 
 arch/arm64/include/asm/arch_timer.h                                 |    1 
 arch/arm64/include/asm/cpufeature.h                                 |    2 
 arch/arm64/include/asm/pgtable-prot.h                               |    2 
 arch/arm64/include/asm/vdso/clocksource.h                           |    7 
 arch/arm64/include/asm/vdso/compat_gettimeofday.h                   |    8 
 arch/arm64/kernel/cpu_errata.c                                      |    2 
 arch/arm64/kernel/cpufeature.c                                      |    2 
 arch/arm64/kernel/kgdb.c                                            |    2 
 arch/arm64/kvm/hyp-init.S                                           |   11 
 arch/arm64/kvm/reset.c                                              |   10 
 arch/powerpc/kernel/exceptions-64s.S                                |    2 
 arch/powerpc/kvm/book3s_64_mmu_radix.c                              |    3 
 arch/s390/include/asm/kvm_host.h                                    |    8 
 arch/s390/include/asm/uaccess.h                                     |    2 
 arch/s390/kernel/early.c                                            |    2 
 arch/s390/kernel/setup.c                                            |    1 
 arch/s390/mm/hugetlbpage.c                                          |    2 
 arch/s390/mm/maccess.c                                              |   19 
 arch/x86/events/Kconfig                                             |    6 
 arch/x86/events/Makefile                                            |    1 
 arch/x86/events/intel/Makefile                                      |    2 
 arch/x86/events/intel/rapl.c                                        |  800 ---------
 arch/x86/events/rapl.c                                              |  803 ++++++++++
 arch/x86/include/asm/processor.h                                    |    2 
 arch/x86/kvm/kvm_cache_regs.h                                       |    2 
 arch/x86/kvm/mmu/mmu.c                                              |    2 
 arch/x86/kvm/vmx/vmx.c                                              |    2 
 arch/x86/kvm/x86.c                                                  |    2 
 block/bio-integrity.c                                               |   23 
 block/blk-mq.c                                                      |    4 
 drivers/base/regmap/regmap.c                                        |  100 -
 drivers/block/nbd.c                                                 |   25 
 drivers/clocksource/arm_arch_timer.c                                |   11 
 drivers/gpio/gpio-pca953x.c                                         |   98 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_job.c                             |    3 
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c                             |   63 
 drivers/gpu/drm/drm_panel_orientation_quirks.c                      |   14 
 drivers/gpu/drm/i915/gt/intel_context.c                             |   12 
 drivers/gpu/drm/i915/i915_debugfs.c                                 |    2 
 drivers/gpu/drm/i915/i915_vma.c                                     |   15 
 drivers/gpu/drm/mcde/mcde_drv.c                                     |    3 
 drivers/gpu/drm/mediatek/mtk_drm_plane.c                            |   25 
 drivers/gpu/drm/meson/meson_registers.h                             |    6 
 drivers/gpu/drm/meson/meson_viu.c                                   |   11 
 drivers/gpu/drm/radeon/ci_dpm.c                                     |    7 
 drivers/gpu/drm/tegra/hub.c                                         |    8 
 drivers/gpu/drm/ttm/ttm_bo.c                                        |    4 
 drivers/gpu/drm/ttm/ttm_bo_vm.c                                     |    2 
 drivers/gpu/host1x/bus.c                                            |    9 
 drivers/gpu/host1x/dev.c                                            |    5 
 drivers/infiniband/core/sa_query.c                                  |   38 
 drivers/infiniband/hw/hfi1/init.c                                   |   37 
 drivers/infiniband/hw/hfi1/qp.c                                     |    5 
 drivers/infiniband/hw/hfi1/tid_rdma.c                               |    5 
 drivers/infiniband/hw/mlx5/main.c                                   |    2 
 drivers/infiniband/sw/siw/siw_main.c                                |    3 
 drivers/iommu/intel-iommu.c                                         |   37 
 drivers/irqchip/irq-gic-v3-its.c                                    |    8 
 drivers/md/dm-writecache.c                                          |    6 
 drivers/md/dm.c                                                     |   15 
 drivers/message/fusion/mptscsih.c                                   |    4 
 drivers/mmc/host/meson-gx-mmc.c                                     |    6 
 drivers/mmc/host/owl-mmc.c                                          |    2 
 drivers/mtd/mtdcore.c                                               |    4 
 drivers/net/dsa/microchip/ksz8795.c                                 |    3 
 drivers/net/dsa/microchip/ksz9477.c                                 |    3 
 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c          |    4 
 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h |    2 
 drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c                     |    2 
 drivers/net/ethernet/cadence/macb_main.c                            |   31 
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c                   |   10 
 drivers/net/ethernet/chelsio/cxgb4/t4_hw.c                          |    8 
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c                     |    3 
 drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c                  |    9 
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c             |    2 
 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c           |    5 
 drivers/net/ethernet/ibm/ibmvnic.c                                  |    9 
 drivers/net/ethernet/intel/i40e/i40e_main.c                         |   29 
 drivers/net/ethernet/intel/ice/ice_lib.c                            |    8 
 drivers/net/ethernet/intel/ice/ice_main.c                           |    2 
 drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c                        |   12 
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c                       |   14 
 drivers/net/ethernet/marvell/mvneta.c                               |   88 -
 drivers/net/ethernet/mellanox/mlx5/core/en/port.c                   |   21 
 drivers/net/ethernet/mellanox/mlx5/core/en/port.h                   |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c                  |    1 
 drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c                |    8 
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c                   |   15 
 drivers/net/ethernet/mellanox/mlx5/core/port.c                      |   93 -
 drivers/net/ethernet/mellanox/mlxsw/pci.c                           |   54 
 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c               |    2 
 drivers/net/ethernet/pensando/ionic/ionic_ethtool.c                 |   52 
 drivers/net/ethernet/pensando/ionic/ionic_lif.c                     |   17 
 drivers/net/ethernet/pensando/ionic/ionic_lif.h                     |    4 
 drivers/net/ethernet/qlogic/qed/qed.h                               |    2 
 drivers/net/ethernet/qlogic/qed/qed_debug.c                         |   17 
 drivers/net/ethernet/qlogic/qed/qed_dev.c                           |   12 
 drivers/net/ethernet/qlogic/qed/qed_mcp.c                           |    7 
 drivers/net/ethernet/qlogic/qed/qed_mcp.h                           |    7 
 drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c                  |   18 
 drivers/net/ipa/ipa_data-sdm845.c                                   |    1 
 drivers/net/ipa/ipa_qmi_msg.c                                       |    6 
 drivers/net/usb/smsc95xx.c                                          |    9 
 drivers/net/wireless/ath/ath9k/hif_usb.c                            |   48 
 drivers/net/wireless/ath/ath9k/hif_usb.h                            |    5 
 drivers/nvme/host/rdma.c                                            |    2 
 drivers/pinctrl/intel/pinctrl-baytrail.c                            |   67 
 drivers/scsi/qla2xxx/qla_attr.c                                     |   30 
 drivers/scsi/qla2xxx/qla_def.h                                      |   13 
 drivers/scsi/qla2xxx/qla_gbl.h                                      |    3 
 drivers/scsi/qla2xxx/qla_init.c                                     |    2 
 drivers/scsi/qla2xxx/qla_isr.c                                      |   54 
 drivers/scsi/qla2xxx/qla_os.c                                       |    6 
 drivers/scsi/qla2xxx/qla_tmpl.c                                     |  121 +
 drivers/spi/spi-fsl-dspi.c                                          |   34 
 drivers/spi/spidev.c                                                |   24 
 drivers/staging/wfx/hif_tx.c                                        |    6 
 drivers/staging/wfx/hif_tx.h                                        |    2 
 drivers/staging/wfx/scan.c                                          |    6 
 drivers/usb/dwc3/dwc3-pci.c                                         |    4 
 fs/btrfs/discard.c                                                  |    1 
 fs/btrfs/disk-io.c                                                  |    6 
 fs/btrfs/extent_io.c                                                |   40 
 fs/btrfs/inode.c                                                    |    9 
 fs/btrfs/space-info.c                                               |    2 
 fs/cifs/inode.c                                                     |    9 
 fs/cifs/ioctl.c                                                     |    9 
 fs/cifs/smb2misc.c                                                  |    8 
 fs/cifs/smb2ops.c                                                   |    2 
 fs/io_uring.c                                                       |   20 
 fs/nfs/nfs4namespace.c                                              |    1 
 include/linux/btf.h                                                 |    5 
 include/linux/filter.h                                              |    4 
 include/linux/kallsyms.h                                            |    5 
 include/sound/compress_driver.h                                     |   10 
 kernel/bpf/btf.c                                                    |    4 
 kernel/bpf/syscall.c                                                |   32 
 kernel/kallsyms.c                                                   |   17 
 kernel/kprobes.c                                                    |    4 
 kernel/module.c                                                     |   51 
 kernel/sched/core.c                                                 |    2 
 net/core/skmsg.c                                                    |   23 
 net/core/sysctl_net_core.c                                          |    2 
 net/mac80211/tx.c                                                   |    2 
 net/netfilter/ipset/ip_set_bitmap_ip.c                              |    2 
 net/netfilter/ipset/ip_set_bitmap_ipmac.c                           |    2 
 net/netfilter/ipset/ip_set_bitmap_port.c                            |    2 
 net/netfilter/ipset/ip_set_hash_gen.h                               |    4 
 net/netfilter/nf_conntrack_core.c                                   |    2 
 net/qrtr/qrtr.c                                                     |    6 
 net/sunrpc/xprtrdma/verbs.c                                         |   33 
 net/wireless/nl80211.c                                              |    5 
 sound/core/compress_offload.c                                       |    4 
 sound/drivers/opl3/opl3_synth.c                                     |    2 
 sound/pci/hda/hda_auto_parser.c                                     |    6 
 sound/pci/hda/hda_intel.c                                           |    8 
 sound/pci/hda/patch_realtek.c                                       |   38 
 sound/soc/codecs/hdac_hda.c                                         |   16 
 sound/soc/fsl/fsl_mqs.c                                             |   23 
 sound/soc/sof/sof-pci-dev.c                                         |    2 
 sound/usb/pcm.c                                                     |    1 
 sound/usb/quirks-table.h                                            |   52 
 tools/perf/arch/x86/util/intel-pt.c                                 |    1 
 tools/perf/scripts/python/export-to-postgresql.py                   |    2 
 tools/perf/scripts/python/exported-sql-viewer.py                    |   11 
 tools/perf/ui/browsers/hists.c                                      |   17 
 tools/perf/util/evsel.c                                             |    4 
 tools/perf/util/intel-pt.c                                          |    5 
 tools/testing/selftests/bpf/test_maps.c                             |   12 
 virt/kvm/arm/vgic/vgic-v4.c                                         |    8 
 176 files changed, 2409 insertions(+), 1512 deletions(-)

Aditya Pakki (1):
usb: dwc3: pci: Fix reference count leak in dwc3_pci_resume_work

Adrian Hunter (7):
perf intel-pt: Fix recording PEBS-via-PT with registers
perf intel-pt: Fix PEBS sample for XMM registers
perf scripts python: export-to-postgresql.py: Fix struct.pack() int argument perf scripts python: exported-sql-viewer.py: Fix zero id in call graph 'Find' result perf scripts python: exported-sql-viewer.py: Fix zero id in call tree 'Find' result perf scripts python: exported-sql-viewer.py: Fix unexpanded 'Find' result perf scripts python: exported-sql-viewer.py: Fix time chart call tree

Alex Elder (2):
net: ipa: no checksum offload for SDM845 LAN RX
net: ipa: fix QMI structure definition bugs

Alexander Lobakin (1):
net: qed: fix buffer overflow on ethtool -d

Alexandru Elisei (1):
KVM: arm64: Annotate hyp NMI-related functions as __always_inline

Andre Edich (2):
smsc95xx: check return value of smsc95xx_reset
smsc95xx: avoid memory leak in smsc95xx_bind

Andrew Scull (1):
KVM: arm64: Stop clobbering x0 for HVC_SOFT_RESTART

Andy Shevchenko (4):
gpio: pca953x: Synchronize interrupt handler properly
gpio: pca953x: Override IRQ for one of the expanders on Galileo Gen 2
gpio: pca953x: Fix direction setting when configure an IRQ
gpio: pca953x: Fix GPIO resource leak on Intel Galileo Gen 2

Aneesh Kumar K.V (1):
powerpc/kvm/book3s64: Fix kernel crash with nested kvm & DEBUG_VIRTUAL

Arun Easi (1):
scsi: qla2xxx: Fix MPI failure AEN (8200) handling

Aya Levin (4):
IB/mlx5: Fix 50G per lane indication
net/mlx5e: Fix VXLAN configuration restore after function reload net/mlx5e: Fix CPU mapping after function reload to avoid aRFS RX crash net/mlx5e: Fix 50G per lane indication

Benjamin Poirier (1):
ALSA: hda/realtek - Fix Lenovo Thinkpad X1 Carbon 7th quirk subdevice id

Boris Burkov (1):
btrfs: fix fatal extent_buffer readahead vs releasepage race

Chengguang Xu (1):
block: release bip in a right way in error path

Chris Wilson (4):
drm/i915/gt: Pin the rings before marking active drm/i915: Skip stale object handle for debugfs per-file-stats drm/i915: Drop vm.ref for duplicate vma on construction drm/i915: Also drop vm.ref along error paths for vma construction

Christian Borntraeger (1):
KVM: s390: reduce number of IO pins to 1

Christophe JAILLET (1):
gpu: host1x: Clean up debugfs in error handling path

Chuck Lever (1):

      xprtrdma: Prevent dereferencing r_xprt->rx_ep after it is freed

Ciara Loftus (3):
ixgbe: protect ring accesses with READ- and WRITE_ONCE
i40e: protect ring accesses with READ- and WRITE_ONCE
ice: protect ring accesses with WRITE_ONCE

Codrin Ciubotariu (1):
net: dsa: microchip: set the correct number of ports

Dan Carpenter (1):
net: qrtr: Fix an out of bounds read qrtr_endpoint_post()

Dany Madden (1):
ibmvnic: continue to init in CRQ reset returns H_CLOSED

Davide Caratti (1):
bnxt_en: fix NULL dereference in case SR-IOV configuration fails

Divya Indi (1):
IB/sa: Resolv use-after-free in ib_nl_make_request()

Dmitry Bogdanov (1):
net: atlantic: fix ip dst and ipv6 address filters

Eli Britstein (1):
net/mlx5e: CT: Fix memory leak in cleanup

Eran Ben Elisha (1):
net/mlx5: Fix eeprom support for SFP module

Eric Dumazet (1):
netfilter: ipset: call ip_set_free() instead of kfree()

Filipe Manana (1):
btrfs: fix reclaim_size counter leak after stealing from global reserve

Greg Kroah-Hartman (2):
Revert "ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb" Linux 5.7.9

Hans de Goede (3):
drm: panel-orientation-quirks: Add quirk for Asus T101HA panel
drm: panel-orientation-quirks: Use generic orientation-data for Acer S1003
pinctrl: baytrail: Fix pin being driven low for a while on gpiod_get(..., GPIOD_OUT_HIGH)

Hector Martin (1):
ALSA: usb-audio: add quirk for MacroSilicon MS2109

Hsin-Yi Wang (1):
drm/mediatek: Check plane visibility in atomic_update

Huang Rui (2):
drm/amdgpu: add TMR destory function for psp drm/amdgpu: asd function needs to be unloaded in suspend phase

Huazhong Tan (3):
net: hns3: check reset pending after FLR prepare
net: hns3: fix for mishandle of asserting VF reset fail
net: hns3: add a missing uninit debugfs when unload driver

Hui Wang (1):
ALSA: hda - let hs_mic be picked ahead of hp_mic

Ido Schimmel (2):
mlxsw: spectrum_router: Remove inappropriate usage of WARN_ON()
mlxsw: pci: Fix use-after-free in case of failed devlink reload

Janosch Frank (1):
s390/mm: fix huge pte soft dirty copying

Jens Axboe (1):
io_uring: account user memory freed when exit has been queued

Jens Thoms Toerring (1):
regmap: fix alignment issue

Jian-Hong Pan (3):
ALSA: hda/realtek - Enable audio jacks of Acer vCopperbox with ALC269VC
ALSA: hda/realtek: Enable headset mic of Acer C20-820 with ALC269VC
ALSA: hda/realtek: Enable headset mic of Acer Veriton N4660G with ALC269VC

John Fastabend (3):
bpf: Do not allow btf_ctx_access with __int128 types bpf, sockmap: RCU splat with redirect and strparser error or TLS bpf, sockmap: RCU dereferenced psock may be used outside RCU block

Josef Bacik (2):
btrfs: reset tree root pointer after error in init_tree_roots
btrfs: fix double put of block group with nocow

Josh Poimboeuf (1):
s390: Change s390_kernel_write() return type to match memcpy()

Jérôme Pouiller (1):
staging: wfx: fix coherency of hif_scan() prototype

Kaike Wan (2):
IB/hfi1: Do not destroy hfi1_wq when the device is shut down IB/hfi1: Do not destroy link_wq when the device is shut down

Kamal Dasu (1):
mtd: set master partition panic write flag

Kamal Heib (1):
RDMA/siw: Fix reporting vendor_part_id

Kees Cook (5):
kallsyms: Refactor kallsyms_show_value() to take cred
module: Refactor section attr into bin attribute
module: Do not expose section addresses to non-CAP_SYSLOG
kprobes: Do not expose probe addresses to non-CAP_SYSLOG
bpf: Check correct cred for CAP_SYSLOG in bpf_dump_raw_ok()

Krzysztof Kozlowski (1):
spi: spi-fsl-dspi: Fix lockup if device is removed during SPI transfer

Li Heng (1):
net: cxgb4: fix return error value in t4_prep_fw

Linus Walleij (1):
drm: mcde: Fix display initialization problem

Lorenz Bauer (1):
selftests: bpf: Fix detach from sockmap tests

Luca Coelho (2):
nl80211: don't return err unconditionally in nl80211_start_ap()
nl80211: fix memory leak when parsing NL80211_ATTR_HE_BSS_COLOR

Manivannan Sadhasivam (1):
mmc: owl-mmc: Get rid of of_match_ptr() macro

Marc Zyngier (4):
KVM: arm64: vgic-v4: Plug race between non-residency and v4.1 doorbell
arm64: Introduce a way to disable the 32bit vdso
arm64: arch_timer: Allow an workaround descriptor to disable compat vdso
arm64: arch_timer: Disable the compat vdso for cores affected by ARM64_WORKAROUND_1418040

Marek Olšák (1):
drm/amdgpu: don't do soft recovery if gpu_recovery=0

Martin Blumenstingl (1):
drm/meson: viu: fix setting the OSD burst length in VIU_OSD1_FIFO_CTRL_STAT

Max Gurtovoy (1):
nvme-rdma: assign completion vector correctly

Michal Suchanek (1):
dm writecache: reject asynchronous pmem devices

Mikulas Patocka (1):
dm: use noio when sending kobject event

Ming Lei (1):
blk-mq: consider non-idle request as "inflight" in blk_mq_rq_inflight()

Neil Armstrong (1):
mmc: meson-gx: limit segments to 1 when dram-access-quirk is needed

Nicholas Piggin (1):

      powerpc/64s/exception: Fix 0x1500 interrupt handler crash

Nicolas Ferre (5):
net: macb: fix wakeup test in runtime suspend/resume routines
net: macb: mark device wake capable when "magic-packet" property present
net: macb: fix macb_get/set_wol() when moving to phylink
net: macb: fix macb_suspend() by removing call to netif_carrier_off()
net: macb: fix call to pm_runtime in the suspend/resume functions

Nicolin Chen (1):
drm/tegra: hub: Do not enable orphaned window group

Pablo Neira Ayuso (1):
netfilter: conntrack: refetch conntrack after nf_conntrack_update()

Paolo Bonzini (1):
KVM: x86: bit 8 of non-leaf PDPEs is not reserved

Pavel Begunkov (1):
io_uring: fix missing msg_name assignment

Pavel Hofman (1):
ALSA: usb-audio: Add implicit feedback quirk for RTX6001

Peng Ma (1):
spi: spi-fsl-dspi: Adding shutdown hook

Peter Zijlstra (1):
x86/entry: Increase entry_stack size to a full page

Pierre-Louis Bossart (3):
ASoC: SOF: Intel: add PCI ID for CometLake-S
ASoC: hdac_hda: fix memleak with regmap not freed on remove
ALSA: hda: Intel: add missing PCI IDs for ICL-H, TGL-H and EKL

Qu Wenruo (1):
btrfs: discard: add missing put when grabbing block group from unused list

Rahul Lakkireddy (1):
cxgb4: fix all-mask IP address comparison

Rajat Jain (1):
iommu/vt-d: Don't apply gfx quirks to untrusted devices

Ronnie Sahlberg (1):
cifs: fix reference leak for tlink

Russell King (1):

      net: mvneta: fix use of state->speed

Sai Prakash Ranjan (2):
arm64: kpti: Add KRYO{3, 4}XX silver CPU cores to kpti safelist
arm64: Add KRYO{3,4}XX silver CPU cores to SSB safelist

Sascha Hauer (2):
net: ethernet: mvneta: Fix Serdes configuration for SoCs without comphy
net: ethernet: mvneta: Add 2500BaseX support for SoCs without comphy

Scott Wood (1):
sched/core: Check cpus_mask, not cpus_ptr in __set_cpus_allowed_ptr(), to fix mask corruption

Sean Christopherson (2):
KVM: x86: Inject #GP if guest attempts to toggle CR4.LA57 in 64-bit mode
KVM: x86: Mark CR4.TSD as being possibly owned by the guest

Seevalamuthu Mariappan (1):
mac80211: Fix dropping broadcast packets in 802.11 encap

Shannon Nelson (1):
ionic: centralize queue reset code

Shengjiu Wang (2):
ASoC: fsl_mqs: Don't check clock is NULL before calling clk API
ASoC: fsl_mqs: Fix unchecked return value for clk_prepare_enable

Stephane Eranian (2):
perf/x86/rapl: Move RAPL support to common x86 code perf/x86/rapl: Fix RAPL config variable bug

Steve French (2):
smb3: fix access denied on change notify request to some servers
smb3: fix unneeded error message on change notify

Steven Price (1):
KVM: arm64: Fix kvm_reset_vcpu() return code being incorrect with SVE

Sudarsana Reddy Kalluru (1):
qed: Populate nvm-file attributes while reading nvm config partition.

Taehee Yoo (2):
net: rmnet: fix lower interface leak
net: rmnet: do not allow to add multiple bridge interfaces

Thierry Reding (1):
gpu: host1x: Detach driver on unregister

Tom Rix (2):
nfs: Fix memory leak of export_path
drm/radeon: fix double free

Tomas Henzl (1):
scsi: mptscsih: Fix read sense data size

Tony Lindgren (1):
ARM: dts: omap4-droid4: Fix spi configuration and increase rate

Vasily Gorbik (3):
s390/kasan: fix early pgm check handler execution s390/setup: init jump labels before command line parsing s390/maccess: add no DAT mode to kernel_write

Vineet Gupta (2):
ARC: entry: fix potential EFA clobber when TIF_SYSCALL_TRACE
ARC: elf: use right ELF_ARCH

Vinod Koul (1):
ALSA: compress: fix partial_drain completion state

Wei Li (2):
perf report TUI: Fix segmentation fault in perf_evsel__hists_browse()
arm64: kgdb: Fix single-step exception handling oops

Will Deacon (1):
KVM: arm64: Fix definition of PAGE_HYP_DEVICE

Xiyu Yang (2):
drm/ttm: Fix dma_fence refcnt leak in ttm_bo_vm_fault_reserved drm/ttm: Fix dma_fence refcnt leak when adding move fence

Yang Yingliang (2):
io_uring: fix memleak in __io_sqe_files_update()
io_uring: fix memleak in io_sqe_files_register()

Yonglong Liu (1):
net: hns3: fix use-after-free when doing self test

Zhang Xiaoxu (1):
cifs: update ctime and mtime during truncate

Zheng Bin (1):
nbd: Fix memory leak in nbd_add_socket

Zhenzhong Duan (2):
spi: spidev: fix a race between spidev_release and spidev_remove
spi: spidev: fix a potential use-after-free in spidev_release()

xidongwang (1):
ALSA: opl3: fix infoleak in opl3

yu kuai (1):
ARM: imx6: add missing put_device() call in imx6q_suspend_init()

author maintainer
#1 lore raw
Makefile +1 -1
index 6163d607ca72..fb3a747575b5 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 7
-SUBLEVEL = 8
+SUBLEVEL = 9
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
arch/arc/include/asm/elf.h +1 -1
index c77a0e3671ac..0284ace0e1ab 100644
@@ -19,7 +19,7 @@
 #define  R_ARC_32_PCREL		0x31
 
 /*to set parameters in the core dumps */
-#define ELF_ARCH		EM_ARCOMPACT
+#define ELF_ARCH		EM_ARC_INUSE
 #define ELF_CLASS		ELFCLASS32
 
 #ifdef CONFIG_CPU_BIG_ENDIAN
arch/arc/kernel/entry.S +5 -11
index 60406ec62eb8..ea00c8a17f07 100644
@@ -165,7 +165,6 @@ END(EV_Extension)
 tracesys:
 	; save EFA in case tracer wants the PC of traced task
 	; using ERET won't work since next-PC has already committed
-	lr  r12, [efa]
 	GET_CURR_TASK_FIELD_PTR   TASK_THREAD, r11
 	st  r12, [r11, THREAD_FAULT_ADDR]	; thread.fault_address
 
@@ -208,15 +207,9 @@ tracesys_exit:
 ; Breakpoint TRAP
 ; ---------------------------------------------
 trap_with_param:
-
-	; stop_pc info by gdb needs this info
-	lr  r0, [efa]
+	mov r0, r12	; EFA in case ptracer/gdb wants stop_pc
 	mov r1, sp
 
-	; Now that we have read EFA, it is safe to do "fake" rtie
-	;   and get out of CPU exception mode
-	FAKE_RET_FROM_EXCPN
-
 	; Save callee regs in case gdb wants to have a look
 	; SP will grow up by size of CALLEE Reg-File
 	; NOTE: clobbers r12
@@ -243,6 +236,10 @@ ENTRY(EV_Trap)
 
 	EXCEPTION_PROLOGUE
 
+	lr  r12, [efa]
+
+	FAKE_RET_FROM_EXCPN
+
 	;============ TRAP 1   :breakpoints
 	; Check ECR for trap with arg (PROLOGUE ensures r10 has ECR)
 	bmsk.f 0, r10, 7
@@ -250,9 +247,6 @@ ENTRY(EV_Trap)
 
 	;============ TRAP  (no param): syscall top level
 
-	; First return from Exception to pure K mode (Exception/IRQs renabled)
-	FAKE_RET_FROM_EXCPN
-
 	; If syscall tracing ongoing, invoke pre-post-hooks
 	GET_CURR_THR_INFO_FLAGS   r10
 	btst r10, TIF_SYSCALL_TRACE
arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi +3 -1
index e39eee628afd..08a7d3ce383f 100644
@@ -13,8 +13,10 @@ cpcap: pmic@0 {
 		#interrupt-cells = <2>;
 		#address-cells = <1>;
 		#size-cells = <0>;
-		spi-max-frequency = <3000000>;
+		spi-max-frequency = <9600000>;
 		spi-cs-high;
+		spi-cpol;
+		spi-cpha;
 
 		cpcap_adc: adc {
 			compatible = "motorola,mapphone-cpcap-adc";
arch/arm/mach-imx/pm-imx6.c +6 -4
index dd34dff13762..40c74b4c4d73 100644
@@ -493,14 +493,14 @@ static int __init imx6q_suspend_init(const struct imx6_pm_socdata *socdata)
 	if (!ocram_pool) {
 		pr_warn("%s: ocram pool unavailable!\n", __func__);
 		ret = -ENODEV;
-		goto put_node;
+		goto put_device;
 	}
 
 	ocram_base = gen_pool_alloc(ocram_pool, MX6Q_SUSPEND_OCRAM_SIZE);
 	if (!ocram_base) {
 		pr_warn("%s: unable to alloc ocram!\n", __func__);
 		ret = -ENOMEM;
-		goto put_node;
+		goto put_device;
 	}
 
 	ocram_pbase = gen_pool_virt_to_phys(ocram_pool, ocram_base);
@@ -523,7 +523,7 @@ static int __init imx6q_suspend_init(const struct imx6_pm_socdata *socdata)
 	ret = imx6_pm_get_base(&pm_info->mmdc_base, socdata->mmdc_compat);
 	if (ret) {
 		pr_warn("%s: failed to get mmdc base %d!\n", __func__, ret);
-		goto put_node;
+		goto put_device;
 	}
 
 	ret = imx6_pm_get_base(&pm_info->src_base, socdata->src_compat);
@@ -570,7 +570,7 @@ static int __init imx6q_suspend_init(const struct imx6_pm_socdata *socdata)
 		&imx6_suspend,
 		MX6Q_SUSPEND_OCRAM_SIZE - sizeof(*pm_info));
 
-	goto put_node;
+	goto put_device;
 
 pl310_cache_map_failed:
 	iounmap(pm_info->gpc_base.vbase);
@@ -580,6 +580,8 @@ static int __init imx6q_suspend_init(const struct imx6_pm_socdata *socdata)
 	iounmap(pm_info->src_base.vbase);
 src_map_failed:
 	iounmap(pm_info->mmdc_base.vbase);
+put_device:
+	put_device(&pdev->dev);
 put_node:
 	of_node_put(node);
 
arch/arm64/include/asm/arch_gicv3.h +1 -1
index a358e97572c1..6647ae4f0231 100644
@@ -109,7 +109,7 @@ static inline u32 gic_read_pmr(void)
 	return read_sysreg_s(SYS_ICC_PMR_EL1);
 }
 
-static inline void gic_write_pmr(u32 val)
+static __always_inline void gic_write_pmr(u32 val)
 {
 	write_sysreg_s(val, SYS_ICC_PMR_EL1);
 }
arch/arm64/include/asm/arch_timer.h +1 -0
index 7ae54d7d333a..9f0ec21d6327 100644
@@ -58,6 +58,7 @@ struct arch_timer_erratum_workaround {
 	u64 (*read_cntvct_el0)(void);
 	int (*set_next_event_phys)(unsigned long, struct clock_event_device *);
 	int (*set_next_event_virt)(unsigned long, struct clock_event_device *);
+	bool disable_compat_vdso;
 };
 
 DECLARE_PER_CPU(const struct arch_timer_erratum_workaround *,
arch/arm64/include/asm/cpufeature.h +1 -1
index afe08251ff95..9e2d2f04d93b 100644
@@ -668,7 +668,7 @@ static inline bool system_supports_generic_auth(void)
 		cpus_have_const_cap(ARM64_HAS_GENERIC_AUTH);
 }
 
-static inline bool system_uses_irq_prio_masking(void)
+static __always_inline bool system_uses_irq_prio_masking(void)
 {
 	return IS_ENABLED(CONFIG_ARM64_PSEUDO_NMI) &&
 	       cpus_have_const_cap(ARM64_HAS_IRQ_PRIO_MASKING);
arch/arm64/include/asm/pgtable-prot.h +1 -1
index 1305e28225fc..6ffcb290b8aa 100644
@@ -56,7 +56,7 @@ extern bool arm64_use_ng_mappings;
 #define PAGE_HYP		__pgprot(_HYP_PAGE_DEFAULT | PTE_HYP | PTE_HYP_XN)
 #define PAGE_HYP_EXEC		__pgprot(_HYP_PAGE_DEFAULT | PTE_HYP | PTE_RDONLY)
 #define PAGE_HYP_RO		__pgprot(_HYP_PAGE_DEFAULT | PTE_HYP | PTE_RDONLY | PTE_HYP_XN)
-#define PAGE_HYP_DEVICE		__pgprot(PROT_DEVICE_nGnRE | PTE_HYP)
+#define PAGE_HYP_DEVICE		__pgprot(_PROT_DEFAULT | PTE_ATTRINDX(MT_DEVICE_nGnRE) | PTE_HYP | PTE_HYP_XN)
 
 #define PAGE_S2_MEMATTR(attr)						\
 	({								\
arch/arm64/include/asm/vdso/clocksource.h +5 -2
index df6ea65c1dec..b054d9febfb5 100644
@@ -2,7 +2,10 @@
 #ifndef __ASM_VDSOCLOCKSOURCE_H
 #define __ASM_VDSOCLOCKSOURCE_H
 
-#define VDSO_ARCH_CLOCKMODES	\
-	VDSO_CLOCKMODE_ARCHTIMER
+#define VDSO_ARCH_CLOCKMODES					\
+	/* vdso clocksource for both 32 and 64bit tasks */	\
+	VDSO_CLOCKMODE_ARCHTIMER,				\
+	/* vdso clocksource for 64bit tasks only */		\
+	VDSO_CLOCKMODE_ARCHTIMER_NOCOMPAT
 
 #endif
arch/arm64/include/asm/vdso/compat_gettimeofday.h +7 -1
index b6907ae78e53..9a625e8947ff 100644
@@ -111,7 +111,7 @@ static __always_inline u64 __arch_get_hw_counter(s32 clock_mode)
 	 * update. Return something. Core will do another round and then
 	 * see the mode change and fallback to the syscall.
 	 */
-	if (clock_mode == VDSO_CLOCKMODE_NONE)
+	if (clock_mode != VDSO_CLOCKMODE_ARCHTIMER)
 		return 0;
 
 	/*
@@ -152,6 +152,12 @@ static __always_inline const struct vdso_data *__arch_get_vdso_data(void)
 	return ret;
 }
 
+static inline bool vdso_clocksource_ok(const struct vdso_data *vd)
+{
+	return vd->clock_mode == VDSO_CLOCKMODE_ARCHTIMER;
+}
+#define vdso_clocksource_ok	vdso_clocksource_ok
+
 #endif /* !__ASSEMBLY__ */
 
 #endif /* __ASM_VDSO_GETTIMEOFDAY_H */
arch/arm64/kernel/cpu_errata.c +2 -0
index df56d2295d16..0f37045fafab 100644
@@ -460,6 +460,8 @@ static const struct midr_range arm64_ssb_cpus[] = {
 	MIDR_ALL_VERSIONS(MIDR_CORTEX_A53),
 	MIDR_ALL_VERSIONS(MIDR_CORTEX_A55),
 	MIDR_ALL_VERSIONS(MIDR_BRAHMA_B53),
+	MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_3XX_SILVER),
+	MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_4XX_SILVER),
 	{},
 };
 
arch/arm64/kernel/cpufeature.c +2 -0
index 9fac745aa7bb..b0fb1d5bf223 100644
@@ -1059,6 +1059,8 @@ static bool unmap_kernel_at_el0(const struct arm64_cpu_capabilities *entry,
 		MIDR_ALL_VERSIONS(MIDR_CORTEX_A73),
 		MIDR_ALL_VERSIONS(MIDR_HISI_TSV110),
 		MIDR_ALL_VERSIONS(MIDR_NVIDIA_CARMEL),
+		MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_3XX_SILVER),
+		MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_4XX_SILVER),
 		{ /* sentinel */ }
 	};
 	char const *str = "kpti command line option";
arch/arm64/kernel/kgdb.c +1 -1
index 43119922341f..1a157ca33262 100644
@@ -252,7 +252,7 @@ static int kgdb_step_brk_fn(struct pt_regs *regs, unsigned int esr)
 	if (!kgdb_single_step)
 		return DBG_HOOK_ERROR;
 
-	kgdb_handle_exception(1, SIGTRAP, 0, regs);
+	kgdb_handle_exception(0, SIGTRAP, 0, regs);
 	return DBG_HOOK_HANDLED;
 }
 NOKPROBE_SYMBOL(kgdb_step_brk_fn);
arch/arm64/kvm/hyp-init.S +7 -4
index 6e6ed5581eed..e76c0e89d48e 100644
@@ -136,11 +136,15 @@ SYM_CODE_START(__kvm_handle_stub_hvc)
 
 1:	cmp	x0, #HVC_RESET_VECTORS
 	b.ne	1f
-reset:
+
 	/*
-	 * Reset kvm back to the hyp stub. Do not clobber x0-x4 in
-	 * case we coming via HVC_SOFT_RESTART.
+	 * Set the HVC_RESET_VECTORS return code before entering the common
+	 * path so that we do not clobber x0-x2 in case we are coming via
+	 * HVC_SOFT_RESTART.
 	 */
+	mov	x0, xzr
+reset:
+	/* Reset kvm back to the hyp stub. */
 	mrs	x5, sctlr_el2
 	mov_q	x6, SCTLR_ELx_FLAGS
 	bic	x5, x5, x6		// Clear SCTL_M and etc
@@ -151,7 +155,6 @@ reset:
 	/* Install stub vectors */
 	adr_l	x5, __hyp_stub_vectors
 	msr	vbar_el2, x5
-	mov	x0, xzr
 	eret
 
 1:	/* Bad stub call */
arch/arm64/kvm/reset.c +7 -3
index 30b7ea680f66..ab76728e2742 100644
@@ -258,7 +258,7 @@ static int kvm_vcpu_enable_ptrauth(struct kvm_vcpu *vcpu)
 int kvm_reset_vcpu(struct kvm_vcpu *vcpu)
 {
 	const struct kvm_regs *cpu_reset;
-	int ret = -EINVAL;
+	int ret;
 	bool loaded;
 
 	/* Reset PMU outside of the non-preemptible section */
@@ -281,15 +281,19 @@ int kvm_reset_vcpu(struct kvm_vcpu *vcpu)
 
 	if (test_bit(KVM_ARM_VCPU_PTRAUTH_ADDRESS, vcpu->arch.features) ||
 	    test_bit(KVM_ARM_VCPU_PTRAUTH_GENERIC, vcpu->arch.features)) {
-		if (kvm_vcpu_enable_ptrauth(vcpu))
+		if (kvm_vcpu_enable_ptrauth(vcpu)) {
+			ret = -EINVAL;
 			goto out;
+		}
 	}
 
 	switch (vcpu->arch.target) {
 	default:
 		if (test_bit(KVM_ARM_VCPU_EL1_32BIT, vcpu->arch.features)) {
-			if (!cpu_has_32bit_el1())
+			if (!cpu_has_32bit_el1()) {
+				ret = -EINVAL;
 				goto out;
+			}
 			cpu_reset = &default_regs_reset32;
 		} else {
 			cpu_reset = &default_regs_reset;
arch/powerpc/kernel/exceptions-64s.S +1 -1
index d9ddce40bed8..fd99d4feec7a 100644
@@ -2547,7 +2547,7 @@ EXC_VIRT_NONE(0x5400, 0x100)
 INT_DEFINE_BEGIN(denorm_exception)
 	IVEC=0x1500
 	IHSRR=1
-	IBRANCH_COMMON=0
+	IBRANCH_TO_COMMON=0
 	IKVM_REAL=1
 INT_DEFINE_END(denorm_exception)
 
arch/powerpc/kvm/book3s_64_mmu_radix.c +2 -1
index d4e532a63f08..2f27faf24b2c 100644
@@ -40,7 +40,8 @@ unsigned long __kvmhv_copy_tofrom_guest_radix(int lpid, int pid,
 	/* Can't access quadrants 1 or 2 in non-HV mode, call the HV to do it */
 	if (kvmhv_on_pseries())
 		return plpar_hcall_norets(H_COPY_TOFROM_GUEST, lpid, pid, eaddr,
-					  __pa(to), __pa(from), n);
+					  (to != NULL) ? __pa(to): 0,
+					  (from != NULL) ? __pa(from): 0, n);
 
 	quadrant = 1;
 	if (!pid)
arch/s390/include/asm/kvm_host.h +4 -4
index d6bcd34f3ec3..ec65bc2bd084 100644
@@ -31,12 +31,12 @@
 #define KVM_USER_MEM_SLOTS 32
 
 /*
- * These seem to be used for allocating ->chip in the routing table,
- * which we don't use. 4096 is an out-of-thin-air value. If we need
- * to look at ->chip later on, we'll need to revisit this.
+ * These seem to be used for allocating ->chip in the routing table, which we
+ * don't use. 1 is as small as we can get to reduce the needed memory. If we
+ * need to look at ->chip later on, we'll need to revisit this.
  */
 #define KVM_NR_IRQCHIPS 1
-#define KVM_IRQCHIP_NUM_PINS 4096
+#define KVM_IRQCHIP_NUM_PINS 1
 #define KVM_HALT_POLL_NS_DEFAULT 50000
 
 /* s390-specific vcpu->requests bit members */
arch/s390/include/asm/uaccess.h +1 -1
index a470f1fa9f2a..324438889fe1 100644
@@ -276,6 +276,6 @@ static inline unsigned long __must_check clear_user(void __user *to, unsigned lo
 }
 
 int copy_to_user_real(void __user *dest, void *src, unsigned long count);
-void s390_kernel_write(void *dst, const void *src, size_t size);
+void *s390_kernel_write(void *dst, const void *src, size_t size);
 
 #endif /* __S390_UACCESS_H */
arch/s390/kernel/early.c +2 -0
index cd241ee66eff..078277231858 100644
@@ -170,6 +170,8 @@ static noinline __init void setup_lowcore_early(void)
 	psw_t psw;
 
 	psw.mask = PSW_MASK_BASE | PSW_DEFAULT_KEY | PSW_MASK_EA | PSW_MASK_BA;
+	if (IS_ENABLED(CONFIG_KASAN))
+		psw.mask |= PSW_MASK_DAT;
 	psw.addr = (unsigned long) s390_base_ext_handler;
 	S390_lowcore.external_new_psw = psw;
 	psw.addr = (unsigned long) s390_base_pgm_handler;
arch/s390/kernel/setup.c +1 -0
index 36445dd40fdb..cb10885f3d27 100644
@@ -1107,6 +1107,7 @@ void __init setup_arch(char **cmdline_p)
 	if (IS_ENABLED(CONFIG_EXPOLINE_AUTO))
 		nospec_auto_detect();
 
+	jump_label_init();
 	parse_early_param();
 #ifdef CONFIG_CRASH_DUMP
 	/* Deactivate elfcorehdr= kernel parameter */
arch/s390/mm/hugetlbpage.c +1 -1
index 4632d4e26b66..720d4405160b 100644
@@ -117,7 +117,7 @@ static inline pte_t __rste_to_pte(unsigned long rste)
 					     _PAGE_YOUNG);
 #ifdef CONFIG_MEM_SOFT_DIRTY
 		pte_val(pte) |= move_set_bit(rste, _SEGMENT_ENTRY_SOFT_DIRTY,
-					     _PAGE_DIRTY);
+					     _PAGE_SOFT_DIRTY);
 #endif
 		pte_val(pte) |= move_set_bit(rste, _SEGMENT_ENTRY_NOEXEC,
 					     _PAGE_NOEXEC);
arch/s390/mm/maccess.c +13 -6
index de7ca4b6718f..1d17413b319a 100644
@@ -55,19 +55,26 @@ static notrace long s390_kernel_write_odd(void *dst, const void *src, size_t siz
  */
 static DEFINE_SPINLOCK(s390_kernel_write_lock);
 
-void notrace s390_kernel_write(void *dst, const void *src, size_t size)
+notrace void *s390_kernel_write(void *dst, const void *src, size_t size)
 {
+	void *tmp = dst;
 	unsigned long flags;
 	long copied;
 
 	spin_lock_irqsave(&s390_kernel_write_lock, flags);
-	while (size) {
-		copied = s390_kernel_write_odd(dst, src, size);
-		dst += copied;
-		src += copied;
-		size -= copied;
+	if (!(flags & PSW_MASK_DAT)) {
+		memcpy(dst, src, size);
+	} else {
+		while (size) {
+			copied = s390_kernel_write_odd(tmp, src, size);
+			tmp += copied;
+			src += copied;
+			size -= copied;
+		}
 	}
 	spin_unlock_irqrestore(&s390_kernel_write_lock, flags);
+
+	return dst;
 }
 
 static int __no_sanitize_address __memcpy_real(void *dest, void *src, size_t count)
arch/x86/events/Kconfig +3 -3
index 9a7a1446cb3a..4a809c6cbd2f 100644
@@ -10,11 +10,11 @@ config PERF_EVENTS_INTEL_UNCORE
 	available on NehalemEX and more modern processors.
 
 config PERF_EVENTS_INTEL_RAPL
-	tristate "Intel rapl performance events"
-	depends on PERF_EVENTS && CPU_SUP_INTEL && PCI
+	tristate "Intel/AMD rapl performance events"
+	depends on PERF_EVENTS && (CPU_SUP_INTEL || CPU_SUP_AMD) && PCI
 	default y
 	---help---
-	Include support for Intel rapl performance events for power
+	Include support for Intel and AMD rapl performance events for power
 	monitoring on modern processors.
 
 config PERF_EVENTS_INTEL_CSTATE
arch/x86/events/Makefile +1 -0
index 9e07f554333f..726e83c0a31a 100644
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0-only
 obj-y					+= core.o probe.o
+obj-$(CONFIG_PERF_EVENTS_INTEL_RAPL)	+= rapl.o
 obj-y					+= amd/
 obj-$(CONFIG_X86_LOCAL_APIC)            += msr.o
 obj-$(CONFIG_CPU_SUP_INTEL)		+= intel/
arch/x86/events/intel/Makefile +0 -2
index 3468b0c1dc7c..e67a5886336c 100644
@@ -2,8 +2,6 @@
 obj-$(CONFIG_CPU_SUP_INTEL)		+= core.o bts.o
 obj-$(CONFIG_CPU_SUP_INTEL)		+= ds.o knc.o
 obj-$(CONFIG_CPU_SUP_INTEL)		+= lbr.o p4.o p6.o pt.o
-obj-$(CONFIG_PERF_EVENTS_INTEL_RAPL)	+= intel-rapl-perf.o
-intel-rapl-perf-objs			:= rapl.o
 obj-$(CONFIG_PERF_EVENTS_INTEL_UNCORE)	+= intel-uncore.o
 intel-uncore-objs			:= uncore.o uncore_nhmex.o uncore_snb.o uncore_snbep.o
 obj-$(CONFIG_PERF_EVENTS_INTEL_CSTATE)	+= intel-cstate.o
arch/x86/events/intel/rapl.c deleted +0 -800

800 lines not on this page · raw message

arch/x86/events/rapl.c new file +803 -0

803 lines not on this page · raw message

arch/x86/include/asm/processor.h +1 -1
index c4e8fd709cf6..e38befea287f 100644
@@ -370,7 +370,7 @@ struct x86_hw_tss {
 #define IO_BITMAP_OFFSET_INVALID	(__KERNEL_TSS_LIMIT + 1)
 
 struct entry_stack {
-	unsigned long		words[64];
+	char	stack[PAGE_SIZE];
 };
 
 struct entry_stack_page {
arch/x86/kvm/kvm_cache_regs.h +1 -1
index 62558b9bdda7..a4b8277ae88e 100644
@@ -7,7 +7,7 @@
 #define KVM_POSSIBLE_CR0_GUEST_BITS X86_CR0_TS
 #define KVM_POSSIBLE_CR4_GUEST_BITS				  \
 	(X86_CR4_PVI | X86_CR4_DE | X86_CR4_PCE | X86_CR4_OSFXSR  \
-	 | X86_CR4_OSXMMEXCPT | X86_CR4_LA57 | X86_CR4_PGE)
+	 | X86_CR4_OSXMMEXCPT | X86_CR4_LA57 | X86_CR4_PGE | X86_CR4_TSD)
 
 #define BUILD_KVM_GPR_ACCESSORS(lname, uname)				      \
 static __always_inline unsigned long kvm_##lname##_read(struct kvm_vcpu *vcpu)\
arch/x86/kvm/mmu/mmu.c +1 -1
index eb27ab47d607..70cf2c1a1423 100644
@@ -4484,7 +4484,7 @@ __reset_rsvds_bits_mask(struct kvm_vcpu *vcpu,
 			nonleaf_bit8_rsvd | rsvd_bits(7, 7) |
 			rsvd_bits(maxphyaddr, 51);
 		rsvd_check->rsvd_bits_mask[0][2] = exb_bit_rsvd |
-			nonleaf_bit8_rsvd | gbpages_bit_rsvd |
+			gbpages_bit_rsvd |
 			rsvd_bits(maxphyaddr, 51);
 		rsvd_check->rsvd_bits_mask[0][1] = exb_bit_rsvd |
 			rsvd_bits(maxphyaddr, 51);
arch/x86/kvm/vmx/vmx.c +2 -0
index 390ec34e4b4f..8fafcb2cd103 100644
@@ -3932,6 +3932,8 @@ void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
 
 void set_cr4_guest_host_mask(struct vcpu_vmx *vmx)
 {
+	BUILD_BUG_ON(KVM_CR4_GUEST_OWNED_BITS & ~KVM_POSSIBLE_CR4_GUEST_BITS);
+
 	vmx->vcpu.arch.cr4_guest_owned_bits = KVM_CR4_GUEST_OWNED_BITS;
 	if (enable_ept)
 		vmx->vcpu.arch.cr4_guest_owned_bits |= X86_CR4_PGE;
arch/x86/kvm/x86.c +2 -0
index 5f08eeac16c8..738a558c915c 100644
@@ -964,6 +964,8 @@ int kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)
 	if (is_long_mode(vcpu)) {
 		if (!(cr4 & X86_CR4_PAE))
 			return 1;
+		if ((cr4 ^ old_cr4) & X86_CR4_LA57)
+			return 1;
 	} else if (is_paging(vcpu) && (cr4 & X86_CR4_PAE)
 		   && ((cr4 ^ old_cr4) & pdptr_bits)
 		   && !load_pdptrs(vcpu, vcpu->arch.walk_mmu,
block/bio-integrity.c +14 -9
index ae07dd78e951..c9dc2b17ce25 100644
@@ -24,6 +24,18 @@ void blk_flush_integrity(void)
 	flush_workqueue(kintegrityd_wq);
 }
 
+void __bio_integrity_free(struct bio_set *bs, struct bio_integrity_payload *bip)
+{
+	if (bs && mempool_initialized(&bs->bio_integrity_pool)) {
+		if (bip->bip_vec)
+			bvec_free(&bs->bvec_integrity_pool, bip->bip_vec,
+				  bip->bip_slab);
+		mempool_free(bip, &bs->bio_integrity_pool);
+	} else {
+		kfree(bip);
+	}
+}
+
 /**
  * bio_integrity_alloc - Allocate integrity payload and attach it to bio
  * @bio:	bio to attach integrity metadata to
@@ -75,7 +87,7 @@ struct bio_integrity_payload *bio_integrity_alloc(struct bio *bio,
 
 	return bip;
 err:
-	mempool_free(bip, &bs->bio_integrity_pool);
+	__bio_integrity_free(bs, bip);
 	return ERR_PTR(-ENOMEM);
 }
 EXPORT_SYMBOL(bio_integrity_alloc);
@@ -96,14 +108,7 @@ void bio_integrity_free(struct bio *bio)
 		kfree(page_address(bip->bip_vec->bv_page) +
 		      bip->bip_vec->bv_offset);
 
-	if (bs && mempool_initialized(&bs->bio_integrity_pool)) {
-		bvec_free(&bs->bvec_integrity_pool, bip->bip_vec, bip->bip_slab);
-
-		mempool_free(bip, &bs->bio_integrity_pool);
-	} else {
-		kfree(bip);
-	}
-
+	__bio_integrity_free(bs, bip);
 	bio->bi_integrity = NULL;
 	bio->bi_opf &= ~REQ_INTEGRITY;
 }
block/blk-mq.c +2 -2
index 8f580e66691b..0d533d084a5f 100644
@@ -803,10 +803,10 @@ static bool blk_mq_rq_inflight(struct blk_mq_hw_ctx *hctx, struct request *rq,
 			       void *priv, bool reserved)
 {
 	/*
-	 * If we find a request that is inflight and the queue matches,
+	 * If we find a request that isn't idle and the queue matches,
 	 * we know the queue is busy. Return false to stop the iteration.
 	 */
-	if (rq->state == MQ_RQ_IN_FLIGHT && rq->q == hctx->queue) {
+	if (blk_mq_request_started(rq) && rq->q == hctx->queue) {
 		bool *busy = priv;
 
 		*busy = true;
drivers/base/regmap/regmap.c +46 -54

221 lines not on this page · raw message

drivers/block/nbd.c +15 -10
index 43cff01a5a67..ce7e9f223b20 100644
@@ -1033,25 +1033,26 @@ static int nbd_add_socket(struct nbd_device *nbd, unsigned long arg,
 	     test_bit(NBD_RT_BOUND, &config->runtime_flags))) {
 		dev_err(disk_to_dev(nbd->disk),
 			"Device being setup by another task");
-		sockfd_put(sock);
-		return -EBUSY;
+		err = -EBUSY;
+		goto put_socket;
+	}
+
+	nsock = kzalloc(sizeof(*nsock), GFP_KERNEL);
+	if (!nsock) {
+		err = -ENOMEM;
+		goto put_socket;
 	}
 
 	socks = krealloc(config->socks, (config->num_connections + 1) *
 			 sizeof(struct nbd_sock *), GFP_KERNEL);
 	if (!socks) {
-		sockfd_put(sock);
-		return -ENOMEM;
+		kfree(nsock);
+		err = -ENOMEM;
+		goto put_socket;
 	}
 
 	config->socks = socks;
 
-	nsock = kzalloc(sizeof(struct nbd_sock), GFP_KERNEL);
-	if (!nsock) {
-		sockfd_put(sock);
-		return -ENOMEM;
-	}
-
 	nsock->fallback_index = -1;
 	nsock->dead = false;
 	mutex_init(&nsock->tx_lock);
@@ -1063,6 +1064,10 @@ static int nbd_add_socket(struct nbd_device *nbd, unsigned long arg,
 	atomic_inc(&config->live_connections);
 
 	return 0;
+
+put_socket:
+	sockfd_put(sock);
+	return err;
 }
 
 static int nbd_reconnect_socket(struct nbd_device *nbd, unsigned long arg)
drivers/clocksource/arm_arch_timer.c +11 -0
index 2204a444e801..3cf4b402cdac 100644
@@ -480,6 +480,14 @@ static const struct arch_timer_erratum_workaround ool_workarounds[] = {
 		.set_next_event_virt = erratum_set_next_event_tval_virt,
 	},
 #endif
+#ifdef CONFIG_ARM64_ERRATUM_1418040
+	{
+		.match_type = ate_match_local_cap_id,
+		.id = (void *)ARM64_WORKAROUND_1418040,
+		.desc = "ARM erratum 1418040",
+		.disable_compat_vdso = true,
+	},
+#endif
 };
 
 typedef bool (*ate_match_fn_t)(const struct arch_timer_erratum_workaround *,
@@ -566,6 +574,9 @@ void arch_timer_enable_workaround(const struct arch_timer_erratum_workaround *wa
 	if (wa->read_cntvct_el0) {
 		clocksource_counter.vdso_clock_mode = VDSO_CLOCKMODE_NONE;
 		vdso_default = VDSO_CLOCKMODE_NONE;
+	} else if (wa->disable_compat_vdso && vdso_default != VDSO_CLOCKMODE_NONE) {
+		vdso_default = VDSO_CLOCKMODE_ARCHTIMER_NOCOMPAT;
+		clocksource_counter.vdso_clock_mode = vdso_default;
 	}
 }
 
drivers/gpio/gpio-pca953x.c +93 -5

134 lines not on this page · raw message

drivers/gpu/drm/amd/amdgpu/amdgpu_job.c +2 -1
index 4981e443a884..2f0eff2c23c7 100644
@@ -36,7 +36,8 @@ static void amdgpu_job_timedout(struct drm_sched_job *s_job)
 
 	memset(&ti, 0, sizeof(struct amdgpu_task_info));
 
-	if (amdgpu_ring_soft_recovery(ring, job->vmid, s_job->s_fence->parent)) {
+	if (amdgpu_gpu_recovery &&
+	    amdgpu_ring_soft_recovery(ring, job->vmid, s_job->s_fence->parent)) {
 		DRM_ERROR("ring %s timeout, but soft recovered\n",
 			  s_job->sched->name);
 		return;
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +59 -4

89 lines not on this page · raw message

drivers/gpu/drm/drm_panel_orientation_quirks.c +7 -7
index ffd95bfeaa94..d00ea384dcbf 100644
@@ -30,12 +30,6 @@ struct drm_dmi_panel_orientation_data {
 	int orientation;
 };
 
-static const struct drm_dmi_panel_orientation_data acer_s1003 = {
-	.width = 800,
-	.height = 1280,
-	.orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP,
-};
-
 static const struct drm_dmi_panel_orientation_data asus_t100ha = {
 	.width = 800,
 	.height = 1280,
@@ -114,13 +108,19 @@ static const struct dmi_system_id orientation_data[] = {
 		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Acer"),
 		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "One S1003"),
 		},
-		.driver_data = (void *)&acer_s1003,
+		.driver_data = (void *)&lcd800x1280_rightside_up,
 	}, {	/* Asus T100HA */
 		.matches = {
 		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
 		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T100HAN"),
 		},
 		.driver_data = (void *)&asus_t100ha,
+	}, {	/* Asus T101HA */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T101HA"),
+		},
+		.driver_data = (void *)&lcd800x1280_rightside_up,
 	}, {	/* GPD MicroPC (generic strings, also match on bios date) */
 		.matches = {
 		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Default string"),
drivers/gpu/drm/i915/gt/intel_context.c +6 -6
index aea992e46c42..711380375fa1 100644
@@ -201,25 +201,25 @@ static int __ring_active(struct intel_ring *ring)
 {
 	int err;
 
-	err = i915_active_acquire(&ring->vma->active);
+	err = intel_ring_pin(ring);
 	if (err)
 		return err;
 
-	err = intel_ring_pin(ring);
+	err = i915_active_acquire(&ring->vma->active);
 	if (err)
-		goto err_active;
+		goto err_pin;
 
 	return 0;
 
-err_active:
-	i915_active_release(&ring->vma->active);
+err_pin:
+	intel_ring_unpin(ring);
 	return err;
 }
 
 static void __ring_retire(struct intel_ring *ring)
 {
-	intel_ring_unpin(ring);
 	i915_active_release(&ring->vma->active);
+	intel_ring_unpin(ring);
 }
 
 __i915_active_call
drivers/gpu/drm/i915/i915_debugfs.c +1 -1
index 6ca797128aa1..4472b6eb3085 100644
@@ -229,7 +229,7 @@ static int per_file_stats(int id, void *ptr, void *data)
 	struct file_stats *stats = data;
 	struct i915_vma *vma;
 
-	if (!kref_get_unless_zero(&obj->base.refcount))
+	if (IS_ERR_OR_NULL(obj) || !kref_get_unless_zero(&obj->base.refcount))
 		return 0;
 
 	stats->count++;
drivers/gpu/drm/i915/i915_vma.c +6 -9
index 2cd7a7e87c0a..1e4bd2d4f019 100644
@@ -104,6 +104,7 @@ vma_create(struct drm_i915_gem_object *obj,
 	   struct i915_address_space *vm,
 	   const struct i915_ggtt_view *view)
 {
+	struct i915_vma *pos = ERR_PTR(-E2BIG);
 	struct i915_vma *vma;
 	struct rb_node *rb, **p;
 
@@ -184,7 +185,6 @@ vma_create(struct drm_i915_gem_object *obj,
 	rb = NULL;
 	p = &obj->vma.tree.rb_node;
 	while (*p) {
-		struct i915_vma *pos;
 		long cmp;
 
 		rb = *p;
@@ -196,16 +196,12 @@ vma_create(struct drm_i915_gem_object *obj,
 		 * and dispose of ours.
 		 */
 		cmp = i915_vma_compare(pos, vm, view);
-		if (cmp == 0) {
-			spin_unlock(&obj->vma.lock);
-			i915_vma_free(vma);
-			return pos;
-		}
-
 		if (cmp < 0)
 			p = &rb->rb_right;
-		else
+		else if (cmp > 0)
 			p = &rb->rb_left;
+		else
+			goto err_unlock;
 	}
 	rb_link_node(&vma->obj_node, rb, p);
 	rb_insert_color(&vma->obj_node, &obj->vma.tree);
@@ -228,8 +224,9 @@ vma_create(struct drm_i915_gem_object *obj,
 err_unlock:
 	spin_unlock(&obj->vma.lock);
 err_vma:
+	i915_vm_put(vm);
 	i915_vma_free(vma);
-	return ERR_PTR(-E2BIG);
+	return pos;
 }
 
 static struct i915_vma *
drivers/gpu/drm/mcde/mcde_drv.c +2 -1
index f28cb7a576ba..1e7c5aa4d5e6 100644
@@ -208,7 +208,6 @@ static int mcde_modeset_init(struct drm_device *drm)
 
 	drm_mode_config_reset(drm);
 	drm_kms_helper_poll_init(drm);
-	drm_fbdev_generic_setup(drm, 32);
 
 	return 0;
 
@@ -275,6 +274,8 @@ static int mcde_drm_bind(struct device *dev)
 	if (ret < 0)
 		goto unbind;
 
+	drm_fbdev_generic_setup(drm, 32);
+
 	return 0;
 
 unbind:
drivers/gpu/drm/mediatek/mtk_drm_plane.c +15 -10
index c2bd683a87c8..92141a19681b 100644
@@ -164,6 +164,16 @@ static int mtk_plane_atomic_check(struct drm_plane *plane,
 						   true, true);
 }
 
+static void mtk_plane_atomic_disable(struct drm_plane *plane,
+				     struct drm_plane_state *old_state)
+{
+	struct mtk_plane_state *state = to_mtk_plane_state(plane->state);
+
+	state->pending.enable = false;
+	wmb(); /* Make sure the above parameter is set before update */
+	state->pending.dirty = true;
+}
+
 static void mtk_plane_atomic_update(struct drm_plane *plane,
 				    struct drm_plane_state *old_state)
 {
@@ -178,6 +188,11 @@ static void mtk_plane_atomic_update(struct drm_plane *plane,
 	if (!crtc || WARN_ON(!fb))
 		return;
 
+	if (!plane->state->visible) {
+		mtk_plane_atomic_disable(plane, old_state);
+		return;
+	}
+
 	gem = fb->obj[0];
 	mtk_gem = to_mtk_gem_obj(gem);
 	addr = mtk_gem->dma_addr;
@@ -200,16 +215,6 @@ static void mtk_plane_atomic_update(struct drm_plane *plane,
 	state->pending.dirty = true;
 }
 
-static void mtk_plane_atomic_disable(struct drm_plane *plane,
-				     struct drm_plane_state *old_state)
-{
-	struct mtk_plane_state *state = to_mtk_plane_state(plane->state);
-
-	state->pending.enable = false;
-	wmb(); /* Make sure the above parameter is set before update */
-	state->pending.dirty = true;
-}
-
 static const struct drm_plane_helper_funcs mtk_plane_helper_funcs = {
 	.prepare_fb = drm_gem_fb_prepare_fb,
 	.atomic_check = mtk_plane_atomic_check,
drivers/gpu/drm/meson/meson_registers.h +6 -0
index 8ea00546cd4e..049c4bfe2a3a 100644
@@ -261,6 +261,12 @@
 #define VIU_OSD_FIFO_DEPTH_VAL(val)      ((val & 0x7f) << 12)
 #define VIU_OSD_WORDS_PER_BURST(words)   (((words & 0x4) >> 1) << 22)
 #define VIU_OSD_FIFO_LIMITS(size)        ((size & 0xf) << 24)
+#define VIU_OSD_BURST_LENGTH_24          (0x0 << 31 | 0x0 << 10)
+#define VIU_OSD_BURST_LENGTH_32          (0x0 << 31 | 0x1 << 10)
+#define VIU_OSD_BURST_LENGTH_48          (0x0 << 31 | 0x2 << 10)
+#define VIU_OSD_BURST_LENGTH_64          (0x0 << 31 | 0x3 << 10)
+#define VIU_OSD_BURST_LENGTH_96          (0x1 << 31 | 0x0 << 10)
+#define VIU_OSD_BURST_LENGTH_128         (0x1 << 31 | 0x1 << 10)
 
 #define VD1_IF0_GEN_REG 0x1a50
 #define VD1_IF0_CANVAS0 0x1a51
drivers/gpu/drm/meson/meson_viu.c +2 -9
index 304f8ff1339c..aede0c67a57f 100644
@@ -411,13 +411,6 @@ void meson_viu_gxm_disable_osd1_afbc(struct meson_drm *priv)
 			    priv->io_base + _REG(VIU_MISC_CTRL1));
 }
 
-static inline uint32_t meson_viu_osd_burst_length_reg(uint32_t length)
-{
-	uint32_t val = (((length & 0x80) % 24) / 12);
-
-	return (((val & 0x3) << 10) | (((val & 0x4) >> 2) << 31));
-}
-
 void meson_viu_init(struct meson_drm *priv)
 {
 	uint32_t reg;
@@ -444,9 +437,9 @@ void meson_viu_init(struct meson_drm *priv)
 		VIU_OSD_FIFO_LIMITS(2);      /* fifo_lim: 2*16=32 */
 
 	if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A))
-		reg |= meson_viu_osd_burst_length_reg(32);
+		reg |= VIU_OSD_BURST_LENGTH_32;
 	else
-		reg |= meson_viu_osd_burst_length_reg(64);
+		reg |= VIU_OSD_BURST_LENGTH_64;
 
 	writel_relaxed(reg, priv->io_base + _REG(VIU_OSD1_FIFO_CTRL_STAT));
 	writel_relaxed(reg, priv->io_base + _REG(VIU_OSD2_FIFO_CTRL_STAT));
drivers/gpu/drm/radeon/ci_dpm.c +3 -4
index a9257bed3484..30b5a59353c5 100644
@@ -5577,6 +5577,7 @@ static int ci_parse_power_table(struct radeon_device *rdev)
 	if (!rdev->pm.dpm.ps)
 		return -ENOMEM;
 	power_state_offset = (u8 *)state_array->states;
+	rdev->pm.dpm.num_ps = 0;
 	for (i = 0; i < state_array->ucNumEntries; i++) {
 		u8 *idx;
 		power_state = (union pplib_power_state *)power_state_offset;
@@ -5586,10 +5587,8 @@ static int ci_parse_power_table(struct radeon_device *rdev)
 		if (!rdev->pm.power_state[i].clock_info)
 			return -EINVAL;
 		ps = kzalloc(sizeof(struct ci_ps), GFP_KERNEL);
-		if (ps == NULL) {
-			kfree(rdev->pm.dpm.ps);
+		if (ps == NULL)
 			return -ENOMEM;
-		}
 		rdev->pm.dpm.ps[i].ps_priv = ps;
 		ci_parse_pplib_non_clock_info(rdev, &rdev->pm.dpm.ps[i],
 					      non_clock_info,
@@ -5611,8 +5610,8 @@ static int ci_parse_power_table(struct radeon_device *rdev)
 			k++;
 		}
 		power_state_offset += 2 + power_state->v2.ucNumDPMLevels;
+		rdev->pm.dpm.num_ps = i + 1;
 	}
-	rdev->pm.dpm.num_ps = state_array->ucNumEntries;
 
 	/* fill in the vce power states */
 	for (i = 0; i < RADEON_MAX_VCE_LEVELS; i++) {
drivers/gpu/drm/tegra/hub.c +6 -2
index 8183e617bf6b..a2ef8f218d4e 100644
@@ -149,7 +149,9 @@ int tegra_display_hub_prepare(struct tegra_display_hub *hub)
 	for (i = 0; i < hub->soc->num_wgrps; i++) {
 		struct tegra_windowgroup *wgrp = &hub->wgrps[i];
 
-		tegra_windowgroup_enable(wgrp);
+		/* Skip orphaned window group whose parent DC is disabled */
+		if (wgrp->parent)
+			tegra_windowgroup_enable(wgrp);
 	}
 
 	return 0;
@@ -166,7 +168,9 @@ void tegra_display_hub_cleanup(struct tegra_display_hub *hub)
 	for (i = 0; i < hub->soc->num_wgrps; i++) {
 		struct tegra_windowgroup *wgrp = &hub->wgrps[i];
 
-		tegra_windowgroup_disable(wgrp);
+		/* Skip orphaned window group whose parent DC is disabled */
+		if (wgrp->parent)
+			tegra_windowgroup_disable(wgrp);
 	}
 }
 
drivers/gpu/drm/ttm/ttm_bo.c +3 -1
index 9e07c3f75156..ef5bc00c73e2 100644
@@ -881,8 +881,10 @@ static int ttm_bo_add_move_fence(struct ttm_buffer_object *bo,
 	if (!fence)
 		return 0;
 
-	if (no_wait_gpu)
+	if (no_wait_gpu) {
+		dma_fence_put(fence);
 		return -EBUSY;
+	}
 
 	dma_resv_add_shared_fence(bo->base.resv, fence);
 
drivers/gpu/drm/ttm/ttm_bo_vm.c +2 -0
index 0ad30b112982..72100b84c7a9 100644
@@ -300,8 +300,10 @@ vm_fault_t ttm_bo_vm_fault_reserved(struct vm_fault *vmf,
 			break;
 		case -EBUSY:
 		case -ERESTARTSYS:
+			dma_fence_put(moving);
 			return VM_FAULT_NOPAGE;
 		default:
+			dma_fence_put(moving);
 			return VM_FAULT_SIGBUS;
 		}
 
drivers/gpu/host1x/bus.c +9 -0
index 6a995db51d6d..e201f62d62c0 100644
@@ -686,8 +686,17 @@ EXPORT_SYMBOL(host1x_driver_register_full);
  */
 void host1x_driver_unregister(struct host1x_driver *driver)
 {
+	struct host1x *host1x;
+
 	driver_unregister(&driver->driver);
 
+	mutex_lock(&devices_lock);
+
+	list_for_each_entry(host1x, &devices, list)
+		host1x_detach_driver(host1x, driver);
+
+	mutex_unlock(&devices_lock);
+
 	mutex_lock(&drivers_lock);
 	list_del_init(&driver->list);
 	mutex_unlock(&drivers_lock);
drivers/gpu/host1x/dev.c +3 -2
index d24344e91922..3c0f151847ba 100644
@@ -468,11 +468,12 @@ static int host1x_probe(struct platform_device *pdev)
 
 	err = host1x_register(host);
 	if (err < 0)
-		goto deinit_intr;
+		goto deinit_debugfs;
 
 	return 0;
 
-deinit_intr:
+deinit_debugfs:
+	host1x_debug_deinit(host);
 	host1x_intr_deinit(host);
 deinit_syncpt:
 	host1x_syncpt_deinit(host);
drivers/infiniband/core/sa_query.c +17 -21
index 74e0058fcf9e..0c14ab2244d4 100644
@@ -829,13 +829,20 @@ static int ib_nl_get_path_rec_attrs_len(ib_sa_comp_mask comp_mask)
 	return len;
 }
 
-static int ib_nl_send_msg(struct ib_sa_query *query, gfp_t gfp_mask)
+static int ib_nl_make_request(struct ib_sa_query *query, gfp_t gfp_mask)
 {
 	struct sk_buff *skb = NULL;
 	struct nlmsghdr *nlh;
 	void *data;
 	struct ib_sa_mad *mad;
 	int len;
+	unsigned long flags;
+	unsigned long delay;
+	gfp_t gfp_flag;
+	int ret;
+
+	INIT_LIST_HEAD(&query->list);
+	query->seq = (u32)atomic_inc_return(&ib_nl_sa_request_seq);
 
 	mad = query->mad_buf->mad;
 	len = ib_nl_get_path_rec_attrs_len(mad->sa_hdr.comp_mask);
@@ -860,36 +867,25 @@ static int ib_nl_send_msg(struct ib_sa_query *query, gfp_t gfp_mask)
 	/* Repair the nlmsg header length */
 	nlmsg_end(skb, nlh);
 
-	return rdma_nl_multicast(&init_net, skb, RDMA_NL_GROUP_LS, gfp_mask);
-}
+	gfp_flag = ((gfp_mask & GFP_ATOMIC) == GFP_ATOMIC) ? GFP_ATOMIC :
+		GFP_NOWAIT;
 
-static int ib_nl_make_request(struct ib_sa_query *query, gfp_t gfp_mask)
-{
-	unsigned long flags;
-	unsigned long delay;
-	int ret;
+	spin_lock_irqsave(&ib_nl_request_lock, flags);
+	ret = rdma_nl_multicast(&init_net, skb, RDMA_NL_GROUP_LS, gfp_flag);
 
-	INIT_LIST_HEAD(&query->list);
-	query->seq = (u32)atomic_inc_return(&ib_nl_sa_request_seq);
+	if (ret)
+		goto out;
 
-	/* Put the request on the list first.*/
-	spin_lock_irqsave(&ib_nl_request_lock, flags);
+	/* Put the request on the list.*/
 	delay = msecs_to_jiffies(sa_local_svc_timeout_ms);
 	query->timeout = delay + jiffies;
 	list_add_tail(&query->list, &ib_nl_request_list);
 	/* Start the timeout if this is the only request */
 	if (ib_nl_request_list.next == &query->list)
 		queue_delayed_work(ib_nl_wq, &ib_nl_timed_work, delay);
-	spin_unlock_irqrestore(&ib_nl_request_lock, flags);
 
-	ret = ib_nl_send_msg(query, gfp_mask);
-	if (ret) {
-		ret = -EIO;
-		/* Remove the request */
-		spin_lock_irqsave(&ib_nl_request_lock, flags);
-		list_del(&query->list);
-		spin_unlock_irqrestore(&ib_nl_request_lock, flags);
-	}
+out:
+	spin_unlock_irqrestore(&ib_nl_request_lock, flags);
 
 	return ret;
 }
drivers/infiniband/hw/hfi1/init.c +28 -9
index 3759d9233a1c..498684551427 100644
@@ -828,6 +828,29 @@ static int create_workqueues(struct hfi1_devdata *dd)
 	return -ENOMEM;
 }
 
+/**
+ * destroy_workqueues - destroy per port workqueues
+ * @dd: the hfi1_ib device
+ */
+static void destroy_workqueues(struct hfi1_devdata *dd)
+{
+	int pidx;
+	struct hfi1_pportdata *ppd;
+
+	for (pidx = 0; pidx < dd->num_pports; ++pidx) {
+		ppd = dd->pport + pidx;
+
+		if (ppd->hfi1_wq) {
+			destroy_workqueue(ppd->hfi1_wq);
+			ppd->hfi1_wq = NULL;
+		}
+		if (ppd->link_wq) {
+			destroy_workqueue(ppd->link_wq);
+			ppd->link_wq = NULL;
+		}
+	}
+}
+
 /**
  * enable_general_intr() - Enable the IRQs that will be handled by the
  * general interrupt handler.
@@ -1101,15 +1124,10 @@ static void shutdown_device(struct hfi1_devdata *dd)
 		 * We can't count on interrupts since we are stopping.
 		 */
 		hfi1_quiet_serdes(ppd);
-
-		if (ppd->hfi1_wq) {
-			destroy_workqueue(ppd->hfi1_wq);
-			ppd->hfi1_wq = NULL;
[… more lines in the raw message]

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

drivers/infiniband/hw/hfi1/qp.c +4 -1
index f8e733aa3bb8..acd4400b0092 100644

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

drivers/infiniband/hw/hfi1/tid_rdma.c +4 -1
index 8a2e0d9351e9..7c6fd720fb2e 100644

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

drivers/infiniband/hw/mlx5/main.c +1 -1
index 6679756506e6..820e407b3e26 100644

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

drivers/infiniband/sw/siw/siw_main.c +2 -1
index 5cd40fb9e20c..634c4b371623 100644

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

drivers/iommu/intel-iommu.c +37 -0
index 34b2ed91cf4d..2acf2842c3bd 100644

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

drivers/irqchip/irq-gic-v3-its.c +8 -0
index b3e16a06c13b..b99e3105bf9f 100644

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

drivers/md/dm-writecache.c +6 -0
index 5cc94f57421c..00d774bdd2b1 100644

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

drivers/md/dm.c +12 -3
index db9e46114653..05333fc2f8d2 100644

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

drivers/message/fusion/mptscsih.c +1 -3
index f0737c57ed5f..1491561d2e5c 100644

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

drivers/mmc/host/meson-gx-mmc.c +4 -2
index 35400cf2a2e4..cfaf8e7e22ec 100644

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

drivers/mmc/host/owl-mmc.c +1 -1
index 5e20c099fe03..df43f42855e2 100644

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

drivers/mtd/mtdcore.c +2 -2
index 29d41003d6e0..f8317ccd8f2a 100644

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

drivers/net/dsa/microchip/ksz8795.c +3 -0
index 47d65b77caf7..7c17b0f705ec 100644

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

drivers/net/dsa/microchip/ksz9477.c +3 -0
index 9a51b8a4de5d..8d15c3016024 100644

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

drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c +2 -2
index d1f68fc16291..e6b1fb10ad91 100644

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

drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h +1 -1
index 18de2f7b8959..a7590b9ea2df 100644

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

drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c +1 -1
index cea2f9958a1d..2295f539a641 100644

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

drivers/net/ethernet/cadence/macb_main.c +19 -12
index 52582e8ed90e..f1f0976e7669 100644

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

drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c +5 -5
index 7a7f61a8cdf4..d02d346629b3 100644

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

drivers/net/ethernet/chelsio/cxgb4/t4_hw.c +4 -4
index 2a3480fc1d91..9121cef2be2d 100644

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

drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +1 -2
index da98fd7c8eca..3003eecd5263 100644

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

drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c +6 -3
index 28b81f24afa1..2a78805d531a 100644

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

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +1 -1
index a758f9ae32be..4de268a87958 100644

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

drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c +5 -0
index e02d427131ee..e6cdd06925e6 100644

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

drivers/net/ethernet/ibm/ibmvnic.c +7 -2
index 2baf7b3ff4cb..0fd7eae25fe9 100644

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

drivers/net/ethernet/intel/i40e/i40e_main.c +19 -10
index 2a037ec244b9..80dc5fcb82db 100644

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

drivers/net/ethernet/intel/ice/ice_lib.c +4 -4
index 2f256bf45efc..6dd839b32525 100644

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

drivers/net/ethernet/intel/ice/ice_main.c +1 -1
index 69e50331e08e..7fd2ec63f128 100644

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

drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c +6 -6
index fd9f5d41b594..2e35c5706cf1 100644

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

drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +11 -3
index ea6834bae04c..a32a072761aa 100644

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

drivers/net/ethernet/marvell/mvneta.c +51 -37

88 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlx5/core/en/port.c +18 -3
index 2a8950b3056f..3cf3e35053f7 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/port.h +1 -1
index a2ddd446dd59..7a7defe60792 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c +1 -0
index 470282daed19..369a03771435 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c +4 -4
index bc290ae80a53..1c491acd48f3 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_main.c +8 -7
index bd8d0e096085..bc54913c5861 100644

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

drivers/net/ethernet/mellanox/mlx5/core/port.c +77 -16

93 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlxsw/pci.c +38 -16

54 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c +1 -1
index d5bca1be3ef5..84b3d78a9dd8 100644

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

drivers/net/ethernet/pensando/ionic/ionic_ethtool.c +17 -35

52 lines not on this page · raw message

drivers/net/ethernet/pensando/ionic/ionic_lif.c +12 -5
index 790d4854b8ef..b591bec0301c 100644

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

drivers/net/ethernet/pensando/ionic/ionic_lif.h +3 -1
index 5d4ffda5c05f..2c65cf6300db 100644

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

drivers/net/ethernet/qlogic/qed/qed.h +2 -0
index fa41bf08a589..58d6ef489d5b 100644

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

drivers/net/ethernet/qlogic/qed/qed_debug.c +16 -1
index 3e56b6056b47..25745b75daf3 100644

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

drivers/net/ethernet/qlogic/qed/qed_dev.c +3 -9
index 9b00988fb77e..58913fe4f345 100644

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

drivers/net/ethernet/qlogic/qed/qed_mcp.c +7 -0
index 280527cc0578..99548d5b44ea 100644

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

drivers/net/ethernet/qlogic/qed/qed_mcp.h +7 -0
index 9c4c2763de8d..e38297383b00 100644

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

drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c +13 -5
index 40efe60eff8d..fcdecddb2812 100644

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

drivers/net/ipa/ipa_data-sdm845.c +0 -1
index 0d9c36e1e806..0917c5b028f6 100644

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

drivers/net/ipa/ipa_qmi_msg.c +3 -3
index 03a1d0e55964..73413371e3d3 100644

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

drivers/net/usb/smsc95xx.c +8 -1
index 3cf4dc3433f9..bb4ccbda031a 100644

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

drivers/net/wireless/ath/ath9k/hif_usb.c +11 -37

48 lines not on this page · raw message

drivers/net/wireless/ath/ath9k/hif_usb.h +0 -5
index 5985aa15ca93..a94e7e1c86e9 100644

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

drivers/nvme/host/rdma.c +1 -1
index cac8a930396a..1f9a45145d0d 100644

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

drivers/pinctrl/intel/pinctrl-baytrail.c +53 -14

67 lines not on this page · raw message

drivers/scsi/qla2xxx/qla_attr.c +27 -3
index 2c9e5ac24692..c4917f441b10 100644

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

drivers/scsi/qla2xxx/qla_def.h +12 -1
index 47c7a56438b5..daa9e936887b 100644

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

drivers/scsi/qla2xxx/qla_gbl.h +3 -0
index 1b93f5b4d77d..b20c5fa122fb 100644

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

drivers/scsi/qla2xxx/qla_init.c +2 -0
index cfbb4294fb8b..53686246f566 100644

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

drivers/scsi/qla2xxx/qla_isr.c +37 -17

54 lines not on this page · raw message

drivers/scsi/qla2xxx/qla_os.c +6 -0
index 9179bb4caed8..1120d133204c 100644

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

drivers/scsi/qla2xxx/qla_tmpl.c +99 -22

121 lines not on this page · raw message

drivers/spi/spi-fsl-dspi.c +33 -1
index 856a4a0edcc7..38d337f0967d 100644

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

drivers/spi/spidev.c +12 -12
index 80dd1025b953..012a89123067 100644

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

drivers/staging/wfx/hif_tx.c +4 -2
index 20b3045d7667..15ff60a58466 100644

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

drivers/staging/wfx/hif_tx.h +1 -1
index f8520a14c14c..7a21338470ee 100644

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

drivers/staging/wfx/scan.c +3 -3
index 9aa14331affd..d47b8a3ba403 100644

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

drivers/usb/dwc3/dwc3-pci.c +3 -1
index b67372737dc9..96c05b121fac 100644

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

fs/btrfs/discard.c +1 -0
index 5615320fa659..741c7e19c32f 100644

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

fs/btrfs/disk-io.c +4 -2
index 91def9fd9456..f71e4dbe1d8a 100644

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

fs/btrfs/extent_io.c +24 -16
index 39e45b8a5031..6e17a92869ad 100644

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

fs/btrfs/inode.c +1 -8
index 6aa200e373c8..e7bdda3ed069 100644

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

fs/btrfs/space-info.c +1 -1
index eee6748c49e4..756950aba1a6 100644

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

fs/cifs/inode.c +9 -0
index 430b0b125654..44a57b65915b 100644

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

fs/cifs/ioctl.c +8 -1
index 4a73e63c4d43..dcde44ff6cf9 100644

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

fs/cifs/smb2misc.c +6 -2
index 497afb0b9960..44fca24d993e 100644

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

fs/cifs/smb2ops.c +1 -1
index 6fc69c3b2749..bf13917ec1a4 100644

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

fs/io_uring.c +16 -4
index 2be6ea010340..ba2184841cb5 100644

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

fs/nfs/nfs4namespace.c +1 -0
index a3ab6e219061..873342308dc0 100644

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

include/linux/btf.h +5 -0
index 5c1ea99b480f..8b81fbb4497c 100644

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

include/linux/filter.h +2 -2
index 9b5aa5c483cc..ccbba0adc0da 100644

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

include/linux/kallsyms.h +3 -2
index 657a83b943f0..1f96ce2b47df 100644

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

include/sound/compress_driver.h +9 -1
index 6ce8effa0b12..70cbc5095e72 100644

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

kernel/bpf/btf.c +2 -2
index d65c6912bdaf..d1f5d428c9fe 100644

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

kernel/bpf/syscall.c +18 -14
index c8acc8f37583..0e4d99cfac93 100644

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

kernel/kallsyms.c +11 -6
index 16c8c605f4b0..bb14e64f62a4 100644

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

kernel/kprobes.c +2 -2
index 950a5cfd262c..0a967db226d8 100644

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

kernel/module.c +27 -24

51 lines not on this page · raw message

kernel/sched/core.c +1 -1
index f2618ade8047..8034434b1040 100644

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

net/core/skmsg.c +15 -8
index 351afbf6bfba..6a32a1fd34f8 100644

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

net/core/sysctl_net_core.c +1 -1
index 9f9e00ba3ad7..669cbe1609d9 100644

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

net/mac80211/tx.c +1 -1
index 82846aca86d9..6ab33d9904ee 100644

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

net/netfilter/ipset/ip_set_bitmap_ip.c +1 -1
index 486959f70cf3..a8ce04a4bb72 100644

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

net/netfilter/ipset/ip_set_bitmap_ipmac.c +1 -1
index 2310a316e0af..2c625e0f49ec 100644

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

net/netfilter/ipset/ip_set_bitmap_port.c +1 -1
index e56ced66f202..7138e080def4 100644

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

net/netfilter/ipset/ip_set_hash_gen.h +2 -2
index 1ee43752d6d3..521e970be402 100644

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

net/netfilter/nf_conntrack_core.c +2 -0
index bb72ca5f3999..3ab6dbb6588e 100644

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

net/qrtr/qrtr.c +5 -1
index 2d8d6131bc5f..7eccbbf6f8ad 100644

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

net/sunrpc/xprtrdma/verbs.c +23 -10
index 05c4d3a9cda2..db0259c6467e 100644

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

net/wireless/nl80211.c +3 -2
index 692bcd35f809..7ae6b90e0d26 100644

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

sound/core/compress_offload.c +4 -0
index 509290f2efa8..0e53f6f31916 100644

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

sound/drivers/opl3/opl3_synth.c +2 -0
index e69a4ef0d6bd..08c10ac9d6c8 100644

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

sound/pci/hda/hda_auto_parser.c +6 -0
index 2c6d2becfe1a..824f4ac1a8ce 100644

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

sound/pci/hda/hda_intel.c +8 -0
index 41a03c61a74b..11ec5c56c80e 100644

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

sound/pci/hda/patch_realtek.c +36 -2
index cb689878ba20..16ecc8515db8 100644

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

sound/soc/codecs/hdac_hda.c +10 -6
index de003acb1951..473efe9ef998 100644

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

sound/soc/fsl/fsl_mqs.c +14 -9
index 0c813a45bba7..69aeb0e71844 100644

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

sound/soc/sof/sof-pci-dev.c +2 -0
index cec631a1389b..7b1846aeadd5 100644

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

sound/usb/pcm.c +1 -0
index c73efdf7545e..9702c4311b91 100644

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

sound/usb/quirks-table.h +52 -0

52 lines not on this page · raw message

tools/perf/arch/x86/util/intel-pt.c +1 -0
index 1643aed8c4c8..2a548fbdf2a2 100644

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

tools/perf/scripts/python/export-to-postgresql.py +1 -1
index 7bd73a904b4e..d187e46c2683 100644

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

tools/perf/scripts/python/exported-sql-viewer.py +9 -2
index 26d7be785288..7daa8bb70a5a 100755

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

tools/perf/ui/browsers/hists.c +11 -6
index 487e54ef56a9..2101b6b770d8 100644

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

tools/perf/util/evsel.c +2 -2
index eb880efbce16..386950f29792 100644

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

tools/perf/util/intel-pt.c +3 -2
index 23c8289c2472..545d1cdc0ec8 100644

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

tools/testing/selftests/bpf/test_maps.c +6 -6
index c6766b2cff85..9990e91c18df 100644

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

virt/kvm/arm/vgic/vgic-v4.c +8 -0
index 27ac833e5ec7..b5fa73c9fd35 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.